SOAP Message Monitoring and Logging
Web service management platforms must be able to monitor the input and output messages for all active services. This requirement allows the platform to track and forward SOAP messages, and data about these messages, to management tools for diagnostics and performance measurements purposes.
Many industries are required to provide tracing and logging capabilities for accounting as well as regulatory purposes, so a management platform will play an essential role in these situations. Message monitoring allows the management platform to log all messages. There is also a need to provide filtering of messages, based on policies, so that only select messages are logged. Again, a management platform can fulfill this filtering requirement.
To adequately understand the usage of a service, a management platform must know the flow of messages in and out of a Web service. It also must watch the consumption of the Web service by different consumers. Information about service consumers includes:
- Who is using the service the most or least?
- How are consumers using the service's internal components?
- When are services either in use or not in use?
To accomplish this, either the Web service itself or the Web service platform on which it runs, must be able to identify the source and destination of SOAP messages.
Managing Robustness of Web Services
There are a number of circumstances that must be considered by the developer before a Web service can be put into production. For example, how many instances of that service should be allowed to run? What difficulties are faced when replacing a Web service with a new version? Runtime performance is often crucial to customer satisfaction, so assistance in this area is a must.
Managing Multiple Instances of a Web Service
Successful Web services, like successful Web sites, are used by many consumers and are expected to be available all the time. To achieve this, the designer of a Web service-based system will need to eliminate single points of failure. One way to implement this is to allow multiple instances of the service to be coexist, perhaps on multiple machines. From the perspective of the management platform, an additional qualifier is needed in these situations to identify each particular instance of a Web service.
Multiple instances of Web services are required in order to balance a high load of request traffic from consumers. The Web services platform can be the software that is responsible for load balancing. In this case, the platform must be able to interrogate all instances of a particular Web service, to determine what the relative loading is on each of those instances. Management platforms should allow for visibility of the load on all instances and for shifting of excess load from instance to instance. This would allow developers and administrators flexibility to handle many types of high-load situations.
Managing the Provisioning of a Web Service
Until testing of a Web service is performed, it is unclear exactly how many instances are required to handle certain types of high loads. Once load testing is performed, the management platform should allow an administrator to chose the appropriate number of instances for a given circumstance and the machine locations where they will best operate. The management platform can then provision these instances and know ahead of time when to invoke instances on different machines.
Managing the Performance of a Web Service
The management tools should allow the developer to detect any bottlenecks that exist in the use of the Web service or in its internal workings. Both response time and uptime are measures of the quality of a Web service. Web services may be used in situations where a service-level agreement (SLA) exists between companies. For example, a Web service may need to achieve a response time of 1 second or less and it must be available 24 hours a day, 7 days a week. The management platform must be able to recognize when these requirements of an SLA are not being met, based on the traffic it sees the Web service handling, and take some action at that point.
This is an area where management and testing of Web services overlap. The same tools that a developer might use to test runtime performance might also be used to identify deployment issues.
These measures are useful throughout the development lifecycle. For example, the overhead in processing a very large XML document may need to be taken into account when designing the granularity of a Web service. After customers use a Web service that uses document-style messaging, management information might show that performance can be improved by implementing RPC-style messaging.