陶 承
(中国铁道科学研究院集团有限公司 电子计算技术研究所, 北京 100081)
采购管理是物资管理极为重要的组成部分,它以市场交易行为来完成铁路运输生产和基本建设的物资采购,是保障企业经营持续进行的重要环节。招标采购管理系统是铁路信息化的重要内容,涵盖项目申报与受理、集体决策、标前准备、开评标、采购结果管理等业务功能。
当前,国内对铁路招标采购的相关研究比较多,文献[1]针对铁路采购管理工作的现状和难点,提出了采购管理信息系统开发的思路、总体框架、功能模块构架和系统业务流程,并给出了实现方案。文献[2]在具体技术实现上,注重新技术在招标采购过程中的运用,提出智慧型采购的概念并实现,通过内外网的互联互通实现与商务平台数据共享,使新的采购功能满足铁路总公司需求。
现阶段铁路招标采购的研究,多从功能定制、业务流程管理等角度对系统进行研发,对基于微服务构建系统的研究较少。各铁路局集团有限公司(简称:铁路局)在招标采购业务流程上存在客观差异,在招标流程和具体操作层面都有不同的需求,传统的基于业务流程的系统缺乏灵活性配置策略,难以满足这种个性化需求。
本文基于微服务架构,研究、设计铁路招标采购管理系统,对招标采购过程中涉及的业务进行服务化封装,利用流程编制技术对微服务进行组装,形成满足各铁路局不同招标采购需求的技术方案。
实现招标采购业务的全过程管理,内容涵盖项目管理、审批、招评标管理等方面,能够满足铁路总公司、铁路局以及铁路局下属单位的招标采购业务需求,为铁路物资招标采购的标准化、规范化、信息化提供支撑。本系统的具体目标如下:
(1)流程可规范。虽然各铁路局在招标采购的具体流程上有差距,但招标采购的具体实现环节是有法律法规进行规范的,系统设计的流程必须满足合法性、规范性要求[3]。
(2)数据可共享。实现与物资管理、商务等外部系统的数据交互,提供统一的数据服务接口。
(3)系统可通用。提供灵活、可扩展的架构方式,针对不同单位、不同采购标的需求,提供个性化的招标采购解决方案。
(4)业务可审计。记录招标采购全过程数据,保存流程信息、评审信息、招投标文件、合同文件等,为审计提供数据支撑,通过系统流程进一步规范招标采购业务。
采用面向服务的需求分析方法对系统的功能需求进行梳理,主要功能需求如下:
(1)项目管理服务。提供采购项目的基本信息维护功能,包括采购项目的创建、修改、存储,数据的导入、导出等。
(2)审批服务。提供通用的审批流程服务功能,对审批事项、审批人员、审批时间等进行管理。
(3)会议管理服务。提供招标采购过程中所需的会议编辑、会议室申请、会议通知、会议费用等管理服务。
(4)招标服务。提供招标文件编辑、管理、招公告发布等功能。
(5)评标服务。提供签到、唱标过程信息以及现场视频服务接口,对评标项目创建、评委抽选、评委分工、评标过程、结果审核及定标等信息进行管理。
(6)基础数据管理服务。提供评标专家库、供应商库、法规标准、文档模板等基础数据管理服务。
为保证系统能够持续稳定地提供易用的招标采购服务,本系统还应满足如下需求:
(1)可配置性。具备基于图形化的流程配置功能,用户可以根据业务需求进行流程的个性化定制。
(2)可维护性。针对微服务提供统一的服务治理功能,可实现微服务的全生命周期管理。
(3)高可用性。提供高可靠的运行能力,保证招标采购流程的稳定运行和关键信息的可靠传递。
(4)易用性。为用户提供友好、逻辑清晰、基于流程图的可视化操作界面,实现招标采购信息的可视化展现。
由于不同铁路局的招标采购流程不同,不同采购标的的采购流程也不同,而且各单位的采购流程随着业务的发展也会发生变化。传统的基于固定流程的招标采购系统由于缺乏灵活性,难以应对这种挑战。系统要满足多样化的招标采购需求,必须满足两个条件:(1)流程可定制,各单位能根据自身需求进行灵活定制,要求系统提供流程编制和管理工具,实现服务的灵活组装;(2)流程调用的服务实现可定制,各单位可对流程节点的实现方案进行定制,要求系统具备服务热插拔功能,实现服务的动态部署。
2.2.1 微服务架构
微服务是一些协同工作的小而自治的服务,它具有高内聚性和高自治性[4]。微服务根据业务的边界来确定服务的边界。微服务架构是一种架构模式,它将单一应用程序划分成一组小的服务,服务之间相互协调、相互配合[5]。微服务架构具有松耦合、语言无关、独立部署、独立可扩展等特点。
2.2.2 微服务协同编制
微服务架构下需要通过各微服务之间的协作来实现一个完整的业务流程,微服务的协调方式分为两种:(1)编制(Orchestration)面向可执行的流程,通过一个可执行的流程来协同内部及外部的服务交互。通过中心流程来控制总体的目标、涉及的操作,以及服务调用顺序;(2)编排(Choreography)面向合作,通过消息的交互序列来控制各个部分资源的交互。参与交互的资源都是对等的,没有集中的控制。虽然编排提供了较高的灵活性,但缺乏统一的流程管理,不满足本系统对流程管理的需求。所以在本系统中采用面向流程的编制来处理微服务协同关系。
本系统在借鉴微服务架构的基础上[6],结合自身业务需求,对系统逻辑架构进行设计。架构主要是从IT基础设施、微服务框架、管理平台、公共基础设施、微服务容器、流程编排服务、以及应用程序编程接口(API)网关等维度来划分,如图1所示。
图1 系统逻辑架构
(1)IT基础设施。为系统提供IT运行环境支撑,包括计算、网络、存储等资源,可依托云计算平台提供服务。
(2)公共基础服务。微服务平台依赖的通用基础服务资源,主要包括应用性能管理、分布式事务、安全管理等功能。
(3)微服务框架。系统将微服务所需的服务注册、服务发现、服务路由、熔断隔离等能力统一设计为服务框架,由框架为微服务的运行提供支持。
(4)管理平台。系统提供微服务的灰度发布、服务降级、链路跟踪、监控警告、配置中心等维护管理功能。
(5)微服务容器。系统提供微服务运行的容器,所有业务相关的微服务均位于该容器。这些服务包括项目管理服务、审批服务、会议管理服务等。
(6)流程编排服务。本部分采用流程编制引擎,通过调用微服务提供的Rest API接口,将独立的微服务组装成为满足用户需要的流程。编制好的流可通过Rest API接口供外部调用。
(7)API网关。基于规则、路径、协议、转发等实现服务调用。API网关自动判断服务请求属性,对来自PC、APP、外部系统调用的请求进行转发。
系统技术架构融合了微服务流程编排、外部系统数据交互、负载均衡、统一身份认证、微服务治理等功能,可以有效满足招标采购系统的业务和管理需求[7]。具体架构如图2所示。
图2 系统技术架构
系统为用户提供PC、APP两种访问方式,通过负载均衡服务对请求进行分发,支持高并发访问,可满足铁路总公司的部署需求。统一身份认证服务可对用户进行认证和授权,确保用户的合法性。网关服务实现基于规则的请求转发,根据访问终端的不同,为用户提供不同的显示内容,避免业务交叉。流程编制服务通过调用微服务和平台基础服务进行流程编排,提供流程服务。平台通过微服务的方式实现与外部系统的数据交互。整个系统IT基础设施可部署在云计算平台上。
微服务是最小的业务单元,负责完成单一任务。一个服务通常实现一组同一范畴的业务功能,例如项目管理服务、审批服务等。服务可独立进行部署及扩展伸缩,每个服务定义了明确的边界,有利于规模化开发[8]。它的结构包括业务逻辑、数据存储、适配器、服务接口等。微服务实现结构如图3所示。
图3 微服务结构
微服务通过接口与外部系统实现数据交互。接口包括外部调用服务的接口REST API,以及微服务调用外部服务的客户端REST CLIENT。业务逻辑负责实现微服务提供服务的所有业务规则;数据库适配器为微服务提供不同数据库的适配功能,便于微服务在不同数据库环境中迁移。数据库服务器为微服务提供数据存储支持,保证服务的原子性和独立性,微服务通常使用独立的数据存储服务[9]。
微服务编制引擎包括流程引擎、任务、监控和管理后台等功能。流程引擎采用DSL来编写流程定义文件,可以通过手动编写和图形化界面编辑两种方式定义流程。任务功能包括流程任务的创建、删除、取消、列表、并行计算等[10]。监控主要对流程各个节点的任务运行情况进行监控,及时了解流程的运行状态,方便用户做出相应决策。引擎同时提供任务调度功能,满足分布式定时调度的需求。管理后台可查看任务和工作流的元数据定义、工作流的执行状态、历史任务、历史流程等信息。
通过使用流程引擎提供的功能,可以快速实现微服务的流程组合,为用户提供灵活可定制的流程服务。流程引擎组装微服务的结构如图4所示。
图4 流程引擎组装微服务
用户通过微服务编制引擎,按照业务需求编制招标采购的业务流程,再通过流程引擎提供的接口,调用微服务注册中心中提供的微服务,为流程各个节点注入实现服务。微服务编制引擎通过自身的协调控制机制,根据微服务返回的数据进行判断,引导完成流程操作。
本文对铁路招标采购管理系统的需求进行了分析,并给出了基于微服务架构的解决方案。该方案降低了业务功能服务组件的耦合度,可对流程优化、功能变更等需求做到快速响应、敏捷开发、灵活配置、快速部署。基于微服务架构的铁路招标采购管理系统已应用于铁路调度管理系统、智慧乘务系统、高铁Wi-Fi运营服务系统等行业信息化业务中,并得到用户的普遍认可,为铁路招标采购业务的发展提供了有力的技术支持。