The tWSDL Server is an application which will run on top of an instance
of AOLserver. AOLserver has a built in Tcl interpreter and an associated
Tcl API. In addition, AOLserver allows installation of additional C and
Tcl Modules. C Modules are accessed via an associated Tcl API. All
exposed Tcl API are available to the tWSDL System.
The tWSDL System is composed of several components. There will be a Core
tWSDL API which will be used to maintain and manage all aspects of the
System. This Core API will be extensible in several areas for various
reasons.
One extension area will be the Wrapper. A Core set of API will allow
the developer to wrap any generic function. Extensions of this basic API
will make it easier to create Wrappers for specific Tcl API for which
some otherwise necessary information can be derived. For example, a simple
Wrapper could assume that all inputs and outputs are strings. Simple
introspection would allow for inputs to be named. Another example could
be for database procedures where the types can be looked up in a data
dictionary. The Wrapper creates a function which takes a representation of
an XML document and returns another XML document. The Wrapper is run once
to create a tWSDL application. The API generated by the Wrapper will not
be a localized API. It should be possible to package and move to another
system without the need to rerun the Wrapper. One additional note on Wrapper
extensions: it is also possible that an entirely different Wrapper can be
used. The only requirement on the Wrapper is that it create a procedure
which takes an XML document of the correct type and returns another XML
document of the correct type. In practice, these XML documents (their
in memory representation) will be Tcl namespace references.
The Typer is another potential area for extension. The Core API will
cover the allowable methods of creating types. A similar line of reasoning
for Wrapper extensions can be applied to the Typer. In both cases, extensions
will either make an assumption which limits the amount of data needed, or
will be able to find the data needed from another source.
Following WS-I Basic Profile, tWSDL will only support SOAP over HTTP.
However, it should be possible to add additional protocols as an extension.
Several components will be relatively fixed. These will be the Invoker,
the Type Checker and the Protocol Checker. Each of these components will
operate under the direction of the tWSDL Core.