精彩的人生

好好工作,好好生活

BlogJava 首页 新随笔 联系 聚合 管理
  147 Posts :: 0 Stories :: 250 Comments :: 0 Trackbacks

#

本文意译自TSS的“BPEL and Java”,为的是更深入地理解这篇好文章,也算是我的一篇学习笔记。

简介

在企业应用开发领域,每一种新技术和平台背后的动力和思想,无一例外的是提供一个能够更有效的开发企业商务应用的环境-商务应用和业务过程更为紧密地保持一致,不能太复杂,而且能做到随着业务过程的变化而轻松地改变。

Java提供了一个极好的企业应用开发平台,但仍然不能做到分离业务过程。在一个公司内部,业务过程需要相互协作和集成,公司之间也一样。因为存在着不同的技术和功能,集成不同的应用总是一项艰难的任务。

应用集成方面的最新进展,来自Service Oriented Architecture(SOA)和Web服务技术。从SOA的观点来看,不同的应用系统以Web服务的形式来发布它们的业务功能。因此,我们使用统一的标准方式(通过Web服务)来访问遗留系统和新开发应用的功能。这种标准方式很重要,因为通常大多数公司存在着很多需要集成的应用。

如果仅仅是开发Web服务并把这些功能发布出来还不够。我们也需要一种把这些功能按正确的顺序组合起来的方法-定义使用这些Web服务的业务过程。我们显然需要一个简单直接的方式来定义这些业务过程,尤其是我们都知道业务过程通常易于变化,因此我们需要很容易地修改这些业务过程。

这正是BPEL(Business Process Execution Language for Web Service,也称作WS-BPEL或BPEL4WS)如此重要的原因。BPEL用于组合这些Web服务,因此可以算是SOA的一种实现方式。
我们将在本文讨论BPEL的作用及其与Java的关系,尤其集中在如何扩展BPEL,使它不但可以组合Web服务,也可以组合其他资源(如EJB,JMS等)。BPEL和Java结合的可能性,打开了一个有趣的新视野。

BPEL的作用
面向业务过程的SOA需要使用一个相对简单的方式来描述如何把Web服务组合成业务过程。当然,如果描述的方式最好能够执行,这样我们不但可以定义一个抽象的业务过程,而且完成了一个可执行的业务过程规范。BPEL正是这样的语言。实际上,它是第一个拥有以下特征的语言:
1、允许我们同时定义抽象的业务过程和可执行的业务过程
2、受到大多数公司的支持
3、存在可执行这些业务过程语言的软件(BPEL服务器)和开发工具(BPEL设计工具)

在深入了解BPEL之前,让我们讨论一下如何组合Web服务。有两种方式:Orchestration和Choreography。使用Orchestration,需要一个总控过程来控制涉及到的Web服务,并协调Web服务不同操作的执行。所涉及到的Web服务并不知道(也不必知道)它们是组合过程的一部分。只有中央的总控过程知道它们如何组合和协调。

相比之下,Choreography并不依赖中央的总控协调过程。相反,每个涉及其中的Web服务都知道何时执行自己的操作,和谁交互。Choreography方式集中在消息的交换。所有的Choreography参与者都需要知道业务流程,要执行的操作,要交互的消息,和交换消息的时机。

从组合Web服务来执行业务流程的角度来看,Orchestration比Choreography更灵活:
1、我们知道谁负责执行整个业务流程。
2、及时Web服务并不知道它们是业务流程的一部分,我们仍然可以把它们组合起来。
3、当错误发生时,我们可以提供一个备选的Scenario。

BPEL遵循Orchestration范式。其他的标准则使用Choreography范式,如 WSCI(Web Services Choreography Interface)和WS-CDL(Web Services Choreography Description Language)。和BPEL相比,Choreography没有获得业界的支持。
2002年8月,BEA,IBM和微软公司开发出BPEL的第一个版本。2003年4月,BPEL提交给OASIS标准化。

BPEL既可以在公司内部使用,也可以在公司之间使用。在公司内部,BPEL用于标准化企业应用集成,并集成遗留的孤立系统。在公司之间,BPEL使业务伙伴之间的集成更加容易和高效。BPEL定义的业务流程并不会影响已有的系统。在功能已经存在或要发布成Web服务的环境,BPEL是关键的技术。随着Web服务技术应用的日益广泛,BPEL的重要性也在上升。

BPEL语言
BPEL语言被设计来描述业务流程。它支持两种不同类型的业务流程:
1、可执行的流程-允许我们定义一个业务流程的确切细节。它可以在Choreography引擎种执行。多数情况下,BPEL都用于可执行的流程。
2、抽象的业务协议-允许我们定义参与方之间的公开消息交换协议。它不包括业务流程的内部细节,也不能执行。

