JBI、SCA 简述及对比

    SOA在Java领域有两套标准:一个是SUN推出的JBI,另一个是:IBM和BEA等公司推出的SCA和SDO标准。

    JBI之关注Java组件只处理Java组件的集成。

    SCA实现了业务组件和传输协议的分离,可以处理各种平台组件的集成。

    SDO可以的自由读取各种不同数据源的数据。

 

一、JBI编程模型

    JBI是由容器和插件(Plug-in)组成的可插入式架构。这个容器托管使用消息路由进行通信的插件组件。架构上,组件通过一个抽象的服务模型(一个消息传递模型,位于任何特殊协议或消息编码之上的抽象层中)进行交互。

    在基于JBI的实现中,服务之间并不直接交互。取而代之的是,采用类似EAI实现中广泛应用的消息代理架构,JBI容器扮演在服务之间路由消息的通用中介,(见图1)。

图1 通过JBI协调消息交换

 

    分离交换的参与者(JBI架构的基础9)在服务提供者和消费者之间提供了解耦,以及一个用于协调(mediating)服务通信量(或插入所有额外需要的功能)的明确位置。

    此时,协调器(Mediation)可以支持广泛的功能,从消息传送和安全加强,到基于内容的路由和服务标本标定。

JBI容器托管了2类不同的插件组件:

  1. 服务引擎(Service Engine,SE)。SE本质上是用来托管JBI环境内部服务提供者和消费者的标准容器f。例如,在JBI环境中经常出现的SE包括数据转换器、业务规则容器和BPEL引擎。
  2. 绑定组件(Binding Component,BC)。BC为JBI环境外部的服务消费者和提供者提供互联性。BC允许集成不提供Java API的组件/应用程序,并使用远程存取技术访问它们。


    组件间的交互利用了基于WSDL 2.0的标准化服务定义。WSDL 2.0定义在服务消费者和提供者之间提供了共享的协议,并作为JBI实现互操作能力的基础。

    除了标准化的服务定义,JBI使用“通用化(normalized)”消息的概念支持全局组件互操作能力。消息通用化将协议与业务特定的上下文映射成一个通用的、可传输风格,这与EAI实现中经常使用的“规范(canonical)”消息表示概念非常类似。

    每个JBI容器存在于一个单独的虚拟机中,并容纳所有的BC和SE,容器提供了一组服务,为SE和BC实现提供操作性支持。

    JBI也定义了基于JMX的标准控制集合,允许外部管理工具执行不同的系统管理任务,也可以管理组件本身。管理支持为以下情形提供了标准机制:

  • 安装plug-in组件。
  • 管理plug-in组件的生命周期(启动/停止等。)。
  • 部署服务器件给组件。

二、服务组件架构(Service component Architecture,SCA)

    尽管服务组件架构(SCA)被作为规范定义(该规范定义了使用面向服务架构构建系统的模型),但它是一个有效的模型(该模型用来将组件组合成服务),并为服务组合成解决方案提供了额外支持。

    SCA基于2个主要的元模型:

  1. 类型元模型。
  2. 组合元模型。

类型元模型

    这个元模型(见图2)描述组件类型、接口和数据结构。

图2 描述组件、接口和它们依赖的元模型

 

    一个组件实现由以下的4组规范定义:

  • 被提供的接口——组件定义的接口集。这些接口通常定义为WSDL端口类型或语言接口,如Java或C++。一个组件可以暴露0或多个接口。每个接口包含几个方法。
  • 被要求的规范(引用)——组件实现使用的接口集。这些接口通常定义为WSDL端口类型或语言接口,如Java或C++。一个组件可以有0或多个接口。
  • 用来裁剪或自定义组件行为的属性。每个属性定义为一个属性元素。一个组件可以包含0或多个属性元素。
  • 定义组件实现的实现元件。SCA允许很多不同的实现技术,如Java、BPEL、C++、SQL等。SCA为引入新的实现类型定义了扩展机制。

组合元模型

    这个元模型(见图3)定义了组件实例,以及它们是如何连接的。

 

