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 BEA and IBM and approved by the Java Community Process. Version 2.0 of the specification was introduced in November 2005 as key part of the Service Component Architecture.
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:
The following SDO products are available:
- Rogue Wave Software (HydraSDO)
- CodeFutures Software (FireStorm/SDO)
- Xcalia (Xcalia Intermediation)
- BEA (ADSP)
- IBM (Virtual XML Garden)
- IBM (WebSphere Process Server)
There are open source implementations of SDO from:
- The Apache Tuscany project for Java and C++
- The SCA and SDO for PHP project