BPEL构建在XML和Web服务的基础上。它是一个以XML为基础的语言,支持Web服务技术的协议群,包括SOAP,WSDL,UDDI,WS-Reliable Message,WS-Addressing,WS-Coordination和WS-Transaction。BPEL是早期两个工作流语言(WSFL和XLANG)的综合。WSFL由IBM设计,基于有向图的概念。XLANG有微软设计,是一种块结构语言。BPEL综合了两者的特点,为描述业务流程提供了丰富的语义词汇。

BPEL流程定义了参与流程的Web服务执行的确切次序。它可以按顺序执行,也可以并行执行。使用BPEL,我们可以表达条件行为,例如,是否执行一个Web服务取决于前一个执行结果;也可以创建循环,声明变量,复制和为变量赋值,定义错误处理Handler等等。综合使用这些结构,我们可以用算法的方式定义复杂的业务流程。

因此,BPEL可以和通用的编程语言,比如Java相比较,但它没有Java强大。另一方面,它更简单,更适合业务流程的定义。因此,BPEL并不是现代语言(如Java)的替代,而是它们的补充。

让我们更仔细地看看典型的BPEL流程。首先,BPEL业务流程收到一个请求。为相应请求,BPEL执行相关的Web服务,最后相应请求者。因为BPEL流程需要和其他的Web服务协作,它依赖于被调用的Web服务的WSDL描述。

BPEL流程包含几个步骤。每个步骤称为活动。BPEL支持简单的和结构化的活动。简单的活动代表基本的结构,用于普通的任务,如下列表所示:
1、调用其他Web服务,使用
2、等待客户端通过发送一个消息调用业务过程,使用
3、为同步操作创建一个响应,使用
4、为一个数据变量赋值,使用
5、指出错误和例外发生,使用
6、等待若干时间,使用
7、终止整个流程,使用,等等

我们可以组合这些基本的简单活动来定义复杂的算法,用于定义业务流程的执行步骤。为组合这些基本活动,BPEL支持几个结构化的活动。最重要的是:
,用于定义按次序执行的一系列活动
,用于定义并行执行活动的集合
,用于创建条件分支
,用于定义循环
,用于从多个可选的路径中选择其一

每个BPEL流程都可以使用声明变量,使用定义partner link。我们将在后面的小节讨论

BPEL流程可以是同步也可以是异步的。同步的BPEL流程阻塞客户端(使用该流程的客户端)直到流程结束并返回结果。异步的BPEL流程并不阻塞客户端。它使用一个回调来返回结果(如果有)。通常,我们在耗时较长的流程使用异步流程,把同步流程用于处理在短时间内返回结果的流程。假如一个BPEL流程使用异步的Web服务,通常情况下它自己也是异步的(虽然不是必要的)。

对于客户端来说,一个BPEL流程看起来就像其他的Web服务。当我们定义一个BPEL流程时,我们实际上定义了一个组合现存Web服务的新Web服务。这个新的BPELWeb服务使用一系列portType,通过这些portType,它提供了类似于其他Web服务的操作。为调用一个在BPEL定义的业务流程,我们必须调用这些Web服务的组合。下图是一个BPEL流程的示意图:

点击查看原始大小 545 x 301



Partner Link

BPEL示例

BPEL vs Java

BPEL服务器和开发工具

PPEL + Java

总结

资源

关于作者

待续......


原文地址:http://starrynight.blogdriver.com/starrynight/637103.html


posted @ 2006-03-09 10:23 hopeshared 阅读(482) | 评论 (0)编辑 收藏

