Forum OpenACS Development: Using Aolserver as a web services server

Can any provide a general state of the union for providing web services on top of Aolserver?

I've looked at tsoap, and although is seems very useful for client-side work, I've yet to see any good examples of how to use it for the server-side end of things. Perhaps I'm overlooking something?

Has anybody else done any work on providing web services?

I'm hoping that it will run on Aolserver, without necessarily using OpenACS, but an OpenACS based solution is worth looking at too.

Ideally, you should be able to feed it a WSDL and get a Tcl API to access the web service, and have error handling built in.

Also ideally, it would be great to be able to easily make a Tcl procedure into a web service.

Unfortunately, there seem to be at least a half dozen different XML-RPC and/or SOAP implementations available for Tcl, AOLserver, and/or OpenACS, in various states of completeness and quality, and AFAIK no one has yet reviewed them. See e.g. these threads: one and two; as well as the XML-RPC and SOAP pages on the Tcl'ers Wiki.

Ideally, someone would look at all those, pick the most promising design, and then enhance it until it all the others evaporate beneath the scorching rays of its brilliance and obvious superiority. AKA, I am largely in favor of one XML-RPC package to rule them all (and in the darkenss bind them).

Failing that, it would still be quite helpful if someone would review and evaluate all the existing RPC projects, reporting on their completeness, quality of design and implementation, which would seem to provide the best foundation for future work, etc.

There are, incidentally, large old Tcl-based RPC projects (and other IPC methods) which long predate XML, notably Tcl-DP. (See also dp_RPC.) The obsessively thorough might, at least in theory, also want to review those for design ideas, possible synergies, etc.

Collapse
Posted by Jade Rubick on
I summarized everything I could find here:

https://openacs.org/wiki/Web%20Services

It looks to me like the SOAP Gateway package is the best for acting as a SOAP server, and the tsoap package is the best for acting as a SOAP client.

Can anyone who has used any of the solutions listed on the Wiki link above go there and comment on what works and what doesn't? And maybe post here as well?

I'd like to assemble a "State of Web Services" page on the Wiki, so this question can be answered once and for all.

My questions:

* Does the SOAP Gateway package support feeding in a WSDL and getting a TCL API to access the web service? Does it have error handling built in.

* Is there an easy way to make a Tcl procedure into a SOAP web service using the SOAP Gateway? Nick talked about the service contract to SOAP package. I'd be interested in that too, but I'm more interested in a solution that doesn't require service contracts (as I'm on an pre-service-contracts ACS system rather than OpenACS).

Collapse
Posted by Claudio Pasolini on
I used soap-gateway, before Nick's revamping, in a couple of SOAP application, and so my responses are limited to the soap-gateway package only.

* Does the SOAP Gateway package support feeding in a WSDL and getting a TCL API to access the web service?

No. soap-gateway provides an infrastructure for building server side services, but I had to create the client side procs.
I played a bit with tsoap and it look very promising, even if at times I encountered some problem that I didn't have the time to debug.
The client procs already provide the API to call a web service: not sure of understanding what do you mean with the idea of using the WSDL.

* Does it have error handling built in.

Yes, at least the original William's package.

* Is there an easy way to make a Tcl procedure into a SOAP web service using the SOAP Gateway?

Yes, this is exactly the package's scope. You can look at the sample services provided to get an idea.