4S4C aka Simon's SOAP Server Services For COM

This is a COM component that will invoke methods on COM objects (via any automation compatible interface), from a SOAP request message, and return the results as a SOAP response message.

The Dispatcher component uses the Apache.org Xerces-C SAX2 Parser for parsing the request XML. (there are no dependencies on MSXML), and is largely driven by the Type Information for the method being called, there is no requirement for a separate services or schema description. The bulk of the work so far has gone into the SOAP->COM dispatcher, which supports most automation types including 1 dimensional safearrays and complex types which are mapped to structures (aka UDT's)

Included are two listener applications, one for HTTP (using ASP), and one for SMTP (using the Windows 2000 SMTP Server), the SMTP listener was updated in v1.3.8 to comply with the proposed SMTP binding.

The SOAP side has been tested for interop with the following SOAP Toolkits, and contains sample clients for most of them In addition tests done by the members of the soap builders mailing list, show interop with many other toolkits including. There is a live HTTP Endpoint available for testing with at http://soap.4s4c.com/ssss4c/soap.asp, this hosts the demo server component, you can try out the IE5/MSXML demo from http://soap.4s4c.com/ssss4c/default.asp. Or run the SOAP/Perl tests with
perl -w add.pl soap.4s4c.com 80 /ssss4c/soap.asp
There is also a live SMTP Endpoint available for testing with, simply send an email to soap-listener@zaks.demon.co.uk, with the following request in the email body
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
 <SOAP-ENV:Body>
  <m:doubler xmlns:m="http://simon.fell.com/calc">
   <nums SOAP-ENC:arrayType="xsd:int[5]">
	<number>10</number>
	<number>20</number>
	<number>30</number>
	<number>50</number>
	<number>100</number>
   </nums>
  </m:doubler>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
This is mapped to the following COM method
HRESULT doubler ( [in,out] SAFEARRAY(long) * nums ) ;

Changes for v1.3.8

See the full version history

Coming Up

The next major release of 4s4c will be use the SOAP engine from PocketSOAP, thus adding support for custom serializers, headers, DIME, MIME etc.

Downloads

You can read the full online doc's, or dive straight in and download the components.

You should probably read the install instructions before starting the install.
Download the latest release, v1.3.8 here, this requires Windows Installer 1.1. There's also a Merge Module available that installs the core components, so that you can install 4s4c along with your own products.