HomeDigital EditionSys-Con RadioSearch Web Services Cd
B2B Beginning WS Business Process Management Case Studies Content Management Distributing Computing e-Business Electronic Data Interchange Enterprise Industry Insight Integration Interviews Java & Web Services .NET Portal Product Reviews Scalability & Performance Security SOAP Source Code UDDI Wireless WS Standards WS Tips & Techniques WSDL WS Editorials XML

The Web services paradigm promises enterprises a flexible and robust infrastructure for assembling loosely coupled systems. Organizations can expose existing functionality to trading partners inside the company, within a consortium, and across an industry. Interfaces are well specified using WSDL, and communication is standardized as SOAP messages.

Vendors are rushing to release technology previews showcasing SOAP and WSDL support. These previews are great for learning the new paradigm and implementing toy Web services. For the Web services paradigm to thrive, these technology previews must mature into useful platforms supporting real applications. Press releases already tout the traditional enterprise infrastructure touchstones of performance, scalability, reliability, and security. But many current implementations are limited and don't have the architecture required to support mission-critical systems.

The Web services container provides a first-class environment for deploying, running, and managing Web services. In this article I present the requirements for a Web services container, which addresses the weaknesses of currently available SOAP implementations. The container embodies a collection of features necessary for substantial real-world use of Web services products. Its successful implemen-tation is a prerequisite for products that plan to deliver enterprise Web services features.

Web Service Infrastructure Requirements
Web services will establish new connections between widely disparate computing environments. The industry has done connectivity before and many companies know that enterprise connectivity mandates a certain set of requirements. Experienced vendors will bring to the market Web services products that perform and scale well, and are reliable and secure. But even these traditional product evaluation points have Web service-specific implications:

  • Performance: The standard requests-per-second metric is not critical at this stage. Web services hold the promise of automating manual connectivity and replacing e-mail, manually constructed chron jobs, ftp scripts, and even proprietary or custom data exchange over HTTP. The critical resource is not processor time or bandwidth; it's systems development expertise. To be successful, a Web service infrastructure must facilitate radically faster implementation and deployment than current approaches. As the paradigm is adopted and becomes widespread, traditional system throughput metrics will be more relevant. Note that the most applicable measurements won't resemble the test-lab metrics reported by middleware vendors. Rather, look to see quality of service and performance measurements based on real deployments and designed to parallel the numbers collected by application service providers. Sustained daily transaction volume, median response times, and hourly data flow rates for a deployed system will be better reflections of the real-world performance that can be achieved in a widely distributed environment that includes public networks and geographically distributed systems.
  • Scalability: Most current Java Web service implementations are constructed using an existing HTTP server infrastructure. Most are simple servlet code generation systems. Web servers and servlet engines have been carefully tuned over the last few years to provide good scalability across many connections and lots of hits. Unfortunately, these are the wrong metrics. Most Web pages are 10-20k in size. Most HTTP posts come from HTML forms and are 2-4k. The toy Web services published today include mortgage calculators, stock quote services, and mortgage calculators. These demos won't stress scalability. However, when Web services are deployed throughout the enterprise, they'll be carrying messages of 10 or 100 megabytes in both directions. Servlet engines will need to be re-tuned to carry this kind of payload.
  • Reliability: Web services sessions are currently stateless. This makes failover and other fault tolerance measures relatively easy to implement. However, sophisticated Web services applications will be constructed and many will require stateful connectivity. Vendors like IONA that have developed clustered, fault-tolerant J2EE, JMS, and CORBA implementations will leverage this infrastruc-ture to deliver the same features to Web services customers. In the near term, look for Web service products to deliver these features by leveraging transports that are more sophisticated than HTTP. JMS, TCP, SMTP, and even FTP come to mind. Enhancements to HTTP, like the proposed HTTPR, will improve the reliability of what is sure to be the most common transport in the short term.
  • Security: This one is obvious, but not trivial. It's one thing to let a customer send you a credit card number over the Web. Sending part of your accounts receivable database to a collection service is something else altogether. A security breach that effects one transaction implies radically different liabilities in these two examples. Another crucial point: current business-to-business and enterprise integration solutions connect a relatively small number of well-known participants. As Web services become common, the permutations of participants and service offerings will explode. While authentication will be required, seamless authorization and credentialing system integration will be essential.
