Skip to main content


developerWorks  >  SOA and Web services  >

Service Data Objects

developerWorks

Level: Advanced

Contributors: BEA Systems, IBM, Oracle, Primeton Technologies Ltd., Rogue Wave Software, SAP AG, Software AG, Sun Microsystems, Sybase, Xcalia, Zend Technologies

30 Nov 2005
Updated 01 Nov 2006

In response to requests from customers and joint Independent Software Vendor (ISV) partners, BEA, IBM, Oracle, Primeton Technologies, Rogue Wave, SAP, Software AG, Sun, Sybase, Xcalia and Zend are collaborating on specifications for building systems that use a Service-Oriented Architecture (SOA), which aim to provide developers with simpler and more powerful ways of constructing applications based on SOA. These specifications are published under royalty-free terms. You can learn more about how these specifications work together.

Service Data Objects: Simplifying the programming model for data access

Service Data Objects (SDO) is designed to simplify and unify the way in which applications handle data. Using SDO, application programmers can uniformly access and manipulate data from heterogeneous data sources, including relational databases, XML data sources, Web services, and enterprise information systems. For more information about the goals and architecture of SDO, see the whitepaper "Next-Generation Data Programming: Service Data Objects."

SDO is based on the concept of disconnected data graphs. A data graph is a collection of tree-structured or graph-structured data objects. Under the disconnected data graphs architecture, a client retrieves a data graph from a data source, mutates the data graph, and can then apply the data graph changes back to the data source.

The task of connecting applications to data sources is performed by data mediator services. Client applications query a data mediator service and get a data graph in response. Client applications send an updated data graph to a data mediator service to have the updates applied to the original data source. This architecture allows applications to deal principally with data graphs and data objects.

SDO enables both a static (or strongly typed) programming model and a dynamic (or loosely typed) programming model. This enables a simple programming model without sacrificing the dynamic model needed by tools and frameworks.

SDO also provides a metadata API, which allows applications, tools, and frameworks to introspect the data model for a data graph. The SDO metadata API unifies data-source-specific metadata APIs to enable applications to handle data from heterogeneous data sources in a uniform way.

SDO is intended to be language-neutral and to be available in a range of programming languages.

In June 2005, an updated and extended version of the Java SDO Specification was made available -- Version 2.0. The Java SDO Specification is now complemented with the C++ SDO Specification. Both are published at the Version 2.01 level. This represents only minor editorial changes for the Java specification, but it is the first public version of the SDO specification.

Get the specification and related material

DescriptionDateAccess method
The SDO specifications are available on the Open SOA Collaboration website.November 2006HTML page
The specifications can be viewed and downloaded from the SDO Specifications page. (Previous versions of the specifications are also available from this page.)November 2006HTML page

Get the whitepaper

DescriptionDateAccess method
In addition to the specifications, read the whitepapers and presentations for additional information on the Service Data Objects specifications, which are also available on the Open SOA Collaboration Web site, in the SDO Resources page.November 2006HTML page

Feedback

If you would like to contribute technical comments on this specification, please do so through the Feedback page on the Open SOA Collaboration Web site.

Open source runtimes and tools

There is an open source project which provides Runtime implementations of Service Data Objects, which you can use to build applications and which has some basic tools which assist the use of SDOs. This project is called Tuscany, currently under incubation at Apache. See the Tuscany Web site at Apache.

There is also an Eclipse open source project which aims to provide tools to enable developers to build solutions using a service oriented architecture, which uses Service Component Architecture as its core model. This is the Eclipse SOA Tools Platform project, which you can find at the SOA Tools Platform (STP) Project Web site.

About the Open SOA Collaboration

The SCA and SDO specifications are currently being evolved by a collaboration of companies from across the industry, prior to eventual submission to a formal standards body. To learn more about the Open SOA Collaboration, please visit the home page of the OSOA Web site.

If you would like closer involvement with the evolution of the specifications, you can join the OSOA Supporters group. More information about the OSOA Supporters can be found at the OSOA Web site.


Resources


Back to top


Document options

Document options requiring JavaScript are not displayed


New site feature

Check out our new article design and features. Tell us what you think.