图3 组件实例和它们在组合元模型中的连接

 

    这个元模型中实例的概念有别于在OO中使用的实例概念。此处的组件实例是指一个带有被完整解析的属性集,为解决特殊问题而修改组件行为的组件实现。

    一个组合定义了很多组件实例,它们彼此交互,这里的交互使用连线(wire)来定义。

    在SCA中,连线使得绝大多数的底层代码被抽出(与Indigo中的信道类似)。如,连线可以被定义同步的或异步的,支持组件调用的事务行为等。SCA在幕后处理这些底层细节。连线同样可以在任意方向上连接2个不同的接口语言(如Java接口和WSDL 端口类型/接口),只要这2个接口定义的操作是等价的就行了。

    除了连线,SCA也支持通过特殊的组件类型,如导入(imports)和导出(exports),进行模块间通信。连线、导入和导出组件的结合使得组件可以引用外部服务。

    组合元模型定义的组件组合,与服务组合既类似又不同,尽管两者都定义了使组件/服务一起工作的方式。通过被组合本身引入的功能,服务组合增强了参与服务的功能;而这个元模型只定义组件(更接近于服务实现)间的连接。

    SCA实现依赖于服务数据对象(Service Data Objects,SDO),它提供了表示数据的通用模型的技术。SDO是组件的数据交换基础。SDO架构中的基本概念是数据对象——包含基本类型数据和(或)其它数据对象的容器。元数据提供了被包含数据的信息,它被数据对象显式引用。在SDO中数据对象的组合由数据图表示。除了对象本身,图中还包含变更概要,用来记录图中数据对象和属性在处理过程中变化的信息(类似微软环境中的ADO)。除了SDO,SCA还引入了服务消息对象(Service message objects,SMO),它提供了服务间处理和交换消息的抽象层(类似JBI中的标准化消息)。

    如果GUI支持,SCA实现会非常强大,可以在面板上实现图形化组件的连接。

 

三、SCA与JBI的主要异同

 

    1、相同点

  • 目的是一样的:都是为了集成。
  • 大致方向一样:都是为了将服务和传输协议解耦。

    2、不同点

  • JBI是以请求消息和相应消息作为切入点,在集成时将消息和传输协议解耦,形成一种与传输协议无关的标准消息,这样形成一种全新的区别于现有应用服务器的集成容器,是从容器的角度出发,一种全新的容器模型。
  • SCA以接口作为切入点,从组件接口层将传输协议和接口实现解耦,是从编程的角度出发,一种全新的编程模型。
Meta分析 数据提取 Meta分析论文写作,数据提取,这方面的指导很全面 立即下载

相关推荐

JBI开发指南(Servicemix开发指南)

servicemix的开发文档很少,本人好费劲才淘到一本JBI的开发指南,书写的很不错,如果学习完全书肯定能达到入门级水平,嘿嘿,学人已学过大半,收益非浅。

简单理解JBI架构

JBI(Java Business Integration)是SUN公司解决SOA的方案,当然JBI没有得到IBM与BEA的承认(IBM与BEA等公司推荐SCASDO)。 这里先介绍下JBI架构思想,JBI目的主要是在于创建一个可以集成各种组件服务的运行环境,当然这也是一种服务总线思想的体现。 目前流行的服务容器有Servlet容器、EJB容器、JMS容器。 1.         Serv...

hyjun 408

sca jbi 比较

SCAJBI之比较 SCA最早是由IBM、BEA、Oracle、SAP四大家发起的规范,现在已经有18家成员加入了此规范,包括SUN; JBI是由SUN主导的规范;区别如下(偶...

cjr11380的博客 232

SOA标准之----JBI架构思想

SOA标准之----JBI架构思想   SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEAIBM的承认),另外一个是:IBMBEA等公司推出的SCASDO标准。   JBI之关注Java组件只处理Java组件的集成。 SCA实现了业务组件传输协议的分离,可以处理各种平台组件的集成。 SDO可以的自由读取各种不同数据源的数据。 另外,BPEL本质上是一种集...

weixin_33895657的博客 198

【转】JBISCA区别