来自:TechTarget Michael Meehan  


        尽管关于如何把必要的企业服务总线转化为面向服务的架构存在激烈的争论,但是就在最近Forrester Research公司在报告中说他们认为持续采用SOA能很好的体现ESB的思想,他们把它称为“SOA的主要切入点”。

  该报告的细节分析了两种独立ESB市场、处于领导地位的公司以及使ESB对有集成问题的公司价格上的吸引力。Forrester公司总共调查了116家公司,报告显示77%的大企业、51%的中型企业和46%的小企业将主动在今年年底前实现SOA。评估认为三分之一的“基础设施决策者”在未来12个月中会增加他们的ESB部署。

  Forrester公司分析师Mike Gilpin说:“尽管人们还不十分确定如何构建出一个完整的SOA,但他们已经知道要解决集成问题,而ESB正好能帮助他们解决该问题。”

  报告把客户市场分成两个独立的群体。一个被称为“保持简单”群体,另一个被成为“即刻整体部署”群体。

  “保持简单”群体想要一种低廉的、基于标准的Web服务编排工具并在此之上构建健壮的SOA。Gilpin认为价格正在成为ESB的一大卖点,它使得公司用相对少的投资就能启动Web服务,于是他们就可依靠必要的技术去构建完整的SOA。

  Cape Clear Software、Sonic Software以及Fiorano Software等公司就是采用了以上这种做法。

  他说:“实际上,ESB的成功为导致集成软件方面费用的降低。因此尽管公司迁移了更多的单元,但费用却降低了。”

  而“即刻整体部署”群体则希望能一次性解决集成方面的所有问题,希望得到在服务证明周期中负责细粒度控制和服务过程管理的工具。

  Gilpin相信这两种不同的市场会导致对两种不同类型ESB产品的需求,即一种轻量级的产品以及一种全面的SOA集成与控制产品。报告显示,所有ESB倡导者以及企业应用集成的推崇者都有目光投向了全面产品市场,于是把轻量级产品的市场留给了IBM不久将要发布的WebSphere ESB。

  Forrester公司高兴的发现经常被分析师团体称为遗留中间件的EAI厂商正在发生转变。他们在Web服务基础设施的服务仲裁以及控制/变更方面变得很有竞争力。根据报告显示,EAI的推崇者对扩展市场贡献巨大,但只有Oracle Corp和webMethods公司有能力在价格上取得有竞争力的地位。

  处于领导地位的公司包括Cape Clear,、Sonic、Fiorano、Iona Technologies、 Oracle、webMethods、Tibco Software以及收购了SeeBeyond 公司的Sun Microsystems。今年夏天,BEA Systems公司作出了两次领导者的举动,一次是发布AquaLogic ESB,另一次则是推出WebLogic Integration suite。IBM由于最近才刚推出ESB产品所以没有参加调研。

  Gilpin并不认为像BEA、Oracle以及IBM这样的平台提供商能够引起市场两极分化,因为集成问题不应该与应用程序运行在SOA内部哪个地方紧密耦合在一起。

  他确信与产品缺少结合会对市场造成挑战。

  他说:“人们都认为ESB并没有被标准良好的定义。它还处于一种类似于J2EE之前的应用服务器市场的状态。”

  他看好像Apache Synapse这样的项目,该项目被认为会为Web服务仲裁定义标准的方法,而那会是解决问题的潜在手段。

  Gilpin认为控制已经是ESB市场没有解决的最大问题。SOA注册提供商早已注视着该领域,而他希望这两个领域能够通过融合或协作的方式走到一起,也可能是通过XML网络的方式。

  他说:“SOA太大,以致于已经不可能靠一个提供商来实现全部的内容,即使是IBM。今后很可能会靠很多提供商的团队工作才能形成一种生态系统。”

posted @ 2006-03-09 10:21 hopeshared 阅读(314) | 评论 (0)编辑 收藏

作者: Hub Vandervoort 和 Matt Rothera∣来源:BEA dev2dev


 

复杂性的简单管理

由于其业务可见性、灵活性及知识管理方面带来的高额利润,门户技术成为了用于对整个企业的商业活动进行监控、查找和管理的流行选择。对于构建高度动态的能够聚集、组织和表示来自多个后端系统的信息的企业门户来说,BEA WebLogic Platform具有很大的吸引力。不论门户是用功能丰富的WebLogic Portal Server环境实现,还是通过像Jakarta Struts这样的MVC框架实现,最新版的BEA WebLogic Platform 8.1提供了大量新特性用于创建功能强大的门户环境。

但是由于企业门户开始聚合数量不断增长的跨越不同技术领域、地理界限,甚至是组织界限的服务,所以门户架构师将需要找到管理环境复杂性的方法。无疑,在门户与每一个服务之间构建一次性、可靠、点到点的集成不能从开发、部署或运行时方面进行伸缩。所以需要一种“服务网络”的概念,它提供可靠传输、智能路由、高级服务管理特性,以及提供在高度分布式的联合环境下运作的能力。

幸运的是,一种称为企业服务总线(ESB;参见侧栏“ESB:您的Web 服务网络”)的新型基础结构提供了甚至最苛求的门户环境所要求的复杂级别。ESB是一种基于标准的面向服务的骨干,它能够进行可靠连接和协调数百个应用程序端点。

ESB为需要连接跨越不同数据中心分布的各种异构系统的企业提供了一种理想的体系结构,同时还保持了绝对的事务完整性。此外,它还提供几个通过部署时构造进行最初配置的高级服务,从而保护了门户应用程序,即不必经常对它进行修订和重新部署来管理后端上的更改。

