分享

武器装备体系服务化功能集成

 虎牙变大猫 2019-07-12

武器装备体系功能集成的最主要目的是为了实现体系中各个平台、武器和系统的功能模块灵活配置、动态调度的“即插即用”。由于武器装备体系中包含多领域多专业异构的功能模块和实现方式,服务化的功能集成模式能够有效地将异构的功能模块进行“即插即用”的集成,使得武器装备资源实现快速共享和调用,完成相应的作战任务。事实上,分布在各个平台、武器和系统中的功能模块调度,都是通过软件接口或功能的形式实现。面向服务体系结构(Service-Oriented-Architecture,SOA)是一种组织和利用分布式软件功能的范式,这些功能可能处于不同所有权、实现方式的领域中。

SOA架构中各个功能模块以构件的方式存在,它要求提供统一方式来发布、发现和使用应用构件的功能,它将应用构件发布的功能定义为“服务”,服务具有自描述性和可见性,更易于被发现、理解和使用。服务之间通过良好的接口和契约连接起来,接口采用中立的、通用的方式描述和实现,使得服务可以在不同硬件平台、操作系统以及实现方式下进行交互,实现应用功能互操作性,服务的松耦合也使得应用系统拥有更好的灵活性和扩展性。

目前在商业领域中,基于请求/应答方式的Web Services是最典型的SOA实现方案,它拥有相对完善的服务描述、服务注册和服务订阅发布机制,能够较好地实现外部服务对接、异构中间件通信等需求。然而对于武器装备体系成员中的各个功能来说,首先需要满足调用的实时性、可信性和可用性等作战实施对体系集成的需求,其次要能够与信息集成的DDS相融合,并且能够为武器装备体系的过程集成提供基础支持。在此主要探讨面向武器装备体系分布式实时的服务化功能集成框架和机制。

一、服务化功能集成框架

面向武器装备体系的服务化功能集成要求在统一框架下实现。在服务化功能集成框架下,武器装备体系集成过程中不仅需要确保各个成员的服务能够被及时可信地调度,并保障服务之间的互操作,同时还要确保服务之间实时高效可信的信息通信。SOA服务框架通常包含注册中心,并制定了注册中心、服务提供者、服务消费者之间的交互规范,使得服务提供者能够注册和发布服务,服务消费者能够发现并绑定到服务端,通过请求/应答方式实现服务互操作。DDS信息集成规范屏蔽了操作系统和网络的差异,提供了统一多对多、低时延、高吞吐量的信息通信机制。因此,为了实现武器装备体系集成的要求,将DDS与SOA相结合,形成能够融合信息集成、支持过程集成的服务化功能集成框架模型。

SOA架构下的服务特性总结归纳起来有以下几点:

1)软件实体。服务作为软件实体,对特定的业务逻辑进行了封装,提供有意义的功能。该软件实体应该是长期稳定的,可以版本化的。

2)具有合约。合约规定了服务提供者和服务消费者的职责,其中含有接口描述、绑定信息(如所在节点等)、功能说明、服务策略以及相关的约束等等。合约通常是自包含的且抽象于对服务的实现。

3)可互操作的。服务可跨平台、跨系统调用,通常基于消息进行通信。

4)可组装的。从已有的服务通过组装可以构造成新的服务,组装后的服务向用户隐藏内部细节,只向外提供封装了一定业务逻辑的合约。

5)可复用的。服务可以在多个应用场景中使用,也可以用于组装多个其他服务。

6)可发布与可发现的。服务提供者可以通过服务注册中心发布服务合约,以供服务消费者动态地发现和使用,从而使得二者的关系是松耦合的。

综上所述,服务是具有合约的、对外提供特定功能的软件实体,是自包含的、可复用的、可互操作的、可发布的和可发现的,通常基于消息与外部应用或其他服务进行交互。在设计武器装备服务化功能集成框架时,需要遵循SOA参考模型中的服务特性。服务化功能集成框架的整体架构如图1所示。

图1 服务化功能集成框架整体架构

服务化功能集成框架整体架构主要包括注册中心、监控中心、容器、应用服务接口等服务环境设施,同时也提供从应用业务功能服务描述、开发和管理服务的方法。服务化功能集成框架支持服务的订阅/发布机制,使得服务消费者能够订阅、发现和调用所需的服务。服务化功能集成框架提供服务仓库存储注册的服务,同时支持服务的自动部署、激活和运行时监控,配合有效的服务管理机制以提升任务系统的运维水平。

服务化功能集成框架的关键部件是应用服务接口、服务注册中心以及服务容器。

应用服务接口(Application Service Interface,ASI)提供应用功能服务化所需的各类接口,如服务发布、服务订阅、运行状态管理等等,应用和服务通过ASI与注册中心和监控中间进行服务信息的交互。

