本發(fā)明涉及計(jì)算機(jī),尤其涉及一種數(shù)據(jù)傳輸?shù)姆椒ê脱b置。
背景技術(shù):
1、在即時(shí)通訊業(yè)務(wù)領(lǐng)域中,多個(gè)終端通過基礎(chǔ)網(wǎng)絡(luò)和網(wǎng)絡(luò)通信協(xié)議建立消息通道,并通過消息通道,進(jìn)行數(shù)據(jù)傳輸。在傳輸文字、圖像等通訊數(shù)據(jù)時(shí),通常有兩種方法,一種方法是直接將待傳輸?shù)臄?shù)據(jù)封裝為符合傳輸協(xié)議的傳輸數(shù)據(jù),然后對(duì)傳輸數(shù)據(jù)進(jìn)行傳輸,另一個(gè)方法是對(duì)待傳輸?shù)臄?shù)據(jù)執(zhí)行一次或者多次壓縮操作,再將壓縮后的數(shù)據(jù)封裝為傳輸數(shù)據(jù),然后對(duì)傳輸數(shù)據(jù)進(jìn)行傳輸。
2、在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題:
3、壓縮后的數(shù)據(jù)體積仍然比較大,導(dǎo)致數(shù)據(jù)傳輸效率低,耗時(shí)長(zhǎng),在傳輸數(shù)據(jù)時(shí)需要消耗大量系統(tǒng)資源。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明實(shí)施例提供一種數(shù)據(jù)傳輸?shù)姆椒ê脱b置,能夠提高傳輸數(shù)據(jù)的傳輸效率,縮短數(shù)據(jù)傳輸時(shí)間,節(jié)省系統(tǒng)資源。
2、為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種數(shù)據(jù)傳輸?shù)姆椒?,包括?/p>
3、按照預(yù)先設(shè)置的嵌套數(shù)據(jù)結(jié)構(gòu),封裝所獲取的業(yè)務(wù)數(shù)據(jù),并對(duì)封裝后的業(yè)務(wù)數(shù)據(jù)中的多層數(shù)據(jù)執(zhí)行多次序列化操作,得到結(jié)構(gòu)化數(shù)據(jù);
4、根據(jù)預(yù)先設(shè)置的傳輸協(xié)議,對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行封裝,得到符合傳輸協(xié)議的傳輸數(shù)據(jù);
5、將傳輸數(shù)據(jù)傳輸至業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的接收方。
6、可選地,嵌套數(shù)據(jù)結(jié)構(gòu)包括:業(yè)務(wù)封裝結(jié)構(gòu)和消息封裝結(jié)構(gòu),業(yè)務(wù)封裝結(jié)構(gòu)定義業(yè)務(wù)封裝數(shù)據(jù)包含的字段以及該字段對(duì)應(yīng)的數(shù)據(jù)類型,消息封裝結(jié)構(gòu)定義消息封裝數(shù)據(jù)包含的字段以及該字段對(duì)應(yīng)的數(shù)據(jù)類型;根據(jù)預(yù)先設(shè)置的嵌套數(shù)據(jù)結(jié)構(gòu),對(duì)業(yè)務(wù)數(shù)據(jù)執(zhí)行多次序列化操作,得到結(jié)構(gòu)化數(shù)據(jù),包括:
7、按照業(yè)務(wù)封裝結(jié)構(gòu),對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行封裝,得到業(yè)務(wù)封裝數(shù)據(jù),對(duì)業(yè)務(wù)封裝數(shù)據(jù)進(jìn)行序列化,得到業(yè)務(wù)序列數(shù)據(jù);
8、按照消息封裝結(jié)構(gòu),獲取預(yù)先設(shè)置的消息基礎(chǔ)數(shù)據(jù),對(duì)業(yè)務(wù)序列數(shù)據(jù)和消息基礎(chǔ)數(shù)據(jù)進(jìn)行封裝,得到消息封裝數(shù)據(jù),對(duì)消息封裝數(shù)據(jù)進(jìn)行序列化,得到結(jié)構(gòu)化數(shù)據(jù);消息基礎(chǔ)數(shù)據(jù)是與業(yè)務(wù)數(shù)據(jù)關(guān)聯(lián)的業(yè)務(wù)場(chǎng)景有關(guān)的數(shù)據(jù)。
9、可選地,在對(duì)業(yè)務(wù)封裝數(shù)據(jù)進(jìn)行序列化,得到業(yè)務(wù)序列數(shù)據(jù)之前,
10、確定所述業(yè)務(wù)封裝數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度;
11、判定所述業(yè)務(wù)封裝數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度大于預(yù)先設(shè)置的第一閾值。
12、可選地,預(yù)先設(shè)置多種序列化方法;在對(duì)業(yè)務(wù)封裝數(shù)據(jù)進(jìn)行序列化之前,
13、確定與業(yè)務(wù)數(shù)據(jù)關(guān)聯(lián)的業(yè)務(wù)場(chǎng)景;
14、根據(jù)業(yè)務(wù)場(chǎng)景,從多種序列化方法中確定目標(biāo)序列化方法,目標(biāo)序列化方法用于對(duì)業(yè)務(wù)封裝數(shù)據(jù)和消息封裝數(shù)據(jù)進(jìn)行序列化。
15、可選地,根據(jù)預(yù)先設(shè)置的傳輸協(xié)議,對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行封裝,得到符合傳輸協(xié)議的傳輸數(shù)據(jù),包括:
16、獲取結(jié)構(gòu)化數(shù)據(jù)的多個(gè)封裝信息;
17、根據(jù)預(yù)先設(shè)置的字節(jié)對(duì)齊規(guī)則,確定多個(gè)封裝信息以及結(jié)構(gòu)化數(shù)據(jù)的排列順序和字節(jié)長(zhǎng)度;
18、根據(jù)排列順序和字節(jié)長(zhǎng)度,對(duì)多個(gè)封裝信息和結(jié)構(gòu)化數(shù)據(jù)進(jìn)行封裝,將封裝后的數(shù)據(jù)作為傳輸數(shù)據(jù)。
19、可選地,在對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行封裝之前,確定結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度;響應(yīng)于結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度大于預(yù)先設(shè)置的第二閾值,對(duì)結(jié)構(gòu)化數(shù)據(jù)執(zhí)行數(shù)據(jù)壓縮操作,得到壓縮數(shù)據(jù);
20、根據(jù)預(yù)先設(shè)置的傳輸協(xié)議,對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行封裝,包括:根據(jù)預(yù)先設(shè)置的傳輸協(xié)議,對(duì)壓縮數(shù)據(jù)進(jìn)行封裝,將封裝后的壓縮數(shù)據(jù)作為傳輸數(shù)據(jù)。
21、根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種數(shù)據(jù)傳輸?shù)姆椒?,包括?/p>
22、根據(jù)預(yù)先設(shè)置的傳輸協(xié)議,從接收到的回傳數(shù)據(jù)中解析出第二結(jié)構(gòu)化數(shù)據(jù);回傳數(shù)據(jù)是通過如下步驟得到的:按照預(yù)先設(shè)置的嵌套數(shù)據(jù)結(jié)構(gòu),封裝所獲取的第一業(yè)務(wù)數(shù)據(jù),并對(duì)封裝后的第一業(yè)務(wù)數(shù)據(jù)中的多層數(shù)據(jù)執(zhí)行多次序列化操作,得到第一結(jié)構(gòu)化數(shù)據(jù),對(duì)第一結(jié)構(gòu)化數(shù)據(jù)進(jìn)行封裝,得到符合傳輸協(xié)議的回傳數(shù)據(jù);
23、根據(jù)預(yù)先設(shè)置的嵌套數(shù)據(jù)結(jié)構(gòu),對(duì)第二結(jié)構(gòu)化數(shù)據(jù)中的多層數(shù)據(jù)執(zhí)行多次反序列化操作,得到第二業(yè)務(wù)數(shù)據(jù);
24、將第二業(yè)務(wù)數(shù)據(jù)傳輸至回傳數(shù)據(jù)對(duì)應(yīng)的接收方。
25、根據(jù)本發(fā)明實(shí)施例的第三方面,提供一種數(shù)據(jù)傳輸?shù)难b置,包括:
26、序列化模塊,用于按照預(yù)先設(shè)置的嵌套數(shù)據(jù)結(jié)構(gòu),封裝所獲取的業(yè)務(wù)數(shù)據(jù),并對(duì)封裝后的業(yè)務(wù)數(shù)據(jù)中的多層數(shù)據(jù)執(zhí)行多次序列化操作,得到結(jié)構(gòu)化數(shù)據(jù);
27、封裝模塊,用于根據(jù)預(yù)先設(shè)置的傳輸協(xié)議,對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行封裝,得到符合傳輸協(xié)議的傳輸數(shù)據(jù);
28、傳輸模塊,用于將傳輸數(shù)據(jù)傳輸至業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的接收方。
29、可選地,嵌套數(shù)據(jù)結(jié)構(gòu)包括:業(yè)務(wù)封裝結(jié)構(gòu)和消息封裝結(jié)構(gòu),業(yè)務(wù)封裝結(jié)構(gòu)定義業(yè)務(wù)封裝數(shù)據(jù)包含的字段以及該字段對(duì)應(yīng)的數(shù)據(jù)類型,消息封裝結(jié)構(gòu)定義消息封裝數(shù)據(jù)包含的字段以及該字段對(duì)應(yīng)的數(shù)據(jù)類型;序列化模塊還用于:
30、按照業(yè)務(wù)封裝結(jié)構(gòu),對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行封裝,得到業(yè)務(wù)封裝數(shù)據(jù),對(duì)業(yè)務(wù)封裝數(shù)據(jù)進(jìn)行序列化,得到業(yè)務(wù)序列數(shù)據(jù);
31、按照消息封裝結(jié)構(gòu),獲取預(yù)先設(shè)置的消息基礎(chǔ)數(shù)據(jù),對(duì)業(yè)務(wù)序列數(shù)據(jù)和消息基礎(chǔ)數(shù)據(jù)進(jìn)行封裝,得到消息封裝數(shù)據(jù),對(duì)消息封裝數(shù)據(jù)進(jìn)行序列化,得到結(jié)構(gòu)化數(shù)據(jù);消息基礎(chǔ)數(shù)據(jù)是與業(yè)務(wù)數(shù)據(jù)關(guān)聯(lián)的業(yè)務(wù)場(chǎng)景有關(guān)的數(shù)據(jù)。
32、可選地,本發(fā)明實(shí)施例的裝置還包括:
33、第一確定模塊,用于確定業(yè)務(wù)封裝數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度;
34、判定模塊,用于判定業(yè)務(wù)封裝數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度大于預(yù)先設(shè)置的第一閾值。
35、可選地,預(yù)先設(shè)置多種序列化方法;本發(fā)明實(shí)施例的裝置還包括:
36、第二確定模塊,用于確定與業(yè)務(wù)數(shù)據(jù)關(guān)聯(lián)的業(yè)務(wù)場(chǎng)景;
37、篩選模塊,用于根據(jù)業(yè)務(wù)場(chǎng)景,從多種序列化方法中確定目標(biāo)序列化方法,目標(biāo)序列化方法用于對(duì)業(yè)務(wù)封裝數(shù)據(jù)和消息封裝數(shù)據(jù)進(jìn)行序列化。
38、可選地,封裝模塊還用于:
39、獲取結(jié)構(gòu)化數(shù)據(jù)的多個(gè)封裝信息;
40、根據(jù)預(yù)先設(shè)置的字節(jié)對(duì)齊規(guī)則,確定多個(gè)封裝信息以及結(jié)構(gòu)化數(shù)據(jù)的排列順序和字節(jié)長(zhǎng)度;
41、根據(jù)排列順序和字節(jié)長(zhǎng)度,對(duì)多個(gè)封裝信息和結(jié)構(gòu)化數(shù)據(jù)進(jìn)行封裝,將封裝后的數(shù)據(jù)作為傳輸數(shù)據(jù)。
42、可選地,本發(fā)明實(shí)施例的裝置還包括:第三確定模塊,用于確定結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度;壓縮模塊,用于響應(yīng)于結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度大于預(yù)先設(shè)置的第二閾值,對(duì)結(jié)構(gòu)化數(shù)據(jù)執(zhí)行數(shù)據(jù)壓縮操作,得到壓縮數(shù)據(jù);
43、封裝模塊還用于:根據(jù)預(yù)先設(shè)置的傳輸協(xié)議,對(duì)壓縮數(shù)據(jù)進(jìn)行封裝,將封裝后的壓縮數(shù)據(jù)作為傳輸數(shù)據(jù)。
44、根據(jù)本發(fā)明實(shí)施例的第四方面,提供一種數(shù)據(jù)傳輸?shù)难b置,包括:
45、解析模塊,用于根據(jù)預(yù)先設(shè)置的傳輸協(xié)議,從接收到的回傳數(shù)據(jù)中解析出第二結(jié)構(gòu)化數(shù)據(jù);回傳數(shù)據(jù)是通過如下步驟得到的:按照預(yù)先設(shè)置的嵌套數(shù)據(jù)結(jié)構(gòu),封裝所獲取的第一業(yè)務(wù)數(shù)據(jù),并對(duì)封裝后的第一業(yè)務(wù)數(shù)據(jù)中的多層數(shù)據(jù)執(zhí)行多次結(jié)構(gòu)序列化操作,得到第一結(jié)構(gòu)化數(shù)據(jù),對(duì)第一結(jié)構(gòu)化數(shù)據(jù)進(jìn)行封裝,得到符合傳輸協(xié)議的回傳數(shù)據(jù);
46、反序列化模塊,用于根據(jù)預(yù)先設(shè)置的嵌套數(shù)據(jù)結(jié)構(gòu),對(duì)第二結(jié)構(gòu)化數(shù)據(jù)中的多層數(shù)據(jù)執(zhí)行多次反序列化操作,得到第二業(yè)務(wù)數(shù)據(jù);
47、回傳模塊,用于將第二業(yè)務(wù)數(shù)據(jù)傳輸至回傳數(shù)據(jù)對(duì)應(yīng)的接收方。
48、根據(jù)本發(fā)明實(shí)施例的第五方面,提供一種電子設(shè)備,包括:
49、一個(gè)或多個(gè)處理器;
50、存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,
51、當(dāng)一個(gè)或多個(gè)程序被一個(gè)或多個(gè)處理器執(zhí)行時(shí),一個(gè)或多個(gè)處理器實(shí)現(xiàn)上述任一實(shí)施例的方法。
52、根據(jù)本發(fā)明實(shí)施例的第六方面,提供一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述任一實(shí)施例的方法。
53、根據(jù)本發(fā)明實(shí)施例的第七方面,提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述任一實(shí)施例的方法。
54、上述發(fā)明中的一個(gè)實(shí)施例具有如下優(yōu)點(diǎn)或有益效果:基于多次序列化操作和封裝操作,將業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)體積小的傳輸數(shù)據(jù),能夠提高傳輸數(shù)據(jù)的傳輸效率,縮短數(shù)據(jù)傳輸時(shí)間,節(jié)省系統(tǒng)資源;先通過封裝和序列化得到業(yè)務(wù)序列數(shù)據(jù),再通過封裝和序列化得到消息序列數(shù)據(jù),能夠?qū)⑴c業(yè)務(wù)相關(guān)的數(shù)據(jù)和與業(yè)務(wù)場(chǎng)景相同的數(shù)據(jù)封裝在不同的數(shù)據(jù)層,提高數(shù)據(jù)的可讀性,保證數(shù)據(jù)的完整性,便于對(duì)封裝后的數(shù)據(jù)進(jìn)行解析;在業(yè)務(wù)封裝數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度大于第一閾值的情況下,再對(duì)業(yè)務(wù)封裝數(shù)據(jù)進(jìn)行序列化,能夠節(jié)省系統(tǒng)資源,提高數(shù)據(jù)封裝效率;基于業(yè)務(wù)場(chǎng)景確定序列化方法,能夠提高數(shù)據(jù)序列化效率和效果,使序列化后的數(shù)據(jù)體積更?。换谧止?jié)對(duì)齊規(guī)則,確定多個(gè)封裝信息和結(jié)構(gòu)化數(shù)據(jù)的排列順序和字節(jié)長(zhǎng)度,能夠提高數(shù)據(jù)封裝效率和準(zhǔn)確性,保證封裝后的數(shù)據(jù)字節(jié)對(duì)齊,減小數(shù)據(jù)體積,提高傳輸效率;在結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度大于第二閾值的情況下,再執(zhí)行壓縮操作,能夠節(jié)省系統(tǒng)資源,減小數(shù)據(jù)體積;根據(jù)傳輸協(xié)議和嵌套結(jié)構(gòu)數(shù)據(jù),將回傳數(shù)據(jù)解析為第二業(yè)務(wù)數(shù)據(jù),能夠提高回傳數(shù)據(jù)的解析效率,保證多個(gè)終端之間的通訊效率。
55、上述的非慣用的可選方式所具有的進(jìn)一步效果將在下文中結(jié)合具體實(shí)施方式加以說明。