Artifact Content
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.

Artifact 997dd05c826f939b7cd9dc844f497ec10e1ccf663aca463841b27b439a990764:

Wiki page [Web Services for Tcl (aka tclws)] by oehhar 2018-12-06 12:49:13.
D 2018-12-06T12:49:13.841
L Web\sServices\sfor\sTcl\s(aka\stclws)
P a0028853a59632f581e9ba935252ec3160a12f175d9ae031ace4c607ee539d99
U oehhar
W 4491
<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:[email protected]|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.6.2/docs/index.html">Version 2.6.2</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>
Release notes, ZIP and Tarball files are available 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 (min version 2.8.12 to have continue bug fixed [https://core.tcl.tk/tcl/info/46b6edad51e645c7] (min Tcl 8.6.8), was needed for Microsoft WS)
</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 7e2ef2490a5c7311317aaacba6941a5b