亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

業(yè)務交換方法和業(yè)務交換云與流程

文檔序號:11263605閱讀:219來源:國知局
業(yè)務交換方法和業(yè)務交換云與流程
本發(fā)明涉及互聯(lián)網(wǎng)通信,更確切地說涉及在互聯(lián)網(wǎng)中,進行消息交互的方法,交換云。
背景技術
:在互聯(lián)網(wǎng)通信中,涉及到全球統(tǒng)一身份(guid,globalunifiedidentity),所述guid包括兩部分:歸屬碼(hcode,homecode)和用戶碼(ucode,usercode)。其中,hcode指示該guid,也即該guid對應的互聯(lián)網(wǎng)用戶(iusr,internetuser)歸屬于哪一個歸屬服務器(hsvr,homeserver),ucode用于指示一個hcode下不同的guid。通過建立hcode和hsvr的對應關系,根據(jù)一個hcode可以獲得所指向的一個hsvr。一個hsvr對應一個服務域。所述guid可以是一個email地址,也可以是一個主從碼,也可以是一個影碼。關于guid和hsvr更多描述,參見申請?zhí)枮?01310037232.x的《通信方法和系統(tǒng)》發(fā)明專利,以及申請?zhí)枮?01310049772.x的《影碼尋址方法》發(fā)明專利。每個賬戶都有一個賬戶地址(accoaddr,accountaddress),以用于賬戶尋址。一個guid的源賬戶的accoaddr為該guid。一個guid的遷移賬戶的accoaddr為該遷移賬戶對應的跨域地址碼(cdaddr,cross-domainaddress)。該guid為該cdaddr的本基guid(baseguid,thebaseguid),該cdaddr的跨末hsvr信息(cesvrdesc,cross-endhsvrdescription)為該遷移賬戶所在hsvr的一個hcode。關于cdaddr的更多描述,參見申請?zhí)枮?01310079118.3的《支持guid遷移的網(wǎng)絡及相關消息處理方法》發(fā)明專利。每個accoaddr都由一個地址基(addrbase,addressbase)和一個地址歸屬(addrhome,addresshome)構(gòu)成。當一個accoaddr是一個guid時,該accoaddr的addrbase是該guid的ucode,該accoaddr的addrhome是該guid的hcode;當一個accoaddr是一個cdaddr時,該accoaddr的addrbase是該cdaddr的baseguid,該accoaddr的addrhome是該cdaddr的cesvrdesc。例如對于accoaddr值caocao@yixin.im來說,對應的addrbase是caocao,對應的addrhome是yixin.im。一個accoaddr歸屬的hsvr為該accoaddr的addrhome所指向的hsvr。一個賬戶的addrhome,是該賬戶的accoaddr的addrhome;一個賬戶的addrbase,是該賬戶的accoaddr的addrbase。在申請?zhí)枮?01410098231.0的《基于半永久地址的消息發(fā)送方法》發(fā)明專利中提出了基于半永久地址的消息發(fā)送方法。該方法先獲取目的hsvr中目的賬戶所在的駐地服務器(rsvr,residenceserver)所對應的駐地碼(rcode,residencecode)。在向所述目的賬戶發(fā)送消息時,按照該目的賬戶的accoaddr和所述rcode所對應的半永久地址(spaddr,semi-permanentaddress)或半永久email地址(spemailaddr,semi-permanentemailaddress),來將該消息直接發(fā)送給該目的賬戶所在的rsvr,從而提高了消息傳送效率。一個賬戶的spaddr包括該賬戶的accoaddr和該賬戶所在rsvr被指配的rcode等兩部分。一個spaddr可以寫成(accoaddr,rcode)形式。更多描述,參見所述的《基于半永久地址的消息發(fā)送方法》發(fā)明專利。上述在根據(jù)一個spaddr或一個spemailaddr發(fā)送消息時,由于需要解析相應spaddr或spemailaddr所對應的域名,以獲得所述目的rsvr的ip地址,因此,為了提高域名解析效率,一般地,會在本地緩存域名解析結(jié)果,以便下次使用。但是,由于一個hsvr中,可能存在很多rsvr,因此,對應于消息發(fā)送側(cè),需要緩存的域名解析結(jié)果就會成倍增加,從而影響到檢索效率。另外,rsvr之間通過直接建立連接來進行消息交互的方式,也會導致rsvr維護數(shù)量巨大的連接。對此,在申請?zhí)枮?01610086133.4的《交換方法和交換云》發(fā)明專利中提出了一種交換方法以及基于該方法的一種交換云(xcld,exchangecloud)。所述xcld至少包括兩個交換服務器(xs,exchangeserver);在xs中,設置路由數(shù)據(jù)(rdata,routingdata);對于一個包括目的spaddr的待發(fā)送消息,該xs根據(jù)所述消息的目的spaddr,按照設置的rdata,確定該消息的下一站地址(nextaddr,nextaddress),即確定目標nextaddr;按照所確定的目標nextaddr,將所述消息發(fā)送出去。通過xcld,可以實現(xiàn)hsvr內(nèi)各個rsvr直接的互聯(lián),也可以實現(xiàn)各個hsvr間的rsvr互聯(lián)。這樣,一個rsvr只需要接入到本hsvr中的xcld,就可與任意hsvr中的rsvr進行消息交互,這就大大簡化了rsvr的連接管理?;ヂ?lián)網(wǎng)業(yè)務是豐富多彩的。例如,除了基本的用戶間消息交互,例如各種文本、圖像、音頻、視頻等等聊天消息;還有用戶位置登記與查詢消息,例如附近人業(yè)務;還有支付消息,例如,個人間支付消息(例如發(fā)紅包),個人與公共賬戶間支付消息(商場支付);還有rcode查詢消息,號碼字典查詢消息;文件傳輸,等等。不同的互聯(lián)網(wǎng)業(yè)務,其使用頻率存在著差異,其業(yè)務復雜度,資源占用也存在著差異,因此,在一個hsvr中,針對不同的業(yè)務,相應的業(yè)務處理服務器(processingserver)的部署也會存在著差異。比如,rsvr比較適合處理使用頻率較高,實時性要求較高的聊天消息,一般地,在每個用戶比較多的城市部署一個rsvr,比較合適。而對于個人間支付業(yè)務,由于發(fā)生頻率較低,因此,全國部署一個或者幾個支付業(yè)務處理中心即可,例如,華東區(qū)域在上海或南京部署一個,北方在北京或河北部署一個,南方在廣州部署一個,西部在成都部署一個。對于rcode查詢業(yè)務,同樣,使用頻率較低(只有用戶遷徙時才需要),因此,也只需部署幾個業(yè)務處理中心即可。這種情況下,xs在進行消息交換時,就無法僅根據(jù)消息的目的spaddr來確定目標nextaddr。技術實現(xiàn)要素:有鑒于此,本發(fā)明公開了一種目標nextaddr確定方法,以及基于該方法的業(yè)務交換云,以用于解決上述多種問題中至少一種問題。按照所述目標nextaddr確定方法,通過相應地設置rdata,或者,通過所述業(yè)務交換云,可以方便靈活地實現(xiàn)各個lsvr之間的業(yè)務消息交互,并大大簡化了lsvr的連接管理。一種目標nextaddr確定方法,用于確定消息的目標nextaddr,所述消息包括sclass;設置selfrdata;該方法包括以下步驟:a、根據(jù)消息的sclass,確定消息的sinkrcode;b、根據(jù)所確定的sinkrcode,按照設置的selfrdata,確定目標nextaddr??蛇x地,建立sclass與sinkrcodednism的對應關系;步驟a進一步是:根據(jù)消息的sclass,選擇sinkrcodednism,按照所選的sinkrcodednism,來確定消息的sinkrcode??蛇x地,所述建立sclass與sinkrcodednism的對應關系進一步是通過設置scprefix表來建立的;步驟a進一步是:根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄;判斷對應的sinkrcode值是否有效,如果是,則將該sinkrcode作為消息的sinkrcode;否則,將該sinkrcode作為sinkrcodednism_id,按照對應的sinkrcodednism,來確定消息的sinkrcode??蛇x地,所述建立sclass與sinkrcodednism的對應關系進一步是通過設置scprefix表來建立的;步驟a進一步是,根據(jù)消息的sclass,查找scprefix表,判斷最佳匹配的記錄中sinkrcode是否有效,如果是,則該sinkrcode作為消息的sinkrcode;否則,說明該消息包括目的rcode,于是,將該目的rcode值作為消息的sinkrcode??蛇x地,進行默認設置;在步驟b之前,進一步判斷確定消息的sinkrcode的操作是否成功,如果不成功,則直接按照默認設置來確定目標nextaddr。可選地,所述消息進一步包括sinkitem;相應地,步驟a之前,進一步包括:判斷消息的sinkitem是否有效,如果是,則執(zhí)行步驟a,否則,直接執(zhí)行步驟b;相應地,步驟a之后,進一步包括,將消息的sinkitem設置為所確定的sinkrcode。可選地,步驟b進一步是:根據(jù)所述消息的sclass以及所確定的sinkrcode,按照設置的selfrdata,來確定目標nextaddr??蛇x地,步驟b進一步是:根據(jù)所述消息的sclass以及所確定的sinkrcode,產(chǎn)生rcodesclass,根據(jù)產(chǎn)生的rcodesclass,按照設置的selfrdata,來確定目標nextaddr。一種交換云(xcld),用于消息交互;所述xcld至少包括兩個xs;在xs中,設置selfrdata;對于一個包括sclass的待發(fā)送消息,該xs根據(jù)消息的sclass,確定消息的sinkrcode;根據(jù)所確定的sinkrcode,按照設置的selfrdata,確定目標nextaddr;按照所確定的目標nextaddr,將所述消息發(fā)送出去。一種消息尋址方法,所述消息包括sclass和目的hcode;該方法包括以下步驟:a、source將攜帶sclass和目的hcode的消息發(fā)送給本hsvr的xcld;b、所述本hsvr的xcld根據(jù)目的hcode,將所述消息發(fā)送給目的hsvr的xcld;c、所述目的hsvr的xcld根據(jù)所述sclass確定消息的sinkrcode;根據(jù)所確定的sinkrcode,按照預先設置的selfrdata,確定目標nextaddr;按照所確定的目標nextaddr,將所述消息發(fā)送給sink。上述實施例提供的技術方案中,除了可以簡化lsvr面向其它hsvr的通信接口,并因此簡化了lsvr的處理以及不同hsvr間消息交互的管理外,還通過建立sclass與sinkrcodednism的對應關系,將業(yè)務規(guī)模變化可能引起的相關lsvr的規(guī)劃變化封裝在hsvr之內(nèi),這就從根本上解決了未來,互聯(lián)網(wǎng)業(yè)務、物聯(lián)網(wǎng)業(yè)務,在融合時代,因為業(yè)務變遷可能對hsvr之間交互所帶來的巨大沖擊問題。附圖說明圖1所示,為本發(fā)明hsvr組網(wǎng)示例圖。圖2所示,為本發(fā)明目標nextaddr確定方法總體實施方式流程圖。圖3所示,為本發(fā)明消息的sinkrcode標準化確定方法的實施例一流程圖。圖4所示,為本發(fā)明消息的sinkrcode標準化確定方法的實施例二流程圖。圖5所示,為本發(fā)明目標nextaddr確定方法擴展實施方式一流程圖。圖6所示,為本發(fā)明目標nextaddr確定方法擴展實施方式二流程圖。具體實施方式為使本發(fā)明目的、技術方案和優(yōu)點更加清楚明白,下面結(jié)合實施例,從多個方面進行詳細說明。一個hsvr所擁有的hcode可以是域名,一個accoaddr可以是一個email地址。本發(fā)明以{一個hsvr所擁有的hcode是一個域名,一個accoaddr是一個email地址}為例,但不用于限定本發(fā)明。后面以{hsvr-a的hcode是miliao.com,hsvr-b的hcode是yixin.im,hsvr-c的hcode是immomo.com。}為例進行舉例。在所述《交換方法和交換云》發(fā)明專利中提到,xs在進行消息交換時,是按照設置的rdata進行的。一般地,在一個xs中,針對各個hsvr,設置了相應的rdata。在一個xs中,某個hsvr對應的rdata為該hsvr的hsvrrdata。在所述《交換方法和交換云》發(fā)明專利中提到,在各個rsvr間進行消息交換時,對于信宿(sink),即目的rsvr,屬于本hsvr的消息,xs在進行消息交換時,是按照消息的目的hsvr所對應的hsvrrdata來確定消息的目標nextaddr的。hsvr可以根據(jù)消息中隱式或顯式攜帶的目的hsvr信息,確定該消息的sink是否屬于本hsvr。當目的hsvr為本hsvr時,則該消息的sink屬于本hsvr;否則,該消息的sink屬于其它hsvr。例如,消息中攜帶了目的spaddr時,所述目的hsvr信息由該spaddr的hcode指示。還例如,在消息中直接攜帶目的hcode,以用于指示目的hsvr。還例如,消息中沒有攜帶任何hcode信息,則可以默認該消息的sink屬于本hsvr。在一個hsvr中,除了xcld,以及一些rsvr外,一般地,還包括一些提供其它業(yè)務能力的服務器(osvr,otherserver)。例如,所述osvr是一個字典代理(dicagent,dictionaryagent),用于提供號碼遷移查詢服務;還例如,所述osvr是一個駐地識別服務器(ridsvr,residenceidentificationserver),用于提供賬戶駐地查詢服務;還例如,所述osvr是一個位置信息服務器,用于提供位置登記和位置查詢業(yè)務(例如附近的人業(yè)務);還例如,所述osvr是一個支付中心,用于提供賬戶間支付服務,等等。關于dicagent和ridsvr的更多描述,參閱申請?zhí)枮?01610028014.3的《號碼字典》發(fā)明專利,以及申請?zhí)枮?01410098231.0的《基于半永久地址的消息發(fā)送方法》發(fā)明專利。在一個hsvr中,在xcld之外,連接到該xcld的服務器,稱為葉子服務器(lsvr,leafserver),例如,連接到xcld的rsvr或osvr都是lsvr。在一個hsvr中,相關xcld、xs、rsvr、osvr等等的hcode,都為該hsvr的hcode。如圖1所示,為本發(fā)明hsvr組網(wǎng)示例圖。在該圖中,包括三個hsvr:hsvr-a、hsvr-b、hsvr-c。在hsvr-a中,有三個rsvr:位于北京的rsvr-a10、位于成都的rsvr-a28和位于西安的rsvr-a29;有兩個osvr:osvr-a1、osvr-a2;相應xcld為xcld-a,其中有兩個連在一起的xs:xs-a1和xs-a2。在hsvr-b中,有三個rsvr:位于北京的rsvr-b10、位于廣州的rsvr-b20和位于上海的rsvr-b21;有三個osvr:osvr-b1、osvr-b2、osvr-b3;相應xcld為xcld-b,其中有三個xs:xs-b1、xs-b2、xs-b3,且xs-b1分別與xs-b2、xs-b3連在一起。在hsvr-c中,有兩個rsvr:位于廣州的rsvr-c20和位于上海的rsvr-c21;有一個osvr:osvr-c1;相應xcld為xcld-c,其中有兩個連在一起的xs:xs-c1和xs-c2。在相關xcld之間,xs-a1、xs-b1和xs-c1等兩兩之間連在一起,另外,xs-a2和xs-b2連在一起。對于兩個xcld:xcld-1和xcld-2來說,如果xcld-1中的xs-1-a與xcld-2中的xs-2-b直接連接,則稱xs-1-a與xs-2-b為關口xs(gxs,gatewayxs)。例如,xs-a1、xs-b1、xs-c1、xs-a2、xs-b2等都是gxs。如果一個xs與至少一個lsvr直接連接,則稱該xs為云底xs(bxs,cloudbottomxs)。例如,xs-b1沒有直接連接任何lsvr,因而,不是bxs;而其它的xs都直接連接了相應的lsvr,因此,屬于bxs。一般地,所述rsvr中保存相應的賬戶信息。一個accoaddr對應的賬戶所在的rsvr為該accoaddr的rsvr。一般地,一個賬戶的賬戶信息中可以包括這些屬性:accoaddr或accoaddr的addrbase,password,clientip和clientport,等等。其中,password為相應賬戶的密碼,clientip和clientport為相應賬戶的在線信息。當一個賬戶處于登入狀態(tài)時,相應的clientip和clientport對應該賬戶的客戶端的ip地址和端口號;當該賬戶處于登出狀態(tài)時,一般地,相應的clientip和/或clientport為空值null或0,也可表現(xiàn)為沒有對應的在線記錄。所述rsvr在一個賬戶登錄時可以獲取登錄客戶端的ip地址和端口號,并將獲取的ip地址和端口號保存在該賬戶的clientip和clientport屬性中。關于賬戶信息的更多描述參見所述《通信方法和系統(tǒng)》發(fā)明專利。所述rsvr可以通過如表1所示的賬戶信息表來保存相應賬戶的賬戶信息。表1accoaddrpasswordclientipclientportcaocao@yixin.im********相應ip地址相應端口號xushu@yixin.im********相應ip地址相應端口號如果約定客戶端的端口號,則在表1中,可以省略clientport部分。每一個rsvr被指配一個rcode,以用于在相應的hsvr中標識一個rsvr。實際上,所述rcode可以作為一個hsvr內(nèi)的路徑標識,用以標識一個rsvr在hsvr內(nèi)被規(guī)劃的路徑。所述rcode可以是一個簡單的編碼,例如:jing、guang、hu;也可以是一個由點連接起來的多個子域串,例如:shen.guang,guang.shen,10.86,86.10,等等;或是由反斜杠連接起來的路徑,例如,guang\shen,86\10,等等。當然,所述rcode也可以是對應rsvr所在地的固定電話區(qū)號。一個accoaddr對應的rsvr的rcode,為該accoaddr的rcode。一個spaddr的accoaddr的addrhome為該spaddr的hcode或addrhome。一個spaddr的hcode指向一個hsvr,也即屬于該hsvr所擁有,則稱該spaddr歸屬于該hsvr。對于一個rsvr來說,如果一個spaddr歸屬于本hsvr,且該spaddr的rcode指向本rsvr,則該spaddr歸屬于該rsvr。例如,以rsvr-b10的rcode為8610為例,則一個spaddr為(caocao@yixin.im,8610),其hcode值yixin.im指向了hsvr-b,因此,該spaddr歸屬于hsvr-b;又因為其rcode值8610指向了hsvr-b中的rsvr-b10,因此,該spaddr歸屬于rsvr-b10。后面以rcode是一個32位的二進制數(shù)為例進行舉例說明,但不用于限定本發(fā)明。為便于書寫和閱讀,本發(fā)明按字節(jié),用“點分十進制”形式,將rcode表示成(a.b.c.d)的形式。其中,a,b,c,d都是0~255之間的十進制整數(shù)。例如:點分十進制rcode值123.1.254.16對應的rcode值實際為如下32位二進制數(shù):01111011000000011111111000010000在所述《交換方法和交換云》發(fā)明專利中提到,各個rsvr間進行消息交互時,可以根據(jù)rsvr被指配的rcode進行尋址。例如,在對rsvr進行尋址時,本hsvr的xs根據(jù)所述rsvr的rcode,按照針對本hsvr設置的rcode與nextaddr的對應關系,即rcode-nextaddr對應關系,來確定目標nextaddr。為了實現(xiàn)rsvr與osvr之間的消息交互,或者osvr與osvr之間的消息交互,本發(fā)明里,在hsvr中,給各個osvr也指配相應的rcode值。這樣,在本hsvr內(nèi),在對osvr進行尋址時,本hsvr的xs可以將該osvr視為一個rsvr來進行。也即,根據(jù)osvr的rcode,按照針對本hsvr設置的rcode-nextaddr對應關系,來確定目標nextaddr。本發(fā)明里,所述nextaddr可以是一個xs的地址信息(xsaddr,xsaddress),也可以是一個rsvr的地址信息(rsvraddr,rsvraddress),也可以是一個osvr的地址信息(osvraddr,osvraddress)。對于一個xs來說,所述xsaddr可以是該xs面向其它相關xs的通信鏈路號,也可以是該xs面向其它相關xs的tcp連接的套接口描述符(sktd,socketdescriptor)。后面以{約定統(tǒng)一的端口號,所述xsaddr是其它相應xs的ip地址}為例,但不用于限定。對于一個xs來說,所述rsvraddr可以是該xs面向相應rsvr的通信鏈路號,也可以是該xs面向相應rsvr的tcp連接的sktd。后面以{約定統(tǒng)一的端口號,所述rsvraddr是相應rsvr的ip地址}為例,但不用于限定。對于一個xs來說,所述osvraddr可以是該xs面向相應osvr的通信鏈路號,也可以是該xs面向相應osvr的tcp連接的sktd。后面以{約定統(tǒng)一的端口號,所述osvraddr是相應osvr的ip地址}為例,但不用于限定。這樣,對于sink屬于本hsvr的消息,不論該sink是一個rsvr,還是一個osvr,xs在尋址時,都可以根據(jù)該sink的rcode(sinkrcode,sinkrcode),按照針對本hsvr設置的hsvrrdata(selfrdata,selfhsvrrdata),來確定目標nextaddr。例如,所述selfrdata包括rcode-nextaddr對應關系,這樣,xs就可以根據(jù)所述sinkrcode,按照設置的rcode-nextaddr對應關系,來確定目標nextaddr。一般地,osvr與rsvr的區(qū)別在于,可以直接根據(jù)目的spaddr的rcode來對rsvr進行尋址,即一個spaddr指向了一個rsvr。例如,當消息的sink是一個rsvr時,一般地,在消息中顯式地攜帶了對應的sinkrcode。例如,liubei給sunquan發(fā)送消息,這種消息的sink一般是一個rsvr,消息一般攜帶了目的spaddr,該目的spaddr的rcode就是對應的sinkrcode。參閱所述的《交換方法和交換云》發(fā)明專利,這里不再轉(zhuǎn)述。但是,當消息的sink是一個osvr時,消息中,可能就不攜帶對應的sinkrcode。因為,發(fā)送消息的一方,可能事先根本不知道對應的sinkrcode。例如,該消息是一個駐地識別請求消息,以用于查找一個accoaddr對應的rcode;還例如,號碼字典查詢業(yè)務,也存在類似情況;還例如,對于支付業(yè)務,一個hsvr中,可能設置一個或幾個支付業(yè)務處理中心,來處理支付業(yè)務,而不是針對每個rsvr都設置一個支付業(yè)務處理服務器。這些情況下,xs如何得到用于尋址的對應sinkrcode?關于駐地識別請求消息,參閱申請?zhí)枮?01410098231.0的《基于半永久地址的消息發(fā)送方法》發(fā)明專利,以及申請?zhí)枮?01410116253.5的《基于半永久地址的消息尋址方法》發(fā)明專利,本發(fā)明不再轉(zhuǎn)述。關于號碼字典查詢業(yè)務,參閱申請?zhí)枮?01310700473.8的《電話號碼映射方法》發(fā)明專利,以及申請?zhí)枮?01610028014.3的《號碼字典》發(fā)明專利,這里不再轉(zhuǎn)述。為了解決sink為osvr時,xs無法得到相應sinkrcode的問題,本發(fā)明提出,在消息中包括一個業(yè)務類別(sclass,serviceclass)信息。xs根據(jù)消息中攜帶的sclass來確定消息的sinkrcode?;诖?,本發(fā)明提出了目標nextaddr確定方法,以用于xs在進行消息交換時,幫助確定目標nextaddr。按照該方法,在xs中設置selfrdata,以便xs能夠根據(jù)一個rcode,按照設置的selfrdata,來確定消息的目標nextaddr。如圖2所示,為本發(fā)明目標nextaddr確定方法總體實施方式流程圖。按照該圖,對于一個sink屬于本hsvr的,包括sclass的待發(fā)送消息,執(zhí)行如下流程:步驟lt11、根據(jù)所述消息的sclass,確定消息的sinkrcode。步驟lt13、根據(jù)所確定的sinkrcode,按照設置的selfrdata,確定目標nextaddr。這樣,所述xs就可以按照所確定的目標nextaddr,將所述消息發(fā)送出去。例如,所述selfrdata中包括rcode-nextaddr對應關系,這樣,在步驟lt13中,就可以根據(jù)所確定的sinkrcode,按照所述rcode-nextaddr對應關系,來確定目標nextaddr。所述消息可以是由其它hsvr所發(fā)送,例如,是由其它hsvr的xcld中某個gxs轉(zhuǎn)發(fā)給本xs。例如,由rsvr-a28向rsvr-b20發(fā)送消息時,對于xs-b2來說,所述消息來自于xs-a2。所述消息也可以是由本hsvr中相應的lsvr所發(fā)送。例如,由rsvr-b20向osvr-b3發(fā)送消息時,對于xs-b2來說,所述消息來自于rsvr-b20。當然,所述消息也可以是由本hsvr中相應xcld里另外一個xs所發(fā)送。例如,由rsvr-c21向rsvr-c20發(fā)送消息時,對于xs-c1來說,所述消息來自于xs-c2。xs對于sink屬于其它hsvr的消息,可以直接將該消息轉(zhuǎn)發(fā)給所述其它hsvr中的gxs。例如,由rsvr-a28向rsvr-b20發(fā)送消息時,xs-a2在判斷消息的目的hcode指向了hsvr-b時,直接將該消息轉(zhuǎn)發(fā)給xs-b2。xs對于sink屬于其它hsvr的消息,也可以將該消息轉(zhuǎn)發(fā)給本hsvr中其它xs,并最終由本hsvr中的某一gxs將該消息轉(zhuǎn)發(fā)給所述其它hsvr中的gxs。例如,由rsvr-c21向rsvr-a29發(fā)送消息時,xs-c2在判斷消息的目的hcode指向其它hsvr時,直接將該消息轉(zhuǎn)發(fā)給xs-c1;xs-c1收到所述消息后,在判斷消息的目的hcode指向了hsvr-a時,直接將該消息轉(zhuǎn)發(fā)給xs-a1。在所述的《交換方法和交換云》發(fā)明專利中所提到的消息交換方法已經(jīng)闡述了如何根據(jù)消息的sink所在hsvr的hcode進行尋址,這里不再進行模仿敘述。實際當中,可以建立sclass和sinkrcode的對應關系,也即sclass-sinkrcode對應關系。例如,通過設置sclass-sinkrcode對應關系表來按照sclass值保存對應的sinkrcode值。這樣,在步驟lt11中,xs可以根據(jù)消息中攜帶的sclass,按照所述sclass-sinkrcode對應關系來確定對應的sinkrcode。后面以sclass是一個16位的二進制數(shù)為例進行舉例說明,但不用于限定本發(fā)明。為便于書寫和閱讀,本發(fā)明按字節(jié),用“點分十進制”形式,將sclass表示成(e.f)形式。其中,e,f都是0~255之間的十進制整數(shù)。例如:點分十進制sclass值5.65對應的sclass值實際為如下16位二進制數(shù):0000010101000001為了簡化rcode-nextaddr對應關系的配置,較佳地,所述rcode-nextaddr對應關系進一步是rcode前綴(rcodeprefix,rcodeprefix)與nextaddr的對應關系,即rcodeprefix-nextaddr對應關系。例如,通過設置rcodeprefix表來保存所述rcodeprefix-nextaddr對應關系。相應地,根據(jù)一個rcode,按照設置的rcodeprefix表來確定對應的nextaddr。例如,根據(jù)該rcode,從所述rcodeprefix表中尋找最佳匹配的rcodeprefix,將對應記錄的nextaddr作為匹配結(jié)果。同樣,為了簡化sclass-sinkrcode對應關系的配置,較佳地,所述sclass-sinkrcode對應關系進一步是sclass前綴(scprefix,sclassprefix)與sinkrcode的對應關系,即scprefix-sinkrcode對應關系。例如,通過設置scprefix表來保存所述scprefix-sinkrcode對應關系。相應地,根據(jù)一個sclass,按照設置的scprefix表來確定對應的sinkrcode。例如,根據(jù)該sclass,從所述scprefix表中尋找最佳匹配的scprefix,將對應記錄的sinkrcode作為匹配結(jié)果。本發(fā)明以最佳匹配是最長匹配為例。但不用于限定本發(fā)明。根據(jù)rcode按照rcodeprefix表,確定最佳匹配的方式,或者,根據(jù)sclass按照scprefix表,確定最佳匹配的方式,等等,有多種多樣。實際實施時,可以直接參閱現(xiàn)成的,大量公開的ip路由表設計與實現(xiàn)相關的資料。以根據(jù)rcode按照rcodeprefix表,確定最佳匹配為例,除了采用順序遍歷rcodeprefix表這種粗辦法外,還可以采用一些常用的優(yōu)化算法。例如,如果rcodeprefix之間互不包含,則可以直接根據(jù)所述rcodeprefix表,建立一個二叉平衡樹,這樣,可以根據(jù)一個rcode值,通過查找該二叉平衡樹,來確定相應的最佳匹配。當然,也可以用對分查詢法,通過查找rcodeprefix表來確定相應的最佳匹配。還例如,如果允許rcodeprefix之間相互包含,則可以通過擴展前綴方式來建立二叉平衡樹,而后根據(jù)一個rcode值,通過查找該二叉平衡樹,來確定相應的最佳匹配。具體參見題為《快速路由表的設計和實現(xiàn)以及對路由器交換結(jié)構(gòu)的改進》的北京郵電大學的碩士研究生學位論文(作者王利媛)。由于根據(jù)一個目的ip地址查找一個ip前綴表,獲得最佳匹配的方式是成熟的技術,因此,本發(fā)明不再就此進行贅述。實際當中,業(yè)務發(fā)生的頻率有很大差異。對此,可以按照業(yè)務頻率,由高到底,將所述scprefix表拆分稱若干子表,這樣,就可以根據(jù)消息的sclass,先查找高頻業(yè)務對應的子表,在確定最佳匹配后,結(jié)束操作;在沒有確定最佳匹配時,再查找相對低頻業(yè)務對應的子表。實際當中,并不是所有消息的sinkrcode都能夠在scprefix表中表示出來,也即,并不是針對所有的scprefix都能在scprefix表中對應設置有效的sinkrcode。例如,liubei給sunquan發(fā)送消息,這種消息的sink是一個rsvr,消息中攜帶了目的spaddr,該spaddr的rcode就是對應的sinkrcode,這時,就不能根據(jù)消息中攜帶的sclass值,直接從scprefix表中確定對應的sinkrcode。這種情況下,就會存在這種情況:{在根據(jù)消息的sclass,查找scprefix表時,匹配不到任何記錄}。這時,可以約定:默認消息中攜帶了目的rcode,并將該目的rcode作為消息的sinkrcode。但這樣做,并非最好辦法。因為,那些直接在消息中攜帶了目的rcode的業(yè)務,往往是是一些高頻業(yè)務,例如聊天消息。在每次有聊天消息經(jīng)過時,xs都經(jīng)過{根據(jù)消息的sclass,查找scprefix表,判斷是否存在最佳匹配}這樣的操作后,才能確定消息的sinkrcode的做法,是低效的。特別地,針對直接使用消息中攜帶的目的rcode來作為消息的sinkrcode的一類高頻業(yè)務,可以直接設置無關scprefix(independentscprefix,independent,scprefix)。例如,可以通過設置一個independentscprefix表,用來保存相應的independentscprefix值。這樣,xs在進行消息交換時,就可以先根據(jù)消息中攜帶的sclass,查找independentscprefix表,看是否能夠確定最佳匹配,如果是,則說明該消息包括目的rcode,于是,將該消息的目的rcode值作為對應的sinkrcode;否則,根據(jù)消息中攜帶的sclass值,查找scprefix表,來確定對應的sinkrcode。這種情況下,如果根據(jù)消息中攜帶的sclass值,查找scprefix表,還無法得到對應的sinkrcode,即沒有合適匹配,則可以做例外處理,或者,也可以默認所述消息包括目的rcode,并將該目的rcode作為消息的sinkrcode。所述的例外處理可以是:將所述消息的部分或全部,以及例外描述等寫入運行日志文件,或者是做其它處理。后面以此為例,但不用于限定。一個消息包括目的rcode的方式有多種,例如,直接在消息中設置目的rcode項,用于承載消息的目的rcode。通常,一個消息包括了目的spaddr,這時,將該目的spaddr的rcode作為消息的目的rcode。后面不再就此類情形進行復述。實際當中,針對不同的sclass,確定消息的sinkrcode的方式,可能存在著很大差異。例如,liubei給sunquan發(fā)送消息,這種消息的sink是一個rsvr,消息中攜帶了目的spaddr,該spaddr的rcode就是對應的sinkrcode,這時,就不能根據(jù)消息中攜帶的sclass值,直接從scprefix表中確定對應的sinkrcode。還例如,liubei有查詢附近的人,查詢消息中,攜帶了liubei當前的位置信息,比如是一個geohash值。而hsvr-c中,設置了兩個位置信息服務器,xs-c1希望根據(jù)liubei的當前位置來決定將消息送往哪一個位置信息服務器中。這種情況下,就不能簡單地根據(jù)消息中攜帶的sclass來直接確定對應的sinkrcode。由于確定消息的sinkrcode的規(guī)則存在著差異,因此,本發(fā)明提出,建立sclass和確定sinkrcode的規(guī)則(sinkrcodednism,sinkrcodedeterminationmechanism)的對應關系,也即sclass-sinkrcodednism對應關系。這樣,xs在進行消息交換時,就可以根據(jù)消息中攜帶的sclass,按照所述sclass-sinkrcodednism對應關系來選擇對應的sinkrcodednism,然后按照選擇的sinkrcodednism,來確定消息的sinkrcode。所述步驟lt11進一步是步驟lt11b:根據(jù)所述消息的sclass,按照所述sclass-sinkrcodednism對應關系,選擇對應的sinkrcodednism;根據(jù)選擇的sinkrcodednism,來確定消息的sinkrcode。實際當中,開發(fā)人員可以針對不同的sinkrcodednism寫不同的函數(shù)來進行具體的處理,并向調(diào)用方返回確定的sinkrcode。這里,可以將所述消息的指針作為調(diào)用參數(shù),來調(diào)用相應sinkrcodednism的函數(shù)。同樣,為了簡化sclass-sinkrcodednism對應關系的配置,較佳地,所述sclass-sinkrcodednism對應關系進一步是scprefix與sinkrcodednism的對應關系,即scprefix-sinkrcodednism對應關系。相應地,在步驟lt11b中,所述的{根據(jù)所述消息的sclass,按照所述sclass-sinkrcodednism對應關系,選擇對應的sinkrcodednism}進一步是:根據(jù)一個sclass,按照設置的scprefix-sinkrcodednism對應關系,來確定對應的sinkrcodednism。例如,根據(jù)所述sclass,從所述scprefix-sinkrcodednism對應關系中尋找最佳匹配的scprefix,將對應的sinkrcodednism作為匹配結(jié)果。實際當中,為了提高系統(tǒng)運行效率,也為了簡化網(wǎng)絡運維人員的配置操作,本發(fā)明按照如下方法,將scprefix-sinkrcodednism對應關系合并到所述的scprefix表中。該方法是:將rcode取值空間中的一部分保留下來,用于標識相應的sinkrcodednism。例如,預計的sinkrcodednism不超過256種,則,將rcode取值空間中,0.0.0.0—0.0.0.255,也即0—255的256個值保留下來,作為sinkrcodednism標識值(sinkrcodednism_id,sinkrcodednismidentity),用于標識不同的sinkrcodednism。這樣,一個rcode值大于255時,才有效。這樣,在根據(jù)一個sclass,從所述scprefix表中找到最佳匹配的scprefix時,如果對應記錄的sinkrcode值大于255,即不在0.0.0.0—0.0.0.255范圍內(nèi),則說明該sinkrcode是有效的。這種情況下,對應的sinkrcodednism是:{建立scprefix與sinkrcode的對應關系,用消息中的sclass查找建立的scprefix與sinkrcode的對應關系,來獲取最佳匹配,從而確定消息的sinkrcode}。特別地,這種情況下,不需要為該sinkrcodednism指配一個sinkrcodednism_id,但為了后面描述方便,本發(fā)明為該sinkrcodednism指配的sinkrcodednism_id為255。在根據(jù)一個sclass,從所述scprefix表中找到最佳匹配的scprefix時,如果對應記錄的sinkrcode值在0.0.0.0—0.0.0.255范圍內(nèi),則將對應記錄的sinkrcode視為sinkrcodednism_id。這時,xs進一步按照選擇的所述sinkrcodednism,即按照由最佳匹配記錄的sinkrcodednism_id所指示的sinkrcodednism,來確定消息的sinkrcode。當然,這種情況下,也可以按照業(yè)務頻率,由高到底,將所述scprefix表拆分稱若干子表,這樣,就可以根據(jù)消息的sclass,先查找高頻業(yè)務對應的子表,在確定最佳匹配后,結(jié)束操作;在沒有確定最佳匹配時,再查找相對低頻業(yè)務對應的子表。所述步驟lt11進一步是步驟lt11c:根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄;判斷所述記錄的sinkrcode值是否有效,例如是否大于255,如果是,則將該記錄的sinkrcode作為消息的sinkrcode;否則,將該記錄的sinkrcode視為sinkrcodednism_id,按照該sinkrcodednism_id所對應的sinkrcodednism,來確定消息的sinkrcode。如圖3所示,為本發(fā)明消息的sinkrcode標準化確定方法的實施例一流程圖。例如:sinkrcodednism_id為0:對應的sinkrcodednism為:{所述消息中攜帶目的rcode,直接將所述目的rcode作為消息的sinkrcode}。相應地,在步驟lt11c中,在根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄時,如果該記錄的sinkrcode為0,則默認所述消息攜帶了目的rcode,并將所攜帶的目的rcode作為消息的sinkrcode。sinkrcodednism_id為1:對應的sinkrcodednism為:{所述消息中攜帶目的rcode,建立由目的rcode到sinkrcode的運算關系,所述sinkrcode由所攜帶的目的rcode運算得到}。相應地,在步驟lt11c中,在根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄時,如果該記錄的sinkrcode為1,則默認所述消息攜帶了目的rcode,并根據(jù)所攜帶的目的rcode進行相應的計算,來得到消息的sinkrcode。例如,所述計算可以直接是將所述目的rcode加上一個偏移量來得到消息的sinkrcode?;蛘呤菍⑺瞿康膔code的低位兩個字節(jié)全部置0來得到消息的sinkrcode。sinkrcodednism_id為2:對應的sinkrcodednism為:{所述消息中進一步攜帶目的rcode,針對相應scprefix或者該sinkrcodednism,建立目的rcode與sinkrcode對應關系;用消息的目的rcode查找該對應關系,來獲取最佳匹配,從而確定消息的sinkrcode}。相應地,在步驟lt11c中,在根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄時,如果該記錄的sinkrcode為2,則默認所述消息攜帶了目的rcode,并用所攜帶的目的rcode查找針對該sclass或者該sinkrcodednism建立的目的rcode與sinkrcode的對應關系,來得到消息的sinkrcode。sinkrcodednism_id為3:對應的sinkrcodednism為:{所述消息中進一步攜帶目的accoaddr,針對相應scprefix或者該sinkrcodednism,建立目的accoaddr與sinkrcode對應關系;用消息的目的accoaddr查找該對應關系,來獲取最佳匹配,從而確定消息的sinkrcode}。相應地,在步驟lt11c中,在根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄時,如果該記錄的sinkrcode為3,則默認所述消息攜帶了目的accoaddr,并用所攜帶的目的accoaddr查找針對該sclass或者該sinkrcodednism建立的目的accoaddr與sinkrcode的對應關系,來得到消息的sinkrcode。sinkrcodednism_id為4:對應的sinkrcodednism為:{建立信源(source)所在hsvr與sinkrcode的對應關系,也即建立sourcehsvr表,用source所在hsvr的hcode查找建立的sourcehsvr表,來確定消息的sinkrcode}。相應地,在步驟lt11c中,在根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄時,如果該記錄的sinkrcode為4,則用所述消息的source所在hsvr的hcode查找sourcehsvr表,來得到消息的sinkrcode。例如,對于支付類,因某個hsvr與本hsvr間交互的支付業(yè)務量特別大,而單獨設置了一個針對相應hsvr的支付業(yè)務類osvr。一般地,所述消息中攜帶了source所在hsvr的hcode。如果沒有攜帶,則可以默認該消息的source屬于本hsvr。sinkrcodednism_id為5:對應的sinkrcodednism為:{所述消息中進一步攜帶源用戶的地理信息(gi);gi與sinkrcode的對應關系,用源用戶的gi查找gi與sinkrcode的對應關系,尋找最佳匹配,來確定消息的sinkrcode}。相應地,在步驟lt11c中,在根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄時,如果該記錄的sinkrcode為5,則默認所述消息攜帶了源用戶的gi,并用所攜帶的源用戶的gi查找gi與sinkrcode的對應關系,尋找最佳匹配,來得到消息的sinkrcode。所述gi可以是經(jīng)緯度數(shù)據(jù),這種情況下,所述的{用所述消息的源用戶的gi,查找gi與sinkrcode的對應關系,尋找最佳匹配,來得到消息的sinkrcode},進一步是:根據(jù)所述源用戶的gi,從gi與sinkrcode的對應關系中確定與所述源用戶距離最近的記錄,以得到消息的sinkrcode。所述gi可以是geohash值,這種情況下,直接用所述消息的源用戶的gi,查找gi與sinkrcode的對應關系,獲取最佳匹配,來得到消息的sinkrcode。所述gi可以是區(qū)域信息(ai),這種情況下,直接用所述消息的源用戶的gi,查找gi與sinkrcode的對應關系,獲取最佳匹配,來得到消息的sinkrcode。和{經(jīng)緯度數(shù)據(jù)用來描述地理上的一個點,以及geohash值用來描述地理上的一個區(qū)塊}不同,ai是按照行政歸屬權來對地球上的區(qū)域進行劃分的。關于ai的相關描述,參見申請?zhí)枮?01410765289.6的《輔助解析方法》發(fā)明專利,這里不再轉(zhuǎn)述。sinkrcodednism_id為6:對應的sinkrcodednism為:{所述消息中進一步攜帶目的accoaddr,建立目的accoaddr與sinkrcode對應關系;用消息的目的accoaddr查找該對應關系,來獲取最佳匹配,從而確定消息的sinkrcode}。相應地,在步驟lt11c中,在根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄時,如果該記錄的sinkrcode為6,則默認所述消息攜帶了目的accoaddr,并用所攜帶的目的accoaddr查找建立的目的accoaddr與sinkrcode的對應關系,來得到消息的sinkrcode。xs可以在本地保存數(shù)量龐大的accoaddr與sinkrcode的對應關系,這樣,xs可以直接從本地查找一個accoaddr對應的rcode。本發(fā)明無法窮盡所有的sinkrcodednism。實際當中,技術人員可以根據(jù)需要,按照發(fā)明方法,來相應地制定各種不同的sinkrcodednism。并將其嵌入到本發(fā)明的流程中。在步驟lt11c中,在根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄時,如果沒有得到,則可以默認按照sinkrcodednism_id為0的sinkrcodednism來確定消息的sinkrcode,例如,默認該消息攜帶了目的rcode,并將所攜帶的目的rcode值作為消息的sinkrcode。這樣,對于大量的sinkrcodednism_id為0的sinkrcodednism所對應的sclass,就不需要在所述scprefix表中進行相應的數(shù)據(jù)配置,這樣,就可以極大地方便運維。當然,為了簡化scprefix表設置,也可以設置默認rcode(defaultrcode,defaultrcode),相應地,在步驟lt11c中,在根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄時,如果沒有得到,則可以將設置的defaultrcode作為消息的sinkrcode。在所述的將設置的defaultrcode作為消息的sinkrcode之前,還可以判斷設置的defaultrcode是否有效,例如,是否大于255,如果是,才將設置的defaultrcode作為消息的sinkrcode;否則,仍然按照sinkrcodednism_id為0的sinkrcodednism來確定消息的sinkrcode。這樣,就給所述scprefix表的配置提供了更大的靈活性。特別地,進一步建立sclass和備用sinkrcodednism的對應關系。在步驟lt11b中,在無法確定消息的sinkrcode時,進一步按照所述消息的sclass所對應的備用sinkrcodednism,來確定消息的sinkrcode。較佳地,在scprefix表中,進一步包括備用sinkrcode字段。在步驟lt11c中,在按照所述sinkrcodednism_id所對應的sinkrcodednism來確定消息的sinkrcode時,在無法確定消息的sinkrcode時,則進一步判斷記錄的備用sinkrcode是否有效,如果是,則將該備用sinkrcode作為消息的sinkrcode;否則,將該備用sinkrcode視為sinkrcodednism_id,按照該sinkrcodednism_id所對應的sinkrcodednism,來確定消息的sinkrcode。如圖4所示,為本發(fā)明消息的sinkrcode標準化確定方法的實施例二流程圖。通過在scprefix表中,進一步包括備用sinkrcode字段,來實現(xiàn)兜底配置,從而極大地增強了數(shù)據(jù)配置的靈活性,方便了運維。例如,所述兜底配置可以直接選擇sinkrcodednism_id為255的sinkrcodednism。即在備用sinkrcode中簡單地設置有效sinkrcode以作為默認值。這樣,即使按照前一次的sinkrcodednism無法確定消息的sinkrcode,通過根據(jù)備用sinkrcode字段來確定消息的sinkrcode,使得最終不會影響到消息的sinkrcode的確定。例如,在步驟lt11c中,在按照sinkrcodednism_id為4的sinkrcodednism無法確定消息的sinkrcode時,進一步按照sinkrcodednism_id為255的sinkrcodednism來確定消息的sinkrcode。例如,在xs-b2里的sourcehsvr表中,只針對miliao.com設置了對應的sinkrcode,而消息的source所在hsvr的hcode為immomo.com,這種情況下,按照按照sinkrcodednism_id為4的sinkrcodednism就無法確定消息的sinkrcode,而此時,可以按照sinkrcodednism_id為255的sinkrcodednism來確定消息的sinkrcode,即,將所述記錄的備用sinkrcode字段值作為消息的sinkrcode。這里,對所述備用sinkrcode字段的配置應保證該記錄的備用sinkrcode字段是一個有效的sinkrcode值,否則,就不是sinkrcodednism_id為255的sinkrcodednism了。還例如,在步驟lt11c中,在按照sinkrcodednism_id為3的sinkrcodednism無法確定消息的sinkrcode時,進一步按照sinkrcodednism_id為0的sinkrcodednism來確定消息的sinkrcode。為了使得,在從xs到sink的路徑上,后面的xs不再需要執(zhí)行確定所述消息的sinkrcode的操作,可以在消息中進一步包括sinkitem,以記錄已經(jīng)確定的消息的sinkrcode值。一般地,該sinkitem初始值為rcode的保留值0。xs在判斷消息的sinkitem為0時,才執(zhí)行確定該消息的sinkrcode的操作,并將確定的sinkrcode值填寫到該消息的sinkitem里。這樣,在從xs到sink的路徑上,后續(xù)的xs就不用再執(zhí)行確定相應消息的sinkrcode的操作了,從而提高了消息交換和整體傳輸效率。例如,從rsvr-b20給rsvr-b21或osvr-b2發(fā)送消息,xs-b2在收到消息后,判斷消息的sinkitem是否為0,如果是,在確定該消息的sinkrcode,并將確定的sinkrcode值填寫到消息的sinkitem中。這樣,在從xs-b2到rsvr-b21或osvr-b2的路徑上,后續(xù)的xs-b1和xs-b3都不用再執(zhí)行確定該消息的sinkrcode的操作了。特別地,這種情況下,對于有些業(yè)務,當消息發(fā)送方,例如rsvr或osvr,明確知道消息的sinkrcode時,可以直接將該sinkrcode值填寫到消息的sinkitem中。這種情況下,對于后續(xù)的xs來說,所述消息的sinkitem將直接是一個有效值。例如,liubei給sunquan發(fā)送消息,這種消息的sink一般是一個rsvr,消息一般攜帶了目的spaddr,該spaddr的rcode通常就是所述消息的sinkrcode。這個時候,可以直接用消息的sinkitem保存所述spaddr的rcode,這樣,該消息在攜帶所述目的spaddr時,該spaddr的rcode值是保存到消息的sinkitem中的,即消息中包括sinkitem項和目的spaddr的accoaddr項,由消息的sinkitem和目的spaddr的accoaddr組成消息的目的spaddr。實際當中,存在這種情況,一個消息是用來向目標用戶支付一筆款項,用于支付的sclass所對應的支付中心的rcode才是消息的sinkrcode,而不是消息中目的賬戶的spaddr的rcode。而支付中心在支付完畢后,如果還要給目的賬戶發(fā)送一條通知消息,這時,就需要用到目的賬戶的spaddr。這種情況下,消息中需要攜帶目標賬戶的spaddr,但不能將該spaddr的rcode填寫在消息的sinkitem中。也即,不應用消息的sinkrcode值來改寫消息中目的spaddr的rcode值。當然,如果簡單地根據(jù)不同的sclass來設計不同的消息格式,那么,針對某些sclass,如前所述的liubei給sunquan發(fā)送消息,在消息中攜帶目的spaddr的情況下,直接用消息的sinkitem來承載該目的spaddr的rcode,也是一種選擇。但這樣不利于在xcld層面根據(jù)sclass進行靈活的調(diào)度,從而影響到網(wǎng)絡規(guī)劃。如果考慮到業(yè)務的可擴展性以及方便運維,較佳地,在消息中同時包括sinkitem項,目的spaddr的accoaddr項,和目的spaddr的rcode項。這樣,由xs根據(jù)消息中的sclass,選擇相應的sinkrcodednism,按照該sinkrcodednism來確定消息的sinkrcode,并將確定的sinkrcode填寫到消息的sinkitem中。這樣,在某一個osvr,因為業(yè)務規(guī)模擴大,而進行拆分時,直接在xcld側(cè)更新相應xs的數(shù)據(jù)配置即可,而不需要對數(shù)量更大的rsvr側(cè)或osvr側(cè)進行更新。為了減少對網(wǎng)絡運行的擾動,在一個hsvr中,在xcld側(cè)大范圍地更新相應xs的數(shù)據(jù)配置這種事情,也不宜頻繁發(fā)生。在一個hsvr中,當業(yè)務演變引起相應rsvr或osvr的拆分或合并時,一般需要給新的rsvr或osvr分配不同的rcode,這樣,就可能引起xcld側(cè)多個xs中相應selfrdata數(shù)據(jù)的變化。為了減少rsvr和osvr因為業(yè)務拆分或合并所導致的xcld側(cè)多個xs中相應selfrdata數(shù)據(jù)的更新,本發(fā)明進一步提出,允許多個lsvr共享一個rcode的情況存在,即允許將一個rcode值指配給若干個lsvr,相應地,在根據(jù)sinkrcode來尋址lsvr時,進一步根據(jù)消息的sclass來進行。這種情況下,在所述selfrdata中,是根據(jù)rcode和sclass,來設置對應的nextaddr,即設置rcode-sclass-nextaddr對應關系。相應地,所述步驟lt13進一步是步驟lt13b:根據(jù)所述消息的sclass以及所確定的sinkrcode,按照設置的selfrdata,來確定目標nextaddr。為了便于配置,所述的{在所述selfrdata中,根據(jù)rcode和sclass,來設置對應的nextaddr,即設置rcode-sclass-nextaddr對應關系}進一步是:在所述selfrdata中,是根據(jù)rcodeprefix和scprefix,來設置對應的nextaddr,即設置rcodeprefix-scprefix-nextaddr對應關系。相應地,所述步驟lt13b進一步是:根據(jù)所述消息的sclass以及所確定的sinkrcode,按照設置的selfrdata,獲取最佳匹配,來確定目標nextaddr。為了提高運行效率,較佳地,作為一種限制性用法,可以根據(jù)rcode和sclass產(chǎn)生一個rcodesclass值,相應地,在所述selfrdata中,是根據(jù)rcodesclass,來設置對應的nextaddr,即設置rcodesclass-nextaddr對應關系。相應地,所述步驟lt13進一步是步驟lt13c:根據(jù)所述消息的sclass以及所確定的sinkrcode,產(chǎn)生rcodesclass;根據(jù)產(chǎn)生的rcodesclass,按照設置的selfrdata,來確定目標nextaddr。根據(jù)一個rcode和sclass產(chǎn)生一個rcodesclass值的方式有多種,下面舉兩個例子。方式一、在為rsvr或osvr指配rcode時,約定將rcode的低位字節(jié)保留下來不用,即為00000000。那么,在根據(jù)一個rcode和sclass產(chǎn)生一個rcodesclass值時,可以是將sclass的高位字節(jié)粘貼到rcode的低位字節(jié)上。例如,rcode值為123.234.58.0,sclass值為2.89,則產(chǎn)生的rcodesclass值由rcode的高位三個字節(jié)123.234.58與sclass的高位字節(jié)2組成的值123.234.58.2。方式二、根據(jù)一個rcode和sclass產(chǎn)生一個rcodesclass值直接是將該sclass拼接到該rcode值后面得到。例如,rcode值為123.234.58.63,sclass值為2.89,則拼接后,產(chǎn)生的rcodesclass值為48位的123.234.58.63.2.89。為了便于rcodesclass-nextaddr對應關系的配置,較佳地,所述rcodesclass-nextaddr對應關系進一步是rcodesclass前綴(rcodescprefix,rcodesclassprefix)與nextaddr的對應關系,即rcodescprefix-nextaddr對應關系。例如,通過rcodescprefix表來保存所述rcodescprefix-nextaddr對應關系。相應地,根據(jù)一個rcodesclass,按照設置的rcodescprefix表來確定對應的nextaddr。例如,根據(jù)該rcodesclass,從所述rcodescprefix表中尋找最佳匹配的rcodescprefix,將對應記錄的nextaddr作為匹配結(jié)果。這樣,在一個hsvr中,當業(yè)務演變引起相應rsvr或osvr的拆分或合并時,一般地,不需要為新的rsvr或osvr指配相應的rcode,而只需要對該rsvr或osvr連接的xs中,相應的rcodescprefix表進行更新即可,而該hsvr的xcld側(cè),其它xs都不受影響。為了便于整體xcld中各個xs里相應數(shù)據(jù)配置,在xs中還可以進行默認設置。相應地,在步驟lt13之前,進一步步驟lt12:判斷所確定消息的sinkrcode是否有效,如果是,才執(zhí)行步驟步驟lt13;否則,按照默認設置,確定目標nextaddr。參見如圖5所示,為本發(fā)明目標nextaddr確定方法擴展實施方式一流程圖。特別地,在步驟lt11c中,在根據(jù)所述消息的sclass,按照所述scprefix表,獲取最佳匹配記錄時,如果沒有得到,則直接按照默認設置,確定目標nextaddr,然后結(jié)束整個目標nextaddr確定流程。參見如圖6所示,為本發(fā)明目標nextaddr確定方法擴展實施方式二流程圖。實際當中,根據(jù)xs在xcld中位置,和對xs的要求不同,所述默認設置也應有差異。所述默認設置包括:設置總體默認nextaddr(gdnextaddr,generaldefaultnextaddr)。所述的按照默認設置確定目標nextaddr進一步是:直接將gdnextaddr作為目標nextaddr。這樣,一個xs就不需要在scprefix表中設置那些自己不關心的scprefix了。例如,xs-c2沒有連接任何osvr,因此,對于涉及到osvr的業(yè)務的消息,可以直接設置gdnextaddr為xs-c1。這樣,就簡化了xs-c2的數(shù)據(jù)配置。本發(fā)明通過在xcld側(cè)建立sclass與sinkrcodednism的對應關系,使得xs能夠根據(jù)消息的sclass,來選擇sinkrcodednism,并按照所選的sinkrcodednism,來確定消息的sinkrcode。這樣,在hsvr間進行消息交互時,可以不需要source來決定消息sinkrcode,這就給目的hsvr側(cè)的網(wǎng)絡規(guī)劃提供了極大的靈活性,即不需要將相應lsvr的rcode約定死,而是根據(jù)是否便于消息傳送,是否便于xs中rdata的配置,來靈活指配相應lsvr的rcode。從上面實施例可以看出,基于本發(fā)明的業(yè)務消息交換方法,以及業(yè)務交換云,可以實現(xiàn)任意lsvr之間靈活互聯(lián),從而,為互聯(lián)網(wǎng)通信、物聯(lián)網(wǎng)通信,在業(yè)務層面的融合提供可靠的技術支撐。本領域技術人員都知道,考慮到部署的靈活性,一般地,在統(tǒng)一約定對應服務器或模塊的相應端口號時,應將xs、rsvr、osvr等等分別約定為不同的端口號,例如,rsvr的端口號為5588,osvr的端口號為6688,xs的端口號為7788。需要說明的是,如果xs是一個bxs,則該bxs可以是一個分布式系統(tǒng)。例如,對于步驟lt11中相關操作來說,可以將其一部分甚至全部拆分出來,拉遠,放置到lsvr側(cè)來實施,例如,在rsvr或者osvr側(cè),在向連接的bxs發(fā)送消息時,直接確定消息的sinkrcode,并將確定的sinkrcode填寫到sinkitem里。這樣,可以提高bxs的整體工作效率。只是,這不便于數(shù)據(jù)配置與管理,例如,某一sclass對應的sinkrcodednism發(fā)生變化時,或者某一sclass對應的sinkrcode發(fā)生變化時,在所述分布式bxs中,放置到lsvr側(cè)的相應模塊里,有關該sclass的數(shù)據(jù)配置可能都需要進行更新。本領域技術人員都知道,本發(fā)明中,相互通信的服務器或模塊之間,可以通過ip網(wǎng)絡實現(xiàn)互聯(lián)。在二者距離較近時,也可以通過采用rs485通訊方式進行通信。由于單純兩個模塊或服務器之間的通信,根據(jù)實際情況,可以有各種相應合適的成熟技術來實現(xiàn),因此,本發(fā)明不再就這方面贅述。以上僅為本發(fā)明的較佳實施例,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之類,所作的任何修改、改進、等同替換,以及對一些要素或流程的刪減,等均應包含在本發(fā)明的保護范圍之內(nèi)。當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1