Home | | Service Oriented Architecture | Standards Stack Layers

Chapter: XML and Web Services : Applied XML : Understanding XML Standards

Standards Stack Layers

As detailed previously, the XML standards stack consists of a few horizontal layers, with each layer dependent on the layer below it, and a few horizontal aspects that can be applied to multiple layers.

Standards Stack Layers

 

As detailed previously, the XML standards stack consists of a few horizontal layers, with each layer dependent on the layer below it, and a few horizontal aspects that can be applied to multiple layers. Even though the aspects can be applied to multiple XML stan-dards stack layers, they too are dependent on at least one layer for their operation and technical completion.

 

Message-Oriented Protocols Versus

Document-Oriented Specifications

 

When looking at the XML standards stack, you’ll notice that one thing immediately stands out: Half of the diagram is “sideways.” This can be interpreted in a number of ways, but most important of these is the very nature of how XML is being used.

 

As you have countless times been informed, XML is just a document format. There is nothing specific about XML that dictates in what context it can be used, how it is to be exchanged, or even how it is to be presented to the user. As a result, there are many uses for XML. In general, the uses for XML fall into two different camps: message-oriented protocols and document-oriented specifications. These two camps differ in their approach toward using XML and the requirements put upon the language.

 

Message-oriented protocols are focused at facilitating communication between two par-ties. They invariably involve a dialogue that has an initiating party and a responding party. Sometimes these conversations occur in a synchronous manner (parties open and maintain connections that are serviced until completion) or in an asynchronous manner (parties have an ongoing conversation with no real beginning or end). Typically, specifi-cations targeted at meeting messaging needs are called protocols, because they specify a proper means of interaction between systems and users. Protocols also have a distinct set of layers in their architecture. One given protocol might depend on another layer for proper interaction with a system. As such, the message-oriented needs for XML are rep-resented by the layer hierarchy shown at the right side of the diagram.

 

Document-oriented specifications are a different beast. They consider XML to be a way to represent information that may or may not be transmitted between users. The trans-mission aspect of XML is irrelevant to document-oriented specifications, just as the specifics of document representation are irrelevant to message-oriented protocols. Document-oriented specifications care specifically about how an XML document is rep-resented or the information contained within the document is applied. As a result, docu-ment-oriented specifications can be applied to any XML document—and more specifically to any level of the message-oriented protocol stack. Due to the orthogonal nature of message-oriented protocols, it is represented by vertical bars that span the mes-sage-oriented protocol layers.

 

Because the XML base architecture forms a basis for all XML documents regardless of intent, and community specifications rely on both message- and document-oriented specifications for their operation, these two portions of the stack cut across both usage domains.

 

XML Base Architecture

 

All XML specifications share one thing in common: the use of XML. This seemingly circular reasoning is intended to establish the baseline for all specifications, namely the W3C XML Recommendation. This recommendation forms the base for all XML specifi-cations; therefore, this layer in the XML standards stack is known as the XML Base Architecture layer.

 

Of course, a layer can’t consist of just a single specification or protocol. First, we must acknowledge that the current release of the XML Recommendation, namely version 1.0, will most likely change and mutate over the course of its existence. As a result, the base won’t consist of just one specification, but perhaps two or more that different specifica-tions at higher levels in the stack may depend on. For example, when version 2.0 is released, perhaps some specifications will make use of it, whereas others will still depend on version 1.0. However, the greater reason for the existence of this layer in the stack is the fact that XML is surrounded by a host of other specifications that extend its reach into different technological areas. Many of these extend the “core” of what XML is and therefore represents additional specifications at this layer. For example, XML Schema, XLink, XPath, and DOM all represent additions to the base XML specification that enrich the language and provide support for the various upper levels of the hierarchy. As such, those are included in this layer.

So, what is the definition for the technologies that are included in this layer? We can define specifications and technologies in the XML Base Architecture layer as “those standards, specifications, protocols, and technologies that form a basis for the representa-tion of XML documents for all parties and uses, regardless of industry, context, or usage.” Therefore, it is clear that XML Schema falls into this layer, whereas XHTML, which is a presentational specification, does not.

 

XML Transport Layer

 

Because XML is just a data representation technology, it doesn’t physically go any-where. It needs to be transported from place to place in order for it to provide value to any set of parties in communication with each other—unless of course the XML docu-ments are meant only to be stored and not exchanged. Traditionally and most typically, XML sits at a fairly high level in the OSI network model, usually at the Presentation and Application layers, so it can take advantage of many of the existing network protocols to get from point A to point B. Typically, XML documents are sent via the Hypertext Transfer Protocol (HTTP), Simple Mail Transfer Protocol(SMTP), or the File

 

Transfer Protocol (FTP).

 

Despite this, there have been a number of efforts to utilize XML itself as a means for facilitating point-to-point communications, either by replacing some of the aforemen-tioned protocols or by augmenting them for better transfer of XML documents. Because these use XML as their document format, it makes sense for the Transport layer to be above the XML Base Architecture layer, but more appropriately, all message-based pro-tocols rely on a Transport layer for documents to be transmitted between communicating parties. One can simply use XML-based or non-XML-based protocols in the Transport layer, and it will be obvious that non-XML-based protocols don’t depend on XML for their operation.

 

Some of these XML-based transport efforts include the Blocks Extensible Exchange Protocol (BEEP or BXXP) and Jabber. Both aim to use XML as a means for defining messaging transport protocols or as a framework for exchange of messages in a networked environment.

 

XML Messaging Layer

 

