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

You've just gone to your CIO with a plan to implement your IT organization's high-profile B2B "Project X" using Web services. Your CIO patiently listens while you explain the benefits of using third-party Web services as part of your mission-critical infrastructure, how contracts will be negotiated electronically without the need for pesky legal departments, how everyone will outsource all their security and management to providers they never need to meet in person, and how applications will dynamically assemble and modify themselves as your needs change.

You confidently sit back, smile, and wait for your CIO to give his inevitable nod of approval. It's only natural - after all, this model works just like the electric grid but with software services. After a few moments of thought, your CIO's head begins to nod. But wait, his head is nodding side to side, not up and down! The CIO is rejecting your proposal. How could this happen?

The reality is that adopting an emerging technology like Web services is risky business in the eyes of a CIO. To convince your CIO to adopt Web services, the short-term and long-term rewards have to be clear and the risks have to be manageable. You know it's in the best interest of your organization to move to Web services, but others don't share your foresight. In this article, we'll give you the tools you need to sell your organization on adopting Web services. Just remember though - you need to prove you can walk before you're allowed to run.

The first place to deploy Web services is within the enterprise, not across enterprises. This allows you to have total control over every aspect of the project, to manage the risk and ensure its success. What kinds of inside-the-enterprise projects are best suited to showcasing the benefits of Web services? Web services are all about connecting systems together, so integration projects are the right place to focus. Typically, a great starting point is a project with a Web front end that needs to access one or more other IT systems - portal projects, intranet Web sites, call center applications, etc. These projects are a great fit for Web services since they leverage its tight fit with existing Web technologies such as HTTP, XSL-T, and HTML.

The Evolution of Integration
You find an integration project well-suited to the use of Web services. You propose using Web services on this project and are told, "We've been doing integration for years without Web services, why do we need them now?" Best practices in integration have changed rapidly in recent years, and different models for integration have different trade-offs. It's easy for someone to be confused - so let's walk through the different models for integration: point-to-point, centralized, and backbone.

Point-to-point: The "Classic Coke" of Integration.
Point-to-point integrations have been going on since IT began. You know the type: "For my project, I need to connect system A's purchasing with system B's inventory management, so we'll just hand-code what we need right now to make this work." Even though point-to-point is the oldest way of integrating, it's still the most common for a few simple reasons: when projects are treated independently of each other, point-to-point is the cheapest solution for any given project and often the fastest way to get that individual project done. In addition, it puts total control in the project owner's hands with in-house resources and tools.

The downside of point-to-point integration is apparent when you look at the "big picture." If all projects are treated independently of one another, how can you possibly optimize your costs and productivity globally, across your projects? The answer is that you can't. Over time, a series of independent point-to-point integration projects breed a fragile spaghetti of application interconnections with no reuse among projects. Over the long run, you end up spending more and taking longer to get the job done while ending up with a brittle enterprise infrastructure (see Figure 1).

Figure 1

Centralized Integration: The "New Coke" of Integration
More recently, a few enterprising vendors realized the limitations of point-to-point and proposed a new twist on integration: instead of connecting applications directly together, put in a middleman "integration solution" (see Figure 2). The applications connect in a point-to-point fashion with the integration solution, but never directly to each other. This isolates the applications from changes in one another and provides a single point of control and reuse over all integrations - resulting in lower long-term overall costs.

Figure 2

Unfortunately, the strength of a centralized model is also its crucial weakness. Integration solutions suffer from the "first car builds the road" syndrome: the first integration project to attempt to use the integration solution is saddled with the bulk of the cost in both software and services. And, since you are "buying for the enterprise" rather than "buying for the project," the initial costs are very high. In addition, since the solutions are vendor-specific, the skills needed to build integrations are scarce, and the cost and delivery time of any individual project ends up being significantly more than with a point-to-point solution. And the projects themselves typically are done with outside resources or resources under the control of a central authority (because of the necessary skill sets), significantly reducing your control and increasing your risk.

To compound the problem, to get the long-term benefit from an integration solution you must standardize on one vendor's proprietary solution - a significant point of long-term risk and cost. Imagine the vendor is bought or goes out of business; your infrastructure might need to be totally replaced. Or, imagine you merge with another company; this means converting their infrastructure to your integration solution to gain back the benefits. Implementation of integration solutions often becomes the project that never ends.

For many of these reasons, single-vendor proprietary integration solutions are struggling now that the Internet bubble days of "infrastructure at any cost" are over.

