本文阐述了服务数据对象 (SDO) 体系结构的关键概念,以及它所提供的强大功能和灵活性。SDO 体系结构在 Java(TM) 2 Platform Enterprise Edition (J2EE) 社区正获得越来越广泛的普及,它也用于构建面向服务的体系结构 (SOA) 的环境。在 IT 解决方案日趋复杂和越来越多地采用分布式体系结构的今天,它可以满足异构数据集成的需要。
引言
服务数据对象 (SDO) 通过 Java Specification Request (JSR) 235得到了 Java™ 社区的认可,它也是 CommonJ的一部分,CommonJ 是 IBM 和 BEA 共同制定的规范。如何访问不同数据源类型的数据在 IT 业界变得越来越重要,SDO 是一种应用程序编程接口 (API),可以简化和统一对异构数据的访问。目前单一数据类型的应用程序已经不再常见,信息通常都存储在不同类型的数据源中(比如数据库、Web 服务、轻量级目录访问协议 (LDAP)、遗留应用程序等等)。这种复杂性要求开发人员熟悉许多 API(比如 Java 数据库连接 (JDBC)、基于 XML 的远程过程调用的 JAVA API (JAX-RPC)、或者 J2EE 连接器体系结构 (JCA) 等等)。SDO 简化和补充了 Java 2 Platform Enterprise Edition (J2EE) 的开发模式,提供了一种独特的访问异构数据源的 API,同时也可用于数据处理的其他方面,本文将对此进行详细说明。
SDO 的目标
SDO 的目标有很多,从某种程度上讲 SDO 看起来好像是 J2EE 的一把多功能“瑞士军刀”,因为它包含的特性可实现多种不同种类的功能,基本来讲,SDO 及其相关的技术设计有以下五大主要专题:
简化数据访问:第一个目标是提供对多种企业信息系统 (EIS) 的统一的数据访问,包括数据库、遗留应用程序(使用 JCA)、XML 或者是 Web 服务数据源。通过使用 SDO 的一种独特而简单的模型,应用程序摆脱了使用多种 API 和框架进行数据访问的复杂工作。
数据提取:使用 SDO 后,数据的表示是独立于其数据源的,它采用了一种叫做 Domain Store 的 J2EE 模式,这种级别的数据提取有很多优点,例如使数据操作变得更容易,实现了不同层之间的松耦合。
数据操作:一旦检索到信息后,SDO 会提供一种统一的编程语言进行数据操作,简单的说,就是通过使用 API 及其接口,SDO 客户机可以读取数据和修改数据。SDO 为此提供了连接和断开连接的两种模型,下文中将对此做详尽的介绍。
数据传输:SDO 有一部分概念是关于传输对象 (Transfer Object) 和传输对象组装程序 (Transfer Object Assembler) 模式的。数据封装到 SDO 对象中后,它就可以在 J2EE 层间高效地传输。
设计模式的采用:SDO 的一个关键目标是鼓励大家采用公用的 J2EE 模式,这也是 SDO 体系结构以一些广为人知的模式为基础的原因,例如传输对象 (Transfer Object)、数据访问对象 (Data Access Object)、传输对象组装程序和 Domain Store等。如果使用了 SDO,应用程序就可以从这些经过了验证的设计策略中受益,从而可以推动分层技术和松耦合的发展。
图 1 显示了 SDO 在一个 J2EE 分层体系结构中所处的位置:
图 1. J2EE 分层体系结构中的 SDO
SDO 体系结构:概览
SDO 体系结构提供了一组核心组件,这些组件可以由支持 SDO 的实现和框架进行扩充。
SDO 规范定义了数据持有者(数据对象 (Data Object) 和数据图 (Data Graph)),还引用了一种叫做数据中介服务(Data Mediator Service,DMS)的组件。DMS 负责访问数据源和处理数据图,如图 2 所示:
图 2. DMS 的角色
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。