服务网格的运行支撑环境

时间:2022-10-09 10:03:47

服务网格的运行支撑环境

VINCA运行支撑环境自底向上分别支持服务的执行、单业务流程的执行和多业务流程的协作执行。本文将主要介绍如何保障服务和业务流程能够正确运行的技术。

VINCA服务网格中,业务服务是用户直接可用的基本资源。虚拟化机制使得业务服务与Web服务具有一对多的映射关系,运行支撑环境需要屏蔽Web服务选取、数据转换封装等底层细节,以友好的方式辅助用户使用服务。同时,服务网格中每台计算机既是资源的请求者,又是资源的提供者,如何在运行时充分利用这些分布的计算能力、存储能力等资源也是需要解决的问题。

VINCA运行支撑环境自底向上分别支持服务的执行、单业务流程的执行和多业务流程的协作执行。其中,如何保障支持Web服务动态选取的业务服务执行引擎从服务的功能属性和非功能属性两个方面为用户推荐符合其个性化需求的Web服务,自动进行业务数据与Web服务数据的匹配和转换,提高了用户实施业务操作的效率; 以客户端为中心的业务流程执行引擎将客户端作为应用的调度和控制中心,均衡利用客户端和服务器的计算能力,有利于降低计算量密集型应用执行时对服务器的压力,并可方便地利用客户端的本地资源。

支持Web服务动态的业务服务执行引擎

在VINCA业务服务支撑框架下,业务服务是通过领域分析所得到的对应用领域业务功能的抽象。借助于服务虚拟化机制,可以对Web服务进行聚类、组合、转换等虚拟化操作,并为Web服务增加业务特征,从而建立与业务服务的关联。VINCA业务服务执行引擎接收用户输入的业务数据,经过数据解析、服务调用、数据封装等操作后返回到用户可理解的服务执行结果中。其中,输入和输出格式由业务服务的能力视图定义。图1是业务服务执行引擎的工作原理示意图。其核心功能主要包含以下三部分:

1. Web服务的动态选取: 根据业务需求形成服务选取条件,并调用服务社区中提供的服务发现接口得到所需Web服务。由于业务需求来源于业务服务,因此选取条件分为基于功能属性和基于非功能属性两类。业务服务的功能属性通过功能侧面描述,Web服务的功能在服务虚拟化过程中通过语义基础设施描述,功能属性的匹配保证所选的服务是满足用户业务功能需求的; 服务的非功能属性包括服务的地域、价格、执行时间等,由服务提供者在注册服务时标识,通过非功能属性值的对比计算可以确保所选服务满足用户的个性化需求。

2. 虚拟化语言的解析执行: VINCA虚拟化机制以服务转换代数为基础,设计了服务虚拟化转换语言。使用该语言,可以将多个Web服务的结果进行一定的运算以后再与一个业务服务相关联。此类业务服务被调用时,执行引擎需要解析使用到的虚拟化操作,据此以特定的方式调用多个Web服务,并对服务的结果进行处理。

3. 业务数据的解析和封装: Web服务的输入和输出都是SOAP消息,而在业务服务支撑框架下,服务的输入、输出都是面向业务用户的数据格式。业务服务执行引擎提供对这两种数据格式的自动转换支持。业务数据的解析从业务数据输入中提取有效数据,并转换匹配到Web服务的输入; 业务数据的封装将Web服务执行后的SOAP消息转换成符合业务服务输出接口的业务数据。

除了以上三个核心功能,从方便用户使用的角度,结合VINCA上下文管理设施提供的自动感知功能,业务服务执行引擎还提供以下两个辅助功能。

1. 服务输入数据的自动获取: 借助于VINCA服务网格中的用户上下文管理机制,执行引擎可以自动获取当前用户的信息,比如用户的偏爱、当前位置等等,并可以自动与服务的输入建立关联,一定程度上可以免除了用户烦琐的输入操作,并且可以提高输入的准确性。