即使是计划部署一个门户以将同构环境中的系统与许多后端服务集成,将ESB合并为集成网络也有明显的好处。综合性的ESB供应商将会提供out-of-the-box管理、安全性、可靠性、高性能的服务请求、本机XML处理、复杂路由和转换,以作为总线中的增殖特性。另外,作为面向服务体系结构(SOA)的一种基于标准的实现,ESB提供必要的抽象层来履行SOA的全部承诺。在不牺牲同构环境的传统价值(即管理、安全性、可靠性、伸缩性和性能)的情况下,ESB提供了将底层服务实现无缝地重新部署到其他技术、地理或组织领域的能力。

本文中,我们将通过两个关键用例来演示,使用BEA WebLogic Platform 8.1,将高度分布式的服务与门户及Web应用程序相集成时ESB的威力和灵活性。在两部分系列的下一部分中,将展示ESB如何通过操作感知、业务活动监控(BAM)和面向服务的业务过程管理来向组织提供附加值,从而让门户可以充分利用扩展企业中的服务的全部价值。

Avitek Medical Records:扩充其业务模型
WebLogic Platform 8.1
配带一个综合的J2EE指南,称作“Avitek Medical RecordsAvitek医疗记录)”,用来说明J2EE平台的所有核心特性。该指南建模的基本思想围绕这样一种门户(一种J2EE Struts应用程序),它为病人、医生和管理者提供查看整个医疗记录集合的能力。另外,该应用程序展示了通过Web Services接口连接外部客户机的能力,它提供了不通过表示层直接与Avitek服务交互的能力。

作为本文的前提,我们假设Avitek上的“业务量在急剧增长”并且已经获得医疗记录的三个新的来源以集成到门户中。为了使情况复杂一点,新的来源在地理上跨越不可靠的网络分布,并且包含混合的技术环境(多种J2EE应用程序服务器供应商、Microsoft .NET和定制的解决方案)。实际上,Avitek类似一种能适应变化的体系结构,因为它们很可能会增量地获得信息的新来源,并会随着时间慢慢地将这些来源迁移到最新最好的技术上。

尽管Avitek Medical Records的体系结构宣称能够使用HTTP/Web服务来集成新的医疗记录来源,但是本文将通过一些关键用例来解释仅仅使用Web Services环境是不够的。

1

在谈到纯HTTP/Web服务方法的生存能力时,还存在一些与通信模型(请求/响应模型、单向通信模型和异步服务模型等)的可靠性、性能、丰富性以及服务质量、性能、管理和安全性相关的问题。为此,我们建议修改Avitek的体系结构以与ESB的概念相结合(见图1)。

ESB是基于工业标准的JMS,将会提供一种企业级的骨干,以便可靠地将服务一起链接到内聚性操作单元中,它能够服务于大多数门户所需的全范围的集成场景。本文将会介绍ESB就位后可用的许多场景中的几个场景:

1.    前向缓存Forward Cache:为了低延迟、只读访问数据而将数据从分布式系统移动到靠近表示层的能力。

2.    联合查询Federated Query:在表示层有效地查询多系统并异步地聚集响应的能力。

前向缓存服务

“前向缓存服务”用例解决需要把数据从back-office系统暴露到表示层这样的问题。尽管表示层可以容易地通过请求/响应模型与back-office系统交互,但仍有一些原因使得这样做行不通:

1.  back-office系统不能维持支持前端表示层所需要的负载。
2. 
请求/响应模型的延迟超出了表示层容许的范围。
3. 
back-office系统直接暴露给表示层会有风险——稳定性或是对现有服务级别的冲击。
4.  back-office
系统可能与表示层处于不同的地域;在两个数据中心之间连接断了的情况下,数据对于终端用户来说应该仍然可用。

ESB可用于可靠地将变化转发到表示层中的缓存中。这里的关键单词是“可靠地”。在分布式基于SOA的环境中,需要将注意力集中到系统之间如何互操作以及在发生故障和停机时会发生什么事情上。很多时候,系统不能为这种类型的可靠性提供必要的消息重发和“未确定解决方案”。ESB可以消除系统中的这种复杂性(见图2)。

2

从定义来看,ESB是一种可以在任意两个实体间可靠通信的分布式服务网络。ESB实现模块提供的部署选项允许将服务质量调整成刚好满足应用程序的需求。基于工业标准的JMS,两个实体使用标准接口可靠地进行通信;ESB处理路由的复杂性并保证更改通知的传递。

幸运的是,Avitek演示不需要彻底地改变以利用ESB。给定ESB的基于标准的方法,ESB实现模块通过JMS接口连接进来。Avitek演示中包含了一个MDB,该MDBJMS连接进行侦听,以将XML记录“上载”到MedRec数据库。一旦记录被加载到数据库中,这些数据就对使用标准技术对数据库进行查询的前端门户可用。当然,这种模式还有待加强,以适应记录删除请求,或者甚至适应部分记录更新(参见图3)。

