三十乱弹

晏斐的Blog (关于Eclipse,OSGI,SOA,Framework)
构客网首页  博客  论坛

 
  本文的标签
SCA (收录6197篇)OSGI (收录141篇)SOA博客大赢家 (收录528篇)SOA技术实践与案例 (收录335篇)
  用户信息
 
帐号:  新手必读
密码: 保存密码
 
  分类列表
全部类别(42 篇)
乱弹(42 篇)
  按月归档
2006年-09月(24 篇)
2007年-03月(12 篇)
2007年-11月(5 篇)
2008年-11月(1 篇)
  SOA2007 - SOA实践
我们何时迈向SOA
——SOA在中国的整体发展现状究竟如何?
我们如何迈向SOA
——中国企业如何迈出实施SOA的第一步?
我们应采用何种技术
——SOA国际标准SCA/SDO的具体内涵?
我们还需要何种技能
——SOA将如何改变系统架构设计以及项目管理过程?

SCA同OSGI的比较

发布时间:2007年09月28日 作者:yanfei

阅读次数:4048次 类别:乱弹 永久链接 Trackback 8条评论
参加SOA我有话说

最近一段时间先后看了SCA规范和OSGI的规范。看完之后再对二者作一个全面的比较。

首先,两个规范制定的出发点和初衷是不一样的。SCA规范是为了企业应用集成而制定,OSGI规范的初衷则是为移动设备计算而制定的。由于二者的出发点不一样,导致了两个规范的侧重点不一样。SCA规范现在的版本是0.95,相对OSGI规范的4.0版本还显得多少有些稚嫩。

SCA规范中着重解决了现有企业应用之间的相互调用和企业应用如何以面向服务的思想来建立和部署。但是对于构件容器的实现方面的规定则有些不足,仅仅是站在使用者的角度描述了客户端API的规格。

OSGI规范因为最初的出发点是为了移动设备的计算环境,因此更多的考虑了运行时框架和服务在运行时刻的动态匹配等问题。此外,提供了运行时刻应用程序的热部署、解析、运行、卸载等能力。应该说,OSGI规范发展到4.0已经是一个比较完善的规范了。

SCA规范中目前对SCA容器的实现尚没有一个指导性的意见,但是OSGI规范在这方面已经做的很完善了。OSGI规范中定义了FrameworkStart LevelPackage AdminSecurity,详细描述了不同组件之间的依赖规则(静态依赖,动态导入),不同组件之间使用独立的类名称空间。

由于SCA规范面向企业应用集成,因此SCA构件的实现可以是JavaBPELEJBWebService。而OSGI的实现只面向Java语言。这也是由于二者的出发点不同导致的。

对于SCAOSGI的装配模型,二者是大同小异。二者都可以对外提供服务(Service),但SCA更偏重设计时刻的构件组装,而且定义了灵活的构件装配模型,可以由最小的原子构件组装成一个大系统。

从现有的已经实现的产品来看,OSGI更多的被用来作为单一产品的整体架构,SCA规范更多的是被用在面向业务的构件的组装规范,至于SCA产品的架构如何则不是SCA规范所关心的。

从上边的比较可以显而易见的看出二者分别的缺点,SCA规范过于强调集成,但是对SCA构件的运行时刻行为描述太弱,所有的构件实现都是在设计时刻绑定的。也许在SCA产品中可以实现运行时刻的动态绑定,但是作为一个规范,这是它所欠缺的。OSGI规范对组件的运行时刻描述很完备,但是所有的组件必须运行在同一个虚拟机中,不同虚拟机中的组件服务互操作则稍显不足。

以上完全是个人的看法,欢迎大家讨论。


本文章参加了《SOA中国路线图》博客大赢家活动!

 评论 查看全部评论
 
lithor 于 2008-03-02
二者应用领域不同,但是装配模型类似。
 
sduboy 于 2007-12-25
两种规范的出发点和所面向的应用不相同,比较起来难免会有差异。
 
iceice 于 2007-12-16
正如你之前的文章所提到的,两者关注点不同,一个是关注于语言无关的企业应用集成,一个更关注于运行环境中组件和服务的动态更新特性。但是我在之后的文字里没有看出两者有何可以比较的理由。Sorry了,对SCA不了解。
 
sduboy 于 2007-12-10
SCA规范和OSGI的规范各自有其优缺点,还都需要进一步的完善。
 
yanfei 于 2007-11-29
谢谢Lafay
 
Lafay 于 2007-11-21
我在论坛问了yanfei兄这个问题了,原帖地址:http://gocom.primeton.com/modules/newbb/viewtopic.php?topic_id=9398 “从最根本上来说,二者都提供了组件模型,这也是我将二者比较的动机。 同时,OSGI的DS也提供了类似于SCA Composite的装配模型,并提供在运行时注入的特性。 请看developworks上对DS的一篇介绍:http://www.ibm.com/developerworks/cn/opensource/os-ecl-osgids/index.html”
 
Lafay 于 2007-11-21
再给你投了一票,呵呵,光我个人都投了好几票给你了哈
查看更多 共 8 评论