摘 要:在基于Web服務的應用支撐環(huán)境(WebSASE)中,為了監(jiān)控和管理環(huán)境中多個分布式工作流引擎及Web服務運行容器的運行狀態(tài)、監(jiān)控部署在引擎中組合服務/服務的運行狀態(tài),給出了一個基于Web服務的應用支持環(huán)境監(jiān)控管理系統(tǒng)的設計與實現(xiàn)。
關鍵詞:Web服務; 工作流; 監(jiān)控; 管理
中圖分類號:TP393文獻標志碼:A
文章編號:1001—3695(2007)03—0106—03
近幾年,Web服務技術發(fā)展迅速,已經(jīng)成為應用程序主流的開發(fā)技術基礎和平臺[1]。Web服務因其具有封裝性、松散耦合、使用標準協(xié)議規(guī)范、高度可集成能力[2]等優(yōu)點得到了IBM、Microsoft、BEA等業(yè)界主流公司的支持。W3C、OASIS等國際標準化組織為其制定了若干標準規(guī)范,推動了相關技術和應用的迅速發(fā)展。
WebSASE[3]通過一個基礎框架來幫助用戶建立、運行和管理一個多層結構的Web服務應用,為Web服務及其應用的部署、運行、監(jiān)控和管理提供統(tǒng)一的系統(tǒng)支撐。在WebSASE中,直接負責控制Web服務對象的是Web服務運行容器WSR(Web Service Runtime)[4]。為了解決互聯(lián)網(wǎng)應用的集成和協(xié)作問題[5],WebSASE還提供組合Web服務工作流引擎,協(xié)調和管理一個組合Web服務在多個WSR和多個工作流引擎中的執(zhí)行。在分布式環(huán)境下,如何進行WebSASE系統(tǒng)管理是一個重要的問題,具體包括:①在分布式環(huán)境下,如何進行遠程訪問和控制,如何同時管理多個服務器,需要用什么形式顯示多個服務器的信息;②監(jiān)控管理工具的顯示信息方面,包括如何體現(xiàn)出Web服務運行容器及工作流組合服務引擎內部信息狀態(tài)的可管理性,如何保證監(jiān)控信息在網(wǎng)頁中顯示的直觀有效性。
目前分布式系統(tǒng)管理技術中比較通用的是Java管理擴展(Java Management eXtensions, JMX) [6],它是一個為應用程序、設備、系統(tǒng)等植入管理功能的框架,包括IBM在內的多家公司的管理產品都用JMX框架進行管理。JMX雖然是一種可以擴展的框架,但是它無法利用Web服務容器的現(xiàn)有功能,并需要開放管理端口,造成了安全隱患。另一種典型的管理技術是Web 服務分布式管理(Web Services Distributed Management,WSDM)[7] 。它是OASIS 在2005年3月批準的一個OASIS新標準,利用Web服務來解決管理的集成問題。此標準得到IBM等大公司的支持, CA公司也開發(fā)出一套基于WSDM的管理工具。WSDM比JMX更適合于Web服務有關的管理,但前提條件是需要多個協(xié)議的支持,在當前的WebSASE中尚不適用。
在監(jiān)控管理信息的展示方面,一般采用在網(wǎng)頁中的圖形動態(tài)圖形顯示,當前的實現(xiàn)主要包括DHTML+JavaScript、VML和SVG。DHTML+JavaScript編寫的頁面圖形對象控制復雜,VML和SVG均為矢量圖像,并均可通過JavaScript進行動態(tài)控制,但是VML在網(wǎng)頁中繪圖不易保存VML圖形信息,使得已顯示信息無法存檔。
基于上述分析,提出一個基于Web服務的應用支撐環(huán)境監(jiān)控管理系統(tǒng)的設計方案:基于Struts模式實現(xiàn)監(jiān)控管理工具,采用Web服務方式實現(xiàn)管理服務,通過SOAP消息調用解決遠程管理問題。該監(jiān)控管理工具通過導航欄樹狀結構和權限信息動態(tài)切換解決多個服務器管理切換,通過對Web服務容器和工作流引擎內部信息狀態(tài)的監(jiān)控與管理達到對Web服務容器和工作流引擎的監(jiān)控及管理,通過可縮放矢量圖形(Scalable Vector Graphics, SVG)[8]動態(tài)圖形的顯示保證監(jiān)控信息展示的直觀和豐富。
1 相關技術
1.1 Web服務與Web服務工作流技術
W3C定義:“Web服務是一種通過URI標志的軟件應用,其接口及綁定可以通過XML標準定義、描述和發(fā)現(xiàn),并能通過基于因特網(wǎng)的協(xié)議使用基于 XML 的消息與其他軟件應用直接交互。” [9]
在Web服務的實際應用中,為了解決復雜業(yè)務過程的集成和協(xié)作問題[5],需要將獨立的Web服務組合起來以實現(xiàn)復雜的業(yè)務邏輯功能,因此出現(xiàn)了Web服務工作流技術。該技術通過將多個Web服務組合起來由工作流引擎自動調度,可以極大限度地實現(xiàn)自動化。描述Web組合服務工作流的語言(Business Process Execution Language for Web Services,BPEL)基于XML格式,處理簡單,是WebSASE引擎工作流流程描述語言。
1.2 Struts模式
Struts是Apache軟件組織提供的一項開放源碼項目,它為Web應用提供了模型—視圖—控制器(Model—View—Controller,MVC)框架,尤其適用于開發(fā)大型可擴展的Web應用。
MVC框架不僅可以使功能模塊與顯示模塊分離,同時它還提高了應用系統(tǒng)的可維護性、可擴展性、可移植性和組件的可復用性。圖1顯示了Struts模式下對請求的處理過程。
圖1 Struts模式下請求處理過程
將Struts模式運用到監(jiān)控管理系統(tǒng)中,能夠使監(jiān)控管理系統(tǒng)結構清晰,且易于擴展。
1.3 SVG(可縮放矢量圖形)
SVG由W3C組織發(fā)布為推薦標準,優(yōu)點是采用XML格式的文本文件描述,可像矢量圖形一樣任意放大、縮小,還能靈活結合文本、圖形、數(shù)據(jù)以及腳本[10],文件小,方便在網(wǎng)頁中上傳和下載。
將SVG圖形使用在監(jiān)控管理系統(tǒng)中,能夠更直觀、更及時地反映系統(tǒng)的當前狀態(tài)。
2 系統(tǒng)設計與實現(xiàn)
2.1 設計思路
通過對WebSASE的系統(tǒng)分析,得出如下管理需求:①在分布式環(huán)境下構造分布式系統(tǒng)管理模式,解決如何進行遠程訪問和控制,如何同時管理多個服務器等問題,以及采用何種形式顯示多個服務器信息;②監(jiān)控管理工具的信息顯示,包括如何體現(xiàn)出Web服務運行容器及工作流組合服務引擎內部信息狀態(tài)的可管理性和如何保證監(jiān)控信息在網(wǎng)頁中的直觀顯示和信息的有效性。
(1)對于分布式環(huán)境下的管理模式問題,系統(tǒng)管理命令和管理結果通過網(wǎng)絡方式傳輸。由于WSR功能主要是處理Web服務的調用,則將監(jiān)控管理系統(tǒng)分為兩個部分,管理Web服務作為管理接口部署在每個WSR中,工作流引擎類似,監(jiān)控管理工具通過SOAP消息對管理服務進行調用。為了便于在分布式環(huán)境中的訪問,將監(jiān)控管理工具確定為B/S訪問方式。
(2)在Web應用中,最常見的導航方式就是樹狀結構;為了切換多個被管理的服務器,則需要對樹狀結構連接內容進行切換。因為WSR和工作流引擎對應的樹狀結構不同,則在管理不同種類服務器的同時,需要切換為不同的樹狀結構。
(3)對于Web服務運行時及工作流組合服務引擎抽象內部信息狀態(tài)的相似之處,對內部結構如線程池、緩沖區(qū)等的屬性進行監(jiān)控管理,反映和管理當前Web服務運行時及工作流組合服務引擎的工作狀態(tài),體現(xiàn)Web服務運行時及工作流組合服務引擎的可管理性。
(4)對于監(jiān)控管理中出現(xiàn)的統(tǒng)計信息,如果當前工作流流程狀態(tài)僅用靜態(tài)圖片如JPG、GIF圖片顯示,無法提供大量信息,且無法形成互動;利用SVG矢量圖形進行直觀顯示,圖片小,利于保存;基于文本格式,可進行搜索,為存檔后統(tǒng)計提供便利,還可以在其中包含大量的數(shù)據(jù),并與觀察者形成互動,令觀察者更容易得到感興趣的信息。2.2 監(jiān)控管理系統(tǒng)的遠程管理
監(jiān)控管理系統(tǒng)主要包括管理服務和監(jiān)控管理工具兩個部分。管理服務以Web服務形式部署在每個WSR和工作流引擎中,管理服務與監(jiān)控管理工具通過SOAP消息調用實現(xiàn)遠程控制,最終達到對整個環(huán)境的監(jiān)控和管理。
2.2.1 管理服務
管理服務以Web服務的方式部署在Web服務容器中,提供了對容器及部署其中的Web服務的監(jiān)控和管理方法接口,并完成對服務器實際內部狀態(tài)的修改以及相關的管理操作。通過遠程SOAP消息對管理服務的方法調用,就可以實現(xiàn)其管理功能,對容器的運行狀態(tài)以及部署其中的Web服務狀態(tài)等進行監(jiān)控和管理操作,如反部署Web服務等。
容器通過管理系統(tǒng)內部結構完成對系統(tǒng)當前狀態(tài)的觀察,對系統(tǒng)的每個線程池和緩沖區(qū)設置管理接口,在管理服務中調用相應管理接口進行管理。管理服務采用外觀模式,對外提供一個統(tǒng)一接口,內部連接多個如線程池管理、緩沖區(qū)管理接口,如圖2所示。
圖2 管理服務結構
2.2.2 監(jiān)控管理工具
監(jiān)控管理工具是一個基于Struts模式實現(xiàn)的Web應用,部署在一個Web應用容器中,負責頁面的展示、與管理服務的交互和交互結果的處理。
監(jiān)控管理工具分為管理服務接口、服務管理、用戶管理、數(shù)據(jù)處理和圖形展現(xiàn)等模塊,相應負責與管理服務的交互、數(shù)據(jù)的處理、圖形的展現(xiàn)、Web服務的管理等。
管理服務接口通過SOAP消息的調用與管理服務交互,完成系統(tǒng)信息的查看和修改。此部分與管理服務的交互解決了分布式環(huán)境中的遠程管理手段。
用戶管理模塊通過配置所管理的機器信息和用戶與機器的權限關系,完成一個管理員與多個所管理機器的對應,并記錄對所管理機器的權限信息,使用戶不會越權管理操作。在顯示界面中,用多個機器對應多個管理樹狀結構,顯示用戶與所管理機器的對應。
流程管理模塊負責工作流引擎中流程實例信息的查看管理,可通過SVG圖形直觀顯示某個流程的運行狀態(tài),不但圖形與建模工具中建立的流程模型顯示一致,使管理員更熟悉流程的運行過程,并可從圖形中直觀分辨活動的運行狀態(tài),還可通過提示框觀察活動的信息,如活動開始和結束時間等。
系統(tǒng)內部管理模塊通過對容器的內部結構,包括線程池、緩沖區(qū)等信息的監(jiān)控,反映出系統(tǒng)當前的運行狀態(tài),并可以反映系統(tǒng)的負載。
管理系統(tǒng)調用過程如圖3所示。
圖3 系統(tǒng)調用過程
2.3 監(jiān)控管理工具的樹狀結構顯示及權限管理
系統(tǒng)的使用者分為超級管理員和非超級管理員。前者負責環(huán)境中的管理配置,包括WSR和工作流引擎信息配置及非超級管理員權限配置;后者負責環(huán)境的監(jiān)控和管理。非超級管理員在登錄管理工具時,由系統(tǒng)載入其權限信息,包括管理范圍及每個管理范圍內容器的查看/修改/刪除權限。管理員就可以查看/修改/刪除其管理的一個或多個WSR和工作流引擎的狀態(tài)。
監(jiān)控管理工具導航采用樹狀結構顯示,WSR與工作流引擎的樹狀結構顯示也不相同,并且在樹狀結構中包括當前容器所部署的服務/流程列表。在多個管理對象切換時,對于不同種類和同種類不同容器地址這兩種情況,需要同時對導航的樹狀結構進行切換。在管理界面中有管理對象的列表和切換管理對象時,讀入管理對象的類別和地址等信息,生成相應樹。
2.4 監(jiān)控管理工具動態(tài)圖形顯示
監(jiān)控管理工具中系統(tǒng)狀態(tài)通過SVG動態(tài)圖形展示,將信息完整直觀地顯示出來。查看線程池等與時間有關的數(shù)據(jù)信息需要生成折線。生成折線圖算法步驟如下:
(1)繪制橫縱坐標、橫坐標時間、縱坐標數(shù)據(jù)。
(2)讀取當前數(shù)據(jù)。
(3)如果是新圖,生成新的數(shù)據(jù)序列;否則將當前數(shù)據(jù)添加到數(shù)據(jù)序列末尾。
(4)讀取數(shù)據(jù)序列縱坐標最大值,將最大值顯示在圖中。
(5)讀取序列數(shù)據(jù)個數(shù),計算實際坐標序列。
(6)描繪坐標序列折線。
(7)經(jīng)過設定的設定間隔,返回步驟(2)。
動態(tài)流程圖形用來展現(xiàn)某個流程實例的當前運行狀態(tài),并提供流程實例活動的信息。繪制圖形過程如下:
(1)根據(jù)流程實例的流程類型取得遠程工作流引擎中對應的BPEL文件。
(2)解析BPEL文件,生成一系列內部活動對象。
(3)查詢遠程工作流引擎中該流程實例的活動信息。
(4)對于生成的活動對象遍歷,根據(jù)該活動的狀態(tài)信息,生成活動對應的SVG文件片斷。如果為原子活動,直接生成對應SVG文件片斷;如果為組合活動,則對其子活動進行遍歷。
(5)在整個流程圖形的SVG文件片斷前添加定義了各個活動顯示圖片的SVG文件頭。
(6)將SVG文檔保存,并在頁面中顯示對應文檔。
(7)經(jīng)過設定的設定間隔,從遠程工作流引擎中查詢該流程實例的最新信息。
(8)利用腳本語言替換在頁面中顯示SVG圖片的活動信息。
(9)返回步驟(7)。
2.5 系統(tǒng)特點
由于監(jiān)控管理系統(tǒng)的監(jiān)控管理工具采用Struts模式的Web頁面方式展現(xiàn),有兩個優(yōu)點:
①能夠支持分布式環(huán)境下遠程管理的需求,可以僅通過一個管理系統(tǒng)監(jiān)控管理多個WSR和工作流引擎;
②由于模型—視圖—控制器各個部分分開,擴展能力強。
監(jiān)控管理系統(tǒng)由監(jiān)控管理工具通過SOAP調用方式訪問部署在容器中的管理服務進行管理,有三個優(yōu)點:
①簡便性。由于Web服務容器功能就是處理Web服務調用,對于管理服務的調用也在容器的功能范疇中,并不需要增加代碼。
②擴展性。對于容器的功能擴展可立即應用于管理服務,可以更方便地進行擴展。
③安全性。對于JMX等需增加管理端口的管理技術來說,利用Web服務管理Web服務運行時和工作流引擎最大的優(yōu)勢就是安全,服務端不僅少開了端口減少了攻擊的可能性,而且在服務器端的安全措施就可以被管理所利用,更增加了安全性。
3 總結和展望
WebSASE監(jiān)控管理系統(tǒng)的設計依據(jù)當前系統(tǒng)的管理需求,解決了在分布式環(huán)境中對多個服務器的有效管理問題,并且通過動態(tài)顯示技術完成了信息的有效展現(xiàn)。監(jiān)控管理系統(tǒng)利用Web服務來管理Web服務容器及Web服務工作流引擎是WebSASE監(jiān)控管理系統(tǒng)的實現(xiàn)等特點,有效地利用了Web服務容器的資源。我們將進一步將研究管理中的QoS問題,并考慮分布式環(huán)境下管理訪問的安全認證等問題。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。