Book Excerpt: What Are Web Services?

Joe Clabby
 

August 16, 2004 (Computerworld) This book chapter is excerpted from Web Services Explained by Joe Clabby, with permission from publisher Pearson Education, copyright 2003, publishing as Addison-Wesley and Prentice Hall PTR.



Web services are a distributed computing architecture as are Common Object Request Broker (CORBA), Advanced Program-to-Program Communications (APPC), Electronic Data Interchange (EDI), and dozens of other preceding architectures.

The purpose of a distributed computing architecture is to enable programs in one environment to communicate and share data/content with programs in another environment. In the past, programmers have had to tell one application program where to go to find another cooperative program (known as "tightly coupling" applications). These programmers have had to maintain these programmatic links over the useful life of the applications that they have written. Creating these "hard-wired" links is complicated, cumbersome, and human resource intensive.

Now, imagine that a new distributed computing architecture has come along. And imagine that instead of requiring people (programmers) to establish and maintain program-to-program links, the applications themselves could automatically find cooperative programs to work with. And imagine that this new architecture allowed programmers to rapidly assemble complex applications merely by tying together application modules. And imagine that this new architecture allowed businesses to create or respond to competitive pressure more rapidly than ever before. And imagine that this new architecture allowed software to be delivered as a pay-as-you-go service. And so on.

Web services makes use of a program-to-program communications process called "loosely coupled." And by using this approach the amount of human involvement in building applications can be minimized. And the Web services protocols themselves are simpler and more straightforward to use than those of preceding architectures. Web services holds the promise of making programming vastly simpler.

But also consider this: loosely coupling applications has another important effect. Businesses can link strings of applications together to deliver new services to market on the fly. And businesses can use Web services to market their existing nonstrategic software if they so desire. (In this book I identify nine different ways that Web services architecture allows businesses to restructure or modify their existing business models.) In short, Web services will change the way we build and use information systems and will thus change the underlying business models upon which many enterprises currently operate.

Web services are one of the most significant advances in computing architecture over the past 30 years. Accordingly, it would be wise to become familiar with Web services architecture and concepts because it is highly likely that Web services will have a significant impact on the way your enterprise conducts business in the future.

Web services:

Unstated but assumed in these brief definitions is that Web services are designed to be platform and language independent. This means that applications that use Web services are able to communicate with one another regardless of the underlying operating environment, system platform, or programming language being used.



Also unstated but assumed is that readers understand the concept of "object-oriented programming." Applications can be written as discrete, self-contained "object modules" application "blocks" that can service the needs of one application and, if appropriate, can also be reused to provide functions for other applications.

For instance, if a programmer were to write a calculator program, it could be written as a module and made available to a spreadsheet program, a customized transaction program, a mortgage amortization program, or any other program that could logically make use of a calculator. The point is that a calculator program has to be written only once (not constantly recreated) and can then be "bolted-onto," coupled, or reused with other applications in order to perform calculation services.

Another Way of Defining What Web Services Do: Consider Publish, Find, and Bind

The use of "objects" is a fundamental concept in Web services, because it enables the assembly of large, compound applications faster than by today's monolithic methods. And, because programmers do not need to constantly recreate objects from scratch (they just plug in the appropriate object and away they go), application development will be less expensive.

What Are Web Services?
"Web services are applications that make use of registry and communications standards to work together in a dynamic (fluid) manner (where one application provides transactional, messaging, or computational 'services' for another). These applications make use of an agreed-to format (XML or some variant of XML) for presenting information and data; and they use Web services standards for finding service applications (UDDI), negotiating how to send and receive information (WSDL), binding communications sessions (SOAP), and then transferring that information over the Internet (HTTP)."
Here is another way to understand how Web services work. Web services directories and protocols essentially serve three functions: publish, find, and bind. To use Web services, applications are: In this author's view, after taking into consideration all ofthese data points, Web services are a new class of cross-platform program-to-program communications that enable loosely coupled applications to easily find each other, to easily and dynamically establish parameters that enable similar or disparate programs to work together cooperatively, and enable them to communicate in an automated, unattended fashion over the Internet.





A Basic Web Services Architecture



Earlier sections in this chapter have dealt with defining Web services and describing how they work (from a program-to-program perspective). A closer look reveals that Web services pass content between applications using a common format known as XML; Web services use a registry (UDDI), a template (WSDL), and a programmatic interface (SOAP) to enable applications to find and interact with each other; and they use a common network (the Internet) to transport information and data between cooperating applications (see Figure 1-2).

These are considered to be the basic building blocks of Web services architecture. But, as stated previously, the benefits of Web services architecture can be maximized if used in conjunction with business process management software to help streamline business workflow. And, by making application program development easier and linking application development with Web services protocols, more Web services applications can be developed. The next section describes how application development environments, Web (portal) development environments, mobile computing, and business process management software can all be used to create a highly integrated Web services development environment.
Format XML
(format)
A common format for presenting data and information.
This data can be easily manipulated to meet the presentation of the requestor application.

Services
UDDI
(Publish)

A directory service that lists applications that can provide services.
WSDL
(Find)

A protocol that enables applications to find a service and to agree on how data and services are to be shared and rendered.
SOAP
(Bind)

A protocol that enables applications to agree on how data and services are to be communicated.



Network The Internet
The Internet, using TCP/IP and other communications/networking protocols, serves as the common network for Web-based applications.

FIGURE 1-2 Critical Elements of Basic Web Services Architecture.


A Complete Web Services Architecture

A recent Gartner Group "Perspective" on Web services implementations states:

"The Web services vision will be less than optimal if it is not introduced as a complete vision for dealing with aspects such as services registry, messaging, trading-partner specifications and industry standards."

Source: "Web Services: Software as Service Comes Alive," Daryl Plummer, October 2001. Used by Permission.
In other words, far more is involved in building a Web services architecture than the "basic" architecture described in the previous section. A number of companies including BEA, Hewlett-Packard, IBM, Microsoft, Sun, and others have combined various development tools, application accelerators, specialized applications, and integration services to offer a more complete Web services architecture than described above. These environments contain additional architectural elements that are useful in building very robust, user-friendly Web services environments for small, medium, and large enterprises.

The example presented here is based on IBM's WebSphere product set (Figure 1-3). It is a particularly robust Internet application server environment, though not the only such solution available on the market today. Microsoft, BEA, HP, Oracle, Sun, and others have competitive products (though potentially not as broad as IBM's offering from a cross-platform integration perspective). All of these vendors and more will be covered in greater depth later in this book.

An Example: IBM's Websphere Platform

Although Microsoft, BEA, and others offer somewhat similar products and services, IBM's WebSphere platform is a good starting point for evaluating the broad range of products and tools that can be used to build a robust Web services environment, because it contains all of the basic products and tools for creating a "basic Web services environment" (as described in the preceding section) plus many extensions needed to better integrate systems and applications with Web services applications on disparate platforms; or to present data to a wide range of different device types; or to deploy applications across multiple systems environments; or to secure and manage Web services application environments.

IBM's Web services protocols and directory services are hosted in various products and development tools within the company's WebSphere product set. The company separates its WebSphere offerings into three classes:





These three classes contain software that helps developers to build Web services applications and also to build personalized user experiences and customized portals. They also include software that helps manage and secure entire WebSphere environments. Figure 1-3 lists a number of IBM's WebSphere-related software offerings.

The preceding section described how a basic Web services architecture can be built by settling on a common presentation format, using common program-to-program protocols over a common network (the Internet). Figure 1-3 illustrates how IBM extends its Web services architecture by including a wealth of systems software, development tools, Web tools (for personalization and presentation), integration tools, and utilities, as well as application development environments and applications (such as Lotus Domino) that can be tuned or modified to work in a Web services mode.

Accelerators
Lotus Domino (helps build collaborative and messaging applications); WebSphere Commerce Suite; WebSphere Business-to-Business Integrator; MQ Series Workflow




Foundation Extensions
Capabilities for security and systems management as well as for development, presentation, and deployment. Products include:

Build:
VisualAge for Java (for Java application development); WebSphere Studio; WebSphere HomePage; WebSphere Business Components

Presentation:
VisualAge Generator; Application Rules (for deploying applications based on business rules); WebSphere Personalization (rules-based filtering to tailor Web experiences for visitors); WebSphere Portal Server (create Web portals); WebSphere Voice Server (based on VoiceXML to present data via voice over Web)

Deploy:
WebSphere Transcoding Publisher; WebSphere Edge Server; WebSphere Site Analyzer; MQ Series Integrator; Tivoli Policy Director

Foundation
Consists of WebSphere Application Servers (server platforms) and MQ Series messaging products.

FIGURE 1-3 IBM's WebSphere Architecture. Source: Derived from IBM.com. Used by Permission.


Other elements also help to create a "complete" Web services environment, including:



  1. Systems management and security.

  2. The user experience (including personalization, portal graphics).

  3. Support for multiple device types (PDAs, smart phones, other mobile devices, desktops, workstations) using various interfaces (such as data-to-voice) for information presentation/relay.

  4. Business process management/workflow (Web services can be implemented without paying attention to workflow and business process management software, but, to support hundreds or thousands of Web services sessions, Web services implementers should consider using business process management programs and tools in order to maximize the effectiveness and efficiency of Web-based applications).

  5. Integration (not only between disparate systems but also between application environments).





The IBM WebSphere example used in this section (similar in architectural structure to products of Microsoft and other companies) illustrates that implementing a complete Web services environment involves a lot more than just servicing requests for application services from requestor applications!

Chapter Summary

There are many definitions of Web services, but almost all of them contain the following elements: This author personally defines Web services as a traditional form of cross-vendor program-to-program communications that uses the Internet as a common network to enable applications to communicate with each other. Only Web services uses a loosely coupled approach, as opposed to hard-coding applications together.



Web services can be quite simple and straightforward (programs that request content or information to be shared over a common network); or quite complex-including business process management, personalization, systems integration, and other aspects related to creating large, secure, manageable networked environments. Business managers need to understand that Web services are:


  1. A common agreed-to format that applications can use to exchange information and data;


  2. A means for applications to be published, found, and bound such that applications can find each other and work cooperatively together;


  3. A way to network multiple, sometimes disparate systems together to share data, information, and services (the Internet provides this).


But these are just the basic elements for building Web services. Large enterprise environments, wishing to make use of many services and support hundreds or thousands of users, must also consider other elements such as business process management; cross-platform integration; Web and application development tools; and other programs, tools, and utilities. A broader view of Web services architecture includes much more.



Building a complex Web services environment that includes business process management, personalization, security, and other integrated products can prove to be a daunting task, especially for many small and mid-sized businesses. Fortunately, several companies including IBM, Microsoft, Sun, and others build complete "application server" environments that integrate other important software with Web services software.

This book chapter is excerpted from Web Services Explained by Joe Clabby, with permission from publisher Pearson Education, copyright 2003, publishing as

Addison-Wesley and Prentice Hall PTR.


Special Report

Web Services Hurdles
Stories in this report: