When we define SOA strategies at an enterprise level, we deal with multiple Line of Business (LOB) systems; some of them will be dealing with the same kind of business entity as well. This necessitates a Common Data Model (CDM) or Canonical Data Model.
SOA creates an environment where different types of data must work together. This makes application development complex. Service Data Object (SDO) provides a very simple programming model that addresses this issue. The key high level advantages of SDO are:
- Uniform access to data from heterogeneous sources which could be XML, RDB, POJO, SOAP, etc.
- SDO provides both a static (or strongly typed) programming model and a dynamic (or loosely typed) programming model. This provides a simple programming model without sacrificing the dynamic model needed by tools and frameworks.
- Provides Meta-data for easy introspection of data types
- Supports a disconnected model, whereby data can be retrieved from a data source via Data Access Service. The data can be modified by a client with change tracking, and applied back to the data source.
- SDO programming model is language neutral