本站小編為你精心準備了異構服務組裝參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘要摘要:異構服務組裝是指在分布式環境下,將基于不同架構標準的服務,根據統一的基于XML的服務組裝描述文檔進行自動組裝,形成功能更強、更大的服務或應用的軟件復用方法。本文探究并設計了一個面向異構服務組裝的基于工作流引擎的異構服務調度引擎,并對其中的關鍵技術和模塊做出了具體的說明。
摘要:異構服務服務組裝調度引擎
一、引言
隨著基于網絡計算平臺的分布式計算技術的迅猛發展。以支持應用互操作的應用需求為核心,以面向對象技術為主要特征的分布式構件技術和異構的服務技術得到了蓬勃發展,在開發大型分布式應用系統中表現出了強大的生命力,逐漸形成了三種具有代表性的主流技術,即OMG組織的CORBA、Microsoft公司的COM/DCOM,Sun公司的JavaBean/EJB[3。
針對服務的分布和異構特性,基于各種應用需求,本文提出了異構服務組裝的概念。異構服務是指Web服務[1、EJB、CORBA、COM/DCOM等技術規范在內的多種能夠經由網絡訪問的,并能被用戶遠程調用的分布式軟件構件提供的服務。異構服務組裝是盡可能大的將分布在廣域網中的Web服務、EJB、CORBA、COM/DCOM等各種服務無縫整合起來,完成軟件的開發及復用[4。本文設計了一種基于異構服務組裝的調度引擎架構,并具體闡述了此架構的實現。
二、異構服務組裝調度引擎架構
異構服務組裝調度引擎需要有以下一些基本功能摘要:
(1)易操作性摘要:提供友好的用戶界面使管理人員(軟件開發人員)和使用web瀏覽器的遠程用戶均可方便操作。(2)可擴展性摘要:可不斷支持新的網絡資源類型,擴大可組裝服務范圍。(3)自動化摘要:組裝過程完全自動化,無須人工驅動服務流程。引擎結構[2可分為三個層次摘要:界面層、應用層和資源層。界面層用于提供用戶和管理人員可視化組裝流程,并可監控流程運行狀態和步驟。應用層是引擎的核心,它用于定制流程的驅動方式,完成流程實例的運行任務。資源層是為應用層提供資源支持,包括異構服務流程描述文檔庫和各種異構服務資源。其特性有摘要:
屏蔽異構摘要:網絡中異構服務架構不同,遠程調用機制不同,用戶無法了解所有服務調用方法。在此,用戶無需了解服務調用規范和機制細節,只需提供服務參數配置信息即可完成服務的遠程調用。
異構服務資源動態綁定摘要:用戶無需關心服務的物理地址和服務的內部架構。服務在運行時動態完成遠程服務綁定,即在運行時將服務映射成相應的服務實體。用戶可以通過引擎自動綁定服務資源和接口,而無需了解服務細節。
服務之間松耦合摘要:網絡中的資源不穩定、易失,我們無法保證其在規定時間內的可用性,這種不穩定性意味著服務之間必須松耦合。本引擎采用多任務表模式來組裝服務,以支持異構服務之間的松耦合、可擴展性。
架構易于擴展摘要:網絡服務資源種類繁多,引擎應能夠支持、容納新類型的服務。當引擎支持一種新服務種類時無需改動整個引擎,添加新的異構服務實例調用接口即可。
三、異構服務調度引擎設計
異構服務調度引擎為異構服務運行實例提供了執行環境,它是整個異構服務組裝系統的核心。因此,異構服務調度引擎的好壞直接影響到異構服務組裝的執行效率和可擴展性。
本系統使用自定義的基于XML的異構服務統一和描述語言。異構服務調度引擎根據生成的異構服務組裝流程定義文檔,將其解析生成流程調度任務表,然后通過異構服務調用完成調用。
1.解析器
異構服務組裝流程定義文檔解析器將裝載、解析用戶提交的流程定義文檔,采用存儲有向圖節點的方式,將流程中的每一個節點信息(nodeinformation)分別存儲在流程調度控制表(PSaCL摘要:ProcessesSchedulingandControllingList)和服務參數配置表(PCoFL摘要:ParameterConfigurationofServicesList)中,這兩個表分別存儲在流程調度庫和服務實例庫中。
2.流程調度多任務表模式
流程調度任務表用來管理每個服務實例的調度信息,采用工作流多任務表模式,將流程定義文檔中的服務組裝流程信息和服務實例調用信息分別管理,此任務表是由解析器解析生成的。通過解析器將每個任務表項分解。
(1)流程調度控制表
流程調度控制表存儲服務組裝流程信息,保存流程中每個服務實例待處理記錄及服務實例處理的歷史記錄,所有的流程調度控制表都被存儲在流程調度庫中。流程調度控制表的結構為摘要:PSaCL(ProcessID,ServiceID,ServiceInstanceID,ServiceInstanceSatus,Pre_condition[,Post_condition[,Candidate)
ProcessID摘要:服務流程ID,服務實例所在流程的ID;ServiceID摘要:服務ID,用于區別不同的服務;ServiceInstanceID摘要:服務實例ID,同一個服務可以有多個運行實例,該字段用于標識同一服務的不同實例;ServiceInstanceSatus摘要:服務實例狀態,標志服務實例的當前狀態。其狀態包含摘要:激活(active)、運行(running)、等待(waiting)、中斷(terminated)、結束(finished)、失效(invalid);Pre_condition[摘要:前驅條件,這是一個數組,用來記錄服務實例運行所需的所有前驅條件信息,包括前驅節點是否正常運行完畢,用戶認證信息,平安認證等;Post_condition[摘要:后繼條件,也是一個數組,記錄服務實例正常運行結束后應觸發的條件信息,包括后繼服務的觸發,權限的傳遞等;Candidate摘要:候選標識位,當服務選取有多個滿足條件時,用于表示該服務是否為候選服務,按照服務質量降序排列,首選服務標志位為0。
(2)服務參數配置表
服務參數配置表存儲服務實例調用信息,保存服務實例調用所需要的所有參數、操作信息以及認證信息,所有的服務參數配置表均被存儲在服務實例庫中。服務參數配置表的結構為摘要:PCoFL(ServiceInstanceID,ServiceType,ServiceConfiguration{},SecurityCertification,
IdentityCertification,QoS,ExpireTime)
ServiceInstanceID摘要:服務實例ID,和流程調度控制表中服務實例ID相同,用于映射流程調度控制表項和服務參數配置表項的對應關系;ServiceType摘要:服務類型,區別不同架構服務標志位,服務架構包括摘要:WebService、EJB、CORBA、COM/DCOM等;ServiceConfiguration{}摘要:服務配置信息,采用嵌套表結構,包含服務實例具體配置信息。包括參數類型、名稱,參數轉換,參數傳遞約束,服務調用約束條件等;SecurityCertification摘要:平安認證,用于調用服務實例時的平安認證;IdentityCertification摘要:身份認證,用于訪問服務實例服務器端的用戶身份認證;QoS摘要:服務質量,基于服務響應時間等屬性的評價服務優劣的標準;ExpireTime摘要:響應超時閾值,單次服務實例請求響應最大時間。
3.會話管理器
會話管理器是用于處理服務間的通信新問題的。會話管理器分為兩個部分,一個是加載器,解決服務調用時參數名稱、參數類型等格式不匹配新問題,將服務參數配置表中的參數信息轉化成編譯器能夠識別的格式,發送給實例調用驅動器。
另一個是消息返回處理器,是會話管理器一個重要的組成部分。采用異步通信機制,能夠保證服務相互通信時,時間上可以不相關,即前驅服務應用發送消息時不必關心其后繼服務應用的是否在線。根據流程調度多任務表模式,采用/訂閱(Publish/Subscribe)模型,即當引擎判定可以向某個服務提出請求后,異構服務調用向遠程服務器發送請求,請求調用相應服務,但無需等待服務器處理請求,只需保證請求到達服務器端后,就可以處理其他任務了。而服務器端返回消息將被保存在一個消息隊列中,隊列根據服務屬性的Post_condition[項,將消息傳給所有后繼服務。
4.流程驅動機制
根據多任務表模式,采用任務推動式流程驅動機制,對流程調度庫中的流程調度表項循環遍歷,判定是否有就緒服務實例滿足調用條件。流程的驅動不嚴格依靠流程的順序,每個服務只要滿足調用條件即可運行,而不必關心流程是否運行到此。當有消息從消息隊列中發送到流程調度管理器中,便觸發對流程調度管理器中表項的遍歷,查看是否有前驅條件均滿足并自身狀態為就緒的服務表項。將滿足條件的服務參數配置信息加載至服務加載器中,等候調用。其特征是當流程中某個服務請求失敗,和此服務無關并具備調用條件的后續服務仍然可以運行,不受影響。
5.異構服務調用
根據實際要求提出一種可擴展架構,實現任務流程調度和服務調用功能相分離,該架構的特性是低耦合、可擴展、平安性。針對不同的服務特性開發不同的異構服務調用,完成一個可擴展的異構服務調度引擎。
服務調用工具是完成對每個異構服務實例的實時調用,關鍵在于不同架構服務調用方式的差異以及在調用過程當中參數類型轉換,用戶認證等。針對異構服務調用機制的特征,采用當前成熟的服務遠程調用機制,根據服務參數配置表中配置參數和異構服務實例調用程序模板,智能化地生成異構服務遠程調用程序java代碼,最后利用標準代碼編譯器(JDK)將其編譯生成一個實例調用實體。
四、結束語
本文從解析器、流程調度控制表、會話管理器、流程驅動機制等幾個方面入手,介紹了異構服務調度引擎的實現。
(1)可以實現對異構服務流程的自動組裝,屏蔽異構服務之間的差異;(2)采用任務推動式服務流程驅動機制實現了對服務組裝流程流向控制;(3)采用多任務表模式,增加調用平安性;(4)實現架構良性,易于擴展。該設計完成了對異構服務調度引擎的基本實現,但如何提高網絡服務訪問質量、服務平安性、防竊取機制以及如何實現在分布環境下多個工作流引擎間的協同工作等將是以后探究的方向。