The features listed above will be required of deployable Web service implementations; they're required behaviors of any legitimate distributed systems infrastructure. And that's exactly how they fall short as imperatives for Web service infrastructure vendors. These features don't uniquely identify or define Web services. They don't address the key value propositions of this new paradigm. As argued throughout this magazine and elsewhere, the Web services vision is unique and compelling. Implementations will let companies build new systems not previously feasible. The question we must address is: What characteristics are unique to the paradigm and necessary for the success of this new approach to integration?

Web Services Characteristics
Most Web services will be constructed to expose existing functionality to new partners. Web services will be gateways with interfaces tailored to specific usage patterns or even specific partners. Where IT systems are updated slowly with new features exposed quarterly, Web services will be constructed using eXtreme Programming techniques and updated biweekly. Web service platforms must support rapid, seamless rollout of new or improved Web services. Furthermore, the most robust platforms will support multiple versions of the same Web service.

In these early days the Web services infrastructure itself will evolve rapidly. IT systems may upgrade their infrastructure yearly, but groups implementing Web services will want to move immediately to the latest release of their chosen Web service platform to gain improved interoperability, new data type support, and enhancements in the enterprise characteristics listed above. It must be possible to upgrade the Web services platform with minimal impact on running services.

Many Web services will be implemented using HTTP as the SOAP transport. However, some early adopters will require (or discover that they require) the high quality of service that can only be delivered in the short term by using a more mature transport.

Standards-based Web services won't be constructed by hand, but rather assembled using an infrastructure product such as IONA's XMLBus. This is possibly the most significant benefit to be gained from WSDL, SOAP, and related JCP initiatives. Proprietary products have simmered for several years now and IT organizations have been manually building a few Internet-based services with some success. For example, the U.S. Postal Service has an offering at www.uspswebtools.com. These early Web services efforts have been relatively few because implementation requires a high level of skill, knowledge of cutting-edge technologies, and often a willingness to commit to a vendor's proprietary solution. The latter characteristic is perhaps the most painful, because efforts not based on standards offer no hope of interoperability.

The maturing Web services standards let vendors construct and promote competing products that are interoperable, comparable, and offer enormous developer productivity gains. They allow IT organizations to benefit from this paradigm without vendor lock-in and without developing the high levels of expertise required to build a custom solution. In short, the standards are central to the creation of a new infrastructure market. Successful projects will employ complete solutions that deliver an easy-to-use infrastructure for developing and deploying Web services.

Web services are new and not widely understood. Most IT organizations have no experience with or knowledge of the related standards. Widespread adoption can't be achieved by small groups of specialized consultants. How is it possible that this new paradigm will become common infra-structure?

The answer is that current IT staff will expose existing systems as Web services. These developers have an intimate understanding of existing systems and in many cases a solid understanding of distributed development or systems integration. This current skill set is largely sufficient. Successful Web services products won't impose a substantial learning curve. Instead, they'll deliver easy-to-use GUI tools and clear documentation to facilitate rapid successful use of the paradigm without requiring an in-depth knowledge of arcane marshalling details and new APIs.

Current SOAP Implementations
Most serious SOAP implementations on the market today are Java-based and have leveraged all relevant parts of the Java platform. They are J2EE or, more specifically, servlet applications. A single servlet or JSP, sometimes called a SOAP listener, receives incoming SOAP requests. Requests are parsed and dispatched to application logic implemented in local Java classes, remote EJBs, or on other platforms. Some variations generate a unique servlet for each Web service. This servlet and an associated runtime library must then be deployed into the host environment.

