In this chapter, we provide an overview of the Web services technology, together with the set of standard specifications for Web services transactions. The core components of the Web services technology include eXtensible Markup Language (XML), HyperText Transfer Protocol (HTTP), Simple Object Access Protocol (SOAP), and Web Services Description Language (WSDL). Both SOAP and WSDL are based on XML. All these protocols and languages have the characteristic of strong extensibility, which lays a solid foundation for the success of the Web services technology. Due to the extensibility design, the protocols specified in the Web services transactions standards can be plugged into the Web services core seamlessly to provide the additional coordination needed for business transactions. Furthermore, we point out the need to protect the business transactions from the hardware failures and malicious faults, and for more robust coordination for Web services transactions.
In this section, we introduce the Web services concept and the basic building blocks of the Web services platform. There is no universal definition of the term Web services and its interpretation varies drastically. Web services can be loosely defined as any services offered over the World Wide Web. On the other hand, only the services enabled by the Web services technology are referred to as Web services by many researchers and practitioners. In this chapter, we use the latter interpretation. The Web services technology refers to the set of standards that enable automated machine-to-machine interactions over the Web. The corner stone of the Web services technology consists of eXtensible Markup Language (XML) (Bray, Paoli, Sperberg-McQueen, Maler, Yergeau & Cowan, 2006), HyperText Transfer Protocol (HTTP), Simple Object Access Protocol (SOAP) (Gudgin, Hadley, Mendelsohn, Moreau, Nielsen, Karmarkar et al., 2007), Web Services Description Language (WSDL) (Christensen, Curbera, Meredith & Weerawarana, 2001), and the Universal Description, Discovery and Integration (UDDI) service (Clement, Hately, Riegen & Rogers, 2004). From an architecture point of view, the Web services platform consists of Web services providers, Web services consumers, and UDDI registries that broker the providers and the consumers, as shown in Figure 1. If a Web services consumer wants to request a service, it can search for available service providers via UDDI. Based on the returned information, the consumer can invoke the service by sending the request directly to the service provider.
The architecture of Web service
Key Terms in this Chapter
Distributed System: A distributed system is a computer network system, shown to end users as a single machine but actually work with a set of independent computers connected.
Web Services: Electronic services enabled by the Web services technology. The Web services technology refers to the set of standards that enable automated machine-to-machine interactions over the Web. The core standards include XML, HTTP, SOAP, WSDL and UDDI.
WSDL: WSDL stands for Web Services Description Language. It is an XML-based language used to describe Web services. For each Web service, the corresponding WSDL document specifies the available operations, the messages involved with the operations, and a set of endpoints to reach the Web service. Due to the use of XML, WSDL is also extensible. In particular, it allows the binding of multiple different communication protocols and message formats.
Remote Procedure Calls (RPC): A technical way that allows a call to a subroutine or a procedure which may run on another machine. To the caller, the call appears to be no different from a local call.
XML: XML stands for eXtensible Markup Language. It is designed to facilitate self-contained, structured data representation and transfer over the Internet. It is extensible because it allows users to define their own tags.
UDDI: Stands for Universal Description, Discovery and Integration. UDDI provides the standard way for Web services providers to describe their services, and the consumers to search and discover the available services.
SOAP: Stands for Simple Object Access Protocol. It was originally designed to conduct remote procedure calls over the Web. It has evolved to become the main communication protocol to exchange XML documents. A SOAP message contains a SOAP Envelop and a SOAP Body. A SOAP message often contains an optional SOAP Header element, and a Fault element if an error is encountered by the sender of the SOAP message.
Atomic Transaction: An atomic transaction in the context of Web services refers to a distributed transaction to be executed atomically. It should exhibit the atomicity, consistency, isolation and durability properties, just like a local transaction.
Endpoints Reference (EPR): A collection of information used in web service to describe a resource’s address, such as a URI (uniform resource identifier). This information is contained in the header of a SOAP message.