《基于语义web的动态服务组合模型》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
知识水坝论文华中科技大学硕士学位论文基于语义Web的动态服务组合模型姓名:刘昕申请学位级别:硕士专业:计算机软件与理论指导教师:刘云生20060511 知识水坝论文华中科技大学硕士学位论文摘要随着互联网技术与应用的迅速发展,基于Web服务的分布式计算模式正在成为技术发展的趋势,而相关标准的制定和业界厂商的极力支持也加速了Web服务的发展。然而,随着Web服务应用的深入,单个简单的Web服务已经无法满足实际的应用需求,人们常常需要组合多个Web服务以完成一个较复杂的任务。传统的方法是客户端根据需要人为的选择一些合适的Web服务,然后定义这些Web服务之间的交互过程,并对其进行硬编码来完成Web服务组合。但是由于Web服务的数量越来越庞大,通过人工进行服务组合是不现实的,而且服务的质量也得不到保障。所以必须对Web服务进行动态组合。Web服务动态组合是指程序或代理自动挑选和组装适当的Web服务来完成任务,而只需用户在高层次上给出一个格式正规的任务描述即可。论文首先对Web服务组合的相关技术和标准作了深入的研究,发现只有加入语义信息才能使得Web服务的动态组合变成可能;然后给出了一个基于语义的Web服务组合实现模型ARTs-WSC,该模型通过对Web服务增加语义描述和本体的推理机制,实现了服务的动态组合;接着重点分析了ARTs-WSC的层次结构,并提出了一种基于本体的描述语言OWSL;最后讨论了基于本体的逻辑推理。关键词:Web服务动态服务组合语义WebI 华中科技大学硕士学位论文AbstractWiththequickdevelopmentofinternettechnology'sapplication,thedistributedmodebasedonwebservicehasbeenthetrendofthetechnology'sdevelopment,andthewebserviceisalsopromotedbytheestablishmentofrelevantstandardandmanufacturer'ssupport.Butthesimplesinglewebserviceisshowingitsflawinpracticalneed,soweneedtocombineseveralwebservicestoachieveacomplicatedtask.Traditionally,tocombineseveralwebservicesclientmanuallychooseproperwebservicesaccordtoneed,definetheinteractiveprocess,andcodeitforcely.Butduetotheincreasingwebservices,itisnotrealistictocombinethemmanually,evendo,theperformanceisdoubt.Sowemustcombinewebservicesdynamically.Thedynamicalcombinationofwebservicesisdefinedastouseprogramoragentautomaticlychooseandcombineproperwebservices,andwhatweshoulddoisonlytogiveastandarddescriptionatahigheradministrativelevels.ThesisfirstresearchonthetechnologyandstandardofWebServicecomposition,whichpresentthatitispossibletocomposetheWebServicebyusingSemanticinformation.Then,wegiveaDynamicWebServiceCompositionModelusingSemanticWebwhichisnamedARTs-WSCandrealizedbyaddingsemanticdescriptionofWebServiceandthemechanismoftheontologyreasoning.WiththefollowingweanalyzethecompositionandtechnologyoftheSemanticWeb,andgiveadescriptionlanguagenamedOWSLwhichisbasedontheontology.Atlast,wediscussthereasoningbasedontheontology.Keywords:WebServiceDynamicWebServiceCompositionSemanticWebII 华中科技大学硕士学位论文独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。学位论文作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密□,在_____年解密后适用本授权书。本论文属于不保密□。(请在以上方框内打“√”)学位论文作者签名:指导教师签名:日期:年月日日期:年月I 华中科技大学硕士学位论文1绪言1.1问题的提出和研究意义随着互联网技术与应用的迅速发展,基于Web服务的分布式计算模式正在成为技术发展的趋势,而相关标准的制定和业界厂商的极力支持也加速了Web服务的发展。然而,随着Web服务应用的深入,单个简单的Web服务已经无法满足实际的应用需求,人们常常需要组合多个Web服务以完成一个较复杂的任务。由于各种Web服务可能是运行在各种异构系统中,以不同的方式创建、用不同程序语言实现、由不同供应商提供的,那么服务的请求需要根据特定的应用背景和需求进行合理的服务组合。传统的方法是客户端根据需要人为的选择一些合适的Web服务,然后定义这些Web服务之间的交互过程,并对其进行硬编码来完成Web服务组合。例如WSCI和BPEL4WS都对如何将多个基本服务组合成一个复杂服务做了描述,但是这样的做法使得Web服务组合是不灵活和难以维护的。语义Web的出现使得Web服务的动态组合变成可能。Web服务动态组合是指程序或代理自动挑选、组装和配合适当的Web服务[1]来完成任务,而只需用户在高层次上给出一个格式正规的任务描述即可。1.2国内外研究现状1.2.1Web服务相关技术及标准W3C对Web服务定义如下:Web服务是由URI标识的软件应用程序,其接口和绑定可以通过XML构件进行定义、描述和发现,Web服务支持通过基于因特网的[2]协议使用基于XML的消息与其他软件应用程序直接交互。在Web服务中存在三种角色:服务提供者(ServiceProvider)、服务请求者(Servicerequester)和服务代理(Servicebroker)。服务提供者向服务代理发布其能够提供的服务,当服务请求者发出服务请求时,服务代理负责寻找对应的服务并提供给服务请求者,其交互过程如图1.1所示。Web服务主要由3种基本结构单元组成:SOAP,WSDL,UDDI。简单对象访问协议(SOAP)简单对象访问协议(SOAP)是序列化调用位于远程系统上的服务所需信息的标准方法,这些信息可以使用一种远程系统能够读懂的格式通过网络发送到远程系统,1 华中科技大学硕士学位论文服务发布者发布绑定服务服务查找请求者代理图1.1Web服务架构而不必关心远程系统运行于何种平台或者使用何种语言编写。SOAP以XML格式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。SOAP本身并没有定义任何应用程序语义,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制,定义了一个简单的表示应用程序语义的机制。这使SOAP可用于联合各种现有的网络协议和格式,包[3]括HTTP、SMTP和MIME,并可被用于消息传递到RPC的各种系统。在SOAP体系结构有四个主要的部分:1.SOAP信封:用于描述消息内容和处理方法。2.SOAP编码规则:定义了一个编码机制用于交换应用程序定义的数据类型的实例。3.SOAPRPC表示:定义了一个用于表示远程过程调用和响应的约定。4.SOAP绑定:定义了一个使用底层传输协议来完成在结点间交换SOAP信封的约定。简单的说,SOAP提供了使用完全独立于平台的访问服务、对象和服务器的技术。通过SOAP,能够实现查询服务、调用服务、与服务通讯并处理服务等功能,而不用去关心远程系统的位置、所在的操作系统或平台到底是什么样的。统一描述、发现和整合(UDDI)统一描述、发现和整合建了一个平台独立、开放的框架,通过因特网来描述服务,发现业务,并且整合业务服务。它是一套基于Web的、分布式的、为Web服务提供2 华中科技大学硕士学位论文的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务[4]注册以使得别的企业能够发现的访问协议的实现标准。通过使用UDDI的发现服务,企业可以单独注册那些希望被别的企业发现的自身提供的Web服务。企业可以通过UDDI商业注册中心的Web界面,或是使用实现了UDDI的API所描述的编程接口的工具,来将信息加入到UDDI的商业注册中心。UDDI商业注册中心在逻辑上是集中的,在物理上是分布式的,由多个根节点组成,相互之间按一定规则进行数据同步。当一个企业在UDDI商业注册中心的一个实例中实施注册后,其注册信息会被自动复制到其它UDDI根节点,于是就能被任何希望发现这些Web服务的人所发现。Web服务描述语言(WSDL)Web服务描述语言(WSDL)和SOAP一起构成了Web服务的核心结构单元。WSDL基于XML格式,用来描述Web服务。它描述了Web服务可以执行的操作以及Web服务可以发送或接收的消息格式。WSDL文档可以看成是客户端和服务器之间的一个协约。使用WSDL工具,你可以自动处理这个过程,几乎不用手工编写代码就能够让应用程序整合新的服务。因此WSDL是Web服务体系结构的基础,因为[5]它提供了一个通用语言,用来描述服务和整合这些服务的平台。虽然大部分WSDL文档使用RPC风格的要求/应答语句对,但是WSDL也支持单向的消息。WSDL支持四种SOAP消息操作:1.单向(One-way):端点接收消息。2.请求响应(Request-response):端点接收消息,然后发送相关消息。3.要求响应(Solicit-response):端点发送消息,然后接收相关消息。4.通知(Notification):端点发送消息。1.2.2Web服务组合技术及相关标准目前,很多组织和机构都在研究服务组合,并且提出了一些规范和相应的研究成[6]果。在Web服务组合定义方面,IBM和微软共同提出了商业流程执行语言BPEL4WS(BusinessProcessExecutionLanguageforWebService,简称BPEL)。BPEL提供了一种XML注释和语义,用于指定基于Web服务的业务流程行为,并使用合作伙伴的交互方式,定义了该BPEL流程。合作伙伴可以将服务提供给流程,也可以向流程请求服务,或者参与到流程的双向交互中。BPEL通过指定顺序来编排WEB服务,这对服务集合的调用来说意义深远。BPEL还针对每个服务分配了合作伙伴的责任。可以使3 华中科技大学硕士学位论文用它来指定合作伙伴的公共接口和可执行流程的描述。基于工作流的基本思想,BenatallahB提出实现组合Web服务的一种解决方案,并给出了保证组合Web服务正确调度的理论依据。该方法通过服务社区(servicecomm--unity)、组合服务、基本服务和异构服务提供者的层次结构,有效地描述并解决了增量式的Web服务发布及注册问题。另外,根据现实中商务应用的不同种类,将Web服务也按其行业的相关性划分成不同的类别,即服务社区的概念。它是一个虚拟的概念,是表示不同类别服务的视图。组合服务及一部分基本服务被注册到服务社区上,使得基本服务发生的变化只影响到所属服务社区的注册信息,由此可实现Web服务功能变化时注册信息的局部化更新。此外,服务的执行实际上是由基本服务的通信、协调和执行来完成的。该方法通过状态定义和检测的方式有效地解决了组合Web服务执行中存在的如下问题:组合服务的执行需要调用哪些基本服务以及相关的基本服务怎样按预期的顺序自动执行。具体而言,该方法预先定义了特定应用的服务以及执行它所需具备的系统初始状态和执行后的状态,这些状态与服务间的对应关系构成了状态路由表;通过当前状态检测查找状态路由表,以确定是否可以结束当前执行的服务,同时应该启动[7]哪些服务,基于并发策略实现了组合Web服务执行过程中的合理调度。在组合服务的执行方式方面,澳大利亚新南威尔士大学提出一种基于P2P计算环境的组合Web服务的解决方案。该方案有效利用了P2P计算平台的优点,提出组合服务的执行、基本服务的合理调度、协调通信和消息传递机制以及动态Web服务的[8]增量式注册和发布策略,并实现了原型系统SELF-SERV(compoSingwEbaccessibLeinFormation&buSinesssERVices)。1.2.3语义网的概念为了改善当代万维网信息不利于计算机自动处理的现状,万维网的创始人TimB--erners-Lee于1998年提出了有关下一代万维网的构想——语义万维网(SemanticWeb,简称语义网)。语义网是一个梦想:期望Web上的数据通过另一种不同于现在的方式描述和链接,使这些数据不仅能以各种灵活的方式展现出来,也能被不同的应用程序所自动处理、综合、重用。在语义网中,网页中所蕴含的语义信息能使计算机完成大部分的自动化处理工作,例如软件代理程序通过网页中的语义可以为用户完成复杂的旅行计划制定等任务,即从当前“机器可阅读”的万维网扩展为“机器可理解”的语义网。4 华中科技大学硕士学位论文TimBerners-Lee并没有给出语义万维网的严格数学定义,只是在和当代万维网的对比中,给出了如下的描述:语义网并不是一个从无到有、孤立发展的万维网,而是对当前万维网的延伸和扩展,语义网上的信息具有定义良好的含义,计算机能根据概念的定义声明和逻辑推理规则发现资源对象的含义,使得机-机之间以及人-机之间都能够更有效地合作处理;在语义网中定义和链接的数据能被各种不同的应用以更为有效的方式查询、重用和集成。从语义万维网的发展起源来看,语义万维网是人工智能领域和互联网技术相互结合的产物。人工智能领域中的知识工程研究从孤立的知识库系统逐渐发展到基于intranet、extranet的信息系统集成,最后扩展到整个Internet,在这个研究过程中,逐渐加深了对知识表示和推理的认识,并总结出了一些新的描述和推理方法。另一方面,万维网经过十几年的发展,积累的海量数据需要一种新的、机器可以自动完成的方式来处理和管理。因此,当两个领域的积累都比较成熟,而且有了需求,就必然会走向结合。语义万维网建立的基础,是知识的概念化和形式化以及相应的逻辑推理,它和人工智能有着深厚的渊源关系。因此,许多分析都需要从人工智能领域的角度来考察。但是由于两者的应用环境不同,还存在着一些差异。例如:从人工智能的逻辑学派和认知学派的观点来看,知识与概念化是人工智能的核心。传统的人工智能系统,要求共同遵守一些公共概念的完全一致的定义,并且一般都有它们各自狭义的、特有的用于信息推理的规则集合。尽管数据能够从一个系统转换到另一系统,但由于系统间的推理规则通常以完全不同的形式存在,而致使一个系统的规则不能为其他系统所重用。从这一点上来看,传统的人工智能系统是一种集中、孤立(专有)的系统。同样,语义万维网也是以知识的概念化表示为基础展开的。语义万维网中的知识,就是一系列有关资源对象的建模描述,资源是一个非常广泛的概念,它可以是网站、网页、甚至网页的某一个部分的内容,通过采用某种形式化的符号表达式对资源之间的关系进行刻画。万维网的本质特性便是其广泛性和全球性。超文本链接的威力在于“任何事物之间都可以相链接”。因此,语义万维网和传统的人工智能系统存在本质的不同,它本身要符合万维网的分散性和通用性。知识的表示本身可能是由众多的独立团体或个人,以各种各样的方式来提供,而这些知识却又要求能够被各种各样的应用实现共同理解,并且在一定的逻辑规则的指导下进行推理。所以语义万维网上的知识具有创建上的分散性,同时又具有应用上的通用性。这是5 华中科技大学硕士学位论文语义万维网和传统的人工智能系统的一个非常重要的区别。1.3论文主要内容与组织本文通过研究Web服务组合的相关技术,给出了一个基于语义的Web服务动态组合模型ARTs-WSC。论文组织结构如下:第一章介绍Web服务组合相关研究背景;第二章提出了ARTs-WSC的实现模型;第三章具体分析了ARTs-WSC的体系结构;第四章主要对本体进行了分析,并给出了一个基于本体的Web服务描述语言OWSL(OntologyWebServiceLanguage);第五章给出了基于本体的逻辑推理算法-前提匹配法;第六章对所做工作进行总结,并对未来进行展望。6 华中科技大学硕士学位论文2基于语义Web的动态服务组合模型2.1动态Web服务组合的形式化定义Web服务组合是将已有服务按照一定的逻辑顺序组织起来构成新的服务的能力。组合服务的模型由过程模型、接口模型以及交互模型构成:1.过程模型:按一定的逻辑顺序将多个活动组织在一起实现某项业务目标就构成了过程模型。2.接口模型:建立业务过程的对外接口视图。经过组合的Web服务仍将其对外接口封装为Web服务,使其可方便的用于进一步的组合。3.交互模型:组合Web服务的适用领域为跨企业的业务过程集成,参与组合的Web服务由多家企业提供,在过程模型建立之后,还需要找到每个活动的服务提供者,即合作伙伴。寻找合作伙伴的过程需要与UDDI等服务注册机构进行交互,在UDDI上查找服务的提供者,选定合作伙伴之后,需要进一步建立合作伙伴间的交互关系。下面给出了一个基于BNF语法格式的组合服务定义:S::||=⊕εXSSSSSSSSc:6||⊗|µ||||(|)SSSSSpqSpq|[(,):(,)]|Re(,,)pSaS各符号定义如下:ε表示一个空服务,X表示一个原子服务。SS12:表示一个由S1和S2组合的服务,其中S2在S1后执行。:是一个顺序操作符。SS12⊕表示一个由S1或S2构成的服务。⊕是一个选择操作符。SS12⊗表示一个由S1和S2组合的服务,其中S1S2的执行顺序不固定。⊗是一个无序操作符。µS表示服务S执行µ次。µ是一个重复操作符。Sc12||S表示一个由S1和S2组合的服务,其中S1S2并行执行,c是一个并行操作符。(|)SS126S3表示一个组合服务,其中S1S2并行执行且S1S2之间没有数据交互,当S1S2中一个执行完后,S3才被激活。6是一个区别操作符。[(,):(,)]SpqSpq111nnn表示一个组合服务,该服务动态的从n个服务提供者中选择一个服务执行。:是一个选择操作符。Re(,,pSaS12)表示一个组合服务,该服务将S1中标识为a的操作替换成另一个非空7 华中科技大学硕士学位论文服务S2。Rep是一个替换操作符。Web服务组合的过程是十分复杂的。首先,可用的Web服务数量过于庞大,导致无法通过人工对他们进行分析和处理;其次,由于Web服务可以在任何时间创建和更新,进行服务组合时必须获取最新的服务,通过人工去分析是不现实的;第三,Web服务通常由不同组织提供的不同模型来描述,这就要用到语义信息进行匹配和组合Web服务。Web服务组合一般分为静态组合和动态组合两种。静态组合是在组合服务定义过程中将组合Web服务与完成活动功能的服务提供者静态绑定,将服务提供者的地址、接口等信息直接记录在组合服务定义中,这种情形适合于固定合作伙伴间的交互,合作双方事先已建立一定的协议,可进行长期稳定的合作,服务提供者保证服务时刻可用,且服务接口不发生变化。但在Internet环境中,这种合作方式通常是不够的,企业总是希望寻找更好的合作伙伴,得到更好、更经济的服务。因此,动态组合是组合Web服务的必备功能。动态组合是指组合服务定义过程中不为活动指定固定的服务提供者,将具体的绑定延迟到组合服务执行时动态完成。实现动态组合的活动在组合服务设计时,只说明活动需实现的功能、所属的服务类别、需要查找的UDDI地址以及多个查找结果的选择策略等内容,而具体的服务提供者延迟到组合服务的执行过程中来绑定,以保证组合Web服务适应于Internet这种动态性要求高的应用环境。2.2动态Web服务组合的层次结构动态服务组合的层次结构由五层组成:传输层,XML消息层,服务描述层,实[9]现层和服务发布、查找、组合层,如图2.1所示。服务组合:服务查找发布:OWL-SServiceModelOWL-SServiceProfile实现层:OWL-SGrouding服务描述层:WSDLXML消息层:SOAP传输层:HTTP,SMTP,FTP图2.1服务组合的层次结构在Web服务组合的层次结构中,传输层、XML消息层、服务描述层与传统的Web服务协议栈一致;而服务发布、查找、组合层则采用OWL-S框架。8 华中科技大学硕士学位论文实现层指定了如何访问服务的细节。这些细节主要包括了协议和消息的格式,序列化,传输和定位等。所以一个Grounding可以看作是从服务的描述元素的抽象定义到具体实现的一个映射,最主要的就是一个原子过程的输入和输出。在OWL-S中,ServiceProfile和ServiceModel都被认为是抽象表达,只有ServiceGrounding是具体的实现层次的规范。ServiceProfile提供了一个方式来描述服务提供者提供的服务和服务请求者所需的服务。ServiceProfile没有限定服务的表达形式,相反它可以通过OWL的子类来描述特定的服务。OWL-S提供了服务的一个可能的表达Profile类。Profile将服务描述为一个具有三种类型信息的功能:哪个组织提供了该服务,该服务提供什么功能,一组描述服务特征的属性。ServiceModel描述了服务在执行时将会发生什么。对于那些非普通的服务(一些组合服务),该描述可能被一个Agent依照以下4种不同的方式使用:1.对于该服务是否符合要求进行更深层次的分析。2.由多个服务给出组合服务的描述用于完成一个任务。3.在服务制定阶段,完成多个参与者之间的协同。4.监控一个服务的执行。2.3动态Web服务组合的实现模型根据以上分析,本文提出了一个基于语义的动态服务组合模型ARTs-WSC。该模型由3部分组成:服务定义模块、推理引擎和服务组合引擎,其结构图2.2所示。服务定义模块负责定义对Web服务的语义信息;推理引擎存储服务语义描述信息并提供匹配服务的能力;服务组合引擎处理组合服务的解析、执行和管理。2.3.1服务定义模块现有的Web服务,主要是利用WSDL进行描述。WSDL是用于描述Web服务的一种XML语言,它将Web服务描述为一组对消息进行操作的网络端点。一个WSDL服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议,和这个绑定的一个网络端点规范。OWL-S扩展了WSDL,OWL-S由三部分组成:ServiceProfile,ServiceModel和ServiceGrounding,其中前两部分用于智能代理完成服务的语义注册、查询和组合。9 华中科技大学硕士学位论文Web服务组合应用接口OWSL匹配引擎服务组合引擎安全管理模块Web服务OWSL描述库ontology库服务解析模块OWSL匹配模块推理机服务执行模块系统监控模块OWSL/UDDI翻译器UDDI服务注册库图2.2ARTs-WSC结构图[10]第三部分用于服务的实际调用执行。本系统采用扩展的OWL-S语言OWSL(Ontolo--gyWebServiceLanguage)对服务进行描述。为了实现完整的Grounding,OWSL和WSDL是互补的,因为两者实际上覆盖了不同的概念空间,如图2.3所示。OWSL过程模型基于DL的类型原子过程输入/输出操作消息绑定到SOAP,HTTPWSDL图2.3OWSL和WSDL之间的映射关系WSDL用XMLSchema表达,而OWSL用OWSL类表达。但是WSDL/XSD表达不了10 华中科技大学硕士学位论文OWSL类的语义,而OWSL表达不了WSDL的绑定信息。因而采用OWSL类表达WSDL中抽象类型的声明,而使用WSDL的绑定结构表达消息的格式。对于UDDI,我们可以通过OWSLServiceProfile来提供语义搜索,而不是传统的关键字搜索。这可以通过利用UDDI中的TModel编码OWSL的Capability描述而实现。实现OWSL和WSDL之间需要进行三方面的映射:1.OWSL的原子过程映射到WSDL中的操作。2.OWSL中原子过程的输入和输出映射到WSDL中的消息。3.OWSL中输入和输出的类型(OWSL类定义)映射到WSDL中的抽象类型(XMLSchema定义)。2.3.2服务匹配引擎[11]服务匹配引擎由OWSL/UDDI的转换器和OWSL匹配引擎组成。当Web服务请求者发出请求(包括服务功能描述和可以提供的输入以及期望的输出),则Web服务组合应用接口将该请求转换成ServiceProfile形式,再将其交给匹配引擎。然后匹配引擎利用OWSL推理机对功能描述进行基于OWSL本体库和Web服务描述库的灵活匹配,得到一组满足条件的Web服务。这种匹配不是简单的基于[12]关键字方式,而是基于语义约束的模糊匹配。比如一个卖宠物食品的服务,现在有一个买狗食的请求。如果只能进行关键词的查找,显然这个服务和请求无法匹配。如果有了关于宠物食品的本体,其中有一个知识狗是一种宠物,那么我们就可以通过推理匹配这个服务和请求,而这是传统的UDDI无法做到的。接着再使用匹配引擎逐个检查找到的Web服务的输入是否是请求者所提供的输入的子集和其输出是否包含请求者所期望的输出,这样匹配率最高的服务就是Web服务发现的目标。服务匹配引擎还可以根据服务的输入输出的类型和语义引导用户动态的组装不[13]同的服务完成一个任务,并且执行这个组装的任务。例如,用户想查看武汉的天气情况,选择天气预报服务,但是这个服务是以邮编为参数,用户并不知道武汉的邮编。这时服务匹配引擎为用户找到一个可以查询邮编的服务来得到武汉的邮编(服务匹配引擎在知识库中根据天气预报服务的输入和其他服务的输出在类型和语义上的匹配筛选出有效的服务放在天气预报服务的输入菜单中),用户可以选择这个服务的输出作为天气预报的输入。11 华中科技大学硕士学位论文2.3.3合成服务执行引擎组合Web服务执行引擎负责组合Web服务执行中的运行控制,为组合Web服务实例提供运行环境,包括对组合Web服务定义进行解释,创建组合服务实例,并控制实例的激活、挂起、恢复、终止等状态,对实例中的活动进行引导,并负责激活外部服务等。为了实现组合Web服务的动态组合机制,引擎还提供动态访问服务注册库的功能。该引擎主要包括以下4个模块:z服务解析模块该模块负责对匹配引擎生成的组合服务进行解析,生成服务执行模块可以识别的[14]组合服务。当用户调用一个服务的时候,该模块首先判断该服务是基本服务还是组合服务。如果是基本服务,则直接执行;如果是组合服务,则根据组合服务的描述将该服务分解成一个有基本服务组成的序列,该序列中的的每个服务的输出都是下一个服务的输入。z服务执行模块该模块负责创建组合服务实例,并控制实例的激活、挂起、恢复、终止等状态,对[15]实例中的活动进行引导,并负责激活外部服务等。由于Web服务本身是无状态的,不为单独两次调用维护相关信息。Web服务的两个操作之间也是独立的,可以以任意的顺序被调用。但对于组合服务来说会同时有多个服务实例运行,因此,合成服务的执行模块要能够保证当一个消息到来时,能够被传递到组合服务的正确实例。组合服务应该能够维护该实例的数据和执行状态。这里用如下一个数据结构来解决这个问题:每一个操作都保存有下一个操作的入口信息。组合服务执行引擎会根据服务解析模块提供的Web服务序列,确定服务的执行顺序并做出状态记录。当信息到来时,启动相应操作,并记录相关操作信息。执行完成的操作结果将作为下一操作的输入被传递。同时,更新执行引擎记录的当前数据和执行状态,直到最后。执行中可能会出现等待异步消息到来,此时服务会等待,直到消息到来相应的操作才能被激活。如果服务在等待过程中被终止,则判断结果是否可用,如果可用提交并永久存储入数据库。z系统监控模块[16]系统提供了一个监控模块,可以查看各个合成服务实例的运行状态,并可以手动撤销过期的服务运行实例,如一个等待异步消息已超期的运行实例。系统监控模块还对每一个实例建立相应的日志机制,为系统级的故障提供恢复。12 华中科技大学硕士学位论文z安全管理模块该模块通过Web服务,调用SOAP报头消息签名来验证调用者的身份,并对消息中的关键信息执行加密操。2.4本章小结本章首先给出了一个基于BNF语法格式的定义,然后给出了动态Web服务组合的层次结构,最后提出了基于语义Web的动态服务组合模型ARTs-WSC。13 华中科技大学硕士学位论文3ARTs-WSC的层次结构信息资源根据其所处层次的不同,可以被划分成不同的阶或者势,其中现实世界中未经加工处理的信息属于零阶,在整个信息层次结构中处于最底层;网页资源信息处在第一阶;在对HTML页面经过初次加工之后,所获取的网页标引或索引信息处在第二阶;有关信息资源对象的元数据或模式信息则是属于第三阶的信息;而逻辑推理、真值证明等信息理应拥有更高的阶值,在信息层次结构中,阶值越低的信息越具体详实,较适合于人为处理;阶值越高的信息其抽象程度越高,则更适合于机器的自动化处理。当代万维网上的信息是杂乱的、无序的(或者说是非矢量的),将数据内容和表现形式混在一起,其中不同“阶”的信息没有被区别对待,这就导致了人们在信息使用上的困难。因此,语义万维网首要解决的问题就是建立起合理的信息层次结构,使其上面的信息是结构良好且有序的。TimBerners-Lee在XML2000大会上描述了语义网体系结构,本文根据TimBerners-Lee提出的语义网层次结构,给出了ARTs-WSC的层次结构,如图3.1所示。推理(OIL)本体(OWSL)数字签名资源描述(RDF)Web服务描述(WSDL)统一字符编码(Unicode)统一资源标识符(URI)图3.1ARTs-WSC的层次结构在其层次结构中,第一层是编码层,由统一字符编码(Unicode)和统一资源标识符(URI)组成,它是整个ARTs-WSC的基础;第二层是Web服务描述层,用于表示Web服务的内容和结构;第三层是资源描述层,由资源描述框架框架(ResourceDescriptionFramework,简称RDF)和RDF模式组成,用于描述资源及其类型;第四层是本体词汇层(Ontologyvocabulary),用于描述各种资源之间的联系;第五层是推理(OIL)层,在下面四层的基础上进行逻辑推理、验证和建立信任等操作。第三、四、五层是ARTs-WSC的关键层,用于表示Web服务的语义信息。可扩展标记语言XML让每个人都能创建自己的标签,来对网页或页面的部分文字进行注释。14 华中科技大学硕士学位论文脚本,或者说是程序,可以将这些标签运用到复杂的应用中,不过程序编写者必须知道网页作者是如何使用每一个标签的。简而言之,XML允许用户在文档中加入任意的结构。RDF的基本结构是对象-属性-值三元组,也就相当于句子中的主语、动词和宾语。这些三元组可以用XML语法来表示。用这种结构描述由机器处理的大量数据,是非常自然的方法。RDF模式是一个描述RDF资源的属性和类的词汇表,提供了关于这些属性和类的层次结构的语义。下面将对ARTs-WSC的层次结构做一个详尽的介绍和描述。3.1编码层Web环境下的各应用之间不可避免地需要相互通信,直接或间接地以机器可读的格式传递信息。这些信息中很大一部分是对Web上资源的描述,因此,首先应该以明确的方式来标识这些资源对象。ARTs-WSC采用统一资源标识符URI(Uniform[17]ResourceIdentifier)来标识Web服务及其属性,URI是一个Internet标准,记载RFC2396中。它和万维网常用的统一资源定位符URL(UniformResourceLocator)以及统一资源名称URN(UniformResourceName)的区别在于URI能表示所有可以字符串作为标识符的资源信息,它既能表示网络可达的资源,又能描述网络不可达的资源,URL和URN都是URI的子集。另外,由于ARTs-WSC的最终目的是要构建一个基于全球的Web服务网,在这个网络上应能涵盖各种语言和文字的信息资源,所以它采用Unicode作为字符的编码解决方案。这一层位于ARTs-WSC层次结构中中的最底层,是整个ARTs-WSC的基石,它成功地解决了ARTs-WSC上Web服务资源的定位和跨地区字符编码格式的问题。3.2Web服务描述层现有的Web的服务描述,主要是利用WSDL进行描述。WSDL文档将Web服务定义为服务访问点或端口(PORT)的集合。在WSDL中,服务访问点和消息的抽象定义从具体的服务部署或数据格式绑定中分离出来。消息指对交换数据的抽象描述;而端口类型指操作的抽象集合。用于特定端口类型的具体协议和数据格式规范构成了可以再次使用的绑定。将Web访问地址与可再次使用的绑定相关联,可以定义一个端口,而端口的集合则定义为服务。但是,由于WSDL集中描述与服务调用有关的具体细节,例如网络协议、消息格式、参数的类型等,也就是集中在Web服务的物理信息的描述上,而没有充分地描述服务的语义信息和性能信息。对于基于Web服15 华中科技大学硕士学位论文务的动态组合来说,它需要服务组件能够相互协同,并且要求根据业务流程的变化能够动态地绑定和调整服务组件,仅仅依靠WSDL描述的物理信息,还不能完全达到这些目标。这就要求在WSDL之外提供服务的语义描述信息和性能信息使得Web服务成为计算机可理解的实体,从而便于实现以下任务:服务的发现、调用、互操作、组合、验证、执行监控等。3.3资源描述层ARTs-WSC的目标是计算机能理解语义描述Web服务,因此需要一种统一的,形式化的元数据表示语言,用以描述Web服务,但XML只能定义语法格式,没有形式化的语义,不足用来描述Web服务,因此,W3C提出了一种新的标准,描述框架RDF(ResourceDescriptionFramework)。RDF采用三元组这种简单的数据模型,表示[18][19]Web上的资源的属性值。在RDF资源描述框架中主要涉及到以下三个概念:z资源(Resource):资源泛指可通过URI标识的任何事物,包括:网络可达资源(比如一篇新闻、一张图片、一个Web服务等),和网络不可达资源,如具体的物理对象(比如人、公司、在图书馆装订成册的书籍等)和抽象概念实体(比如作者)等。z特性(Property):特性是描述某个资源的性质、特征、属性或关系。z陈述(Statement):陈述是有关具体资源对象特性的具体描述,通常可用形如的三元组来描述,其中S表示一个待描述的资源对象、P表示该资源的特定方面或刻面,O则表示该资源S在特性P上的取值,O可以是其它的资源对象也可以是平凡文字,如字符串等。任何复杂的系统都可以通过合理的分解操作,简化成一组三元组(或陈述)集合。RDF是基于这一思想的:被描述的事物(resource)具有一些属性(properties),而这些属性各有其值(values),资源可以通过枚举该资源的相关属性及属性取值来描述。RDF通过特定的术语来区分陈述中的各个组成部分,确切地说,在资源陈述中用于识别资源对象的部分则称之为陈述的主体,而用于区分所陈述中资源对象不同特性(譬如:作者,创建日期,语种等等)的那部分称为谓词,用于表示各个属性取值的那部分叫做陈述的客体。基于RDF的资源描述是由若干条资源陈述(Statement)组成,并把这些陈述用特定的语法(如XML,N3等)表示出来。为了数据描述和程序处理的规范性,RDF通常采用一种名为RDF/XML的XML语法来书写和交换RDF陈述,与RDF的简略记法——三元组(triples)所不同的是,16 华中科技大学硕士学位论文RDF/XML是书写RDF的规范性语法(normativesyntax),要求严格符合XML书写规范。和XML类似,RDF描述模型只是提供了一种与领域无关的通用数据描述方式,有关特定域元数据的定义和它们的语义信息描述还需要制定额外的标准或规范。这个额外的措施就是RDFSchema,实际上在RDF中只定义了少量常用的建模原语,如RDF:Resource、RDF:Property、RDF:Statement、RDF:Subject等,其并没有给出与具体应用领域领域相关的建模原语,而RDFSchema规范则进一步定义了与具体应用领域相关的建模原语,能为特定目标的应用提供一个共同的基础。在RDFSchema中,最基本的建模原语包括:Class,Subclass-of,Property,Subproperty-of,domain,range和type等。有了这些原语之后,你就可以构建与具体领域相关的RDF数据描述模型了。此外,RDFSchema还可以对RDF数据给出一定程度的解释和合理性验证。XML和RDF是不同的形式化方法,在ARTs-WSC实现中,它们的作用和所处的地位也是各不相同。XML是为网络数据提供一种编码时所需的语法,并可以通过XMLSchema来规定交互数据的数据结构。XML的特点就决定了其在Web服务中所起的重要作用,从某种意义上看,XML是整个Web服务体系的基石,现在许多技术都采用XML作为他们的底层编码语法。由于XML并不能对所使用的标签提供语义解释,因此,它对机器语义理解方面并没太大的帮助,而构建在XML之上的RDF则提供了一种能有效描述网络资源的标准化模型,在这种模型中,它以三元组的方式给出了关于资源对象的具体解释。RDFSchema从某种程度上进一步拓展了这种资源描述的能力,然而,和其它的完备的知识表示语言相比,RDFSchema显得过于简单,它的语义表达能力还不够,因此,还需要ARTs-WSC层次结构的上层对其语义解释能力作进一步的扩展。3.4本体层RDFSchema可以定义类、子类、超类,并且可以定义特性和子特性,以及它们的约束,包括特性所适用的领域(domain)和特性的取值范围(range)等,因此,在某种[20][21]意义上说,RDFSchema本身就是一种简单的本体(Ontology)语言。但是RDFSchema对特定应用领域的概念关系的描述能力还比较弱,有必要进一步的扩展。因此,ARTs-WSC层次结构的第三层就是对RDFSchema层的扩展——本体(Ontology)层。简单的说,本体RDF的扩张,提供我们更广泛的由定义RDFSchema词汇。所谓更广泛就是指可以定义词汇之间的关系,类与类的关系,属性与属性之间的关系等等。本体提供了语义交换的桥梁,能够在不同的智能体之间达成有关术语概念的共17 华中科技大学硕士学位论文识,而对概念共享和理解恰恰是构建语义Web服务的关键,因此,本体层在ARTs-WSC层次结构中,处于核心支配地位,为其它各层提供基础服务,我们将在下一章对本体进行详细的研究。3.5推理层目前有关语义Web服务的研究主要集中于前三层的研究,对证明和信任这两部分内容在概念上目前还没有一个成熟的说法。但是语义Web服务的研究者普遍认为证明和信任将是下一代Web服务的重要概念。推理层由逻辑层、证明层和信任层组[22][23]成。逻辑层(LogicLayer):逻辑层在本体所描述的知识之上提供逻辑推理能力(基于规则)。例如,定义这样一个规则,任何月销售额超过100万元的销售人员将被评为明星销售员,Mike上月销售额为120万元。于是逻辑系统能够推理得出:Mike是明星销售员工。证明层(ProofLayer):有了对事实的逻辑描述,就能够提供对事实的复杂的“证明”。例如,销售记录Mike上月一共卖出63万元的机床设备和58万元的测量设备,而产品管理系统表明,机床设备和测量设备是互斥的(即交集为空),接着,计算系统给出63+58=121,并且121>100,就能得出这样一个证明:Mike是明星销售员工。在SemanticWeb的开放环境中进行推理是一个困难的任务,因为任何一个推论都可能涉及到大量信息的处理。信任层(TrustLayer):在之前所有层次的基础之上,会形成很多对于某一事实的陈述,这些陈述合理与否依赖于它们所处的上下文环境。因此当人或计算机访问这些陈述时,需要根据上下文和自己的需求自行判定该陈述是否可信(Trust)。采用加密技术和数字签名技术(渗透到每个层次的规范中去)是实现判定可性的一个重要手段,并可以由此形成一个信任的Web。例如,甲声明:所有一级代理商有权委托二级代理商,而乙是我公司的一级代理商之一。乙的声明是:所有与我公司有三年以上合作关系的,将获得二级代理商资格,丙是我公司一个有4年合作关系老伙伴。同时,所有这些声明都有数字签名保证了是可信的,于是,可以得出结论:丙将获得甲的二级代理资格。总的说来:语义Web服务的应用是在某种事实的基础上,通过应用逻辑推理得出某种结论,推理的每一步对用户都应该是可见的,或者说是可查询的。推理过程就18 华中科技大学硕士学位论文[24]是对结论命题的证明,在推理中,首先应该确保所见的数据是可信的,并且其推理过程也是可信的和可重现的,只有在这个基础上才能最终信任所得到的结论。然而,就人们所见的数据而言,前面介绍的RDF模型允许任何人对任何资源进行任何描述,不同观点的人对同样的资源可能会做出完全相反的描述。正是因为RDF模型这种强大的描述能力,才有必要对这种描述进行身份认证并确保声明没有被恶意篡改。因此在ARTs-WSC的层次结构中,自RDF层以上,所有有关资源的描述、推理和证明都贯穿了数字签名技术。数字签名技术就是对资源描述者的身份进行认证的关键性技术,是建立可信任语义Web服务的基石。3.6本章小结本章主要对ARTs-WSC的层次结构进行了详细的分析,从中不难看出,资源描述层、本体层和推理层在ARTs-WSC中有着举足轻重的作用,本文将在下面的章节详细讨论这三层的实现方法。19 华中科技大学硕士学位论文4基于本体的Web服务描述语言目前,随着Web服务的发展,基于本体的服务描述语言越来越多,其中使用得最多的是W3C推荐的OWL-S(OntologyWebLanguageforServices)。本章在OWL-S的基础上扩展,提出了一种新的基于本体的Web服务描述语言OWSL。4.1本体本体(ontology)这一概念最初起源于哲学领域,古希腊哲学家亚里士多德从哲学的角度对本体做了如下的定义:“本体是对世界上客观存在物的系统地描述,即存在论,是客观存在的一个系统的解释或说明,关心的是客观现实的抽象本质”。在近一、二十年来,本体论已逐渐被引用于知识表示、共享和重用以及其它相关领域。在人工智能界,最早给出Ontology定义的是Neches等人,他们将Ontology定义为“给出构成相关领域词汇的基本术语和关系,以及利用这些术语和关系构成的规定这些词汇外延和规则的定义”。Neches认为:“本体定义了组成主题领域的词汇表的基本术语及其关系,以及结合这些术语和关系来定义词汇表外延的规则。”后来在信息系统、知识系统等领域,越来越多的人在研究本体时,给出了许多不同的定义。其中最著名并引用最广的定义是由Gruber提出的:“本体是概念模型的明确的规范化说明”,这个[25]定义主要包含以下四层含义:1.概念化(conceptualization):客观世界中现象的抽象模型。2.明确(explicit):概念及它们之间联系都被精确定义。3.形式化(formal):精确的数学描述,便于计算机的自动处理。4.共享(share):本体中所反映的知识是大部分使用者所共同认可的。虽然不同研究者对本体有不同的描述,但是从内涵上看,他们对本体的认识是一致的,都是把本体当作某个领域内(可以是特定领域的,也可以是更广的范围)不同主体(人、代理、机器等)之间进行交流(对话、互操作、共享等)的一种基础设施,即通过本体所提供定义良好的领域概念结构,来描述概念以及领域中的各种关系,以便在不同应用之间达成资源共享。目前,本体理论已被广泛应用于知识工程、自然语言处理、数字图书馆、信息检索和Web异构信息的处理、软件复用、面向对象技术和语义Web等领域。具体的建立一个本体,一般分为以下几步:20 华中科技大学硕士学位论文1.定义本体中的类,类指的就是概念。2.把这些类组织成一个层次化的结构。3.填充属性在相应的类上的值。4.定义属性和描述这些属性对相应的类的限制。4.2基于本体的Web服务描述语言[26]基于本体的Web服务语言(OntologyWebLanguageforServices,OWL-S)是一种定义和实例化“Web本体”的语言。它也是一种具有显式语义的无歧义的机器可理解的标记语言(markuplanguage),用来描述Web服务的属性和功能。Web服务的OWL-S标记用以方便Web服务任务的自治操作,包括自动化Web服务发现、执行、互操作、合成以及执行监控。OWL-S主要有以下几个特点:z自动服务发现自动服务发现实现服务的自动定位。通过OWL-S的服务标识,用于Web服务发现的信息能够以计算机可解释的语义标签的形式给出,一个服务注册处或者基于Ontology的搜索引擎能够被用于自动定位服务。所以,OWL-S必须提供发布服务属性和能力的广告来自动完成服务发现。z自动服务调用自动服务调用需要通过一个计算机程序或者实体自动执行一个经过标志的Web服务。对Web服务的执行可以看作是一系列函数调用的集合。OWL-S提供了计算机可解释的API来调用这些函数。一个软件实体应该能够解释这些标签,从而理解对于一个调用来说,什么输入是必须的,什么信息必须被返回,服务调用如何自动完成。z自动服务组装和互操作自动服务组装和互操作主要是指给出了一个高层的目标描述后,对于某个任务而言,对所需的Web服务进行自动选择、组装和互操作。通过OWL-S,用于选择和组合服务的信息将在Web站点被编码。OWL-S必须提供单个服务的进行选择的先决条件和组合的顺序。针对不同的应用范围(不同的表示能力和计算能力)做了扩充和限制,形成了三[27]个子语言:OWLFull,OWLDL和OWLLite;三个子语言的限制由少到多,其表达能力依次下降,但可计算性(结论可由计算机通过计算自动得出)依次增强。1.OWLFull:提供最丰富的表达能力和最大的RDF语法自由度,支持OWL的全21 华中科技大学硕士学位论文部语法结构,但没有可计算性保证。OWL允许本体扩大预定义词汇的含义,但OWLFull基本上不可能完全支持计算机自动推理。2.OWLLite:OWLLite提供最小的表达能力和最强的语义约束,适用于只需要层次式分类结构和少量约束的本体,例如词典。因为其语义较为简单,OWLLite比较容易被工具支持。3.OWLDL:OWLDL得名于它的逻辑基础——描述逻辑。OWLDL处于OWLFull和OWLLite之间,兼顾表达能力和可计算性。OWLDL支持所有的OWL语法结构,但在OWLFull之上加强了语义约束,使得能够提供计算完备性(computationalcompleteness,即任何结论都能确保通过计算得到)和可判定性(decidability,所有结论都保证在有限时间内得到)。4.3OWSL4.3.1OWSL语言的结构我们在当前的语义Web服务描述模型OWLDL的基础上增加了用户偏好的表示,扩展后的语言称为OWSL(OntologyWebServiceLanguage,Web服务本体语言),这样它不仅包括了服务功能、特性、访问方式的语义表示,还包括了用户选择服务时所表现出来的偏好的表示。[28]OWSL语言由类、属性和个体组成。z类(Classes)类提供了组织具有相似特征的资源的一种抽象方式。每一个OWSL类联系到一个个体(individual)的集合,这个集合叫做它的外延,集合中的个体叫做它的实例(instance)。可以通过指定一个类名字或说明一个匿名的类的外延来描述一个类。另外,可以使用rdfs:subClassOf将类组成一个层次化的结构OWSL类的表示方法。图4.1描述了OWSL表示方法。
此文档下载收益归作者所有