The Web and XML have changed our perspective about what data can do. Instead of regarding data as something to be stored in a database and shuttled across existing networks by systems locked in a tight embrace, the XML family of standards allows data to move freely about the loosely coupled Web and create new business opportunities.
XML is a meta-language (literally a language about languages) defined by the World Wide Web Consortium (W3C), one of the main organizations driving the push to open Web standards. In its simplest sense, XML is a set of rules and guidelines for describing structured data in plain text rather than in proprietary binary representations. However, as a phenomenon, XML goes beyond its technical specification. Since its standardization by the W3C in 1998, XML has been the driving force behind numerous other standards and vocabularies that are forging a fundamental change in the software world.
In XML's short history, its influence has been felt in three waves, from industry-specific vocabularies, to horizontal industry applications, to protocols that describe how businesses can exchange data across the Web. One of the key developments has been SOAP, the protocol that has opened the Web to program-to-program communication and is the basis for Web services.
The XML Advantage
XML has had an impact across a broad range of areas. Why?
- XML files are human-readable. XML was designed as text so that, in the worst case, someone can always read it to figure out the content. This isn't the case with binary data formats.
- Widespread industry support exists for XML. Numerous tools and utilities are being provided with Web browsers, databases and operating systems, making it easier and less expensive for small and medium-size organizations to import and export data in XML format.
- Major relational databases now have the native capability to read and generate XML data.
- A large family of XML support technologies is available for the interpretation and transformation of XML data for Web page display and report generation.
XML's capability to work with other technologies has opened up new possibilities for exchanging business information across the Web, essentially creating an extended enterprise. One aspect of this new extended enterprise is the emergence of Web services. For some, Web services represent the next evolutionary step for the Web, extending it from a network that provides services to humans to one that provides services to software looking to connect with other software. Web services is an ambitious initiative that is moving the Web to new levels of software-to-software interaction while trying to fulfill object technology's promise of reusable components.
Web Services 101
Web services rely on several key underlying technologies, in particular Universal Description, Discovery and Integration (UDDI); Web Services Description Language (WSDL); and SOAP.
- UDDI is a protocol for describing Web services components that allows businesses to register with an Internet directory so they can advertise their services and so companies can find one another and carry out transactions over the Web.
- WSDL is an XML format for describing how one software system can connect and utilize the services of another software system over the Internet. It supports Web-based computing services that target computer programs rather than human users.
- SOAP is the XML glue that lets clients and providers talk to each other and exchange XML data. SOAP builds on XML and common Web protocols (HTTP, File Transfer Protocol and Simple Mail Transfer Protocol) to enable communication across the Web. SOAP brings to the table a set of rules for moving data, either directly in a point-to-point fashion or by sending the data through a message queue intermediary.
One of the main implications of SOAP is a change in how we think about distributed computing. Prior to SOAP, there were three basic options for doing distributed computing: Microsoft's Distributed Component Object Model, Java's Remote Method Invocation or Object Management Group's Common Object Request Broker Architecture. These technologies are still in widespread use. Their drawback is that they limit the potential reach of the enterprise to servers that share the same object infrastructure. With SOAP, however, the potential space of interconnection is the entire Web, which is why there is such intense interest in technologies that can leverage the power of SOAP. One of these technology efforts is Web services.
The Web services framework is both a process and a set of protocols for finding and connecting to software exposed as services over the Web. By assuming a SOAP foundation, Web services can concentrate on what data to exchange instead of worrying about how to get it from Point A to Point B, which is the job of SOAP. To make things even easier, SOAP also defines an XML envelope to carry XML and a convention for doing remote procedure calls so a service can advertise "call me here," and a program will be able to do so without concern for language or platform.
A Web service can be anything, from a movie review service to a real-time weather advisory to an entire hotel- and airline-booking package. The Web services infrastructure ensures that even services from different vendors will interoperate to create a complete business process. Web services take the object-oriented vision of assembling software from component building blocks to the next level. With Web services, however, the emphasis is on the assembly of services, which may or may not be built on object technology.
Web services represent an industrywide response to the need for a flexible and efficient business-collaboration environment. Technically, it's a way to link loosely coupled systems without binding them to a particular programming language, component model or platform. Practically, it represents a discrete business process with supporting protocols that functions by describing and exposing itself to users of the Web and being invoked by a remote user and returning a response. It includes:
- Describing: A Web services application describes its functionality and attributes so that other applications can figure out how to use it.
- Exposing: Web services register with a repository that contains a "white pages" holding basic service-provider information; a "yellow pages" listing services by category; and a "green pages" describing how to connect and use the services.
- Being invoked: When a Web service has been located, a remote application can invoke the service.
- Returning a response: When a service has been invoked, results are returned to the requesting application.
The driving force behind Web services is the desire to allow businesses to use the Internet to publish, discover and aggregate other Web services using the global underpinning of SOAP. The fact that the delivery of Web services requires only the Internet means that legacy code and data as well as object systems can plug into Web services frameworks.
Opportunity and Risk
Web services represent a new model of software distribution and interconnection based on the notion of services globally available over the Web rather than object-to-object connections over limited networks. Because of the global scope of Web-based services, the potential financial upside is extremely attractive. Financial incentives include new revenue opportunities through creation of private trading networks, increased revenue through expanded distribution channels, and reduced inventory and transaction costs.
Web services also promise improved collaboration with customers, partners and suppliers. They provide opportunities for reducing integration time and expense compared with existing enterprise application integration approaches. There is also opportunity for improved supply-chain efficiencies; quick response to changing market conditions and customer preferences by utilizing loosely coupled modular services; and improved customer service by allowing customers and trading partners access to core systems.
However, the Web services vision is still new and not without risk. Despite the significant potential, it remains to be seen how Web services will play out on a large scale. It's expected that Web services will begin to play a role in the delivery of simple services, but until the technology matures, complex trading-partner interactions will still require an upfront human element to solidify agreements.
(Adapted, with permission, from the book XML, Web Services, and the Data Revolution, by Frank P. Coyle (Addison-Wesley, 2002). Coyle is director of the software engineering program at Southern Methodist University in Dallas.)