亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

Soa架構(gòu)下多級服務(wù)總線的服務(wù)調(diào)用的動(dòng)態(tài)路由方法

文檔序號:7667123閱讀:304來源:國知局
專利名稱:Soa架構(gòu)下多級服務(wù)總線的服務(wù)調(diào)用的動(dòng)態(tài)路由方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種SOA架構(gòu)下服務(wù)之間信息共享和協(xié)作,具體地說是一種SOA架構(gòu)下 分布式多級服務(wù)總線的服務(wù)調(diào)用的動(dòng)態(tài)路由方法。
背景技術(shù)
服務(wù)是處理和管理數(shù)據(jù)的單元,分布在企業(yè)的各個(gè)系統(tǒng)中。它通過消息與其它系統(tǒng)或 其它服務(wù)通信。消息的交換通過標(biāo)準(zhǔn)的數(shù)據(jù)交換協(xié)議進(jìn)行。每個(gè)服務(wù)都有一個(gè)唯一的服務(wù) 代碼來標(biāo)識此服務(wù),每個(gè)服務(wù)都有一個(gè)唯一的服務(wù)地址,通常是一個(gè)URL,來指明服務(wù) 所在的位置。
服務(wù)目錄用于服務(wù)信息的統(tǒng)一管理,包括服務(wù)信息的注冊、修改、刪除等等,所有的 服務(wù)信息都必須在服務(wù)目錄中注冊。服務(wù)目錄中存儲(chǔ)了服務(wù)相關(guān)的信息,包括服務(wù)的代碼、 描述、參數(shù)、QoS信息、服務(wù)地址等等。
服務(wù)總線提供對服務(wù)的調(diào)用,所有服務(wù)的調(diào)用者必須通過服務(wù)總線來調(diào)用服務(wù),避免 服務(wù)的調(diào)用者直接調(diào)用服務(wù),實(shí)現(xiàn)調(diào)用者和服務(wù)之間的松耦合。每個(gè)服務(wù)總線都有一個(gè)唯 一的總線代碼。
動(dòng)態(tài)路由是指服務(wù)調(diào)用者不需要知道服務(wù)的地址,他在調(diào)用服務(wù)總線時(shí),提供服務(wù)代 碼,服務(wù)總線根據(jù)服務(wù)代碼查詢服務(wù)目錄,動(dòng)態(tài)得到服務(wù)地址的過程。動(dòng)態(tài)路由避免了服 務(wù)調(diào)用者和服務(wù)的緊耦合。
SOA即面向服務(wù)的架構(gòu)可以使應(yīng)用開發(fā)流水線化,SOA的核心架構(gòu)問題是控制、質(zhì)量 和管理。
在SOA架構(gòu)下,服務(wù)分布在企業(yè)的各個(gè)系統(tǒng)中,服務(wù)目錄用于服務(wù)的統(tǒng)一管理,一 般一個(gè)企業(yè)中只部署一個(gè)服務(wù)目錄,而服務(wù)總線可以部署多個(gè)。
服務(wù)總線可以多級部署,比如省中心的系統(tǒng)部署一個(gè)服務(wù)總線,省中心管轄的每個(gè)地 市的系統(tǒng)也部署一個(gè)服務(wù)總線,每個(gè)地市管轄的二級地市系統(tǒng)也部署一個(gè)服務(wù)總線;服務(wù) 總線也可按照應(yīng)用系統(tǒng)部署,比如財(cái)務(wù)系統(tǒng)部署一個(gè)服務(wù)總線,營銷系統(tǒng)部署一個(gè)服務(wù)總 線;服務(wù)總線也可根據(jù)性能要求來部署,比如為性能要
求高的服務(wù)單獨(dú)部署一個(gè)服務(wù)總線,其它服務(wù)使用另外一個(gè)服務(wù)總線。這樣,在整個(gè)企業(yè) 中,所有的服務(wù)總線形成了一個(gè)分布式、多級的架構(gòu)。
服務(wù)可以綁定在某個(gè)特定的服務(wù)總線上,如果一個(gè)服務(wù)綁定在某個(gè)服務(wù)總線上,這就 意味著只有這個(gè)特定的服務(wù)總線才能訪問此服務(wù),別的服務(wù)總線都不能訪問此服務(wù)。比如 涉及到金額、機(jī)密、敏感數(shù)據(jù)等安全級別高的服務(wù)或者不想讓
外部系統(tǒng)直接訪問的服務(wù)可以綁定在特定的服務(wù)總線上,使得服務(wù)的調(diào)用者必須
調(diào)用指定的服務(wù)總線,防止安全隱患。
多個(gè)服務(wù)總線之間有聯(lián)通性設(shè)置,所謂聯(lián)通性設(shè)置是指,如果兩個(gè)服務(wù)總線
是聯(lián)通的,那么它們可以調(diào)用綁定在對方上服務(wù),如果兩個(gè)服務(wù)總線不是聯(lián)通的,
那么它們無法調(diào)用綁定在對方上的服務(wù)。聯(lián)通性設(shè)置信息保存在服務(wù)總線上。 服務(wù)總線的聯(lián)通性使得多個(gè)總線之間形成了一個(gè)網(wǎng)狀的連接結(jié)構(gòu)。 SOA的目標(biāo)之一是實(shí)現(xiàn)服務(wù)的動(dòng)態(tài)路由,使得服務(wù)和服務(wù)調(diào)用者之間的松耦
合,對于只有單一服務(wù)總線的SOA架構(gòu)來說,不存在服務(wù)總線聯(lián)通性和服務(wù)綁
定的問題,很容易實(shí)現(xiàn)服務(wù)和服務(wù)調(diào)用者之間的松耦合,但是對于分布式多級總
線的SOA架構(gòu),動(dòng)態(tài)路由存在以下問題
1. 服務(wù)調(diào)用者必須知道服務(wù)是否綁定了特定的服務(wù)總線,如果服務(wù)綁定在 特定的總線上,調(diào)用者必須調(diào)用此特定總線才能訪問到此服務(wù)。如果調(diào) 用者無法直接訪問此特定總線,則會(huì)產(chǎn)生下面第3點(diǎn)所描述的情況。
2. 如果服務(wù)原來綁定在服務(wù)總線A上,后來改為綁定在服務(wù)總線B上,那 么服務(wù)的調(diào)用者也要從調(diào)用服務(wù)總線A改成調(diào)用服務(wù)總線B,這樣就造 成服務(wù)調(diào)用者和服務(wù)的緊耦合。
3. 在服務(wù)調(diào)用者無法直接訪問服務(wù)所綁定的服務(wù)總線時(shí),比如服務(wù)調(diào)用者 與服務(wù)處在不同的VPN中或者服務(wù)調(diào)用者沒有權(quán)限直接訪問服務(wù)所綁 定的服務(wù)總線,就需要知道多個(gè)服務(wù)總線聯(lián)通關(guān)系。假定服務(wù)調(diào)用者由 于網(wǎng)絡(luò)條件的限制,只能訪問服務(wù)總線A,則想要調(diào)用的服務(wù)及服務(wù)所 綁定的服務(wù)總線N處在另一個(gè)VPN中,不能直接訪問。由于服務(wù)總線 的聯(lián)通性使得多個(gè)總線之間形成了一個(gè)網(wǎng)狀的連接結(jié)構(gòu),服務(wù)調(diào)用者必 須計(jì)算從服務(wù)總線A連接到服務(wù)總線N的路由的最短路徑,才能讓服務(wù) 總線A按照最短路徑傳遞消息,調(diào)用綁定在服務(wù)總線N上的服務(wù)。 一旦 服務(wù)總線聯(lián)通性發(fā)生更改,服務(wù)調(diào)用者就需要重新計(jì)算最短路徑,造成 服務(wù)調(diào)用者和服務(wù)總線聯(lián)通性緊耦合。
4. 服務(wù)總線的聯(lián)通性信息存放在服務(wù)總線上,使得企業(yè)沒有一個(gè)直觀的總 線聯(lián)通圖,不能一目了然,管理不方便。

