语义Web服务发现组合方法研究及在医疗服务集成中的应用

语义Web服务发现组合方法研究及在医疗服务集成中的应用

ID:37389302

大小:5.05 MB

页数:82页

时间:2019-05-23

上传者:U-145848
语义Web服务发现组合方法研究及在医疗服务集成中的应用_第1页
语义Web服务发现组合方法研究及在医疗服务集成中的应用_第2页
语义Web服务发现组合方法研究及在医疗服务集成中的应用_第3页
语义Web服务发现组合方法研究及在医疗服务集成中的应用_第4页
语义Web服务发现组合方法研究及在医疗服务集成中的应用_第5页
资源描述:

《语义Web服务发现组合方法研究及在医疗服务集成中的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

浙江工业大学硕士学位论文语义Web服务发现和组合方法的研究及在医疗服务集成中的应用作者姓名:余晖指导教师I范菁教授、熊丽荣副教授浙江工业大学计算机科学与技术学院2013年04月 DissertationSubmittedtoZhejiangUniversityofTechnologyfortheDegreeofMasterResearchonMethodofSemanticbased孵匆bServiceDiscoveryandCompositionanditsApplicationinMedicalServiceIntegrationCandidate:Y_uHuiAdvisor:Prof.FanJingAssociateProf.XiongLirongCollegeofComputerScienceandTechnologyZhejiangUniversityofTechnologyApr2013 浙江工业大学学位论文原创性声明本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工作所取得的研究成果。除文中已经加以标注引用的内容外,本论文不包含其他个人或集体已经发表或撰写过的研究成果,也不含为获得浙江工业大学或其它教育机构的学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人承担本声明的法律责任。作者签名:后0填日期:如哆年亨月列日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权浙江工业大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密口,在年解密后适用本授权书。,2、不保密吼(请在以上相应方框内打“√”)黧镛导师签名:确日期:hl弓年t-月叫日日期:码年萝月叫曰 浙江工业大学硕士学位论文语义Web服务发现与组合方法研究及在医疗服务集成中的应用摘要Web服务由于其互操作性和重用性,成为了面向服务的体系架构(SOA)的核心支撑技术。如何利用数量众多的Web服务组建松散耦合的企业应用系统,以满足不断变化的业务需求,己成为一个研究热点。目前,Web服务组合的研究主要有两个分支:业务流程驱动的Web服务组合和语义驱动的Web服务组合。业务流程驱动的服务组合以工作流技术为基础,实现方便,但存在着灵活性和动态性不足的问题。语义驱动的服务组合强调Web服务自描述的特性,通过为Web服务添加语义信息,使组合方案通过AI规划等方式自动生成,组合过程无需人工参与,灵活性大大提高,但存在着组合服务可用性不足的缺点。本文针对医疗服务集成领域,围绕着语义Web服务组合架构、服务匹配与选取、抽象服务的自动合成等内容进行研究。主要工作包含以下几个方面:第一:分析了以医疗领域为代表的企业级服务集成领域需求特点,针对传统业务流程驱动的服务组合方法不适应企业业务流程变化需求以及复杂多变的网络环境的情况,采用一种新的半自动的组合方法,在基于业务流程驱动的服务组合方法的基础上,用抽象服务描述流程中动态的部分,然后在服务执行阶段采用基于语义的服务组合方法自动合成抽象服务所需服务。第二:针对服务执行阶段服务发现和选取的问题,综合考虑了基于逻辑的两种语义web服务匹配模式,采用混合式的匹配算法来进行服务发现,以获取满足抽象服务功能性需求的w曲服务集合:在获取可用的服务集合后,采用基于QoS的服务选取算法来选择满足抽象服务非功能性需求的Web服务。第三:在服务执行阶段,当单个Web服务无法满足抽象服务需求时,通常采用抽象服务的自动合成来获取组合Web服务来满足需求。本文提出一种基于语义回溯树的Web服务组合方法来合成组合服务。该方法采用语义绑定矩阵来存储Web服务以及它们之间的语义关联,然后根据抽象服务节点的需求生成语义回溯树集合,最后选取生成路径并合成组合Web服务。i 浙江工业大学硕士学位论文第四:在以上关键技术和设计的研究基础上,实现了业务流程驱动的半自动语义Web服务组合框架的主要模块,并针对医疗领域服务集成的问题,采用该组合框架实现患者就医的完整流程,并验证了组合服务系统的健壮性和灵活性。关键词:语义Web服务,业务流程驱动,服务发现,服务组合,QoS,医疗服务集成 浙江工业大学硕士学位论文ResearchonMethodofSemanticbasedf饴bServiceDiscoveryandCompositionanditsApplicationinMedicalServiceIntegrationABSTRACTBecauseofitsinteroperabilityandreusability,webservicehasbecomethecoresupporttechnologyofServiceOrientedArchitecture.Inordertodealwitllchangeablebusiness.howtoutilizenumerouswebservicestobuildloosely—coupledapplicationshasbecomearesearchhotspot.CurrentresearchesonwebservicecompositionproblemCanbedividedintotwodirections:processdrivenwebservicecompositionandsemanticdrivenwebservicecomposition.Basedonworkflowtechniques,processdrivenwebservicecompositionmethodhastheadvantageofconvenientimplementationbutlackofflexibilityanddynamiccharacteristic.Semanticdrivenwebservicecompositionfocusesonwebservice’Sself-descriptioncharacteristic,byaddingsemanticstowebservicesautomaticallygeneratesthecompositeservicethroughAIplanningetctechniques.Comparingwithprocessdrivenmethods,thesemanticdrivenmethodsimprovetheflexibilitybutcannotguaranteetheavailability.Aimingattheenterpriseapplicationintegrationofmedicalservicedomain,thisthesismainlyresearchesthearchitectureofsemanticwebservicecomposition,servicematchmakingandselectionmechanism,automaticservicecompositionproblemsetc.,detailedasfollows:(1)Basedonthecharacteristicanalysisofenterpriseserviceintegrationdomain,aimingathowtosolvethedynamicadaptabilityproblemwhenthetraditionalprocessdrivenservicecompositionmethodfacestheflexibleandmutablebusinessprocessincomplexnetworkenvironment,thisthesisproposesanewsemi-automaticservicecompositionmethodwhichdescribesthedynamicsub-processwithabstractservice,andreplacesitduringtheruntimeusingsemanticservicecompositionmethod.(2)Aimingattheproblemofservicediscoveryandselectionattheserviceruntime,thisthesisdiscussestwokindsoflogic—basedsemanticwebservicematchmakingschemeandproposesahybridmatchmakingalgorithmmeetstheabstractservice’Sfunctionalrequirement.AndaQoS—basedserviceselectionalgorithmisproposedtomeettheabstractservice's111 浙江工业大学硕士学位论文non—functionalrequirement.(3)Whenthereisnosinglewebservicecallmeettherequirementofabstractserviceduringtheruntime,thisthesisproposesasemantic—backwardtreebasedwebservicecompositionalgorithm.Firstly,thealgorithmusesasemanticbindingmatrixtosavethesemanticrelationsbetweenwebservices,thengeneratesthesemantic—backwardtreesaccordingtotheabstractservice,andfinallyselectsandcomposeswebservicebasedontheservice’SQoSprofile.(4)Basedonthemethodsandtechniquesmentionedabove,thisthesisdesignsandimplementstheframeworkofasemi—automaticwebservicecomposition.Andacompletemedicaltreatmentprocessisshowninthisframeworkwhichtestsandverifiestherobustnessandflexibilityofthecomposedsystemaswell.KeyWords:semanticwebservice,processdriven,servicediscovery,servicecomposition,QoS,medicalserviceintegration 浙江工业大学硕士学位论文目录摘要⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..i第1章绪论⋯.1.1研究背景⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.11.2研究意义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.21.3国内外研究现状⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.21-3.1Web服务发现的研究现状⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.21.3.2Web服务组合的研究现状⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯41.4本文的研究目标和内容⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.61.4.1研究目标⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯61.4.2研究内容⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.71.5论文组织结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.8第2章web服务组合相关技术⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯92.1Web服务⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯.⋯..92.1。1Web服务定义和基本特征⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.92.1.2Web服务的体系结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯92.1.3Web服务技术架构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..112.2语义Web服务⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯~112.2.1OWL-S⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯1:12.2.2WSMOPⅣSML⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.132.2.3SWSo/SWSL⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.142.2.4SAⅣSDL⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯142.3Web服务组合概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯152.3.1Web服务组合的定义与特点⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯152.3.2Web服务组合研究框架⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一162.3.3Web服务组合相关项目⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..172.4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯19第3章业务流程驱动的半自动语义web服务组合方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.203.1半自动w曲服务组合方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯203.2形式化定义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯223.2.1Web服务类型⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.+223.2.2组合流程的定义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯233.3业务流程驱动的半自动语义Web服务组合框架⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.253.3.1半自动组合总体框架⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯253.3.2执行引擎机制详细分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯273.4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯29第4章语义、№b服务的发现和选取⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.304.1语义Web服务的发现与匹配⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..30 浙江工业大学硕士学位论文4.1.i概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一4.1.2本体概念相似度计算⋯⋯⋯⋯⋯⋯⋯.4.1.3语义Web服务的匹配算法⋯⋯⋯⋯⋯4.2基于QoS的W曲服务选取⋯⋯⋯⋯一30324.2.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4.2.2QoS模型和管理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.^⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯364.2.3单个Web服务的QoS选取⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯384.2-4组合Web服务的Qos选取⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯394.3本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4l第5章基于语义回溯树的抽象web服务自动合成⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..425.1语义绑定矩阵⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯425.1.i语义数据绑定⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一425.1.2语义绑定矩阵⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.435.2语义回溯树⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4J45.3基于语义回溯树的服务自动组合算法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯465.3.1语义绑定矩阵的生成与维护⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯465.3.2语义回溯树的自动生成⋯,,.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一485.3.3合成QoS最佳的组合服务⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一505.4本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯52第6章医疗领域的服务集成案例⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.536.1半自动语义Web服务组合框架的设计与实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一536.1.1开发工具和环境⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.536.2.2系统设计与实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯546.2医疗领域的服务集成实例⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯586.2.1医疗流程描述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..586.2.2流程实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..596.2,3流程的动态性和容错性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯636-3本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯65第7章总结与展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯667.I总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯667.2展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯66参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.68舅C谢⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。72攻读学位期间参加的科研项目和成果⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯73 浙江工业大学硕士学位论文1.1研究背景第1章绪论随着企业信息技术的不断发展与医疗信息化的不断深入,医疗领域所使用的软件系统越来越多,如HIS(HospitalInformationSystem,医院信息系统)、PACS(PictureArchivingandCommunicationsSystem,图像存档与通信系统)、CIS(ClinicaIInformationSystem,临床信息系统)和RIS(RadiationInformationSystem,放射科信息系统)等。由于这些系统通常由不同的IT厂商开发,基于不同的软硬件平台,从底层技术到数据模型,以及业务流程和数据字典都存在着广泛的异构性,导致信息孤岛现象越来越严重【l】。如何充分集成这些软件系统,实现对业务调整和需求变更的迅速响应,成为了工业界和学术界研究的热点。面向服务的架构(Service—OrientedArchitecture,SOA)给传统的软件开发带来革命性的变化。复用已有的服务,在已有服务的基础上形成分布式、松散耦合的软件系统是SOA的核心理念。而在企业级应用开发领域,传统的一次开发、持续使用的方式已经过时,应用SOA架构解决不断变化的业务需求己成为新的软件开发方式。SOA的核心思想是以服务为基本单位,通过服务重用和快速组合构建随需应变的松散耦合分布式应用系统。而Web服务技术的不断成熟和发展为实施SOA提供了最佳支撑技术。Web服务是SOA中所强调的服务概念的一种具体表现形式和功能载体,它是一种基于Web环境的具有自适应、自描述、模块化并且良好互操作能力的应用程序。Web服务的最大优点在于互操作性和重用性,其互操作能力使得Web服务成为一种用于异构系统无缝集成的粘合剂,而重用性使得w曲服务成为软件服务化的最佳载体【21。单个w曲服务功能通常比较简单,无法满足复杂业务流程的需求,因此需要将Web服务组合起来以提供更为强大的功能。Web服务组合技术的研究受到了工业界和学术界的广泛重视,各个研究者从自身领域出发,得到了许多研究成果。目前,Web服务组合方法的研究有两个分支‘3】:流程驱动的Web服务组合和语义驱动的w曲服务组合。流程驱动的Web组合以工作流技术为基础,使用较为成熟的流程建模工具和语言对业务流程进行建模。流程驱动的Web服务因其稳1 浙江工业大学硕士学位论文定、可靠的优点而广受工业界欢迎,但其大多基于固定流程,即便采取了动态服务绑定等方式,在面对业务流程发生变化时仍需重新定义流程。对于企业应用而言,其核心业务流程很少发生变化,经常变更的只是局部子流程,但局部流程的变更导致整个流程的重新定义与部署是对资源的极大浪费。语义驱动的服务组合强调Web服务自描述的特性,通过为Web服务添加语义信息,使组合方案通过AI规划等方式自动生成,组合过程无需人工参与,灵活性大大提高,但存在着组合服务可用性不足的缺点。为创建具有较好适应性的服务组合业务流程,同时满足企业级应用可靠性需求,本论文以浙江省重点创新团队项目为背景,提出一种业务流程驱动的半自动化语义web服务组合框架。在业务流程驱动的服务组合基础上引入局部的自动服务组合,即用基于语义描述的抽象服务定义局部的动态子流程。在组合流程执行阶段,通过基于语义回溯树的服务自动组合方法生成组合服务替换抽象服务。并提出一种可配置的组合流程QoS计算方法,以解决当存在多个组合服务满足需求时的服务选取问题。该框架保证流程整体正确可靠,在满足商业需求的基础上大大提高其动态能力,具有一定的实用价值。SOA已经在医疗、电信、电子政务、交通、金融等领域得到了广泛的重视与应用。在医疗卫生领域,医疗信息化经过了近20年的发展,取得了巨大的进步,大部分医院都建立了医疗信息系统;但是由于医疗信息和医院业务的复杂性,医疗领域的SOA实施与其他行业相比较为落后。随着医疗改革的不断深入,区域协同医疗甚至跨区域协同医疗的需求愈发强烈,对集成的需求也与日俱增。本文的研究意义在于:第一,面向企业服务集成领域,来研究业务流程驱动的语义Web服务发现和组合方法,并针对医疗领域给出应用案例,具有一定的理论意义和实用价值。第二,采用基于语义的方式实现服务的集成需求,可以提高和改善已有系统的灵活性和动态性,缩短软件研发周期,提高软件的可维护性。1.3.1Web服务发现的研究现状Web服务发现是Web服务组合的基础和前提。目前,Web服务发现主要有三个研究内容:服务发现模式的研究、服务发现方法的研究以及服务发现性能的研究。(1)Web服务发现模式研究2 浙江工业大学硕士学位论文Web服务发现模式主要分成集中式和非集中式两种。集中式的发现模式主要以UDDI为典型代表,服务信息被集中存储在服务注册中心中。该模式实现简单,但存在着服务器负载大、稳定性低的缺点。非集中式主要以P2P模式为主。与UDDI集中式的管理不同,在该模式下,Web服务作为一个节点置于一个对等网络中。在Web服务发现阶段,服务请求者向其相邻的节点发送请求以进行W曲服务的查询。文献[4】提出一种双层的P2P架构,将基于Intemet的虚拟计算环境的概念集成到P2P模型中,并基于该模型提出一种两阶段三步骤的服务发现算法;文献【5】提出一种基于P2P网络的语义Web服务发现系统SNet,该系统利用S虹pGraph来构造一个P2Povedaynetwork来完成语义Web服务的发现。(2)Web服务发现方法的研究Web服务发现方法主要有基于语法和基于语义的两种。传统的基于语法的发现主要是通过关键词的匹配方式,发现效果差。文献[6】[7]提出基于向量空间模型的检索方法,采用词向量来表示Web服务描述文档,并计算广告服务向量与查询向量之问的相似度来实现服务的匹配,但这类方法和文本检索没有本质的区别。基于语义的服务发现方法分成基于逻辑推理的发现方法、基于非逻辑推理的发现方法以及混合式的发现方法。基于逻辑推理的发现方法主要是根据Web服务语义标注的逻辑关系来决定语义Web服务之间的语义关系。文献[8]最早提出语义Web服务发现中逻辑匹配的定义,成为众多语义Web服务发现方法的研究基础,一些研究人员在该文基础上,提出了一些新的匹配等级,如文献[9】提出了交叉满足度(IntersectionSatisfiable)。针对Web服务中模糊、不精确的概念问题,文献[10]利用模糊描述逻辑(FuzzyDL)来对这类概念进行描述,然后进行近似的推理。非逻辑的匹配方法主要采用文本相似度、结构化的XML/RDF查询、path—length—based的等相似度计算方法,如文献[11]提出一种基于语义概念距离的服务匹配方法。不同的匹配模式具有其自身的优势和不足,为了整合多种匹配模式的优势,一些研究者采用了混合匹配的模式。文献【12】[14】提出基于逻辑推理+文本相似度的混合匹配策略;文献【15]提出一种基于SAWSDL的可定制的匹配方法,用户可以根据不同的场景需求,选择不同的匹配策略。(3)Web服务发现性能的研究在改善服务发现性能方面,主要是通过服务分类等预处理的方式过滤掉不符合用户需求的服务,然后在一个更小范围的服务子集上查询以提高发现效率。文献[16]考虑到本体的扩展性,当本体变得越来越复杂时,基于描述逻辑的推理是一个沉重的任务,因此通过两次SPARQL查询来过滤不满足用户功能、非功能性需求的服务,减少了搜索空间。文献【17]提出一种基于语义服务聚类(SemanticWebServicesClustering,swsc)的发现方法,提高 浙江工业大学硕士学位论文了发现性能。文献[18】提出一个基于服务聚类的概念位置向量模_型(ConceptPositionVectorModel)来避免不相干的搜索。1-3.2W如服务组合的研究现状Web服务组合领域产生了很多研究成果,已有学者对其进行了综述【3】【19】【20][2l】。目前Web服务组合方法的研究主要有两个方向【3]:业务流程驱动的Web服务组合和语义驱动的Web服务组合。前者从业务流程建模的角度出发,首先建立抽象的、不可执行的组合流程,然后通过服务的发现和选取找到符合抽象服务节点需求的具体web服务并绑定;语义驱动的Web服务组合从语义网的角度出发,强调Web服务的自描述和语义,通过语义Web服务匹配机制寻找服务接口之间的“语义连接性”,通过AI规划等方式自动生成组合方案。前者是“自顶向下”的组合方式,后者是“自底向上”的组合方式。(1)业务流程驱动的服务组合业务流程驱动的服务组合主要以工作流技术为基础。工作流是在计算机的辅助下,根据一组程序化的规则,将文件、信息和任务从一个参与者传递到另一个参与者,从而使业务流程部分或者全部地自动化【221。工作流技术经过多年的发展,从理论到应用都非常成熟,己被广泛地应用到业务流程管理(BusmessProcessManagement,BPM)、企业应用集成(EnterpriseApplicationIntegration,EAI)等领域。因此,业务流程驱动的服务组合方法被工业界广泛接受,也易于部署到现有的业务系统中。业务流程驱动的服务组合从具体的业务场景出发,用成熟的建模语言和工具对业务流程进行建模,通过为流程中的每一个节点选取并绑定Web服务来实现组合服务。现有的成熟的商业过程建模语言主要有BPEL[231、XLANGl241、WSFL[251、BPMLl26】和WSCLl271。BPEL(BusinessProcessExecutionLanguageforWebServices,商业过程执行语言),是2002年由IBM的WSFL(WebServiceFlowLanguage)和微软的XLANG两种语言合并而成,又称BPEL4WS。BPEL兼具WSFL和XLANG两者的优点,比其他过程建模语言更具表达性。BPEL通过服务调用、操作数据、抛出故障等将不同的活动连接起来,从而创造出复杂流程。以BPEL为代表的传统的业务流程驱动的服务组合间的交互与执行完全受控于业务流程,运行时无法动态修改流程,导致灵活性和动态性不足,因此许多学者提出了改进方法。惠普实验型28]㈣提出了一种基于模板的服务组合,将流程中的某些节点定义服务模板,在流程执行前利用服务发现技术将模板替换成具体的Web服务。文献[30]提出一种柔性工作流的服务组合方法,将不确定子流程用“黑盒”表示,在流程执行阶段用基于规则的组合4 浙江工业大学硕士学位论文方法替换“黑盒”执行,该方法具有良好的灵活性,但未考虑规则可能存在冲突的问题。针对工作流建模灵活性不足、易于出错的问题,文献[311提出一种工作流服务组合框架,引入人工智能规划方法生成组合流程,然后将服务选择问题表示成约束满足问题(ConstraintSatisfactionProblem,csp)解决。文献[32】提出一种结合AI规划和工作流的动态服务组合方法,有效克服了采用单种方法所造成的不足。可见将Web服务语义化,引入AI规划等方法以解决灵活性不足的问题是业务流程驱动的服务组合研究的趋势。(2)语义驱动的w曲服务组合语义驱动的web服务组合强调Web服务自描述的特性,用OWL.S等本体论形式化的语言对Web服务进行标注,将Web服务当作是人工智能中的动作,然后通过AI规划等方式来获取组合方案。这一类的服务组合方法包括:情景演算、层次任务网、规则等。斯坦福大学的Mcllraith等人[331【341对情景演算语言Golog进行了扩展,通过提供可复用的高层次过程以及自定义约束来实现服务的自动组合。在该类方法中,Web服务被视为情景演算的原子动作或复杂动作,将用户的输入视为初始情景,用户的需求视为目标情景,然后通过Golog语言获取将初始情景转化为目标情景的演绎过程。马里兰大学的E.Sirin等人【35]提出了基于层次任务网(HierarchicalTaskNetwork,HVN)的规划器SHOP2来实现服务的自动组合。在HTN规划中,任务分解的概念和服务组合流程的分解相似,该方法将用户的任务不断分解成子任务,直到被子任务能被单个Web服务所完成为止。在每一次的任务分解中,SHOP2都会检查当前的分解是否满足约束条件,若满足则规划问题成功得解。文献[36]认为OWL-S与智能规划标准语言PDDL(PlanningDomainDefinitionLanguage)具备相似性,提出一种组合方法将OWL—S转化成PDDL,然后通过PDDL规划器求解即可实现服务的自动组合。斯坦福大学SWIG研究小组提出一种基于规则的服务组合规划工具SWORD[371。在SWORD中,每个Web服务被表示成从服务的前提条件到执行效果的一条规则,然后使用Jess规则引擎确认该服务组合是否可以由已有的服务规则实现,若是则产生该服务组合的规划方案。Narayanan[381将服务组合问题描述为Petri网的可达性分析问题,用库所(Place)表示状态,用变迁(Transition)表示W曲服务,服务的请求被描述成Petri网的一个库所,然后服务组合问题即被转化为该库所的可达性问题。由于描述逻辑(DescriptionLogic)在语义Web中具有基础地位,文献[391用DL的概念包含公式来描述将Web服务的功能,将服务组合问题表示为DL的满足性验证问题,从而用5 浙江工业大学硕士学位论文标准的DL推理技术Tableaux算法即可实现服务组合。图1-1问题状态空间中的搜索由于人工智能中AI规划问题可以表示为问题状态空间中从起始状态到目标状态的图搜索问题【40】,如图1.1所示,因此图搜索技术也可用于解决Web服务组合问题。例如文献[5】根据服务的输入输出构造服务依赖关系图,提出一种图搜索算法进行服务合成,但该方法搜索复杂度较高,且获得的组合方案不能保证全局最优。文献[13】提出一种基于完备回溯树的服务自动组合方法,属于图搜索范畴,通过建立完备回溯树的方式以获取有效生存路径,最后将路径合成为组合服务,但该方法缺乏对Web服务的语义描述,导致服务组合成功率降低。与业务流程驱动的服务组合方法相比较,语义驱动的方法是完全自动的、自底向上的组合方式,其优点是可以根据用户需求即时地构造服务,灵活性和动态性都比较好。但是,语义驱动的服务组合有着可用性不足的缺点,即其提供的组合方案不一定满足具体业务的需求。1.4本文的研究目标和内容1.4.1研究目标针对医疗领域服务集成的特点,在分析国内外w曲服务发现和组合方法相关研究的基础上,开展利用Web服务组合技术实现医疗领域服务集成的研究,在保证集成系统的可用性的同时满足一定的扩展性、动态性需求。在实现该服务集成的过程中,考虑业务流程驱动的服务组合方法的不足,研究利用运行时的动态服务发现和自动组合技术来达到系统的可扩展性和动态性目标,并使其具有面对复杂网络环境时的容错机制。 浙江工业大学硕士学位论文1.4.2研究内容本文从医疗服务集成领域出发,围绕着服务组合建模和执行阶段关于语义Web服务的发现、基于QoS的Web服务选取以及抽象服务的自动合成等内容进行研究。主要内容包括以下四个方面:(1)业务流程驱动的半自动语义Web服务组合方法在以医疗领域为代表的企业级服务集成领域中,全局主干流程很少发生变化,而局部子流程经常发生变化。针对传统业务流程驱动的Web服务组合方法不适应企业业务流程变化需求以及复杂多变的网络环境的情况,本文设计了一种业务流程驱动的语义Web服务组合方法。该方法基于分治策略,将全局流程用业务流程驱动的方式建模,局部动态子流程则采用抽象服务描述,并在服务执行阶段首先采用基于语义的服务发现算法进行服务发现;当不存在单个服务能满足抽象服务需求时,则采用基于语义的Web服务自动组合算法合成组合服务;当由于网络环境的变化导致Web服务执行错误时,则通过服务的发现和组合来替换原有的Web服务,使得组合流程具有一定的容错能力。(2)语义web服务的发现和选取方法提出语义的Web服务发现和选取方法,以满足抽象服务的功能性和非功能性需求。本文首先分析了基于逻辑推理的两种语义Web服务匹配模式,提出一种混合式的语义Web服务匹配模式以综合两种匹配模式的优点,并提出了基于该匹配模式的语义Web服务匹配算法。针对基于QoS的服务选取问题,本文提出一种可扩展的QoS管理模型,将QoS分成领域相关和领域无关两类,使得组合框架可以针对领域QoS进行扩展,并基于该模型提出单个QoS服务的选取算法和组合流程QoS的计算方法。(3)语义w曲服务的自动组合方法提出一种基于语义回溯树服务组合算法来进行抽象服务的自动合成。本文首先对语义回溯树相关概念进行了形式化定义,然后详细介绍了基于语义回溯树的组合算法SBT-ASC。SBT-ASC算法分成三个步骤:首先采用语义绑定矩阵存储语义Web服务参数之间的语义关联;然后搜索语义绑定矩阵,对抽象服务的每一个输出都生成语义回溯树;最后考虑执行期的时间限制,采用贪心策略选取最佳的生成路径合成组合服务。(4)业务流程驱动的半自动语义web服务组合框架的设计与实现在以上关键技术的研究基础上,设计并实现业务流程驱动的半自动语义Web服务组合框架的主要模块,包括流程设计器、服务执行引擎、服务发现模块、服务组合模块等。针对医疗服务集成的问题,采用该半自动服务组合框架实现患者就医的完整流程,并模拟业务流程和网络环境发生变化的场景,模拟结果表明组合流程系统较好地适应了7 浙江工业大学硕士学位论文上述两种变化,具备一定的健壮性和容错能力。本文一共分成七章,具体安排如下:第一章:绪论。主要介绍论文的研究背景和研究意义、国内外关于Web服务组合领域的相关研究现状、论文的研究目标和研究内容,以及论文的结构安排。第二章:Web服务组合相关技术介绍。针对Web服务组合所涉及到的相关技术进行了详细说明,包括Web服务技术、语义Web服务技术、Web服务组合的研究框架,并对现有的Web服务组合系统进行了对比与分析。第三章:业务流程驱动的半自动服务组合方法。针对传统业务流程驱动的组合方法在企业服务集成领域中灵活性和动态性不足的问题,本文提出一种半自动的语义Web服务组合方法。首先介绍了该组合方法的动机和基本思想,然后对Web服务和组合流程的相关概念进行了形式化描述,最后提出半自动的语义Web服务方法和抽象框架,并详细描述了服务执行引擎的执行过程和容错机制。第四章:语义Web的服务发现和选取机制。对于服务发现机制,首先分析Web服务发现中的两种匹配机制以及其优缺点,然后提出一种混合式的匹配度计算方法以及采用了该匹配度计算方法的服务匹配算法。在服务选取方面,首先介绍了QoS概念以及相关研究现状,然后给出基于QoS的W曲服务选取算法。第五章:基于语义回溯树的抽象Web服务自动合成方法。这一章首先对语义回溯树的相关概念和性质进行了介绍,然后给出了基于语义回溯树的抽象Web服务组合算法SBT-ASC的完整步骤。第六章:医疗领域的服务集成案例。这一章首先对医疗领域的服务集成现状进行了分析,然后给出了半自动服务组合框架主要模块的实现方案,最后将其应用于医疗服务集成的案例中。第七章:总结与展望。归纳和总结了本文的主要研究工作,并对进一步的研究重点和研究方向做了展望。 浙江工业大学硕士学位论文2.1Web服务第2章Web服务组合相关技术2.1.1Web服务定义和基本特征按照SOA的倡导者M.P.Papazoglou教授的定义【42】:“w曲服务是一种平台独立的、松耦合的、自包含的、基于可编程的Web的应用程序,可使用开放的XML标准描述、发布、发现、协调和配置。”具体地说,Web服务是一种模块化的软件应用程序,通过网络发布到注册中心,如UDDI(UniversalDescription,Discovery,andIntegration)t43】;其他的应用程序可以通过注册中心获得这些Web服务的调用规范,通常采用WSDL(WebServiceDescription)‘删描述;然后使用SOAP(SimpleObjectAccessProtoc01)t4sl协议访问和调用这些Web服务。Web服务具有以下几个特征:(1)可编程式访问:与普通网站不同,Web服务并不主要面向人的,而是面向其他应用程序。当然,Web服务也可被人机交互应用程序所集成。(2)接口与实现分离:服务接IS]定义了外部世界可以看到的功能,而对于服务的访问者来说,服务的具体实现是隐藏的。因此服务的实现既可以直接提供其接口定义的功能,也可以通过组合其他服务来提供。(3)开放性:w曲服务使用开放的、平台无关的协议进行描述、发布和传输,其所有协议完全免费,可以被实现在不同软硬件平台上。2.1.2Web服务的体系结构虽然Web服务与SOA经常被放在一起讨论,但是两者并不完全等同。SOA作为一种设计理念和方法学,独立于任何具体的技术。Web服务是SOA中所强调的服务概念的一种具体表现形式,是SOA服务化的最佳功能载体。Web服务的体系结构可以大致地看成三个独立的角色以及他们之间的关系,图2-1给出了Web服务体系结构的逻辑视图。 浙江工业大学硕士学位论文查找服务及其绑定信息(UDDI和WSDL)web服务请求者服务注册中心(UDDI)注册、发布服务(UDDI和WSDL)绑定并调用服务(SOAP)图2.1Web服务的角色和操作Web服务提供者1.三种角色(1)服务提供者(ServiceProvider):服务的所有者(企业或者个人)。Web服务提供者是拥有Web服务的组织,负责发布Web服务,并按照服务发现所规定的格式将服务信息注册到服务注册中心。(2)服务请求者(ServiceRequester):需要满足一定功能的企业或个人,或查找并调用服务的外部应用程序。W曲服务的请求者可分成两类,可以是面向最终用户的浏览器,也可以是另一个Web服务。(3)服务注册中一I',,(ServiceRegistry):服务注册中心是一个可供搜索的Web服务目录。服务提供者在该目录中发布他们的服务描述,服务请求者在该目录中查找并获得服务的绑定信息。2.三种操作(1)发布(Publish):服务提供者将web服务描述信息发布到服务注册中心以供服务请求者查找与绑定。发布操作实际有两个步骤,一是对Web服务本身的描述,二是将Web服务注册到服务注册中心。(2)查找(Find):根据服务注册中心提供的查询接口,服务请求者发出查询请求并获取服务的接口描述、绑定等相关信息。Web服务的查找同样有两个操作组成,一是查询满足服务请求者需求的Web服务,注册中心会返回一个Web服务结果集;二是根据服务请求者的偏好、QoS等需求,选择服务结果集中的一个W曲服务进行绑定。(3)绑定(Bind):服务请求者通过从服务注册中心中得到的绑定信息,调用服务提10 浙江工业大学硕士学位论文供者所提供的Web服务。2.1.3Web服务技术架构Web服务的实现包含了一系列的协议和规范,其目的就是保证在任何平台上,使用任何技术和编程语言都可以实现和访问Web服务。图2.2给出了Web服务技术架构的协议栈,自下而上分别为:传输层、消息层、描述层、发现层、服务质量层、业务流程层。其中最核心的协议是SOAP、WSDL和UDDI。[二二二亟堕至亟亟垂亚二二]园[二二二耍画堕亟巫垂二二二[垂]图2-2Web服务技术架构‘2羽Web服务技术具有良好的可伸缩性:若只需实现异构系统的简单互通,那么使用SOAP和WSDL协议即可:若需要应对安全、事务、可靠消息传输等较高需求时,又可以利用相应的WS.母标准将SOAP和WSDL进行扩展,开发者只需关注自身领域的业务逻辑,通过简单的配置和少量的编码即可实现安全可靠的分布式系统;在面对复杂的企业业务环境时,又可以通过编排和编配技术来实现更大程度的松散耦合特性。2.2语义Web服务由于标准的Web服务协议是基于语法层次上的描述,因此Web服务的功能无法被机器所理解,因此使得Web服务的发现、匹配和组合等活动的自动化变得异常困难。针对雾 浙江工业大学硕士学位论文标准Web服务的局限性,语义Web服务结合语义技术和Web服务技术,将Web服务用语义本体建模,从语义层面上描述Web服务的接口、消息、结构等描述信息,使得Web服务的自动发现、自动组装和调用成为可能。如表所示,目前在语义Web服务研究领域,具有较大影响力的工作有:OWL—St461、WSMO/WSML[471、SWS0/SWSL[481和SAWSDL(WSDL—s)/491。表2-1语义Web服务相关研究概述名称项目介绍形式化基础oM。一SWSM0/WSⅣ口LSAWSDL由美国卡内基梅隆大学、斯坦福大学、麻省理工学院等大学及NOKIA联合提出,使用OWL作为本描述逻辑体描述语言定义顶层本体。由欧靶j!::竺查学和口冀翼!三三!曼曼皆,使用一阶一阶谓词逻辑逻辑表示Web服务的概念模型。⋯⋯⋯⋯由罴翼气扩充W蚤装嚣念进行语不确定eb义标注,为服务提供语义信息。⋯⋯由美、欧多家机构提出,旨在将OWL—S、针对有sWs∞wsL装竺翠装举嘴嚣警露霎巍黑裟薯一阶谓词逻辑基础的模型。2.2。1OWI,SOWL-S(WebOntologyLanguageforService),前身是DAML-S,是本体语言OWL(WebOntologyLanguage)和web服务技术相结合的产物,是几个提案中提出较早、学术界影响力最大的一个,与现有的语义Web服务标准也结合的较好。OWL—S顶层本体可分成三部分:ServiceProfile,ServiceModel和ServiceGrounding。 浙江工业大学硕士学位论文图2-2OWL—S项层本体‘461ServiceProfile简要地描述了服务的基本信息,如服务的功能、QoS指标、服务提供者的信息等,主要用于服务的查找与匹配。ServiceModel描述了服务内部的执行逻辑。一个ServiceModel与一个Process(流程)相对应。OWL.S提供了三种不同的Process,AtomicProcess(原子流程)、CompositeProcess(组合流程)、SimpleProcess(抽象流程)。AtomicProcess描述的是没有子流程,可被一步直接调用执行的原子操作;CompositeProcess由多个其他的Process组合而成,通过了Sequence、Split-Join等流程控制结构(ControlConstruct节点)用于描述子流程的执行顺序(控制流),以及用Binding节点用于描述子流程间的数据交换(数据流);SimpleProcess提供一种抽象机制,无法被直接访问,必须通过服务的查找和绑定等具体化操作才能被调用执行。ServiceGrounding描述了服务如何被访问,即服务所使用的协议、消息格式和寻址方式等信息。ServiceGrounding提供了语义和语法间的映射关系,将OWL.S落入到可执行的WSDL协议上来。Z.2.ZWSMO/WSMLWSMO(WebServicesModelingOntology)是欧洲语义系统计划的重要组成部分,在WSMF(WebServiceModelingFramework)的工作基础上提出来的一个Web服务描述本体,WSML是描述WSMO的本体语言。WSML/WSMO从Ontology、WebService、Goal和MediatorService四方面描述Web服务的语义信息:Ontology提供了用于描述实体的领域本体,包括概念、关系、函数、公理等:WebService是描述语义Web服务的本体,主要包含功能、非功能属性和行为模型;Goal用来描述用户需求,包含用户所需目标服务在功1冀 浙江工业大学硕士学位论文能、非功能、行为等方面的信息;MediatorService用来解决不同实体连接时在数据、协议和模型的不兼容问题2.2.3SWSU/SWSLSWSO/SWSL是SemanticW曲ServiceOntology和SemanticWebServiceOntology的简称,是以项目WSMO/WSML和OWL—S为研究基础,旨在将OWL.S、状态机模型、和一部分WSMO结合在一个框架中。下面分别对SWSO和SWSL进行详细介绍:SWSL语言由SWSL.Rules和SWSL—FOL两个子语言组成,前面一个子语言是一个以规则为基础的语言,它既可以用作描述语言同时也可以用于实现的开发语言,后面一个子语言是以一阶谓词逻辑为基础,并且为与其他基于一阶谓词逻辑的流程模型和服务本体之问进行的互操作提供了支持语义支持。SWSL—Rules和SWSL—FOL这两个语言都是层次化语言,与OWL不同的是它们并不以计算复杂度和语言的表达能力来进行分层。SWSO则提供了一整套用于描述语义Web服务的概念模型,它有两种形式的概念模型:FLOWS(Web服务的一阶逻辑本体,First-OrderLogicOntologyforWebService)和ROWS(Web服务规则本体,RulesOntologyforWebService)。前者为语义Web服务的一阶逻辑本体,后者为服务规则本体。SWSO的问题在于其服务功能性描述所采用的FOL是基于标准PSL的,而该标准不如规划系统、情景演算、规则系统那样受到广泛支持;SWSO整个标准过于复杂,完善性和一致性尚待加强。目前尚未出现基于SWSO的组合系统。2.2.4SAWSDLSAWSDL(SemanticAnnotationsforWSDLandXMLSchema)由IBM和Georgia大学最初以WSDL—S之名联合提出。该语言将标准的WSDL的服务模型进行扩展,通过对WSDL中的operation、interface、fault、XML类型或消息增加语义本体信息,从而实现服务的语义标注。不同于OWL—S、WSMO/WSML和SWSO/SWSL,SAWSDL是独立于任何本体语言,允许Web服务开发人员选择自己的本体语言,这就实现了语法层与语义层的解耦,提高了灵活性。此外,SAWSDL是基于标准协议WSDL的基础上扩展得到,因此与已有的工具平台有更好的兼容性,容易在现有WSDL的应用和系统中得到推广。 浙江工业大学硕士学位论文2.3.1Web服务组合的定义与特点随着SOA概念的兴起和云计算的蓬勃发展,软件即服务(SoftwareasaService,SaaS)的概念被越来越多的企业所接受。开放平台与开放API技术的发展,使得越来越多的企业和商业机构将其业务功能和组件通过标准的Web服务形式暴露出来,以寻求跨组织的协同作业,满足其业务增值的目标。随着Intemet环境下的Web服务数量越来越多,如何将这些服务集成起来,以满足特定的业务需求和商业目标,成为工业界和学术界研究的重点。虽然Web服务组合这一一术语被各种文献反复提及,但目前尚不存在一个公认的定义,这是由于研究人员观察的角度和侧重点不同。几个重要文献中给出的Web服务组合定义如下:文献[5Q]从业务流程的角度,认为Web服务组合是根据一定的业务规则将服务进行组合,使其相互协作从而完成既定的业务目标的过程:文献[51】从企业应用集成的角度,认为Web服务组合是将来自于不同企业和机构的异构系统进行集成,消除信息孤岛,实现信息和功能的共享的目标。文献[35]从任务规划的角度,认为Web服务组合是将大型的任务分解成子任务,然后通过服务发现寻找能满足子任务的Web服务的过程。文献[19】从满足用户需求的角度,认为Web服务组合是当单个Web服务无法满足特定的用户需求时,将若干Web服务进行合成,以形成具有内部流程逻辑的大粒度的组合服务的过程。综合考虑以上定义,本文从服务集成领域出发,认为:Web服务组合是基于面向服务的体系结构,将已经存在的Web服务按照其功能进行重新聚合和组装,生成满足特定业务功能要求的服务的过程。Web服务组合具有以下特点:(1)层次性和扩展性Web服务组合是一个递归过程,即Web服务的组合通过复用和组合已有的Web服务来生成一个大粒度的Web服务,该组合服务亦可作为一个更大粒度组合服务中的一个成员Web服务。这种递归性质使得Web服务组合具有几乎无限的层次性和扩展能力。(2)描述业务功能的多种属性传统的应用集成技术通常从技术层描述业务构件模块(例如构件类型、功能、使用环境等)【521。使用服务概念封装软件构件,能够对不同层次的属性,如接口、行为、语义、事务、隐私等多角度进行刻画。(3)抽象流程与具体服务的解耦Internet环境高度的复杂性,导致一个w曲服务在一个时刻可用,在下一个时刻可能15 浙江工业大学硕士学位论文就变得不可用了。因此,服务组合强调抽象流程与实际的服务分离,具有明显的二阶段特征:在建模阶段领域专家只需关注业务需求的抽象行为,形成抽象的组合服务模型,然后在执行阶段通过一定的发现和匹配机制不断发现网络环境中的各种服务加以组合。(4)提高业务功能的重用性对于公司和商业组织而言,大多数新业务来自于对已有功能的复用和组装。传统的集成方式由于业务与具体实现紧密耦合,导致面对新的业务需求时需要重新进行大量的开发,功能的复用性差,成本很高。服务组合将已有组件以Web服务形式发布,能够实现快速低成本的业务集成。综上所述,Web服务组合技术通过重用已有服务,实现跨组织、跨领域问灵活高效的业务集成。基于服务组合技术,领域专家们只需关注在高层的业务流程建模,而不必考虑纷繁复杂的技术细节,能够大大提高业务系统的动态性和可扩展性。因此,Web服务组合技术是实现跨组织的开发和业务集成的重要技术,具有十分广泛的应用前景。2.3.2Web服务组合研究框架Web服务组合不是一个孤立的问题,根据组合生命周期的不同,包含了Web服务的发现、选择、组合、验证、执行和监控、事务和安全等等一系列的问题【2】'而Web服务描述则作为一系列研究的基础贯穿Web服务组合的整个生命周期。(1)Web服务发现随着Web应用的普及和移动互联网的不断发展,Web服务数量的不断增多,用户的需求和所处的环境也是千变万化,如何根据用户的需求和环境的变化,从海量的Web服务中快速、高效地发现服务成为一个难点问题,直接影响到服务组合的质量和用户的组合体验。(2)Web服务选择Web服务选择是指从W曲服务发现所返回的Web服务集合中选择最合适的服务。随着移动互联网的普及,w曲服务的选择问题研究不仅要考虑QoS属性,还应考虑发现和匹配用户的偏好、地理位置信息等,这给Web服务的选择带来的新的挑战。(3)Web服务组合Web服务组合方法直接影响了组合实施的效果。对于业务流程驱动的Web服务组合方法而言,其基于固定流程的特点,如何适应不断变化的业务流程需求成为该类方法的最大问题。对于语义驱动的Web服务组合方法,其可用性不足,如何正确地生成出满足需求的组合方案是该类方法的主要问题。16 浙江工业大学硕士学位论文似)Web服务验证Web服务验证指的是在组合服务执行前,验证其内部流程是否存在死锁、流程的可达性、语义一致性等内容。Web服务的验证研究通常通过Petri网、自动机理论、PI演算等形式化方式进行。(5)Web服务执行和监控Web服务组合通常是所处的是分布式的、动态的网络环境,这种高度的不稳定性需要一个可靠的服务执行引擎和实施监控机制来保证组合服务正确、高效地被执行。(6)Web服务事务和安全由于Web服务的组合跨越了不同组织边界,将原本处于企业内部的数据和应用暴露在Intemet环境下,因此需要一定的安全机制来保证企业信息安全不受威胁。另一方面,Web服务支持长时问异步交互的特性,以及执行环境的不可预知性有可能导致Web服务的响应超时等问题,引起组合服务的执行失败,此时需要一定的事务机制来提高系统的可靠性和容错性。2.3.3Web服务组合相关项目e—Flow[28】【291是由HP公司开发的一个比较成熟的基于工作流的Web服务组合系统。支持服务定制、组合服务设计、组合服务管理、组合服务执行监控等功能。eFlow系统将一个组合服务抽象成一个流程模式(ProcessSchema),流程模式中包含组件服务节点、决策节点和事务节点等元素。系统支持动态的服务绑定功能,具有服务发现功能,能够适应一定程度的动态网络环境。SELF.SERV[531是澳大利亚昆士兰大学和新南威尔士大学联合研发的一个支持快速开发和执行的Web服务组合平台。SELF.SERV以状态转换图的方式进行组合流程建模,其中每一个状态表示一次服务的调用。SELF—SERV区分三种类型的服务:原子服务、组合服务和服务社区,其中服务社区代表一类互相可替换的服务集合。SELF—SERV主要分成三个模块:服务发现引擎、服务编辑器、服务部署器。用户通过服务编辑器定义新的或者编辑已有的服务,在组合服务建模时,可以指定社区服务,因此服务发现引擎可以在运行时实现服务的动态选取和绑定,因此具有较好的灵活性。SELF—SERV采用对等的服务编排方式,组合流程中的每一个成员服务通过协调器、封装器和路由表实现P2P的执行。FLAME[54]是由中科院计算所和德国弗朗霍夫软件研究所合作研发的面向北京2008奥运会平台。该平台的目的在于整合奥运期问的各种服务,通过服务组合的方式满足不同17 浙江工业大学硕士学位论文用户的个性化服务需求。FLAME将Web服务组合的开发分成业务层设计和软件层设计两个部分,并在此基础上提出了一种服务组合模型CAFISE。在该模型中,为了准确描述业务逻辑,设计了一种服务组合语言V1NCA。V1NCA同时支持服务的静态绑定和运行时绑定,具有较好的灵活性。设计层的VINCA可以自动转换成软件层的BPEIAWS执行。SeGSeC[551(SemanticGraphbasedServiceComposition)是加利福尼亚大学欧文分校开发一个基于语义的动态Web服务组合系统。SeGSeC与组件服务语义模型(ComponentServiceModelwithSemantics,CoSMoS)和组件运行时环境(ComponentRuntimeEnvironment,SORE)共同完成Web服务组合。SeGSeC主要包含四个模块:RequestAnalyzer将用户输入转化为CosMoS语义图,支持以自然语言的方式描述需求;ServiceComposer根据语义图生成可执行的组件服务;Reasoner负责检查组件服务功能的匹配;ServicePerformer负责组件服务的调用。Hale]]561是乔治亚大学LSDIS实验室开发的语义Web服务组合系统。系统采用WSDL描述接口,WSLA描述QoS需求,主要包含七个部分:SA.WSDL用于解析WSDL;WSLAParser用于解析WSLA,获取非功能性需求;ProcessHierarchyModeler为人机界面,用于用户需求的获取;PlanningDomainGenerator根据需求生成一阶谓词逻辑定义的描述文件;eDR.GOLOGPlanner根据描述文件自动生成组合规划;BPELGenerator根据组合规划生成可执行的BPEL:KBbasedProcessMonitor负责组合执行的监控。ASTRO[571是ITC—IRST和Trento大学联合研发的基于分布式的、本体描述的Web服务组合系统。ASTRO主要包含以下几个子系统:WsRequirement提供类似工作流的图形符号机制用于获取用户需求;WsTranslator将WsRequirement获取的需求和服务信息以形式化的语言描述;WSYNTH根据形式化的描述构建组合模型,生成可执行的BPEL文件;WNON负责监控服务运行期的各种信息:NuSMV是一个基于有限状态机的形式化验证系统;WSConsole将WNON获取的监控信息可视化的展示。根据上一节Web服务组合系统研究框架的分析,表2.2将上述6个Web服务组合系统进行对比和分析。表2-2Web服务组合系统的对比模块eFlowSELF.SERVFLAMEHaleySeGSeCASTRO服务发现√×√×服务选择√×√服务组合工作流AI规划工作流服务验证√×√服务执行√执行监控√×√×√ 浙江工业大学硕士学位论文事务×安全×2.4本章小结本章就Web服务组合相关技术进行了详细介绍:包括:Web服务技术、语义Web服务技术、服务组合技术等。同时本章还介绍了国内外语义Web服务标记语言的研究项目如OWL.S、WSMO/WSML等,然后阐述了服务组合的相关概念、特点、以及研究框架,并针对该研究框架,对国内外服务组合相关研究项目如eFlow、SELF.SERV、SeGSeC进行了分析和比较。 浙江工业大学硕士学位论文第3章业务流程驱动的半自动语义Web服务组合方法在前文介绍的Web服务组合相关理论和技术的基础上,针对传统业务流程驱动的组合方法在企业服务集成领域中灵活性和动态性不足的问题,本文提出一种半自动的语义Web服务组合方法。本章首先介绍了该组合方法的基本思想,然后对Web服务和组合流程的相关概念进行了形式化描述,最后提出半自动的语义Web服务方法和抽象框架,并详细描述了执行引擎的执行过程和容错机制。3.1半自动Web服务组合方法在Web服务组合领域,灵活性和可用性是一对矛盾。在SOA中,业务流程驱动的服务组合方式一直备受工业界青睐,主要是因为其直接从业务需求的角度建模,可以非常准确地刻画企业用户的真实需求。但是随着云计算和移动互联网的兴起,Intemet环境日趋复杂,跨组织、跨领域、跨区域的集成需求越来越多。SOA已从传统的企业内部集成,转向面向全球的Intemet环境下的服务集成。相比于企业内网的稳定性,Internet环境则复杂多变。在这种趋势下,Web服务的组合如何能在保证企业用户的业务需求的基础上,适应复杂多变的网络环境,成为BPEL等业务驱动的服务组合方法的最大挑战。本文提出的业务逻辑驱动的语义Web服务组合方法是基于以下假设:在企业服务集成领域,全局的主干流程很少或基本不发生变化,而经常变化的是局部子流程。例如,在医疗集成领域,美国医疗卫生信息与管理系统协会和北美放射学会提出的IHE标准[59】将医疗流程分成三种类型:通用流程、灵活流程和异常流程。其中通用流程指的就是流程中结构化程度较高,即通常是流程实例覆盖率接近100%的部分,如看病时每一个病人都必须经过挂号、门诊、收费、取药等固定几个活动。而灵活流程指的是医疗流程中结构化程度较低的部分,其在整个流程中发生的位置不确定,发生时处理的方式也不相同。这种局部的灵活流程在单一的流程模型中很难表达,即使表达了也会使流程模型的逻辑变得复杂而难以理解【58】,如IHESWF模型中的PatientUpdate(病人信息更新)流程,并不是所有的流程实例都会进行病人信息的更新。异常流程描述了在医疗流程中普遍存在的异常情况,这些异常在医疗过程中不被期望,但却不可避免,如在检查过程中各种原因(如病人身体突发异常等)导致检查无法继续的情况,此时需要有异常处理的机制。 浙江工业大学硕士学位论文由于企业服务集成领域有这样的特性,基于分而治之的基本思想,我们可以将全局的主流程用基于业务流程的方式来建模,然后在局部动态的、需要灵活性的地方采用语义驱动的自动组合方式,这样能在保证整体流程满足企业业务需求的同时,一定程度上提高整个流程的动态性和灵活性。在异常处理方面,分成两种类型:可预知的异常作为流程中的一个分支,而不可预知异常则通过运行时的异常处理机制来解决。如图3.1所示,这种全局主流程采用业务流程驱动的方式建模、而在局部动态子流程采用自动的方式生成服务的组合方法称为半自动的Web服务组合。图3—1业务流程驱动的语义半自动Web服务组合不同于完全自动的服务组合方法,半自动服务组合方法将组合服务的生成分成两个阶段,首先是组合流程建模阶段,流程设计人员根据具体的行业需求,通过建模工具设计适合具体业务逻辑的组合流程,用抽象服务表示流程中动态的节点。二是自动组合阶段,根据抽象服务的功能、非功能性需求,自动地查找、组合和绑定服务。前者是手动的过程,后者是完全自动的过程。半自动的服务组合有许多研究成果,如惠普实验室的e-Flow系统‘28][291可以对流程中的活动建立抽象服务,然后通过服务发现和绑定技术替换抽象服务,但该组合方法需要事先将组合流程定义完全,不支持运行时的服务组合。文献[30】提出半自动组合方法在执行阶段生成组合流程以满足运行时环境的动态需求,但未考虑w曲服务的语义和QoS。本文认为,对于业务流程驱动的半自动服务组合来说,服务的语义和QoS会影响到匹配的21 浙江工业大学硕士学位论文准确度和用户的满意度,因此必须充分地考虑它们的作用。为了便于描述,本小节给出Web服务的三种类型的形式化定义,并给出了一种递归的组合流程描述模型。3.2.1Web服务类型本文中的服务组合方法总共涉及到三种类型的Web服务:原子Web服务、抽象Web服务和组合Web服务,下面分别予以描述。定义3—1原子Web服务:一个原子Web服务是不可分割的、可被直接调用执行的Web服务,可被描述成一个七元组E_<",r/,旯,I,O,co,Q>,其中:(1),z为服务名称,是服务的唯一标识;(2)印为服务功能性描述;(3)旯为服务提供者信息;(4)I={‘,之,...‘}为服务的输入集合;(5)D={Ol,02,...,0m)为服务的输出集合:r6)国为服务的访问节点,描述了服务的调用方式,如OWL.S中的ServiceGrounding,WSDL中的portType等;(7)Q={ql,q2,...,qk)为服务质量的集合,如服务执行时间、费用等。定义3-2抽象Web服务:抽象Web服务是组合流程中的“占位符”,当不存在单个具体服务能满足业务流程的需求,或存在不能被预定义的动态子流程时,通过抽象服务的自动组合替换成组合服务执行。一个抽象Web服务可以被表示成一个六元组颤=<聆,r/,I,O,口,%>,其中:(1)n为服务名称:(2)刁为服务功能性描述;(3)I=昧之,¨矗}为用户能提供的输入集合;(4)D={01,02,...,D卅)为用户期待的输出集合;(5)口为用户最低的语义相似度需求:(6)%={wt,w2,...,wk}为服务质量参数的权重需求。 浙江工业大学硕士学位论文定义3.3组合web服务:一个组合Web服务是一个“黑盒”,是对一段组合流程P的封装,流程P对用户不可见。一个组合w曲服务是可以被表示成一个六元组:sc-<11,v,I,O,P,Q>,其中:(1)n为服务名称;(2)v为组合服务的版本;(3)I={/1,/2,...‘)为服务的输入集合;(4)O={D1,02,...,D坩)为服务的输出集合;(5)p为组合流程,描述了组合服务内部的执行逻辑;(6)Q={ql,q2,...,吼}为组合服务的服务质量,由组合流程唯一决定,即存在函数毋=‘;(p),吼∈Q。定义3-4参数类型:设p为w-eb服务s中的一个输入/输出参数,若p被领域本体中的一个概念C所标注,则称C为P的参数类型,记作P:C。若S中所有的输入输出参数都被本体概念所被标注,则称该服务s为语义Web服务。3.2.2组合流程的定义流程是一个活动序列,它由一个事件引起,然后对信息进行转换,并产生相应的输出。业务流程是实现既定业务需求的一组逻辑上相关联的任务。Web服务的组合流程由一组Web服务按照一定执行顺序组合而成的序列。组合流程包含两方面内容:w曲服务控制流和W曲服务数据流。服务控制流指定了web服务的执行逻辑,服务数据流则描述了Web服务间的数据交换。为了形式化组合流程,引入以下定义:定义3—5流程控制符:一个流程控制符(ControlFlow,CF)是以下四种之一:(1)口》b:流程口、b顺序执行;(2)a+6:流程a、b并发执行;(3)e?a:6:布尔表达式e为真,则执行流程口,否则执行流程b;(4)P木a:循环执行a直至布尔表达式e为假。应用以上流程控制结构,即可递归构造组合服务控制流。如图3—2所示的组合流程控制流可形式化表示成口睁((P1术6)+(乞?c:d))。 浙江工业大学硕士学位论文图3-2组合流程的控制流定义3-6数据绑定:一个数据绑定6是一个四元组:b--,其中:(1)S。为源服务;(2)蜀为目标服务;(3)以为源服务S中的一个参数;(4)P。为目标服务岛中的一个参数。数据绑定描述了组合流程的数据流,服务髟的参数P。接受足的参数见作为其数据来源,如图3—3所示。b=5p图3-3组合流程的数据流定义3_7组合流程:一个组合流程P可以用如下公式3一l表示:fSp2{<凹,D,B>(3-1)s为一个Web服务;三元组是一个嵌套的流程集合,其中:CF为流程控制符,D={,ol,岛,...,岛)为CF调用的子流程集合,B=娩,62,...,6卅)是D中子流程数据绑定的集合。 浙江工业大学硕士学位论文3.3业务流程驱动的半自动语义Web服务组合框架3.3.1半自动组合总体框架获取本体、Qos信息&』叫流程⋯U业务人员服务注册中心萋l妻服务组合模块本体库QoS配置管理模块获取本体、QoS和服务描述信思图3_4半自动服务组合抽象框架本文提出的业务流程驱动的语义Web服务组合的抽象框架如图3_4所示,该抽象框架不依赖于具体的技术或实现,主要包含以下几个模块:流程设计器:业务设计人员可以通过拖拽的方式“画出”流程图,为流程中的固定活动手动绑定具体W曲服务。本体库:存储了服务注册中心中Web服务相关的所有本体概念,以及本体概念间的关系,并提供本体推理的接口以支持服务的自动发现与组合。本体库中的领域本体通常由该领域的专家设计构造。领域专家在充分掌握领域知识后,才能将领域知识进行分类,提取其中的概念,并用特定的本体语言进行编码和描述。领域本体的设计是一个相当长的时间,每次加入新概念或者对原概念进行修改,都需要对领域本体进行更新。考虑到更新本体会对整个本体库和服务注册中心中的语义Web服务产生影响,因此本文中的组合系统启动以后,都不对领域本体进行更新操作。QoS配置管理模块:存储了所有QoS模型属性的信息以及QoS的计算方式,采用可配置的方式对QoS模型进行管理,可以较好的适应不同领域的QoS需求。具体细节将在第425 浙江工业大学硕士学位论文章详细介绍。服务注册中心:分类存储了所有语义Web服务的具体信息,并提供发布和查询接口用于广告和发现服务。如图3.5所示为注册中心发布服务的流程,由于传统的基于WSDL的W曲服务不包含语义信息,因此在发布过程中,注册中心会判断发布的服务描述文件是否存在语义信息,若不存在则要求服务进行语义标注后才能发布。图3-5语义Web服务的发布流程服务注册中心不仅保存着所有的语义Web服务定义文件,而且保存组合服务的组合流程定义。对于每个同名的组合服务,重新编辑过组合流程后发布,对其版本号执行+l操作。服务执行引擎:在运行时接受客户端的一次请求,通过服务名称和版本号查询组合服务并载入组合流程执行,若不指定版本号,则找到最新的,即版本号最大的组合服务执行。若组合流程中包含抽象服务,则调用服务发现和服务组合模块进行自动的服务发现和组合。其详细执行机制在下一节中分析。服务发现模块:接受服务执行引擎的一次服务发现请求,并返回满足抽象服务需求的QoS最高的单个Web服务,在第4章详细介绍。服务组合模块:实现了基于语义回溯树的抽象服务自动合成算法,对服务执行引擎的每一次服务组合请求,返回满足抽象服务需求的QoS最高的组合服务,具体算法在第5章详细介绍。基于上述抽象框架,流程设计人员不需要预定义所有的流程,只需将柔性的动态业务以抽象服务的形式描述,即可在运行时进行服务发现和组合。这种设计的优点在于既满2R 浙江工业大学硕士学位论文足了企业用户对于固定流程的需求,也能适应一定程度上的柔性业务,且通过运行时的服务发现与组合能获得QoS最佳的服务。下面对运行时的执行引擎逻辑进行详细介绍,着重介绍通过一定的运行时容错机制使得框架更能适应各种复杂的网络环境。3.3.2执行引擎机制详细分析在组合Web服务执行时主要包含以下两种类型的错误【60l:(1)Logicfailures:逻辑错误逻辑错误指的是,与外部环境无关,组合流程本身存在的问题,如死锁、条件不可达、语义一致性等。逻辑错误主要分成两类:控制流错误和数据流错误。目前对于逻辑错误主要通过Web服务验证技术,利用Petri网、自动机等技术等形式化的方法来解决。(2)Infrastructurefailures:设施错误设施错误主要是指在服务执行阶段,由于外部环境设施的原因,导致服务不可达的问题。在传统的基于企业内部网络的Web服务集成中,由于内部网通常比较稳定可靠,所以出现设施错误的情况非常少见。而如今基于互联网环境的协同工作越来越多,跨互联网的集成需求也越来越多,因此设施错误出现的几率也越来越大。因此如何在运行时处理这一类错误成为研究的热点,通常的解决方案是通过运行时的服务替换来解决。输入Web服务和服务所需输入输出web服务执行结果◇_施⋯f鞣喾{,堤,看芫赫象、、Y&,,摧香嘉章个、o』\y7’~、、Web服务t//一\、、,/调用执行。~’:|_一/7\、¨_i\、蕊锗误?/7得w动发现躜i合:7{“”~”“。|\。f∥!若当前执行为子线程,则向父线程—=返回执行结果,若为主线程,则向客户端返回执行结果图3-6执行引擎执行逻辑27 浙江工业大学硕士学位论文如图3-6所示为执行引擎的执行逻辑。执行引擎主线程在接受一个Web服务的执行请求后,首先会判断该Web服务是组合服务、抽象服务还是原子服务。若为组合服务,则载入其组合流程,依次对其依赖的所有子流程进行判断:若是单个Web服务,Ni£,J建一个执行引擎子线程进行处理;若是组合流程,则取出其子流程集合再次进行上述判断,直至所有子流程都得到了处理。若为抽象服务,则向服务发现模块朋艮务组合模块发送服务发现/组合请求。若服务执行中发生设施错误,则在此进行服务的发现和组合以替换该服务执行。若Web服务执行完毕,执行引擎主线程将结果返回给客户端并退出。可以看出,服务执行引擎在执行过程中,当出现以下两种情况之一时,服务执行引擎发起抽象服务的自动发现/组合活动:(1)当流程中存在抽象服务节点时。(2)当执行过程中Web服务响应超时或其他情况导致服务不可达,此时Web将当前不可达服务作为一个“抽象服务”请求发送给发现/组合模块。Step3/6:不断执行服务、发送服务发现,组合请求图3-7服务执行引擎与发现、组合模块的交互过程如图3-7所示为抽象服务自动发现/组合时,服务执行引擎与服务组合模块、发现模块的交互过程。其具体步骤如下:Stepl:当出现上文所述的两种情况之一时,执行引擎将抽象服务作为请求发送给服务发现模块。Step2:服务发现模块对服务注册中心的Web服务集合进行自动的服务发现,获取满足抽象服务功能性需求的广告服务集合,选取并返回其中QoS最高的服务。Step3:服务执行引擎保存当前的执行环境状态,开始执行发现模块返回的服务,若 浙江工业大学硕士学位论文成功执行,则流程向下流转;若失败则继续向服务执行引擎请求,直至服务执行成功或者服务发现模块中的可用广告集合为空,此时服务发现失败,没有单个服务能满足抽象节点的需求。Step4:服务执行引擎将抽象服务作为组合请求发送给服务组合模块。Step5:服务组合模块调用相应组合算法进行抽象服务的自动组合,合成可用组合服务集合并返回QoS最高的组合服务。Step6-服务执行引擎执行组合服务,若成功则流程向下流转;若失败则持续发送组合请求;Step7:若组合模块返回空应答,则整个过程执行失败,向上抛出运行时的异常信息。从以上过程可以看出,组合服务执行引擎采用了先发现、不行再组合的方式来确保组合流程的成功执行。当发生运行时的设施错误时,不是简单的出错退出,而是尝试通过自动的服务发现和组合能够让流程向下流转,使得整个组合流程具有一定的容错性和健壮性,能够适应较为复杂的网络环境。3.4本章小结本章首先对业务流程驱动的半自动语义Web服务的动机和基本思路进行了简单介绍,然后提出一个半自动组合的抽象框架,针对框架的容错性和动态性问题,对流程执行引擎的机制进行了详细分析。下面两章的内容将对组合框架中的核心算法:语义Web服务的发现、选取和组合分别进行详细的介绍。 浙江工业大学硕士学位论文第4章语义Web服务的发现和选取上一章提出了半自动服务组合的整体框架,本章针对其中的服务发现和选取的机制进行详细介绍。对于服务发现机制,首先分析Web服务发现中的两种匹配机制及其优缺点,然后提出一种混合式的匹配度计算方法以及服务匹配算法。在服务选取方面,首先介绍了QoS概念以及相关研究现状,然后给出基于QoS的w曲服务选取算法。4.1语义Web服务的发现与匹配4.1.1概述Web服务的发现过程,就是根据抽象服务的需求,从服务注册中心查找能够匹配抽象服务的广告服务集合的过程。本论文对发现过程中的服务匹配,只考虑服务的功能性匹配,非功能性QoS则在W曲服务的选择中进行考虑。语义Web服务的功能性模型以lOPE为主,10指的是服务的输入和输出,PE是指服务执行的前提和效果。IO是原先Web服务在语法层面就已经存在的,语义Web服务用本体概念对其进行了标注;PE是为了补充说明IO的,通常是用逻辑公式来表示。P抽象服务E0口口P广告服务E图4—1语义Web服务的lOPE匹配模型我们将服务注册中心中待发现的服务称作广告服务。语义Web服务的功能性匹配最常见的模型如图4—1所示。lOPE四个字段分别存在着蕴含关系‘加1,即要求10对应的概念存在着相等、包含等关系[8】;PE在领域公理的作用下存在着逻辑上的蕴含关系。本文中只针对IO两种类型的参数进行匹配,主要是基于以下考虑:(1)目前不是所有的语义Web服务描述语言都支持前提和效果的表达,如SAWSDL只30 浙江工业大学硕士学位论文支持IO的语义标注。(2)由于本文中的服务发现是在服务运行期发生的,而P和E通常用一阶谓词逻辑来表示和推理,这会导致推理空间的爆炸,因此不适合作为运行期的服务匹配方式。基于以上考虑,本文只针对10进行语义匹配。而进行语义Web服务匹配的关键在于计算本体概念间的匹配程度,其计算方式主要有两种类型:基于本体逻辑关系的相似度计算和基于本体概念树的相似度计算。基于本体逻辑关系的匹配度计算是根据两个本体概念间的等价(equivalent)、继承(inheritance)、包含(hasPart)等关系进行逻辑关系的推理和匹配。最经典的是由Paolucci教授【8】等提出的基于OWL.S的计算方法,将语义Web服务参数类型的匹配度分成Exact、Plug.in、Subsumes、Fail四个等级。该匹配度定义成为众多语义w曲服务发现中概念匹配的基础,很多研究人员在此基础上,定义了新的匹配级别。但该类方法的缺点是匹配度为离散值,粒度较粗,匹配精度不高,不能准确比较各个服务的匹配程度。为了解决这个问题,文献[10]给每个等级的匹配结果进行打分,然后计算整个Web服务的匹配分数,这样使整个服务的批评度量更佳准确。文献【1l】利用最小二乘法(OrdinaryLeastSquares,OLS)将离散的匹配度转化成连续值,最后将输入输出等参数的匹配度加权求和得到整个服务的匹配度值。图4-2本体概念树基于本体概念树的本体相似度计算方式是将本体概念构造成一颗树,利用两个本体概念在概念树中的深度、最短路径、所在层的节点密度等影响因子来构造相似度函数。例如,图4—2所示即为一棵医疗本体概念树。如文献【70]在考虑上述影响因子的情况下,提出一种相似度的计算函数:31 浙江工业大学硕士学位论文SimCC(Cl,C2)=P”。×二eph二+e-Ph(4-1)其中,是cl、C之间最短距离的长度,h是共同祖先在树中的高度,口和∥是调节因子,根据文中的实验结果,口=0.2,∥=O.8时匹配效果最佳。该类方法的不同文献采用的影响因子和构造的相似函数形式不同,但其思路基本相似。但该类方法应用在语义Web服务匹配领域有一个明显的缺陷:相似函数中的两个概念是可交换的。以图4.2所示本体概念树为例,试考虑图4.3所示的两个例子:(a)中的广告服务需要一个血压仪(BPDevice)作为输入,但抽象服务只能提供检查设备(ExaminationDevice);(b)中的广告服务需要检查设备(ExaminationDevice)作为输入,但抽象服务提供的是血压仪(BPDevice)。我们可以清楚的判断(b)中对于广告服务来说,抽象服务提供的概念更加具体,明显优于(a)中的更加泛化的概念,但是对于公式4—1来说,计算出两者的相似度是相同的。ExamiBPDevice抽象服务{妙SimCC(ExaminationDevice,BPDevice)SimCC(BPDevice,ExaminationDevice)<7BPDevice、广告服务弋7inationDevice广告服务1图4-3本体相似度示例针对以上两类方法的缺点,本章设计了一种基于逻辑推理的混合式的匹配度计算方法,能较好地避免两者的缺陷。4.1.2本体概念相似度计算定义4-1概念匹配类型:给定一个领域本体丁,和丁中的两个概念C1、C,,本体匹配类型铆删功坳砌(q,Q)分成以下5种级别:(1)Exact:概念c1、G是两个等价的概念当且仅当:丁}cl三G。(2)Plugln:概念C1可以完全代替概念C2,当且仅当:"2-}clEG。(3)Subsume:概念c1被概念e包含,当且仅当T}GEcl。(4)Intersection:概念Cl、C2概念相交,即Cl、C2有共同的父概念,当且仅当:T}=一cl几C2ED。(5)Disjoint:概念Cl、c2不相交,当且仅当:7-}C几c2E上。 浙江工业大学硕士学位论文匹配度从大到小排列是Exact>PlugIn>Subsume>Intersection>Disjoint,这种表示方式是离散值,不够精确和直观,因此将匹配度量化成表4—1所示的基础分值。表4-1概念匹配类型的量化概念匹配类型ExactPluglnSubsumeIntersectionDisjoint概念相似度l2/31/30O定义4-2概念相似度:概念相似度j砌(G,c2)定义为两个本体概念间的相似程度,可以通过以下公式4—2计算,其中SimCC为公式4—1。sim(Cl,Q)=l三+!×SimCC(C,,C2)33’z,委+委xSimCC(C1,C2)3。“=1x&小co(c,,c2)3“0iftypeOJMatch(C1,G)=ExactiftypeOfMatch(C1,e)=PluglniftypeOfMatch(C1,C2)=Subsume(4—2)iftypeOfMatch(C1,c2)=IntersectioniftypeOfMatch(Q,c2)=Disjoint函数sim(C1,C2)接受两个本体概念作为输入,查询本体库中两者的概念,通过从严格到宽松的匹配方式,返回一个[0,1]之间的连续值,其计算过程如图4_4所示。图4-4sim(C1,G)的执行流程33 浙江工业大学硕士学位论文4.1.3语义Web服务的匹配算法根据上述概念相似度的计算方式,我们给出服务匹配度的计算方式。定义4-3服务匹配度:给定一个抽象服务SR和一个广告服务S,S语义匹配SR的程度matchDegreeOflService(SR,S),计算方式定义如下:matchDegreeOfService(SR,S)=min(matchDegreeOfOutputs,matchDegreeOflnputs)matchDegreeOfOutputs和matchDegreeOflnputs分别为抽象服务&和广告服务s之间的输出相似度和输入相似度,服务相似度定义为这两者的最小值。算法CalculateDegreeOfOutpus接收一个抽象服务&和一个广告服务S,返回两者的输出相似度matchDegreeOfOutputs。算法:CalculateDegreeOfOutputs输入。抽象服务足、广告服务s输出;服务输出匹配度matchDegreeOfOutputs1·CreatenewvariablesmatchDegreeOfOutputs,tmp;//创建返回值和临时变量2.SetmatchDegreeOfOutputs=l;3.Foreachoutput0∈足.D{4.Settmp=O;5.ForeachO’∈S.0{6.If(traptrap){11.SetmatchDegreeOfOutputs=tmp;算法CalculateDegreeOflnputs接收一个抽象服务足和一个广告服务s,返回两者的输入相似度matchDegreeOflnputs。CalculateDegreeOfinputs算j去s■一_轴叭:抽象服务S,、广告服务S一输ltl:服务输入配ff菱matchDegreeOflnputs。l·CreatenewvariablesmatchDegreeOflnputs,tmp;//创建返回值和临时变量。2-SetmatchDegreeOflnputs=l;:¨i3.Foreachinputi∈SJ{4.Settmp=0;5·Foreachinputr∈&J{6.If(traptmp){11.SetmatchDegreeOflnputs=tmp;12.113.114.ReturnmatchDegreeOflnputs;不同于其他一些文献将接口参数相似度求平均值来计算服务相似度的方式,本文计算相似度的思想是:过滤所有不满足抽象服务最低相似度需求的广告服务。这样主要是基于企业集成领域的考虑,需要对语义相似度作精确的限制。4.2基于QoS的Web服务选取4.2.1概述Web服务的描述分成功能性描述与非功能性描述。早前的服务发现研究主要将工作重点放在服务的功能性匹配上,但随着满足用户需求的功能数量越来越多,如何从众多服务中选取质量最佳的服务成为研究的热点。QoS指的是W曲服务的一种能力,它能响应预期的请求,并能以一定的服务质量完成相关的任务。QoS反应了客户的期望,如稳定的服务可用性,可连接性以及快速响应能力。目前Web服务QoS相关的研究工作主要分成以下几个方匠:QoS模型、QoS信息管理和预测、基于QoS的服务选择等。在QoS模型方面的研究主要是指如何定义QoS属性以及它们之间的相关性,如何定义QoS属性的度量方法,主要工作有:Zeng【621提出了一个包含执行时间、服务价格、可靠性等在内的五维QoS模型;杨文军等[631提出一种领域自适应的Web服务质量评价模型等。针对移动环境下的环境感知和用户位置等因素,Mabrouk等‘删提出一个基于语义的端到端的QoS质量评价模型。上述的研究工作均假设了下层的支撑系统,如服务注册中心、流程执行引擎等来帮助这些上层应用采集存储这些QoS信息,这些工作称之为QoS信息的获取和管理,相关工作有:邵凌霜等‘651提出一种可扩展的Web服务QoS管理框架;廖渊等‘661提出一种面向构建系统的QoS管理模型QuCOM以应对性能变化不确定的环境。基于QoS的服务选择主要是指从待选的服务集合中选取满足局部或全局QoS最优的问题。基于QoS的服务选择主要分成两种类型:单个Web服务的选择和组合流程QoS优化问题。单个w曲服务的选择主要是根据用户的QoS偏好和最低QoS约束来选择最合适的35 浙江工业大学硕士学位论文w曲服务。组合流程QoS优化问题有两种策略:局部优化策略和全局优化策略。局部优化是基于贪心思想,在各个抽象节点选取局部最优的Web服务。全局最优则从全局QoS最佳的角度来考虑单个抽象节点的Web服务选取问题。全局的组合服务QoS优化问题是NP难的问题,随着服务数量的增多,计算的时间急剧增大。基于QoS的服务选择的研究工作主要有:Zeng[62J提出一种使用整数规划的方法解决全局QoS优化问题,使用有向无图(DirectedAcyclicGraph,DAG)来表示组合流程,使用商业的规划器来得到QoS全局最优的组合服务。张成文等【617】提出基于遗传算法的QoS全局优化算法,采用关系矩阵对染色体进行编码,用基因位表示组合服务中的任务,值为备选w曲服务。文献[68】利用马尔科夫决策过程(MarkovDecisionProcess,MDP)对组合服务进行建模,考虑到组合服务的流程结构特点给出两种值迭代算法。文献[69】提出利用启发式算法来获得组合流程的可接受的近似解,具有不错的发现效率。4.2.2QoS模型和管理QoS属性按照其适用范围的不同,可以分成领域相关的QoS属性和领域无关的QoS属性。定义4-4QoS模型:QoS模型Q是一一m维向量Q=锄,吼,...,%),其中m≥4。Q的前四维为领域无关的QoS属性,分别为服务价格、响应时间、可靠性、可用性:(1)服务价格(cost):一个Web服务的执行价格为用户调用该服务所付出的费用,用qcos,来表示。通常而言,服务价格由服务提供者来制定。(2)响应时间(time):一个w曲服务的响应时间为用户发出请求到收到服务执行结果之间的时间差,用‰。(S)来表示。Web服务的响应时间包括Web服务的执行时间和传输时间,因此响应时间可以通过以下公式来计算:‰。2k+‰(4—3)其中,W曲服务的执行时间k相对比较固定,但传输时间k随着网络的变化,其值是不确定的,因此通常根据历史记录的平均值进行估算:∑‘k。=生(4-4)fl‘为一次服务调用的传输时间,n为总传输次数。(3)可靠性(Reliability):一个w曲服务的可靠性是指web服务成功执行的概率,用g耐来表示。可靠性通过以下公式得到:RR 浙江工业大学硕士学位论文g耐:坚(4-5)其中心眈为服务在最大期望时间内被成功调用的次数,n表示服务被调用的总次数。(4)可用性(Availabil呦:一个服务的可用性是服务可访问的概率。可以通过以下表达式计算:g。v,=一la(4—6)£是服务在最近t时间内可用的总时间。该QoS模型指定了4种领域无关的QoS属性,这些属性所有Web服务都必须考虑,该模型也允许根据具体应用领域特点进行扩展。根据QoS属性获取来源的不同,我们将QoS属性分成动态型和静态型两种。前者是无法直接获取,通常需要从运行时的物理信息中计算得到,如可靠性、可用性和响应时间;而后者通常是由服务提供者直接指定,如服务价格。图4-5QoS信息的获取和管理如图4-5所示为QoS的管理模块。QoS监视器从服务执行引擎得到运行时的服务信息,如服务执行时间、传输时间、是否超时等信息写入日志,并计算更新服务注册中心中Web服务的QoS信息;服务提供者在发布服务时就指定了服务的价格等静态QoS属性。 浙江工业大学硕士学位论文4.2.3单个Web服务的QoS选取单个Web服务的QoS选取分成以下三个步骤:||l生成服务_Q。s矩阵上}矩阵标准化处理L丁根据用户偏好选择QoS最佳的服务图4-6单个服务的QoS选取步骤(1)生成服务一QoS矩阵定义4-5服务.QoS矩阵:假设WebrJl了务集#s={S,是,...,最}是满足抽象服务功能性需求的服务集合,Q=锄,q2,...,‰)为m维QoS属性,则服务一QoS矩阵如下图所示,其中qi』表示第f个服务的第,维QoS属性值。M口2q11q12q21qnlg。1(4—7)(2)矩阵标准化处理由于w曲服务QoS属性的特性不同,因此需要将其进行标准化。Web服务QoS属性对用户的影响分成两种类型:一种是积极型,一种是消极型,前者值越高用户满意度越高,比如可用性、可靠性和信誉度;另一种是消极型,值越高则用户的满意度越低,如响应时间和服务价格。因此,我们对于吼』∈魄,我们利用以下公式‘叫进行变换:qF’=qF—qJ”‘”劬一一万”q严一q4g,一一秽”/f矿一q,“”≠o^%是积极型属性/fq7“一qj椭≠o^乃是消极型属性(4—8)ifqJ一一qJ””=038m刖m吼吼;吼 浙江工业大学硕士学位论文其中,qqt是经过研,标准化后得到的值,劬”“qj”加分别是矩阵M口第歹列的最大值和最小值。经过变换后我们得到如下标准服务一QoS矩阵M口’:Mo’=qll’吼2’q2l’q21’吼I’吼1’M口’中所有元素的值都落入了【O,1】区间内,且其值越大用户越满意。(4—9)(3)根据用户偏好选取QoS最佳的服务定义4-6偏好函数:给定对ITI维QoS属性Q=缸,吼,...,‰),和抽象服务&以及其中的权重需求%={%,,%:,...,%>,那么偏好函数为:t厂(Q)=∑%×吼(4一lo)i=1对标准服务.QoS矩阵MD’的每行通过偏好函数进行计算,我们可以得到以下n维列向量:V=厂(墨.Q)厂(足.Q)厂(最.Q)(4—11)对向量V中的元素遍历,得到其中的最大值K=/(墨.Q),则S即为满足用户功能性需求的且QoS最佳的W曲服务。可以看出,一旦权重给定,就很容易通过上述偏好函数将多目标QoS的服务问题转化成单一目标的服务问题,此时就可简单比较服务的QoS以获得最满意的服务。但是用户通常面对繁多的QoS属性不知如何设定,此时可以通过预设一些QoS属性模板来解决。4.2.4组合w曲服务的QoS选取组合服务由于其组合流程包含众多w曲服务,因此需要通过计算组合流程的QoS来获取组合服务的QoS值,然后通过单个Web服务QoS选取的方法来获取QoS最佳的服务。表4-2四种基本控制流结构的QoS聚合函数QoS属性顺序(》)选择(?)并行(+)循环(术)m钆‰...‰ 浙江工业大学硕士学位论文表4—2给出了四种基本控制流结构的QoS聚合函数,其中最后一行为用户扩展的QoS属性,用户在扩展领域相关的QoS属性时,必须指定其四种基本控制流结构的QoS聚合函数。给定组合服务&,算法CalculateQoSOfCompositeProcess利用四种基本聚合公式,通过组合服务是的流程Sc.p来计算&的服务质量算:法:CalculateQoSOfCompositeProcess箱队:组合服务品输出:服务质量&.Q={qt,q2,...,q。)1.Foreachqi∈&.Q{2.If(p一---S)3·ReturnS.吼;4·ElseIf(,o.CF-一--t>)5·ReturnCalculateQoSOfCompositeProcess(£(户D));6.ElseIf(pCF一十)7-ReturnCateulateQoSOfCompositeProcess(£(户埘);8.Elself(pCF一?)9·ReturnCalculateQoSOfCompositeProeess(.《(p纠);10.Elseff(p.CF一木)11·ReturnCalculateQoSOfCompositeProcess(《(pJg));。’。。。。o·‘______●o___’___________o____o_____·o____o_____‘____o_______________o___。-_.__o____-___.________-__.-____-———————————一二————一我们以图3-3的控制流口fie,掌6)+(巳?c:d))为例子,来说明其QoS属性响应时间的计算过程如下: 浙江工业大学硕士学位论文‰。(力=Z二(口》(et+6),e27c:d)=鬣。(,二。(n.gr妇。,q卓6),名e(ctg撕r,d露砌c))(4-12、=尼。(尼。(口.吼彬正。(6.‰。),名。(c.‰一dq椭。))=max((a.9抽。-I-kxb.qd。。),(p。×c.9M。,Pd×d.qf拥。))可以看出,CalculateQoSOfCompositeProcess是自顶向下递归的方式不断将流程分解,然后分别计算各个单个服务的值来计算组合流程的值。这样的话,任意复杂流程的任意一种QoS属性,都可以通过以上方式来计算,只需指定该QoS属性的四种基本聚合公式即可。4.3本章小结本章对语义Web服务发现和选取的机制进行详细介绍。针对服务发现,首先分析两种基于逻辑推理的匹配机制的优缺点,然后提出一一种混合式的匹配度计算方法,以及基于该匹配度计算法上的服务匹配算法。在服务选取方面,首先介绍了QoS概念以及相关研究现状,然后给出基于QoS的单个wreb服务选取算法和组合w-eb服务的QoS计算方法。下一章将对抽象服务的组合机制进行详细介绍。 浙江工业大学硕士学位论文第5章基于语义回溯树的抽象Web服务自动合成文献【13]提出了基于回溯树的Web服务自动组合,该方法将搜索空间限制在回溯树范围内,极大程度的降低了搜索的范围和复杂度。但是,该方法在构建规则时没有考虑Web服务的语义和QoS,这必然会影响服务组合的准确性和用户的满意度。我们认为充分考虑语义和组合服务的QoS是语义Web服务组合的关键。本章在文献[13】的回溯树Web服务组合算法的基础上,对服务参数添加语义信息,提出一种基于语义回溯树的改进的Web服务组合方法SBT_ASC。本章先对语义回溯树的相关概念和性质进行了介绍,然后给出了SBT-ASC算法的完整步骤。语义Web服务的组合实际是寻找抽象服务、服务中心中的广告服务之间输入输出参数的匹配关系,因此,基于概念3.7的扩展,我们将这种参数之间的语义关系形式化,提出语义数据绑定,以及存储语义数据绑定的数据结构“语义绑定矩阵”的概念。5.1.1语义数据绑定定义5-1语义数据绑定:给定抽象服务&,和服务注册中心的所有服务集合职,参数Pa∈SJu品.0,见∈S.Ou最.I,其中S∈艘,若语义概念相似度口’=sim(p,:C,Pd:o>&.口,则称6=<≮,足,只,Pd>是满足抽象服务&概念相似度需求的一条数据绑定,如图5-1所示。b=sire(p,:C,Pd:C)>&以图5-1语义数据绑定示例语义数据绑定是对概念3.7在语义层面的扩展,如图5.2所示,存在着三种类型的语义数据绑定。 浙江工业大学硕士学位论文图(a)描述了抽象服务输入和广告服务输入之间的绑定,)X.inputl能语义匹配广告服务的一个输入鲫,甜f2。图(b)描述了抽象服务输出和广告服务输出之间的绑定,出output,能语义匹配抽象服务的一个输出OUtpUt2。表示抽象服务是否存在一个输表示广告服务是否存在一个输图(c)描述了广告服务输出和广告服务输入之间的绑定,表示两个广告服务,其中的一个广告服务是否存在一个输出output能语义匹配另一个广告服务的一个输入input。号廿警纠世竺号<;7L—jI\7sire(inputl:c,input2:o>SR肛sim(outlmtl:C,output2:c)◇厂_厂_◇上丝叫广告服务|I抽象服务卜坞{....。........。.............一I...........................一>以.口outputinlmUt;广告服务p—o叫广告服务{l—一sire(output:C,/nput:c)>&以(b)(c)图5-2三种语义数据绑定方式5.1.2语义绑定矩阵定义5-2语义绑定矩阵:语义绑定矩阵是存储所有语义数据绑定的数据结构,一个语义绑定矩阵M是一个m×n的矩阵,其中I删一,)∈s.Du&.,和勺房‰,。}eS.八j&.D分别是第i行和第歹列的标签,矩阵M中的元素M。可以表示为:鸭={》∥>2部训“C’∥o≥%%6.<晶%%P(5-1)我们以表5.1所示的广告服务集合和抽象服务为例,详细说明说明语义绑定矩阵的概念。表5-1广告服务集合和抽象服务示例F陀6ServicesS芝墨&●inputsbZ2{毛,毛){‘){f)outputs{D1){021{D3}{D4){0}若表5.1中存在如下数据绑定,使得其相关参数概念相似度值大于抽象服务的概念相似度阈值, 浙江工业大学硕士学位论文包=<墨,SR,Ol,O>62=<是,&,02,o>63=<最,SR,03,o>64=<是,S,i,‘>65=<&,墨,i,/4>玩=<&,S,i,毫>67=Stm(oI:C,0:c)>&.aslm(02:C,0:C)>SR.口slm(03:C,0:C)>是.口stm(i:C,‘:c)>&.口(5-2)stm(i:C,‘:c)>岛.口stm(i:C,毛:c)>&∥stm(04:C,之:c)>&.口则表5—1中的广告服务和抽象服务可以转化成以下5x6的语义绑定矩阵:M=臃良66玩其中,行标签和列标签如表5—2所示:岛也63表5-2行标签和列标签够123456IolD2D3吼D5Z●cjljZ2Z31415D(5-3)由于经过统计绝大部分Web服务的参数不会超过10个,因此能与一个Web服务的参数概念相匹配的另一个Web服务参数很少,因此矩阵M是稀疏矩阵,所以通常将该矩阵压缩存储。稀疏矩阵的压缩算法很多,本文不再赘述。5.2语义回溯树Web服务集合被转化成了语义绑定矩阵之后,我们为抽象服务中的每一个输出建立回溯树,本节给出语义回溯树的相关概念。定义5-3语义回溯树:给定一个语义绑定矩阵M。。。和一个输出对象o,一棵语义回溯树是一棵以集合{o)为根节点的树,可以形式化为一个三元组乙+:,其中:(1)root={0)是回溯树的根节点,0∈&.0。(2)V={u,v29.-.9K)是回溯树节点的集合,v/£(U{l})u(U坞})。 浙江工业大学硕士学位论文(3)E=Vxy×(U{MiJq)是语义回溯树有向边的集合,有向边从回溯树的底层指f∈{I,』f},∈{1,⋯,")向高层节点,其中1,3{M吖协)是矩阵M,,中所有非空节点的数据绑定集合。fE{1r.,”}J∈{l⋯.,H}(4)回溯树边集合E的任意一条有向边P=(K,Vd,b)满足:b.Pa∈屹人6.S.I∈v。(5)给定语义回溯树中的任意一条以根节点为终点的有向路径£=<白,...,%>,则Vee均满剧131:6.S.,n(Ue.b.%)一9。P∈F条件(1)和(2)表示语义回溯树的每个节点都是一个Web服务参数的集合;条件(3)和(4)说明,语义回溯树的每一条边都关联一个数据绑定;条件(5)避免了语义回溯树中的路径上出现参数的循环转化现象。定义5-4生成路径和生成源:给定一棵语义同溯树to’-和其中的一个非根节点V,从y到root的有向路径称为输出0的一条生成路径,记作f。。,,节点v为路径z,。。,到0的生成源。若生成源V满足V∈品.I,则称V为满足抽象服务&需求的有效生成源,路径£,.~为有效生成路径。定义5—5有效回溯树:若对于抽象服务SR,语义回溯树to+=的所有叶子节点v都为有效生成源,则该语义回溯树为有效的语义回溯树。根据表5.1所示服务集合,图5-3(a)是一棵非有效树,因为其叶子节点{i4}不是抽象服务输出集合的子集,而5-3(b)所示回溯树叶子节点{i)为抽象服务输入集合的子集,因此为一棵有效回溯树。{i2){i21{m(a)非有效语义回溯树(b)有效语义回溯树图5-3有效语义回溯树与非有效语义回溯树 浙江工业大学硕士学位论文5.3基于语义回溯树的服务自动组合算法基于语义回溯树的Web服务组合方法分成三个步骤:生成语义绑定矩阵、生成语义回溯树,取QoS最高的生成路径合成组合服务。这一小节分别对这三个步骤以及相关算法进行详细介绍。5.3.1语义绑定矩阵的生成与维护给定服务注册中心的所有服务的集合职,以及抽象服务&,语义绑定矩阵通过执行以下算法自动生成:lira:,GenerateSemanticBindingMatrix输入:服务注册中心的所有服务的集合·娘、抽象服务&输出:语义绑定矩阵M,以及M的标签序列‘、c_,1.CreateanewsetofparametersA=&Ju(US.⑦;S∈SRCreateanewsetofparametersB=颤.Du(US.7);S∈职CreateanewA.sizexBJizeMatrix^f;//创建一个A.sizexB.,ize大小的矩阵Createanewlistoflabels‘'fE{l,4咖};倒建长度为A.size大小的行标签序列CreateaHewlistoflabelscjJ。‰.,曰.廊);//创建长度为BJize大小的列标签序列AddanparametersofAintol;//将A中所有元素加入,;AddallparametersofBintocj;//将B中所有元素加入巳ForeachSt,&∈SR{If(qout∈墨.D,in∈蔓』j口。=sim(out:C,in:o≥&以){CreateaHewDataBindmgb_<墨,逆,out,in>;CreateanewMatrixEntrym;Set坞=mwherer=D讲^勺=in;)ForeachS∈SR{if(Sin∈足J,in’∈SJj口’=sire(in:C,/n’C1)≥足眉){CreateanewDataBindingb=<晶,S,in,in’>;CreateanewMatrixEntrym_<6,口’>;SetMo=mwhere‘=in^巳=砌’;)IfIjout∈S.口out’∈足.D≥口’=sire(out:Cout’:C)≥&.口{CreateaHewDataBindingb=<&,S,otlt,out’>;CreateanewMatrixEntrym=;SetMⅡ2mwherer{20ut/xcj=OUt;厶i乱支丘z&掌:加n::BM坫坫"墙抄加n尥船M 浙江工业大学硕士学位论文27·ReturnM,,;,勺;上述GenerateSemanticBindingMatrix算法遍历服务注册中心的服务集合躲和抽象服务s。,查找并生成语义绑定矩阵。算法第l和第2行分别获得抽象服务输入集合和广告服务输出集合的并集4,以及抽象服务输出和广‘告服务输入之间的并集B。第3—7行为算法初始化过程:初始化A.sizexB.size大小的矩阵M,行标签序列“列标签序列C,,并将A、B中的所有元素分别添加至,:和ci。第8.14行遍历广告服务之间的语义数据绑定,并为矩阵中相应位置赋值。第15—26行遍历广告服务和抽象服务之间的语义数据绑定,将主要分成两块:第16.20查找抽象服务的输入和广告服务的输入之间的语义数据绑定,并添加至矩阵相应位置;第21—26行查找广告服务的输出和抽象服务的输出之间的语义数据绑定,并添加至矩阵相应位置。由于前文提到Web服务的参数个数极少会超过10个,因此我们很容易得出GenerateSemanticBindingMatrix算法的复杂度是O(n2),甩为服务注册中心服务的数量。随着服务注册中心Web服务数量越来越多,该复杂度对于实时计算来说是不能容忍的。考虑到算法中第8.14行查找计算的只是服务注册中心中的Web服务,因此可以将8.14行在服务注册中心启动时完成。在运行时只需完成&与s之问的语义相似度计算,此时计算复杂度是对于Web服务数量n的线性增长。将算法的一部分在服务注册中心启动时完成,则服务注册中心需在启动时创建并维护一个动态的二维语义绑定数组M。此时需要考虑服务提供者执行发布、删除、更新Web服务操作时对数组M的影响。算法AdjustMatrixWhenDeleteWS当删除服务操作发生时动态调整数组中的元素;发布操作的矩阵调整算法AdjustMatrixWhenAddWS与GenerateSemanticBindingMatrix算法类似,而删除操作的矩阵调整算法AdjustMatrixWhenUpdateWS相当于先执行AdjustMatrixWhenDeleteWS然后执行AdjustMatrixWhenAddWS,本文都不再详细描述。算法:AdjustMatrixWhenDeleteWS输入:删除的服务S、语义绑定矩阵M输出:无1.Foreachout∈S.O{2.Delete‘,rowiofMwhenout一,;;硎时除数组的第i行3.)4.Foreachin∈SJf47 浙江工业大学硕士学位论文5.Delete勺,column,ofMwhenin一勺;//删除数组的第j列可以看出算法AdjustMatrixWhenDeleteWS只是线性级别的复杂度,因此在服务注册中心启动时创建并维护动态数组的代价是完全值得的。5.3.2语义回溯树的自动生成给定一个语义绑定矩阵M、抽象Web服务SR,以及&中的一个输出对象O,可以通过以下算法自动生成语义回溯树:算法:GenerateSBT输入:语义绑定矩阵M、抽象Web服务SR、输出对象D∈&.0输出:一棵语义回溯树c一 浙江工业大学硕士学位论文算法GenerateSBT采用自顶向下逐层地为输出对象0构造语义回溯树。算法第1、2行创建并初始化了一+棵语义回溯树。第3、4行分别创建一个先进先出的队列f@倒8和一个回溯树节点tNodem层次构造语义回溯树。第5行创建一个布尔类型的变量flag,用于构造时标识是否存在能生成子目标的子树。第5、6行分别将根节点加入顶点集合y和队列tQueue中。第8.25行即为整个语义回溯树的构造过程,每一次循环都为当前子目标tNode添加所有可能的子节点。第11行判断该当前节点鳓如是否为抽象服务妹输入的子集,若是则说明路径霹。撇.+~为有效生成路径,跳出该次循环;若否,则取出tNode中不在&.J中的元素集合Dt舭。第13一14行为D£眦中的每个输出子目标O‘判断是否存在能生成它的语义数据绑定。其中16行找出能生成子目标D’的矩阵的第勺列;第17行M,占.s.,n(U如.%)一a条件判e∈e’断绑定b的源对象是否在路径c~。~,的目标集合对象中出现过,避免循环转化的可能,若未出现过,则第14一19行为tNode构造子节点cNode=(tNode-(S,.0c、tNode))uM,白.≮.,,并将其添加至f@倒P的队尾。第26.33行判断只要D眦存在一个子目标不能被生成,那么移除该节点:若该节点的父节点不包含其他子节点,那么说明该路径无效,向上移除节点直至其父节点存在其他子节点。当队列tQueue为空时,构造结束,得到一颗语义回溯树。算法GenerateSBT保证生成的语义回溯树都是有效回溯树,即每一条从叶子节点到根节点生成路径都是有效路径。我们以表5一l所示的服务集合以及其生成的矩阵(公式5.3)为例,详细说明利用GenerateSBT算法构造语义回溯树的过程。4q 浙江工业大学硕士学位论文IO“e=e:{o}:taue“e:㈨,{豇),{i3痧)o∽◇(a)(b)注:bt、幻、⋯、幻为边关联的数据绑定fQk蹦P:{i),{丑):tQueue:null图5_4SBT的构造过程{f1)◇{i3弗}::{n}整个构造过程如图所示,其构造过程通过以下几个步骤完成:Stepl:初始情况如图5-4(a)所示,此时tQueue中只有以输出对象{o)为根的节点。Step2:节点{D)从tQueue中弹出,查询矩阵M,中c,=D的第6列发现有3个非空元素,分别存在数据绑定bi、吃,乜能生成0,遂构造三条边<{‘),{D),岛>、<{之),{D),如>、<{‘,‘),{D),良>,并将{‘)、{之)、{‘,毫)添加至队列tOueue中,如图5—4(b)所示。Step3:节点{‘)、{之}分别从tOueue中弹出,从矩阵的相应列中查询能够生成目标的数据绑定,生成边<{f),瓴),64>和<{‘),{之),岛)并将边的生成源添加至tQueue中,如图5-4(c)所示。Step4:弹出{‘,is)节点,发现列cj=f5列为空,即没有能生成f5的数据绑定,因此移除{‘,/5}节点以及边<{毛,/5},{D),包>;判断节点{d£品.1,因此{‘)是目标D的有效生成源;继续弹出节点{f4),从矩阵中查询并构造边<{f),{‘>,65>,因此也是目标0的有效生成路径。此时如图5-4(d)所示,回溯树的所有叶子节点都为目标0的有效生存路径。5.3.3合成QoS最佳的组合服务通过对抽象服务的输出集合足.D={D1,02,...,吃)构造语义回溯树,我们得到了语义回溯树集合r=婶,乞’,...,£’。},若第i棵回溯树t‘的叶子节点数量为Ⅳ“),那么对于抽象服务颤就有∑Ⅳ(之+)种组合方案,对于QoS属性集合Q={仍,q:,...,吼)而言,全局的QoS优i=1化耗时会非常大,这对运行时的服务组合体验来说是灾难性的。基于这种考虑,我们采、j●rmp嗲j! 浙江工业大学硕士学位论文用贪婪法,选择每条QoS最佳的执行路径,然后将这些路径合成为组合服务。给定语义回溯树和抽象服务,算法FindBestExePathFromSBT从语义回溯树中获得QoS最佳的执行路径。算法:FindBestExePathFromSBT输入:NY.NN树to+=、抽象服务&输出:Qos最佳的执行路径蟹~一●——————————————————————————————————————————————____———————____-————————--_●——_——————_—————————————_—————————————一1.CreateaHewpath刁;2.CreateaHewvariableO=0:3.ForeachleavenodetNode∈V{//遍历树的所有叶子节点4.Set£、=£tN砌H。;,,将执行路径上所有边节点关联的数据绑定的源服务的QoS根据抽象服务需求加权求和}r'fength5.SetQ(e3=∑%×(∑片(巳白.sA;i=1j=l6.IfO(0>Q{7.r/=f:8.>9.)10.Retu珈77:通过为回溯树集合中的每一棵回溯树通过算法FindBestExePathFromSBT,得到QoS最佳的生成路径集合。给定生成路径集合和抽象服务,算法PathToCompositeService将生成路径集合合成组合Web服务。算法:PathToCompositeService输入:抽象服务SR,以及是.D=ol,02,⋯,%)对应的生成路径集合三=氍I,芒2,...,£^}输出;组合Web服务&1.CreateaHeWProcessP5<+,D,B>;2.Foreach£=<岛,e2,...,%>∈L{3.Addq易,咯白intoB;//将e中第一和最后一条边所关联的数据绑定添加到口中4.CreateanewCompositeProcessp’—◇,Dt,B’>;//创建一条顺序组合流程5.Forf=2tok{6.Add丘易intoB’:’.Adde;b。s:intoDj;8.}9.Addp’intoD;10,)1bCreate/tHewCompositeServiceSc=<&,1,SRJ,&谚p,Q>;//创建一个新的组合服务12:Foreach吼∈Q{13.Set嚷=£(尸);14.)15.Return品; 浙江工业大学硕士学位论文算法首先创建一个并行流程P-<+,D,B>,然后将每条生成路径的第一和最后一条边所关联的数据绑定3tJAP的数据绑定集合B中;然后为每一条生成路径创建一条顺序流程P’,并将其加入P的依赖集合D中;最后创建一个新的组合服务,其输入输出集合分别为抽象服务的输入输出集合。m条生成路径合成的组合Web服务如图5.5所示。5.4本章小结D={一,岛9---,成)B={ell,ez⋯..,%1)u{q女,e2女9..-9‰)图5—5组合服务合成示例本章基于文献[13]提出一种基于语义回溯树的抽象服务自动合成算法,该算法将语义w曲服务之间的关系转化成语义绑定矩阵,然后通过对矩阵的搜索为每一个输出分别构造语义回溯树。在得到语义回溯树集合后,根据Web服务的QoS选取QoS最佳的生成路径进行合成以满足抽象服务的需求。 浙江工业大学硕士学位论文第6章医疗领域的服务集成案例本章首先介绍了业务流程驱动的语义Web服务组合框架的设计与具体实现,然后针对医疗领域中患者就医的流程进行分析,并采用该半自动组合框架来实现,最后详细分析了流程中的灵活性和容错性问题。6.1半自动语义Web服务组合框架的设计与实现6.1.1开发工具和环境(1)Eclipse3.7RCP平台和GEF框架Eclipse是一个开放源代码的、基于Java的可扩展的集成开发工具ODE)。Eclipse富客户端平台(RichClientPlatform,RCP)是Eclipse平台的最小插件集,旨在为基于Java的桌面应用开发提供了不同与AWT/SWING的另一种选择。图形编辑框架(GraphicalEditingFramework,GEF)是基于Eclipse平台的图形化编辑框架,允许开发人员以图形化的方式展示和编辑模型。本文在EclipseRCP和GEF上开发流程编辑器。(2>MindSwapOWL—SAPIMindSwapOWL—SAPI是由马里兰大学(CollegePark分校)的MindSwap实验室开发的Java程序应用编程接口,可用于读、写、执行OWL—S描述的语义Web服务。(3)JavaSDK6Java是一种平台无关、面向对象的编程语言。JavaSDK是Oracle公司提供针对Java开发的产品,包括Java运行时环境、Java工具和Java基础类库。(4)Axis2ApacheAxis2是一个Web服务ISOAP/WSDL引擎。Axis2是Axis的后续版本,它具有更强的灵活性和可扩展性,支持HTTP、SMTP、JMS等传输协议,支持内置的Web服务寻址(WS-Addressing)协议,提供了阻塞和非阻塞的API。(5)Jena和PelletJena是一个用于构造语义w曲应用的Java编程框架,它提供了一个可扩展的类库用于处理RDF,RDFS,RDFa,OWL和SPARQL数据。Jena还提供了一个基于规则的OWL和RDF推理引擎,同时也支持外部的推理引擎如Pellet。Pellet是一种基于Tableau算法的描述逻辑推理机,由美国马里兰大学的MindSwap实验室开发。5冀 浙江工业大学硕士学位论文6.1.2系统设计与实现考虑到现有的Web服务大多基于WSDL描述,我们采用本体标注语言OWL—S对基于WSDL的Web服务进行语义标注,并对组合流程进行建模。OWL—S顶层本体有三个部分组成:ServiceProfile、ServiceProcess、ServiceGrounding。ServiceProfile描述了服务的轮廓,我们将抽象服务映射到只含ServiceProfile的OWL—S文件中用于进行语义匹配。ServiceProcess有三种类型,原子流程AtomicProcess、组合流程CompositeProcess、抽象流程SimpleProcess。我们将ServiceProcess为AtomicProcess的OWL.S服务用于描述原子Web服务,CompositeProcess用于描述组合流程,含有CompositeProcess的OWL.S服务为组合服务,其中将顺序、并行、选择、循环这四种控制流结构分别映射到Sequence、Split—Join、If-Else、Repeat-Util元素上,数据绑定则映射到Binding元素上。ServiceGrounding将每一个AtomicProcess的OWL-S映射到WSDL的operation元素上,每一次原子流程的调用实际都是对于底层WSDL的operation的调用。图6.1显示了OWL—S与WSDL的映射关系【461。●●⋯●⋯。⋯●一/O、礼一S、ProcessModelDL-basedTypes,.-⋯铲⋯⋯⋯’畲.-.⋯·Atomic.ProcessInputs/Outputs@8一O—per≮ation一彩Messa—ge—I1●Ii●IZ;BindingtosOAP,HTTP,etc;●WSDL,’-●●●⋯⋯●●●●-●●-●----●------●●●●●●-●●●●,图6—1OWL—S与WSDL的映射关系如图6—2所示为业务流程驱动的半自动语义Web服务组合系统的架构图,分成三个层次:数据持久层、用户交互层和核心逻辑层。数据持久层提供了服务数据的持久化机制,并提供透明的查询接口为上层服务;核心逻辑层实现了组合服务的执行、抽象服务的自动组合机制,是整个半自动服务组合框架的自动部分;用户交互层提供了用户交互的入口,是半自动组合框架的手动部分。组合框架涉及到三种用户角色:服务提供者发布并标注原子Web服务;组合流程设计者设计组合流程;组合平台提供者维护QoS模 型。核心逻辑层@浙江工业大学硕士学位论文用户交互层{————牮|伽瞻骄面i型}虿一:—]l组合模块l:垂⋯L数据持久层:一..一,.,一一...。。...一一...一.、...一——一.一一一..一.一。一一.一一、一一..一一。一一..⋯;图6-2业务流程驱动的半自动语义Web服务组合架构(1)数据持久层数据持久层是组合框架中进行数据持久化的部分,存储了OWL—S描述的语义Web服务描述以及对应的WSDL描述、基于OWL—DL的相关本体。主要包含以下四个模块:·本体库:存储了语义Web服务相关的本体,由于本体大多为文本文件,因此我们使用ApacheHttpServer进行存储,利用Jena作为本体读写的api,Pellet推理机作为OWL本体的推理工具。·服务注册中心:注册了所有OWL—S标注的语义w曲服务,包括原子服务和组合服务,除此之外还包含了用户管理、组合流程版本管理等内容。该模块采用MySql数据库进行存储。·QueryInterface:该模块基于外观(Facade)模式,对访问持久层的上层模块提供透明一致的接口,并提供了语义缓存机制,即在服务注册中心启动时扫描服务注册中心并生成语义绑定矩阵,该矩阵作为语义缓存使得进行SBT-ASC组合算法时大大减少查询时间。与5㈢服务罚丽谭■阵磊习眄五习l竺兰竺竺兰!J运行时信息管理{妒一Q唧№妇。 浙江工业大学硕士学位论文(2)用户交互层用户交互层提供了不同用户与底层进行交互的接口,包含三个模块:·流程设计器:为流程设计人员提供一个可视化的建模环境,流程设计人员用拖拽的方式可视化的方式建模并生成OWL—S描述的组合服务。该模块基于EclipseRCP平台和GEF框架开发,如图6.3所示。嘲鞭簟嘲嘲鞠黑■黑———黼黼粥孵㈣女■蝉史鞭争蜘噍.+⋯{~图6-3流程设计器界面·服务标注模块:用户交互层的核心,包含以下功能:(a)对W曲服务进行语义标注;(b)读取数据库中的本体和语义web服务提供给建模人员和服务提供者;fc)将数据持久化至相应数据库。·QoS配置:平台管理者可以通过该模块对QoS模型进行编辑。当平台管理员新增一个QoS属性时,必须打包上传该QoS的计算类,该类必须被命名为QoS+Calculator模式,以便Java程序通过反射方式加载;且必须实现QoSCalculator接口,即必须实现顺序、并行、选择、循环四种聚合方式,isPositiveO方法指定了该QoS属性是积极型还是消极型QoS,isStaticO方法指定了该属性是否是静态值,若是,则服务提供者在上传服务时必须指定该值,否则将通过calculate()函数计算得到。 浙江工业大学硕士学位论文pnb工iGinterface00SCaleoiatcrjpnb王icdoublecaiculate{);publlcbool@sn:8Static();pub!icbooleanisPositive();Dublicdoublese昏enceCalca!ator(doubleqi,doubleq2);Dubllcdoublepara王三ecea王ct主aco:(doubleq王,double啦);Dublicdonbl@1f£王3eca王co主aecredoubleq2,doubleq2);Dubllcdoubleicopca!CalaulaDorIdouble啦,doubleq2)jlj图6_4QoSCaculator接口(3)核心逻辑层核心逻辑层是服务组合框架的关键部分,包含以下四个模块:·服务发现模块:实现了基于语义的Web服务发现功能,并对外提供本体概念匹配度计算的API。·服务组合模块:实现了基于语义回溯树的Web服务组合方法SBT-ASC,对于接收的每一个抽象服务请求,生成语义回溯树集合进行抽象服务的自动合成。如图6—5所示为组合模块实现类图,其中GenerateSBT类负责生成语义回溯树,ServiceComposer类通过构造注入的方式注入语义回溯树集合和QoS计算器,然后提供API给服务执行引擎调用。图6-5服务组合模块部分类图·QoS管理模块:主要负责QoS的监控和管理,QoS的计算功能。QoS为执行引擎提供了一个回调函数log用于将运行期的服务执行记录写入日志文件中。·执行引擎:对服务调用者发起的每次组合服务调用,服务执行引擎调用具体服务(WSDL描述的服务)进行执行,并在运行期调用服务发现和组合模块进行局部的 浙江工业大学硕士学位论文6.2抽象服务自动发现和合成。如图6-6所示,执行引擎ExecuteEngine对mindswapOWLS—API的ExecutionEngine类进行扩展,并实现了Runnable接口用于流程的并发;ExecuteEngine还组合了计时器、ServiceMatchmaker、ServiceComposer、进行运行时的服务发现和组合,并在发生事件时执行QoSMonitor的log方法写入日志。图6-6执行引擎部分类图6.2.1医疗流程描述某医院内部由于内部分工不同,最初都各自进行管理,拥有不同的信息系统,如挂号部门HIS挂号系统、门诊部门NIS医嘱系统、收费部f-jEMR收费系统等,这些系统由不同的开发商开发,采用不同的技术方案和标准。现在随着医院内部业务自身发展的需求,医院内部想把各个系统以Web服务的方式整合起来,创建一个服务共享的平台,满足业务发展变化的需求,同时不破坏原有的医疗流程。基于前文所述服务组合方法,针对医疗领域来构造组合服务系统。下面以一个完整的患者就医过程为例,来研究医疗领域的服务组合以及实现。在进行患者就医的过程中,组合服务系统将以一定的流程调用一系列的Web服务来完成就医流程,这些Web服务都是对已有的医疗信息系统已有功能的封装,有些服务需58 浙江工业大学硕士学位论文要人机交互,涉及到信息录入等,如HIS挂号服务需要患者提供信息,产生一个挂号单;医嘱系统需要医生对患者进行诊断后,在交互界面上写下医嘱。图6.7患者就医流程分析如图6—7所示是一个完整的患者就医的流程,包括病人挂号、诊断、收费、检查,取药等等,这些服务分属于不同的信息系统,如病人信息登记、挂号服务属于HIS挂号系统,诊断服务NIS医嘱系统等。这些服务有些是对已有功能的简单封装,如挂号服务,有些属于动态流程,需要被定义为抽象服务,在流程执行时选择合适的服务,如检查服务可以根据患者诊断情况选择合适的检查服务。6.2.2流程实现基于语义的Web服务需要对医疗领域进行本体建模,我们根据实际医疗领域的实际业务知识,用斯坦福大学的本体建模工具Prot696来进行医疗本体建模,医疗本体片段如下图6—8所示。 浙江工业大学硕士学位论文LiteralRecordBPRecordBRTRecordURTRecordMedicallmaae。夺[夺器。夺[夺船BookjngNumberCreditCardNumberFlightNumberHealthlnsuranceNumberPatientIDPhysicianIDSe甜NumberTelephoneNumberTrans口0nNumber擎DevicelDBPDevicelDBRTDevic剖DURTDevice|DX—RayDevbelDCTDevicelDRegistrationlD口Organisation节CommercialOrganisationVlnsuranceC0mpanyHeanhJnsurance节PublicOrganisafion窜MedicalOrganisationEmergencyStationVHospital窜WardOperatingRoomRoom节Person:Patient节PhysicianEmergencyPhysiciani~H0spnaJPhyslcianT,~:#n^^*;^^⋯图6-8医疗本体的Prot696片段建立相关的领域本体之后,将已有的医疗功能模块开发成基于WSDL的Web服务,然后将这些Web服务进行语义标注,生成规范的OWL.S文档。针对需要病人和医生进行互动的活动,如各种检查服务,我们通过以病人ID为种子随机生成检查报告和诊断结果的方式来模拟实际的检查和诊断,这样可以保证每一个病人的检查结果一致。针对该应用案例,我们开发的服务如表6.1所示,服务的开发细节不是本文的重点,因此不作赘述。表6-1服务注册中心中的Web服务列表提供方服务名称服务描述输入输出HIs挂号系统Registration挂号PatientlDRegistrationlD一~~一~一~~一一嘶~一~~一一~吣⋯~~嗽一一一一一 浙江工业大学硕士学位论文PafientIDBPExana血压BPRecordBPDeviceIDLIS实验室信PatientDBRTExam血常规BRTRecord息系统BI∞eviceIDPatien④URTExam尿常规£碾职ecordURTDeviceIDX—RayExamX光透视PafienⅡDRIS放射科检X-RayDeviceIDX-Raylmage验系统PatientIDCTExamCTCTImageCTDeviceIDCIS临床信息TreatedACKTreatment临床治疗EmergencyStation系统ChargeltemGetWL医疗警告McdicalRecordWarningLevelGetCreditCardNumbyPID获得信用卡号PatientlDC11editCardNumber综合信息系统GetDoctByWL获取治疗医生WamingLevelPysicianlDGetEmergByDoct获得治疗科室PysicianlDEmergencyStationNIS医嘱系统Diagnose门诊RegistrationIDMedicalOrderChageByMedicare医保卡计费HealthlnsuranceNumberPaidACKEMR收费系统ListOfChargeltemsChargeByCreditCard信用卡收费CreditCardNumberPaidACK药品管理系统TakeDrug取药DrugTakedACKListOtDrugs我们将经过标注的语义Web服务发布至服务注册中心中,然后通过流程设计器设计流程,整体流程如图6-9所示。61 ◆ch#I豳坦is扭抽n{蠢一1一,⋯一.,一一,一⋯2。一,~Q譬熙粤‘蹙噤巴,,r;魄{一⋯+u~mro~一⋯-一,。镬I釉垂啦鲥∞j硅萋s;e驯eMe毒·麴D;驴si。}■1i蓬se单H口h一一甚~一一图6-9患者就医的流程定义其中,我们将检查(Ex锄ination)活动定义为抽象服务,其抽象服务定义owL—S的描述片段如图6.10所示:ExaminationService《/profile:serviceName>cprocess:hasInputfdf:,fso“rcf;“霉PatientID”,)cproces5:hasInputrdf?r£so“r髓-”#艇智ieel0。加《1ist:first></list:first)(1ist:rest:)</process:Sequence,‘/list:First>c/lis—t:rest></process:Sequence></process:cc“poseOf>‘P”oc《leissst:5:feqiurestnc)。’</list:first></process:Sequence)《/llst:first)</process:composeO刊图6.12生成的检查组合服务片段从该组合服务描述文件中可以看出MDCT替代了落后的CT技术被服务组合模块所选择。这样的话,只需做少量的工作,就可以将新增的服务集成进已存在的组合服务系统之中,达到一定的动态业务适应能力。(2)容错能力考察为了考察组合服务系统的容错性,我们假设医院的医保卡收费发生故障不可用,将其从Axis2中移除(在服务注册中心中保留,即能被发现,但实际调用则会抛出异常),然后在不改变组合流程定义的情况下重新运行上述案例。将生成的组合服务描述文件输出至文件中,其付费服务片段如下图6—13所示:m饥 浙江工业大学硕士学位论文。(process:CompositeProcessr盱:tO=-”eha’驴Proc£5#”}(ser、,ice:describes,‘嘶0re50“rc£5$⋯‘/’‘service:isPcesentedS“Jr够?蹭$o“rf壮’ch}一葶岢鼬’v£ce”/}‘orOCeSS:service黼x*£:tonq=”en“’Char童eSe仲ice‘/DrOCe$S:$ervicemme>‘pmces$:b.‘I婶址r町?雌so“rc牡’#。i。{ofcha78#:tem;’/,‘p’·0Ce$$:haslnvutrdf:r£50#rce-“=Patie^tIO”/}</process:co叩oseOF>‘process:Performr抒:曲e¨扣。http://localhest:8毋80,axis2/serVices,#e驰cal,6etcredit(a?棚u礴e一∞”)c/proceSs:hjsOataFrom></process:Perform)_‘process:thePar趣rdf;resource=”#C’editCa州Nu$bef”/,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