4S4C aka Simon's SOAP Server Services For COMThis 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
- Apache SOAP v2.0
- IdooXoap Java
- DevelopMentor's / Keith Brown's SOAP/Perl 0.28
- Microsoft SOAP Toolkit v2.0
- 4s4c now passes Dave Winer's SOAP Validator tests.
- Apache Axis
- .NET Web services
- .NET Remoting
- Frontier / Radio Userland
- soap.py (actzero.com)
- Softtronic C-Core/SOAP
There is also a live SMTP Endpoint available for testing with, simply send an email to firstname.lastname@example.org, with the following request in the email body
perl -w add.pl soap.4s4c.com 80 /ssss4c/soap.asp
This is mapped to the following COM method
<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"> <number>10</number> <number>20</number> <number>30</number> <number>50</number> <number>100</number> </nums> </m:doubler> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
HRESULT doubler ( [in,out] SAFEARRAY(long) * nums ) ;
Changes for v1.3.8
- Generated WSDL now contains the required <import> element to import the SOAP encoding namespace, in the generated schema section.
- VT_CY and VT_DECIMAL are mapped to xsd:decimal.
- The response XML now contains an XML version header.
- NULL SAFEARRAYS were always mapped to xsd:ur-type, even if XSD is mapped to the 2001 schema, now xsd:anyType is used when the 2001 schema is in effect.
- The SMTP Listener has been updated to comply with the proposed SMTP Binding spec
Coming UpThe next major release of 4s4c will be use the SOAP engine from PocketSOAP, thus adding support for custom serializers, headers, DIME, MIME etc.
DownloadsYou 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.