發(fā)明內(nèi)容
為了克服以上提及的問題而造成的服務(wù)和服務(wù)調(diào)用者的緊耦合,使得SOA 失去了應(yīng)有的意義,本發(fā)明的目的是提供一種新的在SOA架構(gòu)下分布式多級服
務(wù)總線的服務(wù)調(diào)用的動(dòng)態(tài)路由方法,這種方法用服務(wù)目錄而不是服務(wù)總線來存放 服務(wù)總線的聯(lián)通性信息,服務(wù)目錄提供路由的最短路徑計(jì)算,服務(wù)調(diào)用者調(diào)用服 務(wù)總線時(shí),只需提供服務(wù)代碼,服務(wù)總線査詢服務(wù)目錄獲得路由的最短路徑,再 根據(jù)最短路徑進(jìn)行路由。這種方法能夠使服務(wù)調(diào)用者和服務(wù)真正的松耦合。 本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的
一種SOA架構(gòu)下分布式多級服務(wù)總線的服務(wù)調(diào)用的動(dòng)態(tài)路由方法,其特征 在于它包括以下步驟
(1) 服務(wù)調(diào)用者調(diào)用指定的服務(wù)總線,并輸入服務(wù)代碼;
(2) 指定的服務(wù)總線接收到服務(wù)請求后,輸入兩個(gè)參數(shù)總線代碼和服務(wù) 代碼7,調(diào)用服務(wù)目錄的最短路徑計(jì)算功能;
(3) 服務(wù)目錄根據(jù)服務(wù)代碼査詢出該服務(wù)代碼所綁定的服務(wù)總線的位置, 然后根據(jù)總線的聯(lián)通性信息,計(jì)算出指定的服務(wù)總線到所綁定服務(wù)總線的最短路 徑,并把最短路徑返回給指定的服務(wù)總線;
(4) 指定的服務(wù)總線接收到最短路徑后,發(fā)現(xiàn)請求數(shù)據(jù)中有最短路徑,則 判斷自己是不是此最短路徑的最后一個(gè)總線,如果是,則說明所調(diào)用的服務(wù)代碼 綁定在自己所在的服務(wù)總線上,該服務(wù)總線把服務(wù)調(diào)用者的請求數(shù)據(jù)發(fā)送給服務(wù) 調(diào)用者所在的服務(wù)代碼處;如果不是,再判斷最短路徑中的下個(gè)總線代碼,指定 的服務(wù)總線在服務(wù)調(diào)用者的請求數(shù)據(jù)中加入最短路徑,把最短路徑和服務(wù)調(diào)用者 的請求數(shù)據(jù)一起發(fā)送到最短路徑中的下個(gè)服務(wù)總線,回到步驟(4),進(jìn)行循環(huán)操 作。
本發(fā)明中
1. 服務(wù)目錄除了存放服務(wù)信息之外,還需存放服務(wù)總線的信息,服務(wù)總線 的信息包括服務(wù)總線的地址,服務(wù)總線代碼,服務(wù)總線的聯(lián)通性信息等 等。服務(wù)目錄中還需存放服務(wù)和服務(wù)總線的綁定信息。服務(wù)目錄提供對 服務(wù)總線信息、服務(wù)和服務(wù)總線綁定信息的管理功能。
2. 服務(wù)目錄上提供根據(jù)總線代碼和服務(wù)代碼計(jì)算路由的最短路徑的功能。
3. 服務(wù)調(diào)用者調(diào)用服務(wù)總線時(shí),只需提供服務(wù)代碼,服務(wù)總線査詢服務(wù)目 錄獲得路由的最短路徑。
4. 服務(wù)總線根據(jù)最短路徑進(jìn)行路由。
本發(fā)明在SOA架構(gòu)下,部署分布式多級服務(wù)總線時(shí),為了避免服務(wù)調(diào)用者 和服務(wù)的緊耦合,使用服務(wù)目錄而不是服務(wù)總線來存放服務(wù)總線的聯(lián)逋性信息,
服務(wù)目錄提供路由的最短路徑計(jì)算功能,服務(wù)調(diào)用者調(diào)用服務(wù)總線時(shí),只需提供 服務(wù)代碼,服務(wù)總線根據(jù)服務(wù)代碼和本總線的代碼來調(diào)用服務(wù)目錄的最短路徑計(jì) 算功能,獲得路由的最短路徑,再根據(jù)最短路徑進(jìn)行路由。
本發(fā)明實(shí)現(xiàn)了服務(wù)調(diào)用者和服務(wù)的松耦合;而且用服務(wù)目錄存放服務(wù)總線的 信息和服務(wù)綁定服務(wù)總線的信息,對整個(gè)SOA架構(gòu)的調(diào)整很小,因此具有良好 的兼容性;采用本發(fā)明所述的方法,能夠減少服務(wù)調(diào)用者的開發(fā)量,不需要對服 務(wù)做任何改動(dòng);服務(wù)目錄存放服務(wù)總線的信息和服務(wù)綁定服務(wù)總線的信息,能夠 為企業(yè)提供一個(gè)全局統(tǒng)一的服務(wù)總線聯(lián)通的網(wǎng)狀視圖, 一目了然,便于管理。