最近我在做有关ESB的开发工作,发现我们的产品(开源的Celtix  http://celtix.objectweb.org) 要支持JBISCA两个标准。这让我困惑了好久,JBISCA有什么区别呢?前几天好好在网上收罗了一番,现在把收获到的东西大家分享一下:JBI definition http://www.theserverside.com/news/thread.t

宁静深远的专栏 2534

SCAJBI的关系

 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--------组

zlushangnwpu的专栏 1332

SOA 中 JBISCA 区别

最近我在做有关ESB的开发工作,发现我们的产品(开源的Celtix  http://celtix.objectweb.org) 要支持JBISCA两个标准。这让我困惑了好久,JBISCA有什么区别呢? 前几天好好在网上收罗了一番,现在把收获到的东西大家分享一下: JBI definition http://www.theserverside.com/news/thread.tss

801

sca标准值_SOA标准之----SCA架构思想

SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEAIBM的承认),另外一个是:IBMBEA等公司推出的SCASDO标准。JBI之关注Java组件只处理Java组件的集成。SCA实现了业务组件传输协议的分离,可以处理各种平台组件的集成。SDO可以的自由读取各种不同数据源的数据。另外,BPEL本质上是一种集成Web Service服务的语言,也可以算作为SOA的一部分。在...

weixin_29081101的博客 395

SOA标准之----SCA架构思想

SOA标准之----SCA架构思想   SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEAIBM的承认),另外一个是:IBMBEA等公司推出的SCASDO标准。   JBI之关注Java组件只处理Java组件的集成。 SCA实现了业务组件传输协议的分离,可以处理各种平台组件的集成。 SDO可以的自由读取各种不同数据源的数据。 另外,BPEL本质上是一种集

ITSTAR 1364

概念篇-SOA,ESB, JBI, SCA区别

SOA – ESB ESB是一种支持SOA实施的技术选择。 SOA – JBI JBI是Java领域一种支持SOA实施的技术选择。 SOA – SCA SCA是一种支持SOA实施的技术选择。 SOA – OSGI 没有直接关系,目的不一致。 ESB—JBI JBIESB是互补的。JBI提供一个模型将集成组件作为服务的标准接口。JBI可以宿主在一个应用程序服务器

stefshawn的专栏 1578

JBI架构思想

SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEAIBM的承认),另外一个是:IBMBEA等公司推出的SCASDO标准。   JBI之关注Java组件只处理Java组件的集成。   SCA实现了业务组件传输协议的分离,可以处理各种平台组件的集成。   SDO可以的自由读取各种不同数据源的数据。   另外,BPEL本质上是一种集成

chuanzhongdu1的专栏 630

SOA标准--SCA架构

SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEAIBM的承认),另外一个是:IBMBEA等公司推出的SCA SDO标准。 JBI之关注Java组件只处理Java组件的集成。 SCA实现了业务组件传输协议的分离,可以处理各种平台组件的集成。 SDO可以的自由读取各种不同数据源的数据。 另外,BPEL本质上是一种集成Web Service服务的语...

lwyingdao的专栏 191

域管理器方式的应用

由于TuscanyJBoss集成出现了问题,不敢花太多时间消耗在这上面,决定采用Domain Manager的方法部署Tuscany Contribution。JBI也好,SCA也好,都内置了一个发布的容器,现在觉得这两种东西都不错。JBI的规范了解了一下,但基于ServiceMix的应用,目前还没有开展。有时间,还是要去练习一下。...

huangyungang的专栏 173

SCAJBI的联系与区别

原文见:http://azur.typepad.com/bpel/2005/12/sca_jbi_and_mor.html1 SCA是什么  WSDL的弱点:  WSDL在应用之间提高了连接性可互操作性.但是,WSDL仅仅聚焦于一个服务的接口,不含服务依赖其他服务以及服务它的依赖之间采取什么策略配置的任何信息.  SCA一方面超越WSDL,定义了服务构件模型服务组合模型. 服

Blugel的专栏 3291

ESB研究:综述

最近有点时间,把以前研究总线的资料整理了一下。前面写过一些总线关键特性选型分析,这里就主要具体的说一下接触过的几个开源的ESB项目。1、Mule,ESB架构理念的消息平台,是企业集成模式EIP的一个实现。2、 ServiceMix,完全的JBI实现。JBI为SUN提出的标准。3、 Tascany,有三部分组成包括:SCA、SDO以及DAS。此项目为上述标准的实现,有IBM、BEA等厂

Matt的技术专栏 1649

SCAJBI之比较

SCA最早是由IBM、BEA、Oracle、SAP四大家发起的规范,现在已经有18家成员加入了此规范,包括SUN; JBI是由SUN主导的规范;区别如下(偶在国外的一个论坛上摘来的,就不翻译了,还是原汁原味的好) :1. Supporters of SCA view JBI as a Java Platform standard that can be helpful in implement

1928
上一篇: P6Spy + SQLProfiler 数据库访问调优
下一篇: 济南 IT 软件类从业者现状调查
haitan
博客等级 码龄20年 2粉丝 12原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值