服务注册中心(Service Registry Center,SRC)是服务化功能集成框架的核心,主要提供了服务注册、服务查询、服务监控等功能,并且作为服务提供者、服务消费者、服务容器三者信息交互的媒介,在服务发布和使用过程中至关重要。

服务容器(Service Container,SC)作为服务化功能集成框架分散在各个平台、武器和系统节点的服务代理,承担了各节点部署的服务信息、服务进程的管理任务。

面向武器装备体系的服务化功能集成,需要将应用功能以服务的方式向服务注册中心进行注册,然后根据作战任务要求,在进行服务集成过程中,将所需服务的名字发送给注册中心,服务注册中心的进行服务匹配后,回复服务绑定信息(如IP+端口号),通过服务绑定信息来绑定服务端并实现服务的调用,完成作战任务流程的构建。服务化功能集成框架下应用功能服务使用过程如图2所示。

图2 服务化功能使用流程

如图2所示,服务化功能集成框架中服务发布与使用的流程具体如下:

1)应用功能通过服务化集成框架发布/订阅方式对外提供信息发布/订阅接口,或者通过服务化集成框架请求/应答方式对外提供Interface接口;为应用功能编写服务描述文件,并在服务注册中心注册服务。

2)服务注册中心管理员审核新注册的服务,包括服务接口、IDL定义是否规范等。

3)服务注册中心将服务映射或部署到指定节点容器上。

4)在构建作战流程过程中,在服务注册中心查找所需的服务,下载服务描述文件,通过服务接口获取服务绑定信息,编写作战流程逻辑。

5)服务客户端和服务端通过服务调用流程完成服务调用。

在武器装备体系集成过程中,要求将完成各项作战功能的服务组装成能够完成特定作战任务的服务集合和作战实施流程。在此过程中需要具备相应的服务引用机制的支持。服务引用机制过程如图3所示。

图3 服务引用机制工作流程

服务引用机制作流程详细说明如下:

1)服务客户端(体系集成者)向服务注册中心发送服务ID即{命名空间+服务名+版本号},订阅自己所需的服务;

2)服务注册中心收到服务客户端的服务订阅信息,在注册信息中查看是否存在该服务,若不存在则返回空的绑定信息,若存在继续后续判断;在监控信息里面查询该服务是否处于运行状态,如果服务正常运行中则直接跳转至第5步,否则服务注册中心会发送通知给该服务所在的容器,令其激活服务;

3)服务容器收到服务注册中心通知后,激活指定的服务,即启动该服务的功能;

4)服务的相应功能开始运行,并向服务注册中心发布服务信息;

5)服务注册中心在监控信息中查询并选择相应服务,将该服务的绑定信息返回给服务客户端;

6)服务客户端获取到服务绑定信息,通过服务绑定信息完成服务绑定过程,获取服务引用对象;

7)服务客户端通过服务引用对象开始订阅服务数据或发送服务请求,完成服务调用。

服务化功能集成框架的服务引用机制统一了基于DDS和RPC over DDS通信的服务引用过程,实现了服务提供者和服务消费者之间的硬编码地址解耦,提高了服务引用的可靠性。

二、服务管理模型

在武器装备体系服务化功能集成框架中,服务注册中心SRC是核心部分,它提供了服务注册、服务查询、服务监控等管理功能,是服务提供者、服务消费者、服务容器三者信息交互的中枢。它需求一套完整的服务管理模型来支撑,服务化功能集成框架的服务管理组成如图4所示。

图4 服务管理组成

服务注册中心通过统一配置服务注册信息,可以有效地优化应用服务发布和使用的流程,通过服务运行监控提高系统运行的可靠性。服务化功能集成框架的服务管理由服务静态管理、服务动态管理两部分组成,服务静态管理包括服务注册、服务查找、服务更新、服务映射部署等四方面,服务动态管理包括服务激活、服务监控等两方面。

1)服务静态管理

服务化功能集成框架的服务静态管理包括服务注册、服务查找、服务更新、服务映射部署四个部分,通过服务静态信息的合理配置和管理,有利于服务的注册、查找和更新,并且可以优化服务引用的流程,从而提升服务集成的效率,为构建面向特定任务的作战流程提供支持。

a)服务注册

平台、武器和系统的功能可以作为用户向服务注册中心完成服务注册、查询等功能。在服务注册过程中首先提交服务信息,服务信息是指服务全名(名字空间、服务名、服务版本)和服务相关路径(服务部署位置或服务地址映射等)。服务注册中心解析并校验服务信息,服务信息校验通过之后,服务注册中心将存储所提交的相关服务信息。服务信息存储成功后,服务注册中心将服务描述信息存储到数据库中,并在其注册目录中增加一条服务注册记录,该记录包含该服务的名称、命名空间、版本号、部署映射地址等属性信息,以提高服务查询的速度。接着,注册中心返回服务注册结果给用户,提示注册成功,或者注册失败并附原因。

