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