Wiki page
[Web Services for Tcl (aka tclws)] by
oehhar
2017-11-06 14:23:29.
D 2017-11-06T14:23:29.163
L Web\sServices\sfor\sTcl\s(aka\stclws)
P 56f21e0eb4b58738830f51a582d1b4b137868f3d
U oehhar
W 4352
<h1>Summary</h1>
<p>
The distribution provides both client side access to Web Services and server side creation of Web Services. Currently only document/literal and rpc/encoded with HTTP Soap transport are supported on the client side. The server side currently works with several web servers(see below). It provides all services as document/literal over HTTP Soap transport. Documentation for the package, including examples can be found here. The distribution consist of several packages.
</p>
<h1>Mirrors</h1>
<p>
This project has the following public repositories:
<ul>
<li>[http://core.tcl.tk/tclws|Core Tcl/Tk host] -- This is the main repository. Please enter all tickets, checkin, etc here.
<li>[http://chiselapp.com/user/gwlester/repository/tclws/index|Chisel App host]
</ul>
</p>
<p>
If you decide to make a public mirror of this repository, please [mailto:Gerald.Lester@gmail.com|email] me to location so that we can list it here.
</p>
<h1>Documentation</h1>
Documentation for the tclws package is available at the following links:
<ul>
<li><a href="http://core.tcl.tk/tclws/doc/tip/docs/index.html">Current Trunk</a>
<li><a href="http://core.tcl.tk/tclws/doc/Release_2.3.8/docs/index.html">Version 2.3.8</a>
</ul>
<p>
The client is known to work with several providers of Web Services (your mileage may very).
Also these [clients] have been tested to work with the Web Services provided by the WS::Server (server side) package of tclws.
</p>
<h1>Web Servers</h1>
<p>
The server side works with the following web servers (see [WebServerSettings| Web Server Settings] for known required options):
<ul>
<li> [http://tclhttpd.sourceforge.net/|TclHttpd]
<li> Apache with [http://tcl.apache.org/rivet|Rivet]
<li> [http://www.aolserver.com|AOLserver]
<li> [http://code.google.com/p/wub/|WUB]
<li> [http://wiki.tcl.tk/23626|wibble]
<li> Embedded mode (see [Embedding])
<li> Microsoft Internet Information Server
</ul>
</p>
<h1>Download</h1>
<p>
ZIP and Tarball files are available for downloading at the [Downloads] page.
</p>
<h1>License</h1>
<p>
Standard BSD [license].
</p>
<h1>Packages Required</h1>
<p>
The following packages are used:
<ul>
<li> [http://tcl.sf.net/|Tcl 8.5]
<li> [http://www.tdom.org|tdom 0.8.1]
<li> [http://tls.sf.net|tls]
<li> log from [http://tcllib.sf.net/|TclLib]
<li> uri from [http://tcllib.sf.net/|TclLib]
<li> struct::set from [http://tcllib.sf.net/|TclLib]
<li> http from [http://tcl.sf.net/|Tcl] itself
</ul>
</p>
<p>
Additionally, if you are running the [http://tclhttpd.sourceforge.net/|TclHttpd] on Windows, it is highly recommended that you use the [http://sourceforge.net/projects/iocpsock|iocpsock] extension.
</p>
<p>
Lastly the following packages are additionally used in Embedded mode:
<ul>
<li> base64 from [http://tcllib.sf.net/|TclLib]
<li> html from [http://tcllib.sf.net/|TclLib]
<li> ncgi from [http://tcllib.sf.net/|TclLib]
<li> fileutil from [http://tcllib.sf.net/|TclLib]
</ul>
</p>
<h1>Standards</h1>
TCLWS implements a limited set of standards used under the keyword "Web-Service".
<h2>Implemented standards</h2>
<h3>WSDL</h3>
WSDL describes an XML document (the WSDL file), which describes the methods and their parameters of the web service.
WSDL 1.1 is supported only. Spec: [http://xml.coverpages.org/wsdl20000929.html]
<h3>SOAP</h3>
SOAP describes the format of the call and response XML messages.
SOAP 1.0 is supported only. Spec: [https://www.w3.org/TR/2000/NOTE-SOAP-20000508/]
<h2>Missing features compared to the standards</h2>
<h3>Webservice call does not support namespace prefixes in subelement if not unique</h3>
As TCLWS only supports global namespace prefixes, it copies any namespace prefix in a subelement to the root.
An error will rise if this causes an ambiguity.
Thus, the following WSDL will lead to an error:
<verbatim>
<wsdl:definitions xmlns:q1="URI1" ...>
<xs:element xmlns:q1="URI2" type="q1:MessageQ1"/>
</verbatim>
While the following two are o.k.:
<verbatim>
<wsdl:definitions xmlns:q1="URI1" ...>
<xs:element xmlns:q1="URI1" type="q1:MessageQ1"/>
</verbatim>
and
<verbatim>
<wsdl:definitions xmlns:q1="URI1" ...>
<xs:element xmlns:q2="URI2" type="q2:MessageQ1"/>
</verbatim>
Z ff07c795565566e4be4a5b293d85c0fb