趙佳峰
文章編號: 2095-2163(2018)03-0140-04中圖分類號: 文獻標志碼: A
摘要: 關鍵詞: (School of Computer Science and Technology, Donghua University, Shanghai 201620, China)
Abstract: This paper analyzes the actual application integration requirements of a small and medium sized enterprise, and selects the integration of enterprise application based on the Mule ESB service bus as the basic framework.The running state of application integrated platform needs monitoring and management. This paper designs and implements a separate service monitoring module. With the help of JMX, the function of service monitoring and management and the API interface provided by Mule ESB, JMX is integrated with Mule ESB, and the service information monitoring and real-time display is realized, including application call to service, system resource occupancy status and so on.According to the internal mechanism of Mule ESB, this paper designs and develops a common application module, single sign in, which are encapsulated into Web Service services according to JAX-WS specification, and are registered on the application integration platform to provide services for the related applications. The existing applications of enterprises can be encapsulated into services based on this mode and register on this platform.
Key words:
作者簡介:
收稿日期: 1需求分析
1.1企業(yè)應用集成
企業(yè)獨立信息單元不斷增長,但是彼此之間缺乏相應地關聯(lián),這可能會導致信息時效降低,存在重復操作,準確性不足等問題,這些問題成為業(yè)務、決策能力的短板。由于公司跟政府、企業(yè)、學校有很多合作,許多應用需要維護,然而每個應用之間的關聯(lián)性不強,企業(yè)常出現(xiàn)信息重復處理,甚至導致更新不同步、不一致,因此需要將所有應用進行集成,耦合應用與應用之間的集成邏輯,并對應用的使用情況進行監(jiān)控,以便管理者能及時發(fā)現(xiàn)并處理問題[1-4]。初期集成的應用包括單點登錄與統(tǒng)一身份驗證應用。
1.2服務監(jiān)控
本文設計的系統(tǒng)需實現(xiàn)對Mule ESB的監(jiān)控管理,即對Mule ESB主要信息的查看,如對服務器的內(nèi)存情況、操作系統(tǒng)的消息、運行環(huán)境、類加載情況、線程總體情況的查看。通過系統(tǒng)運行,用戶可以實時監(jiān)控到Mule ESB的使用狀況到確保企業(yè)級應用在合理范圍內(nèi)的使用,防止負載過多影響到運行效率[5-7]。同時,由于不同企業(yè)以及下屬部門對監(jiān)控管理的具體需求不同,而JMX代理服務可以編寫自定義的監(jiān)控界面,因此在設計實現(xiàn)監(jiān)控系統(tǒng)時可以根據(jù)實際需求進行個性化設計,避免系統(tǒng)的單一性,提高系統(tǒng)的針對性和適用性。監(jiān)控Mule ESB信息的同時,還要考慮到系統(tǒng)的健壯性及可靠性。
1.3單點登錄
企業(yè)通常有多個網(wǎng)站,每個網(wǎng)站有獨立的身份驗證機制。如果用戶通過身份登錄訪問網(wǎng)站,則需要在每個網(wǎng)站上分別進行注冊,這不僅給用戶帶來不便,而且企業(yè)的網(wǎng)站也因重復此功能浪費性能[8-10]。如果所有成員網(wǎng)站,能夠以一個通用的賬戶登錄,即單點登錄,不僅可以大大提高用戶體驗,也實現(xiàn)了企業(yè)中多個網(wǎng)站之間的互通性。單點登錄使網(wǎng)站之間有機結合,更好地體現(xiàn)公司大平臺,大渠道的理念,同時,也利于原網(wǎng)站之間的相互促進與相互宣傳,實現(xiàn)互惠共利。因此,開發(fā)單點登錄系統(tǒng)是亟待解決的問題。
另外,用戶身份和認證信息的管理是應用系統(tǒng)建設中的關鍵部分。由于用戶的需求不斷變化和發(fā)展,企業(yè)內(nèi)部的應用系統(tǒng)也會不斷的增加或淘汰。因此,應用系統(tǒng)一般在不同平臺、不同公司開發(fā),所使用的技術不一致,這種情況很容易造成各個系統(tǒng)之間擁有獨立的用戶身份管理,每次登錄不同應用系統(tǒng)就需要進行多次登錄[11-13]。
2系統(tǒng)框架設計
本文基于Mule ESB的企業(yè)應用集成與開發(fā)的目的是將企業(yè)內(nèi)部的應用集成到一個統(tǒng)一的平臺,把企業(yè)各個信息孤島進行集成,使不同應用系統(tǒng)中的信息可以在整個企業(yè)范圍內(nèi)共享[14-15]。由于現(xiàn)有的服務監(jiān)控功能不能滿足大部分用戶的需要,因此在此基礎上開發(fā)一個服務監(jiān)控模塊更能方便監(jiān)控服務的使用情況,系統(tǒng)的框架結構如圖1所示。
從圖1中可以看出,服務注冊通過Mule ESB中的組件,解析XML配置文件,每個服務都會有與之對應的類,使用Spring容器以IoC的形式注入與服務相應的類。當應用通過Mule ESB調(diào)用其他應用時,應用將請求發(fā)送至企業(yè)集成平臺,通過路由功能將請求自動轉發(fā)到相應的服務,服務會對接收的請求通過轉化器進行處理后再轉發(fā)到實際的請求地址。企業(yè)集成平臺的監(jiān)控管理模塊將JMX與Mule ESB相結合,在服務中加入JMX框架,則監(jiān)控管理模塊可以調(diào)用Mule ESB提供的接口獲得服務的參數(shù)實現(xiàn)服務監(jiān)控。
本文分別集成了單點登錄服務和統(tǒng)一身份驗證服務,然后通過服務監(jiān)控模塊監(jiān)控運行在Mule ESB平臺上的服務。
單點登錄服務基于Java Web應用,在系統(tǒng)中提供一個接口供第3方使用,該接口在Mule ESB中為單點登錄服務創(chuàng)建JMX代理服務,系統(tǒng)通過JMX監(jiān)控2個服務的使用情況。
服務監(jiān)控管理模塊基于Mule ESB開發(fā),Mule ESB里面已經(jīng)實現(xiàn)了JMX的內(nèi)核架構,因此可以部署一個JMX的代理應用到Mule ESB的項目中,通過開發(fā)JMX的代理客戶端實現(xiàn)系統(tǒng)的功能,從而對Mule ESB進行監(jiān)控管理。
3服務監(jiān)控模塊和單點登錄功能設計
3.1服務監(jiān)控模塊
本系統(tǒng)采用JMX技術框架實現(xiàn)監(jiān)控功能,且可以自定義監(jiān)控界面。Mule ESB實現(xiàn)了多種MBean接口,并提供了JMX接口;其中接口包括:獲取服務內(nèi)存信息、線程使用情況、CPU使用率、服務調(diào)用情況等等。本文采用JMX自帶的jolokia在Mule中添加JMX代理來實現(xiàn)實時監(jiān)控,具體配置方式如圖2所示。
3.2單點登錄功能設計
為了將單點登陸服務的監(jiān)控信息反饋到監(jiān)控系統(tǒng),需要將系統(tǒng)提供接口封裝為Mule ESB服務。在Mule ESB平臺中設計一個JMX代理程序,能夠讓監(jiān)控管理模塊監(jiān)控到單點登錄服務的使用情況,然后部署運行,監(jiān)控程序如圖3所示。
此工作表示一個代理服務,單點登錄功能提供的接口封裝在此服務。當用戶請求登錄時,請求鏈結會傳送到Mule ESB上,系統(tǒng)會把一個SOAP的Web Service請求轉換成為一個POST的HTTP請求,向單點登陸系統(tǒng)發(fā)送請求,得到請求結果再返回給成員網(wǎng)站,在整個登錄請求的過程中,會被服務監(jiān)控系統(tǒng)監(jiān)控。
4功能測試
本文設計并實現(xiàn)了企業(yè)應用集成平臺,并設計開發(fā)了單點登錄和統(tǒng)一身份驗證服務,通過示范應用調(diào)用集成的服務,測試功能能夠正常運行。通過對功能的逐項測試,可以對不足的地方進行修改和完善,以達到系統(tǒng)功能測試的目的。測試內(nèi)容及測試結果見表1。
4查看內(nèi)存情況顯示內(nèi)存信息是5查看操作系統(tǒng)信息顯示操作系統(tǒng)信息是6查看運行環(huán)境顯示運行環(huán)境信息是7查看類加載情況顯示類加載情況是8查看線程總體情況顯示線程信息是9關閉服務關閉成功是5結束語
隨著計算機科學技術不斷發(fā)展,企業(yè)信息化辦公在逐步加快,越來越多的企業(yè)級應用被用到企業(yè)的實際生產(chǎn)生活中。由于不同軟件之間存在著架構、協(xié)議等差別,使得交互和通信十分復雜,軟件的重用也很難實現(xiàn)。Mule ESB作為開源企業(yè)服務總線,成功實現(xiàn)了企業(yè)級應用之間的互聯(lián),提高了軟件運行效率,避免了企業(yè)資源的浪費。隨著部署在Mule ESB上的應用不斷增多,對于企業(yè)服務總線的監(jiān)控管理變得尤為重要,設計實現(xiàn)一款企業(yè)自定義的監(jiān)控管理功能十分必要。Java語言是目前使用最為廣泛的編程語言之一,具有開發(fā)過程簡單、類庫豐富、且與平臺無關等特點,因此,本文采用Java語言進行實現(xiàn)。在實際系統(tǒng)開發(fā)過程中,采用了MVC開發(fā)模式,使業(yè)務層與視圖層分離,便于系統(tǒng)的升級和維護,且開發(fā)邏輯更加清晰,思路明確。本文研究工作主要有以下幾點:
(1)設計開發(fā)的2個服務,單點登錄和統(tǒng)一身份驗證服務能夠正常運行,方便企業(yè)后續(xù)應用集成。
(2)通過本集成平臺,用戶可以實時查看企業(yè)服務總線Mule的相關信息,同時,也可以管理Mule ESB服務(關閉以及重啟)。
通過系統(tǒng)測試,平臺可以穩(wěn)定運行、準確監(jiān)控到實時數(shù)據(jù)。同時,界面設計以簡潔為主,便于用戶操作和查看信息,具有良好的用戶體驗。在今后的工作中,將會從界面的美化以及功能的擴充和細化2方面進行改進。
參考文獻
[1] 相鵬,段友祥. 企業(yè)服務總線(ESB)-企業(yè)集成關鍵技術初探[J]. 信息技術與信息化,2005(6):88-91.
[2] 金保華,和振遠,張亮,等. 基于SOA的數(shù)據(jù)共享與交換平臺分析與設計[J]. 鄭州輕工業(yè)學院學報(自然科學版),2011,26(1):102-106.
[3] 周曉艷. 企業(yè)服務總線(ESB)在SOA中的應用研究[D]. 大連海事大學, 2009.
[4] Schmidt M T, Hutchison B,Lambros P, et al. The Enterprise Service Bus: Making service-oriented architecture real[J]. Ibm Systems Journal, 2005, 44(4):781-797.
[5] Java Management Extensions(JMX) Technology[EB/OL], http://www.oracle.com/technetwork/java/javase/tech/javamanage-men t-140525.html.
[6] 張昀. 基于SOA架構的分布式ESB總線的研究與實現(xiàn)[D]. 南京理工大學, 2009.
[7] 牛栩,荊澤泉.基于SOA的企業(yè)應用集成研究[J].數(shù)字技術與應用,2011(12):107-108.
[8] 高亮,楊林,胡映兵.基于ESB的企業(yè)應用集成研究[J].機械設計與制造,2008(1):221-223.
[9] 王云花. ServiceMix:一個開源ESB的剖析與應用[D]. 太原理工大學, 2012.
[10]Vinoski S. Java Business Integration[J]. IEEE Internet Computing, 2005, 9(4):89-91.
[11]劉迎春,蘭雨晴,于樂樂.ESB中的數(shù)據(jù)交換技術[J].計算機系統(tǒng)應用,2005(10):42-45.
[12]謝繼暉,白曉穎,陳斌,等. 企業(yè)服務總線研究綜述[J].計算機科學,2007(11):13-18.
[13]http://www.mulesoft.org/what-mule-esb.
[14]Brebner P. Service-Oriented Performance Modeling the MULE Enterprise Service Bus (ESB) Loan Broker Application[C]// Software Engineering and Advanced Applications, 2009. Seaa '09. Euromicro Conference on. IEEE, 2009:404-411.
[15]鄭鑫. 基于ESB企業(yè)應用集成架構研究與應用[D]. 太原理工大學, 2013.