b)服务查找

服务注册中心提供服务查找功能,提供在集成过程中查找所需的服务信息。在服务查找过程中,服务注册中心返回服务查找界面,可以浏览服务目录,也可以通过输入服务名或者输入命名空间来查找所需要的服务信息。如果找到所需的服务,可以从服务注册中心获取到全部的服务信息,然后通过SIF pub/sub通信、SIF req/rep通信调用相关服务。

c) 服务更新

在武器装备体系中,一些平台、武器和系统的功能需要进行更新迭代。在功能服务更新过程中,不仅使注册中心能够方便更新服务信息,同时需要一种服务更新推送机制,以便向服务使用者(集成和使用人员)能够及时了解和使用更新的服务。在功能集成和使用过程中,注册中心会记录不同用户正在使用的服务,当正在使用的服务被更新或者有该服务的新版本注册,服务注册中心会在该用户推送更新的服务标记,使得用户能够看到当前所使用服务的更新情况,从而能够及时地更新自己的服务客户端。

d) 服务映射部署

武器装备体系中,有些功能是固定在特定的平台、武器和系统上,而有些服务可以灵活动态部署在不同平台、武器和系统上。服务注册之后,对于固定的服务,需要建立服务地址的映射信息;对于能够灵活部署的服务,需要将服务部署到服务绑定节点的服务容器上。服务部署过程为:

(1)服务注册中心对新注册的服务进行审核,审核通过后再进行服务部署。在服务部署之前需要确保服务部署节点的服务容器已启动,服务容器提供传输端口,运行过程中应持续监听此端口;

(2)服务注册中心进行服务部署,先与服务容器的传输端口建立连接,然后开始向服务容器传输服务的相关文件和信息;

(3)服务容器收到服务文件后进行校验,并给服务注册中心回复服务部署结果。

(4)服务注册中心综合端口连接情况和服务容器部署结果,返回部署结果。

服务注册中心允许将同一服务部署到多个节点之上,并实现多副本服务同时运行,在提高服务容错性的同时,还能有效降低服务的请求压力和响应时间。

2)服务动态管理

武器装备体系集成过程中的任务实施中心需要实时监控服务动态管理的相关信息,以便确保作战任务的顺利实施。服务动态信息是指服务运行过程中发布的状态信息和以及实体(服务注册中心、服务容器、服务等)之间的指令交互信息,动态管理包括服务的激活、挂起、恢复、撤销以及服务生命周期内的监控。在武器装备体系中,服务运行的可靠性和实时性十分重要,服务化功能集成框架提供了服务动态管理实现服务激活和服务监控。

a)服务激活

服务激活是指服务在作战流程的调度下完成启动,进入运行状态。在采用Web Services或者REST实现的服务框架中,通常服务部署在Web应用容器中,服务包含在服务容器的进程中,服务对象由Spring管理,因此只要服务容器启动运行就能开始提供服务。在服务化功能集成框架中,服务作为独立功能实体运行,容器作为代理运行在各个节点上,通过容器可以实现服务实体的激活和去活。为了更好地提升服务的可用性,同时也减少不必要的性能负载,服务化功能集成框架提供管理员激活和服务消费激活两种机制,如图5所示。

图5 服务激活机制示意

(1)管理员激活

注册中心管理员可以在服务注册中心远程激活/关闭服务程序,服务注册中心提供单服务激活和任务模式激活两种人工激活方式。

单服务激活:管理员可以激活/关闭某个服务程序,如果服务是基础或原子服务如时间同步服务等,可以选择这种方式直接激活该服务并设置为常运行。

任务模式激活:借助服务所具有的任务模式属性,管理员可以批量激活/关闭某个任务模式下的服务,从而快速切换系统的任务模式。

(2)服务消费激活

武器装备体系不同平台、武器和系统之间需要协同,才能完成相应的作战任务。因此从功能服务的角度上看,不同的服务之间会产生依赖关系。依赖条件是指服务可能依赖其他的服务,即一个服务的正确运行需要其他服务的正确运行,如图6(a)和6(b)所示如果服务A直接服务B和服务C,或者服务A直接依赖服务B并且间接依赖服务C,则当服务B或者服务C未能正确运行时,服务A可能会失效或出现异常。通过配置服务的依赖条件,方便激活服务A时激活其依赖的服务,有利于提升服务的可用性。

图6 服务依赖

在服务注册中心中,当有服务被调用时,如果该服务处于未激活状态,则由服务注册中心通知该服务所在的容器激活该服务;同时,为提高服务可用性,服务注册中心检查该服务的服务依赖信息,如果该服务依赖其他服务,注册中心会一并激活这些服务。

b) 服务监控

服务在被服务容器激活后进入运行状态,并开始不断对外发布服务运行状态,服务化功能集成框架制定了服务监控机制,规定了服务运行状态和服务运行控制指令。服务运行过程中具有正常运行中(NormalRunning)、警告(Warning)、暂停(Paused)、终止中(ShuttingDown)四种运行状态信息。服务运行控制指令有启动服务(StartProcessing)、暂停服务(PauseProcessing)、恢复服务(ResumeProcessing)、停止服务(StopProcessing),以及激活服务指令(ActivateService)。服务运行状态和服务运行控制指令的变迁如图7所示。

图7 服务状态变迁

服务运行状态和服务运行控制指令的变迁过程为:

(1)服务注册中心通过服务激活指令通知服务容器激活服务,服务启动并完成准备工作后,接收服务启动指令进入正常运行状态,开始对外发布状态信息(服务标识、IP地址、运行状态、负载信息、QPS等);

(2)通过暂停指令可以使得服务进入暂停状态,从而暂停对外发布数据或者暂停请求应答服务,直到收到恢复指令回到正常运行状态;

(3)当服务收到停止服务的指令后,不再对外接收服务请求,并将未处理的请求处理完,此时处于终止中状态,直至服务关闭。正常情况下,服务注册中心通过发送停止服务指令来关闭服务,在服务未能正常响应指令时才通知服务容器来关闭服务。

(4)在服务运行过程中,服务可以通过发布警告状态并附上原因,告知服务监控中心服务出现异常状况,然后自行恢复到正常运行状态中。如果出现严重错误服务将直接进入终止过程。

服务化功能集成框架的监控中心负责监听各个服务状态信息,通过服务发布的运行状态、负载情况、QPS等信息,监控中心能够了解到服务所处的状况,从而做出正确的调整决策,如服务注册中心结合服务监控的QPS信息来实现多副本服务的负载均衡。同时,监控中心提供服务监控的信息,使得使用人员能够更好地检查任务执行状态、错误发生原因等。

三、服务化功能集成的应用接口

服务化功能集成框架的一个重要部分是服务应用接口描述,这是功能作为服务的对外窗口,而服务接口与通信协议息息相关,服务化功能集成框架通常要先确定服务所采用的通信协议。服务化功能集成框架的服务基于Web Services或者自建的RPC协议实现服务交互接口,采用定制的服务描述方法来描述服务信息。服务是可发布和可发现的,服务提供者(即服务端)发布服务信息,服务消费者(即服务客户端)通过向服务注册中心发送服务接口全名来匹配服务,获取服务提供者的绑定信息,通过“IP地址+端口号+服务名”来绑定服务,最后以请求/应答的方式完成服务调用。

在武器装备体系中,应用通常需要实现一对多的实时高效可靠信息交互,同时需要支持RPC通信来扩展应用功能的使用场景。为满足武器装备体系实时高效可靠信息通信需求,融合DDS的服务化功能集成模型如图8所示。服务可基于DDS进行实时发布/订阅通信,也可基于RPC over DDS完成请求/应答通信。DDS提供了跨平台、跨语言的开发接口,拥有一套完整的接口定义语言(IDL)来定义接口,使得服务具备良好的互操作性。在服务化功能集成框架中,服务是一个对外提供一组信息发布/订阅接口或者暴露某个请求/应答接口的应用功能。当服务对外提供发布/订阅接口时,服务与一个或多个主题的发布者/订阅者绑定,服务之间通过信息域和主题名来进行区分(规定不同的服务不可以提供相同的发布/订阅主题);当服务对外提供请求/应答接口时,服务与一个 Interface绑定(规定Interface中可以定义多个功能接口),服务之间通过IP地址和服务名来进行区分。

图8 服务化功能集成应用接口定义

服务消费者与服务通信前,首先需要完成服务绑定过程,获取服务引用对象(Service Reference Object),服务引用对象包含了与服务Interface和发布/订阅Topic相对应的客户端通信实例,通信实例向服务消费者提供了调用具体服务接口的方法。

服务注册中心存在各服务的注册信息,能够分辨服务的通信方式,不同方式的服务绑定信息是不一样的。在服务化功能集成框架的服务引用机制中,规定了采用pub/sub和req/rep通信的服务绑定信息:对于pub/sub的服务,注册中心返回的是服务的数据域ID,对于req/rep通信的服务,注册中心返回的是IP地址。通过服务绑定信息,服务客户端能够绑定到对应的服务端,获取服务引用,完成服务调用过程。服务构建在DDS中间件之上,服务化功能集成框架的服务接口需要兼顾发布/订阅和请求/应答这两种不同的交互接口。

作者:张宏军 韦正现 黄百乔

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多