What Are "Web Services?"
In This Chapter:
Web services definition
A "basic" Web services environment
A "complete" Web services environment
Web services are a distributed computing architecture that features the use of loosely coupled applications that perform services for one another. They feature a new way to perform program-to-program communications that allow applications to communicate with each other regardless of which application language was used to create an applicationand regardless of what systems platform and operating environment is being used.
Basic Web services consist of UDDI, WSDL, and SOAP.
More complete Web services implementations include application development environments, business process management software, Web/portal development products, connectors/adapters for legacy applications, and moreall highly integrated with Web services protocols and registry services.
Web services are a distributed computing architectureas 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 marketon 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 systemsand 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.
Are designed to enable application modules (objects) to communicate with other application modules. Once connected, service applications provide transactional or computational services.
Make use of a common data/information formatting scheme known as eXtensible Markup Language (XML) to share data.
Applications make use of certain Web standards (UDDI, WSDL, and SOAP) for registry and program-to-program communications purposes.
Use the Internet as the common network backbone.
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.
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.
Another Way of Defining What Web Services Do: Consider Publish, Find, and Bind
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:
Published in a common UDDI directory (such that cooperating applications can find each other);
Found (using WSDL protocols that can locate Web services applications and determine if those applications can work with the source application); and
Bound (a communications link between the two applications is established, so that a servicesuch as performing some sort of calculation or transactioncan be rendered using SOAP protocols).
These three service elements and their relationship to requester, broker, and provider services are illustrated in Figure 11.
Figure 1-1 Web Services: Publish, Find, Bind.
In this illustration a service requester is either you or your source application. The requester initiates the request for a Web service application. The Service Provider is the Web services application itself. The Service Broker can be a company that provides lists and information about Web services programs, or a Service Broker can refer to the programmatic process that helps locate an application and helps the two cooperating applications determine how to best communicate.
The Author's Personal Definition of Web Services
In this author's view, after taking into consideration all of these 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.
"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)."