<h3>Web Services for AOLServer
</h3><h4>Project overview</h4>
Currently AOLserver has a number of implementations of SOAP web services, of varying degrees of maturity and completeness (https://openacs.org/xowiki/tsoap). None of them is as complete or as effective as support on other platforms. United eWay would like to fund the development of a Web Services infrastructure for AOLserver, as we have the need for reliable and effective SOAP-based web services on the AOLserver platform.
Recognizing the broad need for web services, this project will be open-sourced under the GPL license with the goal of making it available to the broader AOLserver community so others can benefit from the work and contribute improvements to the project.
<h4>Project specifications</h4>
The project needs to fulfill the following specifications:
- It should be written in Tcl, for a vanilla AOLserver instance. Use of some Tcl extensions, such as tcllib, and AOLserver extensions, such as ns_cache, are fine, but there should not be any other third-party dependencies (e.g. no dependencies on any RDMS, on OpenACS or other Tcl toolkits). One key goal of this development effort is broad accessibility to web services for anybody using AOLserver. We are thus focused on a minimal integration path to install the Web Services package in any environment. We do anticipate adapters being written to streamline further the integration of the Web Services infrastructure into other toolkits.
- It should use tDOM.
- On the client side, an API must exist which accepts a path to a WSDL and the name of a TCL namespace and generates a functional Tcl API in the given namespace.
- On the server side, it should take a Tcl namespace and relative server URL, and generate (a) a WSDL from all procs in that namespace, (b) a browsable interface to the WSDL (ala .NET), and (c) exposed web services that direct web service requests to invocations of that proc.
- Runtime performance should be considered, though the distributed nature of Web Services will balance the needs for any specific performance metrics (i.e. The majority of time issuing web service requests should be spent in the communication between servers, and not in the implementation of this platform).
- Errors from the web service should be automatically marshaled to and from Tcl Errors.
- If any of the currently implementations of web services are well-written, they can be expanded upon. For example, the tsoap implementation may be almost everything needed for client-side web services.
- Support for Web Service Security is a specific non-requirement at this stage, though proposals which provide for WS-Security would be preferable.
<h4>Contract</h4>
The work will be on a contract basis. Interested parties are encouraged to bid based on the successful completion of the project. The success of the project will be evaluated based on its ability to:
- Accept an arbitrary WSDL (we have a collection of a set of WSDL for which we need immediate support) and successfully invoke each web service via a Tcl call
- Generating a valid WSDL from a Tcl namespace, and correctly accepting web service requests to the procedures defined in the namespace.
- Correctly marshal and unmarshal errors
<h4>Timeline</h4>
We are prepared to start work on this immediately, but would like the work completed within the next 3-5 weeks.