3

但这与标准的JMS实现程序的区别何在呢?JMS实现程序能在单一域中确保信息异步的传递。试图连接多个JMS消息传递域通常需要某种定制的桥接,使得消息可以在多个域之间进行可靠的转发。然而ESB实现模块在分布式联合环境中提供本地的端到端JMS通信,这消除了对定制桥接的依赖。另外,ESB还提供附加的基于标准的连接,例如Web servicesJCA适配器(参考侧栏“ESB提供商:附加值服务”),这允许在ESB上的任何地方灵活地部署服务。

另外需要考虑的是在表示层中数据如何进行缓存。Avitek演示依赖于将标准XML Schema存放在关系数据库中。可是在有各种各样信息单元的不同服务环境中,则更倾向于在不必定义关系结构的情况下存储和处理不同格式的XML

ESB实现模块也许会提供嵌入式XML数据库,采用一种“无schema”的方法来存储、恢复以及查询XML文档,彻底的减少了为适应后端服务数据中的变化所需的数据库管理时间。

也应该讨论一些替代方法来与ESB进行比较和对比。BEA WebLogic 8.1也提供一些不同的方法,来满足在不同域之间的这种松耦合和可靠的消息传递。

可靠的Web服务
 BEA WebLogic 8.1提供一种称为“可靠SOAP消息传递”的新特性。该特性允许两个不同的WebLogic服务器之间进行异步可靠的消息传递。虽然SOAP/Web服务是一种基于标准的方法,目前WebLogic 8.1通过专有的SOAP报头和交互协议来实现可靠性。也许将来的能够用像“WSReliability”这样的基于标准的方法来实现。即使是使用象“WSReliability”这样的基于HTTP的标准方法,需要高吞吐量和低延迟的特定用例将通过真正的“端到端”JMS解决方案来获得更好的服务。

为了可靠的连接两个跨越不同网络和地理界限的系统,必须在每一个域中都驻留某种基础结构,用以在发生故障时提供必要的“存储和转发”功能。ESB基础结构通常是“轻量级”、易管理并且重点只放在集成服务上。此外,将ESB基础结构部署到.NET 环境或甚至是另外的J2EE基础结构,可能会得到更好的组织结构。预先计划ESB当然可以避免以后可能出现的很多问题。

JMS消息桥
BEA WebLogic 8.1
提供能够在两个不同的JMS实现之间转发消息的JMS消息桥。这种方法当然提供了相对HTTP/Web服务方法的优势,但ESB的基础结构能在本地总线上提供必要的转发、路由和消息优化功能。ESB也提供内聚管理和安全环境,简化了部署。

联合查询
这种“联合查询”用例解决了在表示层中需要对多种后端系统进行查询的问题。与“转发服务缓存”用例不同的是,后端系统中的数据不能合理地得到缓存。这是因为:
1. 
后端系统中数据的变化速率使得数据无法合理地得到缓存:查询缓存的数据可能会造成数据不一致和结果错误。
2. 
数据量太大:缓存转发的数据在技术上和经济上都不可行。

联合服务查询模式的另一方面是:请求花费的时间太长以至于无法完成(某些情况下,需要几天)。例如,一个独立系统可能会包含某种人工干预(例如确认)来完成工作流。因为其固有的异步特性,ESB能够为这种模式提供强大的基础。

联合查询模式至少有两种变体。这里讨论的变体根据查询的持续时间进行变化。

对于表1中讨论的两种联合查询模式,ESB使用JMS的基本“发布—订阅”消息传递模式来将请求有效地散播到多个后端系统(在本例中是订阅者)。这些模式说明了实现功能的非常简单的方法,ESB提供了实现大量技术所需的核心工具。ESB提供了一组丰富的通信模型,它们可以采用最有效的方式来适应门户与后端系统之间的各种交互。

1

为了阐明这个观点,让我们考虑对三个后端服务上的查询。如果每个服务需要三秒钟进行处理,连续地调用这些服务将至少耗费九秒钟。ESB允许以并行的方式执行服务,使得全部的服务执行时间等于最长的服务的运行时间(在本例中是三秒钟)。虽然这可以使用集中式多线程技术来实现,但ESB允许并发处理跨总线进行分布,这样就消除了集中式的瓶颈,并提供了更大的可伸缩性潜力。

联合查询:实时请求
针对本例,我们增强Avitek,为医生提供在多后端系统中查询的能力,以便确定在某个时间段内得到输血的患者的名单。

