最近我在做有关ESB的开发工作,发现我们的产品(开源的Celtix
http://celtix.objectweb.org
) 要支持JBI和SCA两个标准。这让我困惑了好久,JBI和SCA有什么区别呢?
前几天好好在网上收罗了一番,现在把收获到的东西和大家分享一下:
JBI definition
http://www.theserverside.com/news/thread.tss?thread_id=35053
SCA 与JBI的区别
http://azur.typepad.com/bpel/2005/12/sca_jbi_and_mor.html
上面的链接有详细的讨论,我简单整理了一下。
JBI 的由来
Java One 2005 had a very heavy emphasis on JSR-208, Java Business
Integration. However, he says, "there seemed to be some folks with
confused looks on their faces in some JBI talks." As a response, he's
written a blog entry on what JBI actually is
<
http://radio.weblogs.com/0112098/2005/07/07.html#a530
>.
JBI是提供了一些简单的API定义, 这些定义包括 Normalized
Message Service , 在一个Router组件,以及一个管理模型用来管理服务
的部署集成,例如 routing engines, BPEL engines, rule systems, transformation engines
JBI提供了一个逻辑的XML消息网络, 这一网络能够很容易的映射到
HTTP, email 和 JMS/MOM ,并很方便地适应遗留系统,二进制地传输,
和RPC系统(EJB和CORBA)。 JBI可以看做是对JMS的更高层次的逻辑
抽象,并提供了不同的消息交换方式( 单步, 请求应答等)
什么是SCA ,它试图解决什么样的问题?
WSDL 在增强应用之间的可连接性以及互操作性方面迈出了一大步。
然而,WSDL只关注了服务接口,它并不提供描述一个服务所依赖的其它服务,
以及这个服务所需要使用的配置策略和服务之间的依赖关系。
单独通过WSDL 很难实现服务之间的组合调用。
SCA比WSDL走的更远的方面是定义了一个服务组件模型以及一个服务组装模型。服务模型提供了比WSDL更多的功能,它允许服务开发者不单定义服务的接
口而且还可以定义 这个服务和其他服务的依赖关系,以及这些交互(事务,安全,以及可靠 传输)之间的策略 还有服务所可能提供的配置功能。
一个SCA模型对等于一个SOA项目,模型允许开发者组装一组服务组件,解决引用依赖和使用策略。这是一个很大的进步,因为当前的SOA平台需要开发者自己获取那些私有的服务部署引用,甚至有时要在他们的服务实现中写hard code.
SCA与JBI的区别
SCA的美丽之处在用它关注的重点只是SOA开发这 所看到和接触到的。 SCA并没有关注用来执行SCA模块的runtime是如何构架的。
这个runtime可以实现为一个将所有的SCA服务组件编译成为Java
classes的丑陋的单一服务,或者是一组模块化的引擎(每个组件一个的那种),这些引擎可以通过 一个企业服务总线来进行通讯。
JBI从另一个方面来说就是一组关注创建一个开发的,可扩这的以及标准组件的企业服务总线。 这样它的内核是和SCA有一些重合的地方。同时两者之间也存在互补的机制。
说它们互补,为什么不把他们绑定在一起呢。 这里有两方面的原因。
第一个原因 是JBI关注的是如果将一组引擎组装并运行 于一个JVM中。 相反SCA在另一方面并不将一个模块约束单个JVM中。 一个SCA模块可以执行在一个JVM中,同时它也可以很方便的将这些引擎部署在不同的进程甚至是不同的节点上。
第二个原因 是 SCA不但支持Java而且还支持C,在今后也许还会支持C#,php。 而JBI只是SCA的一个实现方式,而不是唯一的选择。
分享到:
相关推荐
OSGi的未来发展方向在于如何更好地融入企业环境,如与Spring、SCA、JEE、JBI、Web Service等现有技术的融合,优化JEE组件映射机制,增强Web应用支持,提高集成性和性能,以及确保在同一JVM中运行的用户代码和厂商...
SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEA和IBM的承认),另外一个是:IBM和BEA等公司推出的SCA和SDO标准。JBI之关注Java组件只处理Java组件的集成。SCA实现了业务组件和传输协议的分离,可以处理...
【SOA思想及其应用技术】 SOA,即Service-Oriented Architecture,是一种软件架构模式,它的核心理念是将复杂的业务逻辑...JBI和SCA等技术则是SOA理念的具体实施工具,为企业构建更高效、更具弹性的IT架构提供了基础。
SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEA和IBM的承认),另外一个是:IBM和BEA等公司推出的SCA和SDO标准。JBI之关注Java组件只处理Java组件的集成。SCA实现了业务组件和传输协议的分离,可以处理...
Apache Camel 采用URI来描述各种组件,这样你可以很方便地与各种传输或者消息模块进行交互,其中包含的模块有 HTTP, ActiveMQ, JMS, JBI, SCA, MINA or CXF Bus API。 这些模块是采用可插拔的方式进行工作的。Apache...
- 该平台实现了SCA和JBI规范,并允许用户进行扩展。 - 支持策略管理、服务部署和服务管理等功能。 4. **Rogue Wave Hydra SCA** - Rogue Wave Hydra SCA提供了一个高性能的SOA应用基础设施,它基于SCA标准,并...
Apache Camel uses URIs to work directly with any kind of Transport or messaging model such as HTTP, ActiveMQ, JMS, JBI, SCA, MINA or CXF, as well as pluggable Components and Data Format options....
此外,它还具有高度的灵活性,可以部署在Spring基础的容器、JBI、SCA、Servlet和J2EE容器中。 在开始使用CXF开发Web服务之前,需要确保安装和配置好相应的库文件。对于本文档中提到的2.6.1版本,你需要从Apache CXF...
面对这些竞争阵营,周博士建议国内厂商采取"中庸之道",像同方ezONE平台那样,重点支持XML、ESB(Enterprise Service Bus,企业服务总线)和SOAP,同时兼容JBI,部分采用SCA/SDO和JBI的理念,并结合Java EE和Web ...
但是SOA的整体构架必须依赖于三方面技术的支撑:解决互通互联的技术与标准,比如我们所熟知的消息总线技术、JBI、SCA等等;解决流程管理的技术与标准,比如BPM,Workflow等;以及解决业务模型构建的技术与标准,正如...
Apache Camel通过URI使用,使其能够轻松地直接与各种传输层或消息模型(如HTTP、ActiveMQ、JMS、JBI、SCA、MINA或CXF Bus API)协同工作,并且支持可插拔的数据格式选项。这一特性使得Apache Camel成为一个小型库,...
Apache Camel使用URI,以便可以轻松地直接与任何类型的传输或消息传递模型一起使用,例如HTTP,ActiveMQ,JMS,JBI,SCA,MINA或CXF,以及可插拔数据格式选项。 Apache Camel是一个小型库,具有最小的依赖关系,可...
Camel使用URI来简化与所有传输或消息传递模型(包括HTTP,ActiveMQ,JMS,JBI,SCA,MINA或CXF)的集成,并使用可插拔数据格式选项。 Apache Camel是一个小型库,具有最小的依赖关系,可轻松嵌入任何Java应用程序中...
Apache Camel使用URI直接与任何类型的传输或消息模型(如HTTP、ActiveMQ、JMS、JBI、SCA、MINA或CXF)进行交互,并且支持可插拔的组件和数据格式选项。Apache Camel是一个小型库,具有最小的依赖关系,便于嵌入任何...
Apache Camel 使用 URI(统一资源标识符)来方便地直接与各种类型的传输或消息模型进行交互,如 HTTP、ActiveMQ、JMS、JBI、SCA、MINA 或 CXF Bus API,同时支持可插拔的数据格式选项。这一特性使得 Camel 能够作为...
此外,Camel 支持URI(Uniform Resource Identifier)来描述各种组件,如HTTP、ActiveMQ、JMS、JBI、SCA、MINA和CXF Bus API,这些组件以插件形式工作,增强了框架的灵活性和可扩展性。 Apache Camel 可以轻松集成...