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

一種數(shù)據(jù)傳輸方法及數(shù)據(jù)傳輸系統(tǒng)以及相關(guān)設(shè)備的制作方法

文檔序號:7712049閱讀:177來源:國知局
專利名稱:一種數(shù)據(jù)傳輸方法及數(shù)據(jù)傳輸系統(tǒng)以及相關(guān)設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種數(shù)據(jù)傳輸方法及數(shù)據(jù)傳輸系統(tǒng)以及 相關(guān)設(shè)備。
背景技術(shù)
網(wǎng)絡(luò)服務(wù)(Web Service)主要是為了使原本孤立的站點之間的信息能夠 相互交換、共享而提出的一種接口。
Web Service所使用的是互聯(lián)網(wǎng)(Internet)上統(tǒng)一、開放的標(biāo)準(zhǔn),如超文 本傳輸協(xié)i義(HTTP, Hyper Texture Transport Protocol )、擴展標(biāo)記語言(XML, extensible Markup Language )、簡單對象訪問協(xié)"i義(SOAP, Simple Object Access Protocol )、網(wǎng)纟備月艮務(wù)描述i吾言(WSDL, Web Services Description Language) 等,所以Web Service可以在任何支持這些標(biāo)準(zhǔn)的環(huán)境(例如Windows或Linux) 中使用。Web Service的設(shè)計目標(biāo)就是簡單性和擴展性,這有助于大量異構(gòu)程 序和平臺之間的互操作性,從而使存在的應(yīng)用程序能夠被廣泛的用戶訪問。
一般情況下,Web Service可以分成幾個邏輯層次傳輸層,消息層和服 務(wù)定義層,其中,傳輸層主要負責(zé)底層的物理連接,消息層定義了消息交換 模式(MEP, Message exchange patterns)和SOAP消息格式。服務(wù)定義層則 描述了 Web Service服務(wù)的業(yè)務(wù)接口和相關(guān)的其他信息,如安全,服務(wù)質(zhì)量 (QoS, Quality of Service)等。
MEP定義了使用Web Service來交互信息所必須遵守的模式,產(chǎn)生新MEP 的場景之一就是交互雙方需要大數(shù)據(jù)量交換的情況,僅僅通過一次請求一次 響應(yīng)的簡單MEP,不能滿足大數(shù)據(jù)量交換需求。
比如針對一次請求,響應(yīng)方返回多達幾兆比特的數(shù)據(jù),而請求方一次不 能處理這些數(shù)據(jù),因而請求方希望進行某種流控,從而控制返回數(shù)據(jù)量的節(jié) 奏,現(xiàn)有技術(shù)中一種數(shù)據(jù)傳輸方法主要采用的是迭代模式,簡要過程如下
當(dāng)響應(yīng)方確定結(jié)果數(shù)量超過期望的數(shù)量,就先對結(jié)果進行分包,之后創(chuàng) 建一個迭代子實例,然后將首部分結(jié)果和這個迭代子引用一起返回給請求方, 這個迭代子實例將保留與本次請求相關(guān)的中間信息;請求方接收到首部分結(jié)果以及迭代子之后,即獲知還有后續(xù)結(jié)果,如果 請求方還需要獲取后續(xù)結(jié)果,則根據(jù)該迭代子再次向響應(yīng)方發(fā)起請求,例如
向響應(yīng)方發(fā)送GET NEXT,則響應(yīng)方會依次發(fā)送后續(xù)的結(jié)果。
發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)上述現(xiàn)有技術(shù)中,響應(yīng)方需要保存 大量的中間信息,例如響應(yīng)方需要保存當(dāng)前已經(jīng)發(fā)送了多少結(jié)果,才能在收 到請求方的GET NEXT請求時發(fā)送后續(xù)的結(jié)果,因此增加了響應(yīng)方的開銷, 影響了數(shù)據(jù)傳輸?shù)男省?

發(fā)明內(nèi)容
本發(fā)明實施例提供了 一種數(shù)據(jù)傳輸方法及數(shù)據(jù)傳輸系統(tǒng)以及設(shè)備,以實 現(xiàn)高效的大數(shù)據(jù)量交換。
本發(fā)明實施例提供的數(shù)據(jù)傳輸方法,應(yīng)用于網(wǎng)絡(luò)Web服務(wù),包括當(dāng)截 取器截獲請求方發(fā)送的Web服務(wù)請求消息并創(chuàng)建通道對象后,業(yè)務(wù)邏輯實體 根據(jù)所述Web服務(wù)請求消息獲得結(jié)果集合;當(dāng)確定為一次請求多響應(yīng)模式時, 對所述結(jié)果集合進行分包處理得到N個數(shù)據(jù)分包;將所述N個數(shù)據(jù)分包中的 前N-1個數(shù)據(jù)分包通過所述通道對象向響應(yīng)處理鏈Response Handler Chain發(fā) 送,所述前N-1個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求 方;將所述N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包向所述Response Handler Chain 發(fā)送,所述第N個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求 方。
本發(fā)明實施例提供的數(shù)據(jù)傳輸方法,包括截獲請求方發(fā)送的網(wǎng)絡(luò)Web 服務(wù)請求消息并創(chuàng)建通道對象;截獲業(yè)務(wù)邏輯實體返回的結(jié)果集合,所述結(jié) 果集合是由業(yè)務(wù)邏輯實體根據(jù)所述Web服務(wù)請求消息獲得的;當(dāng)確定為一次 請求多響應(yīng)模式時,對結(jié)果集合進行分包處理得到N個數(shù)據(jù)分包;將所述N 個數(shù)據(jù)分包中的前N-1個數(shù)據(jù)分包通過所述通道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送,所述前N-1個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain 發(fā)送至所述請求方;將所述N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包向所述Response Handler Chain發(fā)送,所述第N個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā) 送至所述請求方。
本發(fā)明實施例提供的數(shù)據(jù)傳輸系統(tǒng),包括截取器,用于截獲請求方發(fā)送的網(wǎng)絡(luò)Web服務(wù)請求消息,創(chuàng)建通道對象;業(yè)務(wù)邏輯實體,用于根據(jù)接收 到的Web服務(wù)請求消息獲取結(jié)果集合,當(dāng)確定為一次請求多響應(yīng)模式時,對 所述結(jié)果集合進行分包處理得到N個數(shù)據(jù)分包,將所述N個數(shù)據(jù)分包中的前 N-l個數(shù)據(jù)分包通過所述通道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送, 所述前N-l個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方; 將所述N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包向所述Response Handler Chain發(fā) 送,所述第N個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方。
本發(fā)明實施例提供的數(shù)據(jù)傳輸系統(tǒng),包括截取器,用于截獲請求方發(fā) 送的Web服務(wù)請求消息,創(chuàng)建通道對象,截獲業(yè)務(wù)邏輯實體發(fā)送的結(jié)果集合, 當(dāng)確定為一次請求多響應(yīng)模式時,對所述結(jié)果集合進行分包得到N個數(shù)據(jù)分 包,將所述N個數(shù)據(jù)分包中的前N-1個數(shù)據(jù)分包通過所述通道對象向響應(yīng)處 理鏈Response Handler Chain發(fā)送,所述前N-l個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方;將所述N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包 向所述Response Handler Chain發(fā)送,所述第N個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方;.業(yè)務(wù)邏輯實體,用于根據(jù)接收到的Web服 務(wù)請求消息獲得相應(yīng)的結(jié)果集合,并返回所述結(jié)果集合。
本發(fā)明實施例提供的業(yè)務(wù)邏輯實體,包括獲取單元,用于獲取請求方 發(fā)送的網(wǎng)絡(luò)Web服務(wù)請求消息;業(yè)務(wù)邏輯處理單元,用于根據(jù)所述Web服務(wù) 請求消息獲取結(jié)果集合;第一分包單元,用于確定為一次請求多響應(yīng)模式時, 對所述結(jié)果集合進行分包處理得到N個數(shù)據(jù)分包;第一傳輸單元,用于將所 述N個數(shù)據(jù)分包中的前N-l個數(shù)據(jù)分包通過所述通道對象向響應(yīng)處理鏈 Response Handler Chain發(fā)送,所述前N-l個it據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方;將所述N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包 向所述Response Handler Chain發(fā)送,所述第N個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方。
本發(fā)明實施例提供的截取器,包括截獲單元,用于截獲請求方發(fā)送的 網(wǎng)絡(luò)Web服務(wù)請求消息以及截獲業(yè)務(wù)邏輯實體返回的結(jié)果集合;創(chuàng)建單元, 用于創(chuàng)建通道對象;第二分包單元,用于當(dāng)確定為一次請求多響應(yīng)模式時, 對結(jié)果集合進行分包處理得到N個數(shù)據(jù)分包;第二傳輸單元,用于將所述N
10個數(shù)據(jù)分包中的前N-l個數(shù)據(jù)分包通過所述通道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送,所述前N-l個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain 發(fā)送至所述請求方;將所述N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包向所述Response Handler Chain發(fā)送,所述第N個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā) 送至所述請求方。
從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點 本發(fā)明實施例中,業(yè)務(wù)邏輯實體在獲取到結(jié)果集合之后,可以對結(jié)果集 合進行分包,并直接將得到的數(shù)據(jù)分包發(fā)送至請求方,而無需等待請求方再 次請求后續(xù)結(jié)果,因此業(yè)務(wù)邏輯實體無需保存數(shù)據(jù)傳輸?shù)闹虚g信息,從而減 少了業(yè)務(wù)邏輯實體的開銷,實現(xiàn)了高效的大數(shù)據(jù)量交換的能力。


