服务业务模型由业务模型发展而来,是连接不同服务间的桥梁和纽带,可根据用户或应用的需求,选择、集成合适的服务来满足这些需求。近年来,Web服务标准的完善和支持Web服务的企业级软件和平台的成熟,特别是面向服务的架构(SOA)等概念的兴起和应用,推动着越来越多的企业和组织参与到软件即服务(SaaS)中的行列,纷纷将它们的业务组件和功能包装成标准的Web服务发布出去,实现快速的伙伴合作、潜在客户的挖掘和业务增值的目的。但是,现在网络上发布的服务大都结构较简单、功能较单一,从而,导致无法满足企业和组织的复杂应用需要。人们常常需要组合多个Web服务以完成一个较复杂的任务,这就是Web服务的组合问题。Web服务组合就是通过组合基本的Web服务来为用户提供增值服务,按照一定的业务逻辑来构建服务的执行流程,完成服务的集成,从而,更好地满足企业和用户的复杂应用需求。Web服务组合的本质就是若干Web服务协调工作,从而灵活实现服务业务模型,屏蔽底层信息基础设施的变迁。一个典型的服务业务模型(即服务组合结构图),见图。
由上图所示,服务业务模型描述的是用户需求的一种业务实现过程,它由许多的业务操作实现活动,按照一定的控制结构(包括顺序、选择、循环、合并和任意顺序共五种结构)复合而成。实际上,每一个业务操作活动可以看成是一个独立的逻辑服务(功能相同或相近的、而服务质量不同的一组个体Web服务实例的抽象描述)。因此,基于各类逻辑服务及其控制结构,能够形成抽象层面上的、完成服务组合功能的服务业务模型。
在服务业务模型中,Web服务组合的实现方式通常包括两种:静态组合和动态组合。其中,静态组合是指在开发设计过程中就决定Web服务之间的控制流和数据流。基于服务在设计阶段已经被组合并且在执行过程中都不会改变的假设,在组合服务定义过程中将组合Web服务与完成业务功能的单个Web服务静态绑定,将Web服务提供者的地址、接口等信息直接记录在组合服务定义中。这种情形适合于固定合作伙伴间的交互,合作双方事先已建立一定的协议,可进行长期稳定的合作,服务提供者保证服务时刻可用,且服务接口不发生变化。动态组合是指在系统运行过程中自动产生Web服务之间的控制流和数据流。服务的组合过程实现全自动化,根据用户提出的需求,代理能够分析、查找所需要的Web服务,并进行自动组合、调用和执行,完全没有了人的参与。全自动服务组合需建立在对Web服务进行充分的语义描述基础上进行。
对服务业务的分析建模需要从多个方面建立能够准确反映业务服务本质特征的模型,支持业务服务的静态描述和动态运行,并具有较强的可扩展性。其中,业务流程执行语言(Business Process Execution Language; BPEL)是一种使用XML编写的编程语言,用于自动化业务流程,也曾经被称作WSBPEL和BPEL4WS,是由IBM、Microsoft和BEA于2002年7月联合推出的。它具有编写可执行服务组合过程(明确定义业务过程的方方面面,可由服务编排引擎执行)以及定义服务协作协议(定义各方之间的公开信息交换,不涉及业务过程的内部执行,不可执行)的双重功能。BPEL获得了产业界的普遍支持,存在大量的BPEL开发工具以及执行引擎,例如开放源代码的Active BPEL和Oracle公司的Oracle BPEL Process Manager,这些都使得BPEL成为事实上的业务过程定义语言标准。其他的业务服务建模编程语言还包括BPML、WS-CDL等。