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