Backbone Integration: The Choice of a New Generation?
Not exactly the new kid on the block, backbone integration has taken place for many years and is the benchmark integration model for large organizations. Most large financial service firms, for example, have application communication backbones. Instead of specifying a single platform or solution through which applications communicate (creating a centralization burden and risk), a backbone is formed by defining a set of standards through which applications communicate - distributing the responsibility for following the standards to each application group, division, or project (see Figure 3).

Figure 3

Typical backbones include standards for transport, protocol, encoding, description, location, and sometimes even data semantics. Any application that obeys these common standards is, by definition, "on the backbone." By having multiple applications obey these common standards, any application on the backbone can now communicate directly with any other application on the backbone.

A backbone model has a number of significant advantages. It allows for a clear division of responsibility. It requires no single vendor or point of failure/risk. Backbones provide reuse of integration points across projects. Backbones scale effectively to the largest, most complex IT environments on the planet.

With all of these enterprise advantages, though, how do backbones work at the project level? With the right tools in place, backbone-based integrations are as fast and cost-effective to implement on a project-by-project basis as point-to-point integrations - precisely because backbones are built incrementally on a project-by-project basis.

All the advantages and none of the problems - why doesn't everyone do integration using an integration backbone? The answer is hidden in the last paragraph: "with the right tools in place...." Large IT organizations have the resources to custom-build the tools, frameworks, and infrastructure needed for the organization's custom backbone standards. Once these tools are built they can be effectively leveraged across the entire organization to dramatically reduce integration cost and time - but the cost of building a good custom toolset is typically prohibitive for all but the largest organizations.

What About Web Services?
Web services are a collection of related Web standards for transport (HTTP, SMTP), protocol (SOAP), encoding (XML), description (XSD, WSDL), and location (UDDI). Essentially, Web services form a core set of backbone standards - an "out-of-the-box" backbone.

Web services give you the standards, but the magic equation for forming a backbone is backbone = standards + tools; what about the tools? Because of its broad industry adoption, this is where Web services shine. By the end of this year most, if not all, tools and platforms will support Web services. Today, you can choose Web services-enabled tools such as Visual Studio .NET or Borland JBuilder. You can choose Web services-enabled platforms such as .NET Server, BEA WebLogic, or IBM WebSphere. If you want to leverage your existing tools, you can use free or open-source technologies such as the Microsoft SOAP toolkit or Apache SOAP. The choices are limitless.

But, beyond tools and platforms, most packaged application vendors have announced support for Web services. This means that, once available, these applications will plug almost directly into a Web services backbone with no custom coding - something not possible with custom backbones.

Web services are a set of standards and tools that make backbone integration available to every organization, large and small. With the tools readily available, a Web services backbone can be built up incrementally, on a project-by-project basis, without the need for a "big bang" implementation. This essentially lets you begin deploying Web services as part of point-to-point integration projects, and then seamlessly scale these up to a complete Web-services backbone.