为了实现这种新特性,必须使用WebLogic Server 8.1中新的“JMS包装”支持。这种特性能直接从EJB或者servlet中有效地发送或接收JMS消息。WebLogic Server 8.1能够有效的管理JMS连接池,以确保消息能够在门户应用程序和JMS实现程序(或在我们例子中是ESB)之间进行快速路由。下面给出它的工作原理:

无状态的会话bean包含了一个方法,它实现了已被广泛接受的“JMSReplyTo”模式。当客户端(servletJSP等)调用无状态会话bean上的方法时,该方法将请求发布给ESBESB再将请求分发到在配置主题上侦听的服务。这类服务的例子是JMS客户端、Web服务或甚至是与应用程序交互的JCA适配器。

无状态会话bean定义了一种方法,使得客户端可以发送任意字符串请求。在XML中可以对它进行格式化。

public boolean sendRequest(String requestData, ArrayList a) {

JMS对象一旦建立,标准的“JMSReplyTo”模型就用于将请求与“返回地址”一起发布。所有响应都会返回到这个无状态会话bean的实例上(参见清单1)。

最后,这个例子将等待来自ESB上的服务的特定数量的响应,或者直到超时发生为止(参见清单2)。

联合查询:长持续时间请求
对于本例,我们建立在前一个例子的基础上,只是假定来自总线上的服务的响应将以更加不可预知的方式返回。这种模式使门户用户可以浏览到Web 站点的其它区域,同时响应也以异步方式聚合在用户的会话中。用户甚至可以注销,然后重新登录以检查请求的状态(参见图4)。

4

对于本例,消息驱动bean用于异步收集响应,并将其保存在数据库中。另一种情况是本地XML数据库可以派上用场。如果系统用变化中的XML响应信息响应,也许将整个XML响应简单地存储到“无schema”数据库中是最好不过的了。

ESB的一个主要特征是:所有的服务都通过一个“松耦合”的通信接口联系在一起。与本例有关的好处是:新系统可以联机进来,并立即被包括到联合查询中。由于基础机制是“发布—订阅”模式,所以新服务可以简单地订阅相关的主题并从门户接收查询请求。由于ESB允许在部署时动态发现和智能配置驱动的路由(基于内容和基于上下文等),所以可以保证门户不受ESB上的服务变化的影响。

联合查询:实时请求与长持续时间请求的组合。有时候,可能值得在某个时间帧内收集来自总线上不同系统的结果(实时请求),但在初始时间帧过期后以异步方式收集响应(长持续时间请求)。为此,我们引入单独的“通知主题”概念,以便当MDB成功地将响应保存到缓存时,允许无状态会话beanSSB)接收通知。SSB可以使用任意的业务逻辑来决定何时停止等待,允许门户应用程序从缓存中读取数据并将结果显示给用户(参见图5)。

5

小结
虽然BEA WebLogic Platform 8.1是一种能处理多种应用程序方案(包括门户)的强大平台,但也有某些类型的门户集成方案,它们是作为企业服务总线需要的。完全基于标准的基础分布式网络——ESB能够创建敏捷、可互操作及可靠的面向服务网络,以便把企业内外的服务链接在一起。由于今天Web服务标准发展到合并JMS提供程序的许多可用语义,所以ESB实现模块将继续实现标准并创建可互操作的网络,使JMS应用程序能够和Web 服务应用程序对话,反之亦然。同时,ESB将给某些门户和Web应用程序开发者添加重大的价值,他们尝试解决涉及异构系统、地理位置和组织的复杂集成方案。

下一部分中,我们将讨论操作感知、业务活动监控以及集成工作流如何可以给这些应用程序增加附加值。

ESB:你的Web服务网络

到现在,你可能会问,“Web服务怎样?”。Web服务的承诺当然是跨完全不同技术、地域以及组织界限的集成能力。把ESB看作是Web Services的健壮网络。ESB建立在Java Message Service(JMS)基础上,它提供所需的关键特性,以便为相互连接的服务建立可靠、安全、可管理及高度执行的骨干。实际上,在许多可用的Web服务工具包中,ESB的基础骨干已经变成可以识别的SOAP传输。针对新出现的许多Web Services标准,ESB提供了自己的解释与实现,使门户开发人员看不到不同服务间的网络级互操作细节。许多复杂的Web服务主题,比如路由、工作流、事务、单用户注册安全、审计、高级监控和管理,都可以通过ESB基础结构处理。

ESB实现模块:增值服务

如前所述,许多ESB 厂商提供增值服务以帮助建立健壮的集成环境。在“前向缓存”用例环境中,有一些需要考虑的其它问题:

l连通性:JMS中的“J”代表“Java”,这是否意味着所有的系统必须符合Java?当然不是!ESB 充当SOA 环境下的“瑞士”,将完全不同技术集成到普通的可互操作网络。寻找支持本地C/C++实现、MS/.NET、本地HTTP/SOAP支持及更高级别的适配器(JCA或定制)的ESB 实现模块,以自动化集成过程。

