Artifact [4836908638]
Not logged in

Artifact 48369086389d978f15c957d91e61b1e508cae283def540471f7389503e7a7634:

Wiki page [Web Services for Tcl (aka tclws)] by oehhar 2019-12-03 20:13:44.
D 2019-12-03T20:13:44.964
L Web\sServices\sfor\sTcl\s(aka\stclws)
P 4d28ca51edf492c3a16edc3bf51ccef911190139c44309a7dd76074edd73b247
U oehhar
W 4477
<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-lang.org/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>

<h1>Documentation</h1>
Documentation for the  tclws package is available at the following links:
<ul>
<li><a href="https://core.tcl-lang.org/tclws/doc/tip/docs/index.html">Current Trunk</a>
<li><a href="https://core.tcl-lang.org/tclws/doc/690ad6e282/docs/index.html">Version 2.6.3</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 (minimum versions specified):
<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 [https://core.tcl-lang.org/tcllib|TclLib]
 <li> uri from [https://core.tcl-lang.org/tcllib|TclLib]
 <li> struct::set from [https://core.tcl-lang.org/tcllib/|TclLib]
 <li> http from [http://core.tcl-lang.org/tcl/|Tcl] itself (min version 2.8.12 to have continue bug fixed [https://core.tcl-lang.org/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 [https://core.tcl-lang.org/tcllib|TclLib]
 <li> html from [https://core.tcl-lang.org/tcllib|TclLib]
 <li> ncgi from [https://core.tcl-lang.org/tcllib|TclLib]
 <li> fileutil from [https://core.tcl-lang.org/tcllib|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 fdcd67bfcd302f6fd6982218aa30f6c4