Principle #3Adopt SOAP Messages for Management
As much as possible, Web service management operations should be conducted via SOAP messages to the Web services platform, rather than through proprietary interfaces or commands (this is really a consequence of using Principle #2
). Conforming to SOAP messages provides a uniform model for invoking management operations.
Managing Web services at the SOAP level complements and does not compete with other capabilities for management, such as WMI (Windows Management Instrumentation) or JMX (Java Management Extension), that are available through C#, Java, VB, or C++ methods. JMX is a standard in the Java environment for management of Java objects. WMI is an equivalent management standard in Windows. These two technologies support the Web services platform "under the covers" in their respective fields. They will be mentioned again in this article as playing an important role in the management tasks. Notice that relying on a SOAP interface frees management clients from the particular language implementation.
Web services, like objects, may conform to more than one interface within one WSDL document. This is achieved using different port specifications, where a port is a WSDL facility that allows for different contact points with a Web service. This presents an opportunity to the developer to have one or more business interfaces in one WSDL document and one or more management interfaces in a separate WSDL specification for the same Web service.
Benefits of Managing Through SOAP Messages
Organizing the management of a Web service by sending and receiving SOAP messages to it provides the following benefits:
- the developer of the Web service can avoid dealing with a separate management programming API
- management functionality can be discovered in the same way as Web service business interfaces
- security of management actions can, to a certain extent, leverage the same technology used for secure invocation of the business interface
- the SOAP servers, the common gateways for calling a Web service, can also form an access point for management functionality as well as business functionality for a Web service
- intermediaries between the service consuming party and the service providing party can perform management from an aggregation or "portal" site (see Figure 1)
|Figure 1: Management platforms should manage remote Web services from a central point.
There are several good examples illustrating the application of a management interface. In the SOAP interface for managing a Web service, we may have operations that:
ask the service how many messages it has processed in the last hour
ask the service what the size, nature, and processing time for the largest message it handled were
ask the service to reset its internal state variables
ask the service to shut itself down