sdo: service data objects - software summitusing a service oriented architecture (soa)...
TRANSCRIPT
![Page 1: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/1.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 1
SDO: Service Data Objects
Stephen A. Brodsky, Ph.D.IBM
Collaboration partners: BEA, IBM, Oracle, SAP, Xcalia
![Page 2: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/2.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 2
Agenda
SDO – The Big Picture
SDO – Key Concepts and Core APIs
SDO in Action
Summary
![Page 3: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/3.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 3
Information as a ServiceVirtualizing the IT Infrastructure
Business Processes
Monitoring Workflows
Business Applications
Portals
Composite Applications
Workflows
Rich client
Browser
Mobile
Clients
Information Services
Data & ContentAnalysis Integration
Application Adapters
Quality
SDOSDO
SDO
SDO
![Page 4: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/4.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 4
SDO Is Used Everywhere
Service Oriented Architecture (SOA)SDOs are the input and output ofservices
Web ServicesSDOs represent the XML on the wire
XMLWhen XML-enabling an applicationWhen accessing XMLfiles/documents/resources/messages
EJBSDOs are Data Transfer Objects (DTO),value objectsJ2EE Design Pattern
Enterprise Service Bus (ESB)SDOs are the input and output ofservices
Model Driven Architecture (MDA)SDO model (Type and Property) definedby Unified Modeling Language (UML)Classes and ComponentsSDO applications follow UML Sequence,Flow, State, and Collaboration
Data accessAccess relational, XML, EJB, JDO,Hibernate data sourcesSDOs are the DTOs
MessagingSDOs represent the messages
Connectors/Adapters (EIS, CICS)SDOs represent the data records
BPEL-JSDOs are the Java businessobjects
ADO.NETDataSet is a subset of SDO DataGraphs
Cross-language programmingmodel
Complete applications may spantiers, languages
JavaSDOs are smart POJOs withPOJO interfaces
![Page 5: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/5.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 5
• Object/Java API that spans types of data to provide
– Object(value)-based read-modify-write
– Complex data structures (not just rows)
– Disconnected access pattern
– Optimistic concurrency control model
– Tools for data binding
– Industry Support
– Joint specification: BEA, IBM, Oracle, SAP, Sybase and Xcalia
– Open source implementations (Apache, Eclipse)
– Products
Programming Data Services
![Page 6: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/6.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 6
SOA (SCA) is the component model
Components may be wired together
SDO DataObjects are the data flowing on wiresbetween Components
SOA and SDO
MyValueModule
SCA
MyValue
Web
Web
SCA
CustomerInfo
Export
MyValue
Import
StockQuote
Other Apps
Modules
Other Apps
ModulesSDO SDO
SDO
SDO
SDO
![Page 7: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/7.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 7
Heterogeneous Data Access
Data Access
Service
Client
SDO
![Page 8: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/8.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 8
Usage Patterns
Web apps are semi-connected, optimistic-concurrency based apps
Open DB connection
Retrieve data from DB
Close DB connection
Generate HTML; …
Receive response (e.g. HTML form post)
Open DB connection
Perform update to DB
Close DB connection
Standard patterns for optimistic collisiondetection, pagination, sorting, etc.
![Page 9: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/9.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 9
SDO Data Transfer Objects(DTO’s)
Data Access
Service
Client
Change
Summary
Data Graph
DataObject
![Page 10: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/10.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 10
Comparison of Data APIs
AnySDO MetadataAPI, JavaIntrospection
AnyBothDisconnectedSDO
N/AJavaIntrospection
XMLStaticDisconnectedJAX-RPC
N/AJavaIntrospection
XMLStaticDisconnectedJAXB
XPath,XQuery
XML InfoSetXMLDynamicDisconnectedDOM andSAX
UndefinedUndefinedRecord-based
DynamicDisconnectedJCA
JDOQLJavaIntrospection
Relational,Object
StaticConnectedJDO
EJBQLJavaIntrospection
RelationalStaticConnectedEntity EJB
SQLRelationalRelationalDynamicDisconnectedJDBC Cached
Rowset
SQLRelationalRelationalDynamicConnectedJDBCRowset
QueryLanguage
MetaData APIDataSource
APIModel
![Page 11: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/11.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 11
SDO – Summary of Goals
Unified & consistent data access to heterogeneousdata sources
Simplified programming model for the applicationprogrammerEnable tools and frameworks to work consistently acrossheterogeneous data sources
Robust client programming model for several J2EEbest practice application patterns
Disconnected client programming modelCustom data access layers based on common designpatterns
First class support for XML Schema, XML InfoSet,and XML data sources
XML/Java bindingsJAX-RPC objects
![Page 12: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/12.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 12
Agenda
SDO – The Big Picture
SDO – Key Concepts and Core APIs
SDO in Action
Summary
![Page 13: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/13.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 13
SDO Key Features
Generated Data API
Dynamic Data API
Rich Data Objects
XML and XML Schema integration
XPath Navigation through graphs of data
Change Summary
Metadata
Relationship integrity
![Page 14: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/14.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 14
SDO Components
Generated data API: POJO beans
Dynamic data API: DataObject
Change summary API: ChangeSummary
Introspection API: Type and Property
XML-based serialization for transferring datasets on the wire
Can conform to pre-defined XML Schema
Can generate XML Schema
![Page 15: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/15.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 15
DataObject
Composed of properties
Single and many-valued properties
Properties accessed & modified by name,offset, Property, XPath
Can contain other DataObjects as properties
Reverse link to containing DataGraph
Guideline: cleanest possible client code for data access
![Page 16: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/16.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 16
Generated Data API Example
Person p = (Person) dataFactory.create(Person);
p.setName("John");
p.setPostalCode(94133);
System.out.println(p.getName());
public interface Person {
String getName();
void setName(String name);
int getPostalCode();
void setPostalCode(int code);
}
![Page 17: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/17.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 17
Dynamic Data API Example
DataObject o = dataFactory.create(tns, "Person");
o.set("name", "John");
o.set("postalCode", 94133);
System.out.println(o.get("name"));
<complexType name="Person">
<attribute name="name" type="string"/>
<attribute name="postalCode" type="int"/>
</complexType>
![Page 18: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/18.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 18
DataObjectget(Property)set(Property)
Properties by String, int, Property, XPathget("address")get(1)get(address)get("address/zip")
isSet(Property)unset(Property)
create(Property)delete()
Guideline: cleanest possible client code for data access
![Page 19: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/19.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 19
DataObject – Typed Accessors
getXXX(property). XXX is
primitives: int, float, boolean, byte[], …
String
BigDecimal, BigInteger
Date
List for multi-valued properties
converts between primitives and Objects
converts between data types
• getInt("width") of 5.123 returns 5
![Page 20: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/20.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 20
Update SDOs
DataObject customer1 =
customers.getDataObject("customer[1]");
customer1.setString("firstName", "Kevin");
ChangeSummary updated to mark objectchanged with old value of "Adam"
<customers xmlns="http://customers.com">
<customer SN="1" firstName="Kevin" />
<customer SN="2" firstName="Baker" />
</customers>
![Page 21: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/21.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 21
Example 1 –Accessing DataObjects
// Or, use the API to go step by step to find the employee
// Get the list of departments starting from the company
List departments = company.getList("departments");
// Get the department at index 0 on the list
DataObject department = (DataObject) departments.get(0);
// Get the list of employees for the department
List employees = department.getList("employees");
// Get the employee at index 1 on the list
DataObject employeeFromList = (DataObject) employees.get(1);
// Or, an SDO xpath expression can find the employee
// based on positions in lists:
DataObject employee =
company.getDataObject("departments.0/employees.1");
// Get an employee using an SDO xpath expression
// starting from the company
DataObject employee =
company.getDataObject("departments[number=123]/employees[SN=0002]");
![Page 22: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/22.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 22
// create a new employee
DataObject newEmployee = department.createDataObject("employees");
newEmployee.set("name", "Al Smith");
newEmployee.set("SN", "0004");
newEmployee.setBoolean("manager", true);
// Set employeeOfTheMonth to be the new employee
company.set("employeeOfTheMonth", newEmployee);
Example 2 –Updating DataObjects
// Set the company name
company.setString("name", "ACME");
<company name="ACME" employeeOfTheMonth="0004">
<departments name="Advanced Technologies" location="NY" number="123">
<employees name="John Jones" SN="0001"/>
<employees name="Jane Doe" SN="0003"/>
<employees name="Al Smith" SN="0004" manager="true"/>
</departments>
</company>
![Page 23: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/23.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 23
Instance and Model
![Page 24: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/24.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 24
SDO Meta-Model
SDO provides a simple, universal meta-model
Used across JavaBeans, XML, or any data source
Useful for tools and IDE’s (Model in MVC)
Meta-data Classes
“Type”
• Has name, URI, instance class, and properties
“Property”
• Has name, type, default value, index within Type
![Page 25: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/25.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 25
Example – SDO Metadata
DataObject obj = …;
Type type = obj.getType();
Collection c = type.getProperties();
Iterator i = c.iterator();
while (i.hasNext()) {
Property prop = (Property) i.next();
System.out.println(prop.getName());
}
![Page 26: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/26.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 26
<purchaseOrder orderDate="1999-10-20">
<shipTo country="US">
<name>Alice Smith</name>
<street>123 Maple Street</street>
<city>Mill Valley</city>
<state>PA</state>
<zip>90952</zip>
</shipTo>
...
</purchaseOrder>
•country= US
•name= Alice Smith
•street= 123 Maple Street
•city= Mill Valley
•state= PA
•zip= 90952
XML / SDO Mapping
Values
Properties
•orderDate=1999-10-20
shipTo
XML SDOPurchaseOrderType
USAddress Type
SDO: 2 objects
DOM: 14 objects
![Page 27: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/27.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 27
XML/XSD Integration
Direct correspondence between XML andDataObjects
XMLHelper
Load and save DataObjects to XML streams
XSD mapping to and from SDO
XSDHelper
Get XML specific information – isElement, isMixed, localname, appinfo
Define Types and Properties from XSDs
• Annotations or XSLT for mapping control
Generate XSDs from Types and Properties
![Page 28: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/28.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 28
XSD mapping < > SDO
XML Schema
Concept
SDO Concept Java Concept
Schema URI for Types Package
Simple Type Type, dataType=true int, String,
BigDecimal, etc.
Complex Type Type, dataType=false Interface
Attribute Property getX( ), setX( )
Element Property getX( ), setX( )
![Page 29: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/29.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 29
Agenda
SDO – The Big Picture
SDO – Key Concepts and Core APIs
SDO in Action
Summary
![Page 30: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/30.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 30
SDO in Action – Open Source
![Page 31: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/31.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 31
Open Source SDO – Apache Tuscany
Tuscany Project (http://incubator.apache.org/tuscany)
Provides runtime capabilities for applications builtusing a Service Oriented Architecture (SOA)
Implementations of two specifications:1. Service Component Architecture (SCA)
2. Service Data Objects (SDO)
plus
+ Data Access Service (DAS)
In total Tuscany currently includes 5 subprojects:1. SCA Runtime for Java
2. SDO 2.01 Runtime for Java
3. Data Access Service for Java
4. SCA runtime for C++
5. SDO 2.01 Runtime for C++
![Page 32: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/32.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 32
Apache Tuscany Status
Initiated January 2006 and currently in incubation
SDO for Java (sub)project goals:
1. 100% implementation of 2.01 Specification by end of 2006
Currently approximately 60-70% complete
2. Identify issues with SDO spec and provide feedback for futureversions (e.g., 2.1 and 3.0)
3. Provide value add features possibly including:
Static Java code generation
Dynamic java class (bytecode) generation (using ASM)
Import SDO metadata from (annotated) Java interfaces
High performance generated loaders/serializers
Lots of other possibilities
Looking for volunteers to contribute!
• Go to http://incubator.apache.org/tuscany/ for more info onhow to get involved
![Page 33: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/33.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 33
Agenda
SDO – The Big Picture
SDO – Key Concepts and Core APIs
SDO in Action
Summary
![Page 34: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/34.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 34
Summary
SDO Programming ModelOne model for data across the enterprise
• XML, Relational, Object
• Generated and Dynamic
SOA patterns (disconnected clients, data services)
Efficient change communication across services
SDO ComponentsGenerated data API: POJO beans
Dynamic data API: DataObject
Change summary API: ChangeSummary
Introspection API: Type and Property
XML serialization on the wire
![Page 35: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/35.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 35
For More Information
SCA / SDO collaborationhttp://www.ibm.com/developerworks/webservices/library/specification/ws-scasdosumm/
SDO specificationhttp://www.ibm.com/developerworks/library/specification/ws-sdo/
SOA roadmaphttp://www.ibm.com/developerworks/webservices/library/ws-soa-progmodel/index.html
SDO overviewhttp://www.ibm.com/developerworks/webservices/library/ws-soa-progmodel/index.html
Open SourceTuscany Project (http://incubator.apache.org/tuscany)
![Page 36: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/36.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 36
SDO in Action – IBM
®
![Page 37: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/37.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 37
Information as a Service – IBMSOA Foundation
and
more…IBMInformation
Server
DB2IDSIMS
IBM ContentManager
WASProcess Server
WASPortal Server
Heterogeneous Applications & Information
InsightIn-line, Real-timeDashboardsTools & Applications
Information Services - SDO
Data & Content
BusinessContext
InsightfulRelationships
Enterprise
Service Bus
On Demand
Business
![Page 38: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/38.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 38
WebSphere and Rational tools (WID, RAD, …)
WebSphere servers (WAS, WPS, …)
get Approved
Approved/
Denied
IBM Business Objects Are SDOs
If Approved then
Send letter offering gold
If NOT Approved
Send letter offering Credit
counseling service
SDO
![Page 39: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/39.jpg)
Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, IBM Corporation
Stephen A. Brodsky — Service Data Objects Page 39
The following slides were preparedjointly by BEA, IBM, Oracle, SAP andXcalia, for submission to JavaOne 2006.These slides are reproduced here withpermission.
![Page 40: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/40.jpg)
2006 JavaOneSM Conference | Session TS-3676 |
SDO in Action -
BEA
![Page 41: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/41.jpg)
2006 JavaOneSM Conference | Session TS-3676 | 41
Data Services in AquaLogic
DSPService
Clients
Data Services on Logical Model Physical Model
AddressesCustomer
Profile
Pending
Payments
Credited
Payments
Orders
History
Repository
Enterprise Data
Model Driven
Integration
(XQuery)
Customer
Order
Payment
Programming
Model
(SDO)
J2
EE
, W
eb
Serv
ice,
XQ
uery
, JM
S
• Logical models capture data access and integration complexity once
• Same data model, programming model, and API for all enterprise data
JDBC
Web Srvcs
Adapters
Custom
![Page 42: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/42.jpg)
2006 JavaOneSM Conference | Session TS-3676 | 42
AquaLogic DSP Update
AutomationUpdate Framework
• XA and non-XA
sources
• Automated change
decomposition
• Automatic SQL
generation for
RDBMS
• Hooks for business
validations,
replacement logic,
or compensating
transactions
• ADO.NET
interoperability
SDO
SDO
SDO
![Page 43: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/43.jpg)
2006 JavaOneSM Conference | Session TS-3676 |
SDO in Action –
Oracle
![Page 44: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/44.jpg)
2006 JavaOneSM Conference | Session TS-3676 | 44
Oracle Fusion Architecture
Model Driven
Service Oriented
Grid architecture
Information Centric
Standards based
Hot-pluggable
Unified PortalUnified Portal
Business Process OrchestrationBusiness Process Orchestration
Fusion Service BusFusion Service Bus
Grid ComputingGrid Computing
Activity Activity MonitoringMonitoring
Fusion Service RegistryFusion Service Registry
BusinessBusinessIntelligenceIntelligence
OracleOracleAppsApps
CustomCustomAppsApps
ISVISVAppsApps
Lif
ecycle
Man
ag
em
en
tL
ifecycle
Man
ag
em
en
t
Ap
plicati
on
Develo
pm
en
t F
ram
ew
ork
Ap
plicati
on
Develo
pm
en
t F
ram
ew
ork
![Page 45: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/45.jpg)
2006 JavaOneSM Conference | Session TS-3676 | 45
SDO in Fusion Applications
Business ObjectBusiness Object
Business Process OrchestrationBusiness Process Orchestration
Business ServiceBusiness Service
Get()Get() Raise()Raise() Process()Process()
SDOSDO SDOSDO SDOSDO
SDOSDO SDOSDO SDOSDO
Oracle Fusion ApplicationServices support the SDOStandard
Service Data Objects facilitateSeparate Data Objectimplementation from Service
Easy vertical extensions
Standard means for integration(a2a, .net, …)
Oracle Business Objectsare SDOs
![Page 46: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/46.jpg)
2006 JavaOneSM Conference | Session TS-3676 |
SDO in Action -
SAP
![Page 47: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/47.jpg)
2006 JavaOneSM Conference | Session TS-3676 | 47
Legacy/
3rd PartySAPPartner
Business level models
Enterprise services/Business objects
Re ady-to-runbusiness processes
PEOPLEPRODUCTIVITY
EMBEDDEDANALYTICS
APPLICATIONCOMPOSITION
SERVICEENABLEMENT
Platform
Process Components
SAP NetWeaver
Composition PlatformEnterprise
ServicesRepository
SAP NetWeaver
Business Process Platform
Analytics
BUSINESS PROCESSPLATFORM
Composite Applications
SAP’s Business Process Platform
![Page 48: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/48.jpg)
2006 JavaOneSM Conference | Session TS-3676 | 48
Service Data Objects in Netweaver
Service Data Objects provide thelanguage bindings for
data representation,
meta-data access, and
state transfer
of business data in compositeapplications.
SAP considers SDO a keytechnology in the next major
SAP NetWeaver release.
SAP NetWeaver enables loosely coupledand distributed business processes.
Efficient and useful provision ofdistributed data is crucial!
Business Process
Platform
Service Composition
Service Adaptation
Presentation & Service
Components
Data Integration
Business Processes
SD
O
![Page 49: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/49.jpg)
2006 JavaOneSM Conference | Session TS-3676 |
SDO in Action -
Xcalia
![Page 50: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/50.jpg)
2006 JavaOneSM Conference | Session TS-3676 | 50
Service Data Objects and Xcalia
Xcalia is a core contributor and has implemented SDO since 2005
We have several SDO deployments in production to:
Deliver data to rich clients, manifest an extended DTO pattern
Manage dynamic, reflexive data models
The Xcalia Intermediation Platform provides access to both dataand service resources.
We offer a complete solution that implements JDO, EJB 3.0’s JPA and SDO
Our SDO implementation is complemented by our mature data access service
![Page 51: SDO: Service Data Objects - Software Summitusing a Service Oriented Architecture (SOA) Implementations of two specifications: 1. Service Component Architecture (SCA) 2. Service Data](https://reader031.vdocument.in/reader031/viewer/2022011904/5f227a6d5f5bc00ebe4bb63a/html5/thumbnails/51.jpg)
2006 JavaOneSM Conference | Session TS-3676 | 51
Xcalia
Intermediation SDO
SDO and XcaliaAccessType
Model TypeConnected
Disconnected
Data ModelBusiness model
•Xcalia’s SDO implemention
deals with dynamic mapping
of data when no business
logic is required (web
services, simple web
applications, reporting, etc.).
•SDO compliments and does
not replace POJO oriented-
persistence (EJB3, JDO2)!
JDO 2EJB 3