本發(fā)明涉及數(shù)據(jù)通信技術領域,尤其涉及一種拼接墻多路轉發(fā)方法、裝置及系統(tǒng)。
背景技術:
拼接墻作為專業(yè)的顯示技術分支,未來發(fā)展值得期待。拼接墻具有很大的組合空間:既可以采用小屏拼接、也可以采用大屏拼接;既可以一對一單屏拼接,也可以一對M×N整屏拼接;還可以大小屏混合拼裝。
隨著技術發(fā)展,拼接墻技術已經(jīng)不僅限于拼接墻顯示了,已經(jīng)越來越多技術人員深入到基于拼接墻的多端交互領域中,目前的客戶端通過服務端能遠程觀看拼接墻的屏幕(回顯顯示),拼接墻會不斷的發(fā)送變化的屏幕數(shù)據(jù)給客戶端,令客戶端所看到拼接墻回顯保持最新。服務器和客戶端數(shù)據(jù)交互是通過請求(framebuffer request)->應答(framebuffer)->請求(framebuffer request)的形式進行的。剛連接的時候,客戶端會發(fā)送FrameFullQuest請求全屏幕數(shù)據(jù),后面會發(fā)FrameChangeRequest,請求增量數(shù)據(jù)(屏幕變化的數(shù)據(jù))。
然而上述的服務器和客戶端數(shù)據(jù)交互是請求、應答、請求的形式進行的對于單點服務網(wǎng)絡接入和硬件處理能力提出極高要求,當客戶端數(shù)量增多時,容易導致多路連接堵塞的問題,并且多個客戶端請求的數(shù)據(jù)大部分是相同的,從而導致了拼接墻多次抓無用的圖以及端間傳輸冗余的數(shù)據(jù),浪費帶寬的技術問題。
技術實現(xiàn)要素:
本發(fā)明實施例提供的一種拼接墻多路轉發(fā)方法、裝置及系統(tǒng),解決了目前的服務器和客戶端數(shù)據(jù)交互是請求、應答、請求的形式進行的對于單點服務網(wǎng)絡接入和硬件處理能力提出極高要求,當客戶端數(shù)量增多時,容易導致多路連接堵塞的問題,并且多個客戶端請求的數(shù)據(jù)大部分是相同的,導致的拼接墻多次抓無用的圖以及端間傳輸冗余的數(shù)據(jù),浪費帶寬的技術問題。
本發(fā)明實施例提供的一種拼接墻多路轉發(fā)方法,包括:
當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令;
將所述待同步客戶端添加至所述已同步隊列,并將所述全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在所述已同步隊列中的所有所述同步客戶端獲取到所述全屏數(shù)據(jù)。
可選地,當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令之前還包括:
建立所述已同步隊列和所述未同步隊列,所述幀緩沖只發(fā)送給所述已同步隊列的所述同步客戶端。
可選地,當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令之前還包括:
獲取到所述未同步隊列的所述待同步客戶端發(fā)送的所述全部觀看請求,并對所述全部觀看請求進行延遲處理。
可選地,當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令具體包括:
當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,對所述未同步隊列是否為空進行判斷,若不為空,則確定在所述未同步隊列中是否存在所述待同步客戶端發(fā)送的所述全部觀看請求指令,若不存在所述全部觀看請求指令,則直接轉發(fā)所述已同步隊列中的所述同步客戶端的觀看請求指令給所述桌面源。
可選地,當對所述未同步隊列的判斷為空,則直接轉發(fā)所述已同步隊列中的所述同步客戶端的觀看請求指令給所述桌面源。
本發(fā)明實施例提供的一種拼接墻多路轉發(fā)裝置,包括:
確定單元,用于當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令;
同步單元,用于將所述待同步客戶端添加至所述已同步隊列,并將所述全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在所述已同步隊列中的所有所述同步客戶端獲取到所述全屏數(shù)據(jù)。
可選地,拼接墻多路轉發(fā)裝置還包括:
建立單元,用于建立所述已同步隊列和所述未同步隊列,所述幀緩沖只發(fā)送給所述已同步隊列的所述同步客戶端;
獲取單元,用于獲取到所述未同步隊列的所述待同步客戶端發(fā)送的所述全部觀看請求,并對所述全部觀看請求進行延遲處理。
可選地,同步單元具體包括:
隊列判斷子單元,用于當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,對所述未同步隊列是否為空進行判斷,若不為空,則觸發(fā)存在判斷子單元,若為空,則觸發(fā)所述第一轉發(fā)子單元;
所述觸發(fā)存在判斷子單元,用于確定在所述未同步隊列中是否存在所述待同步客戶端發(fā)送的所述全部觀看請求指令,若不存在所述全部觀看請求指令,則觸發(fā)第一轉發(fā)子單元,若存在所述全部觀看請求指令,則觸發(fā)第二轉發(fā)子單元;
所述第一轉發(fā)子單元,用于直接轉發(fā)所述已同步隊列中的所述同步客戶端的觀看請求指令給所述桌面源。
可選地,同步單元具體包括:
所述第二轉發(fā)子單元,用于將所述待同步客戶端添加至所述已同步隊列,并將所述全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在所述已同步隊列中的所有所述同步客戶端獲取到所述全屏數(shù)據(jù)。
本發(fā)明實施例提供的一種拼接墻多路轉發(fā)系統(tǒng),包括:
拼接墻、若干個客戶端,以及本實施例中提及的任意一種所述的拼接墻多路轉發(fā)裝置;
所述拼接墻通過所述拼接墻多路轉發(fā)裝置與所述客戶端通信連接。
從以上技術方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
本發(fā)明實施例提供的一種拼接墻多路轉發(fā)方法、裝置及系統(tǒng),其中,拼接墻多路轉發(fā)方法,包括:當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令;將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù)。本實施例中,通過確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令,然后將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),實現(xiàn)了在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù),解決了目前的服務器和客戶端數(shù)據(jù)交互是請求、應答、請求的形式進行的對于單點服務網(wǎng)絡接入和硬件處理能力提出極高要求,當客戶端數(shù)量增多時,容易導致多路連接堵塞的問題,并且多個客戶端請求的數(shù)據(jù)大部分是相同的,導致的拼接墻多次抓無用的圖以及端間傳輸冗余的數(shù)據(jù),浪費帶寬的技術問題。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明實施例提供的一種拼接墻多路轉發(fā)方法的一個實施例的流程示意圖;
圖2為本發(fā)明實施例提供的一種拼接墻多路轉發(fā)方法的另一個實施例的流程示意圖;
圖3為本發(fā)明實施例提供的一種拼接墻多路轉發(fā)裝置的一個實施例的結構示意圖;
圖4為本發(fā)明實施例提供的一種拼接墻多路轉發(fā)裝置的另一個實施例的結構示意圖;
圖5為本發(fā)明實施例提供的一種拼接墻多路轉發(fā)系統(tǒng)的一個實施例的結構示意圖;
圖6為圖2結合圖5的應用例示意圖。
具體實施方式
本發(fā)明實施例提供的一種拼接墻多路轉發(fā)方法、裝置及系統(tǒng),解決了目前的服務器和客戶端數(shù)據(jù)交互是請求、應答、請求的形式進行的對于單點服務網(wǎng)絡接入和硬件處理能力提出極高要求,當客戶端數(shù)量增多時,容易導致多路連接堵塞的問題,并且多個客戶端請求的數(shù)據(jù)大部分是相同的,導致的拼接墻多次抓無用的圖以及端間傳輸冗余的數(shù)據(jù),浪費帶寬的技術問題。
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,本發(fā)明實施例提供的一種拼接墻多路轉發(fā)方法的一個實施例包括:
101、當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令;
本實施例中,當需要讓一個拼接墻上回顯的數(shù)據(jù)轉發(fā)給多個觀看客戶端時,首先需要在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令。
102、將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù)。
當確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令之后,需要將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù)。
本實施例中,通過確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令,然后將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),實現(xiàn)了在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù),解決了目前的服務器和客戶端數(shù)據(jù)交互是請求、應答、請求的形式進行的對于單點服務網(wǎng)絡接入和硬件處理能力提出極高要求,當客戶端數(shù)量增多時,容易導致多路連接堵塞的問題,并且多個客戶端請求的數(shù)據(jù)大部分是相同的,導致的拼接墻多次抓無用的圖以及端間傳輸冗余的數(shù)據(jù),浪費帶寬的技術問題。
上面是對拼接墻多路轉發(fā)方法的描述,下面將對具體步驟和附加步驟進行詳細的描述,請參閱圖2,本發(fā)明實施例提供的一種拼接墻多路轉發(fā)方法的另一個實施例包括:
201、建立已同步隊列和未同步隊列;
本實施例中,當需要讓一個拼接墻上回顯的數(shù)據(jù)轉發(fā)給多個觀看客戶端時,首先需要建立已同步隊列和未同步隊列,幀緩沖只發(fā)送給已同步隊列的同步客戶端。
202、獲取到未同步隊列的待同步客戶端發(fā)送的全部觀看請求,并對全部觀看請求進行延遲處理;
當建立已同步隊列和未同步隊列之后,需要獲取到未同步隊列的待同步客戶端發(fā)送的全部觀看請求,并對全部觀看請求進行延遲處理。
203、當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,對未同步隊列是否為空進行判斷,若不為空,則執(zhí)行步驟204,若為空,則執(zhí)行步驟205;
當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,對未同步隊列是否為空進行判斷,若不為空,則執(zhí)行步驟204,若為空,則執(zhí)行步驟205。
204、確定在未同步隊列中是否存在待同步客戶端發(fā)送的全部觀看請求指令,若不存在全部觀看請求指令,則執(zhí)行步驟205,若存在全部觀看請求指令,則執(zhí)行步驟206;
當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,對未同步隊列是否為空進行判斷不為空,則確定在未同步隊列中是否存在待同步客戶端發(fā)送的全部觀看請求指令,若不存在全部觀看請求指令,則執(zhí)行步驟205,若存在全部觀看請求指令,則執(zhí)行步驟206。
205、直接轉發(fā)已同步隊列中的同步客戶端的觀看請求指令給桌面源;
當步驟203的對未同步隊列是否為空進行判斷為空,或步驟204確定在未同步隊列中是否存在待同步客戶端發(fā)送的全部觀看請求指令為不存在全部觀看請求指令,則直接轉發(fā)已同步隊列中的同步客戶端的觀看請求指令給桌面源。
206、將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù)。
當步驟204確定在未同步隊列中是否存在待同步客戶端發(fā)送的全部觀看請求指令為存在全部觀看請求指令,則將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù)。
下面將以一具體應用場景對圖2和圖5的結合進行描述,如圖6所示,應用例包括:
緩存請求指令,同步framebuffer的TCP流;
拼接墻回顯和觀看客戶端的數(shù)據(jù)交互,是用請求(framebuffer request)->應答(framebuffer)->請求的形式進行的。在中間服務器上,我們設置一個“已同步隊列”和“未同步隊列”。Framebuffer只發(fā)給“已同步隊列”里面的觀看者。
假設觀看者A和B已經(jīng)加入“已同步列表”。當觀看者C接進來的時候,把C加入“未同步隊列”。C會發(fā)full request,服務器把這命令延遲處理(先不處理)。當A或者B處理完上一段framebuffer的時候,A或B就會發(fā)incremental request,這時就是同步點。在這個同步點上,我們做以下判斷和處理:
I.如果“未同步隊列”為空,則直接轉發(fā)A或者B的request給桌面源;
II.如果“未同步隊列”不為空,并且列表里沒有觀看者發(fā)過request,則直接轉發(fā)A或者B的request給桌面源;
III.如果“未同步隊列”不為空,且列表里有觀看者發(fā)過request,表示這個觀看客戶端已經(jīng)ready去接收framebuffer,則把此觀看客戶端加到“已同步隊列”,并且發(fā)full request給桌面源請求全屏數(shù)據(jù),服務器把全屏數(shù)據(jù)多路組發(fā)到每個觀看客戶端做同步。
解決了中間服務器建立連接到拼接墻源,觀看客戶端再建立連接到中間服務器,由中間服務器轉發(fā)framebuffer,但這樣的方法所導致的以下問題:
Framebuffer是基于TCP流的,當已經(jīng)有觀看客戶端在觀看的時候,TCP數(shù)據(jù)已經(jīng)在“流動”,當一個新的觀看客戶端接進來的時候,如果不做同步,新觀看客戶端就會接收到被“截斷”的TCP流,即不完整的framebuffer,會引起不可預期的錯誤。
本實施例中,通過確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令,然后將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),實現(xiàn)了在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù),解決了目前的服務器和客戶端數(shù)據(jù)交互是請求、應答、請求的形式進行的對于單點服務網(wǎng)絡接入和硬件處理能力提出極高要求,當客戶端數(shù)量增多時,容易導致多路連接堵塞的問題,并且多個客戶端請求的數(shù)據(jù)大部分是相同的,導致的拼接墻多次抓無用的圖以及端間傳輸冗余的數(shù)據(jù),浪費帶寬的技術問題,以及中間服務器只需要建立一條連接到拼接墻源,就可以提供給N個觀看者觀看。節(jié)省了N-1倍的流量。中間服務器不做編解碼,純粹組發(fā),可以達到接近于觀看者直連拼接墻的性能。
請參閱圖3,本發(fā)明實施例中提供的一種拼接墻多路轉發(fā)裝置的一個實施例包括:
確定單元301,用于當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令;
同步單元302,用于將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù)。
本實施例中,通過確定單元301確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令,然后同步單元302將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),實現(xiàn)了在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù),解決了目前的服務器和客戶端數(shù)據(jù)交互是請求、應答、請求的形式進行的對于單點服務網(wǎng)絡接入和硬件處理能力提出極高要求,當客戶端數(shù)量增多時,容易導致多路連接堵塞的問題,并且多個客戶端請求的數(shù)據(jù)大部分是相同的,導致的拼接墻多次抓無用的圖以及端間傳輸冗余的數(shù)據(jù),浪費帶寬的技術問題。
上面是對拼接墻多路轉發(fā)裝置的各單元進行詳細的描述,下面將對子單元及附加單元進行描述,請參閱圖4,本發(fā)明實施例中提供的一種拼接墻多路轉發(fā)裝置的另一個實施例包括:
建立單元401,用于建立已同步隊列和未同步隊列,幀緩沖只發(fā)送給已同步隊列的同步客戶端;
獲取單元402,用于獲取到未同步隊列的待同步客戶端發(fā)送的全部觀看請求,并對全部觀看請求進行延遲處理。
確定單元403,用于當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令;
同步單元404,用于將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù)。
同步單元404具體包括:
隊列判斷子單元4041,用于當在已同步隊列中的同步客戶端完成前一段的幀緩沖之后,對未同步隊列是否為空進行判斷,若不為空,則觸發(fā)存在判斷子單元4042,若為空,則觸發(fā)第一轉發(fā)子單元4043;
觸發(fā)存在判斷子單元4042,用于確定在未同步隊列中是否存在待同步客戶端發(fā)送的全部觀看請求指令,若不存在全部觀看請求指令,則觸發(fā)第一轉發(fā)子單元4043,若存在全部觀看請求指令,則觸發(fā)第二轉發(fā)子單元4044;
第一轉發(fā)子單元4043,用于直接轉發(fā)已同步隊列中的同步客戶端的觀看請求指令給桌面源。
第二轉發(fā)子單元4044,用于將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),使得在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù)。
本實施例中,通過確定單元403確定未同步隊列中的待同步客戶端存在已發(fā)送的全部觀看請求指令,然后同步單元404將待同步客戶端添加至已同步隊列,并將全部觀看請求指令發(fā)送至桌面源請求全屏數(shù)據(jù),實現(xiàn)了在已同步隊列中的所有同步客戶端獲取到全屏數(shù)據(jù),解決了目前的服務器和客戶端數(shù)據(jù)交互是請求、應答、請求的形式進行的對于單點服務網(wǎng)絡接入和硬件處理能力提出極高要求,當客戶端數(shù)量增多時,容易導致多路連接堵塞的問題,并且多個客戶端請求的數(shù)據(jù)大部分是相同的,導致的拼接墻多次抓無用的圖以及端間傳輸冗余的數(shù)據(jù),浪費帶寬的技術問題,以及中間服務器只需要建立一條連接到拼接墻源,就可以提供給N個觀看者觀看。節(jié)省了N-1倍的流量。中間服務器不做編解碼,純粹組發(fā),可以達到接近于觀看者直連拼接墻的性能。
請參閱圖5,本發(fā)明實施例中提供的一種拼接墻多路轉發(fā)系統(tǒng)的一個實施例包括:
拼接墻51、若干個客戶端52,以及圖3和圖4提及的拼接墻多路轉發(fā)裝置53;
拼接墻51通過拼接墻多路轉發(fā)裝置52與客戶端53通信連接。
需要說明的是,拼接墻多路轉發(fā)裝置53可以是圖6中提及的中間服務器。
解決了中間服務器建立連接到拼接墻源,觀看客戶端再建立連接到中間服務器,由中間服務器轉發(fā)framebuffer,但這樣的方法所導致的以下問題:
Framebuffer是基于TCP流的,當已經(jīng)有觀看客戶端在觀看的時候,TCP數(shù)據(jù)已經(jīng)在“流動”,當一個新的觀看客戶端接進來的時候,如果不做同步,新觀看客戶端就會接收到被“截斷”的TCP流,即不完整的framebuffer,會引起不可預期的錯誤。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。