|
Managing Web Services in Production
Realizing 24x7 Web services is difficult without taking management aspects into consideration right from the design phase
by Anant Kadiyala
October 13, 2004
Making Web services available 24x7 is a challenging task. As enterprise Web services mature from pilot to mission-critical phase, high reliability and robust performance are an absolute necessity. You need to consider many aspects to be able to run and manage mission-critical Web services in production.
Management Architectures
There are three common architectures for managing applications: agent model, proxy model, and hybrid model. Agents are add-ons that piggy-back on the infrastructure of the existing application container. In Java, Java Management Extensions (JMX) agents are commonly used to monitor applications. Proxies (in Web service deployments) are stand-alone applications that sit between the consumer and producer of a service. Each of these models has its own set of pros and cons. The hybrid model is a combination of agent and proxy models.
A Web service has two types of logic associated with it: business logic and management logic, but here we'll discuss only management aspects. The artifacts of managing Web services include versioning (and organic growth), dependency management, maintaining quality of service (QoS), provisioning, security, interoperability, auditing, logging, alerting, resilience, and reporting. Administrators also need to worry about the "ilities" of the system like availability, reliability, and scalability.
Separation of concerns has long been a golden rule in software development. While the producer concentrates on providing business logic, a separate framework, namely a Web services management framework, provides the necessary management support. Because most of the Web services have a common base set of minimum management requirements, externalizing the management logic so that it can be managed centrally is a good idea.
The OASIS committee is in the process of defining a standard interoperable model for managing Web services. The model is called Web Services Distributed Management (WSDM, pronounced "wisdom").
For non-trivial applications, consumers of a service seldom talk directly to the producer (or end point). In fact, the "middleman" (as depicted in Figure 1) intercepts requests from the consumer, reads the SOAP headers, and takes smart actions such as authentication, authorization, policy management, routing, logging, and so on. This "middleman" is called the intermediary. The intermediaries implement the facets of the Web service management framework. Apart from managing, intermediaries also provide a layer of indirection between the consumer and producer and make the infrastructure more resilient.
Figure 2 depicts a more realistic architecture with the intermediaries. In the real world, they comprise a set of servers, each specializing in certain aspects for Web services management infrastructure.
Back to top
|