Relationship of SCA and JBI
Added by Mike Edwards (IBM), last edited by Mike Edwards (IBM) on Mar 19, 2007 (view change)
原文选自OSOA.ORG
中英文名词对照
Service metadata---服务元数据
Composition--------组合
译文
SCA和JBI的关系
本文阐述SCA规范和JBI规范的联系和区别。概括如下:
1. SCA的支持者可以把JBI视为一个有助于在JAVA平台上实现SCA的实现标准。
2. JBI的支持者可以认为SCA额外提供了服务的元数据描述,以一套标准的语法来定义在JAVA平台内或者JAVA平台和其他平台之间服务的组合。
SCA和JBI都是为服务的构建和组合而定义的规范,很容易误以为它们是同一内容的竞争者。然而事实不是这样,这两个规范可以独立应用,也可以有效的合作因为它们着重的是服务组合这个命题的不同方面。
SCA和JBI的目标人群是不一样的。SCA是为服务应用系统开发者定义的,它描述了如何开发,装配和部署由服务集合构成的应用系统,它的目标人群是服务的开发者,装配者和部署者。
SCA允许多种技术来实现服务(JAVA, BPEL,C++),多种服务间通信的方式(Web Service, JMS)。但是SCA没定义在运行时环境里如何提供一种新的服务实现方式,提供一种新的服务通信方式。这正是JBI的职责所在。
JBI是JAVA平台的集成规范,为JAVA环境下的服务组合平台工具定义了开放的架构。它为中间件提供商定义了一套服务提供方接口,来实现一个新的服务引擎(对应SCA中的服务实现方式),一个新的绑定组件(对应SCA中的绑定方式),这些构成支持JBI规范的服务运行时平台。
SCA和JBI如何合作
SCA中声明它的服务组件元数据是平台无关的,所以它可以用于JAVA平台下的任何服务实现。
JBI旨在提供可扩展的JAVA平台服务端实现技术,可以方便地在JAVA服务端环境下使用多种技术如Servlets, EJBs,JavaScript,BPEL,业务规则,数据转换等。使得JAVA服务端应用可以灵活地选择适用的技术来实现功能逻辑。
JBI提供一组SPI来实现一个JAVA服务端平台,这些技术实现不直接暴露给服务的开发者。
结论是JBI是一个JAVA 运行时服务端平台的架构,和其他平台一样,可以支持SCA服务组合的描述方式。JBI的运行时架构和SCA没有任何冲突。
深入了解JBI的人会知道JBI定义了服务打包的元数据模型。这些元数据用来描述需要在JBI运行时平台上运行的应用。这是一个最基本的定义,在JBI规范里只占了很少的几页,对JBI应用部署做了最小的限制规范。在很少见的场景下,如果SCA和JBI在服务打包元数据上有重叠,常见的处理方式是JBI将SCA的元数据描述看作这部分内容的附加。
JBI有助于中间件提供商使用JAVA来实现SCA。 JBI和SCA没有任何竞争和冲突。
JBI和SCA,我都需要吗?
SCA的运行时实现可以不遵循JBI规范,同样JBI实现也可以不支持SCA。 然而不管对应用开发者和平台提供商而言,在一起使用这两个规范也是种很不错的选择。
SCA支持非JAVA技术的服务实现方式,C++就是一个例子。服务可以运行在C++和C实现的运行时环境里。JBI只针对JAVA虚拟机下的服务平台实现。对于SCA,可以支持没有JAVA虚拟机的系统,全部的服务也都可以使用C++来实现。
译者注释:
SCA可以称之为规范,定义了服务的元数据描述语法,包括服务接口(Interface),服务实现方式(Implementation),服务访问策略(Policy),服务通信方式和通信协议(Binding),服务之间的调用和被调用关系(Service and Reference)等。而JBI准确而言更象个JAVA服务运行时平台的设计方案。呵呵,JBI规范的制定者能者多劳,把服务平台提供商的软件设计师的工作抢了。:)