施繼延,楊宗亮,劉 炎,劉東映
(1.云南電網有限責任公司物流服務中心 云南 昆明 650051;2.昆明能訊科技有限責任公司項目研發部云南 昆明650051)
基于SOA的電網物流服務大廳應用系統的設計與實現
施繼延1,楊宗亮1,劉 炎1,劉東映2
(1.云南電網有限責任公司物流服務中心 云南 昆明 650051;2.昆明能訊科技有限責任公司項目研發部云南 昆明650051)
當前電網公司的多個物流業務系統存在數據分散獨立,無法互聯互通的問題。特別是隨著電網中心服務業務量的擴大,這種傳統的運營模式已無法滿足業務發展需求。本文在一站式服務的基礎上,提出了一種基于SOA的電網服務大廳系統架構。在系統中層通過構建SOA服務,把底層異構子系統的數據、業務邏輯進行封裝,以服務的形式供應用接口層調用。最后基于該設計實現了應用系統,該系統不僅能高效地支持整個電網物流中心的業務運轉,而且還具有一定的推廣性。
SOA;Web服務封裝;系統架構;J2EE
云南電網物流服務中心為云南電網有限責任公司物資集約化管理提供全面、高效的物資服務支持。目前物流中心各部門雖已實現了半無紙化辦公,但是各個部門使用的業務系統仍然無法互聯互通,系統之間的數據獨立分散、無法共享。這種現狀不僅出現了所謂的信息孤島[1],也嚴重阻礙了部門之間的協作管理,影響辦公效率。另外,在業務流程中還存在服務各環節切割分裂,合作方面臨多頭管理;業務溝通量大,供應商需要在中心各個辦公室間來回跑才能完成業務辦理等問題。
特別是在經濟高速發展的今天,隨著社會用電量快速增長,電網公司物資服務管理要求不斷提高,物流服務中心的業務規模逐步擴大,物流服務中心傳統的組織與運營模式已無法有效支撐“高效、多操作并行、質量穩定”的服務水平。如何科學、全面而又有效組織供應商管理工作是一個備受關注而又很有意義的問題。為此,為實現電網物流中心跨部門、跨領域辦公,提升業務辦理效率,云南省電網物流服務中心需要進行業務模式創新。在充分調研基礎上,決定采用一站式服務,將相關職能部門的審批業務集中在一起,一次性為用戶提供相關服務[2],建設并推廣基于SOA的電網物流服務大廳應用系統,歸集對外服務業務,重新調整物流服務模式,真正實現物資全程高效運作,輔助提升服務水平和企業形象。采用面向服務的體系結構SOA[3-5]可為一站式系統提供較好的解決方案。SOA技術獨立于不同的硬件、操作系統,可把應用程序的不同功能單元進行封裝(稱為服務),提供統一的接口,通過服務之間良好的接口聯系起來,實現不同部門之間數據的共享。
1.1 SOA服務架構
SOA(Service-Oriented Architecture)是一種面向服務的體系結構,最早于1996年由Gartner公司提出[6]。SOA網站[7]給出的官方定義是:“SOA的本質是服務的集合,各個服務之間進行通信,這些通信可能是簡單的數據傳遞,也可能是多個服務之間協調進行的活動,而且服務之間需要的協調需要某些方法進行連接”。
在SOA體系架構的相互協調之間,主要涉及到三者:服務提供者、Weblogic服務注冊中心[8]和服務使用者。服務提供者提供符合契約的服務,并將它們發布到Weblogic服務注冊中心;服務使用者通過向Weblogic服務注冊中心查找所需的服務,并綁定到對應的服務;服務使用者和服務提供者之間也可以直接交互,服務使用者可直接使用服務提供者提供的服務。通過構建這樣的SOA服務架構,不僅可降低系統各部分之間的耦合性,增強服務設計的復用性,還能隨時根據客戶端需求靈活地執行相關任務,降低開發成本,這從根本上改變了傳統軟件的開發方式。
在電網物流服務大廳應用系統應用中,供應商、物資需求單位和業務人員就相當于是服務使用者,通過自助服務終端、門戶網站、物流大廳系統等設備查找服務,完成相關業務;電網物流服務大廳系統中層作為服務提供者,提供各個應用軟件和界面,使得客戶端不用進行編程就可使用各個服務或根據需要構建相關的服務集。整個過程客戶端都無需關心功能模塊的業務邏輯構成、數據如何存儲等問題,也不用擔心不同業務子系統之間的異構性。
1.2 電網物流服務大廳應用系統架構設計
電網物流服務大廳系統把面向服務思想(SOA)引入到傳統的J2EE體系結構上,在應用接口層和數據層之間搭建了一層SOA架構,通過對底層提供的服務進行組合封裝,構建簡單的Web服務,并提供統一的服務接口,供上層不同的業務系統調用。Web服務是以XML為基礎,開放性的Web技術是SOA實現的主要方法[9]。
因云南電網物流服務中心各部門業務呈現多元化,針對客戶有各種短期或長期業務需求,電網物流服務大廳系統對數據層和業務邏輯層的底層數據、業務邏輯進行封裝,通過系統服務總線向上層注冊、發布,供客戶端的供應商、物資需求單位和業務辦公人員使用。因部分業務涉及跨部門交叉,數據也可能是多個部門共享,為此有些服務還會根據客戶端的需求進行多個服務組合,重新構成一個新的Web服務向上層發布。通過該機制,不僅解決了電網物流中心業務的動態性,服務總線還可隨時根據客戶端的業務需求生成對應的服務接口,并在服務庫中找到相應的Web服務描述,如果確實需要涉及多個服務,可立馬把相應的業務功能服務和業務數據服務進行封裝,并和應用接口進行一對一綁定,執行相應操作。
電網物流服務大廳應用系統采用J2EE標準的層次體系結構設計。主要由網絡基礎設施層、數據層、SOA構建層(Web服務封裝)及應用接口層4層構成,安全管理層與標準規范層貫穿平臺所有層次。系統的體系架構如圖1所示。
如圖1所示,從下往上,系統架構底層是網絡基礎設施層,該層用于支撐整個應用系統的正常運轉,為上層提供硬件服務。數據層用于存儲、管理各子系統基礎數據。SOA構建層(Web服務封裝)又分為兩層:服務管理層和業務邏輯層,業務邏輯層是對每個業務的具體邏輯實現進行封裝,比如供應商登記服務、合同簽訂服務、支付款項服務等等;服務管理層主要是電網物流服務大廳應用系統涉及的幾個大的業務模塊,甚至是根據客戶端需求重新構建新的組合服務,這樣能保證當有新系統要集成時,也可將新系統的數據進行封裝成服務供其他應用系統使用。在應用接口層和數據層之間,本文構建了一層SOA架構,SOA服務根據前端接口層需求對業務邏輯層提供的業務和數據進行封裝,以屏蔽功能服務層中不同子系統之間的異構性。前端應用接口層提供與其他系統交互的接口,主要以門戶網站、自助設備終端及大廳公告大屏進行展現,用戶無需關心底層業務具體的實現,只需通過前端接口即可順利辦理相關業務。
在圖1的架構中,標準規范模塊主要包含了技術標準、業務標準以及行業解決方案標準,通過標準規范體系保障了平臺的整個運作過程;安全保障模塊是對整合平臺內存在安全需求的數據和應用服務提供的一套安全策略,保證平臺中數據和應用服務的安全性。安全管理主要包含信息防篡改、權限控制、數據備份、性能監控等功能。

