Logo WHITE MESA SOFTWARE
Home   Download   Links   Documentation
 

White Mesa SOAP Server: Release History

Current Release: 3.2

Version 3.2 introduces:

  • Implements the W3C SOAP 1.2 Recommendation of 24 June 2003. The SOAP 1.2 envelope version is now fixed at "http://www.w3.org/2003/05/soap-envelope", along with other necessary namespace and URI adjustments.
  • Fixed bug in which empty SOAP "Header" elements were not forwarded when the server is acting in an intermediary role and relays the message to another node.

Version 3.1 introduced:

  • Support for "rpc/literal" services per the WS-I Basic Profile v1.0 specification. Specification of use="literal" in the soap:body extension elements within the WSDL description of an RPC service results in the correct behavior by the White Mesa SOAP Server and client libraries. Serialization/deserialization of RPC messages is accomplished in a manner transparent to RPC service provider objects and clients, whether use is "encoded" or "literal".
  • A suite of browser based test clients, and a supporting WSDL document is provided to implement tests of the "rpc/literal" features. Endpoints for both SOAP 1.1 and SOAP 1.2 versions of the test suite are defined and work "out of the box" after installation.
  • Support for "literal" serialization of SOAP Fault message detail child elements. Specification of use="literal" in soap:fault extension elements results in the correct behavior by the White Mesa SOAP Server and client libraries. Serialization/deserialization of Fault detail child elements is accomplished in a manner transparent to RPC service provider objects and clients, whether use is "encoded" or "literal".
  • White Mesa clients now use the "action" parameter of the SOAP Media Type to convey any "SOAPAction" value (passed in by the application) when generating a SOAP 1.2 request. The White Mesa Server will capture this value from the HTTP "Content-Type" header rather than a "SOAPAction" header when a SOAP 1.2 message is received. The behavior of the Server is determined by the SOAP 1.2 binding given in the WSDL document for a service. The soap12:operation extension element in the SOAP 1.2 binding may contain two attributes of interest: the "soapAction" attribute specifies the action value expected, and the "soapActionRequired" attribute specifies whether or not use of the action parameter is mandatory. If soapActionRequired="true" for a given operation, the Server will generate a fault message if a request does not contain an action parameter, or the value of the action parameter conflicts with that given in the binding.
  • The WSDL Reader and XMLDocument Class now handle redirects properly when loading a document using HTTP GET. Also, a bug was fixed in which document URLs containing a query string were mishandled.
 

Version 3.0 introduced:

  • Support for SOAP 1.2 (Candidate Rec Version), including the Web Method feature. The WSDL reader component now recognizes the SOAP 1.2 binding extensions for WSDL 1.1 which are published on the Soapbuilders list site. The behavior of client libraries and the Server is determined by the choice of SOAP binding used for a service endpoint (port). This is specified in the WSDL document describing the service.
  • An intial implementation of the SOAP 1.2 Test Collection is included, ready to run, along with simple browser based test clients to drive the test services.
  • Server configuration data now stored in XML document rather than registry, to simplify backup and allow modification using a text editor.
  • SOAP client classes now have HTTP proxy support.
  • Additional convenience classes are included to ease the creation of SOAP clients and header/body processors for applications using "document" style SOAP messages.
  • The Header processing system has changed to support the SOAP 1.2 requirement that all header blocks be verified as "understood" by a Header block processor before actual processing begins. These changes are outlined here.
  • A improved digest authentication scheme is now used by the Control Panel applications, the SOAP Digest Authentication SOAP extension. Authentication services are now provided by the wmsoapauthsvc Header processor.
  • A log file rotation feature has been added. If enabled, open log files are rotated periodically, the interval is controlled by the "logRotationInterval" parameter in the server configuration file. The interval is specified in hours, and may have any value in the range 1 to 1193 (49 days).
  • Individual services may now be enabled/disabled using one of the Control Panel applications while the Server is running.
  • Individual services may be configured so that the "xsi:type" attribute containing type information is placed on accessor elements for SOAP RPC response messages, which use SOAP Encoding. This is useful if clients using the service require this information ("explicit" typing) in order to process responses. The SOAP and DIME RPC clients can be configured to do the same for the request messages they generate.
  • Individual services may now be configured to so that the soap-enc:nodeType attribute is placed on accessor elements of SOAP 1.2 RPC response messages, which use SOAP Encoding. The SOAP and DIME RPC clients can be configured to do the same for the request messages they generate.
  • The Server may now be bound to a specific IP address by means of an entry in the configuration file.
  • Services may now be assigned multiple "actor" (SOAP 1.1) or "role" (SOAP 1.2) URIs. These are the identities assumed by the SOAP node for the purpose of determining whether or not it is the target of Header blocks contained in a SOAP message.
  • The source code is now distributed as a VS.NET "solution", and requires Visual C++ v7.0 to compile. It remains an ordinary C++ application ("unmanaged code" in .NET parlance) and does not require the .NET Framework to run.
  • Many other enhancements and bug fixes, including easier installation.
  • The key COM support component interfaces Iwmsoapmsg and Iwmwsdlclient have been revised to Iwmsoapmsg2 and Iwmwsdlclient2 in order to support additional functionality.
  • Please Note: because of extensive change to support SOAP 1.2 functionality, White Mesa SOAP Server v3.0 is NOT backward compatible with earlier versions. Applications developed for earlier versions require slight modification and a recompile to work under version 3.0 (Details here..)
 