l转换:Avitek演示合并了在表示层中嵌入的转换,以便将医疗记录的不同表示转换成Avitek形式。然而,在联合开发环境中,系统某各部分的开发者可以建立到这种XML规范形式的转换。在本例中,将转换重新部署在接近初始点(和开发人员)不是更好吗?寻找在ESB中任何位置都可以配置转换的ESB实现模块。

关于作者:Hub Vandervoort Sonic Software专业服务部门的副总裁。他具有20多年的顾问和高级技术主管的经验,其中涉及网络、通信软件和Internet产业。在以前,Hub与人共同创建了三个创业风险投资公司,其中包括早期的面向消息中间件(MOM)领先厂商Horizon Strategies, Inc.

Matt RotheraSonic Softwarewww.sonicsoftware.com)的见习经理,同客户一起工作,帮助规划、设计和部署实时、面向服务的体系结构。在超过15年的技术工作中,Matt已经同100个客户一起工作,把它们的服务与内部应用程序、商业合作伙伴和企业门户集成。




posted @ 2006-03-09 10:20 hopeshared 阅读(1038) | 评论 (0)编辑 收藏

作者: CWEEK
2006-01-12 06:19 PM

作为近两年软件领域最热门的词汇之一,SOA(面向服务的架构)的概念以及SOA带来的好处,正在被越来越广泛的用户所接受,Gartner的数据就表明,到2007年,全球将有70%以上的大企业会将他们的应用转到SOA。但是目前人们最关心的是,如何才能真正实现基于SOA的应用?是否有具体的产品?IONA公司大中国区总裁薛志勇表示,采用IONA公司的ESB(企业服务总线)产品Artix作为SOA的切入点,将可以使企业以最小的投入将已有系统纳入SOA架构。



薛志勇表示,目前ESB是SOA集成中最普遍采用的方法,最新统计数据显示,在美国有1/3的架构师计划在12个月内部署ESB。传统的EAI和平台厂商是以“服务器”为中心、以“Hub”为形式的解决方案,这种方法虽然解决了信息孤岛问题,但投资大,见效慢,而且也不灵活。而作为SOA的核心和基础架构,未来ESB将扮演着日益重要的角色。ESB是传统中间件技术与XML、Web服务等技术结合的产物,可提供比传统中间件产品更为廉价的解决方案。对企业而言,采用ESB中间件系统作为企业级信息系统整合方案中的中枢技术,可以无须添加任何软硬件设备,就可把过去、现有和未来的IT系统整合在企业级的信息应用框架下,并且能为企业提供实时、大容量的信息通信和实时控制、管理和分配消息传递的能力。目前,除了IONA、Tibco等专业的ESB公司外,SOA的两大领导厂商IBM和BEA也加入了ESB的阵营。

IONA公司是诞生在都柏林三一学院计算机科学系的爱尔兰公司,该公司在两年前就推出了基于Web服务架构的ESB产品——Artix,它是 Web 服务集成产品,该产品能够在复杂的异构环境中起到“中间件的中间件” 的作用。Artix 利用组织中现有中间件的功能将企业级的服务 (包括安全、路由、事务处理、会话管理以及多传送绑定等) 扩展到了基于 Web 服务的集成产品,从而降低了使高度异构企业 IT 环境具有服务功能的复杂程度。Artix 支持各种UNIX操作系统以及大型主机在内的许多平台,支持各种编程语言和图形工具。

目前,在国内包括北京移动、中国网通在内的企业已经或正在部署IONA的Artix,薛志勇表示,经过两年的实践经验表明,Artix已经经过实际环境的考验,可以帮助国内的用户从小规模、少投资做起,使已有系统转向SOA,并且风险小、见效快。另外,为了能让中小企业用户和研发人员有更多的实践机会,IONA还于今年6月发布了开源的ESB产品——Celtix,中小企业用户可以采用Celtix作为切入点去构造SOA,未来可以无缝迁移到Artix架构。薛志勇表示,希望Celtix能为国内的广大开发人员提供SOA实践机会。

IONA公司在2001 年分别在北京和上海设立了办事处,并于 2003 年在中关村上地软件园建立了研发中心。目前,中国已成为 IONA公司发展最快的地区。薛志勇还表示,未来IONA将进一步丰富ESB产品线,使用户得到更多的服务,例如明年第一季度将推出的Artix4.0产品,就将集成Web服务管理、流程管理、注册管理、安全管理等功能。


原文地址:http://www.builder.com.cn/developer/news/story/0,3800066930,39435717,00.htm
posted @ 2006-03-09 10:18 hopeshared 阅读(257) | 评论 (0)编辑 收藏