圖1是本發(fā)明中總線聯(lián)通性和服務(wù)綁定總線的示意圖。 圖2是本發(fā)明所述方法的流程示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施方式對本發(fā)明作詳細(xì)說明。
圖l是本發(fā)明中總線聯(lián)通性和服務(wù)綁定總線的示意圖。其中,服務(wù)總線A、 B、 C相互聯(lián)通,總線C和總線D、 E聯(lián)通。如果有調(diào)用者想要通過服務(wù)總線B 調(diào)用服務(wù)7,則路由的最短路徑為總線B》總線C》總線E》服務(wù)7。
本發(fā)明的具體實(shí)現(xiàn)方法如下
在圖2中,假定總線聯(lián)通性和服務(wù)綁定總線如圖1所示,有一個(gè)服務(wù)調(diào)用者 想要通過服務(wù)總線B調(diào)用服務(wù)7,過程如下
1. 服務(wù)調(diào)用者調(diào)用服務(wù)總線B,輸入服務(wù)代碼7。
2. 服務(wù)總線B接收到服務(wù)請求后,調(diào)用服務(wù)目錄的最短路徑計(jì)算功能,輸 入兩個(gè)參數(shù)總線代碼B和服務(wù)代碼7。
3. 因?yàn)榭偩€的聯(lián)通性信息和服務(wù)綁定總線的信息現(xiàn)在都保存在服務(wù)目錄 上,服務(wù)目錄可以根據(jù)服務(wù)代碼7査詢出服務(wù)7綁定在服務(wù)總線E上, 然后根據(jù)總線的聯(lián)通性信息,計(jì)算出服務(wù)總線B到服務(wù)總線E的最短路 徑為總線B》總線。>總線E,它把最短路徑B.C.E返回給服務(wù)總線B。 最短路徑中的B、 C、 E是總線B、總線C、總線E的總線代碼,用.分 隔。
4. 服務(wù)總線B接收到最短路徑B.C.E后,判斷自己不是此最短路徑的最后 一個(gè)總線,再判斷最短路徑中的下個(gè)總線是總線C,服務(wù)總線B在服務(wù) 調(diào)用者的請求數(shù)據(jù)中加入最短路徑B.C.E,把最短路徑和服務(wù)調(diào)用者的
請求數(shù)據(jù)一起發(fā)送的服務(wù)總線c。
5. 服務(wù)總線C接收到請求后,發(fā)現(xiàn)請求數(shù)據(jù)中有最短路徑B.C.E,它判斷 自己不是此最短路徑的最后一個(gè)總線,再判斷最短路徑中的下個(gè)總線是 總線E,服務(wù)總線E把最短路徑和服務(wù)調(diào)用者的請求數(shù)據(jù)一起發(fā)送的服 務(wù)總線E。
6. 服務(wù)總線E接收到請求后,發(fā)現(xiàn)請求數(shù)據(jù)中有最短路徑B.C.E,它判斷 自己是此最短路徑的最后一個(gè)總線,說明所調(diào)用的服務(wù)7綁定在自己即 服務(wù)總線E上,服務(wù)總線E把服務(wù)調(diào)用者的請求數(shù)據(jù)發(fā)送給服務(wù)7。
由此可見,在此過程中,服務(wù)調(diào)用者只需知道服務(wù)代碼,而無需關(guān)心服務(wù)是 否綁定在特定的服務(wù)總線上,也不需要知道服務(wù)總線的聯(lián)通性。采用這種方法, 使得在SOA架構(gòu)下,分布式多級總線服務(wù)調(diào)用的動(dòng)態(tài)路由真正做到了服務(wù)調(diào)用 者和服務(wù)的松耦合。
由于目前大多數(shù)的SOA架構(gòu)都是把服務(wù)總線的聯(lián)通性信息保存在服務(wù)總線 上,由服務(wù)調(diào)用者自己計(jì)算路由的最短路徑,從而造成服務(wù)調(diào)用者和服務(wù)的緊耦 合,本發(fā)明通過由服務(wù)目錄計(jì)算路由的最短路徑,使得服務(wù)調(diào)用者只需知道服務(wù) 代碼,而無需關(guān)心服務(wù)是否綁定在特定的服務(wù)總線上,也不需要知道服務(wù)總線的 聯(lián)通性,真正做到了服務(wù)調(diào)用者和服務(wù)的松耦合,可以適用于所有部署分布式多 級服務(wù)總線的SOA架構(gòu),具有很高的現(xiàn)實(shí)意義。
用服務(wù)目錄存放服務(wù)總線的信息和服務(wù)綁定服務(wù)總線的信息,對整個(gè)SOA 架構(gòu)的調(diào)整很小,因此具有良好的兼容性。
采用本發(fā)明,能夠減少服務(wù)調(diào)用者的開發(fā)量,不需要對服務(wù)做任何改動(dòng)。
服務(wù)目錄存放服務(wù)總線的信息和服務(wù)綁定服務(wù)總線的信息,能夠?yàn)槠髽I(yè)提供 一個(gè)全局統(tǒng)一的服務(wù)總線聯(lián)通的網(wǎng)狀視圖, 一目了然,便于管理。
權(quán)利要求
1、一種SOA架構(gòu)下多級服務(wù)總線的服務(wù)調(diào)用的動(dòng)態(tài)路由方法,其特征在于它包括以下步驟(1)服務(wù)調(diào)用者調(diào)用指定的服務(wù)總線,并輸入服務(wù)代碼;(2)指定的服務(wù)總線接收到服務(wù)請求后,輸入兩個(gè)參數(shù)總線代碼和服務(wù)代碼7,調(diào)用服務(wù)目錄的最短路徑計(jì)算功能;(3)服務(wù)目錄根據(jù)服務(wù)代碼查詢出該服務(wù)代碼所綁定的服務(wù)總線的位置,然后根據(jù)總線的聯(lián)通性信息,計(jì)算出指定的服務(wù)總線到所綁定服務(wù)總線的最短路徑,并把最短路徑返回給指定的服務(wù)總線;(4)指定的服務(wù)總線接收到最短路徑后,發(fā)現(xiàn)請求數(shù)據(jù)中有最短路徑,則判斷自己是不是此最短路徑的最后一個(gè)總線,如果是,則說明所調(diào)用的服務(wù)代碼綁定在自己所在的服務(wù)總線上,該服務(wù)總線把服務(wù)調(diào)用者的請求數(shù)據(jù)發(fā)送給服務(wù)調(diào)用者所在的服務(wù)代碼處;如果不是,再判斷最短路徑中的下個(gè)總線代碼,指定的服務(wù)總線在服務(wù)調(diào)用者的請求數(shù)據(jù)中加入最短路徑,把最短路徑和服務(wù)調(diào)用者的請求數(shù)據(jù)一起發(fā)送到最短路徑中的下個(gè)服務(wù)總線,回到步驟(4),進(jìn)行循環(huán)操作。
2、 根據(jù)權(quán)利要求1所述的SOA架構(gòu)下多級服務(wù)總線的服務(wù)調(diào)用的動(dòng)態(tài)路由方法,其 特征在于步驟(2)中的服務(wù)目錄存放服務(wù)信息、服務(wù)總線的信息、放服務(wù)和服務(wù)總線 的綁定信息,其中,服務(wù)總線的信息包括服務(wù)總線的地址、服務(wù)總線代碼、服務(wù)總線的聯(lián) 通性信息;服務(wù)目錄對服務(wù)總線信息、服務(wù)和服務(wù)總線綁定信息進(jìn)行管理。
全文摘要
本發(fā)明公開了一種在SOA架構(gòu)下分布式多級服務(wù)總線的服務(wù)調(diào)用的動(dòng)態(tài)路由方法,該方法使用服務(wù)目錄而不是服務(wù)總線來存放服務(wù)總線的聯(lián)通性信息,服務(wù)目錄提供路由的最短路徑計(jì)算功能,服務(wù)調(diào)用者調(diào)用服務(wù)總線時(shí),只需提供服務(wù)代碼,服務(wù)總線查詢服務(wù)目錄獲得路由的最短路徑,再根據(jù)最短路徑進(jìn)行路由。本發(fā)明能夠使服務(wù)調(diào)用者和服務(wù)真正的松耦合,避免服務(wù)調(diào)用者和服務(wù)的緊耦合,使用服務(wù)目錄而不是服務(wù)總線來存放服務(wù)總線的聯(lián)通性信息。本發(fā)明具有良好的兼容性;能夠?yàn)槠髽I(yè)提供一個(gè)全局統(tǒng)一的服務(wù)總線聯(lián)通的網(wǎng)狀視圖,便于管理。
文檔編號H04L12/56GK101179505SQ20071019152
公開日2008年5月14日 申請日期2007年12月12日 優(yōu)先權(quán)日2007年12月12日
發(fā)明者丁一新, 張德進(jìn), 趙俊峰 申請人:江蘇省電力公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1