圖1 系統體系架構圖
對于服務的封裝,考慮到最主要的就是具有SOA標準的接口,但是SOA只對服務交互機制的標準進行了描述,并未規定具體的實現方式,到目前為止,從技術上看,對于標準接口的實現也出現了幾種不同的方式,如表1所示。

表1 標準接口實現方式的比較
Web Service使用XML方式來描述所有數據,可輕松地穿越防火墻并實現跨系統地交換數據,與平臺無關,為此本系統SOA構建層在進行服務封裝設計時,采用的是Web Service方式[10-11]。在進行服務描述時,本系統采用了擴展巴科斯范式(extended Backus-Naur form,EBNF)[12]對服務組件的功能描述如下:
服務構建描述::=<接口規約,消息規約>
接口規約::=<接口名,操作>
操作::=<操作名,輸入參數,輸出參數>
輸入參數::=<參數名,類型,描述>
輸出參數::=<參數名,類型,描述>
消息規約::=<消息名,消息描述,消息屬性>
消息屬性::=<屬性名,類型,屬性描述>
以上描述是服務組件描述必不可少的,是定義服務接口的主要契約元素。另外,在服務封裝時,本文采用ServiceMix作為企業服務總線,J2EE平臺中Apache的Axis被作為Web服務引擎。ServiceMix是一個小巧的Java業務集成容器,是一個基于SOA架構和事件驅動的企業服務總線(ESB)[13]。
考慮到電網物流服務大廳應用系統的基礎數據來自多個異構子系統,將對原有應用及數據進行Web服務封裝成一些小的服務單元 (Service Unit,SU),以便以服務形式嵌入到企業服務總線中供應用接口調用。而這些服務單元將集中在服務集成模塊(Service Assembly,SA)下一起運行[14]。運行過程中,配置文件jbi.xml負責配置運行在ServiceMix運行環境中的SA,即Broker業務流程控制模塊。Broker服務引擎組件用來集成所有的服務組件,是主要的業務流程控制模塊。servicemix.xml負責配置服務單元SU的運行。
文中以查詢招標公開信息為例進行舉例說明,如圖2所示,首先需要招投標服務專員進入招標服務模塊,將招標公開信息錄入系統并發布。當客戶端供應商點擊招標信息查詢按鈕時,ServiceMix通過HTTP接收客戶服務請求,以“招投標信息”該關鍵字作為變量,調用 BidMessageQuery服務, 此時BidMessageQuery服務內部已通過業務邏輯實現了招投標信息的提取和封裝。在找到對應的服務組件后,服務并未直接返回給客戶端,而是將服務請求通過NMR傳送給Broker服務引擎組件,由Broker服務引擎組件決定是否可以返回給客戶端。

