Architectural Pattern(4)-SOA相关名词概念解释(SCA、ESB、JBI、BPEL、WEB服务)以及关系说明

本文来自以下两篇博文:
http://www.wxdl.cn/java/soa-sca-esb-jbi.html
http://blog.csdn.net/cwb1128/article/details/7343348
两篇博文解释的名词不同,同时站的高度也不同,第一篇占的高度相对更高一点,第二篇更接近于实现层面,结合着看更易懂一些。

什么是SOA?
SOA全称service-oriented architecture,即面向服务的体系结构。它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
简单的讲:SOA是一种服务集成的架构思想,超越具体的技术和架构。
?服务边界清晰
?服务自治,低耦合
?服务通过Schema和Contract发布,而不是Class和Type

什么是SCA?
SCA全称Service Component Architecture,即服务组件框架。 SCA是一个规范;是一种架构模式;是一种通用的面向业务服务的组件模型.它定义了部署模型,提供了实现提供服务和使用其他服务的组件、组装组件,以通过服务引用其他服务的方式来构建业务应用程序,与SOA组合的原则一致。它由BEA、IBM、Oracle等知名中间件厂商联合制定的一套符合SOA思想的规范。
简单的讲:SCA是一种支持SOA实施的技术选择。

什么是ESB?
ESB全称Enterprise Service Bus,即企业服务总线。ESB是传统中间件技术与XML、Web服务等技术相互结合的产物,用于实现企业应用不同消息和信息的准确、高效和安全传递,其核心思想是基于消息中间件来实现系统间的交互。让不同的应用服务协调运作,实现不同服务之间的通信与整合。ESB是运行服务的,并且驱动BPEL的.
简单的讲:ESB是一种支持SOA实施的技术选择。

什么是BPEL?
Business Process Execution Languge,即业务流程执行语言,是一种使用XML编写的编程语言,是服务编排的核心技术。

什么是WEB服务?
WEB service是一种轻量级别的基于XML的跨平台远程服务通信框架技术,可以很好的解决平台和语言间的数据通信。使用WSDL来描述接口定义的方案,可以使用传统的传输协议(一般使用HTTP)传输机遇XML的SOAP格式保温数据来实现跨平台间系统的通讯。

什么是JBI?
JBI全称Java Business Integration,即Java业务集成。JBI的提出是基于面向服务体系提倡的方法和原则,为了解决 EAI(企业应用集成)和 B2B 若干问题的 Java 标准。当前版本( 1.0 )是 2005 年 8 月通过的 JSR ( Java 规范需求) 208 定案。
简单的讲:JBI是一种支持SOA实施的技术选择。

SOA与WebService的关系:
web服务是实现SOA的方式之一.

SCA和ESB的关系?
ESB是SCA思想实现的基础设施。ESB主要作用是集中注册发布服务,为服务与传输协议之间解耦。并不是所有的SOA架构都需要ESB,ESB是SCA特有的。当然任何符合ESB特征的解决方式都可以称之为ESB,也不仅仅是SCA内部的。
基于SCA 1.0标准开发的Tuscany SCA ,其功能已经满足了ESB四个基本功能中的三个,即传输协议转换、消息格式的转换和处理不同来源的业务事件,使用SCA来实现ESB,只需另外开发一个消息路由器,就可以实现ESB的四个基本功能,这样就大大的减少了ESB的开发难度。

SCA和JBI的关系?
1)把支持SCA的JBI作为Java平台标准,可以帮助SCA在Java平台的实现;
2)把支持JBI的SCA作为提供额外的服务元数据,可以帮助简化和标准化服务集成在Java平台和介于Java平台与其他平台之间的平台;
3)SCA和JBI都致力于帮助开发者构建和组成服务,因此自然而然的认为它们是竞争关系;然而,却不是这个样子的。虽然可以单独使用,但是它们可以非常有效的一起使用,因为它们关注的是构建大型服务组合的不同方面;
4)一个可能的原因是SCA和JBI针对不同的群体。SCA规范的目标是最终用户,描述如何实现、组装和部署应用程序和服务。因此,这些规范的目标受众是根据人们工作中的角色如:开发者、服务构建者、部署人员区别的;

5)SCA允许使用不同技术(如:Java、BEPL,C++)实现服务和绑定不同类型(如:Web Service、JMS)通信服务;然而,SCA不能在运行时说明如何引入一个新的实现类型或新的绑定。这正是JBI擅长的。





http://www.bubuko.com/infodetail_116764.html

相关文章
相关标签/搜索