王 喬
(中國鐵道科學研究院集團有限公司 電子計算技術研究所, 北京 100081)
我國鐵路信息化起步較早,現有應用軟件種類多樣,有Client/Server結構的,也有Browser/Server結構的,這些應用依賴于不同的操作系統和不同的開發平臺,開發工具和開發環境多種多樣,由于這些歷史因素的原因,造成鐵路應用各個系統之間存在系統交互難度大、無法支撐業務部門業務融合、資源無法得到重復利用、項目建設周期長、成本高、同類型同功能的產品反復購買和重復學習、增加運維成本等問題[1]。
隨著互聯網行業迅猛發展和大型業務的不斷擴張,單體應用架構逐漸無法滿足互聯網時代的快速變化,高昂的維護成本、較長的交付周期、較差的可擴展性等問題直接制約了企業信息化的發展。Cloud Foundry是一個開源平臺即服務(PaaS)云平臺[2-4],不限定供應商,不會把用戶禁錮在專用軟件或云基礎架構內。本文擬從統一規劃、統一標準、統一平臺設計理念出發,基于Cloud Foundry開發的云環境和統一開發框架[5-9],建立統一應用開發平臺,快速響應企業信息化建設過程中的發展和維護需求。
蒙西華中鐵路(簡稱:蒙華鐵路)由浩勒報吉站作為開端,中途經過7個省,跨越內蒙古、陜北地區、晉中地區、黃河中下游地區、湘、贛等地,止于江西吉安,全線正線長1 814 km。 蒙華鐵路作為鐵路投融資改革的示范項目,面對新機遇、新挑戰和新要求, 必須要立足高標準、高起點和高質量進行信息化集中統一建設。“統一規劃、統一標準、統一平臺” 是信息化的一個長期建設思路,因此開發平臺在設計過程中遵循規范要求,工作成果符合標準要求,利用先進、成熟、穩定的技術手段,滿足蒙華鐵路所需系統的開發需求,同時還要保障開發平臺的先進性適應未來一段時間的發展變化,并具備不斷演進的基礎條件。在設計、實現時需要考慮業務系統需求的差異性,底層組件必須具有一定的靈活性。
Cloud Foundry是VMware推出的開源PaaS云平臺,支持多種開發框架、編程語言、運行環境及應用服務,開發人員可以在短時間內快速部署應用和擴展,無需擔心任何基礎架構問題,Cloud Foundry由多個相對獨立的組件通過消息機制組成分布式系統,使平臺可以在各層級都可水平擴展,既能運行在大型數據中心也可以在桌面電腦上運行[7]。
開發框架:Cloud Foundry支持Java?代碼、Spring、Ruby、Node.js和自定義框架[8]。
應用服務:Cloud Foundry提供了對MySQL、PostgreSQL、Redis和自定義服務的支持[8]。
統一應用開發平臺,跨域了業務系統開發平臺的定位局限性,以先進的設計開發理念立足于業務系
統開發、運行、運維等各階段全方位的 PaaS。 統一應用開發平臺是技術平臺的的核心組成部份,與客戶服務平臺、數據服務平臺、集成服務平臺等技術平臺緊密結合,平臺從功能上劃分為基礎設施、公共套件、集成開發、系統治理、集成包管理、數據管理等6大模塊, 上層戰略管理、決策支持、設備管理、經營開發等業務系統對技術平臺功能實現透明化運轉,平臺總體架構,如圖1所示。

圖1 統一應用平臺總體架構圖
統一應用開發平臺為業務系統研發和實施人員提供了包括業務系統設計、開發、測試、發布、運行的完整工作環境,還將具有PaaS、數據即服務(DaaS)的特性,即在云資源管理平臺基礎上,通過平臺治理工具完成應用系統的部署、升級、配置等運維工作,為應用系統提供統一的中間件管理,構建基于云環境的統一應用開發和運維平臺。
(1)基于統一應用開發平臺可以統一蒙華鐵路信息化技術路線,確保技術架構一致性;
(2)減少系統開發難度,提升開發效率,快速響應業務需求,有效地控制信息系統建設質量;
(3)為項目總體管控提供支撐;
(4)為應用軟件提供交互渠道,加速多業務集成、融合。
平臺功能架構,如圖2所示。
3.2.1 系統治理工具
系統治理工具是基于開發平臺的應用系統配置、管理、發布、采集、監聽、控制的集中式工具,提供查看管理服務器、中間件、應用、配置、存儲日志、性能,以及預警功能,通過分析工具定位故障產生原因,提供故障解決知識庫,可依據知識庫中故障處理策略和配置規則,選擇自動或者手動的方式,快速及時恢復故障點。

