In this advanced Web services architecture that we have been discussing, some of the most widely adopted and easily recognized Internet and XML messaging protocols provide the foundation for all subsequent Web services standards. Without protocols such as HTTP, TCP, and SOAP, and without the XML standards, it would be impossible to create a modular protocol with limited scope and functionality such as WS-ReliableMessaging or WS-Transaction. In Web services, the following core technologies make up the foundational layer, from lowest to highest level:
Transport protocol layer
Messaging protocol layer
Next we ll look at these foundational layers . We ll also examine the protocols that define description and discovery for Web services. Although they are part of the metadata layer rather than the foundational layer, these protocols have already become widely accepted and adopted by the industry.
Traditionally, a number of protocols could be used to move data over the Internet, including:
Transmission Control Protocol/Internet Protocol (TCP/IP) The ubiquitous stream-oriented protocol that s the base protocol for all Internet messaging
User Datagram Protocol (UDP) For simple packet-oriented communication
Hypertext Transfer Protocol (HTTP) For transmitting text-based markup data via TCP/IP
File Transfer Protocol (FTP) For transferring binary and textual files
Web services currently use HTTP as the primary transport for SOAP messages, although other transports such as TCP and SMTP could also be used. HTTP is ubiquitous and was originally designed to transport hypertext messages, such as HTML and XML. By default, Web servers that support HTTP use port 80 for communication, and system administrators are used to opening port 80 for these purposes. Because opening and maintaining additional ports on the firewall tends to be costly from an administrative standpoint, one of the strengths of SOAP over HTTP has been the ability to leverage the existing port 80 for SOAP messaging. HTTP, in turn , uses TCP/IP for sending individual packets of data over the wire. In addition, specialized messaging protocols, such as Direct Internet Message Encapsulation (DIME), can bind to TCP directly to transport XML messages with binary attachments. We ll investigate DIME in detail later in this chapter.
XML is a hierarchal, text-based mark-up syntax that provides a standardized way of packaging metadata with application data in a way that is both human- readable and machine-readable. This technology has been the catalyst in driving interoperability in the enterprise. Derived from Standard Generalized Markup Language (SGML), the beauty of XML is that it s a data-centric format that is structural and can be easily described using schema. As a result, an XML document can be easily interpreted and rendered appropriately, regardless of the specific client device accessing the information. For example, when an incoming XML document contains data for an e-mail message, that document can be parsed, rendered, and formatted either for display as an HTML page or for a handheld device such as a PDA or a mobile phone. Also, because XML is a simple text-based format, it can be easily transmitted using the HTTP, SOAP, and DIME protocols.
If you are new to the world of XML, the following is an example of a simple XML document that describes a collection of books and movies. In this example, the root element, Collection , has the child elements Owner and Name , which provide information about the collection. The Item element is a child element of Collection with a Media_Type attribute that shows whether the item is a book or a video. Further nested within Item are the elements Title and Author as well as the optional Length element if the item is a video.