Of course, you have the option to define a custom set of standards for building a backbone, so let's recap why Web services form the most effective choice for a backbone:

  • Web services allow you to consolidate B2B, HTML, and application integration projects to use a single set of compatible standard technologies.
  • Web services have achieved broad industry adoption. Most future purchases of packaged applications, tools, and platforms will be Web services-compatible. No single vendor is in control of the standards.
  • Web services have a low cost of entry because all of the necessary software - TCP/IP, HTTP, XML, etc. - to get started is already available on virtually every machine.
  • Because Web services technologies are based on XML, HTTP, and other "text-based" standards, the cost of administration is very low. For example, instead of needing specialized custom tools to monitor Web services (which would be required if Web services were a complicated binary protocol), any simple tool for packet sniffing makes it easy to monitor how Web services interact.
  • Web services can be deployed incrementally, on a project-by-project basis, but scale up to a large enterprise backbone. This reduces the risk of adopting Web services, while improving the costs on a per-project basis as well as enterprise-wide.
  • But we already paid for XYZ, why do we need Web services?

    There's a lot of hype and misunderstanding in the marketplace about what Web services are. Depending on who you talk to, Web services are the savior of software, the nirvana of networks, the best thing since sliced bread, or just another technology being forced on customers to replace what they bought last year. Web services aren't necessarily any of these, so understanding how Web services already complement your enterprise's existing tools, platforms, and technologies is important. Let's look at some common objections.

  • We run MQSeries, so we don't need Web services.
    MQSeries is a reliable message transport that complements Web services. By analogy, if MQSeries is the telephone network, Web services is the language spoken by callers. An effective conversation can't take place without both. Depending on your needs, you might choose HTTP as a transport for Web services where reliability isn't critical but low cost of deployment is, and you might choose MQSeries as a transport for Web services in other cases where you need guarantees of once-only message delivery. Web services standards are flexible enough to allow you to choose the transport that best suits your needs. Many of the tools already on the market, in fact, support MQSeries as a Web Service transport.
  • We have a business process management system (BPMS), so we don't need Web services.
    BPMS defines business processes that coordinate operations across different business services. But how do you make those services available to the BPM engine? One choice is to use a proprietary set of adapters that the BPMS vendor sells - but this is costly, complicated to implement, and the only system in the enterprise that will be able to leverage this work is the BPMS itself. Alternately, if you publish the business services as Web services, then not only can the BPMS use the services, but any other application that needs to leverage them can also do so. Using a BPMS in conjunction with Web services is the most cost-effective way, both short and long term, to build your enterprise infrastructure.
  • We have an application server/portal/integration solution, so we don't need Web services.
    As with BPM solutions, Web services are not about how you define, combine, or use services (which is what application servers, portals, and integration solutions are all about), but about how you access services. You always have the choice of accessing services through custom-built code or tightly coupled proprietary adapters with any of these solutions. But these custom vendor-specific solutions are expensive, available skill sets are limited, and they don't easily scale to broader use. Alternately, you can access services using Web services standards, which provide a cost-effective, vendor-neutral, scalable solution for accessing services. Web services are the most effective way to leverage use of your application server, portal, or integration solution.

    Web Services Sound Great, but...
    With all the advantages of Web services, what are the downsides? There are really two issues to consider. The first is that your enterprise may have already invested hundreds of thousands to billions of dollars in applications that aren't Web services-compatible - and these applications aren't going away. How do you leverage these existing assets without rebuilding them and without truckloads of hand-coded Web service wrappers? Second, even when you get some of your existing applications published as Web services, these applications - not having been built on Web services standards originally - are likely to have their own security and management systems. Even for native Web services, there are multiple competing standards for such things as security. How do you provide a consolidated single model for security and single point of management for your emerging Web services backbone?

    Luckily, an emerging category of software, Web services gateways, addresses these issues. Web services gateways allow existing non-Web services applications to be published as if they are natively written Web services. At the same time, these gateways act as a single point of management that transparently adapts between the standards you choose for your backbone (security, reliability, transport, semantics, etc.) and the standards used by the applications themselves - at the application level they serve much the same purpose, in concept, as a multiprotocol network router for low-level network traffic. This allows you to have a well-defined and manageable backbone, while at the same time supporting the diversity of your application portfolio. The best Web services gateways are totally transparent to the applications, requiring no application changes or modifications while providing the infrastructure for mapping between different standards in each area (security, transport, etc.) with the flexibility to accommodate your unique environment, now and in the future, with little or no hand-coding.

    The Venus Flytrap
    Web services have tremendous possibilities when deployed well, but there are some pitfalls that can cripple your ability to derive long-term benefits from them. Even though you're going to start small, you need to think ahead. If the long-term goal is to have a unified Web services backbone, don't make choices now that will hamper your ability to reach this goal in future. The two key traps to avoid here are:

  • Don't fall for "Web services lip service": Some vendors will try to convince you that they support Web services standards, but to gain the real advantages of their solution you need to use their proprietary, nonstandard capabilities, or deploy their proprietary software together with each application (giving them total control of the backbone). This approach locks you into the vendor's proprietary solution - whether it's Web services-based or not. Once you choose to go down this path, there's no easy way to turn back.
  • "The great thing about standards is that there are so many to choose from." Defining a Web services backbone means that you will need to choose from among the various options for security standards, transports, etc. These decisions should not be made on a project-by-project basis; other -wise, you may end up with as many differences as there are similarities - your backbone may be all Web services-based, but no applications can talk to each other. Make sure to choose a cohesive set of standards and stick to them. This will allow the individual projects to, over time, form the basis for your common Web services backbone.

    Conclusion
    Web services can be deployed initially at low risk and at low cost. At the same time, a thoughtful Web services enterprise architecture plan, begun now, can enable your enterprise to gain significant long term advantages in terms of cost reduction, flexibility, scalability, and responsiveness to changing business needs. Make it happen!

    Author Bio
    Dan Foody, CTO at Actional Corp., has extensive hands-on experience in enterprise systems integration of packaged, legacy, and custom applications as well as middleware, platform, and emerging technologies used for integration. He is the author of various application integration standards. Dan holds a BS and MS in electrical engineering from Cornell University. info@sys-con.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.