Xml, Web Services, and the Data Revolution (2002)

From the Book:
The aim of this book is to try and tell the story that we're now all a part ofa story not just about emerging technologies such as xml and web services, but of how these technologies are coming together and combining in new ways, creating new applications for which the requirements have yet to be written.
Structure of the book
Except for the first and last chapters, the book is essentially a bottom up view of the xml-driven, open systems world we now find ourselves. Chapter 1 describes the big picturehow xml and the web have changed our perspective about data so that instead of regarding data as something to be stored in a database and shuttled across networks by object systems locked in a tight transport protocol embrace, data is now free (thanks to xml and its family of standards) to move about the web and create new synergies based on asynchronous loose coupling.

Chapter 8 then takes a top down look at where we have arrived and explores some of the new kinds of interactions to expect in a environments made up of traditional client server networks, even more traditional mainframe apps and the web. 
Chapter Overviews
Chapter 1 is an attempt to draw the big picturehow the Web and a data description technology known as XML have initiated fundamental changes in computing through a shift in focus from tightly-coupled computing environments to loosely-coupled networks centered around the Web and XML. The effect of this combination has been to spawn three revolutions. The first revolution, the Data Revolution, is the story of XML and its impact on how data businesses represent data. Although initially viewed as a data descriptionlanguage, XML in combination with HTTP, the Web transport protocol, quickly took on emergent properties giving rise to SOAP, the Simple Object Access Protocol. Today, SOAP is the basis for communicating across loosely-coupled Web space and is a the key driver behind Web services. The second revolution, the Software Revolution, looks at a changing model of software construction influenced by the W3C in their effort to build a universal Web. Instead of trying to construct software that does it all, this new era of software assembly is based on the principles of simplicity and modularity, encouraging combination with other software entities. The third revolution is about software architectures and the move to loosely-coupled distributed systems that are both an alternative and complement to the more tightly-coupled systems characterized by CORBA, DCOM and RMI.

Chapter 2 covers the core XML technologies, xml 1.0 and Namespaces, and explores the family of technologies surrounding the core that provide the support system for delivering structured content across the Web. We examine the applicability of the various support technologies from the perspective of a fictitious company, ZwiftBooks, that has decided to adopt xml in an effort to build its business around web standards and protocols. The chapter focuses on two important categories of xml support, that of presentation and transformation. For data presentation we look at CSS, XSL, XHTML, and VoiceXML, each offering options for delivering XML to a variety of devices in different formats. For XML manipulation we look at XSLT, XPATH and XQUERY, three technologies used to transform, process and query XML data. Finally, to round out our tour, we look at RDF and InfoSet, which provide permit different XML technologies to integrate more effectively, helping foster what the W3C refers to as the seamless Web.

Chapter 3 looks at XML in practicehow XML has been put XML to use accomplishing a variety of tasks from simple industry-driven data description languages, to vocabularies for configuration and action, to the use of XML as a protocol language that has changed the fundamental assumptions about distributed object computing.

Chapter 4 takes a detailed look at the forces and technologies behind SOAP, the SImple Object Access Protocol. SOAP is an example of what can happen when you put two technologies such as the Web and XML together. True to the Web's spirit of emergent behavior, SOAP has created a framework for building loosely-coupled confederations of servers that communicate by exchanging XML data over XML protocols. The surprise here is a new set of options that provide alternatives to the tightly coupled network islands of CORBA, DCOM and RMI. SOAP and its associated protocol XML-RPC have the balance of power in the computer industry, creating new paradigms based on message-oriented middleware and dynamic discovery and interaction that is the basis for web services.

Chapter 5 examines the playing field of Web services. Building on a framework of loosely coupled networks, Web services takes object technology's goal of reuse to the next level, by defining XML protocols for discovery and connection. These protocols include UDDI and WDSL. UDDI is a protocol for the discovery and deployment of Web services. WSDL, the Web Services Definition Language that describes how to connect to Web services. We examine details of both UDDI and WSDL to get a sense of how these technologies combine to create a new, developing framework for Web services. 

Chapter 6 looks at how the software industry is reacting and adapting to the changes brought about by XML-driven loosely-coupled networks and the emergence of Web services. Throughout the 1990s, the major network playersMicrosoft, Sun and the Object Management Group (OMG), have been competing with their respective object-technology based alternatives for distributed computing. Microsoft's DCOM, the OMG's CORBA and Sun's J2EE, represent competing options for building tightly coupled distributed networks. The advantage of these distributed networks is that they provide efficient communication and handle the complex interactions required for transactions and security. The downside is that each comes with its own object model and transport technology so that connection outside their own universes is possible only with gateway software. Thus, what we're seeingin Microsoft's .NET initiative, in various j2EE implementations form Sun IBM, HP, BEA and others, are attempts to bridge the gap between the tightly-coupled, transaction-aware space (DCOM and J2EE) and the loosely-coupled, XML-driven, message-centric space of the Web. 

Chapter 7 is about securing the XML traffic as it travels across the loose fabric of the Web. XML's ability to structure data provides both opportunities and challenges for applying encryption, authentication and digital signatures to XML-encoded data. For example, in a workflow environment, where XML documents move between participants, and where a digital signature implies some commitment or assertion, participants may only wish to sign parts of a document to minimize liability. Existing secure Web standards, such as HTTPS, that support secure Web transmissions, are not able to address XML-specific issues relating to partial document signing or to deal with the fact that XML documents may be processed in stages along loosely-coupled network paths. To deal with this reality, three new XML-related security initiatives are explored: XML Encryption, for encoding individual parts of an XML document; XML Signature, for managing the integrity of XML as it moves across the Web; and the XML Key Management Specification (XKMS) for dealing with public key verification and validation.

Chapter 8 takes a high level look at some of the forces driving the new hybrid world we now find ourselvesan amalgam of three architectures: (1) loosely coupled web space driven by SOAP messaging, tightly coupled, (2) transaction-capable object systems with their own transport protocols, and (3) legacy applications, mostly mainframe based, that have long been difficult to integrate into client server systems. The irony here is that the central repository model made possible by the mainframe, and obsoleted by client server network computing, is now undergoing a renewed interest due to the need to manage collaborative P2P efforts over the loosely coupled web.