SDOvsEJB 3.0详细比较

开发 后端
本文把SDO和EJB 3.0做了比较,从支持的语言,数据类型和格式等方面。

其实,SDO2和EJB3(也称Java Persistence API - JPA) 规范之间差异还是很大的,与其说它们之间是竞争关系,倒不如说互补更为合适。

SDO野心很大,它妄图为各种SOA架构下的数据类型提供一个统一而灵活的API。EJB3则着眼于基于ORM的新型数据持久化技术,让EJB变得更简单,期间它还得到了来自Hibernate和Oracle ORM工具开发者的支持。

支持的语言

◆EJB 3.0仅用于Java
◆SDO API有着Java和C++两个版本, 但可以用其他语言实现(现在有PHP版本的). SDO定义了一套SDO的数据类型,确保了不同数据源之间和不同语言之间的可移植性。倒目前为止,SDO已有Java, C++, 和 PHP三个版本. 而EJB 3.0 仅面向Java,没有多语言的兼容性。

数据类型和格式

◆EJB 3.0 的数据持久化着眼于数据库中的关系型数据。
◆SDO 面向的是各种类型的数据,关系型数据只是其中的一种。开发人员了解SDO API后,可以访问任何SDO实现所支持的数据类型。除了有统一的数据访问API来从各种数据源读取数据以外,SDO还同时有统一的访问数据源的元数据的 API。其中,DataGraph和DataObject接口是SDO提供用来访问数据的,Type和Property接口则提供了访问元数据的API。

EJB 3.0 基于ORM, SDO关注数据

◆EJB 3.0 非常依赖ORM技术,而ORM技术在设计是为了将java对象持久化到关系型数据库(也称作‘逻辑优先’方式)或者是在Java对象和已有数据库间做映射(也称作‘意大利面条’方式).
◆SDO 采用 \'数据优先\' 的方式, 它假定数据库可以被优化(和范式化),并且比上层业务层有更长的生命周期。基于数据库是数据焦点的假定,FireStorm/SDO 将数据库结构反向工程以生成持久化代码。

SDO 是面向SOA架构的


◆EJB 3.0 是用于传统的单个Java应用,通常是C-S架构(译者按:这点牵强,不是很赞同)
◆SDO 支持脱机应用模型的概念,这非常适合SOA的架构。脱机状态的DataGraph意味着可以不锁数据库表,因为所有修改都是离线修改。

SCA 和 J2EE 规范


◆EJB 3.0 是JEE (J2EE的新叫法)的一部分, JEE是过去几年主要的应用部署平台
◆***版本的SDO规范同SCA规范一同发布了。SCA实现了分布式SOA架构下服务之间的点到点互动。SCA是业界对微软的 Indigo/WCF 战略的强有力的回应,也许是这两年 SOA/Web Services 上最重要的发展。

紧耦合和松耦合

◆EJB 3.0 是嵌入式,和应用耦合紧密。
◆SDO 的实现可以设计成适用于轻量级以及分布式的架构。SDO规范同时允许静态(强类型)调用和动态(弱类型)调用。

所以,由于目标和特性上的这些差异,不能说EJB3或SDO2哪个是更好的持久化规范,不过,我们可以从中得到一些思路:
◆如果你开发的是一个传统(非SOA)应用,用的是关系型数据库且全部用Java,那么EJB3是个不错的选择。
◆如果你使用SOA架构进行开发,或者需要访问不同类型的数据,那么SDO是个不错的选择。

【编辑推荐】

  1. Spring支持EJB的实现
  2. EJB和Spring全面比较
  3. Weblogic开发和EJB基础应用
  4. JDO、EJB CMP、Hibernate和Amber比较
  5. 采用EJB开发的三个优势
责任编辑:佚名 来源: IT专家网
相关推荐

2009-09-14 14:20:36

LINQ ORM

2014-03-10 10:06:40

WebSocket.Net

2009-12-08 10:00:36

PHP比较运算符

2024-04-12 15:52:42

蓝牙

2022-05-10 09:47:10

Bash字符串Linux

2010-01-06 16:25:58

.Net Framew

2009-09-07 15:04:07

2024-02-19 18:06:04

PythonJuliaRust

2021-11-15 13:24:02

云计算云计算环境云应用

2021-06-15 09:00:00

Web技术开发

2023-10-31 18:03:42

GitHub人工智能开发

2011-11-25 10:58:51

2011-06-27 10:17:15

EXT4 Btrfs

2020-10-15 07:48:35

微信PC版3.0正式版

2009-11-30 18:30:11

EVDO路由器

2014-11-04 09:44:37

WebjQuery

2009-04-10 14:34:18

LinuxGNOME 3.0

2012-04-24 13:39:28

多方通信

2012-08-13 17:01:16

Web 3.0移动互联

2009-12-29 16:21:46

silverlight
点赞
收藏

51CTO技术栈公众号