s companies begin to implement Web services, IT managers are being confronted with the long-term ramifications of their deployment. Namely, management and support of Web services will ensure that they are well integrated, scalable, and maintainable. It is rare to find an organization that has considered these issues adequately in their current Web service implementations.
If you take only a cursory look at current Web services architectures, you might assume that once a Web service is deployed it can remain a viable entity. Pull the covers back and support issues become evident, such as:
Outline Key Functional Requirements
It is useful to separate out the management of the Web service from the management of the platform on which the service runs (the Web services platform). Think of the Web services platform as the interpreter of SOAP messages on their way to the Web service itself. By making use of its understanding of SOAP messages, the Web services platform can help the developer by taking over parts of the management functions.
Many vendors have Web services platform products on which developers will build their Web services, and those vendors will also supply some management capabilities with their products. However, developers cannot rely solely on the management features that come with the platform; you'll need to build some extra functionality to ensure your Web service is indeed manageable.
The key concerns in managing Web services begin with runtime instantiation and responsiveness to requests. These issues include:
A set of standard SOAP messages is required for all but the first of the above functions. Some of these facilities are built into today's tools, but the coverage is not complete.
If these capabilities will be invoked in the service through a set of management-specific SOAP messages, then the management side of any service can parallel the client side in its implementation. The Web services platform may intercept some of these management messages and act on them on behalf of the Web service.
Web Service Status
To monitor a Web service, a Web services platform might watch SOAP messages and expect a response from a Web service in a specified amount of time. Should no response message be generated by the Web service, the management platform would raise an alert with associated information about the request and the component that has seemingly failed.
Another way to check the status of a Web service is through its interface. By sending a ping-like message to the service, a management agent can detect that the service is up and running, as well as measure the round-trip response time of the SOAP message. This approach does not require explicit coding in the Web service itself.
Checking the status of a Web service can be extended to produce a description of the entire interface as a WSDL specification. This can be useful to both potential consumers of the service and to a testing framework. In this case, the developer would provide a method that returns the WSDL specification of its interfaces. A testing framework could use this information to generate a suite of test programs that exercise the interfaces.
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.
Measuring Usage
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:
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.
Web Service Change Management
Because Web services are used to implement business functions, and these functions change as business changes, there needs to be platform support for commissioning and decommissioning different versions of a service over time. There are several aspects of this requirement that need to be considered. Foremost, will the public interface to the service change or remain the same? If the interface remains the same, then replacing old versions of a service with a newer version can be transparent to the consumers. The management platform must keep track of the service and its versions.
When the service interface (i.e. the set of operations it obeys) changes, the management platform has a much more difficult task. It could simply discontinue using the older version, but then any consumers that depend on that version would no longer be able to contact their Web service. Rather, the management platform must be able to keep track of the versions that are in use. The Web services platform can invoke the appropriate version based on consumer requests, if the consumer is prepared to nominate the version in which they are interested.
For this kind of change management to exist, mechanisms must be in place to:
Web Services Interoperability
Web services extend the promise of allowing disparate applications to talk to each other via a common data and operation representation, i.e. the SOAP messages and the WSDL interfaces to which they conform. Managing this interoperability feature means that certain compliance tests are needed to ensure that new Web services conform to the rules of engagement between, for example, a J2EE-based Web service and a .NET-based Web service. Management tools are required to facilitate sending test messages to a Web service to ensure that it responds in an appropriate way. A repository of test messages must be maintained and updated such that suitable interoperability testing can easily be done, even in the absence of a real client application.
Managing the Security Aspects of Web Services
Web services can represent interfaces into business functions of a corporation. As such, proper levels of security must be strictly enforced. Early adopters are using Secure Socket Layer (SSL) technology as an introductory step to security. This technology secures the connection between two endpoints and allows for client- or server-side authentication and message encryption. It falls short, however, in the areas of:
There are really two main issues for securing Web services. The first is the secure communication of SOAP messages across the network, which is addressed by the WS-Security standard. The other is the secure management of Web services.
Secure SOAP Messaging
When sending SOAP messages across the firewalls that protect enterprises from attack (and in some cases within an enterprise), there is a need for Web services to have adequate levels of security in the following ways:
Secure Management of Web Services
There are additional requirements, beyond the level of the SOAP message, for the secure management of Web services.
Putting Requirements to Good Use
The purpose of generating these requirements is to help developers who are building Web services achieve a successful, maintainable implementation over the long haul, regardless of their deployment platform. No single company or organization has yet proposed an implementation for the rich set of requirements for the management of deployed services, although the industry is working on this. For now, IT departments are on their own to define them.
Furthermore, these requirements can be used by IT developers and managers to influence tool and platform vendors and to judge management products for purchase decisions. If you're making a buying decision, do not hesitate to confront your vendor about all the requirements discussed in this article; each of them is important to your success.
Finally, developers who are keenly aware of deployment and management issues are on the right path to deploy truly robust Web services that will satisfy customers and partners and keep coming back for your business.
| © Copyright Hewlett-Packard Company |
| DevX is a division of Internet.com. © Copyright 2010 Internet.com. All Rights Reserved. Legal Notices |