APP下载

Web Services整合机制研究

2018-11-09

关键词:网络服务服务提供者语义

(合肥职业技术学院,安徽 合肥 238000)

0 引 言

Web services可以对各种异构的应用系统进行整合,实现互操作。如将公司的客户、商业伙伴以及供货商的应用程序进行有效整合来完成特定的业务。Web Services的工作机制[1]如图1所示,服务提供者通过网络向UDDI服务器注册网络服务,UDDI服务器以WSDL文档格式发布网络服务的内容及网络地址,并通过SOAP协议提供服务端程序,WSDL描述文件与服务端的程序所在的地址可由服务提供者决定。用户可通过UDDI服务器查找所需的网络服务,从UDDI服务器所指向的网络地址中,取得描述网络服务的WSDL文件以及服务接口信息,之后便可通过SOAP技术取得该网络服务。

图1 Web Services的工作机制

由于大部份网络服务采用SOAP通信机制,而在SOAP通信中并没有提供先后顺序的信息。因此网络服务执行顺序就必须利用工作流程来实现,而流程的构建也是在做网络服务组合所必须考虑的。除此之外,在网络服务组合过程中网络服务彼此间需相互操作,服务之间沟通、传递信息都是影响流程运作是否顺利完成的重要环节,由于不同的服务提供者所提供的服务存在异构型,会导致应用程序沟通或信息转换不正确。此外,因为根据用户需求转换产生流程时,可能有多个流程产生,这些都是网络服务组合机制要解决的问题。

1 网络服务组合

1.1 概 述

网络服务组合是指组合一些独立存在的网络服务去实现新功能性的服务。就目前而言,要求使用者查找最合适的服务、确认数据型态是否一致及请求每一个服务来组合成一工作流程或新功能是相当复杂的,需要一种自动化的方法来进行工作流程的组合[2]。

1.2 网络服务组合规范

目前比较流行的网络服务组合规范[2]如表1所示,主要针对流程建模是否支持语义、QoS及与WSDL的关系来做比较。可以看出目前网络服务组合规范大部分都不支持QoS及语义描述。而QoS提供相关信息来表示网络服务的质量,因此单以目前的标准语法无法了解这些非功能性的数据。需考虑如何将QoS信息记录下来以达到较好的推荐效果。

表1 网络服务组合规范比较表

1.3 网络服务组合系统架构

网络服务组合可分为手动组合、半自动组合、自动组合三种[3]。所谓的手动组合架构,指其用户可以通过图形化接口或文本编辑器产生工作流程描述,此描述已决定要执行的服务,最后将产生的工作流程传送到工作流执行引擎执行;半自动组合技术主要在服务选择时提供语义建议,而使用者仍需从建议的服务列表中选择最适合的服务,并根据自己业务需求,对服务进行编排;自动组合技术指利用人工智能规划或类似技术,达到整个流程组合的自动化。表2汇集了目前相关网络服务组合系统架构待解决的问题。针对这些缺陷,提出一种更实用、效率更好的网络服务组合系统架构。

表2 常用网络服务组合架构问题汇总表

2 系统架构模型

构建一种服务组合机制,将分布在不同地理位置的服务按照用户需求进行组合。主要从三个方面进行探索,一是利用语义分类技术,当网络服务提供者提供服务时,系统针对网络服务描述作为分类基础,将网络服务依功能分属多个类别,以利于查找服务时加速找到相似功能的服务。二是提供一个图形化的接口供流程提供者构建工作流程,并且将工作流程转换成法则形式存于数据库中,以便于进行自动化网络服务组合时,能以推论方式自动产生符合用户需求的流程。最后建构一种自动化网络服务组合架构,以寻找符合服务流程的网络服务,并协助服务间的相互沟通,解决因网络服务快速增加而导致服务查找选择的问题,图2所示。

为满足用户需求,结合服务流程,自动选择合适服务提供给用户,提高网络服务重用性,设计一种架构模型如图3所示。架构模型包含了三个角色,分别为流程需求者、服务提供者、流程构建者,其说明定义如下:

