The following diagram demonstrates how a complete
Web Services application is created using the various
components of the OSS FWS Tools.
The OSS FWS compiler takes an WSDL 1.1 service description
as input, and generates header and control table files.
The compiler supports both document/literal and RPC/literal
service descriptions as mandated by WS-I Profile. The
generated header file contains C type definitions for the
application-specific content of the SOAP messages described
in the WSDL file. The control table file contains internal
information required by the OSS FWS Runtime component to
serialize/parse SOAP messages.
It is typical for SOAP toolkits to map operations defined
in the WSDL file to the functions of the target language.
The FWS compiler can optionally generate the following
client and server side functions for a WSDL operation.
-
Extract input parameters of an operation from a SOAP request envelope C structure
-
Extract input parameters of an operation from a serialized SOAP request message
-
Create a SOAP response envelope C structure from the output parameters of an operation
-
Create a serialized SOAP response message from the output parameters of an operation
Many other features are available in the FWS compiler. For example,
support for a helper API; generation of C++ - conformant code;
varying levels of diagnostics; and additional output files
(such as pretty-printed WSDL listings).
OSS FWS Runtime
The OSS FWS Runtime library is a collection of functions for
use in writing efficient Web Services applications in C and C++.
The library contains:
-
Web Services initialization and terminating functions to
allow loading (statically and dynamically) /releasing of
the Web Services control tables, and to support multiple
Web Services in an application
-
Serialization of Envelope C structures to Fast and XML
SOAP messages (both version 1.1 and 1.2).
-
Parsing of the XML and Fast SOAP messages. The parser
can invoke user-provided callback functions for each
header block and body/fault to perform application-specific
actions, and to control the parser to achieve the best
performance. Both versions of SOAP messages, 1.1 and 1.2
(detected automatically), are supported.
-
Creation of output SOAP message while parsing the
input message. Some components (header blocks, body/fault,
and/or application messages) of the input message can be
relayed as they are, without decoding, while other
components can be modified inside the callback functions
and added to the output message. This functionality is
useful for writing efficient intermediary SOAP nodes.
-
Conversion of XML SOAP messages into Fast SOAP messages
and vice versa.
-
Helper functions to create, access and modify the
Envelope C structure and its components
(header blocks, body, and fault content), and auxiliary
functions providing access to various features such as
relaxed SOAP processing.
The functionality of encoding, decoding, copying, comparing,
freeing the application-specific messages, changing the XML
namespace prefixes, compression with Zlib, support for file
and socket input/output etc. is also available to the Fast
Web Services applications.
OSS FWS Transport Layer (Coming Soon)
The transport-layer runtime library can be used to send and
receive SOAP messages. It encapsulates all transport
protocol-related functionality. FWS application code is
transport-independent; for example, the same Web Service
can be used as a CGI module, or as a standalone Server.
It is simply a matter of using a different transport mechanism.
The first version of the library will support only SOAP HTTP
bindings with the implementations of:
- HTTP client
- Simple standalone HTTP server
- CGI wrapper
- Fast CGI wrapper
Transport layers use a simple, open and documented API. Users
can plug-in their own transport layer if they don.t wish to use
the generic implementation of HTTP provided by OSS.
Free Trial
A 30 day free trial of the OSS FWS Web Services Tools
for Solaris, Linux, or Windows platforms can be
downloaded.
For more information, contact us at 1-888-OSS-2761
(USA and Canada only), +1-732-302-0750 (international),
or info@oss.com.
Copyright © 2010 OSS Nokalva, Inc. All Rights Reserved.