服务计算(Service Computing,SC)和面向服务的体系结构(Services-Oriented Architecture,SOA)作为潜在的技术力量,支撑着现代软件工程行业,实现了企业间业务流程的整合,并作为一种技术手段开发了很多复杂的分布式应用[1]。当需要开发某个业务应用时,由于服务具有松耦合、平台独立、跨企业边界的特性,因此是一个可选的技术手段。从另一个角度来看,服务还具有创新性和可繁殖性,保证服务的高可用[2]。服务的互操作性是设计的初衷,自动化的信息使用和动态交互是语义服务的目标[3]。
然而,在服务组合中,服务之间发生的交互问题并没有解决。当前,由于SOA的状态限制了服务的广泛使用,因此很多重要问题悬而未决,比如,如何部署服务才能更好地发现并获取它,如何发现满足用户需求的服务并响应,当发现服务时如何信任它们,以及当某些服务失效时如何平滑地替代它们[4]。从技术角度来说,Web服务使用统一描述、发现和集成(Universal Description Discovery and Integration,UDDI)部署在网络中,或者基于当前的服务描述语言对Web服务进行描述,如Web服务描述语言(Web Services Description Language,WSDL),Web应用程序接口(Web Application Programming Interface,WebAPI),Web服务本体语言(Ontology Web Language for Services,OWL-S),以及简单对象访问协议(Simple Object Access Protocol,SOAP),在服务的整个生命周期,服务只关注它们的功能及非功能属性,忽视了其他的外部特征(如交互历史),没有考虑互联服务之间的关联关系和服务的社会属性,这就限制了服务发现及组合。服务只关注于自己本身,忽略了其他的服务。此外,部署在网络中的服务数量远没有达到预期[4]。网络中大部分的可用服务几乎从来没有被使用过,很少的一部分被发现、组合或者调用。最后,大部分的服务组合方法没有考虑与服务消费者之间的交互。社交网络中,用户可以根据个人建立的社会关系,通过搜索网络页面发现朋友,然而,服务消费者却不能像搜索社交网络一样,根据已经建立的服务之间的关联关系来发现服务。
在服务科学中,服务环境的这些不利条件阻碍了服务的发布、发现、绑定及组合。为了连接单个服务,提供服务间更好的交互、发现及组合,本文提出了服务网络(Service Network,SN)的概念,基于关联数据(linked data)方法,根据服务间的关系将单个服务连接到服务网络中,这样,服务消费者能根据服务之间的关系来发现服务网络中的服务。社会网络能传递人们每天经历的关系,比如可信性和公平性,为此,将社会网络计算与面向服务的计算技术相整合,使得服务能够了解它的交互历史,促进将来进行服务组合的可能性。本文采用了社会化这个术语,因为人们日常生活中显现出来的社会性,可以很容易地映射到服务参与的一些关系中[4]。当前SOA应用的设计环境是私密的,在执行期间保持静态,完全依赖于通用的特征及方法,而引入社会网络和关联数据的方法可以消除这些限制。
本文研究的服务网络来源于服务计算领域,结合了社交网络及关联数据的观点,但它同样可以作为一个服务模式,服务SOA和软件即服务(Software as a Service,SaaS)。
1 背景及相关工作 1.1 关联数据关联数据技术起源于语义Web研究,衍化的结果是数据网络(Web of data)。关联数据是指网络中发布和连接的有结构数据的一组最佳实践[5]。简单地说,关联数据仅仅使用Web来创建不同来源数据间的类型连接。这类似于在不同地理上分布的两个组织机构,或者一个组织机构内简单的异构系统中进行数据库的维护,在数据层面很难进行互操作。技术上,关联数据是指以某种方式将数据发布在网络中,这些数据是机器可读的,并且具有明确的定义。关联数据可以连接到其他外部的数据集中,构建更大的关联数据,反之也能够被其他外部数据集所连接。数据网络因此可以看成附加层,与经典的文档网络紧密交织,具有很多相同的属性:
1) 数据网络是类属性,包含任何数据类型;
2) 任何人都可以将数据发布在数据网络中;
3) 数据发布者不受表达数据词汇选择的限制;
4) 实体通过资源描述框架(Resource Description Framework,RDF)链接相连,跨越各种数据源创建全局数据体,确保新数据源的发现。
1.2 社会网络社会网络是社会化的Web,将个人放在网络中的核心位置。社会网络是跨学科的方法论,它研究个体间的资源交换,集合了社会学、逻辑理论、心理学、计算机科学、数学、物理等学科的优点,以及各领域学科专家的协同工作,是一个非常热门的科学研究领域[6]。社会网络关注节点(人、组织或信息系统)间的关系模式。简单来说,社交网络就是一张图,通过节点之间的边相连,而边具有标签元素,比如人们日常生活中的友好、合作、讨厌。边有时是单向的,有时是双向的,并具有权值,有时则是这些情况的混合。每个节点提供了相关性的一个数学表达,能够极大地影响行为关系。
1.3 相关工作为了对本文的研究有很好的了解,首先简要介绍与服务网络相关的一些工作。文献[7]提出了社会服务网络(Social Service Network,SSN)的概念,它是一种基础设施,为了与社区进行交互,通过整合Web 2.0技术,应用语义符号自动地丰富Web服务本体。Danylevych等[8]应用业务关系的中心和相关参与者之间的信息交换,研究了服务网络的模式。一种观点认为服务网络建模可以与业务流程管理(Business Process Management,BPM)和SOA相结合。
在服务组合的过程中,文献[9]讨论了考虑社会网络的必要性,并指出社会网络为何能够提高服务组合的效率。在该问题中,他们引入一个新的框架SoCo(Social Composer),旨在帮助端用户在创建新服务的过程中基于端用户的社会网络分析推荐服务。
为了描绘服务网络作为参与者的集群,现有的研究工作提出形式化的表示方法,彼此之间提供、请求并消耗服务。陈世展等[10] 基于服务之间的关系建立了一种服务框架,用以缩小服务请求者和服务消费者之间的差距,该研究主要关注服务关系如何推进服务组合和服务发现的过程。王辉等[11] 提供了对Web服务和服务关系的描述,基于语义关系服务组织结构构建服务网络系统平台。
在大数据和云计算时代,越来越多的工作都将与时俱进。文献[12]中对关联数据提出了概念性和技术性的介绍。文献[12]设计的初衷主要面向对使用数据、管理数据、共享数据、数据交互以及热衷于Web研究的技术人员。文献[13-14]运用SOA分析方法架构了采访微服务模型,在实现SOA微服务自由组配机制的基础上,创建了促进复用的采访业务模式,可以移植到图书馆业务实际工作中并加以利用和评价。
综上所述,这些研究者没有进一步地研究服务网络的本质,一些基于关联数据原则和社会网络分析的关键问题和方法没有被提出并解决。因此,本文从不同的视角提出一种新的思路和方法,基于服务关联及社交网络,解决服务互操作问题及服务创新问题。
2 服务网络构建服务网络的提出是为了填补服务之间交互关系的空白。在某种程度上,事物的结构决定了事物的功能。服务网络结构的构建,提高了服务的利用率,增加了服务的功能。首先,以应用数学和运筹学的形式来定义服务网络,它们通常用来表达网络;然后描述服务网络的本质特性,如服务社区和服务关系等。
2.1 服务网络定义1 服务网络(SN)。服务网路定义为一个图GSN=(V,E),其中:V表示服务节点集,v∈V表示服务网络中的节点;E表示服务关系集,e∈E表示服务网络中边之间的关系。如果两个节点通过边相连,称这两个节点为邻居。边定义为三元组〈Si,t,w,Sj〉,其中:Si、Sj表示服务节点,边为有向边从Si到Sj;t是Si和Sj之间的关系类型,w为服务关系的权值。
图理论是一种数学工具,广泛地应用于网络属性的研究。本文采用两种经典的图理论数据结构(矩阵代数技术)来表达服务网络:表结构(list structure)和矩阵结构(matrix structure)。它们用来存储信息,以便进一步分析服务网络的属性。以服务消费者和服务提供者的角度来看,服务网络图模型的设计目的是为服务之间的交互提供概览,总结业务过程和服务建模的技术细节。
2.2 服务社区在类似Web这种开放环境下,为了提高服务发现的可行性及有效性,提出将相似的服务聚集在一个群组(group)中,即服务社区(service community)。群组或社区的概念强调开发准则的重要性,允许服务的管理成为社区的一部分。
社区是生活在一起的人所组成的群组,具有共同的兴趣、宗教信仰、或者国籍等。在Web服务领域,Benatallah等[15]定义服务社区为Web服务的集合,这些服务具有不同的非功能属性,但是具有相同的功能特性。文献等提出的服务社区的属性如下:
1) 在相同的空间,社区通过聚集具有相似功能的Web服务,构成专业的群组。发现所需的服务可以轻松地缩小到某个社区的有限服务当中,不用定期检查。
2) 一旦有服务失效,社区简化了Web服务替代过程,在失效服务所在的社区中选择潜在的可替代服务,直接应用于服务组合场景中。
3) 社区可以基于不同的模型建立内部结构,如主从结构、对等网(Peer to Peer,P2P)结构、混合结构。
虽然Web服务是服务社区结构(如图 1所示)的新元素,但是该结构与传统的服务发布、发现、绑定具有相同的特性。UDDI协议注册中心的功能属性同样适用于服务提供者和服务请求者。从服务社区中选择Web服务对请求者来说是透明的,这些Web服务聚集到社区中是以独立的方式进行的。服务代理组件通常引导一个社区。在社区中,服务代理组件本身可以作为一个Web服务实现其他Web服务的兼容性需求。这些Web服务被表示成服务节点,具有相同的功能属性。
描述社区内部具有三种关系:监督关系(Supervision Relationship)、竞争关系(Competition Relationship)、替代关系(Substitution Relationship)。通过对每个服务关系构建一个服务社区,可以实现不同的目标,其中:监督关系的目标旨在帮助服务代理将请求者的功能和非功能需求分配给最理想的服务节点;竞争关系的目标旨在当一些服务在执行期间偶尔出现较低竞争力时,增强服务的各种性能;替代关系的目标旨在当一些服务失效时,使Web服务具有较高的可用性。
1) 监督关系。
构建监督关系需要两类节点表达服务代理和服务节点,以及一种类型的边来表达它们之间的关系。监督关系存在于服务代理和服务节点之间。在监督服务网络中,一个节点充当服务代理,其他节点为服务节点。服务代理提供进入到服务网络的入口,其他相关的服务节点通过监督关系与服务代理节点相连,如图 2所示。这些由服务代理和服务节点所构成的关系边是双向的。
考虑有序服务对〈Si,Sj〉,本文定义监督关系为Si⊙Sj。监督关系的类型为非对称和非传递的。监督关系边的权值通过以下公式计算:
${{w}_{\left\langle {{S}_{i}},{{S}_{j}} \right\rangle }}=\left| S_{j}^{\text{selection}} \right|/\left| S_{j}^{\text{supervision}} \right|$ | (1) |
其中:|Sisupervision|表示在服务组合场景中代理服务节点Si被调用的次数;|Sjselection|表示Sj被Si选择调用的次数。权值w越高,Sj被调用的次数就越多。一般来说,Sj被调用选择的次数要小于Si参与的服务组合次数,因为用户或者设计者会拒绝调用Sj,或者Sj拒绝参与到服务组合当中。
2) 竞争关系。
构建竞争关系只需要一种类型的节点表示服务节点,以及一种类型的边表示服务关系。在竞争服务网络中,没有具体的节点充当进入服务网络入口的角色,社区中的所有服务具有相同的功能属性,但是在业务流程执行期间只选择一个服务节点来满足用户的需求,最终这些服务之间彼此竞争。因此,节点彼此之间通过边相连,定义这些边是双向的,如图 3所示。例如,竞争关系存在于服务节点S1、S3和S4,当服务请求者的非功能属性需求需要满足时,通过这些节点的非功能属性来区分它们。因此,服务指导它自己所属网络中的竞争者,相对于竞争者,它会试图提高自己的非功能属性。
考虑一个有序服务对〈Si,Sj〉,定义竞争关系为Si⊕Sj。竞争关系的类型为对称的和传递的。竞争关系边权值通过以下公式计算:
${{w}_{\left\langle {{S}_{i}},{{S}_{j}} \right\rangle }}=\left| S_{j}^{\text{selection}} \right|/\left| S_{j}^{\text{competition}} \right|$ | (2) |
其中:|Sicompetition|代表Si在服务组合场景中被调用的次数;|Sjselection|代表Sj 与Si竞争参与到服务组合场景中的次数。权值越高,Sj的竞争力越强。一般来说,Sj被调用选择的次数要小于Si参与的服务组合次数,因为用户或者设计者会拒绝调用Sj,或者Sj拒绝参与到服务组合当中。
3) 替代关系。
构建替代关系只需要一类节点类型表达服务节点,以及一种边类型表达关系。如果服务提供相同的功能属性,虽然它们之间会存在彼此竞争的关系,但是当某个服务节点失效时,具有竞争关系的节点会替代失效节点,实现服务组合的需求。因此,一个服务了解它自己所在网络的替代服务,当某个服务节点失效,该服务就可以替代失效服务节点。当面临服务节点具有潜在失效的情况下,服务节点能够满足服务等级协议(Service Level Agreement,SLA)。替代关系存在于服务节点之间,因为它们都提供相同的功能特性,因此它们之间可以彼此替代,定义这些边是双向的,如图 4所示。
考虑有序服务对〈Si,Sj〉,本文定义替代关系为Si◎Sj。替代关系的类型为对称的和传递的。替代关系的边权值通过以下公式计算:
${{w}_{\left\langle {{S}_{i}},{{S}_{j}} \right\rangle }}=\left| S_{j}^{\text{selection}} \right|/\left| S_{j}^{\text{substitution}} \right|$ | (3) |
其中:|Sisubstitution|表示Si在组合场景中失效的次数;|Sjselection|表示Si在组合场景中失效时,Sj被选作替代节点的次数。权值w越高,证明服务节点Sj的可替代性越大。一般来说,Sj被调用选择的次数要小于Si参与服务组合时失效次数,因为用户或者设计者会拒绝调用Sj,或者Sj拒绝参与到服务组合当中。
2.3.2 服务社区外部服务关系描述社区外部具有两种关系:协作关系(Collaboration Relationship)和推荐关系(Recommendation Relationship)。这两种关系都只需要服务节点。在协同和推荐关系中,服务节点在各自的社区被定位。通过为每个关系构建一个社区,可以实现不同的目标:协作关系的目标旨在与服务同伴保持联系,与服务节点协作实现服务组合;推荐关系的目标旨在建议某个服务节点推荐给服务同伴,以便能参与到正在进行的服务组合当中。
1) 协作关系。
构建协作关系只需要一类节点类型表达服务节点,以及一种边类型表达关系。协作关系是基于服务组合已经完成的情况下构建的。服务节点间的协作关系存在于相同的服务组合中(如图 5所示)。通过结合服务各自的功能,服务有能力协作,共同完成用户的复杂需求。因此,服务节点了解它自己本身网络的协作节点,每个服务节点可以基于交互历史来决定是否与其他同伴进行协作。
考虑有序服务节点对〈Si,Sj〉,本文定义协作关系为Si
${{w}_{\left\langle {{S}_{i}},{{S}_{j}} \right\rangle }}=\left| S_{j}^{\text{selection}} \right|/\left| S_{j}^{\text{collaboration}} \right|$ | (4) |
其中:|Sicollaboration|表示Si在组合场景中出现的次数;|Sjselection|表示Sj与Si在同一服务组合场景中,Sj被选作协作节点的次数。权值w越高,证明服务节点Sj的互操作性越大。一般来说,Sj被调用选择协作的次数要小于Si参与服务组合的次数,因为用户或者设计者会拒绝调用Sj,或者Sj拒绝参与到服务组合当中。
2) 推荐关系。
构建推荐关系只需要一类节点类型表达服务节点,以及一种边类型表达服务关系。推荐关系基于服务组合已经完成的基础上构建,并伴随着协作关系而存在。如前文所述,推荐关系用于推荐一些服务节点,这些服务节点如协作关系描述的意愿与其他服务节点进行协作。图 6描述了推荐关系的服务网络,只需要将协作关系的名称改为推荐关系即可,定义推荐关系的边是单向性的。
考虑有序服务节点对〈Si,Sj〉,本文定义推荐关系为Si
${{w}_{\left\langle {{S}_{i}},{{S}_{j}} \right\rangle }}=\left| S_{j}^{\text{selection}} \right|/\left| S_{j}^{\text{recommendation}} \right|$ | (5) |
其中:|Sirecommendation|表示Si在组合场景中出现的次数;|Sjselection|表示Si在组合场景中,Sj被推荐参与到服务组合中的次数。权值w越高,证明服务节点Sj的可推荐性越大。一般来说,Sj被调用选择推荐的次数要小于Si参与的服务组合的次数,因为用户或者设计者会拒绝调用Sj,或者Sj拒绝参与到服务组合当中。
3 服务网络即服务定义2 基于关系的索引(relation-based indexing):服务网络中给定一初始服务节点S0,通过基于关系的索引提供了基于服务网络的服务集{S},严格地遵从服务索引,即∀Si∈{S},∃R(S0,Si),其中R代表S0和Si之间的关系。
服务消费者能够根据这些关系来发现服务,这种方式类似于用户在Web页面中发现感兴趣的东西。在服务网络中,不必关心服务部署在哪些位置,相反,服务请求者可以遵照由过去的一些交互与合作而建立起的关系来发现服务。这个定义允许服务请求者从给定的起始节点,通过服务关系发现另一个相关的服务。因此,服务请求者可以灵活地掌握服务。
定义3 服务集群(service cluster)。服务集群表示由多个服务社区提供的可用服务集,具有特定的功能,定义为SC={S1,S2,…,Sn}。其中:SC表示n个服务的集合,即服务集群;Si(i=1,2,…,n)表示节点i的服务,彼此之间通过协作,实现服务发现及组合。
服务集群意味着在相同的领域,抽象的服务会聚集到一起。服务集群是服务网络中有结合力的子群,可以看作是服务网络的子图,服务网络中还包括服务链。同样,服务集群也可被看成通过其他关系构成的组合服务或团。
4 案例分析服务网络不指任何实际的或具体的服务,而是代表多个服务提供的服务集合,通过多个服务提供者共同执行特定的功能和任务。如图 7所示,假设李某拟定一个旅行计划,首先他需要确定旅行的目的地是哪,根据天气、地理、资金承受能力选择期望地点;然后,选择交通工具,以便在预订的日期能够到达目的地;此外,还需要预订宾馆,了解城市的气候,以及饮食习惯等。图 7中,服务社区1表示交通服务,服务社区2表示酒店服务,服务社区n表示旅游景点服务,对于每个服务社区,都由多个服务提供者提供多种候选服务。在该案例场景中,单独的一个服务无法满足用户的所有需求。为了旅行的目的,需要发现并组合多种相关的服务,这就构成了服务网络的原型系统。
服务社区中的服务彼此之间依照具体的性能相区别。比如,交通工具服务可由火车、汽车、飞机等服务提供商来提供,每个服务提供商可以提供多种服务。例如,火车交通工具服务提供商可提供高铁、动车、特快、直达等列车服务,每个具体的服务都包含一组特性(比如票价、时长),这些特性用来识别并选择特定的服务。根据服务社区内部(2.3.1 节)以及服务社区外部(2.3.2节)的服务关系,帮助用户选择最合适的服务。在服务选择及业务服务组合中,一组具体真实的服务将会从服务社区中选出,各个服务社区中的服务相组合,形成服务网络。
5 结语本文基于社会网络及关联数据原则,提出一种图理论的方法,即服务网络,系统地分析了服务网络的关系及属性,以解决服务之间的互操作问题。结合旅游服务网络案例介绍,说明了本文方法可有效解决网络服务利用率低以及服务关系复杂性问题。本文的研究框架仍具有一定的局限性,如构建方法只考虑单一服务网络内部的关系。未来需要进一步改进并优化方法的性能,提高服务推荐及选择的准确性,并研究跨网络之间服务的有效利用及互操作问题。
[1] | PEDRINACI C, DOMINGUE J. Toward the next wave of services:linked services for the Web of data[J]. Journal of Universal Computer Science, 2010, 16 (13) : 1694-1719. |
[2] | YAHYAOUI H, MAAMAR Z, LIM E, et al. Towards a community-based, social network-driven framework for Web services management[J]. Future Generation Computer Systems, 2013, 29 (6) : 1363-1377. doi: 10.1016/j.future.2013.02.003 |
[3] | AL-SHARAWNEH J, WILLIAMS M A. A social network approach in semantic Web services selection using follow the leader behavior[C]//EDOCW 2009:Proceedings of the 13th Enterprise Distributed Object Computing Conference Workshops. Piscataway, NJ:IEEE, 2009:310-319. |
[4] | MAAMAR Z, HACID H, HUHNS M N. Why Web services need social networks[J]. IEEE Internet Computing, 2011, 15 (2) : 90-94. doi: 10.1109/MIC.2011.49 |
[5] | BIZER C, HEATH T, BERNERS-LEE T. Linked data-the story so far[J]. International Journal on Semantic Web and Information Systems, 2009, 5 (3) : 1-22. doi: 10.4018/IJSWIS |
[6] | OLIVEIRA M, GAMA J. An overview of social network analysis[J]. Wiley Interdisciplinary Reviews:Data Mining and Knowledge Discovery, 2012, 2 (2) : 99-115. doi: 10.1002/widm.1048 |
[7] | EL-GOARANY K, SALEH I, KULCZYCKI G. The social service network-Web 2.0 can make semantic Web services happen[C]//Proceedings of the 10th IEEE Conference on E-Commerce Technology and the 5th IEEE Conference on Enterprise Computing, E-Commerce and E-Services. Piscataway, NJ:IEEE, 2008:419-423. |
[8] | DANYLEVYCH O, KARASTOYANOVA D, LEYMANN F. Service networks modeling:an SOA & BPM standpoint[J]. Journal of Universal Computer Science, 2010, 16 (13) : 1668-1693. |
[9] | MAARADJI A, HACID H, DAIGREMONT J, et al. Towards a social network based approach for services composition[C]//ICC 2010:Proceedings of the 2010 IEEE International Conference on Communications. Piscatawa, NJ:IEEE, 2010:1-5. |
[10] | 陈世展, 冯志勇, 王辉. 服务关系及其在面向服务计算中的应用[J]. 计算机学报, 2010, 33 (11) : 2068-2083. ( CHEN S Z, FENG Z Y, WANG H. Service relations and its application in services-oriented computing[J]. Chinese Journal of Computers, 2010, 33 (11) : 2068-2083. doi: 10.3724/SP.J.1016.2010.02068 ) |
[11] | 王辉, 冯志勇, 陈炬, 等. 基于本体的服务网络平台及其构建方法[J]. 计算机应用, 2010, 30 (8) : 2170-2172. ( WANG H, FENG Z Y, CHEN J, et al. Ontology-based service network platform and its construction method[J]. Journal of Computer Applications, 2010, 30 (8) : 2170-2172. doi: 10.3724/SP.J.1087.2010.02170 ) |
[12] | HEATH T, BIZER C. Linked data:evolving the Web into a global data space[M]//Synthesis Lectures on the Semantic Web:Theory and Technology.[S.l.]:Morgan & Claypool Publishers, 2011:7-27. |
[13] | 翟晓娟, 聂娜. 运用微服务重组机制构建图书馆编目随需应变模型[J]. 现代图书情报技术, 2010, 26 (10) : 23-27. ( ZHAI X J, NIE N. Construction of catalog on demand model based on micro-service re-grouping[J]. New Technology of Library and Information Service, 2010, 26 (10) : 23-27. ) |
[14] | 刘健, 毕强, 马卓. 数字图书馆微服务评价指标体系构建及实证研究[J]. 现代图书情报技术, 2016, 32 (5) : 22-29. ( LIU J, BI Q, MA Z. Assessment of digital library's micro-services:an empirical study[J]. New Technology of Library and Information Service, 2016, 32 (5) : 22-29. ) |
[15] | BENATALLAH B, SHENG Q Z, DUMAS M. The Self-Serv environment for Web services composition[J]. IEEE Internet Computing, 2003, 7 (1) : 40-48. doi: 10.1109/MIC.2003.1167338 |