SOA enhancements through XML Networking

From Computing and Software Wiki

Revision as of 02:15, 7 April 2008 by Demagaal (Talk)
Jump to: navigation, search

Service Oriented Architecture (SOA) enhancements through Extensible Markup Language (XML) Network has been a very discussed topic in the last few years. The performance and scalability of current SOA models are not sufficient to satisfy the increasing business demand of today's world. Web services for major companies are faced with extreme throughput issues that affect all the underlying applications that depend on such services. [1] This wiki discusses the approaches that can be taken to accelerate this service-sharing process by expanding the use of XML technologies throughout the middleware of the SOA framekwork. [2]


Contents

SOA Overview

Figure 1
Client and server interaction within a SOA framework. [8 ]

The web services concept provides a framework for sharing services across a network (such as the internet). Each of these services represent a group of objects and resources that are combined to provide a tool for business applications. Service-oriented architectures use these tools to build their custom applications: various services are grouped together to form the desired product (see figure 1). Therefore naturally the key factor for the success of SOA is interoperability. This means that services must be reachable from within any development framework: Java SE, .NET, etc. For such concept to become true various standards and regulations must be specified. [3] Such components will be discussed in the following section.

SOA Components

Figure 2
Network messaging layer of a common SOA framework. [2 ]
The main "ingredients" for a web service layer, and essentially a service-oriented architecture are: UDDI, WSDL, SOAP and HTTP. Together they specify what the web service is and how to reach it, which is all the client application needs to know.

UDDI

  • Stands for Universal Description,Discovery and Integration.
  • Sponsored by OASIS.
  • An XML-based registry that allows businesses to list and search for web services. [4]

WSDL

  • Stands for Web Services Description Language.
  • An XML-based language that describes a web service.
  • The 2.0 version is a W3C recommendation. [5]

SOAP

  • Stands for Simple Object Access Protocol.
  • A protocol for exchanging XML-based messages over a network.
  • Provides a standard message format for services to use. [6]

HTTP

  • Stands for Hypertext Transfer Protocol.
  • It is used to transfer information through a network (intranet, of world wide web).
  • Allows for a communication channel between a client and a server. [7]


Enhancements through XML Networking

As noted above, all aspects of a service-oriented architecture are based on the XML standard. However it is strange to realize that a large number of existent SOA-based systems do not take advantage of the growing arsenal of XML-related technologies. [1] In its current framework state, a large incoming SOAP request can really damage the throughput of a network: this message needs to be de-serialized, then proper networking routing logic applied, serialized again, routed to the destination service, process the response, and finally build the outgoing SOAP envelope. The efficiency of all these steps can be improved by applying XML-related tools at the network level, and therefore avoid the penalty of serialization/de-serialization of large SOAP messages. [2]

Overview of Technologies

Below is a brief listing of the main XML technologies that can be utilized to enhance the networking of web services.

XSD

  • XML Schema (XSD) is a W3C Standard that specifies the rules and structure of its related instances.
  • Designed to replace Document Type Definition (DTD), allowing for more complex internal structures.
  • Can improve performance of optimized parsers. [9]

XSLT

  • Stands for Extensible Stylesheet Language Transformation.
  • Transforms a given XML document into another document (usually XML or XHTML) based on content filtering and manipulation.
  • Main goal is to make documents readable by humans. [10]

XPath

  • Stands for XML Path Language.
  • It allows for easy navigation of XML documents
  • Values (string, booleans and numbers) can also be calculated from various nodes.
  • In its newest version (2.0), an entire subtree can be returned as the result of a query. [11]

XQuery

  • A query language for XML documents.
  • Main goal is to make SQL-like queries. [12]

XML Encryption

  • Allows for encryption of specific elements within a document.
  • Speeds up the cryptographic process of documents. [13]


Integrating XML Network

Figure 3
Integration of XML technologies inside a service-oriented architecture. [2 ]

Now that the key XML technologies have been presented we can illustrate their integration and how they can improve the web services network by continuing to use the "large SOAP request" example. First of all, this message can be properly routed to its web server destination by using XPath to examine the message payload (instead of just the header). [2]

This avoid a huge networking delay that was caused by serialization of the message in order to find where it should go. With the help of a corresponding XML Schema this process can be further improved, since the leading-market parsers now offer optimizations based on xsd documents. At the data-retrieval level of the web service provider, XQuery (using XPath) can be utilized to perform efficient queries such as extracting an entire subtree from the database and placing it into the response message. [12]

In terms of encryption, the advantages of XML Encryption standards allow for precise element encryption, allowing sensitive networking information to be read in a very efficient manner. Lastly, the XSLT documents can avoid unnecessary network traffic by directly transforming XML documents into different formats without having to send to another service provider.



FastSOA: the next step

References


External Links

See Also

Signature


Demagaal 19:34, 6 April 2008 (EDT)
Personal tools