The benefits of these approaches include ease of implementation, rapid time-to-market, and a time-tested platform. This architecture, however, suffers from a serious flaw: these SOAP implementations are presented to users as J2EE applications rather than as enterprise platforms for distributed computing. In this context, SOAP message handling is a second-class addition to a platform and not a platform itself. An HTTP servlet-based implementation is subject to the following additional flaws:

  • The SOAP implementation architecture is specific to the HTTP protocol. As new protocols are added, users may not be presented with a consistent view of their Web services. It may, for example, require several different steps to activate a single Web service on different protocols. In addition, the interfaces exposed to the Web service implementation are likely to be transport-specific.
  • Class version conflicts between individual Web services, the SOAP servlet, dispatchers, and the application server will be difficult and awkward to resolve.
  • The deployment model requires that the application logic behind a Web service be visible to the host application server. This often requires that classes and libraries are included in the classpath, which means that the application server must be restarted to deploy a new Web service.
  • Web services consist of a collection of configuration data, WSDL, generated code, references to application implementation, and possibly SOAP dispatch code. The developer must correlate these different elements and manually deploy them in a configuration acceptable to the SOAP servlet. This architecture does not provide for bundling these resources to allow reliable deployment of a tested Web service to a production environment.
  • Web services require unique management interfaces. Listed alongside 800 deployed servlets, a Web service servlet will not be clearly identified as a unique and powerful resource to be carefully administered.
To overcome these limitations, and to provide a platform for enterprise-level Web services, a new approach is required. A Web service container encapsulates features that help to differentiate a proof-of-concept technology from a platform product.

A Web Service Container
A product capable of supporting projects with the characteristics listed above will provide a first-class environment for deploying and running Web services. A "Web service container" is under development and has three primary characteristics:

  • Ubiquity: Containers will be imbedded within a wide variety of platforms so that a vendor's Web services solution can be made available to virtually any project. Containers will be constructed to reside within an enterprise's existing applications. An analogy might be helpful: the Java virtual machine can be described as a hardware platform. Application servers are operating systems running on this platform. The Web service container is analogous to a network layer that facilitates communication between disparate systems. A critical feature of viable Web service containers is support for many host environments. The Web service container is not simply an extension to J2EE. Hosts will, of course, include major J2EE implementations but containers must also run in enterprise integration servers, message brokers, CORBA servers, and even proprietary environments developed by IT organizations. This ubiquity is necessary if functionality hosted on existing systems is to be exposed as Web services.

    To facilitate rapid evaluation and adoption by potential customers, containers will also be capable of running standalone using lightweight or reference implementation host environments. These standalone versions will likely evolve into full-fledged SOAP Servers. In addition to multiple host environments, the container will support multiple protocols. Most Web service implementations currently support HTTP. Look to see the industry leaders extend implementations to support JMS, SMTP, TCP, and other common delivery vehicles.

  • Usability: Management interfaces and JMX instrumentation will facilitate deployment and administration. Graphical Web service builder tools will facilitate the assembly of Web services from existing functionality. The builder environment will be integrated with the container to facilitate rapid round-trip build, deploy, and test cycles. Savvy vendors will produce tools that are approachable by administrators and analysts who don't have deep systems engineering backgrounds.
  • Consistency: Java-based HTTP SOAP dispatchers are frequently implemented as servlets. They utilize third-party class libraries to manipulate XML, introduce proprietary code, and maintain state within the servlet environment. Functionality to be exposed as a Web service is typically contaminated by these components. Web service containers will isolate application functionality from the container's implementation and host peculiarities. Further more, containers will provide interfaces that allow services to participate in the service life cycle and access the runtime environment. As the container is extended to support additional hosts and transport mechanisms, this environment must be implemented consistently.
Feature Evaluation
As products mature, they'll progress beyond simple servlet implementations toward a container platform. Describing the several possible architectures that can support the platform is beyond the scope of this article. However, specific features will characterize products that are based on sound infrastructure, and teams evaluating Web service products can test for these features. Feature evaluation is a tried-and-true approach to measuring the maturity of an underlying infrastructure. The feature summary below is organized into the familiar taxonomy of install, build, deploy, run, and manage.

Installation
A clean installation process is a hallmark differentiator of products from frameworks and technology previews. Web service containers will be designed to install directly into running host application servers without changing the host environment. Containers that force XML parser upgrades, mandate specific versions of open source code, or require any changes in the classpath or executable path are unacceptable. IT environments are complicated already and containers can't introduce the possibility of conflicts.

