王旭峰 王智立
摘要:當前網(wǎng)絡發(fā)展日益呈現(xiàn)出異構性、動態(tài)性、服務層次多樣性,傳統(tǒng)的網(wǎng)絡管理系統(tǒng)的架構和功能不能滿足業(yè)務動態(tài)呈現(xiàn)的需求,為了提高業(yè)務系統(tǒng)的靈活性、動態(tài)性和可擴展性,本文基于面向服務的軟件架構(SOA)設計了一種可定制的業(yè)務模型,基于此模型可實現(xiàn)業(yè)務的按需配置、功能重組、動態(tài)呈現(xiàn),有助于提高網(wǎng)絡管理系統(tǒng)對不斷出現(xiàn)的新的管理需求的適應能力,增強對支持多樣化的任務的靈活性,使網(wǎng)絡管理系統(tǒng)具備較高的時效性、維護性和靈活性。
關鍵詞:網(wǎng)絡管理;Web服務;業(yè)務動態(tài)定制;靈活性
中圖分類號:TN915.07
文獻標識碼:A
0 引言
隨著信息技術的迅速發(fā)展,網(wǎng)絡管理理念也在發(fā)生深刻變化。面向用戶、面向服務的管理體系結構和應用技術成為當前研究的熱點和難點。新的管理理念與傳統(tǒng)的面向網(wǎng)絡、面向設備的管理思想有著很大不同。
以面向服務的思想為基礎的網(wǎng)絡管理中,各種功能都被定義為Web服務,網(wǎng)絡管理功能即為各種Web服務的調用與組合。目前針對業(yè)務管理,網(wǎng)管系統(tǒng)只能提供固定的業(yè)務管理模式,即不能更改已有業(yè)務系統(tǒng)的服務組成、服務位置、服務參數(shù)等。如果業(yè)務發(fā)生變化,將導致業(yè)務管理系統(tǒng)的不可用或者重大變化。而當前業(yè)務需求正呈現(xiàn)多樣性,我們希望在業(yè)務發(fā)生問題后能夠快速解決,這需要提供業(yè)務與網(wǎng)絡管理功能的各獨立網(wǎng)絡管理系統(tǒng)能夠面向管理任務,實現(xiàn)滿足即插即用、柔性重組、按需分配、抗毀容災等需求的網(wǎng)絡管理動態(tài)協(xié)作。動態(tài)協(xié)作主要是指在網(wǎng)絡動態(tài)運行環(huán)境下,由各網(wǎng)管系統(tǒng)之間的信息共享、信息交換和信息互操作而引發(fā)的系統(tǒng)級的協(xié)同工作。
面對以上問題,本文采用面向服務的思想將各網(wǎng)管系統(tǒng)提供的功能抽象成網(wǎng)絡管理服務(network man-agement service),設計了柵格化信息的綜合業(yè)務管理系統(tǒng),實現(xiàn)對業(yè)務的注冊、查詢以及對業(yè)務的動態(tài)定制等功能。該系統(tǒng)的業(yè)務動態(tài)可定制性體現(xiàn)在針對不同的業(yè)務需求,可實現(xiàn)不同的業(yè)務配置,滿足了業(yè)務多樣化的需求,實現(xiàn)了一種靈活的、可定制的網(wǎng)絡管理系統(tǒng)。
1 Web Service與面向服務架構SOA
1.1SOA
面向服務體系結構(Service-oriented Architecture,SOA),是一種組件模型,它可以根據(jù)需求通過網(wǎng)絡對松散耦合的粗粒度應用組件進行分布式部署、組合和使用。它的基礎是可以直接被應用調用的服務,所有的服務都采用描述語言加以定義,并且采用獨立的方式定義各自的接口,獨立于具體實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言,使得構建在這樣的系統(tǒng)中的服務可以使用統(tǒng)一和標準的方式進行通信。
1.2Web Service
Web Service是一種通過Web部署提供對業(yè)務功能訪問的技術。Web Service是獨立的、模塊化的應用,能夠通過因特網(wǎng)來描述、發(fā)布、定位以及調用。在Web Service的體系架構中一般包括三個角色:服務提供者、服務請求者和服務注冊中心。角色之間主要有三種操作:發(fā)布(Publish),查找(Find)和綁定(Bind)。服務提供者是服務的具體實現(xiàn)端,通過注冊服務將自己提供的服務向服務注冊中心發(fā)布,當收到服務請求者的服務請求時,向服務請求者提供服務。服務請求者即是服務的調用者,首先,服務請求者需要向服務注冊中心查詢符合條件的服務,然后根據(jù)服務描述信息進行服務綁定,獲得相應的服務。而服務注冊中心則是為服務提供者提供注冊服務,為服務請求者提供查詢服務,將服務提供者與服務請求者聯(lián)系起來,同時實現(xiàn)了系統(tǒng)間的松耦合。
2 實現(xiàn)可定制的業(yè)務模型
為了實現(xiàn)業(yè)務模型的可定制性,根據(jù)不同的用戶服務和特定的企業(yè)應用需求,本文設計了服務呈現(xiàn)的業(yè)務模型,該模型對應于一個形式化的數(shù)據(jù)結構,該結構能夠描述不同業(yè)務呈現(xiàn)所需要的相關數(shù)據(jù)。該業(yè)務模型示意圖如圖1所示。
業(yè)務基本信息:包含業(yè)務標識、業(yè)務名稱、業(yè)務開始時間、結束時間、業(yè)務描述、創(chuàng)建者、創(chuàng)建時間、版本號。其中業(yè)務開始時間和業(yè)務結束時間是可選項。業(yè)務基本信息是對定制業(yè)務的基本標識與描述。
用戶名列表:是用戶名的一個集合。在定制業(yè)務時可以為不同的用戶設定不同的權限。
服務靜態(tài)信息列表:是服務靜態(tài)信息的一個集合。服務靜態(tài)信息包含服務標識、服務名稱、服務訪問地址。業(yè)務是對各種服務調用的定義與組合,而服務靜態(tài)信息列表相當于業(yè)務的服務靜態(tài)庫,包含了業(yè)務所需的所有服務信息。
感知點部署信息:包含感知點標識以及感知點的部署參數(shù)等。感知點部署信息負責對下層感知能力進行定制。
入口信息:主要包含菜單項列表和服務入口信息列表兩大項。菜單項項列表是服務標識的集合,用來定制展示界面中菜單項所包含的服務。服務入口信息列表則是服務信息的一個集合,每個服務信息包含服務標識、位置、操作列表。服務入口信息用來定制界面展示中各種服務的調用參數(shù)以及服務位置等信息。
服務流程信息:是服務執(zhí)行信息的一個列表。服務執(zhí)行信息包含服務標識和服務操作。用來定制服務執(zhí)行流程以及定制一些組合服務等。
3 業(yè)務定制流程
業(yè)務定制流程可簡單解釋為:(1)業(yè)務信息定制。(2)業(yè)務發(fā)布。(3)業(yè)務調用。
業(yè)務信息定制:通過jsp實現(xiàn)一套可視化業(yè)務信息定制界面。為業(yè)務所需的六大信息進行分別的定制,其中需要調用服務管理模塊,查詢服務注冊中心中已有的服務信息,顯示并供用戶選擇。在查詢服務中方法的調用參數(shù)時,并沒有采用傳統(tǒng)的UDDI服務查詢方式,而是設計了更為簡單的方法,直接訪問服務的發(fā)布地址,因為服務的發(fā)布實際上也是一個WSDL格式的文件,通過wsd14j工具直接解析這個WSDL文件,得到服務的方法,調用參數(shù)等詳細信息,此方法較傳統(tǒng)的UDDI服務查詢方式更為直接、快速。
業(yè)務發(fā)布:業(yè)務信息定制完成后需要將業(yè)務信息存儲,以便用戶的調用。本文采用XML格式對業(yè)務信息進行存儲,并設計了業(yè)務注冊中心,同服務注冊中心相似,提供業(yè)務的注冊、業(yè)務查詢以及業(yè)務修改、下發(fā)等服務。用戶想要使用業(yè)務,需要先向業(yè)務注冊中心進行查詢,得到業(yè)務的具體描述,然后才能根據(jù)業(yè)務描述使用業(yè)務。
業(yè)務調用:首先向業(yè)務注冊中心查詢需要的業(yè)務,獲取業(yè)務的詳細信息。在登陸模塊中,查詢業(yè)務的用戶信息,根據(jù)用戶信息確定用戶權限。在展示模塊中,根據(jù)業(yè)務中的入口信息動態(tài)繪制界面。其中入口信息中的菜單項列表決定了界面中菜單項提供的服務,根據(jù)提供的服務標識去服務注冊中心查找相應服務并提供給用戶。根據(jù)服務入口信息列表中定制的服務名,位置以及服務調用參數(shù)信息調用相應服務并展示在相應的位置上。
業(yè)務定制流程圖如圖2。
傳統(tǒng)的業(yè)務管理系統(tǒng)不包括圖2中虛線框內的內容,即傳統(tǒng)的業(yè)務管理系統(tǒng)只與服務注冊中心進行交互,查詢所需要的服務并進行綁定調用。業(yè)務所需的服務以及參數(shù)是固定不變的,業(yè)務的組織和呈現(xiàn)模式固定不變,因此當業(yè)務需求發(fā)生變化時,不能及時更改業(yè)務系統(tǒng),故傳統(tǒng)的業(yè)務管理系統(tǒng)已經(jīng)無法達到業(yè)務需求的標準。
在引入面向服務的框架之后,系統(tǒng)中添加了業(yè)務定制系統(tǒng)與業(yè)務注冊中心,正如圖2中展示的,用戶使用業(yè)務定制系統(tǒng)進行業(yè)務定制,之后向業(yè)務注冊中心進行發(fā)布,業(yè)務管理系統(tǒng)首先向業(yè)務注冊中心進行查詢業(yè)務,得到定制化的業(yè)務數(shù)據(jù),再根據(jù)業(yè)務數(shù)據(jù)中的服務定義向服務注冊中心進行服務查詢并進行綁定調用。進過這種轉換,當業(yè)務需求發(fā)生變化時,只需要在業(yè)務定制系統(tǒng)中定制新的業(yè)務并發(fā)布,然后業(yè)務管理系統(tǒng)會根據(jù)新的業(yè)務數(shù)據(jù)去重新請求服務以更新整個業(yè)務系統(tǒng)的服務組合,參數(shù)以及位置等信息。因此,引入面向服務的業(yè)務定制系統(tǒng)能夠快速的響應業(yè)務需求的變化,同時方便業(yè)務修改與業(yè)務擴展,克服了傳統(tǒng)業(yè)務管理系統(tǒng)的不足,滿足了業(yè)務動態(tài)呈現(xiàn)的需求。
4 業(yè)務管理主要功能實現(xiàn)
首相需要利用axis工具將業(yè)務管理的WSDL文件生成相應代碼,首先在DOS中進入WSDL文件所在目錄,然后使用命令java org.apache.axis.wsdl.WSDL2Java-p BusinessManagementService-s BusinessManagementSer-vice.wsdl生成服務端代碼。生成的服務端代碼里,在BusinessManagementServiceBindinglmpl-java里填充服務實現(xiàn)的代碼。最后將服務端里所有的java文件都進行編譯(在eclipse下建一個工程,引入所有的java文件和axis/lib下的所有jar包編譯)。
業(yè)務管理模塊在初始化時需要創(chuàng)建三個配置文件,分別是businessInfo.xml、serviccInfo.xml、userList.xml。其中businessInfo.xml文件作為服務查詢的索引文件,其以businessld作為鍵,業(yè)務名稱作為值。在進行服務查詢時,輸入?yún)?shù)為businessId,這時需要首先查找businessInfo.xml文件,找到對應的業(yè)務名稱,然后在系統(tǒng)中查找以業(yè)務名稱為文件名的XML文件。serviceInfo.xml文件保存服務相關信息,以serviceld為鍵,服務名稱為值,該文件作為查找服務的索引文件。userList.xml文件存儲的是用戶相關的信息,以Username作為鍵,用戶名作為鍵的屬性,用戶的業(yè)務作為值,此文件用來查詢用戶擁有的業(yè)務列表。
業(yè)務注冊方法:首先調用系統(tǒng)初始化函數(shù),創(chuàng)建上述所說的三個配置文件,如果配置文件已經(jīng)存在,則跳過。然后以業(yè)務名稱為文件名,創(chuàng)建XML文件,解析輸入?yún)?shù),將參數(shù)的每一個域作為鍵值對保存在XML文件中,最后更新配置文件信息。返回注冊結果。
業(yè)務查詢方法:業(yè)務查詢分為業(yè)務的整體查詢與業(yè)務六大功能域的分別查詢,其本質上調用的函數(shù)是一樣的,業(yè)務的各個作用域的查詢實際上就是查詢整個業(yè)務后返回相應的作用域。這里在類中創(chuàng)建了相應屬性作為查詢的緩存變量:其中有l(wèi)astAccessBusinessName作為系統(tǒng)的業(yè)務名稱緩存,當進行一次業(yè)務查詢時,會將業(yè)務名稱保存在這個緩存變量中,再進行下一次的業(yè)務查詢時,需要將業(yè)務名稱與這個緩存變量進行比較,如果業(yè)務名稱與這個緩存變量不一致,則更新緩存變量。如果一致,則不進行實際的業(yè)務查詢功能,直接返回上面的各個靜態(tài)變量。經(jīng)過這種優(yōu)化,極大的減少了實際的查詢數(shù)量,減輕了服務器壓力,提高了查詢速度。
5 結論
從網(wǎng)管軟件技術體制發(fā)展過程來看,經(jīng)歷了面向過程,面向對象,面向組件,面向服務幾個階段,是一個逐步發(fā)展進化的過程,軟件技術體制的發(fā)展是朝分布式、松耦合的方向逐步發(fā)展。目前,SOA軟件體系是實現(xiàn)網(wǎng)管系統(tǒng)集成的最先進架構。本文在Web服務的基礎上,采用面向服務的思想,設計了動態(tài)可定制的業(yè)務管理系統(tǒng)。與傳統(tǒng)的管理系統(tǒng)不同,業(yè)務中調用的服務、調用的參數(shù)以及位置信息等不是固定的,每次進入的系統(tǒng)都根據(jù)定制業(yè)務的不同而不同,經(jīng)驗證此系統(tǒng)可以滿足多樣化的任務需求。