Building Web Services with HydraExpress
Overview
HydraExpress supports the creation of dynamic Web services that feature highly-configurable components and easy customization.
Services created with the HydraExpress code generator are built on top of the Rogue Wave Services Framework (RWSF) Core Library. This arrangement allows the generated code to remain fairly simple. The complexities of SOAP, XML, and networking are largely encapsulated by the supporting libraries.
HydraExpress can create both client-side components and server-side components for the service described in a WSDL file. Depending on how the WSDL file defines messaging for its service operations, the code generator may generate code for standard Web service request-response messages, server-initiated solicit-response messages, one-way messages, or notification. All message patterns can be implemented synchronously or asynchronously.
HydraExpress creates a dynamic, flexible framework. A number of XML-based configuration files allow modification of the runtime system. In addition, each project contains generated configuration files for setting up parameters associated with the project. With them, you can add transports, connectors, message handlers, or any other functional C++ object to the project without changing the generated code. Message handlers can be chained to create arbitrarily complex message handling. All configured objects are selectable at runtime.
If the WSDL file has an embedded schema, or references a schema, HydraExpress also generates a C++ data binding for the XML datatypes defined by the schema.
In addition, HydraExpress can generate numerous support files that greatly speed and simplify application development. These include
makefiles
MSVC project files
sample client applications and server implementations
a service descriptor
HTML documentation for the generated client and server classes, and for any XML datatypes associated with the service
For more background on the generated files, see
Chapter 20, The HydraExpress Code Generator.The remainder of this chapter addresses the following topics:
HydraExpress as a dynamic system
handling of complex datatypes
Web services and Service-Oriented Architectures (SOA)