来源:软件世界 作者:Rick Robinson

  本文将 ESB(企业服务总线) 描述为由中间件技术实现并支持 SOA 的一组基础架构功能。ESB 支持异构环境中的服务、消息,以及基于事件的交互,并且具有适当的服务级别和可管理性。为了达到此目的,需要将多种功能集中起来并加以分类。然而,并不是 ESB 能够传递值的每一种情形都需要所有的功能。

  IBM认为,为了实现 SOA,应用程序和基础架构都必须支持 SOA 原则。启用 SOA 应用程序涉及到创建服务接口,服务接口可以直接也可以间接地通过使用适配器用于现有的或新的功能。从最基本的级别来看,启用该基础架构涉及到规划功能来将服务请求路由和传递给正确的服务提供者。然而,基础架构支持在不影响服务的客户端的情况下由另一个服务实现替代原有的服务实现也是至关重要的。这不仅需要根据 SOA 原则指定服务接口,而且需要基础架构允许客户端代码以独立于所涉及的服务位置和通信协议的方式来调用服务。这样的服务路由和替代是 ESB 的许多功能中的一部分。

  ESB 支持这些服务交互功能,并通过提供集成的通信、消息传递以及事件基础架构来支持这些功能。因此,它将当今正在使用的主要企业集成模式组合成一个实体。ESB 为 SOA 提供与企业需要保持一致的基础架构,从而提供合适的服务级别和可管理性、以及异构环境中的操作。

  本文剩余部分将讨论 ESB 在 SOA 中的角色,包括除了基本的路由和传输以外,它所提供的的功能,如下面的 ESB 功能模型部分中所述。

  ESB 结构ESB 有时被描述为分布式基础架构,这与其他的解决方案形成了对比,比如消息代理技术一般被描述为中心辐射型(hub-and-spoke)。然而,这并不是真正的差别。有两个不同的问题正被研究:控制的集中和基础架构的分布。ESB 和中心辐射型(hub-and-spoke)解决方案都集中控制配置,比如服务交互的路由、服务命名等等。同样,这两个解决方案可能部署在简单的集中式基础架构中,也可能采用更复杂的分布式方式进行部署。

  毫无疑问,不同的技术对它们所支持的物理部署模式有不同的约束--有些可能适合于非常广泛的分布,以支持在很大的地理范围内进行的集成,而其他的可能更适合于部署在本地群集中,以支持高可用性和扩展性。使物理分布需求与候选技术的功能相匹配是 ESB 设计的一个重要方面。另外的一种能力也是非常重要的,就是以增量方式扩展最初的部署来反映不断变化的需求、集成附加的系统或扩展基础架构的物理范围。

  还应该在 SOA 基础架构中 定位ESB 与其他组件之间的关系,特别是与 Service Directory、Business Service Choreography、以及 Business-to-Business (B2B) Gateway 这些组件之间的关系。由于上述 SOA 原则对这些组件并没有严格的要求,所以可以将它们视为可选组件。

  ESB 需要某种形式的服务路由目录(service routing directory)来路由服务请求。然而,SOA 可能还有单独的业务服务目录(business service directory),其最基本的形式可能是设计时(design-time)服务目录,用于在组织的整个开发活动中实现服务的重用。Web 服务远景在业务服务目录和服务路由目录的角色中都放置了一个 UDDI 目录,因而使得可以动态发现和调用服务。这样的目录可以视为 ESB 的一部分;然而,在这样的解决方案变得普遍之前,业务服务目录可能与 ESB 是分离的。

  Business Service Choreographer 的作用是通过若干业务服务来组合业务流程;因此,它将通过 ESB 调用服务,然后再次通过 ESB 将业务流程公开为客户端可用的其他服务。然而,Business Service Choreographer 在编排业务流程和服务中所扮演的角色确定了这种业务工作流技术是一种与基础架构技术 ESB 分离的技术。

  最后,B2B Gateway 组件的作用是使两个或多个组织的服务在受控且安全的方式下对彼此可用。这有助于查看这些连接到 ESB 的组件,但它们并不是 ESB 的一部分。虽然有一些网关技术可以提供适合于实现 B2B Gateway 组件和 ESB 的功能,但是 B2B Gateway 组件的用途是将其与 ESB 分离。事实上,这种用途可能需要附加的功能(如合作伙伴关系管理),这些功能不是 ESB 的一部分,并且不一定受到 ESB 技术的支持。
posted @ 2006-03-09 10:16 hopeshared 阅读(242) | 评论 (0)编辑 收藏

仅列出标题
共30页: First 上一页 18 19 20 21 22 23 24 25 26 下一页 Last