圖1為本發(fā)明實施例中數(shù)據(jù)傳輸方法一個實施例示意圖; 圖2為本發(fā)明實施例中數(shù)據(jù)傳輸方法另 一 實施例示意圖; 圖3為本發(fā)明實施例中數(shù)據(jù)傳輸方法再一實施例示意圖; 圖4為本發(fā)明實施例中數(shù)據(jù)傳輸系統(tǒng)實施例示意圖; 圖5為本發(fā)明實施例中業(yè)務(wù)邏輯實體實施例示意圖; 圖6為本發(fā)明實施例中截取器實施例示意圖。
具體實施例方式
本發(fā)明實施例提供了 一種數(shù)據(jù)傳輸方法及數(shù)據(jù)傳輸系統(tǒng)以及相關(guān)設(shè)備,
應(yīng)用于Web服務(wù),用于實現(xiàn)高效的大數(shù)據(jù)量交互。
請參閱圖1,本發(fā)明實施例中的數(shù)據(jù)傳輸方法一個實施例包括
101、業(yè)務(wù)邏輯實體獲取請求方發(fā)送的Web服務(wù)請求消息;
本實施例中,請求方向服務(wù)端發(fā)送Web服務(wù)請求消息時,該Web服務(wù)請
求消息會經(jīng)過通訊層面,進入JAVA網(wǎng)絡(luò)服務(wù)應(yīng)用程序接口 ( JAXWS, Java API
for XML Web Services )定義的請求處理鏈(Request Handler Chain )。
在該Web服務(wù)請求消息向服務(wù)端的業(yè)務(wù)邏輯實體發(fā)送的過程中,會被截
取器截獲,截取器會提取當(dāng)前調(diào)用的JAXWS運行上下文。
截取器在截獲到Web服務(wù)請求消息之后,截取器即可創(chuàng)建與當(dāng)前調(diào)用對
應(yīng)的通道對象,并且將獲取到的JAXWS運行上下文存儲于通道對象中,并將通道對象存儲于當(dāng)前調(diào)用的線程局部存儲中。
需要說明的是,本實施例中,業(yè)務(wù)邏輯實體獲取到的Web服務(wù)請求消息 可以從截取器荻取到,也可以從請求方直接獲取到,即截取器在接收到請求 方發(fā)送的Web服務(wù)請求消息之后,可以將該Web服務(wù)請求消息暫存,并進行 相關(guān)的創(chuàng)建隧道的執(zhí)行過程,之后再將該Web服務(wù)請求消息轉(zhuǎn)發(fā)至業(yè)務(wù)邏輯 實體,即業(yè)務(wù)邏輯實體可以從截取器獲取到該Web服務(wù)請求消息,或者該截 取器在接收到請求方發(fā)送的Web服務(wù)請求消息之后,可以直接拷貝 一份Web 服務(wù)請求消息,并根據(jù)該拷貝的Web服務(wù)請求消息進行相關(guān)的創(chuàng)建隧道的執(zhí) 行過程,而對原始的Web服務(wù)請求消息直接采取透傳的方式發(fā)送至業(yè)務(wù)邏輯 實體,則業(yè)務(wù)邏輯實體可以直接從請求方獲取到該Web服務(wù)請求消息。
102、 業(yè)務(wù)邏輯實體根據(jù)Web服務(wù)請求消息獲取結(jié)果集合; 本實施例中,當(dāng)截取器創(chuàng)建了通道對象之后,業(yè)務(wù)邏輯實體可根據(jù)在步
驟101中獲取到的Web服務(wù)請求消息獲取對應(yīng)的結(jié)果集合,即請求方請求的 內(nèi)容,具體的獲取過程為本領(lǐng)域技術(shù)人員的公知常識,此處不作限定。
103、 當(dāng)業(yè)務(wù)邏輯實體確定為一次請求多響應(yīng)模式時,對結(jié)果集合進行分 包處理得到N個數(shù)據(jù)分包;
具體可以是,業(yè)務(wù)邏輯實體根據(jù)所述Web服務(wù)請求消息以及所述結(jié)果集 合確定為一次請求多響應(yīng)模式;
當(dāng)業(yè)務(wù)邏輯實體獲取到結(jié)果集合之后,則可根據(jù)Web服務(wù)請求消息以及 該結(jié)果集合判斷是否為一次請求多次響應(yīng)模式,若是,則可根據(jù)Web服務(wù)請 求消息中的參數(shù)對該結(jié)果集合進行分包處理得到N個數(shù)據(jù)分包,具體分包的 過程將在后續(xù)實施例中進行詳細的描述。
需要說明的,具體可以根據(jù)結(jié)果集合以及Web服務(wù)請求消息中的消息頭 信息或者是消息體信息判斷是否為一次請求多次響應(yīng)模式。
104、 業(yè)務(wù)邏輯實體將前N-l個數(shù)據(jù)分包通過通道對象向響應(yīng)處理鏈 Response Handler Chain發(fā)送,前N-l個數(shù)據(jù)分包經(jīng)過響應(yīng)處理鏈發(fā)送至所述 請求方;
當(dāng)完成了分包操作之后,得到N個數(shù)據(jù)分包,業(yè)務(wù)邏輯實體將其中的前 N-l個數(shù)據(jù)分包發(fā)送至通道對象,再由該通道對象將這N-1個數(shù)據(jù)分包發(fā)送至響應(yīng)處理鏈,最終由該響應(yīng)處理鏈將這N-1個數(shù)據(jù)分包發(fā)送至請求方。
105、業(yè)務(wù)邏輯實體將第N個數(shù)據(jù)分包向響應(yīng)處理鏈發(fā)送,第N個數(shù)據(jù)
分包經(jīng)過響應(yīng)處理鏈發(fā)送至請求方。
當(dāng)完成了前N-1個數(shù)據(jù)分包的發(fā)送之后,業(yè)務(wù)邏輯實體將最后一個數(shù)據(jù) 分包,即第N個數(shù)據(jù)分包,按照正常的返回方式進行發(fā)送,即不通過通道對 象,而是業(yè)務(wù)邏輯實體直接向響應(yīng)處理鏈發(fā)送該第N個數(shù)據(jù)分包,最終由該 響應(yīng)處理鏈將該第N個數(shù)據(jù)分包發(fā)送至請求方。
需要說明的是,N是大于l的正整數(shù)。
可見,本發(fā)明實施例中,業(yè)務(wù)邏輯實體在獲取到結(jié)果集合之后,可以對 結(jié)果集合進行分包,并直接將得到的數(shù)據(jù)分包發(fā)送至請求方,而無需等待請 求方再次請求后續(xù)結(jié)果,因此業(yè)務(wù)邏輯實體無需保存數(shù)據(jù)傳輸?shù)闹虚g信息, 從而減少了業(yè)務(wù)邏輯實體的開銷,實現(xiàn)了高效的大數(shù)據(jù)量交換的能力。
上面從業(yè)務(wù)邏輯實體的角度對本發(fā)明實施例中的數(shù)據(jù)傳輸方法進行了描 述,為便于理解,下面從截取器與業(yè)務(wù)邏輯實體交互的角度對本發(fā)明實施例 中的數(shù)據(jù)傳輸方法進行詳細描述,請參閱圖2,本發(fā)明實施例中的數(shù)據(jù)傳輸方 法另一實施例包括
201、截取器截獲請求方發(fā)送的Web服務(wù)請求消息;
本實施例中,請求方向服務(wù)端發(fā)送Web服務(wù)請求消息時,該Web服務(wù)請 求消息會經(jīng)過通訊層面,進入JAXWS定義的Request Handler Chain。
在該Web服務(wù)請求消息經(jīng)過Request Handler Chain向服務(wù)端的業(yè)務(wù)邏輯 實體發(fā)送的過程中,被截取器截獲,截取器會提取當(dāng)前調(diào)用的JAXWS運行上
過程均為本領(lǐng)域技術(shù)人員的公知常識,此處不作限定。
以SOAP消息作為傳輸?shù)南㈩愋瓦M行說明,可以理解的是,在實際應(yīng) 用中,同樣還可能使用其他的消息類型,具體此處不作限定。
本實施例中的SOAP消息的消息頭(Header)用于實現(xiàn)請求方與服務(wù)端 在協(xié)議層面上的信息交互,該消息頭具體可以包括以下一些內(nèi)容
(1)請求類型(RequestType):用于定義請求方期望的響應(yīng)方式,比如 是迭代響應(yīng)還是一次請求多響應(yīng)方式,或者是一次請求一次響應(yīng);(2) 關(guān)聯(lián)標(biāo)識(CorrelationID):用于實現(xiàn)將請求消息和響應(yīng)消息相互匹配的唯一標(biāo)識符號,由請求方產(chǎn)生,服務(wù)端將在每個響應(yīng)的消息中都要攜帶這個標(biāo)識符號;
(3) 最大數(shù)據(jù)量(Max Number):表示請求方期望的在一個響應(yīng)消息中最多包含的數(shù)據(jù)量;
(4) 消息總數(shù)(Total):服務(wù)端首個返回的響應(yīng)消息攜帶的信息,用于告訴請求方總共將有多少個響應(yīng)消息返回;
(5 )當(dāng)前序號(Current Sequence No):用于表示當(dāng)前響應(yīng)的消息的序號;(6)結(jié)束標(biāo)識(Finished):用于指示當(dāng)前的響應(yīng)消息是最后的一個響應(yīng)
消息,請求響應(yīng)過程結(jié)束。
請求方在發(fā)送的Web服務(wù)請求消息中攜帶有Request Type, CorrelationID
以及Max Number,用于表示請求方所期望的返回方式,關(guān)聯(lián)標(biāo)識以及一次最
多返回的數(shù)據(jù)量。
202、 截取器創(chuàng)建通道對象;
截取器在截獲到Web服務(wù)請求消息之后,截取器即可創(chuàng)建與當(dāng)前調(diào)用對應(yīng)的通道對象,并且將步驟201中獲取到的JAXWS運行上下文存儲于通道對象中,并將通道對象存儲于當(dāng)前調(diào)用的線程局部存儲中。
本實施例中,整個數(shù)據(jù)傳輸?shù)倪^程都是由同一個線程實施的,所以將通道對象存儲于線程局部存儲中可以將JAXWS運行上下文等關(guān)鍵數(shù)據(jù)與當(dāng)前的線程綁定,因此無論在該線程實施數(shù)據(jù)傳輸?shù)娜魏螘r刻都可以隨時從線程局部存儲中獲取到這些關(guān)鍵數(shù)據(jù),從而能夠完成本實施例中后續(xù)的數(shù)據(jù)傳輸。
203、 業(yè)務(wù)邏輯實體根據(jù)Web服務(wù)請求消息獲取結(jié)果集合;本實施例中,業(yè)務(wù)邏輯實體在獲取到請求方發(fā)送的Web服務(wù)請求消息之
后,即可根據(jù)該消息獲取對應(yīng)的結(jié)果集合,即請求方請求的內(nèi)容,具體的獲取過程為本領(lǐng)域技術(shù)人員的公知常識,此處不作限定。
需要說明的是,本實施例中,業(yè)務(wù)邏輯實體獲取Web服務(wù)請求消息的過程同樣可以與前述圖1所示的實施例中描述的方式一樣,此處不再贅述。
204、 業(yè)務(wù)邏輯實體判斷是否為一次請求多響應(yīng)^f莫式,若是,則執(zhí)行步驟206,若否,則執(zhí)行步驟205;本實施例中,當(dāng)業(yè)務(wù)邏輯實體在獲取到結(jié)果集合之后,即可根據(jù)該結(jié)果
集合以及Web服務(wù)請求消息(具體可以是Web服務(wù)請求消息頭信息)判斷是否為一次請求多響應(yīng)模式,具體的判斷過程可以為
業(yè)務(wù)邏輯實體判斷Web服務(wù)請求消息的消息頭信息中的Request Type是否指示為一次請求多響應(yīng)模式,若是,則繼續(xù)判斷結(jié)果集合的數(shù)據(jù)量是否大于Web服務(wù)請求消息中的Max Number,若大于,則確定為一次請求多響應(yīng)模式。
可以理解的是,上述描述的判斷過程僅為一個具體實例,在實際應(yīng)用中,同樣還可以采用其他的判斷過程,例如當(dāng)業(yè)務(wù)邏輯實體確定結(jié)果集合的數(shù)據(jù)量大于Web服務(wù)請求消息中的Max Number時就默認為一次請求多響應(yīng)模式(換言之,即啟動一次請求多響應(yīng)模式),具體更多的確定過程此處不作限定。 205、 執(zhí)行其他處理流程;
若當(dāng)Web服務(wù)請求消息的消息頭信息中的Request Type不是指示一次請求多響應(yīng)模式,或結(jié)果集合的數(shù)據(jù)量小于Web服務(wù)請求消息的消息頭信息中的Max Number,則業(yè)務(wù)邏輯實體確定不為一次請求多響應(yīng)才莫式,此時業(yè)務(wù)邏輯實體可以采用其他的處理流程進行處理,例如進行迭代響應(yīng),或者是一次
請求一次響應(yīng),具體過程為本領(lǐng)域技術(shù)人員的公知常識,此處不作限定。
206、 業(yè)務(wù)邏輯實體根據(jù)Web服務(wù)請求消息中的最大數(shù)據(jù)量參數(shù)對結(jié)果集合進行分包;
當(dāng)業(yè)務(wù)邏輯實體確定為一次請求多響應(yīng)模式時,業(yè)務(wù)邏輯實體根據(jù)Web服務(wù)請求消息的消息頭信息中的Max Number對結(jié)果集合進行分包,具體分包的過程可以采用平均分包,或隨機分包,或其他的分包過程,只要使得每個數(shù)據(jù)分包的數(shù)據(jù)量都小于或等于Max Number即可。
當(dāng)業(yè)務(wù)邏輯實體對結(jié)果集合完成分包之后得到N個數(shù)據(jù)分包,業(yè)務(wù)邏輯實體再將每個數(shù)據(jù)分包都封裝為一個獨立的SOAP消息,即得到N個SOAP消息
第 一個SOAP消息的消息頭中包含有Request Type, CorrelationID, Total以及Current Sequence No,其中,Request Type指示為一次請求多響應(yīng),CorrelationID與Web服務(wù)請求消息中的CorrelationID相對應(yīng)(具體可以為相同),Total表示總共的SOAP消息的數(shù)量(即N ), Current Sequence No表示當(dāng)前的SOAP消息的序號(即為1);
中間的第二個SOAP消息至第N-l個SOAP消息的消息頭中包含有Request Type, CorrelationID以及Current Sequence No,具體含義與第一個SOAP消息的消息頭中的內(nèi)容含義類似;
第N個(即最后一個)SOAP消息的消息頭中包含有Request Type,CorrelationID, Current Sequence No以及Finished,其中,Request Type指示為一次請求多響應(yīng),CorrelationID與Web服務(wù)請求消息中的CorrelationID相對應(yīng)(具體可以為相同),Current Sequence No表示當(dāng)前的SOAP消息的序號(即為N), Finished表示結(jié)果集合的所有數(shù)據(jù)分包都已發(fā)送完畢。
207、 業(yè)務(wù)邏輯實體將前N-1個數(shù)據(jù)分包通過通道對象向響應(yīng)處理鏈發(fā)送,前N-l個數(shù)據(jù)分包經(jīng)過響應(yīng)處理鏈發(fā)送至所述請求方;
當(dāng)業(yè)務(wù)邏輯實體得到N個SOAP消息之后,業(yè)務(wù)邏輯實體可以從當(dāng)前線程的局部存儲中提取出通道對象,將N個SOAP消息中的前N-1個SOAP消息發(fā)送至通道對象,之后該通道對象提取步驟202中加入的JAXWS運行上下文,并從該JAXWS運行上下文的內(nèi)部緩沖中獲取Response Handler Chain的引用,將該N-l個SOAP消息發(fā)送至該Response Handler Chain,并且由該Response Handler Chain將N-l個SOAP消息發(fā)送至請求方。
208、 業(yè)務(wù)邏輯實體將第N個數(shù)據(jù)分包向相同的響應(yīng)處理鏈發(fā)送,第N個數(shù)據(jù)分包經(jīng)過該相同的響應(yīng)處理鏈發(fā)送至請求方。
當(dāng)業(yè)務(wù)邏輯實體發(fā)送了前N-1個SOAP消息之后,最后一個(即第N個)SOAP消息采用正常的返回方式返回,即直接將該第N個SOAP消息發(fā)往Response Handler Chain , 由Response Handler Chain返回至請求方。
需要說明的是,本實施例中,該第N個SOAP消息在到達Response HandlerChain之前會被截取器截獲,此時截取器根據(jù)該第N個SOAP消息的消息頭確定該SOAP消息為結(jié)果集合的最后一個數(shù)據(jù)分包,則截取器執(zhí)行相關(guān)的清理工作,清除當(dāng)前調(diào)用相關(guān)信息,其中至少包括通道對象,還可以進一步包括通道對象對JAXWS運行上下文的引用等。
截取器完成了清理工作之后,可將該第N個SOAP消息發(fā)送至Response
16Handler Chain,由Response Handler Chain將該第N個SOAP消息發(fā)往請求方,從而完成當(dāng)前調(diào)用。
需要說明的是,請求方在接收到SOAP消息之后,可以根據(jù)SOAP消息的消息頭中的CorrelationID確定這些SOAP消息是哪一個請求消息的響應(yīng)消息,并且,請求方還可以根據(jù)SOAP消息的消息頭中的Total以及CurrentSequence No確定是否接收到了全部的SOAP消息,當(dāng)發(fā)現(xiàn)沒有接收到全部的SOAP消息時,還可以根據(jù)Current Sequence No向服務(wù)端請求重發(fā)。
可見,本實施例中,業(yè)務(wù)邏輯實體在獲取到結(jié)果集合之后,可以對結(jié)果進行分包,并直接將得到的數(shù)據(jù)分包發(fā)送至請求方,即可以實現(xiàn)大數(shù)據(jù)量的返回和流控,與現(xiàn)有技術(shù)中的迭代方式的數(shù)據(jù)傳輸過程達到相同的效果,而同時本實施例中無需等待請求方再次請求后續(xù)結(jié)果,因此業(yè)務(wù)邏輯實體無需保存數(shù)據(jù)傳輸?shù)闹虚g信息,從而減少了業(yè)務(wù)邏輯實體的開銷,實現(xiàn)了高效的大數(shù)據(jù)量交互;
其次,本實施例中,由于業(yè)務(wù)邏輯實體發(fā)送最后一個數(shù)據(jù)分包時,截取器會自動清除當(dāng)前調(diào)用相關(guān)信息使得資源可重復(fù)利用,因此無需業(yè)務(wù)邏輯實體專門對資源進行維護,從而進一步減少了業(yè)務(wù)邏輯實體的開銷,實現(xiàn)了高效的大數(shù)據(jù)量交互;
再次,本實施例中,在返回的SOAP消息的消息頭中攜帶有Total以及Current Sequence No,因此請求方可以根據(jù)這些信息確定是否接收到了全部的SOAP消息,當(dāng)發(fā)現(xiàn)沒有接收到全部的SOAP消息時,還可以根據(jù)CurrentSequence No向服務(wù)端請求重發(fā),從而提高了數(shù)據(jù)傳輸?shù)目煽啃浴?br> 上述描述了業(yè)務(wù)邏輯實體對結(jié)果集合進行分包處理的數(shù)據(jù)傳輸過程,可以理解的是,在實際應(yīng)用中,可以不對業(yè)務(wù)邏輯實體的業(yè)務(wù)邏輯進行調(diào)整,而由截取器完成分包處理,請參閱圖3,本發(fā)明實施例中數(shù)據(jù)傳輸方法再一實施例包4舌
301 -303、與圖2所示的實施例中步驟201至203相同,此處不再贅述。304、業(yè)務(wù)邏輯實體發(fā)送結(jié)果集合;
當(dāng)業(yè)務(wù)邏輯實體根據(jù)Web服務(wù)請求消息獲取到了結(jié)果集合之后,即可將該結(jié)果集合發(fā)送至Response Handler Chain。本實施例中,業(yè)務(wù)邏輯實體可以直接按照一次請求一響應(yīng)的方式,無論
結(jié)果集合的數(shù)據(jù)量有多大,都在一個SOAP消息中發(fā)給Response Handler Chain 。
305、 截取器截獲結(jié)果集合,并判斷是否為一次請求多響應(yīng)模式,若是, 則執(zhí)行步驟307,若否,則執(zhí)行步驟306;
本實施例中,當(dāng)業(yè)務(wù)邏輯實體向Response Handler Chain發(fā)送結(jié)果集合時, 截取器會截獲到該結(jié)果集合,并根據(jù)該結(jié)果集合以及在步驟301中截獲的Web 服務(wù)請求消息判斷是否為一次請求多響應(yīng)模式,具體的判斷過程可以與圖2 所示的實施例中業(yè)務(wù)邏輯實體的判斷過程類似,此處不再贅述。
306、 截取器執(zhí)行其他處理流程;
若當(dāng)Web服務(wù)請求消息的消息頭信息中的Request Type不是指示一次請 求多響應(yīng)模式,或結(jié)果集合的數(shù)據(jù)量小于或等于Web服務(wù)請求消息的消息頭 信息中的Max Number,則截取器確定不是一次請求多響應(yīng)模式,此時截取器 可以直接將業(yè)務(wù)邏輯實體發(fā)送的包含結(jié)果集合的SOAP消息轉(zhuǎn)發(fā)至Response Handler Chain,并且由Response Handler Chain將該SOAP消息發(fā)送至請求方。
307、 截取器根據(jù)Web服務(wù)請求消息中的最大數(shù)據(jù)量參數(shù)對結(jié)果集合進行 分包;
當(dāng)截取器確定為一次請求多響應(yīng)模式時,截取器根據(jù)Web服務(wù)請求消息 的消息頭信息中的Max Number對結(jié)果集合進行分包,具體分包的過程與圖2 所示實施例中業(yè)務(wù)邏輯實體分包的過程類似,此處不再贅述。
308、 截取器將前N-l個數(shù)據(jù)分包通過通道對象向響應(yīng)處理鏈發(fā)送,前 N-1個數(shù)據(jù)分包經(jīng)過該響應(yīng)處理鏈發(fā)送至所述請求方;
當(dāng)截取器得到N個數(shù)據(jù)分包之后,即可將該N個數(shù)據(jù)分包中的前N-1個 數(shù)據(jù)分包通過通道對象向Response Handler Chain發(fā)送,該前N-l個數(shù)據(jù)分包 經(jīng)過Response Handler Chain發(fā)送至請求方,具體的發(fā)送過程與圖2所示實施 例中業(yè)務(wù)邏輯實體發(fā)送的過程類似,此處不再贅述。
309、 截取器將該N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包向相同的響應(yīng)處理 鏈發(fā)送,第N個數(shù)據(jù)分包經(jīng)過該響應(yīng)處理鏈發(fā)送至請求方。
當(dāng)截取器開始向Response Handler Chain發(fā)送第N個數(shù)據(jù)分包時,截取器首先清除當(dāng)前調(diào)用相關(guān)信息,具體的信息內(nèi)容以及清除過程與圖2所示實施 例中清除的過程類似,此處不再贅述。
可見,本實施例中,業(yè)務(wù)邏輯實體在獲取到結(jié)果集合之后,截取器可以 對結(jié)果進行分包,并直接將得到的數(shù)據(jù)分包發(fā)送至請求方,即可以實現(xiàn)大數(shù) 據(jù)量的返回和流控,與現(xiàn)有技術(shù)中的迭代方式的數(shù)據(jù)傳輸過程達到相同的效 果,而同時本實施例中無需等待請求方再次請求后續(xù)結(jié)果,因此業(yè)務(wù)邏輯實 體無需保存數(shù)據(jù)傳輸?shù)闹虚g信息,從而減少了業(yè)務(wù)邏輯實體的開銷,實現(xiàn)了
高效的大數(shù)據(jù)量交互;
其次,本實施例中,由于截取器發(fā)送最后一個數(shù)據(jù)分包時,截取器會自 動清除當(dāng)前調(diào)用相關(guān)信息使得資源可重復(fù)利用,因此無需業(yè)務(wù)邏輯實體專門 對資源進行維護,從而進一步減少了業(yè)務(wù)邏輯實體的開銷,實現(xiàn)了高效的大
數(shù)據(jù)量交互;
再次,本實施例中,業(yè)務(wù)邏輯實體可以完全按照一次請求一響應(yīng)的方式 進行業(yè)務(wù)邏輯處理,而由截取器進行分包處理,因此能夠進一步降低業(yè)務(wù)邏 輯實體的開銷,實現(xiàn)了高效的大數(shù)據(jù)量交互。
下面介紹本發(fā)明實施例中的數(shù)據(jù)傳輸系統(tǒng),請參閱圖4,本發(fā)明實施例中 數(shù)據(jù)傳輸系統(tǒng)一個實施例包括
截取器401,用于截獲請求方發(fā)送的網(wǎng)絡(luò)Web服務(wù)請求消息,創(chuàng)建通道 對象;
業(yè)務(wù)邏輯實體402,用于根據(jù)接收到的Web服務(wù)請求消息獲取結(jié)果集合, 當(dāng)確定為一次請求多響應(yīng)模式(具體可以是根據(jù)Web服務(wù)請求消息以及結(jié)果 集合確定為一次請求多響應(yīng)模式)時,對結(jié)果集合進行分包處理得到N個數(shù) 據(jù)分包,將N個數(shù)據(jù)分包中的前N-l個數(shù)據(jù)分包通過通道對象向響應(yīng)處理鏈 Response Handler Chain發(fā)送,該前N-l個凄丈4居分包經(jīng)過Response Handler Chain發(fā)送至請求方,將N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包向Response Handler Chain發(fā)送,第N個數(shù)據(jù)分包經(jīng)過Response Handler Chain發(fā)送至請求方。
本實施例中的截取器401還用于截獲第N個數(shù)據(jù)分包,并在截獲到后, 清除當(dāng)前調(diào)用相關(guān)信息,所述當(dāng)前調(diào)用相關(guān)信息中至少包含通道對象,將所 述第N個數(shù)據(jù)分包發(fā)送至所述Response Handler Chain。需要說明的是,截取器401具體可以根據(jù)該第N個數(shù)據(jù)分包的消息頭來 判斷該數(shù)據(jù)分包為結(jié)果集合的最后一個數(shù)據(jù)分包,應(yīng)當(dāng)理解的是,也可以不
用判斷;所述當(dāng)前調(diào)用相關(guān)信息還可以進一步包括通道對象對JAXWS運行上 下文的引用等。
為便于理解,下面以 一具體應(yīng)用場景對本實施例中的數(shù)據(jù)傳輸系統(tǒng)進行 描述
本實施例中,請求方向服務(wù)端發(fā)送Web服務(wù)請求消息時,該Web服務(wù)請 求消息會經(jīng)過通訊層面,進入JAXWS定義的Request Handler Chain。
在該Web服務(wù)請求消息經(jīng)過Request Handler Chain向服務(wù)端的業(yè)務(wù)邏輯 實體402發(fā)送的過程中,會被截取器401截獲,截取器401會提取當(dāng)前調(diào)用 的JAXWS運行上下文,具體的JAXWS運行上下文以及提取當(dāng)前調(diào)用的
截取器401在截獲到Web服務(wù)請求消息之后,截取器401可創(chuàng)建與當(dāng)前 調(diào)用對應(yīng)的通道對象,并且將獲取到的JAXWS運行上下文存儲于通道對象 中,并將通道對象存儲于當(dāng)前調(diào)用的線程局部存儲中。
業(yè)務(wù)邏輯實體402在獲取到請求方發(fā)送的Web服務(wù)請求消息之后,即可 根據(jù)該消息獲取對應(yīng)的結(jié)果集合,即請求方請求的內(nèi)容,具體的獲取過程為 本領(lǐng)域技術(shù)人員的公知常識,此處不作限定,本實施例中,業(yè)務(wù)邏輯實體402 獲取Web服務(wù)請求消息的過程與前述圖1以及圖2所示的實施例中描述的獲 取Web服務(wù)請求消息的過程相同,此處不再贅述。
當(dāng)業(yè)務(wù)邏輯實體402在獲取到結(jié)果集合之后,即可根據(jù)該結(jié)果集合以及 Web服務(wù)請求消息的消息頭信息判斷是否為一次請求多響應(yīng)模式,具體的判 斷過程與前述圖2所示的實施例中描述的判斷過程相同,此處不再贅述。
當(dāng)業(yè)務(wù)邏輯實體402確定為一次^清求多響應(yīng)才莫式時,業(yè)務(wù)邏輯實體402 根據(jù)Web服務(wù)請求消息的消息頭信息中的Max Number對結(jié)果集合進行分包, 具體分包的過程可以采用平均分包,或隨機分包,或其他的分包過程,只要 使得每個數(shù)據(jù)分包的數(shù)據(jù)量都小于或等于Max Number即可。
當(dāng)業(yè)務(wù)邏輯實體402對結(jié)果集合完成分包之后得到N個數(shù)據(jù)分包,業(yè)務(wù) 邏輯實體402再將每個數(shù)據(jù)分包都封裝為一個獨立的SOAP消息,即得到N個SOAP消息。
當(dāng)業(yè)務(wù)邏輯實體402得到N個SOAP消息之后,業(yè)務(wù)邏輯實體402可以 從當(dāng)前線程的局部存儲中提取出通道對象,向該通道對象發(fā)送N個SOAP消 息中的前N-l個SOAP消息,之后通道對象再提取JAXWS運行上下文,并 從該JAXWS運行上下文的內(nèi)部緩沖中獲取Response Handler Chain的引用, 將N個SOAP消息中的前N-l個SOAP消息發(fā)送至該Response Handler Chain, 并且由該Response Handler Chain將N-l個SOAP消息發(fā)送至請求方。
當(dāng)業(yè)務(wù)邏輯實體發(fā)送了前N-1個SOAP消息之后,最后一個(即第N個) SOAP消息采用正常的返回方式返回,即直接將該第N個SOAP消息向 Response Handler Chain發(fā)送,由Response Handler Chain返回至請求方。
需要說明的是,本實施例中,該第N個SOAP消息在到達Response Handler Chain之前會被截取器401截獲,此時截取器401根據(jù)該第N個SOAP消息 的消息頭確定該SOAP消息為結(jié)果集合的最后一個數(shù)據(jù)分包,則截取器401 執(zhí)行相關(guān)的清理工作,清除當(dāng)前調(diào)用相關(guān)信息,其中至少包括通道對象,還 可以進一 步包括通道對象對JAXWS運行上下文的引用等。
需要說明的是,本實施例中的截取器401同樣可以不對接收到的SOAP 消息進行判斷,由于只有第N個SOAP消息才會經(jīng)過截取器,因此,本實施 例中可以設(shè)置截取器一旦接收到SOAP消息即執(zhí)行相關(guān)的清理工作。
截取器401完成了清理工作之后,可將該第N個SOAP消息發(fā)送至 Response Handler Chain,由Response Handler Chain將該第N個SOAP消息發(fā) 往請求方,從而完成當(dāng)前調(diào)用。
可見,本實施例中,業(yè)務(wù)邏輯實體402在獲取到結(jié)果集合之后,可以對 結(jié)果進行分包,并直接將得到的數(shù)據(jù)分包發(fā)送至請求方,即可以實現(xiàn)大數(shù)據(jù) 量的返回和流控,與現(xiàn)有技術(shù)中的迭代方式的數(shù)據(jù)傳輸過程達到相同的效果, 而同時本實施例中無需等待請求方再次請求后續(xù)結(jié)果,因此業(yè)務(wù)邏輯實體402 無需保存數(shù)據(jù)傳輸?shù)闹虚g信息,從而減少了業(yè)務(wù)邏輯實體402的開銷,實現(xiàn) 了高效的大數(shù)據(jù)量交互;
其次,本實施例中,由于業(yè)務(wù)邏輯實體402發(fā)送最后一個數(shù)據(jù)分包時, 截取器401會自動清除當(dāng)前調(diào)用相關(guān)信息使得資源可重復(fù)利用,因此無需業(yè)務(wù)邏輯實體402專門對資源進行維護,從而進一步減少了業(yè)務(wù)邏輯實體的開 銷,實現(xiàn)了高效的大數(shù)據(jù)量交互。
下面介紹本發(fā)明實施例中的另一種數(shù)據(jù)傳輸系統(tǒng),同樣請參閱圖4,本發(fā)
明實施例中數(shù)據(jù)傳輸系統(tǒng)另 一實施例包括
截取器401,用于截獲請求方發(fā)送的Web服務(wù)請求消息,創(chuàng)建通道對象, 截獲業(yè)務(wù)邏輯實體402發(fā)送的結(jié)果集合,當(dāng)確定為一次請求多響應(yīng)模式(具 體可以是根據(jù)Web服務(wù)請求消息以及結(jié)果集合確定為 一次請求多響應(yīng)模式) 時,對結(jié)果集合進行分包得到N個數(shù)據(jù)分包,將N個數(shù)據(jù)分包中的前N-1個 數(shù)據(jù)分包通過通道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送,該前N-l 個數(shù)據(jù)分包經(jīng)過Response Handler Chain發(fā)送至請求方,將N個數(shù)據(jù)分包中的 第N個數(shù)據(jù)分包向Response Handler Chain發(fā)送,第N個數(shù)據(jù)分包經(jīng)過 Response Handler Chain發(fā)送至請求方;
業(yè)務(wù)邏輯實體402,用于根據(jù)接收到的Web服務(wù)請求消息獲得相應(yīng)的結(jié) 果集合,并返回結(jié)果集合。
本實施例中的截取器401還用于在將N個數(shù)據(jù)分包中的前N-l個數(shù)據(jù)分 包通過通道對象向Response Handler Chain發(fā)送之后清除當(dāng)前調(diào)用相關(guān)信息, 當(dāng)前調(diào)用相關(guān)信息中至少包含通道對象。
為便于理解,下面以 一具體應(yīng)用場景對本實施例中的數(shù)據(jù)傳輸系統(tǒng)進行 描述
本實施例中,請求方向服務(wù)端發(fā)送Web服務(wù)請求消息時,該Web服務(wù)請 求消息會經(jīng)過通訊層面,進入JAXWS定義的Request Handler Chain。
在該Web服務(wù)請求消息經(jīng)過R叫uest Handler Chain向服務(wù)端的業(yè)務(wù)邏輯 實體402發(fā)送的過程中,會被截取器401截獲,截取器401會提取當(dāng)前調(diào)用 的JAXWS運行上下文,具體的JAXWS運行上下文以及提取當(dāng)前調(diào)用的 JAXWS運行上下文的過程均為本領(lǐng)域技術(shù)人員的/>知常識,此處不作限定。
截取器401在截獲到Web服務(wù)請求消息之后,截取器401即可創(chuàng)建與當(dāng) 前調(diào)用對應(yīng)的通道對象,并且將獲取到的JAXWS運行上下文存儲于通道對象 中,并將通道對象存儲于當(dāng)前調(diào)用的線程局部存儲中。
業(yè)務(wù)邏輯實體402在獲取到請求方發(fā)送的Web服務(wù)請求消息之后,即可
22根據(jù)該消息獲取對應(yīng)的結(jié)果集合,即請求方請求的內(nèi)容,具體的獲取過程為 本領(lǐng)域技術(shù)人員的公知常識,此處不作限定。當(dāng)業(yè)務(wù)邏輯實體402根據(jù)Web服務(wù)請求消息獲取到了結(jié)果集合之后,可 將該結(jié)果集合向Response Handler Chain發(fā)送。本實施例中,業(yè)務(wù)邏輯實體402可以直接按照一次請求一響應(yīng)的方式, 無論結(jié)果集合的數(shù)據(jù)量有多大,都在一個SOAP消息中發(fā)給Response Handler Chain 。當(dāng)業(yè)務(wù)邏輯實體402向Response Handler Chain發(fā)送結(jié)果集合時,截取器 401會截獲到該結(jié)果集合,并根據(jù)該結(jié)果集合以及截獲的Web服務(wù)請求消息 判斷是否為一次請求多響應(yīng)模式,具體的判斷過程可以與圖3所示的實施例 中的判斷過程類似,此處不再贅述。當(dāng)截取器401確定為一次請求多響應(yīng)模式時,截取器401根據(jù)Web服務(wù) 請求消息的消息頭信息中的Max Number對結(jié)果集合進行分包,具體分包的過 程與圖3所示實施例中分包的過程類似,此處不再贅述。當(dāng)截取器401得到N個數(shù)據(jù)分包之后,即可將該N個數(shù)據(jù)分包中的前 N-l個數(shù)據(jù)分包通過通道對象向Response Handler Chain發(fā)送,具體的發(fā)送過 程與圖3所示實施例中發(fā)送的過程類似,此處不再贅述。當(dāng)截取器401開始向Response Handler Chain發(fā)送第N個數(shù)據(jù)分包時,截 取器首先清除當(dāng)前調(diào)用相關(guān)信息,具體的信息內(nèi)容以及清除過程與圖3所示 實施例中清除的過程類似,此處不再贅述??梢?,本實施例中,業(yè)務(wù)邏輯實體402在獲取到結(jié)果集合之后,截取器 401可以對結(jié)果進行分包,并直接將得到的數(shù)據(jù)分包發(fā)送至請求方,即可以實 現(xiàn)大數(shù)據(jù)量的返回和流控,與現(xiàn)有技術(shù)中的迭代方式的數(shù)據(jù)傳輸過程達到相 同的效果,而同時本實施例中無需等待請求方再次請求后續(xù)結(jié)果,因此業(yè)務(wù) 邏輯實體402無需保存數(shù)據(jù)傳輸?shù)闹虚g信息,從而減少了業(yè)務(wù)邏輯實體402 的開銷,實現(xiàn)了高效的大凄t據(jù)量交互;其次,本實施例中,由于截取器401發(fā)送最后一個數(shù)據(jù)分包時,截取器 401會自動清除當(dāng)前調(diào)用相關(guān)信息使得資源可重復(fù)利用,因此無需業(yè)務(wù)邏輯實 體402專門對資源進行維護,從而進一步減少了業(yè)務(wù)邏輯實體402的開銷,23實現(xiàn)了高效的大數(shù)據(jù)量交互;再次,本實施例中,業(yè)務(wù)邏輯實體402可以完全按照一次請求一響應(yīng)的 方式進行業(yè)務(wù)邏輯處理,而由截取器401進行分包處理,因此能夠進一步降 低業(yè)務(wù)邏輯實體的開銷,實現(xiàn)了高效的大數(shù)據(jù)量交互。需要說明的是,上述實施例中描述的數(shù)據(jù)傳輸系統(tǒng)可以部署于單機中, 也可以將數(shù)據(jù)傳輸系統(tǒng)中的不同單元部署在不同的設(shè)備中,具體部署方式此 處不作限定。下面介紹本發(fā)明實施例中的一種業(yè)務(wù)邏輯實體實施例,請參閱圖5,本發(fā)明實施例中的業(yè)務(wù)邏輯實體包括獲取單元501 ,用于獲取請求方發(fā)送的網(wǎng)絡(luò)Web服務(wù)請求消息; 本實施例中,獲取單元501可以從截取器獲取Web服務(wù)請求消息,也可以從請求方獲取Web服務(wù)請求消息,具體的獲取過程與前述圖1以及圖2所示的實施例中描述的獲取過程相同,此處不再贅述。業(yè)務(wù)邏輯處理單元502,用于根據(jù)Web服務(wù)請求消息獲取結(jié)果集合; 第一分包單元503,用于確定為一次請求多響應(yīng)模式(具體可以是根據(jù)Web服務(wù)請求消息以及結(jié)果集合確定為一次請求多響應(yīng)模式)時,對結(jié)果集合進行分包處理得到N個數(shù)據(jù)分包;第一傳輸單元504,用于將N個數(shù)據(jù)分包中的前N-l個數(shù)據(jù)分包通過通道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送,前N-l個數(shù)據(jù)分包經(jīng)過Response Handler Chain發(fā)送至請求方,將N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包向所述Response Handler Chain發(fā)送,第N個數(shù)據(jù)分包經(jīng)過Response HandlerChain發(fā)送至請求方。在一種實現(xiàn)下,本實施例中的第一分包單元503包括第一判斷單元5031,用于判斷是否為一次請求多響應(yīng)模式(具體可以是根據(jù)Web服務(wù)請求消息以及結(jié)果集合確定為一次請求多響應(yīng)模式);第一執(zhí)行單元5032,用于當(dāng)確定為一次請求多響應(yīng)模式時,根據(jù)Web服務(wù)請求消息中的最大數(shù)據(jù)量參數(shù)對結(jié)果集合進行分包處理得到N個數(shù)據(jù)分包;第一封裝單元5033,用于將N個數(shù)據(jù)分包中的每一個數(shù)據(jù)分包都封裝為獨立的SOAP消息。為便于理解,下面以 一具體應(yīng)用場景對本實施例中的業(yè)務(wù)邏輯實體實施例進行描述本實施例中,請求方向服務(wù)端發(fā)送Web服務(wù)請求消息時,該Web服務(wù)請 求消息會經(jīng)過通訊層面,進入JAXWS定義的Request Handler Chain。獲取單元501可以從請求方直接接收到Web服務(wù)請求消息,或者從截取 器獲取到請求方發(fā)送的Web服務(wù)請求消息,在此之前,截取器會首先截獲請 求方發(fā)送的Web服務(wù)請求消息并創(chuàng)建通道對象,具體的創(chuàng)建過程與前述圖2 所示的實施例中的創(chuàng)建方式相同。當(dāng)截取器創(chuàng)建了通道對象之后,業(yè)務(wù)邏輯處理單元502可根據(jù)獲取到的 Web服務(wù)請求消息獲取對應(yīng)的結(jié)果集合,即請求方請求的內(nèi)容,具體的獲取 過程為本領(lǐng)域技術(shù)人員的公知常識,此處不作限定。當(dāng)業(yè)務(wù)邏輯處理單元502獲取到結(jié)果集合之后,則第一判斷單元5031可 根據(jù)Web服務(wù)請求消息以及該結(jié)果集合判斷是否為一次請求多次響應(yīng)模式, 若是,則第一執(zhí)行單元5032可根據(jù)Web服務(wù)請求消息中的參數(shù)對該結(jié)果集合 進行分包處理得到N個數(shù)據(jù)分包,之后第一封裝單元5033將N個數(shù)據(jù)分包 中的每一個數(shù)據(jù)分包都封裝為獨立的SOAP消息。當(dāng)完成了分包操作之后,得到N個數(shù)據(jù)分包,第一傳輸單元504將其中 的前N-1個數(shù)據(jù)分包發(fā)送至通道對象,再由該通道對象將這N-1個數(shù)據(jù)分包 發(fā)送至響應(yīng)處理鏈,最終由該響應(yīng)處理鏈將這N-1個數(shù)據(jù)分包發(fā)送至請求方。當(dāng)?shù)谝粋鬏攩卧?04完成了前N-l個數(shù)據(jù)分包的發(fā)送之后,第一傳輸單 元504將最后一個數(shù)據(jù)分包,即第N個數(shù)據(jù)分包,按照正常的返回方式進行 發(fā)送,即不通過通道對象,而是直接向響應(yīng)處理鏈發(fā)送該第N個數(shù)據(jù)分包, 最終由該響應(yīng)處理鏈將該第N個數(shù)據(jù)分包發(fā)送至請求方。可見,本發(fā)明實施例中,第一分包單元503在獲取到結(jié)果集合之后,可 以對結(jié)果集合進行分包,第一傳輸單元504直接將得到的數(shù)據(jù)分包發(fā)送至請 求方,而無需等待請求方再次請求后續(xù)結(jié)果,因此業(yè)務(wù)邏輯實體無需保存數(shù) 據(jù)傳輸?shù)闹虚g信息,從而減少了業(yè)務(wù)邏輯實體的開銷,實現(xiàn)了高效的大數(shù)據(jù) 量交換的能力。下面介紹本發(fā)明實施例中的一種截取器實施例,請參閱圖6,本發(fā)明實施 例中的截取器實施例包括截獲單元601,用于截獲請求方發(fā)送的網(wǎng)絡(luò)Web服務(wù)請求消息以及截獲 業(yè)務(wù)邏輯實體返回的結(jié)果集合;創(chuàng)建單元602,用于創(chuàng)建通道對象;第二分包單元603,用于當(dāng)確定為 一次請求多響應(yīng)模式(具體可以是根據(jù) Web服務(wù)請求消息以及結(jié)果集合確定為一次請求多響應(yīng)模式)時,對結(jié)果集 合進行分包處理得到N個數(shù)據(jù)分包;第二傳輸單元604,用于將N個數(shù)據(jù)分包中的前N-l個數(shù)據(jù)分包通過通 道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送,前N-l個數(shù)據(jù)分包經(jīng)過 Response Handler Chain發(fā)送至請求方,將N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包 向Response Handler Chain發(fā)送,第N個婆丈據(jù)分包經(jīng)過Response Handler Chain 發(fā)送至請求方。在一種實現(xiàn)下,本實施例中的第二分包單元603可以包括 第二判斷單元6031,用于根據(jù)Web服務(wù)請求消息以及結(jié)果集合判斷是否為一次請求多響應(yīng)模式;第二執(zhí)行單元6032,用于當(dāng)確定為一次請求多響應(yīng)模式時,根據(jù)Web服務(wù)請求消息中的最大數(shù)據(jù)量參數(shù)對結(jié)果集合進行分包處理得到N個數(shù)據(jù)分包;第二封裝單元6033,用于將N個數(shù)據(jù)分包中的每一個數(shù)據(jù)分包都封裝為 獨立的SOAP消息。在一種實現(xiàn)下,本實施例中的截取器還可以進一步包括清除單元605,用于在將N個數(shù)據(jù)分包中的前N-l個數(shù)據(jù)分包通過通道 對象向Response Handler Chain發(fā)送之后,清除當(dāng)前調(diào)用相關(guān)信息,當(dāng)前調(diào)用 相關(guān)信息中至少包含通道對象。為便于理解,下面以 一具體應(yīng)用場景對本實施例中的截取器實施例進行 描述本實施例中,請求方向服務(wù)端發(fā)送Web服務(wù)請求消息時,該Web服務(wù)請 求消息會經(jīng)過通訊層面,進入JAXWS定義的Request Handler Chain。在該Web服務(wù)請求消息經(jīng)過Request Handler Chain向服務(wù)端的業(yè)務(wù)邏輯 實體發(fā)送的過程中,會被截獲單元601截獲,創(chuàng)建單元602會提取當(dāng)前調(diào)用 的JAXWS運行上下文,創(chuàng)建與當(dāng)前調(diào)用對應(yīng)的通道對象,并且將獲取到的 JAXWS運行上下文存儲于通道對象中,并將通道對象存儲于當(dāng)前調(diào)用的線程 局部存儲中。
當(dāng)業(yè)務(wù)邏輯實體向Response Handler Chain發(fā)送結(jié)果集合時,截獲單元601 會截獲到該結(jié)果集合,第二判斷單元6031根據(jù)該結(jié)果集合以及在之前截獲的 Web服務(wù)請求消息判斷是否為一次請求多響應(yīng)模式,具體的判斷過程可以與 圖3所示的實施例中的判斷過程類似,此處不再贅述。
當(dāng)?shù)诙袛鄦卧?031確定為一次請求多響應(yīng)模式時,第二執(zhí)行單元6032 根據(jù)Web服務(wù)請求消息的消息頭信息中的Max Number對結(jié)果集合進行分包, 且由第二封裝單元6033將N個數(shù)據(jù)分包中的每一個數(shù)據(jù)分包都封裝為獨立的 SOAP消息,具體分包的過程與圖3所示實施例中分包的過程類似,此處不再 贅述。
當(dāng)?shù)玫絅個數(shù)據(jù)分包之后,第二傳輸單元604即可將該N個數(shù)據(jù)分包中 的前N-1個數(shù)據(jù)分包通過通道對象向Response Handler Chain發(fā)送,前N-1個 數(shù)據(jù)分包經(jīng)過Response Handler Chain發(fā)送至請求方,具體的發(fā)送過程與圖3 所示實施例中發(fā)送的過程類似,此處不再贅述。
當(dāng)?shù)诙鬏攩卧?04開始向Response Handler Chain發(fā)送第N個數(shù)據(jù)分包 時,清除單元605首先清除當(dāng)前調(diào)用相關(guān)信息,具體的信息內(nèi)容以及清除過 程與圖3所示實施例中清除的過程類似,此處不再贅述。
可見,本實施例中,截獲單元601在獲取到結(jié)果集合之后,第二分包單 元603可以對結(jié)果進行分包,并直接將得到的數(shù)據(jù)分包發(fā)送至請求方,即可 以實現(xiàn)大數(shù)據(jù)量的返回和流控,與現(xiàn)有技術(shù)中的迭代方式的數(shù)據(jù)傳輸過程達 到相同的效果,而同時本實施例中無需等待請求方再次請求后續(xù)結(jié)果,因此 業(yè)務(wù)邏輯實體無需保存數(shù)據(jù)傳輸?shù)闹虚g信息,從而減少了業(yè)務(wù)邏輯實體402 的開銷,實現(xiàn)了高效的大數(shù)據(jù)量交互;
其次,本實施例中,由于第二傳輸單元604發(fā)送最后一個數(shù)據(jù)分包時, 清除單元605會自動清除當(dāng)前調(diào)用相關(guān)信息使得資源可重復(fù)利用,因此無需業(yè)務(wù)邏輯實體專門對資源進行維護,從而進一步減少了業(yè)務(wù)邏輯實體的開銷, 實現(xiàn)了高效的大數(shù)據(jù)量交互;
再次,本實施例中,業(yè)務(wù)邏輯實體可以完全按照一次請求一響應(yīng)的方式
進行業(yè)務(wù)邏輯處理,而由第二分包單元603進行分包處理,因此能夠進一步 降低業(yè)務(wù)邏輯實體的開銷,實現(xiàn)了高效的大數(shù)據(jù)量交互。
是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機 可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上對本發(fā)明所提供的 一種數(shù)據(jù)傳輸方法及數(shù)據(jù)傳輸系統(tǒng)以及相關(guān)設(shè)備 進行了詳細介紹,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實施例的思想, 在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不 應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1、一種數(shù)據(jù)傳輸方法,應(yīng)用于網(wǎng)絡(luò)Web服務(wù),其特征在于,包括當(dāng)截取器截獲請求方發(fā)送的Web服務(wù)請求消息并創(chuàng)建通道對象后,業(yè)務(wù)邏輯實體根據(jù)所述Web服務(wù)請求消息獲得結(jié)果集合;當(dāng)確定為一次請求多響應(yīng)模式時,對所述結(jié)果集合進行分包處理得到N個數(shù)據(jù)分包;將所述N個數(shù)據(jù)分包中的前N-1個數(shù)據(jù)分包通過所述通道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送,所述前N-1個數(shù)據(jù)分包經(jīng)過所述ResponseHandler Chain發(fā)送至所述請求方;將所述N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包向所述Response Handler Chain發(fā)送,所述第N個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方。
2、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,當(dāng)所述第N個數(shù) 據(jù)分包經(jīng)過截取器時,使得所述截取器清除當(dāng)前調(diào)用相關(guān)信息,所述當(dāng)前調(diào) 用相關(guān)信息中至少包含所述通道對象。
3、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,所述對結(jié)果集合 進行分包處理得到N個數(shù)據(jù)分包包括根據(jù)所述Web服務(wù)請求消息中的最大數(shù)據(jù)量參數(shù)對所述結(jié)果集合進行分 包處理得到N個數(shù)據(jù)分包;將所述N個數(shù)據(jù)分包中的每一個數(shù)據(jù)分包都封裝為簡單對象訪問協(xié)議 SOAP消息。
4、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,所述確定為一次 請求多響應(yīng)模式包括當(dāng)所述Web服務(wù)請求消息中的請求類型參數(shù)表示為一次請求多響應(yīng)模 式,且所述結(jié)果集合的數(shù)據(jù)量大于所述Web服務(wù)請求消息中的最大數(shù)據(jù)量參 數(shù)時,確定為一次請求多響應(yīng)才莫式。
5、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,所述創(chuàng)建通道對 象包括截取器在截獲到請求方發(fā)送的Web服務(wù)請求消息之后,創(chuàng)建與當(dāng)前調(diào)用 對應(yīng)的通道對象;提取當(dāng)前調(diào)用的網(wǎng)絡(luò)Web服務(wù)應(yīng)用程序接口運行上下文; 將所述上下文存儲于所述通道對象中,并將所述通道對象存儲于當(dāng)前調(diào) 用的線程局部存儲中。
6、 根據(jù)權(quán)利要求1至5中任一項所述的數(shù)據(jù)傳輸方法,其特征在于,所 述將N個數(shù)據(jù)分包中的前N-1個數(shù)據(jù)分包通過所述通道對象向Response Handler Chain發(fā)送,所述前N-1個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain 發(fā)送至所述請求方包括從當(dāng)前調(diào)用的線程局部存儲中提取所述通道對象;將所述前N-1個數(shù)據(jù)分包發(fā)送至所述通道對象,所述前N-1個數(shù)據(jù)分包 的消息頭中的關(guān)聯(lián)標(biāo)識與所述Web服務(wù)請求消息的消息頭中的關(guān)聯(lián)標(biāo)識相對 應(yīng);由所述通道對象將所述前N-1個數(shù)據(jù)分包發(fā)送至內(nèi)部緩沖中的Response Handler Chain,所述前N-1個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至請求方。
7、 根據(jù)權(quán)利要求2所述的數(shù)據(jù)傳輸方法,其特征在于,所述將N個數(shù)據(jù) 分包中的第N個數(shù)據(jù)分包向所述Response Handler Chain發(fā)送,所述第N個數(shù) 據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方包括向所述Response Handler Chain發(fā)送所述第N個數(shù)據(jù)分包,使得截取器截 獲到所述第N個數(shù)據(jù)分包后,清除當(dāng)前調(diào)用相關(guān)信息,所述當(dāng)前調(diào)用相關(guān)信 息中至少包含所述通道對象;由所述截取器將所述第N個數(shù)據(jù)分包發(fā)送至所述Response Handler Chain,所述第N個數(shù)據(jù)分包經(jīng)由所述Response Handler Chain發(fā)送至請求方。
8、 根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,所述N個數(shù)據(jù)分 包中第一個數(shù)據(jù)分包的頭信息中包含請求類型,關(guān)聯(lián)標(biāo)識,總數(shù)以及當(dāng)前序 號,其中所述請求類型指示為一次請求多響應(yīng)方式,所述關(guān)聯(lián)標(biāo)識與所述 Web服務(wù)請求消息中的關(guān)聯(lián)標(biāo)識相對應(yīng),所述總數(shù)指示數(shù)據(jù)分包的數(shù)目,所 述當(dāng)前序號指示當(dāng)前的數(shù)據(jù)分包的序號;所述N個數(shù)據(jù)分包中第二個至第N-1個數(shù)據(jù)分包的頭信息中包含請求類 型,關(guān)聯(lián)標(biāo)識以及當(dāng)前序號,其中所述請求類型指示為一次請求多響應(yīng)方式,所述關(guān)聯(lián)標(biāo)識與所述Web服務(wù)請求消息中的關(guān)聯(lián)標(biāo)識相對應(yīng),所述當(dāng)前 序號指示當(dāng)前的數(shù)據(jù)分包的序號;所述N個數(shù)據(jù)分包中第N個數(shù)據(jù)分包的頭信息中包含請求類型,關(guān)聯(lián)標(biāo) 識,當(dāng)前序號以及結(jié)束標(biāo)識,其中所述請求類型指示為一次請求多響應(yīng)方 式,所述關(guān)聯(lián)標(biāo)識與所述Web服務(wù)請求消息中的關(guān)聯(lián)標(biāo)識相對應(yīng),所述當(dāng)前 序號指示當(dāng)前的數(shù)據(jù)分包的序號,所述結(jié)束標(biāo)識指示數(shù)據(jù)分包發(fā)送完畢。
9、 一種數(shù)據(jù)傳輸方法,其特征在于,包括 截獲請求方發(fā)送的網(wǎng)絡(luò)Web服務(wù)請求消息并創(chuàng)建通道對象; 截獲業(yè)務(wù)邏輯實體返回的結(jié)果集合,所述結(jié)果集合是由業(yè)務(wù)邏輯實體根據(jù)所述Web服務(wù)請求消息獲得的;當(dāng)確定為一次請求多響應(yīng)模式時,對結(jié)果集合進行分包處理得到N個數(shù) 據(jù)分包;將所述N個數(shù)據(jù)分包中的前N-l個數(shù)據(jù)分包通過所述通道對象向響應(yīng)處 理鏈Response Handler Chain發(fā)送,所述前N-1個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方;將所述N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包向所述Response Handler Chain 發(fā)送,所述第N個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求 方。
10、 根據(jù)權(quán)利要求9所述的數(shù)據(jù)傳輸方法,其特征在于,將所述N個數(shù) 據(jù)分包中的前N-l個數(shù)據(jù)分包通過所述通道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送之后包括清除當(dāng)前調(diào)用相關(guān)信息,所述當(dāng)前調(diào)用相關(guān)信息中至少包含所述通道對象。
11、 根據(jù)權(quán)利要求9或IO所述的數(shù)據(jù)傳輸方法,其特征在于,所述對結(jié) 果集合進行分包處理得到N個數(shù)據(jù)分包包括根據(jù)所述Web服務(wù)請求消息中的最大數(shù)據(jù)量參數(shù)對所迷結(jié)果集合進行分 包處理得到N個數(shù)據(jù)分包;將所述N個數(shù)據(jù)分包中的每一個數(shù)據(jù)分包都封裝為簡單對象訪問協(xié)議 SOAP消息。
12、 一種數(shù)據(jù)傳輸系統(tǒng),其特征在于,包括截取器,用于截獲請求方發(fā)送的網(wǎng)絡(luò)Web服務(wù)請求消息,創(chuàng)建通道對象; 業(yè)務(wù)邏輯實體,用于根據(jù)接收到的Web服務(wù)請求消息獲取結(jié)果集合,當(dāng) 確定為一次請求多響應(yīng)模式時,對所述結(jié)果集合進行分包處理得到N個數(shù)據(jù) 分包,將所述N個數(shù)據(jù)分包中的前N-1個數(shù)據(jù)分包通過所述通道對象向響應(yīng) 處理鏈Response Handler Chain發(fā)送,所述前N-l個數(shù)據(jù)分包經(jīng)過所述 Response Handler Chain發(fā)送至所述請求方;將所述N個數(shù)據(jù)分包中的第N個 數(shù)據(jù)分包向所述Response Handler Chain發(fā)送,所述第N個數(shù)據(jù)分包經(jīng)過所述 Response Handler Chain發(fā)送至所述請求方。
13、 根據(jù)權(quán)利要求12所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述截取器還 用于截獲所述第N個數(shù)據(jù)分包,并在截獲到后,清除當(dāng)前調(diào)用相關(guān)信息,所 述當(dāng)前調(diào)用相關(guān)信息中至少包含所述通道對象,將所述第N個數(shù)據(jù)分包發(fā)送 至所述Response Handler Chain。
14、 一種數(shù)據(jù)傳輸系統(tǒng),其特征在于,包括截取器,用于截獲請求方發(fā)送的Web服務(wù)請求消息,創(chuàng)建通道對象,截 獲業(yè)務(wù)邏輯實體發(fā)送的結(jié)果集合,當(dāng)確定為一次請求多響應(yīng)模式時,對所述 結(jié)果集合進行分包得到N個數(shù)據(jù)分包,將所述N個數(shù)據(jù)分包中的前N-1個數(shù) 據(jù)分包通過所述通道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送,所述前 N-l個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方;將所述 N個數(shù)據(jù)分包中的第N個數(shù)據(jù)分包向所述Response Handler Chain發(fā)送,所述 第N個數(shù)據(jù)分包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方;業(yè)務(wù)邏輯實體,用于根據(jù)接收到的Web服務(wù)請求消息獲得相應(yīng)的結(jié)果集 合,并返回所述結(jié)果集合。
15、 根據(jù)權(quán)利要求14所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述截取器還 用于在將所述N個數(shù)據(jù)分包中的前N-l個數(shù)據(jù)分包通過所述通道對象向 Response Handler Chain發(fā)送之后清除當(dāng)前調(diào)用相關(guān)信息,所述當(dāng)前調(diào)用相關(guān) 信息中至少包含所述通道對象。
16、 一種業(yè)務(wù)邏輯實體,其特征在于,包括 獲取單元,用于獲取請求方發(fā)送的網(wǎng)絡(luò)Web服務(wù)請求消息;業(yè)務(wù)邏輯處理單元,用于根據(jù)所述Web服務(wù)請求消息獲取結(jié)果集合; 第一分包單元,用于確定為一次請求多響應(yīng)模式時,對所述結(jié)果集合進 行分包處理得到N個數(shù)據(jù)分包;第一傳輸單元,用于將所述N個數(shù)據(jù)分包中的前N-1個數(shù)據(jù)分包通過所 述通道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送,所述前N-1個數(shù)據(jù)分 包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方;將所述N個數(shù)據(jù)分包 中的第N個數(shù)據(jù)分包向所述Response Handler Chain發(fā)送,所述第N個數(shù)據(jù)分 包經(jīng)過所述Response Handler Chain發(fā)送至所述i青求方。
17、 根據(jù)權(quán)利要求16所述的業(yè)務(wù)邏輯實體,其特征在于,所述第一分包 單元包括第一判斷單元,用于根據(jù)所述Web服務(wù)請求消息以及所述結(jié)果集合判斷 是否為一次請求多響應(yīng)模式;第一執(zhí)行單元,用于當(dāng)確定為一次請求多響應(yīng)模式時,根據(jù)所述Web服 務(wù)請求消息中的最大數(shù)據(jù)量參數(shù)對所述結(jié)果集合進行分包處理得到N個數(shù)據(jù) 分包;第一封裝單元,用于將所述N個數(shù)據(jù)分包中的每一個數(shù)據(jù)分包都封裝為 獨立的簡單對象訪問協(xié)議SOAP消息。
18、 一種截取器,其特征在于,包括截獲單元,用于截獲請求方發(fā)送的網(wǎng)絡(luò)Web服務(wù)請求消息以及截獲業(yè)務(wù) 邏輯實體返回的結(jié)果集合;創(chuàng)建單元,用于創(chuàng)建通道對象;第二分包單元,用于當(dāng)確定為一次請求多響應(yīng)模式時,對結(jié)果集合進行 分包處理得到N個數(shù)據(jù)分包;第二傳輸單元,用于將所述N個數(shù)據(jù)分包中的前N-1個數(shù)據(jù)分包通過所 述通道對象向響應(yīng)處理鏈Response Handler Chain發(fā)送,所述前N-1個數(shù)據(jù)分 包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方;將所述N個數(shù)據(jù)分包 中的第N個數(shù)據(jù)分包向所述Response Handler Chain發(fā)送,所述第N個數(shù)據(jù)分 包經(jīng)過所述Response Handler Chain發(fā)送至所述請求方。
19、 根據(jù)權(quán)利要求18所述的截取器,其特征在于,所述第二分包單元包括第二判斷單元,用于根據(jù)所述Web服務(wù)請求消息以及所述結(jié)果集合判斷 是否為一次請求多響應(yīng)模式;第二執(zhí)行單元,用于當(dāng)確定為一次請求多響應(yīng)模式時,根據(jù)所述Web服務(wù)請求消息中的最大數(shù)據(jù)量參數(shù)對所述結(jié)果集合進行分包處理得到N個數(shù)據(jù) 分包;第二封裝單元,用于將所述N個數(shù)據(jù)分包中的每一個數(shù)據(jù)分包都封裝為 獨立的簡單對象訪問協(xié)議SOAP消息。
20、根據(jù)權(quán)利要求18或19所述的截取器,其特征在于,所述截取器還 包括清除單元,用于在將所述N個數(shù)據(jù)分包中的前N-1個數(shù)據(jù)分包通過所述 通道對象向Response Handler Chain發(fā)送之后,清除當(dāng)前調(diào)用相關(guān)信息,所述 當(dāng)前調(diào)用相關(guān)信息中至少包含所述通道對象。
全文摘要
本發(fā)明實施例公開了一種數(shù)據(jù)傳輸方法及數(shù)據(jù)傳輸系統(tǒng)以及相關(guān)設(shè)備,應(yīng)用于Web服務(wù)領(lǐng)域,用于實現(xiàn)高效率的大數(shù)據(jù)量交互。方法包括當(dāng)截取器截獲請求方發(fā)送的Web服務(wù)請求消息并創(chuàng)建通道對象后,業(yè)務(wù)邏輯實體獲得結(jié)果集合,對結(jié)果集合進行分包得到N個數(shù)據(jù)分包;將前N-1個數(shù)據(jù)分包通過所述通道對象向Response Handler Chain發(fā)送,數(shù)據(jù)分包經(jīng)過ResponseHandler Chain發(fā)送至請求方;將第N個數(shù)據(jù)分包向Response Handler Chain發(fā)送,數(shù)據(jù)分包經(jīng)過Response Handler Chain發(fā)送至請求方。本發(fā)明實施例可以實現(xiàn)高效的大數(shù)據(jù)量交互。
文檔編號H04L29/08GK101635744SQ200910167149
公開日2010年1月27日 申請日期2009年8月26日 優(yōu)先權(quán)日2009年8月26日
發(fā)明者張?zhí)旎?申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1