陶 承
(中國鐵道科學研究院集團有限公司 電子計算技術研究所, 北京 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運營服務系統等行業信息化業務中,并得到用戶的普遍認可,為鐵路招標采購業務的發展提供了有力的技術支持。