Service Data Objects (SDO) ist eine Spezifikation für ein herstellerunabhängiges Framework zum einheitlichen Datenzugriff, die im Oktober 2001 von bekannten Unternehmen wie IBM und BEA Systems, Inc. in JSR-235 verabschiedet wurde.
Das Ziel von SDO ist, ein Programmiermodell zur Verfügung zu stellen, welches einen einheitlichen Datenzugriff über verschiedene heterogene Datenzugriffsquellen wie z. B. JDBC, XML, EJB usw. ermöglicht. SDO spezifiziert ein API, über das unabhängig vom eingesetzten Datenspeicher einheitlich auf die Daten zugegriffen werden kann.
Der einheitliche Weg zur Repräsentation von Daten soll die Datenabstraktion in einer serviceorientierten Architektur erleichtern.
Neben einem Programmiermodell zum einheitlichen Datenzugriff spielten folgende Design-Kriterien eine wichtige Rolle bei der Spezifikation von SDO:
- gute Unterstützung von Werkzeugen
- Disconnected Programming Model
- dynamische und statische (fest typisierte) API
- Introspektion der Daten
- Änderungshistorie für Datenänderungen
- Integrität bei Beziehungen
- gute Integration mit XML
Die aktuelle Version 2.1.1 ist vom 15. Januar 2009.