服务组合

服务组合基础

 

1、什么是服务组合

     WEB服务组合是通过组合基本WEB服务提供增值服务的能力,这些基本WEB服务可能由别的组提供。可见,首先,服务组合需要使用其他服务;其次,组合后形成的是一个具有新功能的服务;再次,服务组合使用的基本服务可以是组织外部的。

     SOA和WEB服务能为企业IT体系结构带来互操作性、灵活性和复用性,因此可以用WEB服务来实现过程中的自动活动,比如用银行WEB服务完成预存货款、通知支付货款和转账货款活动;用库存WEB服务完成检查库存和发货活动。这些活动具体可以对应为WEB服务中的操作,而活动的执行就对应WEB服务操作的调用。如下图所示:

 

 

 购货流程

    

       为了表示活动之间的流关系,可以使用控制结构,如顺序、并行、选择等来规范WEB服务操作的调用次序;为了表示活动之间的信息传递(如订单的传递),也可以按一定的格式用数据流或者变量规范。类似于程序设计语言,可以用一种语言规范来规范WEB服务操作的调用以实现业务过程,这种语言就是所谓的服务组合语言,而用该语言定义的实现过程通常称为服务组合规范(specfication),如BPEL。对WEB服务的调用是通过消息交互实现的,因此服务组合语言通常包含"接收消息“和”发送消息“原语。

      服务组合的基本含义:

      a. 服务组合(service composition):服务组合是以特定方式(取决于服务组合语言)按给定应用逻辑将若干服务组合成为一个逻辑整体的方法、过程和技术。

      b. 复合服务(composition service):是通过服务组合产生的逻辑整体,该逻辑整体本身也是一个服务。由于该服务的功能由其他的服务”复合“而成,因此称为复合服务。

      c. 成员服务(component service):为某复合服务提供功能的服务称为该复合服务的成员服务。某复合服务的成员服务本身也可以是由一个其他服务组成的复合服务。

      服务组合的作用:

      a. 通过服务组合可以生产新的增值服务,使系统功能得以灵活扩展。

      b. 复合服务对成员服务操作的调用是服务复用的一种体现,因此服务组合促进了服务的复用。

      c. 服务组合是一种控制复杂性的手段。通过小粒度服务组合成大粒度的、具有业务含义的复合服务,可以使客户仅仅关心复合服务的接口和功能而不用知道复合服务的组成和结构,有效降低了客户使用系统的复杂性。

 

2、服务组合技术

     服务组合作为一种构造SOA应用的技术,包含一系列与SOA应用开发生命周期相关的技术,包括建模、分析、部署、执行、监控、优化等。

     (1)建模技术:建立服务组合模型的技术。服务组合模型类似于业务过程模型,在该阶段,业务过程制定者(通常是业务专家)创建过程的高层模型,该模型通常包括任务和任务的编排、对任务时间和经费开销的估计、任务执行涉及的人员、资源等。如BPMN、UML等建模语言。

     (2)分析和仿真技术:该阶段对服务组合模型的可达性、结构、资源使用、性能等进行定性和定量分析的技术,以及设计业务场景对过程进行仿真测试、发现关键路径和瓶颈的技术。

     (3)编程技术:在该阶段,高层服务组合模型被转换成可执行的服务组合代码,包括:

            - 手工编码技术:完全通过手工完成服务组合编码;

            - 模型驱动的半自动编码技术:通过软件工具由服务组合模型自动产生服务组合代码的框架,然后手工添加必要的成分;

            - 自动编码技术:在服务具备语义信息的前提下,可通过服务组合代理自动产生服务组合代码。 目前BPEL4WS(BPEL)是WEB服务组合编程语言的业界事实标准,其他WEB服务组合编程语言还包括BPML和早期的XLang及WSFL。BPMN规范定义了从BPMN模型到BPEL4WS的自动转换。W3C发布的WEB服务本体语言OWL-S可以为基本WEB服务以及复合WEB服务添加语义信息,从而支持WEB服务的自动组合。

     (4)部署和执行技术:主要指服务组合执行引擎技术,包括服务组合代码在执行引擎上的部署和执行。

     (5)监控技术

     (6)优化技术

 

服务组合建模和BPMN语言

 

      服务组合建模的意义在于在较高的抽象层次对业务问题进行规范和定义,为服务组合编码活动提供设计蓝图。

      服务组合建模的结果是服务组合模型,该模型并不能执行,但却可以分析和验证。

      由于模型比实现代码具有更高的抽象等级,因此更容易理解和修改。

      通过模型驱动的方法,服务组合模型和服务组合代码可以互相自动映射,这对服务组合代码的产生和维护都很有帮助。

      目前较有影响力的服务组合建模语言是由开放标准组织BPMI(Business Process Modeling Initiative)发布的业务过程建模符号BPMN。BPMN1.0规范还详细定义了BPMN到BPML的转换,因此非常适合作为服务组合代码前进行服务组合建模的语言。BPMN是BPMI发布的表示业务过程步骤的规范图形符号。

      BPMN的目标:

     (1)为高层业务用户提供业务过程建模的标准图形表示,用BPMN建立的业务过程模型应该能够被业务人员和技术人员容易阅读和理解;

     (2)为需要交流业务过程的用户、厂商和服务提供者提供描述业务流程的标准方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值