2. 相关服务的自动推荐: 服务执行完毕后,执行引擎向用户推荐与此服务相关的其他服务,提高用户查找、使用业务服务的效率。比如,用户执行完毕“查询饭馆服务”后,系统自动向用户推荐“查询行车路线服务”。

综上所述,通过VINCA的服务虚拟化机制、语义基础设施和上下文管理设施等核心技术支撑,业务服务执行引擎对用户屏蔽了服务资源的多样性、复杂性,提高了用户实施业务操作的效率,并增强了用户使用服务网格的友好体验。

以客户端为中心的业务流程执行引擎

基于广域网的服务网格环境中存在大量的客户端计算机,在计算机性能日益提高的今天,客户端仅仅作为请求的发起者和结果的接受者,其计算能力、存储能力、服务和数据等资源没有得到充分有效的利用。如果能弱化客户端与服务器的界限,使客户端也参与到任务处理中,便可以摆脱对网络中少数服务器资源的过多依赖,均衡计算负载,从而提高计算的整体性能。

以此为出发点,网格中心在VINCA服务网格平台中提出了一种以客户端为中心的计算模型,客户端作为应用调度和执行的控制中心,组织和使用本地及网络资源,并协调客户端和远程节点的运行。基于此计算模型,VINCA服务网格平台实现了以客户端为中心的业务流程执行引擎,为用户提供个性化的问题求解环境。这里所说的业务流程是指通过组合多个服务所构建的满足一定业务过程需求的应用。图2是此执行引擎的工作原理示意图,其中上层展示了业务流程执行过程中的阶段表现形式,下层则是相应的使能设施。

由图2可以看出,有别于传统集中式的流程引擎,以客户端为中心的业务流程执行引擎在综合考虑网络状况、客户端和服务器能力等情况下,进行业务流程应用的分解、调度、协调执行和数据合成等操作,客户端作为控制中心主动参与到应用的执行,而不是被动的依赖服务器的工作。其核心工作过程包括以下几个步骤:

业务流程应用的分解: 根据组成业务流程应用的服务之间的控制逻辑和数据关系,将服务组合应用分解为多个子应用片段,这些片段在控制和数据方面具有相对较小的依赖性,以减少片段之间的通信交互。

子应用的调度: 在综合考虑网络传输、客户端和服务器能力的系统性能模型下,根据子应用片段与客户端资源的关系的紧密程度,计算最优调度策略,将每个片段部署到客户端或者网络节点上。

子应用之间的协调运行: 通过子应用协调器和子应用引擎完成。前者根据子应用之间的依赖关系,协调客户端引擎和服务器端引擎的运行,处理子应用之间的消息通信和数据通信; 后者负责具体执行一个子应用。

数据合成: 对子应用的执行结果进行合成处理,还原为分解前的业务流程应用所定义的输出数据。

除了以上基本步骤,客户端引擎的一个重要功能是对子应用的重调度。当服务状态或者网络环境发生变化时,客户端引擎根据重调度策略实时、动态地对尚未执行的子应用片段进行调度和部署,以使子应用获得最优的执行效率。

综上所述,以客户端为中心的计算模型在借鉴P2P计算模式的基础上,将客户端作为计算的主体,可以有效地解决传统服务器集中式处理模式下的计算密集型应用的执行性能瓶颈,在开放的服务网格环境下有很好的发展前景。当然,基于此种计算模型的平台在设计和实现上尚有较多有待进一步研究的问题,比如应用分解中的子应用相关性模型的建立、最优调度策略的算法、重调度机制的有效实施等等。VINCA服务网格在相关研究上正在进行深入的研究和探索。

面向服务计算技术的出现和发展正在逐渐改变着传统分布式应用的形态、构造方式及使用模式。服务所具有的动态、自治的特点既为松耦合、跨管理域的应用在复用性、灵活性以及扩展性等方面带来了好处,也对负责应用具体实施的运行支撑环境带来新的挑战。

上一篇:银行要把网点做成零售店 下一篇:工业和信息化部全力支援地震灾区