Version 2.7 introduced:

  • Added support for DIME packaging of SOAP messages, including "attachments". Details here.
  • Added support for "one-way" message exchange pattern for document style operations.
  • Enhancements to WS-Routing implementation to improve compliance with spec.
  • Various bug fixes.
  • Release 2.7.1:
    • Fixed bug in DIME test client program which prevented temporary files from being deleted from disk.
  • Release 2.7.2:
    • Updated DIME support to comply with revised DIME and WS-Attachments specs of June 17, 2002.
    • Added limited support for DIME "options", available to doc/literal applications.
    • Client is now allowed to force DIME packaging of SOAP request message even if it contains no attachments.
    • Fixed bug in WSDL reader preventing proper default namespace resolution in attribute values of type "qname".
    • Fixed bug preventing proper line counting in XML parser.
 

Previous Releases

Version 2.6 introduced:

  • Support for "document" style SOAP messaging. Details here. A sample document style service is provided (interopsvcdoc.dll), along with a suite of brower based test clients (interopdoc_index.htm), and WSDL document (interopdoc.wsdl)
  • Support for "literal" type header entries... mixed literal and encoded header entries are properly handled. Details here.
  • An revised implementation of the Web Services Routing Protocol is provided, along with a test service, browser based test client, and supporting WSDL docs. The WS-Routing test endpoint will be configured and ready to go immediately after installation. This version uses "literal" WS-Routing header entries, and supersedes the previous version. Details here.
  • Fixed bug in intermediary functionality... forwarded message elements are reproduced accurately, "encodingStyle" information is preserved.
  • Fixed memory leak in server-side remote control facility.
  • Fixed several memory leaks in interop "base" and "Group B" services.
  • Fixed Common Log Format time bug... local time now used.
  • Fixed bug causing return of improper fault message in certain header processing failure scenarios.
  • Release 2.6.1:
    • Fixed WSDL processing bug preventing operations imported from another namespace from being recognized.
    • Fixed bug preventing Section 5 decoding of SOAP RPC messages when the SOAP-ENV:encodingStyle attribute was not present.
  • Release 2.6.2:
    • Further WSDL processing improvements, including support for simpleTypes, elementFormDefault, and anonymous type declarations in schemas.
    • Fixed HTTP client bug in which "Host" HTTP header value failed to include port number when other than the default (80).
 

