(最近一直在接触SDO,转载一些文章,共同学习)
数据对象是SDO框架的核心。数据对象是一个业务对象的一般表达,并且没有和特殊的持久化存储机制绑定。
数据图是一个相关数据对象的集合。在SDO1.0里,一个数据图总是被一个DataGraph信封对象所包装,而在SDO2.0里,数据对象图可以存在于DataGraph之外。(数据图)Data graph作为两个单词分开使用时,指任何一个数据对象集合;(数据图)DataGraph作为一个单一单词使用时,特指一个DataGraph信封对象。
所有数据图都有一个单一的根数据对象,它直接或间接的包含图里的所有其它数据对象。当的数据图里的所有数据对象仅仅引用自身的数据对象时,我们称该数据图是封闭的。封闭是一个数据图的标准状态。
一个数据图由以下组成:
一个封闭的数据图形成了一个数据对象的树形结构。数据图能够记录跟踪描述数据对象的模式。数据图同样也可以维护一个更改概要(ChangeSummary),ChangeSummary表达了施加于该图数据对象之上的更改。
对于终端用户而言,访问数据图的标准方式是通过数据访问服务(DAS)。DAS提供了从库中加载数据图和将数据图保存回库中的方法。例如,一个XML文件DAS将加载和保存一个数据图为XML文件,一个JDBC DAS将使用一个关系数据库加载和保存一个数据图。针对其它特殊的DAS的规范超出了本规范的范围。
经典的DAS使用了一个非连接的数据架构,客户端除了在读写数据图时,均和DAS保持一个非连接的状态。因而,一个使用数据图的典型场景涉及以下步骤:
注意有两个特别的角色能够能够用来区分数据对象用户:客户和DAS writer。
客户需要能够纵览整个数据图去访问每一个数据对象并且能够获取和设置每一个数据对象域的能力。客户也需要序列化和反序列化一个数据图。如使用XML DAS时,数据图能够被序列化一个XML。
DAS writer必须能够为数据图定义一个模型,创建一个新的数据图,产生更改历史信息,并且能够访问更改历史信息。
一个数据图包含一个(更改概要)ChangeSummary,通过ChangeSummary,能够访问数据图中任何一个数据对象的更改历史。当DAS返回一个数据图时,ChangeSummary应该是空的。如果DAS的客户修改了数据对象的状态,例如创建或者删除,这些更改的概要将被记录在ChangeSummary中。
如果一个客户端将一个修改后的数据图发送给DAS,DAS将会进行数据图的错误性检查,这些错误主要包括数据图是否缺少封闭,属性值是否越界,由树形子图生成的属性或数据对象的选择,不同的约束或者任何针对DAS的特殊限制(如XML模式的特殊校验)。这里,封闭(Closure)指任何一个该数据图的数据对象的引用均指向自身内部的一个对象。通常,DAS使用异常报告更新的问题。
一个数据图可能没有封闭,此时,终端用户可以临时通过数据对象接口修改该数据图所包含的数据对象。然而在所有的用户操作完成后,数据图将重建一个封闭。DAS只能操作带有封闭的数据图。
分享到:
相关推荐
书中探讨了SOA的关键技术和协议,如SOAP、WSDL、UDDI,以及相关的开发技术,如JAX-WS、Axis,还有SOA架构技术如JBI、SCA/SDO、OSGi等。 #### 面向资源架构ROA——REST的实践 ROA(Resource-Oriented Architecture...
Tuscany的基本架构围绕SCA的关键概念——Implementation、Binding、Data Binding和Interface展开,为整合不同平台的服务提供了强大的支撑。 - **Implementation**:指SCA组件的实现方式,可以采用包括POJO、EJB、...
CXF 提供了实现服务导向架构(SOA)所需的核心功能,如服务创建、服务路由以及一系列的企业级服务质量(QoS)特性。Apache CXF 设计的主要目标包括: 1. **高性能**:优化性能,以处理大量并发请求。 2. **可扩展性...
在《下一代数据编程:服务数据编程》这本书中,作者们深入探讨了一个创新的概念——服务数据对象(Service Data Objects,简称SDO),这是一种旨在统一不同数据源类型数据编程的编程模型规范。此书由BEA系统有限公司...
本文作为SCA的学习笔记,旨在深入探讨SCA的核心概念、特点以及实际应用,并特别关注Tuscany——一个广受欢迎的Apache开源SCA框架及其在Web 2.0时代的应用扩展。 首先,SCA的核心概念源于对SOA模型的进一步抽象和...