cuiyi's blog(崔毅 crazycy)

记录点滴 鉴往事之得失 以资于发展
数据加载中……

我对SDO(Service Data Object)的学习

BEA的"SDO简介"中讨论了SDO设计的动机并从动态数据API、数据类型自检API、数据跟踪变化API三个角度展开。

动态数据API主要是因为Java是静态(强类型)语言,不能在运行时将额外的字段或者方法添加到对象的实例中。
==============
针对这个问题其提出DataObject概念 DataObject do = new DataObjectImp(); do.set("name","tester"); do.get("name"); 这个实际上可以对应成Map的功能;

Java的动态数据API包括ResultSet、DOM等API,其对取的值应该具备类型自检的功能
==============
这个功能在JDK5.0中已经具备,自动解箱功能(待确定),而且Spring中已运用的得心应手,因为Java本身提供了java.beans包。

数据跟踪变化
==============
这点在Hibernate模型中已经有实现,通过新对象和原有的快照的对比

怀着这些疑问,继续查阅了相关资料和规范,其中在DeveloperWorks的“服务数据对象简介”给出了解释,虽然文章属早期系列


为什么要使用 SDO?

对 于服务数据对象(SDO),大多数开发人员要问的第一个问题就是为什么要使用 SDO。难道 J2EE 本身还不够庞大、不够复杂(而且难以掌握)吗?Java 环境中不是已经有其他支持 XML 的框架了吗?所幸的是,该问题的答案能够让我们多数人感到满意:SDO 是作为简化 J2EE 数据编程模型的方法出现的,它能够让 J2EE 开发人员把更多的时间用于应用程序的业务逻辑。

服务数据对象框架为数据应用程序开发提供了统一的框架。通过 SDO,您不需要熟悉特定于技术的 API,就能访问和利用数据。您只需要知道一种 API,即 SDO API,它允许您处理来自多种数据源的数据,其中包括关系数据库、实体 EJB 组件、XML 页面、Web 服务、Java Connector Architecture、JavaServer Pages 页面等。

并展开了各种技术在"拨开SDO(Service Data Object)唬人的光环"中各种技术的对照.这个文章可谓是非常及时和有力的.

其中提到的DMS(数据中介服务)、Data Graph(数据图)、DataObject(数据对象)等概念对于前边提到的Hibernate也有很大的规范指导作用。DMS从DataSource(数据源)获得到数据,将数据以Data Graph(数据图)的形式存在,即是数据对象树,SDO客户端遍历Data Graph获得Data Object使用.DMS直接屏蔽了数据来源,所以SDO客户端看到的数据可能来自多个数据源(这点从语义上和Hibernate对应部分好像没有什么大的区别)。SDO客户端从DMS取数据,也可以把修改体现在DMS中,并通过DMS进行保存,具体保存的形式也被DMS屏蔽,也就是数据源的形式,可以是DBMS、XML等。







posted on 2006-06-01 11:34 crazycy 阅读(1517) 评论(0)  编辑  收藏 所属分类: SOA、WebService、BPEL


只有注册用户登录后才能发表评论。


网站导航: