- The Basics of Web Services
- A Simple Example: Searching for Information
- The Next Generation of the Web
- Interacting with Web Services
- The Technology of Web Services
- XML for Business Collaboration: ebXML
- Web Services versus Other Technologies
- Additional Technologies
- Vendor Approaches to Web Services
- Summary
The Next Generation of the Web
Web services are aimed at putting the vast global network of the Web, established for human interaction, to an entirely new purpose. Software-oriented interactions will automatically perform operations that previously required manual intervention, such as
Searching for and buying goods and services at the best price
Coordinating travel tickets and restaurant tables for a given date
Streamlining business procurement, invoicing, and shipping operations
The next generation of the Web will use software-oriented services to interoperate directly with applications built using any combination of objects, programs, and databases.
But Web services are not only about interfaces to objects, programs, middleware, and databases for access over the Internet. By combining a series of Web services into a larger interaction, Web services also provide the means to perform new types of interactions.
Suppose, for instance, that you live in San Francisco and wish to reserve a table at your favorite Paris restaurant and then make the necessary travel arrangements to be there at the agreed time. Today, you would have to call the restaurant directly to get the reservation, taking into account the 9-hour time difference and the language difference, and then call a travel agent to find a compatible flight and a hotel. But using Web services, you could schedule the dinner with your personal digital assistant (PDA) calendar and click on a button to automatically reserve a table at a convenient time. Once the reservation was made, the Web service could kick off other services that would book a cheap flight and reserve a room at a nearby four-star hotel.
Figure 1-2 shows how Web services can interact with a PDA connected to a wireless Web services processor to book a reservation at a favorite restaurant, using the restaurant's Web service.1 The Web services processor accepts requests from the calendar function of the PDA and discovers Web services related to extended calendar functions, such as reserving a restaurant table. After successfully reserving a table, the Web services processor contacts Web services for hotel and flight reservations to complete the requested scheduling action.
Figure 1-2 Applications can use Web services to book a restaurant table and make hotel and flight reservations.
Web services are also very useful for discovering and interacting with Internet sites that provide online order entry systems, such as the one for the Skateboots Company's trendy skatebootsa boot with a retractable ice skate built inlike the ones that Batman and Robin used in the movie Batman and Robin. Sporting goods retailers interested in stocking the boots, this year's hot new item, can use Web services to place advance bulk orders in batch, to check the status of an order, or to place in-season restocking orders and be immediately notified of back orders, if the manufacturer is out of stock. Web services building blocks provide standard components of the application for the Skateboots Company, which isn't large enough to host its own entire application infrastructure. Web services hosting companies provide security services to ensure that Skateboots accepts orders only from approved retailers and to provide credit validation services for approving bulk advance orders. Still other companies help Skateboots by providing electronic funds collection and accounting services.
The entire Skateboots order entry system is exposed to the Internet as a Web service, but behind the top-level Web service are a number of other Web services working together to provide the necessary functionality. Figure 1-3 illustrates how Web services can change the way business applications are built and used. The retailer interested in stocking skateboots inputs a request to its local inventory management service, which is exposed to the shop computers as a Web service. The local inventory service then contacts the manufacturer's Web service over the Internet and sends the order for the correct number of skateboots, based on available shelf space and the most popular sizes.
Figure 1-3 The Skateboots order entry service comprises several other Web services.
The Skateboots Company's order entry system comprises multiple Web services, including a custom-built part that deals with the unique aspects of its product and several commodity parts that take care of standard functions, such as authenticating the user, credit authorization, and accounting and billing, all hosted by other companies that specialize in providing such services over the Internet.
Creating business applications using Web services entails putting into proper relationship a number of other Web services, which can be implemented by using any combination of programming language, operating system, or packaged software, inside or outside the firewall. (This is also the way in which Web services solve the difficult EAI problem.) In establishing the proper relationship, or flow, of related Web services, it also automates the corresponding business processes and procedures.
Through the widespread adoption of Web services, the Internet is becoming more efficient, especially for business interactions. In the next generation of the Web, Web services building blocks will enable automatic Internet interactions, combining direct access to software applications and business documents, bypassing familiar text-based Web pages to access software-based data directly. Furthermore, fundamental Web services building blocks are very likely to be hosted and published by a variety of companies focusing on a specific functional component, such as authentication, transactional coordination, or accounting and billing. This change to direct application-to-application interaction over the Web lies at the heart of Web services, what they mean, and how they work.
Toward a Common Understanding
Web services technology exists at a sufficiently high level of abstraction to support multiple simultaneous definitions, which are sometimes contradictory. For example, some definitions of Web services include ebXML and RosettaNet. At the simplest level, Web services can be thought of as Internet-oriented, text-based integration adapters. Any data can be mapped into and out of ASCII text, and this type of mapping has long been the lowest common denominator for graphical display systems and database management systems. If all else fails, the saying goes, map the data to text. Text-based systems also are behind the success of the World Wide Web, on which the additional abstraction of Web services is based. Any computer or operating system is capable of supporting HTML and Web servers, and browsers, and when they download files, they don't care or even know what type of back-end systems they're interacting with.
The same is true for Web services, which often leads to a lot of confusion when developers of traditional, or established, computing environments try to understand Web services technology in reference to a single type of distributed software system, such as CORBA, J2EE, or DCOM (distributed COM). Because Web services are much more abstractmore like adapters than interfacesit will be some time before the industry settles on truly common definitions and conventions for them.