Hello Folks,
I am working on a project involving Web Services. I have worked on a few Web Services projects in .NET but I am a beginner in Progress Web Services. In my scenario the Web Service is written in C# (.NET). Some of the operations involve very complex data types. For example: Object A composes Object B, Object B composes Object C which is an array. After spending some time with OpenEdge® Development: Web Services tutorial I have learned:
So after reading the tutorial I believe I have two solutions towards the implementation of this project:
Here's the concrete scenario for solution #2:
In the above example C# (.NET) is actually making calls to Web Service operations. The data collected after executing the operation in .NET is passed to ABL which then spits it out on a browser.
From my point-of-view solution #2 is a better approach since I could instantiate objects and call functions directly and use real data types. I don’t have to worry about Serialize/Deserialize SOAP messages.
My question here is: What is the best approach towards using Web Services in Progress?
Some of the technologies I am using: ABL, WebSpeed for Presentation, IIS.
Your help is much appreciated.
Thanks,
Jatinder Singh
You don't mention your version, which might be important.
My first thought is to wonder why you are planning on all this server-side .NET stuff when you could do the whole thing in ABL.
If the actual web service is being presented by .NET, then your issue with Progress is not actually a web service. The sensible solutions would seem to be to either have the .NET components access AppServer using OpenClient or to create a bus-oriented solution with Sonic or FUSE.
Hi,
Thank you for your reply. I am using Progress version 10.2A at the moment. But we also have access to 10.2B. Since I am fairly new to Progress could you please elaborate on your solution?
Thanks,
Jatinder
We really ought to get an expert in here ... which isn't me on this topic, but it is quite easy to expose that recent a version of ABL as a web service directly.
You can find there a "quick deploy" - Step-by-step procedure to expose a 4GL WebService
and a lot of examples (client side: .Net, Java, perl, PHP, ruby .. etc) and some server-side
examples. Take a tour. With Progress 10.2 A you have to install Tomcat 5.5.x and JDK 1.5.0. It is mandatory
to respect these versions. You find there a lot of 4GL client examples tst_4gl. In Progress 4GL you just
have to use the tool: bprowsdldoc [URL To .Net WSDL] and consumming a .Net WebService is a joke.
You can have problemes if the .Net WebService do not respect the standard WSDL 1.1 SOAP 1.1 and HTTP 1.0
and the character set UTF-8. Anyway, if the Progress tool "bprowsdldoc" can not document your WebService ...
don't loose your time ... doesent works (you have to develop the web-service access over 4GL sockets, but this is very tricky).
Dont forget , the 4GL Client for consumming web-Services do not implement any standard type: WS-security,
WS-authorisation, WS-Interoperability, etc. Forget all WS-* standards. Good-luck
Thank you very much for uploading those documents. They'll come handy.
I was to fast to translate from french to english
and I have a mistake ...
Here is an update of index in my quick-doc.
Open the file $DLC/properties/ubroker.properties, and search the [WSA] section.
Modify all variables contains "Auth" (authorisation) and give all the value =0.
All variables contains "Enabled" have to be a modified to =1.