圖2 招標公開信息業務流程圖
3.1 電網物流服務大廳功能模塊設計
根據對電網物流服務大廳應用系統需求分析,功能模塊分解圖如圖3所示。首先是窗口服務,根據不同窗口的業務辦理,功能模塊主要有招標服務、合同服務、履約服務、結算服務和綜合服務五大塊,每一個服務模塊下面又分為好多具體的業務,這些功能模塊的客戶端人群主要是物流中心業務人員。自助服務里的功能模塊主要是針對供應商、物資需求單位自己在大廳操作執行的。而后臺的系統管理主要是系統管理員用于管理前臺所需要的數據,如組織機構管理、用戶管理和權限管理等。

圖3 電網物流服務大廳應用系統功能模塊分解圖
3.2 電網物流服務大廳系統網絡運行設計
電網物流大廳作為物流服務中心對供應商提供服務的唯一窗口,需要與供應商完成標書發放,中標公示,合同簽訂和合同執行等業務。考慮到一站式窗口服務將大幅提高企業工作透明度,客戶只需要到達服務大廳,就可以得到所需要的完整服務,文中提出了基于一站式
服務理念的網絡運行圖,如圖4所示。

圖4 系統網絡運行圖
系統底層通過Web Service接口將其他子系統的數據都整合到了系統應用服務器上,以便于大廳客戶及業務工作人員可直接訪問數據,辦理業務。考慮到系統安全,服務器和客戶端接口之間經過安全防護硬件(例如:防火墻)的過濾之后訪問系統資源。
在以上設計的基礎上本文實現了電網物流服務大廳應用系統。該應用系統在軟件體系方面,遵循JAVA EE規范,采用MVC模式(Model+View+Control)[15]進行開發。在基于Web2.0、XML等通用技術標準的基礎上,集成通用的權限、用戶、工作流等基本功能,有效保證系統的穩定和可靠運行。在業務邏輯層,利用組件封裝技術,降低耦合度,實現業務邏輯的縱橫貫通,并根據需要提供接口,保證了業務和數據的交互能力。目前該系統已開發完成并投入實際使用,系統臺界面如圖5所示。