Version 2.5 introduced:

  • An experimental implementation of the Web Services Routing Protocol is provided, along with a test service, browser based test client, and supporting WSDL docs. The WS-Routing test endpoint will be configured and ready to go immediately after installation. Note: superseded by the implementation provided in Release 2.6.0
  • Support for struct members with qualified names.
  • Support for xsi:nil (xsi:null if using 1999 Schema) attributes for simple type accessors.
  • Support for polymorphic accessors for simple types (these are declared with type "anyType" in WSDL, and must carry an "xsi:type" attribute).
  • Fixed thread synchronization problem in SOAP Listener.
  • Release 2.5.1:
    • Support for relative URIs in WSDL "import" element "location" attribute.
    • Support for "style" attribute in WSDL "operation" elements.
    • Fixed HTTP header line unfolding bug.
    • Fixed Winsock asynch I/O bug causing crashes under heavy load... Special thanks to Jeremy Frens.
    • Fixed Winsock bug causing crashes when MS Winsock Proxy Client is installed on same machine as server... Again, thanks Jeremy!
    • Fixed bug causing "root" attribute to be ignored on header entry elements.
    • Added an experimental implementation of a SOAP Extension providing Digest Authentication facilities for use with any SOAP service. Browser based test clients and a test service are configured and ready to go immediately after installation. Details here.

Version 2.4 introduced:

  • Support for xsd:dateTime (xsd:timeInstant if using 1999 Schema), xsd:date, and xsd:time types.
  • Support for xsd:decimal type.
  • Support for xsi:nil (xsi:null if using 1999 Schema) attribute in deserializer for structs, arrays, strings, and byte array types.
  • Added additional methods to "interop" test suite.
  • Added component implementing the "Notification" service, part of Simon Fell's SOAP Interop Registration and Notification Service. This service receives notifications when the Registration database is updated.
  • Fixed bug preventing request message from appearing in trace log output if deserialization failed.
  • 2.4.1: Added support for decimal type.
  • 2.4.2: Fixed time zone conversion bug in deserializer.
  • 2.4.3: Fixed serialization bug affecting arrays of time and date types.

Version 2.3 introduced:

  • Support for xsd:hexBinary type. Encoding/decoding is automatic.
  • Changed xsd:string types in Digest Authentication headers (used in the White Mesa SOAP server's remote control service) to xsd:hexBinary for struct members carrying MD5 hashes.
  • Fixed bug in serialization/deserialization of base64 types.
  • Additional rework of serialization/deserialization code.

Version 2.2 introduced:

  • More WSDL 1.1 features:
    • Support for WSDL import functionality. This allows allows the "separation of the different elements of a service definition into independent documents, which can then be imported as needed" (WSDL 1.1 sec. 2.1.2). This is great for importing WSDL docs containing the abstract interface or binding definitions into one's own doc containing the service and port definitions. Here is an example of such a document.
    • Support for soap:header declarations. This allows header entry elements to be declared as message "parts" and referenced in the SOAP binding on a per operation basis. This provides a convenient way to document header entries, and was the result of the changes made to WSDL section 3.7 in the 1.1 version.
    • Support for soap:headerfault declarations. These are nested within a soap:header declaration and declare the header(s) that will be returned if the processing of the enclosing header results in a fault. This is a new feature introduced in WSDL 1.1.
    • Support for soap:fault declarations. This allows SOAP Fault message "detail" elements returned in a fault message to be declared on a per operation basis.
    • The White Mesa WSDL Reader used by the client and server understands these extension elements. The information they convey is used to serialize/deserialize header entry elements and fault message detail elements. Here is an example of the use of soap:header and soap:headerfault in the WSDL document for the White Mesa SOAP server's remote control service. The headers involved support the Digest Authentication scheme for the service.
  • Added "wmechoheader" header handler. It functions to "echo" headers received in SOAP request messages back to the sender for test purposes.
  • More bug fixes.

Version 2.1 introduced:

  • Added mult-ref support (id/href).
  • Added support for WSDL 1.1 "arrayType" feature.
  • Added "echoBase64()" demonstration service method.
  • Added "wmmsgrouter" dynamic message path header handler.
  • "xsi:type" explicit typing checked for conflicts with WSDL doc for service.
  • Improved SOAP spec compliance.
  • Misc. bug fixes.

Home   Download   Links   Documentation

Copyright © 2003 by Robert Cunnings.   cunnings@whitemesa.com  Last modified: June 29, 2003