图2 自动化网络服务组合图

(1)流程需求者:流程需求者依据其不同需求,直接通过以组件服务技术为基础的平台,得到动态组合的服务流程,以完成其需求目的。

(2)服务提供者:服务提供者将特定应用程序,利用WSDL加以描述,然后发布到UDDI服务器上,服务请求者可通过网络查找到该服务。

(3)流程构建者:流程构建者针对特定领域,建构该领域的服务操作或计划活动的执行顺序,以利于之后进行服务流程建构使用。

此外通过代理机制与数据库、工作流程来与UDDI相互运作进而得到一种动态组合的流程服务,以完成用户需求,此代理机制包含六个模块[4],分别定义及说明如下:

图3 自动化网络服务组合架构模型

(1)分类分析器:当服务提供者将特定应用程序发布到UDDI服务器时,分类分析器分析服务提供者所提供的网络服务描述,消除不具信息价值的常用字词,移除重复的字词以取得服务功能的字词,接着将取得的字词采用词干提取算法作词性正规化,并利用WordNet扩张字义以取得功能性字词,来将网络服务加以分类,以利于在进行网络服务查找时,过滤功能不相似的服务,加速查找效率及正确性。

(2)规则转换器:流程构建者通过浏览器构建流程时,会提供图形化接口,以便流程构建者建构流程且利用规则转换器机制将流程转换成法则结构,并利用网络服务组合规范描述特定领域服务操作或计划活动的执行顺序,以利于之后进行服务流程建构或执行使用。

(3)请求转换器:将经由浏览器接收到的服务功能需求转置成WSDL描述格式。

(4)流程控制器:将请求转换器所产生的WSDL描述转换成网络服务流程,用以表示网络服务执行次序的控制,其分为抽象web流程和具体web流程两种,差异在于具体web流程明确指出所链接的网络服务。

(5)流程选择器:主要功能是从多个具有相同功能的具体web流程中选择最合适的流程。

(6)执行控制器:其包含两部分,分别为执行代码及故障处理机制。执行代码主要将系统所产生的具体web流程转置成网络服务组合规范的文件,利用工作流程引擎直接解译并执行此文件,而故障处理机制主要在当应用程序沟通或信息转换上的不正确而导致失败或提供服务的链接无效时,提供一种容错机制自动选择合适的网络服务替代。

接下来,从流程需求者的角度来描述其本架构模型如何执行运作,如图4所示。

图4 自动化网络服务组合运作架构

在系统运作部分,将代理机制中的请求转换器、流程控制器、流程选择器、执行控制器等四个模块划分到后四个阶段中。网络服务组合生命周期五阶段如下所示:

(1)规划阶段:用户可通过浏览器选择流程所需的服务操作以及相关信息数据。

(2)定义阶段:利用请求转换器功能模块将流程需求者所决定的服务操作及提供的相关信息转置成WSDL格式的需求规格。

(3)计划阶段:利用流程控制器将需求规格,经规则库及抽象 web流程数据库自动产生抽象服务组合流程,建构抽象服务组合流程如图5所示,首先检查是否有相同服务流程已建立,若有则直接重用该服务流程,否则以法则进行推论得到流程。但可能因法则库中的法则建立不足,以致不能产生满足用户需求的服务流程,此时采用回溯算法,根据使用者提供的输入及输出结果构建服务流程。此方法可避免用户设计无效的流程也可节省流程设计时间。无效工作流程包含设计上的错误,例如流程没有终止点或死结等情况。

(4)构建阶段:主要在产生一个具体且不含糊的服务组合流程,明确的指出所要链接的服务。此阶段又细分为匹配阶段和推荐阶段两阶段如图6,其说明如下:

匹配阶段:主要在查找符合抽象服务组合流程中每一服务操作或计划活动的服务。由于使用者对于服务的偏好如“使用服务费用”、“服务执行响应时间”因人而异,所以将针对服务偏好相同且已有具体服务流程存在具体web流程数据库中者直接重用该流程,其余则利用组合机制构建具体服务流程组合。