圖5 電網物流服務大廳應用系統界面圖
文中在SOA理念的基礎上設計了電網物流服務大廳應用系統架構,將SOA在企業集成面向服務的思想應用到電網系統,不僅實現一站式大廳的集成,從而也實現了電網物流中心“一化三高”(“工作流程標準化、專業化程度高、工作效率高、服務滿意率高”)的目的。通過該應用系統的設計并實現,不僅解決了電網物流中心各部門信息無法互聯互通、辦公效率低下的問題,物流中心也從半自動化辦公真正轉變為無紙化辦公。但是隨著SOA和新技術的發展,本系統也還有一些不足之處,比如隨著業務量的擴大,后期可考慮在應用系統數據底層采用分布式云存儲進行數據管理,以高效地實現對多個子系統的異構分布式數據的并行操作。
[1]趙萬青.數據交換與共享系統的設計與實現[D].湖北:華中科技大學,2012.
[2]沈榮華,楊國棟.論“一站式”服務方式與行政體制改革[J].中國行政管理,2006(10):27-30.
[3]Cucinotta T,Mancina A,Anastasi G F,et al.A real-time service-oriented architecture for industrial automation[J].IEEE Transactions on Industrial Information,2009,5(3):267-277.
[4]NI Y H,WANG H B,HUANG N S,et al.A heterogeneous system integration framework for businesscollaboration[C]//IEEEInternationalConference on Intelligent Computing and Intelligent Systems,Shanghai:[s.n.],2009:217-221.
[5]JIN Y,SHIDIAGATTA S.A framework of fuzzy triggers for XML database systems [C]//IEEE International Conference on Information Ruse and Integration.Las Vegas:[s.n.]2009:296-299.
[6]SCHULTE R W,NATIS Y V.Advanced SOA for advanced enterprise projects,Report ID:493863,Gartner[EB/OL].(2006-07-13).http://www.gartner. com/DisplayDocument ref=g_search&id=493863 &subref=advsearch.
[7]Barry D K.Service-Oriented Architecture(SOA)Definition[EB/OL].(2014-01-4).http://www.servicearchitecture.com/articles/web-services/serviceoriented_architecture_soa_definition.html.
[8]謝輝,魯士文.基于 WebLogic Server實現跨域啟用集中式身份驗證SOA[J].計算機工程與應用,2006(33):119-121,131
[9]SI N,YU P F,ZHANG L.Semantic SOA based integrated development environment for complex information systems[C]//Proceedings of the 7th International Conference on System Simulation and Scientific Computing.Beijing:[s.n.].2008:1521-1526.
[10]張勝,王露,黃亮.Web Service的封裝在車聯網系統中的應用[J].計算機與現代化,2013(6):162-165,169
[11]孫傳群,楊洋.基于Web Service的業務系統集成模型[J].科技通報,2013,04:44-46
[12]谷勇浩,劉勇.用擴展巴科斯范式優化決策樹協議解碼技術 [J].吉林大學學報 (信息科學版),2007,25(1):12-17.
[13]IBM.Combining service-oriented architecture and event-driven architecture using an enterprise service bus[EB/OL].[2011-08-10].http://www.ibm.com/developerworks/library/ws-soa-eda-esb/index.html.
[14]梁愛虎.SOA思想、技術與系統集成應用詳解[M].北京:電子工業出版社,2007
[15]馮相忠,王萍.基于J2EE平臺的MVC模式的辦公日志系統的實現 [J].計算機應用,2005,25(12): 2964-2966.
The design and implementation of the SOA-based power grid service center system
SHI Ji-yan1,YANG Zong-liang1,LIU Yan1,LIU Dong-ying2
(1.Logistics Service Center of Yunnan Power Grid CO.,LTD,Kunming 650051,China;2.Project Research and Development,Kunming Nengxun Technology CO.,LTD,Kunming 650051,China)
Although there are lots of subsystem in in power grid company,they are currently facing the problem of unable to connective smoothly.Meanwhile the data is independent and scattered.This traditional operation mode can't meet requirements with the expanding of business power grid service center.To solve this problem,this paper proposes a SOA-based power grid service center system based on the concept of"one-stop"working style.It builds an SOA service in the middle layer of system and encapsulate the data,business logic which in the underlying heterogeneous subsystems.Then our system supplies with the interface layer in the form of service calls.Finally the application system was implemented based on the design.This system not only can efficiently support the business operation of the whole grid logistics center,but also has certain extension.
SOA;Web service encapsulation;system architecture;J2EE
TN02
:A
:1674-6236(2017)02-0071-05
2016-01-21稿件編號:201601186
施繼延(1967—),男,云南昆明人,碩士,高級工程師。研究方向:項目管理,物資供應鏈管理,物資一體化管理。