InfoQ

News

Data Services in SOA: Issues and Possible Solutions

Posted by Jean-Jacques Dubray on Nov 13, 2007 12:30 AM

Community
SOA
Topics
Web Services ,
REST
Tags
Web services ,
XML Schema ,
WSO2

Data Services are increasingly generating interest in Service Oriented Architectures, whether it is for Master Data Management (MDM), Customer Data Integration (CDI) or as a core SalesForce.com API.

WSO2 released last summer a Data Services Framework as part of their Web Services Application Server (WSAS) to make it easier to create data services from SQL databases.

Last week, David Webber wrote an article about the OASIS Content Assembly Mechanism (CAM) specification and its relation to data services. While most people give up on defining an XML Schema definition to validate the result of queries, CAM provides template that allow for the definition of validation data services for XML-based transactions. Dave adds:

While existing techniques using W3C XSD schema, namespaces, XSLT and other tools (such as Schematron and XMLBeans) have been in existence for some time, they provide more developer-centric and potentially brittle design options. [Traditional Schema mechanisms are] not necessarily helpful for agile information interfaces that need to respond to business context criteria.

CAM is able to define a message structure without using XML Schema. An additional feature of CAM platform is that it supplies mechanisms that facilitate service versioning and reuse. Dave explains:

Many insights can be gained by studying the well-established AWS platform that has been available now for over three years...Amazon is continually making changes to the content model, and as a result they support version requests going back several years...Amazon uses a self-service versioning approach where the version ID of the request is included in the syntax of the request itself.

The problem is compounded by the wide range of products that Amazon sells:

Each product type has different information models (broadly shown in the diagram). A query for a range of product codes will return a block of XML with varying parts. Some of these structure nuances are substantial with XML element tags appearing in different blocks of the structure and with different associated elements. Not only that, but each item has information about prices, stock levels and downstream suppliers of new and used items in addition to Amazon.com itself and the ranking of those suppliers.

Dave's article features an analysis of the context drivers for Amazon services and concludes:

Clearly when you look at W3C schema and namespace mechanisms, none of these contextual behaviors are supported. All you see is the total layout of the overall structure that could occur.

Dave then describes CAM which is using a collection of XPath statements to describe flexible and context dependent document structures. CAM shares roots with UN/CEFACT Core Component Technical Specification, but unlike CCTS, CAM is operational today. The jCAM Java open source implementation of CAM provides three distinct deployment modes for typical interactions associated with an SOA, including Web services, B2B and standalone local modes. The Eclipse editor enables local standalone use of CAM templates in support of a SOA implementation.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.