图5 建构抽象服务组合流程

推荐阶段:主要利用流程选择器模块提供一种机制,针对匹配阶段所产生的可行的具体服务流程组合,选择一种最合适的流程组合,进而供运行时间执行。

图6 自动化网络服务组合运作架构─建构阶段

(5)执行阶段:将具体服务流程组合转置成网络服务组合规范的文件,这里采用BPEL4WS规范描述流程并利用执行控制器来执行流程。

3 工作流程

工作流程是指企业流程自动化,根据程序规则,传递参与者之间的文件、信息及工作,使其顺利完成。当工作流程系统要求执行某一工作时,其须包含如工作名字、参数、相关数据及和执行的应用程序,因为网络服务也包含相同的信息,因此网络流程可视为工作流程,而流程内的工作可以用网络服务替代。这里描述的工作流程是由tasks、networks及transitions所组成的。tasks以圆形表示,其可视为一个网络服务,为工作流程中的基本元素;networks以圆矩形表示,其表示一子工作流程;transitions以箭头表示,决定下一个所要启动的网络服务,控制整个工作流程执行顺序[5]。

4 组合机制

组合机制主要以抽象服务组合流程为基础,通过UDDI找寻符合的网络服务并且将其串连起来,所以,此机制分成两大部分,第一部分主要针对流程内的工作与网络服务进行比对,而另一部分则根据网络服务与网络服务的可组合性来探讨。

4.1 功能匹配

就网络服务基础架构而言,可采用多维方法来选择网络服务,利用句法、语义及网络服务质量等三方面来比对流程内的工作与具有相同功能的服务相似度,以增加其正确性。

(1)句法相似度

即使描述相同网络服务,用文字描述就可能产生多种结果,所以需要一种相似度准则计算句法相似度,主要采用q-grams来比对服务名称与流程工作名称的相似度,而不考虑语义相关信息。

(2)语义相似度

在语义相似度部份,开发一个机制能自动地计算网络服务与流程工作的相似度,采用描述一般性字词的通用知识本体,利用本体来描述网络服务规格字词的模糊,可解决服务提供者与服务使用者语义之间落差所引起查找效率不佳或精确度的问题。在语义相似度计算上,建立一比对方法。比对流程工作与网络服务名称、input、output、input constraints及output constraints以期达到最大的整合效果。

(3)网络服务质量相似度

由于不同QoS属性其值的高低影响整个QoS评估结果,所以针对不同性质的QoS采用不同计算方式。使用时间、成本、可靠性等QoS属性作为评估项目并假设服务提供者及服务需求者皆提供相关QoS属性值。在计算网络服务质量相似度时只针对经过句法相似度及语义相似度计算后所得的相似功能的网络服务来加以计算。

4.2 网络服务组合

在定义一个合成服务时,分析该合成服务中部分服务是否可组合,即是否可将多个网络服务进行组合产生新的服务功能。所以除了进行相似度评估,也考虑网络服务彼此是否能互相沟通组合。网络服务间的组合将比对网络服务的相关参数以及服务连接。

5 结 论

针对目前网络服务动态流程整合所面临的问题,提出一种服务组合系统架构,使用匹配功能选取最合适的网络服务并通过服务功能分类加速网络服务查找的效率及正确性。这种自动化网络服务组合系统将大大地强化网络服务组合的管理,依据储存的抽象化程度不同,对服务流程进行重用,可降低服务流程开发的时间,达到快速整合及自动整合的目的。

猜你喜欢

网络服务服务提供者语义
网络服务合同的法律问题研究
基于网络服务者在侵权法中的应用分析
网络服务提供者的侵权责任研究
网络服务提供者的侵权责任研究
语言与语义
论网络服务提供者连带责任的理论困境
网络服务行为的可罚性
批评话语分析中态度意向的邻近化语义构建
论网络服务提供者的侵权责任
“社会”一词的语义流动与新陈代谢