Once installed, the container's functionality will be tightly integrated and appear as a new feature of the host environment. When the host is running, the container is running.

Sophisticated containers will also provide for in-place upgrades to accommodate the rapid evolution of the platform. Users will be able to upgrade the Web service container while it's up, running, and servicing requests. The running services will immediately benefit from a new version's improved performance, scalability, or interoperability. New services can be developed that leverage the new version's additional features.

Build
Web service builders that allow systems analysts to assemble new services will complement containers. Business integration vendors will push toward the ideal no-programming model by delivering builders that support increasingly sophisticated data flow and type mapping specification tools. The builder and container will be tightly integrated to allow rapid round-trip build, deploy, and test cycles. A good test of this integration is the degree to which the builder supports the expression of different mapping choices. Robust containers will allow, for example, a Java Date to be mapped to an xsd:dateTime or let a user extract the year and map it to na xsd:short. An integrated builder will support these container options.

Containers will complement the builder's GUI-based Web service assembly paradigm with programming APIs. Vendors are working to standardize the critical APIs through the JCP process, but don't expect Web service portability any time soon.

When evaluating containers, be wary of systems that offer only part of this picture. Products that attempt a complete no-programming approach and eschew all APIs have no safety net for the inevitable GUI shortcomings. Conversely, products that can't automate the construction of even moderately sophisticated services offer little in developer productivity enhancements and will require extensive Web services expertise.

Deploy
Containers will introduce some form of bundling that couples all materials required for a service. This bundling will likely be accomplished through a zip archive similar to J2EE WARs and EARs. As with the J2EE environment, the purpose of this bundling is to allow for atomic deployment of individual service implementations and to isolate the impact of deploying a new or modified Web service.

Deployment must have no effect on other Web services and other applications running in the host environment. It must never be the case that a newly deployed Web service disrupts operation of the underlying IT application. Under no circumstances should deployment require a restart of the Web services container or the host application server environment. It must be possible to deploy and run a service in a variety of settings without re-bundling. Don't expect Web service archives to be compatible between vendors, but do require that a vendor support the same bundling on all platforms and across all protocols.

Container vendors will provide tools that facilitate assembly and deployment of Web services specified during the build process. Sophisticated implementations will let users simultaneously deploy bundled Web services to containers running in multiple host environments and supporting different transport protocols. An acceptable platform must support live update of running services.

Run
Products that are based on a container infrastructure will support bindings to multiple existing transports. This is a key differentiator. Current HTTP servlet-based technology previews and frameworks aren't designed to support JMS or TCP. Even if your first Web services product doesn't require a fault-tolerant transport, don't make the mistake of choosing a product that won't support these needs in the future. As with any new paradigm, look to companies that are investing in a long-term infrastructure and not flashy demos.

Manage
Deployed Web services will be a critical element of IT operations. They must be managed as first-class elements, not as special purpose servlets. Container-based implementations will support complete management solutions probably based on JMX. Management capabilities will include the ability to activate and inactivate services as well as modify tracing levels and view service statistics. Management will likely be integrated with deployment and enterprise host features like clustering, such that through an administration console, running containers and their associated services can be replicated for scalability and fault tolerance.

Conclusion
No vendor will deliver all of these features in the first releases. But when evaluating platforms, ask questions about the infrastructure. Ensure that your pilot projects succeed not just in constructing a proof of concept, but in evaluating the platform's suitability for the next quarter's deployed system and next year's mission-critical initiative. The Web service container features described above will be difficult to achieve without a suitable architecture. Use them as yardsticks to measure the progress your vendor is making toward a reliable platform.

Author Bio:
Ben Bernhard is the IONA XMLBus engineering manager. He is responsible for the product's technical directions and implementation. The XMLBus includes a Web Services Builder that allows rapid construction of Web Services from existing systems and the industry's first Web Services Container. ben.bernhard@iona.com

All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.

  E-mail: info@sys-con.com

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.