r>[0025] 下面結(jié)合附圖(圖1-圖7)對(duì)本發(fā)明進(jìn)行說(shuō)明。
[0026] 基于TUXEDO中間件的云接入路由通過(guò)增加隔離節(jié)點(diǎn)、配合服務(wù)路由策略,為基于 TUXEDO分布式應(yīng)用系統(tǒng)提供了新的思路。它的意義在于當(dāng)需要利用TUXEDO構(gòu)建分布式應(yīng) 用系統(tǒng)時(shí),為構(gòu)建者提供了便捷的解決方式。首先實(shí)現(xiàn)了應(yīng)用系統(tǒng)對(duì)外的透明化,增加了非 服務(wù)處理的路由轉(zhuǎn)發(fā)層,通過(guò)路由轉(zhuǎn)發(fā)層將內(nèi)、外系統(tǒng)隔離,這樣當(dāng)系統(tǒng)內(nèi)部服務(wù)器節(jié)點(diǎn)橫 向動(dòng)態(tài)擴(kuò)展時(shí),只需要內(nèi)部調(diào)整即可,不涉及外部系統(tǒng)、防火墻的相關(guān)調(diào)整,減少了操作復(fù) 雜度降低了操作風(fēng)險(xiǎn)跟影響范圍,從而減少了計(jì)劃宕機(jī)時(shí)間。此外,增加了服務(wù)集與節(jié)點(diǎn)之 間的對(duì)應(yīng)關(guān)系,在對(duì)交易負(fù)載時(shí)依據(jù)該配置選擇目標(biāo)節(jié)點(diǎn)集合,然后再以輪詢機(jī)制選擇對(duì) 應(yīng)的節(jié)點(diǎn)。對(duì)于服務(wù)集與節(jié)點(diǎn)對(duì)應(yīng)關(guān)系是可以動(dòng)態(tài)發(fā)布的,這樣就可以根據(jù)需要?jiǎng)討B(tài)靈活 的調(diào)整兩者之間的對(duì)應(yīng)關(guān)系,從而避免由于TUXEDO服務(wù)配置機(jī)制導(dǎo)致的僵化缺陷。一種基 于TUXEDO中間件的云接入路由思想和實(shí)現(xiàn),其特征在于包括如下步驟:應(yīng)用系統(tǒng)采用分布 式架構(gòu),應(yīng)用服務(wù)構(gòu)建在TUXEDO中間件之上,內(nèi)部節(jié)點(diǎn)的服務(wù)通訊基于TUXEDO域連接方 式。在分布式應(yīng)用服務(wù)節(jié)點(diǎn)與關(guān)聯(lián)系統(tǒng)中間增加一組基于TUXEDO的路由節(jié)點(diǎn),利用TUXEDO 的服務(wù)發(fā)布機(jī)制,將關(guān)聯(lián)系統(tǒng)的服務(wù)、以及本系統(tǒng)的服務(wù)在兩者之間互相發(fā)布,達(dá)到隔離內(nèi) 外系統(tǒng)的目的,使得內(nèi)部系統(tǒng)對(duì)關(guān)聯(lián)系統(tǒng)而言透明化。另外在TUXEDO的路由節(jié)點(diǎn)服務(wù)器上 增加負(fù)載均衡服務(wù)處理,根據(jù)預(yù)設(shè)的負(fù)載機(jī)制,以服務(wù)組為單位,實(shí)現(xiàn)對(duì)所有節(jié)點(diǎn)或服務(wù)組 內(nèi)部的負(fù)載分配。所述關(guān)聯(lián)系統(tǒng)是指與應(yīng)用系統(tǒng)存在服務(wù)往來(lái)的外部系統(tǒng),連接方式采用 TUXEDO通訊,關(guān)聯(lián)系統(tǒng)既可以對(duì)應(yīng)用系統(tǒng)提供服務(wù),也可以做為應(yīng)用系統(tǒng)的請(qǐng)求方調(diào)用應(yīng) 用系統(tǒng)服務(wù)。所述TUXEDO路由節(jié)點(diǎn)提供對(duì)應(yīng)用系統(tǒng)服務(wù)、關(guān)聯(lián)系統(tǒng)服務(wù)的路由功能,該功 能識(shí)別調(diào)用的服務(wù)信息,根據(jù)交易請(qǐng)求的服務(wù)將數(shù)據(jù)發(fā)送給對(duì)應(yīng)服務(wù)所在的節(jié)點(diǎn)服務(wù)器。 所述TUXEDO負(fù)載是依據(jù)TUXEDO提供的負(fù)載機(jī)制,利用配置方式實(shí)現(xiàn)的服務(wù)負(fù)載,該負(fù)載相 對(duì)應(yīng)用系統(tǒng)來(lái)說(shuō)簡(jiǎn)單、易實(shí)現(xiàn),但是缺乏必要的靈活性。所述應(yīng)用負(fù)載是在TUXEDO中間件 的基礎(chǔ)上,通過(guò)維護(hù)節(jié)點(diǎn)、服務(wù)組之間的對(duì)應(yīng)信息,單獨(dú)建立應(yīng)用的負(fù)載轉(zhuǎn)發(fā)服務(wù)器,通過(guò) 采用最基本的輪詢負(fù)載方式,根據(jù)節(jié)點(diǎn)狀態(tài)依次分配負(fù)載。
[0027] 本發(fā)明的特征包括通信接入服務(wù)與業(yè)務(wù)處理服務(wù)分離的TUXEDO部署架構(gòu);路由 服務(wù)實(shí)現(xiàn)采用TUXEDO的配置;所述選用的負(fù)載功能能夠根據(jù)需要進(jìn)行TUXED0、應(yīng)用負(fù)載切 換。
[0028] 本發(fā)明提供一套業(yè)界主流中間件產(chǎn)品TUXEDO的路由配置方法,生成一套基于 TUXEDO中間件的接入路由思想和實(shí)現(xiàn)。
[0029] 本發(fā)明的目的是通過(guò)基于TUXEDO中間件產(chǎn)品的應(yīng)用系統(tǒng)路由、負(fù)載方法,實(shí)現(xiàn)應(yīng) 用系統(tǒng)之間服務(wù)的路由轉(zhuǎn)發(fā)、系統(tǒng)內(nèi)部與外部之間的連接隔離,使得內(nèi)部的調(diào)整不會(huì)影響 外部系統(tǒng)的連接,從而降低系統(tǒng)的計(jì)劃宕機(jī)時(shí)間。另外支持系統(tǒng)的多節(jié)點(diǎn)的分布式部署,提 升系統(tǒng)的靈活性,使得系統(tǒng)內(nèi)部的橫向擴(kuò)展更加方便。
[0030] 本發(fā)明為了達(dá)到內(nèi)部系統(tǒng)透明、靈活的目的,從以下幾個(gè)方面進(jìn)行了分析、約定和 設(shè)計(jì)。
[0031] - ?TUXEDO服務(wù)路由、負(fù)載的設(shè)計(jì)原理
[0032] 從圖1可以看出,通常TUXEDO的域配置都需要對(duì)外發(fā)布本系統(tǒng)提供的服務(wù)用于對(duì) 方的服務(wù)調(diào)用,同時(shí)也會(huì)引入外部系統(tǒng)提供的服務(wù)用于本系統(tǒng)的服務(wù)調(diào)用。而TUXEDO是以 域連接最為單位,服務(wù)的發(fā)布、引入也是圍繞著域來(lái)展開(kāi)的。通過(guò)對(duì)不同域的服務(wù)引入實(shí)現(xiàn) 多服務(wù)的目的,對(duì)于內(nèi)部系統(tǒng)則為負(fù)載提供了基礎(chǔ)的數(shù)據(jù);通過(guò)對(duì)不同域的服務(wù)發(fā)布實(shí)現(xiàn) 了對(duì)服務(wù)的路由功能。
[0033] 此方案有兩個(gè)關(guān)鍵點(diǎn):
[0034] 1?多域的的方式。
[0035] 由于需要限定服務(wù)的發(fā)布、引入,因此為了避免由于單個(gè)域造成的服務(wù)集中發(fā)布, 導(dǎo)致所有的發(fā)布服務(wù)都可見(jiàn),必須是以系統(tǒng)為單位劃分域。
[0036] 通過(guò)對(duì)服務(wù)的引入,追加服務(wù)集合,然后再以域?yàn)閷?duì)象,根據(jù)需要將相應(yīng)的服務(wù)發(fā) 布到該域中。從而實(shí)現(xiàn)服務(wù)的路由功能。
[0037] *DM_L0CAL
[0038] "ROUTE.REMOT.SYSA^GWGRP= "LGWGRP"
[0039] "R0UTE_REM0T_SYSB"GWGRP = "LGWGRP_1"
[0040] "R0UTE_L0CAL_01"GWGRP= "LGWGRP_2"
[0041] "R0UTE_L0CAL_02"GWGRP= "LGWGRP_3"
[0042] "R0UTE_L0CAL_03"GWGRP= "LGWGRP_4"
[0043] *DM_REM0TE
[0044] 〃REMOT_SYSA"ACCESSPOINTID="
[0045] 〃REMOT_SYSC〃ACCESSPOINTID= "
[0046] 〃L0CAL_AP_01〃ACCESSP0INTID = "
[0047] 〃L0CAL_AP_02"ACCESSP0INTID = "
[0048] 〃L0CAL_AP_03"ACCESSP0INTID = "
[0049] *DM_IMP0RT
[0050] 〃REM0T_SERV_01〃 RACCESSPOINT = REM0T_SYSA
[0051] 〃REM0T_SERV_02〃 RACCESSPOINT = REMOT_SYSB
[0052] 〃L0CAL_SERV_01" RACCESSPOINT = L0CAL_AP_0I
[0053] 〃L0CAL_SERV_01" RACCESSPOINT = L0CAL_AP_02
[0054] 〃L0CAL_SERV_02〃 RACCESSPOINT = L0CAL_AP_03
[0055] *DM_EXPORT
[0056] 〃L0CAL_SERV_02" LACCESSPOINT = ROUTE_REMOT_SYSA
[0057] 〃L0CAL_SERV_01〃 LACCESSPOINT = ROUTE_REMOT_SYSB
[0058] 〃REM0T_SERV_01〃 LACCESSPOINT = L0CAL_AP_0I
[0059] 〃REM0T_SERV_01" LACCESSPOINT = L0CAL_AP_02
[0060] 〃REM0T_SERV_01" LACCESSPOINT = L0CAL_AP_03
[0061] 〃REM0T_SERV_02" LACCESSPOINT = L0CAL_AP_03
[0062] 2?共享內(nèi)存存儲(chǔ)。
[0063] 本設(shè)計(jì)有兩塊信息需要存儲(chǔ),一是基礎(chǔ)公共信息,包括負(fù)載方案表示,一是應(yīng)用負(fù) 載信息,以服務(wù)組為單位,包括服務(wù)組對(duì)應(yīng)的所有節(jié)點(diǎn),以及對(duì)應(yīng)節(jié)點(diǎn)的服務(wù)狀態(tài)(分正 常、異常)。
[0064] 為了提高信息的讀取檢索速度,以上兩塊信息存儲(chǔ)到共享內(nèi)存區(qū)域,結(jié)合應(yīng)用系 統(tǒng),以系統(tǒng)本身的規(guī)則格式存儲(chǔ)以上信息。
[0065] 3.負(fù)載的邏輯算法
[0066] 本設(shè)計(jì)中采用輪詢的負(fù)載邏輯算法,依次訪問(wèn)對(duì)應(yīng)服務(wù)集中的各個(gè)節(jié)點(diǎn)。基于 TUXEDO負(fù)載方式也是選取的TUXEDO的輪詢負(fù)載方案,當(dāng)TUXEDO域鏈接異常時(shí),負(fù)載輪詢跳 過(guò)該域。
[0067] 而應(yīng)用負(fù)載的算法也基本一致,先獲取服務(wù)對(duì)應(yīng)的節(jié)點(diǎn)列表,再以上一次服務(wù)調(diào) 用的節(jié)點(diǎn)作為起點(diǎn),順序掃描下一個(gè)可用的節(jié)點(diǎn)作為本地服務(wù)調(diào)用的訪問(wèn)對(duì)象。
[0068] 二.路由方法的設(shè)計(jì)實(shí)現(xiàn)
[0069] 應(yīng)用系統(tǒng)設(shè)計(jì)如下接口供應(yīng)用系統(tǒng)調(diào)用:
[0070] 1.獲取負(fù)載方案,包括負(fù)載方式,以及其他基礎(chǔ)信息
[0071] 函數(shù)名稱:intGetBaseInfo(BASE_INF0_STRU*baseinfo)
[0072] 功能:獲取基礎(chǔ)信息,包括日志信息、服務(wù)集信息、負(fù)載方案信息
[0073]2.獲取業(yè)務(wù)集負(fù)載信息
[0074] 函數(shù)名稱:in