王曉娟 羅正軍 張力菠
摘 要: 頂層設(shè)計的缺失極易造成信息孤島,增加系統(tǒng)開發(fā)維護成本。為解決這一問題,提出采用SOA架構(gòu)進行系統(tǒng)集成。以Web Service為核心技術(shù),針對運輸管理實際,設(shè)計了系統(tǒng)的應(yīng)用展現(xiàn)層與業(yè)務(wù)邏輯層、業(yè)務(wù)邏輯層與數(shù)據(jù)層等技術(shù)集成架構(gòu);給出了系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)和相應(yīng)接口代碼。實踐表明,這一設(shè)計思路和結(jié)構(gòu)有利于系統(tǒng)的擴展、維護,有利于消除信息孤島,提高信息的時效性、共享性和集成性。
關(guān)鍵詞: SOA; 運輸管理; 系統(tǒng)集成; 安全管理
中圖分類號: TN915?34 文獻標識碼: A 文章編號: 1004?373X(2015)05?0110?04
Study on integration of provincial transportation management
systems in technology perspective
WANG Xiao?juan1, LUO Zheng?jun2, ZHANG Li?Bo2
(1. Department of Electronics and Information Technology, Zhengde Vocational and Technical College, Nanjing 211106, China;
2. College of Economics and Management, Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China)
Abstract: Lack of top?level design can easily result in information island, which will increase cost of system development and maintenance. In order to solve this problem, the service?oriented architecture (SOA) is proposed to make system integration. According to the transportation management, the frameworks were designed by taking Web Service as the core technology, which integrated application presentation layer with business logic layer, and business logic layer with data layer of the system. The key technologies and corresponding interface code of implementing the system are given. The design ideas and structures are conducive to the expansion and maintenance of the system, and elimination of information island, and can improve the timeliness, sharing and integration of information.
Keywords: service?oriented architecture; transport management; system integration; safety management
自20世紀90年代中后期開始,某省運輸管理局致力于全省道路運輸?shù)男畔⒒ㄔO(shè),各地市運管處也依據(jù)自身需要建設(shè)了自身管理特點的各類系統(tǒng)。這些系統(tǒng)為各級管理部門提高管理水平發(fā)揮了巨大作用。但隨著我國交通運輸?shù)目焖侔l(fā)展及相關(guān)法規(guī)的不斷推出與完善,現(xiàn)有系統(tǒng)逐漸暴露出許多不足,如信息孤島日益嚴重、系統(tǒng)可擴展性差、系統(tǒng)維護成本高等。要有效地解決這些問題,需要引入新的設(shè)計思想和方法。
1 SOA架構(gòu)
政府作為一種服務(wù)管理機構(gòu),除具有企業(yè)信息系統(tǒng)的一般特點外,還具有服務(wù)行業(yè)流程變動快等特點。SOA(Service?Oriented Architecture,面向服務(wù)的體系架構(gòu))架構(gòu)滿足了這一需求,成為解決現(xiàn)有運管系統(tǒng)問題的首選技術(shù)[1]。SOA以服務(wù)為核心,以業(yè)務(wù)為中心,具有松散耦合、標準化接口和無狀態(tài)的服務(wù)設(shè)計等特點[2?3]。它能根據(jù)業(yè)務(wù)流程的變化,快速形成特定流程的可重用性服務(wù),構(gòu)建出“服務(wù)池”(Services Pooling),促進不同軟件間的服務(wù)融合,進而提升相關(guān)系統(tǒng)開發(fā)效率,縮短開發(fā)周期。SOA作為可用于構(gòu)建省域運輸管理信息系統(tǒng)的一種思想和方法,運輸管理信息系統(tǒng)中的業(yè)務(wù)流、數(shù)據(jù)流和各類基礎(chǔ)資源均以服務(wù)實現(xiàn),通過服務(wù)間已定義良好的接口和契約,提供基于規(guī)范化的、可發(fā)布的、可識別的公共服務(wù)組件。
2 基于SOA的企業(yè)技術(shù)架構(gòu)
省域運管業(yè)務(wù)系統(tǒng)面向省、市、區(qū)縣三級運管機構(gòu),為相關(guān)人員提供基本業(yè)務(wù)的操作和管理決策。省運管局根據(jù)國家和省相關(guān)道路運輸管理條例等法律法規(guī),負責(zé)執(zhí)行省域運輸管理工作,提升行業(yè)服務(wù)水平;各地市運管處行使本地市道路運輸管理職能,是行業(yè)管理的具體組織者和管理者;各區(qū)縣及鄉(xiāng)鎮(zhèn)運管部門負責(zé)本地區(qū)道路運管的具體實施。根據(jù)三級運管部門的職能,省域運管業(yè)務(wù)系統(tǒng)除需滿足各級機構(gòu)、各類人員的基本業(yè)務(wù)服務(wù)操作功能外,還需為各級管理機構(gòu)提供輔助決策管理功能,同時也需為社會大眾提供便利信息訪問服務(wù)功能。通過運管輔助決策系統(tǒng),為各級管理部門提供行業(yè)信息數(shù)據(jù)及各類統(tǒng)計信息,幫助其實現(xiàn)決策管理[4]。通過省域運管業(yè)務(wù)外部接口管理,實現(xiàn)省域運管業(yè)務(wù)系統(tǒng)與交通部系統(tǒng)、省域“權(quán)利陽光”管理模塊以及服務(wù)企業(yè)自行開發(fā)的各類應(yīng)用系統(tǒng)等的數(shù)據(jù)交換和信息共享。
上述需求背景需設(shè)計者通盤考慮系統(tǒng)技術(shù)架構(gòu),以提高系統(tǒng)的健壯性、可靠性、可維護性和安全性。這需要SOA的技術(shù)架構(gòu)具有較好的可擴展性。因此,需構(gòu)建提供不同能力的服務(wù),如流程服務(wù)、業(yè)務(wù)規(guī)則服務(wù)、人工干預(yù)服務(wù)等。根據(jù)省運管局的頂層設(shè)計,對業(yè)務(wù)系統(tǒng)的應(yīng)用展現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)管理層進行無縫集成設(shè)計,打破職能部門的條塊分割形成的信息“豎井”,消除系統(tǒng)功能新增造成的信息囚籠,以形成信息融合,發(fā)揮信息的協(xié)同效應(yīng)。以組建和中間件等技術(shù)提高系統(tǒng)的健壯性,以降低系統(tǒng)開發(fā)成本。參照IBM的SOA參考模型[5],運輸管理業(yè)務(wù)系統(tǒng)信息化實現(xiàn)技術(shù)架構(gòu)采用如圖1所示方式進行構(gòu)建[6?7]。技術(shù)架構(gòu)的核心是應(yīng)用支撐層,其關(guān)鍵技術(shù)是Web Service等。
使用的技術(shù)規(guī)范說明如下:
(1) 連接服務(wù)
JCA(Java連接架構(gòu)器):JCA定義一套標準的接口,用于讓連接器把兼容的應(yīng)用程序服務(wù)器無縫地集成[8]。通過這一技術(shù),實現(xiàn)省域新老系統(tǒng)、省域系統(tǒng)與各類外部系統(tǒng)的無縫集成。
JDBC(Java數(shù)據(jù)庫連接):JDBC作為開放的多類關(guān)系數(shù)據(jù)庫訪問接口技術(shù),可執(zhí)行SQL語言開發(fā)的各類Java API,開發(fā)人員可構(gòu)建更高級的工具和接口。通過這一標注的數(shù)據(jù)接口技術(shù),實現(xiàn)省域運管業(yè)務(wù)系統(tǒng)中不同服務(wù)對象所使用的各類關(guān)系數(shù)據(jù)庫的數(shù)據(jù)集成。
(2) 數(shù)據(jù)服務(wù)
XQuery(擴展標記語言查詢):作為W3C制定的一套標準,它彌補了傳統(tǒng)關(guān)系數(shù)據(jù)庫的不足,通過XML文檔中信息的抽取,實現(xiàn)對異構(gòu)數(shù)據(jù)的同質(zhì)化處理。這一技術(shù)是新一代省域運管業(yè)務(wù)系統(tǒng)對異源數(shù)據(jù)處理的核心和關(guān)鍵技術(shù),有利于省域運管系統(tǒng)輔助決策支持的實現(xiàn)。
(3) 業(yè)務(wù)服務(wù)
EJB(企業(yè)Java豆):EJB是J2EE的核心技術(shù)之一,支持組件的可重用性和可移植性。EJB由封裝了業(yè)務(wù)邏輯的多個方法組成[9]。采用EJB技術(shù),對省域運管業(yè)務(wù)各類業(yè)務(wù)流程實現(xiàn)組件化,既提高了系統(tǒng)的可靠性和可維護性,又提高了系統(tǒng)的開發(fā)效率,降低了系統(tǒng)開發(fā)成本。
SCA(服務(wù)組件架構(gòu)):通過SCA提供的編程模型,實現(xiàn)SOA架構(gòu)下的各類應(yīng)用系統(tǒng)。基于SCA架構(gòu),構(gòu)建省域運管業(yè)務(wù)中各類EJB組件的服務(wù)模型,從而高效地實現(xiàn)省域運管業(yè)務(wù)中各類應(yīng)用系統(tǒng)。
(4) 流程服務(wù)
BPMN(Business Process Modeling Notation):一個業(yè)務(wù)流程建模和Web服務(wù)標準[10]。BPMN提供簡潔明了的標注體系,也內(nèi)置了各類開發(fā)模型,這有利于下一代XML語言高效執(zhí)行系統(tǒng)業(yè)務(wù)流程。省域運管業(yè)務(wù)系統(tǒng)通過內(nèi)置這一技術(shù),提高新一代省域運管業(yè)務(wù)系統(tǒng)的可擴展性、可維護性。
WS?CDL(Web服務(wù)組編定義語言):通過WS?CDL,實現(xiàn)不同交易代理之間的形式化聯(lián)系。這一技術(shù)有利于省域運管業(yè)務(wù)系統(tǒng)不同組件之間的形式化聯(lián)系,實現(xiàn)業(yè)務(wù)組件有效集成。
(5) 展現(xiàn)服務(wù)
JSR168(Java Specification Request 168):作為Java規(guī)范要求,主要應(yīng)用于Portal軟件的開發(fā)。這一技術(shù)是實現(xiàn)省域運管業(yè)務(wù)系統(tǒng)門戶程序的關(guān)鍵。
WSRP(遠程門戶Web服務(wù)):WSRP定義一系列規(guī)范。這些規(guī)范描述了如何基于SOAP 中 Web 服務(wù)生成門戶系統(tǒng)標記片塊以及如何構(gòu)建公共接口。通過公共接口,設(shè)計者無需進行編程即可構(gòu)建在相關(guān)頁面中遠程運行 Portlet的門戶。省域運管業(yè)務(wù)系統(tǒng)可充分利用這一技術(shù)實現(xiàn)各類組件的引用。
AJAX(Asynchronous JavaScript and XML):是一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)[11]。它使用SOAP或其他一些基于XML的Web Service接口。這是各級運管部門信息門戶網(wǎng)站數(shù)據(jù)抓取的核心技術(shù)。
(6) 消息交換與傳輸
RMI(遠程對象方法傳輸):主要實現(xiàn)企業(yè)Java豆等對象之間的相互通信。對于已開發(fā)實現(xiàn)的省域運管業(yè)務(wù)EJB組件,利用RMI實現(xiàn)省域運管業(yè)務(wù)系統(tǒng)內(nèi)組件池中不同組件之間的相互通信。
JMS(Java消息服務(wù)機制):定義的一組基于Java環(huán)境的技術(shù)規(guī)范,實現(xiàn)Java平臺上面向消息中間件相互通信的接口?;贘MS,開發(fā)設(shè)計出省域運管業(yè)務(wù)系統(tǒng)中警務(wù)通等各類移動通信中間件以及各類系統(tǒng)中信息的推送技術(shù)。
SOAP(簡單對象訪問協(xié)議):一組基于XML技術(shù)的分布式環(huán)境中對象進行信息交換的簡單訪問協(xié)議。這一規(guī)范能有效解決省域運管業(yè)務(wù)系統(tǒng)這一分布式環(huán)境,實現(xiàn)不同物理系統(tǒng)之間信息的有效交互與融合,提高了整個系統(tǒng)的可擴展性,增強了系統(tǒng)的均衡負載能力。
SDO(數(shù)據(jù)服務(wù)對象):它規(guī)范了系統(tǒng)中異質(zhì)數(shù)據(jù)源間采用統(tǒng)一的數(shù)據(jù)進行開發(fā)設(shè)計的模型。通過這一技術(shù),實現(xiàn)省域運管業(yè)務(wù)系統(tǒng)與交通部系統(tǒng)之間、省域運管業(yè)務(wù)系統(tǒng)與企業(yè)業(yè)戶之間、省域運管業(yè)務(wù)系統(tǒng)與社會大眾之間等的信息交互,提高了系統(tǒng)的集成度。
(7) 安全管理
WSDM(Web服務(wù)分布式管理):它提供了如何描述MUWS資源的接口、如何訪問MUWS資源的接口等的相關(guān)定義,同時實現(xiàn)了Web服務(wù)管理的功能。
WS?Trust:它是安全令牌交換協(xié)議的擴展,采用了WS?Security消息傳送機制,實現(xiàn)憑證在不同信任域環(huán)境下的傳播和簽發(fā)。
系統(tǒng)通過采用上述技術(shù)作為系統(tǒng)安全管理的核心,實現(xiàn)省域運管業(yè)務(wù)系統(tǒng)各類數(shù)據(jù)包和信息的傳輸安全,提高整個系統(tǒng)的運行的安全性和可靠性。
(8) 服務(wù)描述、注冊與發(fā)現(xiàn)
WSDL(Web服務(wù)描述語言):以某一結(jié)構(gòu)化的方式描述Web服務(wù),通常采用XML結(jié)構(gòu)這一方式進行。由于接口的標準化,因此Web服務(wù)可以實現(xiàn)即時裝配。通過WSDL,將省域運管業(yè)務(wù)系統(tǒng)中各類Web服務(wù)描述為包含相關(guān)端口的訪問點的集合,既有利于消息的交互,又有利于省域運管業(yè)務(wù)系統(tǒng)分布式操作的實現(xiàn)。
UDDI(統(tǒng)一描述、發(fā)現(xiàn)和集成):采用XML實現(xiàn)跨平臺的一種描述協(xié)議。通過這一規(guī)范,實現(xiàn)各類Web服務(wù)的描述并進行注冊,構(gòu)建服務(wù)池以利于各類服務(wù)的查找和使用。省域運管業(yè)務(wù)系統(tǒng)中定義的所有服務(wù)均通過這一機制實現(xiàn)統(tǒng)一的管理和調(diào)用。
3 系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)
SOA將整個系統(tǒng)中需要共享的各類資源進行劃分,使用相關(guān)技術(shù)將各類資源進行封裝,通過ESB(Enterprise Service Bus,企業(yè)服務(wù)總線)這一基本連接中樞,以服務(wù)的形式接入業(yè)務(wù)系統(tǒng)。這些服務(wù)在物理上實現(xiàn)了分布自治,在邏輯上構(gòu)建成為一個“服務(wù)連接池”,實現(xiàn)一體化管理,并以透明的方式供服務(wù)使用者進行資源的優(yōu)化選取和高效訪問,支持用戶的應(yīng)用配置。
3.1 核心配置文件
(1) 負載均衡
負載均衡用于實現(xiàn)服務(wù)端點之間的負載均衡。其核心代碼如下:
(2) 消息交互
通過WS?X技術(shù),實現(xiàn)各類服務(wù)協(xié)同檢測和即時響應(yīng),保證各類服務(wù)消息交互的可靠性。其核心代碼如下:
xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm"/> 3.2 業(yè)務(wù)接口代碼 通過標準化業(yè)務(wù)組件,提供了系統(tǒng)的可靠性和可維護性,降低了系統(tǒng)開發(fā)成本。相關(guān)業(yè)務(wù)接口代碼如下: (1) 業(yè)務(wù)申請 public boolean BusinessApply(String ID, String Category, String State){ Company comp = new Company(); String msg = "Business Apply Failed!"; if(!comp.existId(id)){ msg = "No business!"; } else if(!comp.existCategory(Category)){ msg = "No category!"; } else if(!comp.existState(State)){ msg = "No state!"; } else if(Business.apply(ID, Category, State){ msg = "Apply successed!"; } return msg; } (2) 業(yè)戶新增 public String CompanyAppend(String CompanyID, Object[] CompanyInfo){ Company comp = new Company(); String msg = "The company added Failed!"; if(!comp.existId(CompanyID)){ msg = "This company has presence!";
}
else if(comp.add(CompanyID, CompanyInfo){
msg = "The company added successfully!";
}
return msg;
}
(3) 運輸業(yè)務(wù)受理
public String BusinessAccept(String RealRouteID, String VehicleID, Object[] GoodsInfo){
RealRoute route = new RealRoute();
Vehicle vehic = new Vehicle();
String msg = "Accept failure!";
if(!route.existId(RealRouteID)){
msg = "route doesnt exist!";
}
if(!vehic.existId(VehicleID)){
msg = "Vechicle isnt exist!";
}
else if(Business.Handle(RealRouteID, VehicleID, GoodsInfo){
msg = "Accept successfully!";
}
return msg;
}
4 系統(tǒng)技術(shù)實現(xiàn)
用戶以超級管理員身份從相關(guān)門戶網(wǎng)站登錄,登錄成功后,顯示系統(tǒng)的主界面,如圖2所示。界面頂部是系統(tǒng)的6個功能菜單,點擊后,界面左邊顯示相應(yīng)子功能菜單;界面底部是系統(tǒng)操作菜單;無論什么身份的用戶,當進入操作界面時,界面中部的上面將顯示用戶需要處理、或已經(jīng)處理的業(yè)務(wù),下面是一些重要的通知,點擊通知即可查看通知的具體內(nèi)容。
5 結(jié) 語
信息化建設(shè)在頂層設(shè)計缺失時極易形成信息孤島,造成信息融合性差,同時這也容易導(dǎo)致后期系統(tǒng)的開發(fā)維護成本迅速膨脹。為了有效解決這一問題,本文基于SOA的技術(shù)架構(gòu),從技術(shù)角度提出了省域運輸管理系統(tǒng)的集成方案。這一方案以服務(wù)為導(dǎo)向,以Web Service為核心技術(shù),通過消息機制、組件技術(shù)、中間件技術(shù)等實現(xiàn)各類應(yīng)用在技術(shù)上的無縫集成。這樣既提高了系統(tǒng)開發(fā)效率,又極大地降低了后期的維護成本,也有利于系統(tǒng)新功能的擴展,增強了系統(tǒng)的可靠近和健壯性。
參考文獻
[1] MARKS E A. Service?oriented architecture (SOA) governance for the services driven enterprise [M]. USA: Wiley, 2008: 14?32.
[2] BIEBERSTEIN Norbert, BOSE Sanjay, FIAMMANTE Marc, et al. Service?oriented architecture compass: business value, planning, and enterprise roadmap [M]. [S.l.]: Pearson plc, 2006:32?45.
[3] 張潤彤,朱曉敏.服務(wù)科學(xué)概論[M].北京:清華大學(xué)出版社,2011.
[4] 肖琴杰.我國交通運輸信息化進程中存在的問題和建議分析[J].道路交通與安全,2012(2):14?17.
[5] IBM.面向服務(wù)的體系結(jié)構(gòu)概述[EB/OL].[2004?06?01].http:// www.ibm.com/developerworks/cn/webservices/ws?ovsoa/.
[6] IBM Patterns.基于SOA的技術(shù)支撐平臺解決方案[EB/OL]. [2004?06?12].http://www?900.ibm.com/cn/public/solutions/solu_07.shtml#main.
[7] 劉昕,李凱,祝銘.基于SOA的勘察設(shè)計企業(yè)信息系統(tǒng)集成研究與實現(xiàn)[J].水運工程,2011(9):220?223.
[8] OS?RIO A L, AFSARMANESH H, CAMARINHA?MATOS L M. Towards a reference architecture for a collaborative intelligent transport system infrastructure [C]// IFIP Advances in Information and Communication Technology. Boston: Springer, 2010, 336: 469?477.
[9] KOHNKE Oliver, SCHEFFLER Torsten, HOCK Christian. SOA?Governance: Ein Ansatz zum management serviceorientierter Architekturen [J]. Wirt Schafts Informatik,2008, 50(5): 408?412.
[10] ZENG L, BENATALLAH B, NGU A H H, et al. QoS2 aware middleware for web services composition [J]. IEEE Transactions on Software Engineering, 2004 (5): 311?327.
[11] 孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計與開發(fā)[M].北京:電子工業(yè)出版社,2004.