# Service Data Objects

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Service_Data_Objects
> Markdown URL: https://mediated.wiki/source/Service_Data_Objects.md
> Source: https://en.wikipedia.org/wiki/Service_Data_Objects
> Source revision: 1187629541
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Java library

Not to be confused with the [CANopen](/source/CANopen) protocol of the [same name](/source/CANopen#Service_Data_Object_(SDO)_protocol).

**Service Data Objects** is a technology that allows [heterogeneous](/source/Heterogeneous) data to be accessed in a uniform way. The SDO specification was originally developed in 2004 as a joint collaboration between [Oracle](/source/Oracle_Corporation) ([BEA](/source/BEA_Systems)) and [IBM](/source/IBM) and approved by the [Java Community Process](/source/Java_Community_Process) in [JSR 235](http://www.jcp.org/en/jsr/detail?id=235). Version 2.0 of the specification was introduced in November 2005 as a key part of the [Service Component Architecture](/source/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](/source/IBM_WebSphere_Application_Server) 5.1 and [IBM WebSphere Studio Application Developer](https://en.wikipedia.org/w/index.php?title=IBM_WebSphere_Studio_Application_Developer&action=edit&redlink=1) 5.1.2.[1] Other similar technologies are [JDO](/source/Java_Data_Objects), [EMF](/source/Eclipse_Modeling_Framework), [JAXB](/source/JAXB) and [ADO.NET](/source/ADO.NET).

## Design

Service Data Objects denote the use of [language-agnostic](/source/Language-independent_specification) data structures that facilitate communication between structural tiers and various service-providing entities. They require the use of a [tree structure](/source/Tree_structure) with a [root node](/source/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](/source/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](/source/IBM), [Rogue Wave](/source/Rogue_Wave_(company)), [Oracle](/source/Oracle_Corporation), [SAP](/source/SAP_AG), [Siebel](/source/Siebel), [Sybase](/source/Sybase), [Xcalia](https://en.wikipedia.org/w/index.php?title=Xcalia&action=edit&redlink=1), [Software AG](/source/Software_AG) within the [OASIS](/source/OASIS_(organization)) 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](/source/Rogue_Wave_Software) HydraSDO

- Xcalia (for Java and .Net)

- [Oracle](/source/Oracle_Corporation) (Data Service Integrator) [4]

- IBM (Virtual XML Garden)

- IBM ([WebSphere Process Server](/source/WebSphere_Process_Server))

There are open source implementations of SDO from:

- The Eclipse Persistence Services Project ([EclipseLink](/source/EclipseLink))

- The [Apache Tuscany](/source/Apache_Tuscany) project for Java and C++

- The fcl-sdo library included with [FreePascal](/source/FreePascal)

## References

1. **[^](#cite_ref-1)** ["Introduction to Service Data Objects"](https://web.archive.org/web/20210306022253/http://www.ibm.com/developerworks/java/library/j-sdo/). *[IBM](/source/IBM)*. Archived from [the original](http://www.ibm.com/developerworks/java/library/j-sdo/) on 6 March 2021.

1. **[^](#cite_ref-2)** [Activities and announcements | OASIS Open CSA](http://www.oasis-opencsa.org/)

1. **[^](#cite_ref-3)** [Home – Open SOA Collaboration](http://www.osoa.org)

1. **[^](#cite_ref-4)** [| Oracle Data Service Integrator](http://www.oracle.com/technetwork/middleware/data-service-integrator/overview/index.html)

## External links

Specification versions and history can be found on

- Latest materials at [OASIS Open CSA](http://www.oasis-opencsa.org/sdo)

- [Service Data Objects](http://www.osoa.org/display/Main/Service+Data+Objects+Home)

- [SDO Specifications at OpenSOA](http://www.osoa.org/display/Main/Service+Data+Objects+Specifications)

- [Introducing Service Data Objects for PHP](https://web.archive.org/web/20090205171448/http://devzone.zend.com/article/1085-Introducing-Service-Data-Objects-for-PHP)

- [Using PHP's SDO and SCA extensions](http://www.ibm.com/developerworks/web/library/ws-soa-scasdo/index.html)

---
Adapted from the Wikipedia article [Service Data Objects](https://en.wikipedia.org/wiki/Service_Data_Objects) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Service_Data_Objects?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
