1.1 课题的目的及其意义
互联网的出现和普及使计算机软件所面临的运行环境从封闭、静态、可控逐步走向开放、动态、多变。“云时代”的到来,随着软件应用的成熟,面向服务的软件体系结构SOA(Service-Oriented Architecture)和软件即服务(Software-as-a-service)的思想也开始被业界采用。不同的服务之间如何有效的组合成为越来越重要的问题。在现有的服务组合中,设计人员无法从一开始就能运用最优的组合策略。这就需要在后期根据实际需要对服务组合进行调整和优化。服务组合可以用有向图的方式来表示,而如何优化服务组合,可以转换为对其中特定模式的搜索和优化
1.2 国内外研究现状
2 背景知识的补充及应用
2.1 SOA服务组合的应用以及市场需求
随着移动和通信业务逐渐发展,增值业务市场也有高速的发展趋势,增值市场规模的每一年都在大幅度增长。用户对业务的需求分析也表现出多样化,移动通信运营商在越来越激烈的市场竞争中,利用现有的业务平台及资源,灵活组合,适时推出用户所需的各种新业务,将会极大地增加运营商的市场竞争能力。但是早期的服务组合实现会使用多种不同的语言和技术,并且需要在不同平台和操作系统上进行。因此,各个系统相互孤立,很难进行相互间通信,尤其是内部的信息处理方法差异很大,数据大多出现不一致性,彼此之间在进数据、信息的交换和共享的时非常的困难。现在,[6]随着SOA(service-oriented archITecture,面向服务的架构)技术的出现和快速发展,我们已经可以较好的解决这些问题。SOA架构以服务为基本单元,通过把不同应用封装成统一的Web服务来屏蔽系统间的差异性;以服务作为构建时的基础组件,通过服务组合技术对散列的组件进行组合,从而解决服务间数据的交互和共享,以松耦合的方式实现跨机构的协作业务流程;通过使用服务组合技术(SOA)对业务流程的全过程随时监控管理,得意实现流程的简化以及优化和共享。[7]
.面向服务的体系架构SOA
面向服务的体系架构(SOA)是以服务为基础的组件模型。服务是以封装为特定功能的实体,以业务作为他的核心理念,通过定义优质的接口,来实现约束以及控制彼此间进行的联系。同时,服务必须是可以独立于特定的技术和平台。服务具有可重用性,一个定义良好的服务可以在多个业务流程的组装中使用。也正是因为SOA 中所有应用都是服务,基于SOA 的系统或操作平台可以采用服务组合技术将中立的、单独的、封装已完善的服务组合成新的、更复杂的服务,从而实现数据共享。又因为服务之间的交互是通过标准定义的接口进行的,基于SOA 的系统平台可以屏蔽或者忽略由于编程平台、操作系统以及实现代码的语言不同而造成的差异。[8]
基于SOA 服务的架构以一系列执行业务功能的服务为基础,通过服务的形式来表达企业需要在服务之间最优的使用资源。同时,通过服务的不同组合不仅实现异构环境中的消息、数据的交互和共享,还可以使业务流程变得更加灵活,从而快速,有效地满足生活中不断变化的业务需求。可见,要使搭建的架构灵活多变,就要首先重点服务构建、数据模型和服务编排这三方面采用何种技术来实现。
SOA架构中的服务组合编排模型不仅要满足异构、松耦合的要求,还要是迅速的,因此与Web 服务关联的服务组合技术BPEL (Business Process Execution Lan原guage)以其基于服务、松耦合、高度迅速等特点成为构建SOA 架构的首选服务编排模型。BPEL 的描述文件是WSDL,不仅支持可以Web 服务,也能很好地支持SCA的定义服务。同时,BPEL 规范可以把流程本身展示给Web 服务并且对外提供服务。同时由XML Schema 定义的BPEL 规范可以直接把SDO 定义引入到自己的变量到中,作为其变量进行操作。总之,BPEL 是SOA 服务编排的核心技术,同时也是具体业务流程的体现。 有向图的特定模式搜索和优化(2):http://www.751com.cn/jisuanji/lunwen_40333.html