网络化制造环境下服务匹配与合成问题研究谭伟范玉顺(清华大学自动化系北京100084)摘要:针对网络化制造环境下制造服务的集成需要,提出了基于语义的制造服务匹配、合成及运行框架,该框架关注网络化制造过程的建模、运行、监控、改进等问题。指出服务的匹配与合成算法是网络化制造服务集成运行框架的关键问题。给出了制造服务的形式化定义,基于语义信息,从功能,输入输出参数,服务质量等方面综合考虑,建立了完整的匹配算法框架;服务合成算法基于服务匹配算法,通过建立服务合成的最短路径模型解决服务合成的优化问题。给出了服务匹配与合成算法的应用示例,最后提出了进一步的研究方向。关键词:网络化制造;服务匹配;服务合成;语义网中图分类号:TP391TH164基金项目:国家自然科学基金资助项目(编号:60274046),国家863计划CIMS主题资助项目(编号:2003AA414032)。作者简介:谭伟(1980-),男(汉族),湖南衡阳人,清华大学自动化系博士研究生,主要从事业务过程管理、工作流、Petri网等方面的研究。E-mail:tanwei@mails.tsinghua.edu.cn。0引言网络化制造是在网络经济环境下产生的一种新的制造模式[1],其重要特征是以因特网为支撑,突破地域限制,整合分散的设计、加工、运输等制造相关资源(包括设备、软件、智力资源等),实现企业间协作和优势互补。Web服务(WebService)是实现制造资源封装和共享的重要使能技术,制造资源可以以制造服务的形式提供。建立网络化制造服务流程需要解决两个问题。一是为实现某个功能,需要从大量的制造服务中挑选符合要求的,即服务的匹配。Webservice的UDDI和WSDL协议提供了关于服务的信息,但由于缺乏语义信息而不能被计算机理解,实用性较差。二是需要将多个制造服务按照一定逻辑组成制造流程,即服务的合成。使用传统的流程建模方式,工作流程中的每个活动都分别从大量的制造服务中选择,然后进行连接。面对大量可用的制造服务,合成的工作量很大,而且从大量服务中进行人工挑选具有较大的主观性。为解决制造服务的匹配与合成问题,本文引入了制造服务的语义网,通过为制造服务添加语义标记,服务的匹配与合成可由计算机程序自动完成;该解决方案的优点在于高效性(可以迅速从大量的制造服务中找到可行方案)和有效性(统一的匹配与合成标准,克服了人工对过程建模的主观性)。目前基于语义网的Web服务匹配与合成方面的研究主要集中在以下几个方面。一是基于业务规则或输入输出关系推理的抽象流程建模,这实际上是对用户的流程需求的建模。如文献[2]把电子政务过程的规则分为语义规则、空间规则、时间规则和序列规则等;然后根据用户的目标和偏好,从业务过程的结果开始,“逆推”出一个业务流程。二是抽象的业务对象与具体的服务(如web服务)的匹配。一般基于语义网的具体实现,如描述逻辑[3]、DAML+OIL(DARPAMarkupLanguage+OntologyInterchangeLanguage)[4,5,6]等,从服务的某些特性(如服务的功能描述、输入输出数据)出发研究服务匹配问题。文献[7]将服务匹配级别分为Exact,Plug-in,Subsumption,Container,Part-of,Disjoint等,并使用CriteriaTable来描述服务匹配时用户的具体需求。文献[8]对服务匹配问题做了较为全面的研究。三是服务合成方面。业界已制定了一些基于web服务的流程描述语言,如WSFL(WebServiceFlowLanguage),BPEL4WS(BusinessProcessExecutionLanguageforWebServices)等[9]。学术研究方面,文献[8]对服务合成的考虑仅限于相继的两个活动。文献[10]的工作基于服务本体描述语言OWL-S(OntologyWebLanguageforServices)和BPEL4J(BusinessProcessExecutionLanguageforJava)工作流引擎,将服务合成转化为约束满足问题,并最终转化为整数规划问题,使用Lindo为工具来求解。目前的研究较少地从整个流程的角度来考虑制造服务的合成问题,同时缺乏针对制造服务具体特点的服务匹配与合成的研究,以及对制造服务整体运行框架的研究。基于研究现状,本文提出了网络化制造环境下制造服务的匹配、合成与整体运行框架。并针对服务匹配与合成算法这两个关键问题进行了研究。在建立制造服务语义模型的基础上,从功能、输入/输出参数、服务质量等方面出发建立了服务匹配算法,在此基础上进一步建立了服务合成算法。随后还讨论了需要进一步研究的问题。该集成运行框架基于语义网,但匹配与合成算法本身并不涉及语义网的具体实现细节。1相关技术Web服务是基于XML语言、使用HTTP协议的跨平台的、松散耦合的互调用方式。为实现网络化制造环境下的制造资源集成,各实体应通过WebService的方式封装其拥有的制造资源,供其他实体调用。工作流是实现业务过程管理与自动化的核心技术[11],利用工作流技术对Web服务进行整合,能够将Web服务的开放性与工作流对过程的管理能力结合起来,实现分布式制造资源的过程集成。针对在知识表达和推理方面的缺陷,TimBernersLee提出了语义网(semanticweb)的概念[12],语义网的设计目标是为Web上的各种资源添加语义,进一步建立公共的概念体系(本体),在此基础上添加推理机制,从语义层次上实现网络的互联,服务于智能化的网络应用。图1是语义网的简化层次结构图。数据层使用XML语言表达;资源层提供对网上资源的描述;本体层是语义网的核心所在,本体的构造包括对网络上的资源及其之间的关系的描述,以及在概念基础上建立的公理体系。逻辑层在本体层对知识的描述的基础上加入逻辑推理,其上层是各种智能应用。图1语义网络的简化层次结构图2网络化制造服务集成运行框架为解决网络化制造服务流程从建模、运行到监控、改进等问题,我们建立了网络化制造服务集成运行框架,如图2所示。下面介绍该框架的组成。$$$$$$UDDI参数转换本体库网络化制造抽象过程定义服务匹配与合成过程监控和改进Internet…MS1MS2MSn过程调用计算资源,设计资源,制造资源,物流$$$$$$UDDI参数转换本体库网络化制造抽象过程定义服务匹配与合成过程监控和改进过程监控和改进Internet…MS1MS2MSn过程调用计算资源,设计资源,制造资源,物流Internet…MS1MS2MSn过程调用计算资源,设计资源,制造资源,物流图2网络化制造服务集成运行框架据需求建立e)按照一定的逻辑关系(顺序、选择、循环)组合质量参数等。来衡量AS与MS的匹配程段要为每个AS选择多个匹配的MS的[4]联系,并为web服务提供了丰富的语义。这部,需要对过程的执行进行监控,功能包括过程运行中的事务和异常处理、过程安全机制、服务计费等。3关运行框架的关键问题,本节首先给出制造服务的形式化定义,在此基础上对匹配与合成算法进行讨论。1)网络化制造抽象过程(记为AP,abstractprocess)定义。网络化制造环境中的某实体根一个抽象的制造流程,该流程将调用一系列的制造服务资源。这个阶段需要完成以下工作:◇一个AP由一些抽象服务(记为AS,abstractservic而成。需要定义这些服务以及它们之间的逻辑关系。◇使用统一的本体库,为每个AS配置功能描述,输入输出数据、服务2)服务匹配与合成。这部分实际上包含服务匹配与合成两个阶段。◇服务匹配。根据AS的定义,按照预先设定的匹配算法,从语义UDDI中众多的制造服务(MS,manufacturingservice)中搜寻与抽象服务(AS)相匹配的。由于网络化制造环境的分布、异构特性,期待AS与MS完全一致是不现实的,基于语义的匹配算法使用匹配度(compatibility)度,按照对AS的匹配度选择一定数量的MS并进行排序,供用户进一步选择。◇服务合成。在服务合成阶段,基于服务匹配的结果,利用工作流将MS连接起来形成完整的制造流程。在服务匹配阶段已经为AP中的每个AS选择了一定数量的潜在匹配者,合成阶段要为每个AS选择最合适的MS,将这些MS连接成一个制造流程MP(manufacturingprocess)。由于MS之间同样存在匹配问题,因此对某个AS具有最高匹配程度的MS不一定具有全局最优性,这就是我们在第一阶原因。简言之,服务合成就是要从全局优化的角度来进行过程建模。为实现服务的匹配与合成,需要引入基于语义网的服务描述。可以使用DAML+OIL框架构建制造服务本体库,并可进一步利用DAML-S(DARPAMarkupLanguageforServices)对具体的制造服务进行描述,构成语义UDDI。DAML-S是web服务的语义描述语言,它与DAML+OIL紧密分还包括参数转换模块,完成MS与AS之间的参数转换工作。4)过程调用及过程监控和改进。网络化制造服务流程在一个跨组织、跨地域、跨平台的环境下运行键问题:服务匹配与合成算法服务的匹配与合成算法是网络化制造服务集成3.1制造服务的形式化定义定义1:MS=(Name,Description,Inputs,Outputs,QoS,Add-in)其中各个符号的含义为:Name:服务名称;Description:服务描述Inputs={i1,i2,…im}为输入数据集;Outputs={o1,o2,…om}为输出数据集;QoS为服务质量参数;Add-in为其他可选参数(如服务可用距离等)。一个简单例子:MS1(‘自行车设计’,‘根据客户订单和设计约束进行自行车设计’,{客户订单,零配件库存,设计参考模型},{工程设计图纸},{72小时,10000元},{})AS的定义与其完全一致。六元组的具体命名应基于统一的制造本体库。3.2服务匹配算法下面给出基于语义的抽象服务AS与制造服务MS的匹配算法。该算法从功能、I/O参数、QoS以及其他参数等多个方面考察服务匹配问题,用户可以对各方面的匹配程度做综合考虑。应该指出的是,除I/O参数匹配算法以外,其他的匹配算法都只给出了一个框架,算法实现要基于具体的应用。功能匹配功能匹配是指基于服务名称和服务描述的匹配,AS与MS服务名称与服务描述的具体特点决定了使用的具体匹配算法。一般使用字符串匹配或自然语言理解的方法进行,文献[7]对此问题有详细的讨论。功能匹配算法给出AS与MS的功能匹配程度f_comp。I/O参数匹配算法1功能:从AS的输入中,为MS的每个输入找到最匹配的一个;从MS的输出中,为AS的每个输出找到最匹配的一个。从而使MS的每个输入参数都得到最佳匹配,AS的每个输出参数都得到最佳匹配。算法1的伪码如下:ForeachinFindinuchthatmaximizeEndforForeachinFindini_comp=o_comp=1i_mMS.Inputsi_aAS.Inputsscompatibility(i_m,i_a)i_comp=i_compcompatibility(i_m,i_a)o_aAS.Outputso_mMS.Outputs•thatmaximizeEndforcompatibility(o_a,o_m)o_comp=o_compcompatibility(o_a,o_m)io_comp=(i_comp,o_comp)•∏∏算子对两个参数进行加权,可以是乘积或取较小值其中:[]1221211n121212121121cc1ccccd(c,c)compatibility(c,c)=p(c)p(c)ccp(c)cc⎧⎪⎪⎪⎪⎨⎪∩⎪⎪⎪⎩等价于是的子概念或包含是的子概念或与不存在继承关系d(c1,c2)为概念c1,c2间的距离,即c1,c2在树型概念结构中相隔的层数;加权参数n∈[1,∞];p(c)为概念c的属性集合,∣p(c)∣表示该集合所含元素的个数;compatibility(c1,c2)∈[