Service Data Objects

From Wikipedia, the free encyclopedia

Service Data Objects is a technology that allows heterogeneous data to be accessed in a uniform way. The SDO specification was originally developed in 2004 as a joint collaboration between Oracle (BEA) and IBM and approved by the Java Community Process in JSR 235. Version 2.0 of the specification was introduced in November 2005 as a key part of the Service Component Architecture.

Relation to other technologies[]

Originally, the technology was known as Web Data Objects, or WDO, and was shipped in IBM WebSphere Application Server 5.1 and 5.1.2.[1] Other similar technologies are JDO, EMF, JAXB and ADO.NET.

Design[]

Service Data Objects denote the use of language-agnostic data structures that facilitate communication between structural tiers and various service-providing entities. They require the use of a tree structure with a root node and provide traversal mechanisms (breadth/depth-first) that allow client programs to navigate the elements. Objects can be static (fixed number of fields) or dynamic with a map-like structure allowing for unlimited fields. The specification defines meta-data for all fields and each object graph can also be provided with change summaries that can allow receiving programs to act more efficiently on them.

Developers[]

The specification is now being developed by IBM, Rogue Wave, Oracle, SAP, Siebel, Sybase, , Software AG within the OASIS Member Section Open CSA[2] since April 2007. Collaborative work and materials remain on the collaboration platform of Open SOA,[3] an informal group of actors of the industry.

Implementations[]

The following SDO products are available:

  • Rogue Wave Software HydraSDO
  • Xcalia (for Java and .Net)
  • Oracle (Data Service Integrator) [4]
  • IBM (Virtual XML Garden)
  • IBM (WebSphere Process Server)

There are open source implementations of SDO from:

  • The Eclipse Persistence Services Project (EclipseLink)
  • The Apache Tuscany project for Java and C++
  • The fcl-sdo library included with FreePascal

References[]

External links[]

Specification versions and history can be found on

Retrieved from ""