《ESB、JBI、SCA、OSGI概念再学习、再理解》由会员分享,可在线阅读,更多相关《ESB、JBI、SCA、OSGI概念再学习、再理解(6页珍藏版)》请在金锄头文库上搜索。
1、ESB、JBI、SCA、OSGI 概念再学习、再理解SOA、ESB、JBI、SCA、OSGI概念再学习、再理解转2010-04-01 13:33这几日看了许多SOA,ESB,JBI,SCA,OSGI相关的书籍、BLOG、文章、JavaOne上的一些资料,希望在ESB产品升级之前,能对这些概念再次进行学习、理解。明确术语,确定关系。SOA SOA是一种业务建模思想,是一种架构风格;它以服务为核心,构建系统;通过进化控制节奏;【摘录】支持对业务进行整合,使其成为一种能够相互联系、可重用的业务任务或者服务。【注:此处的架构仅指技术相关的架构。】一种业务建模思想SOA是一种业务建模思想,而不是一种技术
2、体系。它来自业务敏捷的需求,植根于业务,致力于提升业务的敏捷性。最低层面:使用SOA的思想分析、重构业务,用服务的概念定义业务单元。实现层甚至使用现有技术体系,选择几种结构型模式:Faade模式,Proxy模式,Composite模式配合,从而达到原始的SOA层面。SOA并不强制我们必须分布,必须采用一些支持SOA的技术或产品,只要业务敏捷了,且当前技术架构也能够满足生产发展的需要,就是合适的。一种架构风格SOA也是一种架构模式,特别是一种分布式架构模式。实践观点:第二个层面以第一个层面为基础,没有第二个层面,只有第一个层面,我们还可以说这个系统是SOA化的;没有第一个层面,只有第二个层面,这
3、个系统是否SOA化,值得商议。(IBM提出的SOA切入点中,包含有以技术为中心的切入点【连通性】,从我们实践、公开案例的实践、专家有关SOA实践的书籍来看,以业务为切入点是最合适的,也是最容易成功的,获得组织支持的概率也大;单一的基于技术切入SOA架构,案例较少)它的一些特征:以服务为基本单元,可以把服务视为构件。服务质量可度量,且可以提升。基于开放标准。该架构同时是一种分层架构。具有分布的能力。与技术无关性。鼓励扩展。支撑业务敏捷的要求。架构层面主张组合。服务设计的原则松散耦合服务契约自治抽象复用性组合性无状态性可发现性互操作性IBM的SOA架构框架:该图从技术层面描绘了SOA的架构模型,以
4、及OA技术架构所包含的主要概念。ESB ESB是一类中间件产品的通称;是一种分布式的技术架构,以中介为核心概念;是一种支持SOA实施的技术选择;来源于集成的需要,实现服务、系统之间的互联、整合;ESB产品通常提供一种容器,方便插入各类通用服务(编排服务、消息服务等)、提供服务虚拟化的能力(协议和模式、接口、身份等)、提供面向方向的连接(安全性、管理、日志记录和审核等);支持业务逻辑和实现的技术逻辑的分离。它使用XML(可扩展标识语言)作为标准通信语言。它支持Web服务标准。它支持消息传递(同步、异步、点对点、发布-订阅)它包含对服务编制(orchestration)和编排(choreograp
5、hy)的支持。它包含智能、基于内容的路由服务(itenerary路由)。它包含转换服务(通常是使用XSLT),在发送应用和接收应用之间转换格式,简化数据格式和值的转换。它可以条件路由,或基于非集中策略的消息转换,即不需要集中规则引擎。它提供对服务监控、治理相关的内容。参考资料:【摘录】是基于面向服务体系提倡的方法和原则,为了解决EAI和B2B若干问题的Java标准。JBI定义了基于插件方式的架构,以便服务能融入JBI运行时环境。JBI提供了详细的接口,使服务能与JBI运行时环境交互。服务引擎、组件绑定图:本图强调了服务引擎,组件的绑定方式,更倾向与产品的扩展。对业务级别的服务模型支撑比较弱,业
6、务通过API来实现与JBI产品的交互。SCA服务组件体系结构(SCA)是一个规范;是一种架构模式;是一种通用的面向业务服务的组件模型;定义了部署模型;提供了实现提供服务和使用其他服务的组件、组装组件,以通过服务引用其他服务的方式来构建业务应用程序与SOA组合的原则一致;SCA是平台无关的;SCA是一种编程模型;支持业务逻辑和实现的技术逻辑的分离;是一种支持SOA实施的技术选择;SCA支持组件的分布。【摘录】is aset of specifications which describe amodel for building applications and systems using aSe
7、rvice Oriented Architecture.SCA models solutions as sets of service components offering services and making references to services supplied by others,which are combined together by composites which wire references to services and which declaratively apply bindings for communication methods and also
8、apply policies for aspects such as security and transactions.SCA extends and complements prior approaches to implementing services,and SCA builds on open standards such as Web services.核心概念图:本图强调了组件模型,服务组件之间的组合模式,把业务级别和系统级别的组件,同等对待。提供了业务组件接入容器的方式。完全符合SOA的概念。OSGI【摘录】一个开放并且提供统一接口标准的体系框架,基于这个体系框架,服务提供商
9、,程序开发人员,软件提供商,服务网管运营商,设备提供商能够协调地联合起来开发,部署以及管理向用户提供的各种服务。【摘录】provides aservice-oriented,component-based environment for developers,primarily on the Java platform.It provides adependency resolution mechanism,with version support and also offers standardized ways to manage the software lifecycle.OSGi i
10、s aparticular boon when using different components that use different versions of some shared package.These capabilities greatly increase the value of awide range of computers and devices that use the Java?platform.相互之间的关系SOA ESB ESB是一种支持SOA实施的技术选择。SOA JBI JBI是Java领域一种支持SOA实施的技术选择。SOA SCA SCA是一种支持SO
11、A实施的技术选择。SOA OSGI没有直接关系,目的不一致。ESB-JBI JBI和ESB是互补的。JBI提供一个模型和将集成组件作为服务的标准接口。JBI可以宿主在一个应用程序服务器环境或者在一个ESB容器中。ESB提供了一套基础架构包括了事件驱动的SOA,高度分布的路由目的地命名,企业消息能力和分布管理能力。JBI SCA【摘录】SCA has astrong model for defining composite applications、Services can be implemented in multiple languages、Can bind interfaces and
12、references to different technologies。JBI:Defines astandard,loosely coupled,ESB architecture、SE/BC are exchangeable between JBI implementations、Provides standard abstraction for all JBI components。融合性:When combining JBI and SCA,all JBI service engines can be used in SCA components,SCA components can
13、be called from JBI,SCA applications can be deployed as service units in aJBI container.SCA-OSGI相同点:都是一种规范;都是一种架构;一种编程模式;都定义了模块,服务概念。不同点:OSGI强调模块的动态性;SCA强调服务的分布性;OSGI来源与单个JVM产品架构的需求;SCA来业务SOA化的技术需求;OSGI更适合产品架构;SCA更适合业务系统架构。融合性:SCA可以作为Bundle部署到OSGI环境,以增强OSGI环境的业务架构解决能力;OSGI可以作为一个模块部署到SCA环境中,从而利用OSGI环境下的基础通用服务。SCA-ESB相同点:都是SOA的一个可选的技术方案;都基于服务的概念;都是可分布的;都提供插件特性等。不同点:SCA是一个标准,ESB是一个概念;SCA有模块的概念,ESB没有这个概念;SCA是一个组装车间,ESB是一个中介机构;SCA简单而清晰,ESB复杂而模糊,不同产品特性千差万别。