The Messaging layer of the XML standards stack is where much of the work happens in packaging XML documents for transmission between communicating parties. Although the Transport layer takes care of the actual message transmission, information is first needed to determine who is to receive the message, how it should be handled, and what to do in the eventuality of transmission failures. Many specification efforts call this layer the Transport, Routing, and Packaging (TRP) layer, although they aren’t really specify-ing the transport mechanism per se but rather all the requirements needed by a transport protocol to handle the job effectively.

 

There are many components to the Messaging layer and issues that need to be taken into account when packaging and routing messages. Think of the Messaging layer as an enve-lope that surrounds the content to be transported. On a mail envelope, there are a few key features: a delivery address, a return address, postage, a postmark, and a physical enve-lope that keeps the contents away from prying eyes. These metaphors are quite relevant in the Messaging layer.

 

In the same manner that an envelope has a sending address and a return address, the Messaging layer specifies who is to receive the given content and who originated the content. This allows messages to be routed from place to place in a predictable fashion. However, the Messaging layer is more complex than the postal mail analogy in that many messaging specifications allow users to also specify intermediaries that can store and forward messages. Regardless of the technology used, this addressing or routing information is extremely important in the Messaging layer.

 

Postal mail also contains postage and a postmark. The direct analogy to this in the Messaging layer is the ability to specify transaction and nonrepudiation rules. Transaction rules dictate in what order the given message is to be processed, dependen-cies on other messages for processing, and timeouts for attempting to transmit to the receiving parties. This ensures that only the appropriate number of messages are processed in the correct order by the recipient. Nonrepudiation rules help ensure that a given message was in fact received by the other communicating party. Without a way of knowing whether the message was received and processed, it would be impossible to determine whether it just disappeared into the “ether.” These features of transaction con-trol and nonrepudiation help to ensure that message delivery is a reliable affair.

 

Finally, there is the issue of the envelope itself. The envelope serves two major purposes: to package the contents for delivery and to protect the contents from unauthorized access. Without the envelope, XML documents are just a loose assortment of metadata tags. The envelope provides a means for collecting and identifying these tags as a distinct data entity. In addition, the envelope can encrypt or otherwise restrict access to the con-tents contained within, in much the same way postal mail security envelopes protect their content from prying eyes.

 

Examples of XML messaging specifications include the Simple Object Access Protocol (SOAP), ebXML’s Transport, Routing, and Packaging (TRP) layer, and the RosettaNet Implementation Framework (RNIF). The W3C is also working on a specification, called the XML Protocol, that will extend concepts provided in SOAP. Each of these Message layer protocols solve the aforementioned problems, but in their own way. This difference in implementation can cause problems in interoperability. For example, if we all wrote our addresses in different ways on an envelope, the Postal Service would be unable to deliver our mail. The same can be said for different Message layer specifications. It is important to consider the interoperability of these specifications as they come into more widespread use.

 

Services Layer

 

Once we have addressed the issues of transporting and packaging XML documents for shipment across a network, the next layer involves ascribing some functionality to these various intersystem communications. This is where the Services layer fits. The term ser-vices, in this context, describes a set of exposed application functionalities that can be accessed by machines in a distributed manner. Such functionality can take the form of actual application code or simply messages communicated between systems in the process of accomplishing some task. In either case, the Services layer addresses the spec-ifications needed to accomplish these tasks.

 

The most common phrase heard nowadays with regard to services is loosely coupled. Systems that communicate using XML and Messaging layer protocols can exchange information without having to know too much about how the other system plans to process that information. Such systems are known as loosely coupled systems.

 

The word coupled denotes that the two systems are connected to each other in some fashion, whereas the term loosely means that they are connected in the least restrictive of manners.

 

Services layer specifications accomplish this goal of providing loosely coupled systems by encapsulating system functionality in a manner that exposes required inputs and out-puts while abstracting processing methodology. The best example of Services layer func-tionality is the Web Services Description Language (WSDL). WSDL forms a core component of the overall Web Services architecture that leverages SOAP as its routing and packaging layer. Because Services layer specifications expose application functional-ity while masking application processes, it is important for systems to understand the inputs and outputs required by the specific Services layer component. Protocols such as WSDL specify these things while also helping systems understand the data requirements of these inputs and outputs, error processing requirements, and general data handling.

 

Process Layer

Once application logic and functionality has been encapsulated and defined in the Services layer, turning that functionality into coordinated action is the responsibility of specifications in the Process layer. Process layer specifications concentrate on organizing individual functionality components into larger applications that aim to solve an overall business problem or meet a usage goal. In the same manner that software applications are a sum of their objects and program components, XML-based applications are the sum of their Service layer components.

 

Some of the key parts of turning functionality into action include the ability to wire ser-vice components together with workflow and logic. Process layer specifications aim to provide a mechanism to identify when certain pieces of functionality should be executed, the proper branching for evaluation of functionality results, and when various processes begin and end. The workflow behind an application helps to tie these disparate compo-nents into a cohesive system that embeds the logic of human-based systems into a machine-based exchange. Workflows also allow human interaction to occur at various points in the machine-to-machine dialogue.

 

Speaking of dialogue, the main goal of Process layer specifications is to organize these transactions into larger dialogues that represent an actual business function, rather than an application function. For example, a Process layer may embody a “Purchase Goods” process, which in turn actuality consists of many individual transaction-based functions such as “Request Product Availability,” “Place Product Order,” “Submit Purchase Order,” and “Process Invoice.”

 

Process layer specifications include RosettaNet Partner Interface Processes (PIPs), the Business Process Markup Language (BPML), and various workflow specifications.


Study Material, Lecturing Notes, Assignment, Reference, Wiki description explanation, brief detail
XML and Web Services : Applied XML : Understanding XML Standards : Standards Stack Layers |


Privacy Policy, Terms and Conditions, DMCA Policy and Compliant

Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.