圖2 統一應用開發平臺功能架構
3.2.2 集成開發平臺
集成開發平臺以Cloud Foundry為基礎, 為統一應用開發平臺提供多種主流的應用系統集成開發工具,使開發人員可以自主選擇軟件的布局設計,為開發人員提供代碼輔助、導航與管理,為管理人員提供自定義的工程管理方式等,同時可以提供支撐業務系統測試、運行、調試的平臺容器。平臺為業務系統開發人員提供了高效、便攜、可靠的技術保障,提高了業務系統功能開發的效率和質量。
3.2.3 平臺基礎設施
平臺基礎設施是平臺中最底層的部分,其中,包含核心框架和平臺微內核,實現事件監聽、界面交互、數據管理、請求處理、異常處理等功能。
3.2.4 平臺公共套件
平臺公共套件是為統一應用開發平臺提供各類業務系統松耦合的公共服務,如:任務調度、即需報表、數據緩存、消息通信、BPM和統一權限等。公共服務是由平臺實現的各種高級功能和服務,基于這些功能和服務可以快速開發業務系統,比傳統的代碼開發效率高且質量高,可以保障業務系統的穩定和高效[10]。
3.2.5 集成包
集成包可以看作一種接口封裝組件,集成包為統一應用開發平臺提供了一體化平臺服務的集成與系統軟件的集成。開發人員在業務系統開發的過程中按照集成包運用規則編寫配置文件,即可實現集成包組件的自啟動,與相關信息系統自動集成。
3.2.6 數據服務
數據服務是由平臺提供的業務應用數據源、中間數據、應用數據接入的服務,可通過傳遞有用的信息幫助用戶進行優化決策及精準營銷等。
平臺在邏輯上采用分層架構設計實現,包括展現層、服務交互層、業務邏輯層、持久層[11]。用戶與應用系統交互過程中,各層之間相互協作,依次進行數據展現與輸入、數據傳輸與接入、服務請求派發、業務邏輯執行和數據持久化操作等多個階段[12],分層結構,如圖3所示。

圖3 統一應用開發平臺分層架構
利用復用和封裝的原則,業務邏輯層為統一應用開發平臺提供了通用組件與服務,代碼實現了集中通用和優化。在應用開發過程中,為實現某些通用業務可直接調用業務邏輯層的相應組件與服務,有效減少重復代碼,提升代碼性能。
在應用交互過程中,數據基于不同的傳輸載體和特有的傳輸格式,以不同的展現形態,在各層中移動,實現應用系統響應與業務處理,滿足開發人員與用戶需求。
統一應用開發平臺后臺管理使用“主-從”式架構設計,通過命令轉發、解析和執行的信息處理方式,中心控制節點控制全部Cloud Foundry客戶終端,實現Cloud Foundry后臺的統一管理。同時,基于Cloud Foundry的統一應用開發平臺,使用jquery portls技術,實現輕量級靈活的門戶架構和統一的平臺層權限管理控制,采用運維管理統一入口,實現運維模塊單點登錄,具有視圖自定義功能。
統一應用開發平臺后臺運行機制依賴Cloud Foundry 云平臺架構。Cloud Foundry 是一個復雜的分布式系統,由數10個組件組成。Cloud Foundry中的Droplet把應用軟件源代碼和Cloud Foundry相應的運行環境與所需的管理腳本全部壓縮到tar包里。Cloud Controller模塊會發送start/stop等基本的apps管理請求給數據包絡分析(DEA),dea.rb接收這些請求后,從NFS里面找到合適的Droplet。DEA解壓tar包,根據start請求腳本運行應用軟件,其運行機制,如圖4所示。這種完善的運行機制與后臺管理體系為加速企業信息化建設提供了有力條件。
Cloud Foundry在鐵路信息化領域應用較少,本文提出的基于 Cloud Foundry的統一應用開發平臺建設方案是一次新架構的嘗試。統一應用開發平臺可以快速響應用戶需求,支持水平擴展、快速交付、快速部署,提高開發效率、降低運維成本和業務應用建設融合成本,減少開發人員不必要的重復勞動。今后將針對平臺的可定制化運行環境做進一步研究。

圖4 基于Cloud Foundry架構的統一應用開發平臺運行機制