SCA关注服务的组合,在服务整合里,

数据的整合是关键,这正是SDO所关注的

 

1.SDO的概述

1.1 SDO是什么?

SDO是服务数据对象(Service Data Objects)

SDO通常用于将数据从一个应用程序传输到另一个应用程序,

可以方便地集成在Web服务环境中

 

SDO是作为简化JAVA EE数据编程模型的方法出现的,

它能够让JAVA EE开发人员把更多的时间用于应用程序的业务逻辑

 

1.2 SDO的数据模型

可以将SCA组件组合在一起,

并且通过传递SDO来以一种中立的方式交换数据

 

1.数据对象(Data Object)

它是用于存放基本元素类型的数据

2.数据图(Data Graph)

它是封装一组数据对象的结构,也是组件间传递的基本单元

3.数据访问服务(Data Access Services,DAS)

DAS用于从一个数据存储器中加载一个Data Graph

或将一个Data Graph保存到一个数据存储器中

 

1.3SDO的特性

1. SDO统一访问异构的数据源

这些异构数据源对伊应用开发来说,需要学习的编程模式非常多,

SDO可以忽略,为开发者提供一个简单,统一的编程模式

2.SDO统一支持静态和动态数据的API

3.SDO支持离线编程模式

4.SDO支持基于常见设计模式的客户数据访问层

5.SDO降低了应用代码和数据访问代码之间的耦合度

 

2.SDO与其他数据模型对比

2.1 SDO和DAO的对比

DAO对于客户端代码从各种类似JDBC,JPA和Hibernate等持久化技术中抽象出来的一种不错的选择

而面对用于面向服务框架下的应用,SDO应用十个不错的选择

 

2.2SDO和JDO的对比

JDO:JAVA DATA OBJECT

JDO关注持久层,SDO关注业务层和表示层

JDO作为数据源,SDO来访问它,

结合在一起,就是DATA TRANSFER OBJECT(数据传输对象,DTO)设计模式的运用

 

2.3SDO和JAXB的对比

JAXB:JAVA API FOR XML DATA BINDING(XML数据绑定JAVA API)

JAXB仅关注JAVA 到 XML的绑定,

SDO提供了不通类型的统一访问

 

2.4SDO与ADO.NET的对比

ADO:ActiveX Data Objects(ActiveX数据对象)

ADO关注的Microsoft.NET平台

SDO关注javaEE平台

 

3.SDO的核心类简介

 3.1 SDO数据对象DataObject

SDO是基于数据对象的,数据对象是包含某一个数据的一个对象实例。

 1 public  class User{
 2     
 3      private String userId;
 4      private String userName;
 5     public String getUserId() {
 6         return userId;
 7     }
 8     public void setUserId(String userId) {
 9         this.userId = userId;
10     }
11     public String getUserName() {
12         return userName;
13     }
14     public void setUserName(String userName) {
15         this.userName = userName;
16     }
17      
18      
19 }

以上是静态API,可以确认数据类型

以下是动态API,当不确定数据类型使用SDO动态API

  1 DataObject user = new DataObjectImpl(); 2 user.set("userid","1"); 3 user.set("username","zhangsan"); 

3.2 SDO数据图DataGraph

1 public interface DataGraph extends Serializable{
2     DataObject getRootObject();
3     DataObject createRootObject(String namespaceURL,String typeName);
4     DataObject createRootObject(Type type);
5     ChangeSummary getChangeSummary();
6     Type getType(String uri,String typeName);
7 }

3.3 SDO数据类型TYPE

类型接口代表了一个数据对象模型或一个数据类型的通用视图

3.4 SDO的帮助类

 

posted on 2016-03-10 22:59  Sharpest  阅读(853)  评论(0)    收藏  举报