欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種協(xié)作方法、服務(wù)器、客戶端與系統(tǒng)的制作方法

文檔序號(hào):7776402閱讀:164來源:國知局
一種協(xié)作方法、服務(wù)器、客戶端與系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種協(xié)作方法、服務(wù)器、客戶端與系統(tǒng)。該方法包括:服務(wù)器接收協(xié)作發(fā)起客戶端發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù);服務(wù)器將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便于協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。本發(fā)明提供的技術(shù)方案,通過序列化應(yīng)用對(duì)象的手段,實(shí)現(xiàn)客戶端之間的協(xié)作,且權(quán)限的轉(zhuǎn)移僅僅在當(dāng)前應(yīng)用系統(tǒng)內(nèi)部,不會(huì)對(duì)客戶端操作系統(tǒng)和其他應(yīng)用程序造成任何威脅,提高了協(xié)作雙方信息的安全性。
【專利說明】一種協(xié)作方法、服務(wù)器、客戶端與系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及遠(yuǎn)程協(xié)作【技術(shù)領(lǐng)域】,特別是涉及一種協(xié)作方法、服務(wù)器、客戶端與系統(tǒng)。
【背景技術(shù)】
[0002]協(xié)作是指多個(gè)角色在實(shí)現(xiàn)共同目標(biāo)的過程中,相互之間的協(xié)調(diào)與配合,在計(jì)算機(jī)領(lǐng)域,協(xié)作的角色可以是計(jì)算機(jī)的用戶,他們依賴網(wǎng)絡(luò)、服務(wù)器、客戶端等設(shè)備,共同完成某項(xiàng)業(yè)務(wù)功能。比如在銀行業(yè)務(wù)領(lǐng)域中,遠(yuǎn)程授權(quán)是典型的客戶端協(xié)作場景:A員工在做某“大額”業(yè)務(wù)操作,他先輸入一些數(shù)據(jù),接下來需要B (上級(jí)主管,他坐在另一臺(tái)電腦前)授權(quán)即確認(rèn)他已經(jīng)看過這些數(shù)據(jù),如果后續(xù)需要A進(jìn)行操作,則B需要輸入一些身份信息以指示A在獲得授權(quán)后繼續(xù)后續(xù)工作。
[0003]現(xiàn)有的協(xié)作技術(shù)都是利用操作系統(tǒng)及網(wǎng)絡(luò)協(xié)議的支持,從而達(dá)到與遠(yuǎn)程用戶協(xié)作的目的。主要方式包括利用Windows系統(tǒng)自帶的遠(yuǎn)程協(xié)作功能或利用第三方軟件實(shí)現(xiàn)遠(yuǎn)程協(xié)作功能。無論是Windows自帶的“遠(yuǎn)程桌面連接”還是第三方軟件提供“遠(yuǎn)程協(xié)助”,在系統(tǒng)層實(shí)現(xiàn)方面,被控客戶端需要將整個(gè)計(jì)算機(jī)權(quán)限完全轉(zhuǎn)移,包括文件、程序等資源。在協(xié)作操作時(shí),被控客戶端由于沒有計(jì)算機(jī)操作權(quán)限導(dǎo)致無法進(jìn)行其他業(yè)務(wù)操作而處于等待狀態(tài),利用Windows系統(tǒng)自帶的遠(yuǎn)程協(xié)作功能時(shí),被控客戶端的顯示屏為黑屏,無法看見協(xié)作端所進(jìn)行的操作內(nèi)容。另外,采用第三方軟件實(shí)現(xiàn)遠(yuǎn)程協(xié)作功能時(shí),如果第三方受到惡意攻擊,與之通信的企業(yè)內(nèi)部數(shù)據(jù)就可能被竊取。所以,對(duì)于安全要求極高的企業(yè)來說,現(xiàn)有的遠(yuǎn)程協(xié)作方式均存在較高的安全隱患。

【發(fā)明內(nèi)容】

[0004]為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供一種協(xié)作方法、服務(wù)器、客戶端與系統(tǒng),以解決現(xiàn)有協(xié)作技術(shù)安全隱患較高,不能適用于比如銀行等對(duì)安全級(jí)別要求較高的大型企業(yè)的技術(shù)問題。本發(fā)明提供技術(shù)方案如下:
[0005]一種協(xié)作方法,包括:
[0006]服務(wù)器接收協(xié)作發(fā)起客戶端發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù);
[0007]服務(wù)器將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便于協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0008]本發(fā)明還提供一種服務(wù)器,所述服務(wù)器包括:
[0009]第一接收模塊,用于接收協(xié)作發(fā)起客戶端發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù);[0010]第一發(fā)送模塊,用于將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便于協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0011]本發(fā)明還提供一種協(xié)作方法,所述方法包括:
[0012]協(xié)作發(fā)起端將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化以得到第一序列化數(shù)據(jù);
[0013]協(xié)作發(fā)起端向服務(wù)器發(fā)送攜帶第一序列化數(shù)據(jù)和協(xié)作受理端用戶名的第一消息;以便服務(wù)器將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0014]本發(fā)明還提供一種客戶端,所述客戶端包括:
[0015]第一序列化模塊,用于將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化以得到第一序列化數(shù)據(jù);
[0016]第一數(shù)據(jù)發(fā)送模塊,用于向服務(wù)器發(fā)送攜帶第一序列化數(shù)據(jù)和協(xié)作受理端用戶名的第一消息;以便服務(wù)器將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0017]本發(fā)明還提供一種協(xié)作方法,包括:
[0018]協(xié)作受理客戶端接收服務(wù)器發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù);
[0019]協(xié)作受理客戶端對(duì)接收的第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象;
[0020]在所述第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0021]本發(fā)明還提供一種客戶端,包括:
[0022]第二數(shù)據(jù)接收模塊,用于接收服務(wù)器發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù);
[0023]第二反序列化模塊,用于對(duì)接收的第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象;
[0024]執(zhí)行模塊,用于在所述第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0025]本發(fā)明還提供一種客戶端協(xié)作系統(tǒng),所述系統(tǒng)包括:
[0026]如上述任一所述的服務(wù)器、如上述任一所述的客戶端和如上述任一所述的客戶端。
[0027]由以上本發(fā)明實(shí)施例提供的技術(shù)方案可見,協(xié)作發(fā)起客戶端與協(xié)作受理客戶端在進(jìn)行協(xié)作時(shí),協(xié)作發(fā)起客戶端以服務(wù)器為中介,將應(yīng)用對(duì)象序列化之后由服務(wù)器轉(zhuǎn)發(fā)到協(xié)作受理客戶端,協(xié)作受理客戶端將序列化數(shù)據(jù)進(jìn)行反序列化操作即可還原出應(yīng)用對(duì)象。
[0028]對(duì)于協(xié)作受理客戶端來說,其具有權(quán)限操作的僅僅是服務(wù)器轉(zhuǎn)發(fā)的序列化數(shù)據(jù)對(duì)應(yīng)的應(yīng)用對(duì)象,其他的資源對(duì)于協(xié)作受理客戶端來說并不可見,對(duì)應(yīng)的操作權(quán)限無需轉(zhuǎn)移,應(yīng)用的操作權(quán)限是否轉(zhuǎn)移由協(xié)作發(fā)起客戶端決定,而且操作權(quán)限的轉(zhuǎn)移局限在當(dāng)前的應(yīng)用對(duì)象,不會(huì)對(duì)客戶端操作系統(tǒng)中的其他應(yīng)用程序造成任何威脅;協(xié)作過程不涉及第三方應(yīng)用軟件,可以避免因第三方受到惡意攻擊,導(dǎo)致與之通信的企業(yè)內(nèi)部數(shù)據(jù)被竊取的情況,提高了業(yè)務(wù)操作的安全性。
[0029]進(jìn)一步的,在現(xiàn)有技術(shù)中,實(shí)現(xiàn)協(xié)作時(shí),需要實(shí)時(shí)傳輸鼠標(biāo)操作,程序運(yùn)行以及屏幕變化等數(shù)據(jù),對(duì)網(wǎng)絡(luò)帶寬要求比較高,在協(xié)作過程中,經(jīng)常出現(xiàn)操作延時(shí)和中斷的情況;現(xiàn)有的協(xié)作模式都是基于點(diǎn)對(duì)點(diǎn)的通信方式,需要兩臺(tái)客戶端能夠直接通信并且保持連接狀態(tài),有些協(xié)作軟件需要要求通過防火墻并且做相應(yīng)的端口映射,確保協(xié)作的計(jì)算機(jī)之間網(wǎng)絡(luò)連通。而在本發(fā)明中,進(jìn)行協(xié)作的客戶端之間并不需要實(shí)時(shí)傳輸鼠標(biāo)操作,程序運(yùn)行以及屏幕變化等數(shù)據(jù),只需要將業(yè)務(wù)相關(guān)的某個(gè)狀態(tài)下的應(yīng)用對(duì)象序列化后進(jìn)行傳輸即可,節(jié)約了大量網(wǎng)絡(luò)資源;其次,本發(fā)明中應(yīng)用對(duì)象狀態(tài)的傳輸借助于服務(wù)器中轉(zhuǎn),協(xié)作的客戶端之間并不需要直接通信并且保持連接狀態(tài),只要保證與服務(wù)器之間的通信就可以,克服了客戶端只能進(jìn)行點(diǎn)對(duì)點(diǎn)的協(xié)作的局限,可以將客戶端協(xié)作擴(kuò)展到分布式環(huán)境中;業(yè)務(wù)應(yīng)用具有普適性。只要是在該客戶端系統(tǒng)上開發(fā)運(yùn)行的應(yīng)用,即可在客戶端實(shí)現(xiàn)遠(yuǎn)程協(xié)作。
【專利附圖】

【附圖說明】
[0030]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
[0031]圖1為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例1的流程圖;
[0032]圖2為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例2的流程圖;
[0033]圖3為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例3的流程圖;
[0034]圖4為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例4的流程圖;
[0035]圖5為本發(fā)明實(shí)施例序列化過程信號(hào)流圖;
[0036]圖6為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例5的流程圖;
[0037]圖7為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例6的流程圖;
[0038]圖8為本發(fā)明實(shí)施例反序列化過程信號(hào)流圖;
[0039]圖9為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例7的流程圖;
[0040]圖10為本發(fā)明實(shí)施例一種服務(wù)器實(shí)施例1的結(jié)構(gòu)示意圖;
[0041]圖11為本發(fā)明實(shí)施例一種服務(wù)器實(shí)施例2的結(jié)構(gòu)示意圖;
[0042]圖12為本發(fā)明實(shí)施例一種客戶端實(shí)施例1的結(jié)構(gòu)示意圖;
[0043]圖13為本發(fā)明實(shí)施例一種客戶端實(shí)施例2的結(jié)構(gòu)示意圖;
[0044]圖14為本發(fā)明實(shí)施例一種協(xié)作系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖;
[0045]圖15為本發(fā)明實(shí)施例一種協(xié)作方法在一種可能的應(yīng)用場景下基于的框架結(jié)構(gòu);
[0046]圖16為圖15所示框架下對(duì)應(yīng)的序列化和反序列化信號(hào)流圖。
【具體實(shí)施方式】
[0047]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0048]如圖1所示,為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例1的流程圖,本實(shí)施例以服務(wù)器為執(zhí)行主體進(jìn)行說明,具體可以包括如下步驟:
[0049]SlOl:服務(wù)器接收協(xié)作發(fā)起客戶端發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息;
[0050]所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù),對(duì)于當(dāng)前應(yīng)用對(duì)象來說,用戶每進(jìn)行一個(gè)操作,其對(duì)應(yīng)的狀態(tài)是不同的,所述第一狀態(tài)可以理解為協(xié)作發(fā)起客戶端在協(xié)作發(fā)起客戶端對(duì)其進(jìn)行序列化操作之前的最后一個(gè)狀態(tài)。
[0051]協(xié)作發(fā)起客戶端將第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名一起作為第一消息發(fā)送到服務(wù)器。
[0052]S102:服務(wù)器將所述第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端;
[0053]服務(wù)器根據(jù)第一消息中的攜帶的用戶名可以唯一的確定一個(gè)用戶,進(jìn)而確定該用戶使用的客戶端,即協(xié)作受理客戶端,協(xié)作受理客戶端接收到第一消息后,可以對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作,得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上進(jìn)行后續(xù)的業(yè)務(wù)操作。
[0054]本實(shí)施例提供的技術(shù)方案,協(xié)作發(fā)起客戶端與協(xié)作受理客戶端在進(jìn)行協(xié)作時(shí),協(xié)作發(fā)起客戶端以服務(wù)器為中介,將應(yīng)用對(duì)象序列化之后由服務(wù)器轉(zhuǎn)發(fā)到協(xié)作受理客戶端,協(xié)作受理客戶端將序列化數(shù)據(jù)進(jìn)行反序列化操作即可還原出應(yīng)用對(duì)象。
[0055]對(duì)于協(xié)作受理客戶端來說,其具有權(quán)限操作的僅僅是服務(wù)器轉(zhuǎn)發(fā)的序列化數(shù)據(jù)對(duì)應(yīng)的應(yīng)用對(duì)象,其他的資源對(duì)于協(xié)作受理客戶端來說并不可見,對(duì)應(yīng)的操作權(quán)限無需轉(zhuǎn)移,應(yīng)用的操作權(quán)限是否轉(zhuǎn)移由協(xié)作發(fā)起客戶端決定,而且操作權(quán)限的轉(zhuǎn)移局限在當(dāng)前的應(yīng)用對(duì)象,不會(huì)對(duì)客戶端操作系統(tǒng)中的其他應(yīng)用程序造成任何威脅;協(xié)作過程不涉及第三方應(yīng)用軟件,可以避免因第三方受到惡意攻擊,導(dǎo)致與之通信的企業(yè)內(nèi)部數(shù)據(jù)被竊取的情況,提高了業(yè)務(wù)操作的安全性。
[0056]進(jìn)一步,參考圖2所示,為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例2的流程圖,本實(shí)施例的技術(shù)方案應(yīng)用于服務(wù)器側(cè),可以看作是在實(shí)施例1基礎(chǔ)上的一個(gè)具體實(shí)現(xiàn),本實(shí)施例具體可以包括:
[0057]S201:服務(wù)器接收協(xié)作發(fā)起客戶端發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息;
[0058]所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù)。
[0059]優(yōu)選的,所述第一消息中還可以攜帶有協(xié)作受理客戶端對(duì)所述應(yīng)用對(duì)象的操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果。
[0060]S202:服務(wù)器將所述第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端;
[0061]其中,服務(wù)器將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端的方式可以采用如下任一方式:[0062]服務(wù)器推送方式:服務(wù)器根據(jù)協(xié)作受理客戶端用戶名確定協(xié)作受理客戶端的IP地址;將所述第一消息推送到所述IP地址指示的協(xié)作受理客戶端;
[0063]或,
[0064]客戶端主動(dòng)查詢方式:服務(wù)器接收任一客戶端發(fā)送的查詢請(qǐng)求;如果該客戶端的用戶名與第一消息中攜帶的用戶名相同,則將所述第一消息發(fā)送到所述客戶端,所述客戶端記為協(xié)作受理客戶端。
[0065]當(dāng)所述第一消息中攜帶的操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作的結(jié)果時(shí),本實(shí)施例在上述步驟之后,還可以包括如下優(yōu)選步驟:
[0066]S203:服務(wù)器接收協(xié)作受理客戶端發(fā)送的攜帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息;
[0067]協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象,并在第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上完成后續(xù)的業(yè)務(wù)操作,如果第一消息中指示了協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果,則協(xié)作受理客戶端需要將完成業(yè)務(wù)操作后的應(yīng)用對(duì)象進(jìn)行序列化得到第二序列化數(shù)據(jù)并將其通過服務(wù)器返回給協(xié)作發(fā)起客戶端。
[0068]S204:服務(wù)器將第二消息發(fā)送到協(xié)作發(fā)起客戶端;
[0069]協(xié)作發(fā)起客戶端對(duì)第二消息中的第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象。
[0070]本實(shí)施例不僅可以帶來實(shí)施例1的有益效果,進(jìn)一步的,進(jìn)行協(xié)作的客戶端之間并不需要實(shí)時(shí)傳輸鼠標(biāo)操作,程序運(yùn)行以及屏幕變化等數(shù)據(jù),只需要將業(yè)務(wù)相關(guān)的某個(gè)狀態(tài)下的應(yīng)用對(duì)象序列化后進(jìn)行傳輸即可,節(jié)約了大量網(wǎng)絡(luò)資源;其次,應(yīng)用對(duì)象狀態(tài)的傳輸借助于服務(wù)器中轉(zhuǎn),協(xié)作的客戶端之間并不需要直接通信并且保持連接狀態(tài),只要保證與服務(wù)器之間的通信就可以,克服了客戶端只能進(jìn)行點(diǎn)對(duì)點(diǎn)的協(xié)作的局限,可以將客戶端協(xié)作擴(kuò)展到分布式環(huán)境中。
[0071]參考圖3所示,為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例3的流程圖,本流程應(yīng)用于協(xié)作發(fā)起客戶端側(cè),本實(shí)施例具體可以包括:
[0072]S301:協(xié)作發(fā)起端將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化以得到第一序列化數(shù)據(jù);
[0073]S302:協(xié)作發(fā)起端向服務(wù)器發(fā)送攜帶第一序列化數(shù)據(jù)和協(xié)作受理端用戶名的第一消息;
[0074]服務(wù)器接收到所述第一消息后,將其發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,具體的發(fā)送方式可以參考實(shí)施例2中的步驟S202,這里不再贅述,然后,協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0075]參考圖4所示,為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例4的流程圖,本流程應(yīng)用于協(xié)作發(fā)起客戶端側(cè),可以看作是在實(shí)施例3基礎(chǔ)上的一種具體實(shí)現(xiàn),本實(shí)施例具體可以包括:
[0076]S401:協(xié)作發(fā)起端將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化以得到第一序列化數(shù)據(jù);
[0077]協(xié)作發(fā)起端得到第一序列化數(shù)據(jù)的過程如下:[0078]在第一狀態(tài)下,遍歷當(dāng)前應(yīng)用對(duì)象的屬性,所述屬性包括公有屬性和私有屬性,由于應(yīng)用對(duì)象的私有屬性無法獲取,本實(shí)施例中引入屬性存儲(chǔ)圖的概念,屬性存儲(chǔ)圖中存儲(chǔ)應(yīng)用對(duì)象的所有私有屬性的索引,將屬性存儲(chǔ)圖作為應(yīng)用對(duì)象的一個(gè)公有屬性,則該應(yīng)用對(duì)象的私有屬性均存儲(chǔ)在該公有屬性下。因此,遍歷當(dāng)前應(yīng)用對(duì)象的屬性,即為在第一狀態(tài)下,分別遍歷當(dāng)前應(yīng)用對(duì)象的公有屬性和第一屬性存儲(chǔ)圖,其中,所述第一屬性存儲(chǔ)圖為當(dāng)前應(yīng)用對(duì)象的所有私有屬性的索引,對(duì)于公有屬性,執(zhí)行第一序列化流程,對(duì)于私有屬性,則在第一屬性存儲(chǔ)圖對(duì)應(yīng)的節(jié)點(diǎn)下,執(zhí)行第一序列化流程。
[0079]所述第一序列化流程包括(參考圖5所示):判斷屬性(包括公有屬性和私有屬性)類型是否為基本類型,若是基本類型,則將基本類型的屬性序列化為XML節(jié)點(diǎn)并轉(zhuǎn)化為字符流,其中節(jié)點(diǎn)名為屬性名,節(jié)點(diǎn)值為屬性值;若不是基本類型,判斷屬性類型是否為集合類型,若不是集合類型,則創(chuàng)建該非集合類型屬性對(duì)應(yīng)的節(jié)點(diǎn),在該節(jié)點(diǎn)下,將非集合類型的屬性作為當(dāng)前應(yīng)用對(duì)象,返回執(zhí)行所述分別遍歷當(dāng)前應(yīng)用對(duì)象的公有屬性和第一屬性存儲(chǔ)圖的步驟,對(duì)于所述非集合類型的屬性,其實(shí)質(zhì)是遍歷該非集合類型屬性的公有屬性和私有屬性。
[0080]若是集合類型,創(chuàng)建該集合類型屬性對(duì)應(yīng)的節(jié)點(diǎn),節(jié)點(diǎn)名為屬性名,遍歷集合類型屬性中每個(gè)集合元素,若集合元素的類型是基本類型,在集合類型屬性對(duì)應(yīng)的節(jié)點(diǎn)下,將基本類型的集合元素序列化為XML節(jié)點(diǎn)并轉(zhuǎn)化為字符流;若集合元素的類型不是基本類型,則將該集合元素作為當(dāng)前應(yīng)用對(duì)象,返回執(zhí)行所述分別遍歷當(dāng)前應(yīng)用對(duì)象的公有屬性和第一屬性存儲(chǔ)圖的步驟。
[0081]執(zhí)行完上述第一序列化流程后,除基本類型之外的其他類型的屬性均被拆分為多個(gè)基本類型,從而簡化了序列化過程。非基本類型的屬性序列化完成后形成的是多級(jí)節(jié)點(diǎn)的形式,比如,對(duì)于一個(gè)集合類型的屬性來說,假設(shè)該屬性對(duì)應(yīng)的節(jié)點(diǎn)名為A,若該集合類型是數(shù)組類型,則遍歷集合元素時(shí),集合元素對(duì)應(yīng)的節(jié)點(diǎn)可以看作是節(jié)點(diǎn)A的子節(jié)點(diǎn)。
[0082]需要說明,除了 XML節(jié)點(diǎn)之外,還可以將基本類型的屬性直接序列化為二進(jìn)制、JSON等形式。
[0083]當(dāng)前應(yīng)用對(duì)象的屬性遍歷完后,該應(yīng)用對(duì)象的序列化操作即完成,需要說明的是,由于對(duì)應(yīng)用對(duì)象序列化時(shí),采用的遍歷應(yīng)用對(duì)象屬性的方式,也就是說不同的屬性的序列化不是同時(shí)完成的,所以已經(jīng)序列化的部分轉(zhuǎn)化成的字符流要先進(jìn)行存儲(chǔ),等待整個(gè)應(yīng)用對(duì)象序列化完成之后(即得到第一序列化數(shù)據(jù)),再進(jìn)行發(fā)送。
[0084]S402:協(xié)作發(fā)起端向服務(wù)器發(fā)送攜帶第一序列化數(shù)據(jù)和協(xié)作受理端用戶名的第一消息;
[0085]服務(wù)器接收第一消息后,將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象,在第一狀態(tài)下的所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作,若第一消息中指示了協(xié)作受理客戶端需要返回操作結(jié)果,則協(xié)作受理客戶端需要對(duì)第二狀態(tài)下的當(dāng)前應(yīng)用對(duì)象進(jìn)行序列化得到第二序列化數(shù)據(jù),并通過服務(wù)器發(fā)送到協(xié)作發(fā)起客戶端。
[0086]S403:協(xié)作發(fā)起客戶端接收服務(wù)器發(fā)送的攜帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息;
[0087]S404:協(xié)作發(fā)起客戶端對(duì)第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的應(yīng)用對(duì)象。
[0088]實(shí)施例3和實(shí)施例4是本發(fā)明技術(shù)方案從協(xié)作發(fā)起客戶端側(cè)進(jìn)行描述的,可以產(chǎn)生與實(shí)施例1和實(shí)施例2相同的有益效果,這里不再贅述。
[0089]參考圖6所示,為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例5的流程圖,本流程應(yīng)用于協(xié)作受理客客戶端側(cè),本實(shí)施例具體可以包括:
[0090]S601:協(xié)作受理客戶端接收服務(wù)器發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息;
[0091]所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù)。
[0092]S602:協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象;
[0093]S603:在所述第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0094]參考圖7所示,為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例6的流程圖,本流程應(yīng)用于協(xié)作發(fā)起客戶端側(cè),本實(shí)施例具體可以包括:
[0095]S701:協(xié)作受理客戶端接收服務(wù)器發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息;
[0096]所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù);
[0097]S702:協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象;
[0098]協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作的過程如下(參考圖8所示):
[0099]構(gòu)造初始狀態(tài)下的當(dāng)前應(yīng)用對(duì)象,在構(gòu)成初始狀態(tài)下的當(dāng)前應(yīng)用對(duì)象后,可以通過new函數(shù)獲取第二屬性存儲(chǔ)圖,所述第二屬性存儲(chǔ)圖為初始應(yīng)用對(duì)象的所有私有屬性的索引,用于反序列化得到私有屬性;
[0100]在第一序列化數(shù)據(jù)的節(jié)點(diǎn)信息中,分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息,對(duì)于公有節(jié)點(diǎn),執(zhí)行第一反序列化流程,對(duì)于私有節(jié)點(diǎn),執(zhí)行第二反序列化流程;
[0101]所述第一反序列化流程包括:
[0102]所述第一反序列化流程包括:判斷節(jié)點(diǎn)類型是否為基本類型,若是基本類型,則生成基本類型的公有屬性,屬性名為節(jié)點(diǎn)名,屬性值為節(jié)點(diǎn)值;
[0103]若節(jié)點(diǎn)類型不是基本類型,判斷節(jié)點(diǎn)類型是否為集合類型,若不是集合類型,則在該節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟;
[0104]若是集合類型,則遍歷集合類型節(jié)點(diǎn)中每個(gè)集合元素節(jié)點(diǎn),若集合元素節(jié)點(diǎn)類型是基本類型,生成基本類型的集合元素,元素名為節(jié)點(diǎn)名,元素值為節(jié)點(diǎn)值;若集合元素節(jié)點(diǎn)類型不是基本類型,則在該集合元素節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟;
[0105]所述第二反序列化流程包括:
[0106]在第二屬性存儲(chǔ)圖中取屬性名是所述節(jié)點(diǎn)名的屬性,判斷節(jié)點(diǎn)類型是否為基本類型,若是基本類型,為該屬性賦值為節(jié)點(diǎn)值;[0107]若節(jié)點(diǎn)類型不是基本類型,判斷節(jié)點(diǎn)類型是否為集合類型,若不是集合類型,則在該非集合元素節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟;
[0108]若是集合類型,則遍歷集合類型節(jié)點(diǎn)中每個(gè)集合元素節(jié)點(diǎn),若集合元素節(jié)點(diǎn)類型是基本類型,則在所述屬性下生成基本類型的集合元素,元素名為節(jié)點(diǎn)名,元素值為節(jié)點(diǎn)值;若集合元素節(jié)點(diǎn)類型不是基本類型,則在該集合元素節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟。
[0109]協(xié)作受理客戶端遍歷所有的公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息后,獲得所有的公有屬性和私有屬性,至此,就可以得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象,因?yàn)榈诙傩源鎯?chǔ)圖中的私有屬性均已經(jīng)具有具體的屬性值,而且該屬性值是當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的屬性值,即在反序列化完成后,第二屬性存儲(chǔ)圖為第一狀態(tài)下當(dāng)前應(yīng)用對(duì)象的私有屬性的索引。
[0110]S703:在所述第一狀態(tài)下應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0111]所述第一消息還可以包括操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果,當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果時(shí),協(xié)作受理客戶端還可以執(zhí)行以下優(yōu)選流程:
[0112]S704:將當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下進(jìn)行序列化操作,得到第二序列化數(shù)據(jù);
[0113]如果協(xié)作發(fā)起客戶端需要協(xié)作受理客戶端返回操作結(jié)果,則協(xié)作受理客戶端需要對(duì)當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下進(jìn)行序列化操作,具體的序列化過程可以參考實(shí)施例4中的序列化過程,這里不再贅述。
[0114]S705:向服務(wù)器返回?cái)y帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息;
[0115]服務(wù)器接收第二消息后,將第二消息發(fā)送到協(xié)作發(fā)起客戶端,協(xié)作發(fā)起客戶端對(duì)第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的應(yīng)用對(duì)象,即得到協(xié)作受理客戶端返回操作結(jié)果。
[0116]需要說明的是,雖然本發(fā)明中的實(shí)施例是以協(xié)作發(fā)起客戶端和協(xié)作受理客戶端分別單獨(dú)作為執(zhí)行主體來寫的,本領(lǐng)域技術(shù)人員可以理解,在實(shí)際操作中,協(xié)作發(fā)起客戶端和協(xié)作受理客戶端可以是同一個(gè)客戶端,因?yàn)橐粋€(gè)客戶端既可能是協(xié)作發(fā)起客戶端也可能是協(xié)作受理客戶端,所以,在實(shí)際應(yīng)用中,一個(gè)客戶端應(yīng)該同時(shí)能夠完成協(xié)作發(fā)起客戶端和協(xié)作受理客戶端的工作流程。
[0117]實(shí)施例5和實(shí)施例6是本發(fā)明技術(shù)方案從協(xié)作發(fā)起客戶端側(cè)進(jìn)行描述的,可以產(chǎn)生與實(shí)施例1和實(shí)施例2相同的有益效果,這里不再贅述。
[0118]參考圖9所示,為本發(fā)明實(shí)施例一種協(xié)作方法實(shí)施例7的流程圖,本實(shí)施例可以看作是服務(wù)器、協(xié)作發(fā)起客戶端和協(xié)作受理客戶端之間的一個(gè)綜合流程,相關(guān)步驟的具體實(shí)現(xiàn)方式可以參考實(shí)施例1-實(shí)施例6中的相關(guān)步驟,這里不再贅述。本實(shí)施例具體可以包括:
[0119]S901:協(xié)作發(fā)起端將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化以得到第一序列化數(shù)據(jù);
[0120]協(xié)作發(fā)起端將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化的過程具體可以參考實(shí)施例4中的相關(guān)步驟,這里不再贅述。
[0121]S902:協(xié)作發(fā)起端向服務(wù)器發(fā)送攜帶第一序列化數(shù)據(jù)和協(xié)作受理端用戶名的第一消息;
[0122]S903:服務(wù)器將所述第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端;
[0123]S904:協(xié)作受理客戶端接收服務(wù)器發(fā)送的第一消息;
[0124]S905:協(xié)作受理客戶端對(duì)接收的第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象;
[0125]協(xié)作受理客戶端對(duì)接收的第一序列化數(shù)據(jù)進(jìn)行反序列化操作的過程可以參考實(shí)施例6中的相關(guān)步驟,這里不再贅述。
[0126]S906:在所述第一狀態(tài)下應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0127]所述第一消息還包括操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果,當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果時(shí),還可以包括如下流程:
[0128]S907:將當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下進(jìn)行序列化操作,得到第二序列化數(shù)據(jù);
[0129]若協(xié)作發(fā)起客戶端需要協(xié)作受理客戶端返回操作結(jié)果,則協(xié)作受理客戶端在所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作之后,將當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下進(jìn)行序列化操作,并通過服務(wù)器轉(zhuǎn)發(fā)到協(xié)作發(fā)起客戶端。
[0130]S908:向服務(wù)器返回?cái)y帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息;
[0131]S909:服務(wù)器接收協(xié)作受理客戶端發(fā)送的第二消息;
[0132]S910:服務(wù)器將第二消息發(fā)送到協(xié)作發(fā)起客戶端;
[0133]S911:協(xié)作發(fā)起客戶端接收服務(wù)器發(fā)送的第二消息;
[0134]S912:協(xié)作發(fā)起客戶端對(duì)第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的應(yīng)用對(duì)象。
[0135]上面對(duì)本發(fā)明實(shí)施例中的客戶端協(xié)作方法進(jìn)行了描述,下面對(duì)本發(fā)明實(shí)施例中的服務(wù)器進(jìn)行描述,請(qǐng)參閱圖10,本發(fā)明中服務(wù)器實(shí)施例1的結(jié)構(gòu)示意圖,包括:
[0136]第一接收模塊1010,用于接收協(xié)作發(fā)起客戶端發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù);
[0137]第一發(fā)送模塊1020,用于將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便于協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0138]進(jìn)一步的,所述第一消息中還攜帶有協(xié)作受理客戶端對(duì)所述應(yīng)用對(duì)象的操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作的結(jié)果和不返回業(yè)務(wù)操作的結(jié)果。當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作的結(jié)果時(shí),參考圖11所示,為本發(fā)明中服務(wù)器實(shí)施例2結(jié)構(gòu)示意圖,除圖8所示的模塊外,所述服務(wù)器還可以包括:
[0139]第二接收模塊1110,用于接收協(xié)作受理客戶端返回的攜帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息,所述第二序列化數(shù)據(jù)為所述當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下的序列化數(shù)據(jù);
[0140]第二發(fā)送模塊1120,用于將第二消息發(fā)送到協(xié)作發(fā)起客戶端,以便協(xié)作發(fā)起客戶端對(duì)第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象。[0141]優(yōu)選的,所述第一發(fā)送模塊1020可以包括:
[0142]IP地址確定子模塊1130,用于根據(jù)協(xié)作受理客戶端用戶名確定協(xié)作受理客戶端的IP地址;發(fā)送子模塊1140,用于將所述第一消息推送到所述IP地址指示的協(xié)作受理客戶端;
[0143]或,
[0144]接收子模塊1150,用于接收任一客戶端發(fā)送的查詢請(qǐng)求;則所述發(fā)送子模塊1140,具體用于當(dāng)該客戶端的用戶名與第一消息中攜帶的用戶名相同時(shí),將所述第一消息發(fā)送到所述客戶端,所述客戶端為協(xié)作受理客戶端。
[0145]其中,第二發(fā)送模塊將第二消息發(fā)送到協(xié)作發(fā)起客戶端的方式參考第一發(fā)送模塊。
[0146]參考圖12所示,為本發(fā)明實(shí)施例中一種客戶端(協(xié)作發(fā)起客戶端)實(shí)施例1的結(jié)構(gòu)示意圖,所述客戶端可以包括:
[0147]第一序列化模塊1201,用于將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化以得到第一序列化數(shù)據(jù);
[0148]第一數(shù)據(jù)發(fā)送模塊1202,用于向服務(wù)器發(fā)送攜帶第一序列化數(shù)據(jù)和協(xié)作受理端用戶名的第一消息;以便服務(wù)器將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0149]進(jìn)一步的,本發(fā)明實(shí)施例還提供一種客戶端(協(xié)作發(fā)起客戶端)的另一實(shí)施例,所述第一消息還包括操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果,當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果時(shí),除了圖12所示的模塊外,所述客戶端還可以包括:
[0150]第一數(shù)據(jù)接收模塊,用于接收服務(wù)器發(fā)送的攜帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息,所述第二序列化數(shù)據(jù)為所述當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下的序列化數(shù)據(jù);
[0151]第一反序列化模塊,用于對(duì)接收的第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象。
[0152]其中,第一序列化模塊將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化以得到第一序列化數(shù)據(jù)的流程如下:
[0153]在第一狀態(tài)下,分別遍歷當(dāng)前應(yīng)用對(duì)象的公有屬性和第一屬性存儲(chǔ)圖,所述第一屬性存儲(chǔ)圖為當(dāng)前應(yīng)用對(duì)象的所有私有屬性的索引,對(duì)于公有屬性,執(zhí)行第一序列化流程,對(duì)于私有屬性,則在第一屬性存儲(chǔ)圖對(duì)應(yīng)的節(jié)點(diǎn)下,執(zhí)行第一序列化流程;
[0154]所述第一序列化流程包括:判斷屬性類型是否為基本類型,若是基本類型,則將基本類型的屬性序列化為XML節(jié)點(diǎn)并轉(zhuǎn)化為字符流,其中節(jié)點(diǎn)名為屬性名,節(jié)點(diǎn)值為屬性值;若不是基本類型,判斷屬性類型是否為集合類型,若不是集合類型,則創(chuàng)建該非集合類型屬性對(duì)應(yīng)的節(jié)點(diǎn),在該節(jié)點(diǎn)下,將非集合類型的屬性作為當(dāng)前應(yīng)用對(duì)象,返回執(zhí)行所述分別遍歷當(dāng)前應(yīng)用對(duì)象的公有屬性和第一屬性存儲(chǔ)圖的步驟;若是集合類型,創(chuàng)建該集合類型屬性對(duì)應(yīng)的節(jié)點(diǎn),節(jié)點(diǎn)名為屬性名,遍歷集合類型屬性中每個(gè)集合元素,若集合元素的類型是基本類型,在集合類型屬性對(duì)應(yīng)的節(jié)點(diǎn)下,將基本類型的集合元素序列化為XML節(jié)點(diǎn)并轉(zhuǎn)化為字符流;若集合元素的類型不是基本類型,則將該集合元素作為當(dāng)前應(yīng)用對(duì)象,返回執(zhí)行所述分別遍歷當(dāng)前應(yīng)用對(duì)象的公有屬性和第一屬性存儲(chǔ)圖的步驟。
[0155]參考圖13所示,本發(fā)明實(shí)施例中一種客戶端(協(xié)作受理客戶端)實(shí)施例2的結(jié)構(gòu)示意圖,所述客戶端可以包括:
[0156]第二數(shù)據(jù)接收模塊1310,用于接收服務(wù)器發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù);
[0157]第二反序列化模塊1320,用于對(duì)接收的第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象;
[0158]執(zhí)行模塊1330,用于在所述第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
[0159]進(jìn)一步的,本發(fā)明實(shí)施例中一種客戶端(協(xié)作受理客戶端)的又一實(shí)施例,所述第一消息還包括操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果,當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果時(shí),除圖13所示的模塊外,所述客戶端還可以包括:
[0160]第二序列化模塊,用于將當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下進(jìn)行序列化操作,得到第二序列化數(shù)據(jù);
[0161]第二數(shù)據(jù)發(fā)送模塊,用于向服務(wù)器返回?cái)y帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息;以便服務(wù)器將第二消息發(fā)送到協(xié)作發(fā)起客戶端,以便協(xié)作發(fā)起客戶端對(duì)第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的應(yīng)用對(duì)象。
[0162]其中,第二序列化模塊將當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下進(jìn)行序列化操作,得到第二序列化數(shù)據(jù)執(zhí)行如下流程:
[0163]第二反序列化模塊對(duì)接收的第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象,執(zhí)行如下流程:
[0164]構(gòu)造初始狀態(tài)下的當(dāng)前應(yīng)用對(duì)象,獲取第二屬性存儲(chǔ)圖,所述第二屬性存儲(chǔ)圖為初始狀態(tài)下的當(dāng)前應(yīng)用對(duì)象的所有私有屬性的索引;
[0165]在第一序列化數(shù)據(jù)的節(jié)點(diǎn)信息中,分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息,對(duì)于公有節(jié)點(diǎn),執(zhí)行第一反序列化流程,對(duì)于私有節(jié)點(diǎn),執(zhí)行第二反序列化流程;
[0166]所述第一反序列化流程包括:判斷節(jié)點(diǎn)類型是否為基本類型,若是基本類型,則生成基本類型的公有屬性,屬性名為節(jié)點(diǎn)名,屬性值為節(jié)點(diǎn)值;若節(jié)點(diǎn)類型不是基本類型,判斷節(jié)點(diǎn)類型是否為集合類型,若不是集合類型,則在該節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟;若是集合類型,則遍歷集合類型節(jié)點(diǎn)中每個(gè)集合元素節(jié)點(diǎn),若集合元素節(jié)點(diǎn)類型是基本類型,生成基本類型的集合元素,元素名為節(jié)點(diǎn)名,元素值為節(jié)點(diǎn)值;若集合元素節(jié)點(diǎn)類型不是基本類型,則在該集合元素節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟;
[0167]所述第二反序列化流程包括:在第二屬性存儲(chǔ)圖中取屬性名是所述節(jié)點(diǎn)名的屬性,判斷節(jié)點(diǎn)類型是否為基本類型,若是基本類型,為該屬性賦值為節(jié)點(diǎn)值;若節(jié)點(diǎn)類型不是基本類型,判斷節(jié)點(diǎn)類型是否為集合類型,若不是集合類型,則在該非集合元素節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟;若是集合類型,則遍歷集合類型節(jié)點(diǎn)中每個(gè)集合元素節(jié)點(diǎn),若集合元素節(jié)點(diǎn)類型是基本類型,則在所述屬性下生成基本類型的集合元素,元素名為節(jié)點(diǎn)名,元素值為節(jié)點(diǎn)值;若集合元素節(jié)點(diǎn)類型不是基本類型,則在該集合元素節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟。
[0168]需要說明的是,在實(shí)際應(yīng)用中,一個(gè)客戶端要同時(shí)具有協(xié)作發(fā)起客戶端和協(xié)作受理客戶端的模塊,實(shí)現(xiàn)一個(gè)客戶端既可以作協(xié)作的發(fā)起方,也可以作協(xié)作的受理方的目的。
[0169]參考圖14所示,本發(fā)明實(shí)施例中一種協(xié)作系統(tǒng)實(shí)施例1的結(jié)構(gòu)示意圖,包括:
[0170]上述任一實(shí)施例所述的服務(wù)器1410、任一實(shí)施例所述的協(xié)作發(fā)起客戶端1420和任一實(shí)施例所述的協(xié)作受理客戶端1430 ;
[0171]為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本發(fā)明時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
[0172]從以上各實(shí)施例的描述可以看出,序列化和反序列化的過程是相當(dāng)復(fù)雜的。為了減輕應(yīng)用開發(fā)人員的負(fù)擔(dān),在實(shí)際應(yīng)用中,可以引入框架模式(參考圖15所示,為個(gè)客戶端應(yīng)用系統(tǒng)的基本架構(gòu)),并通過設(shè)計(jì)專門的應(yīng)用模型,將實(shí)現(xiàn)協(xié)作的整個(gè)過程“隱藏”在應(yīng)用對(duì)象外部。應(yīng)用對(duì)象運(yùn)行在框架的基礎(chǔ)之上??蚣苁枪补δ艿某橄?,它在底層運(yùn)行,為上層應(yīng)用對(duì)象提供基礎(chǔ)服務(wù),其中包括協(xié)作方面的功能服務(wù)。反過來,框架也會(huì)主動(dòng)調(diào)用應(yīng)用對(duì)象的某些接口,實(shí)現(xiàn)對(duì)應(yīng)用對(duì)象的管理和控制。
[0173]應(yīng)用對(duì)象專注于應(yīng)用功能的本身,它通過調(diào)用框架的服務(wù),部分地復(fù)用框架中基礎(chǔ)功能?!皯?yīng)用模型”主要通過一些基類來實(shí)現(xiàn),它們抽象了應(yīng)用對(duì)象的公共特征,在這里我們主要關(guān)注與協(xié)作相關(guān)的部分。在應(yīng)用基類中,一個(gè)重要的設(shè)施是變量容器。它的用途是向框架提供訪問應(yīng)用成員的接口。因?yàn)榫唧w應(yīng)用類都從基類派生,繼承了基類的功能和接口,因此在序列化過程中框架無需感知具體應(yīng)用對(duì)象之間的差異。此外,在應(yīng)用基類中引入數(shù)據(jù)綁定技術(shù),將界面與業(yè)務(wù)邏輯(包括數(shù)據(jù))徹底分離,實(shí)現(xiàn)不同序列化策略。
[0174]應(yīng)用圖15所示的框架結(jié)構(gòu),具有如下優(yōu)點(diǎn):
[0175]1、應(yīng)用對(duì)象在創(chuàng)建完成后,初始化方法會(huì)被框架調(diào)起執(zhí)行。該方法可以接受一個(gè)xml格式的參數(shù)傳入(當(dāng)然還有若干個(gè)重載),它的邏輯主要有兩個(gè),一是根據(jù)xml參數(shù)傳入,對(duì)應(yīng)用對(duì)象進(jìn)行屬性設(shè)置,二是將已經(jīng)完成初始化的應(yīng)用對(duì)象屬性在“屬性圖”中建立索引。屬性圖是一個(gè)哈希表,存、取效率很高。在圖中,用“名字,引用指針”對(duì)存儲(chǔ)一些應(yīng)用對(duì)象的索引。但這個(gè)存儲(chǔ)結(jié)構(gòu)并不對(duì)應(yīng)用開放,目的是為了增強(qiáng)安全性。具體應(yīng)用類的開發(fā)人員只能看到一個(gè)方法,用于將屬性“保存”到這個(gè)圖中??蚣茉谛蛄谢瘧?yīng)用對(duì)象的時(shí)候,要使用這個(gè)圖中的信息,按圖索驥,找到應(yīng)用對(duì)象的屬性信息,完成對(duì)屬性的序列化操作。
[0176]2、反序列化的過程本質(zhì)上就是將一個(gè)應(yīng)用對(duì)象初始化為某個(gè)指定的狀態(tài)。當(dāng)然,xml格式的參數(shù)是有設(shè)定格式的,這是應(yīng)用對(duì)象對(duì)外暴露的接口規(guī)范。具體應(yīng)用類的開發(fā)人員需要將自定義的屬性“保存”到屬性圖中,也就是在圖中建立屬性的索引。這個(gè)過程完全是程式化操作,幾乎拷貝代碼即可完成,因此極為簡單。
[0177]3、應(yīng)用基類對(duì)框架來說,暴露的是序列化和反序列化方法的接口,這兩個(gè)方法的邏輯主體都在基類中實(shí)現(xiàn),應(yīng)用無需重寫(參考圖16所示)。這一對(duì)方法實(shí)現(xiàn)了各種簡單的、復(fù)雜的對(duì)象的序列化邏輯,包括列表和數(shù)組。它依賴應(yīng)用的屬性圖所提供的信息工作。首先,框架創(chuàng)建應(yīng)用對(duì)象,應(yīng)用對(duì)象執(zhí)行自己的構(gòu)造函數(shù),返回應(yīng)用對(duì)象的引用給框架??蚣芫o接著調(diào)用該應(yīng)用對(duì)象的初始化方法,并根據(jù)需要傳入xml格式的參數(shù)給應(yīng)用對(duì)象。應(yīng)用對(duì)象執(zhí)行初始化過程,在屬性圖中建立屬性的索引。初始化過程完成后,框架才認(rèn)為應(yīng)用對(duì)象的構(gòu)造過程結(jié)束。
[0178]本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所述僅是本發(fā)明的【具體實(shí)施方式】,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種協(xié)作方法,其特征在于,包括: 服務(wù)器接收協(xié)作發(fā)起客戶端發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù); 服務(wù)器將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便于協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,服務(wù)器將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,包括: 服務(wù)器根據(jù)協(xié)作受理客戶端用戶名確定協(xié)作受理客戶端的IP地址;服務(wù)器將所述第一消息推送到所述IP地址指示的協(xié)作受理客戶端; 或, 服務(wù)器接收任一客戶端發(fā)送的查詢請(qǐng)求;如果該客戶端的用戶名與第一消息中攜帶的用戶名相同,則將所述第一消息發(fā)送到所述客戶端,所述客戶端為協(xié)作受理客戶端。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一消息還包括操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果,當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果時(shí),還包括: 服務(wù)器接收協(xié)作受理客戶端返回的攜帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息,所述第二序列化數(shù)據(jù)為所述當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下的序列化數(shù)據(jù); 服務(wù)器將第二消息發(fā)送到協(xié)作發(fā)起客戶端,以便協(xié)作發(fā)起客戶端對(duì)第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象。
4.一種服務(wù)器,其特征在于,所述服務(wù)器包括: 第一接收模塊,用于接收協(xié)作發(fā)起客戶端發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù); 第一發(fā)送模塊,用于將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便于協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
5.根據(jù)權(quán)利要求4所述的服務(wù)器,其特征在于,所述第一發(fā)送模塊包括: IP地址確定子模塊,用于根據(jù)協(xié)作受理客戶端用戶名確定協(xié)作受理客戶端的IP地址;發(fā)送子模塊,用于將所述第一消息推送到所述IP地址指示的協(xié)作受理客戶端; 或, 接收子模塊,用于接收任一客戶端發(fā)送的查詢請(qǐng)求;則所述發(fā)送子模塊,具體用于當(dāng)該客戶端的用戶名與第一消息中攜帶的用戶名相同時(shí),將所述第一消息發(fā)送到所述客戶端,所述客戶端為協(xié)作受理客戶端。
6.根據(jù)權(quán)利要求4所述的服務(wù)器,其特征在于,所述第一消息還包括操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果,當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果時(shí),所述服務(wù)器還包括: 第二接收模塊,用于接收協(xié)作受理客戶端返回的攜帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息,所述第二序列化數(shù)據(jù)為所述當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下的序列化數(shù)據(jù); 第二發(fā)送模塊,用于將第二消息發(fā)送到協(xié)作發(fā)起客戶端,以便協(xié)作發(fā)起客戶端對(duì)第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象。
7.—種協(xié)作方法,其特征在于,所述方法包括: 協(xié)作發(fā)起端將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化以得到第一序列化數(shù)據(jù); 協(xié)作發(fā)起端向服務(wù)器發(fā)送攜帶第一序列化數(shù)據(jù)和協(xié)作受理端用戶名的第一消息;以便服務(wù)器將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述第一消息還包括操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果,當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果時(shí),所述方法還包括: 協(xié)作發(fā)起客戶端接收服務(wù)器發(fā)送的攜帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息,所述第二序列化數(shù)據(jù)為所述當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下的序列化數(shù)據(jù); 協(xié)作發(fā)起客戶端對(duì)接收的第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,協(xié)作發(fā)起端將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化,包括: 在第一狀態(tài)下,分別遍歷當(dāng)前應(yīng)用對(duì)象的公有屬性和第一屬性存儲(chǔ)圖,所述第一屬性存儲(chǔ)圖為當(dāng)前應(yīng)用對(duì)象的所有私有屬性的索引,對(duì)于公有屬性,執(zhí)行第一序列化流程,對(duì)于私有屬性,則在第一屬性存儲(chǔ)圖對(duì)應(yīng)的節(jié)點(diǎn)下,執(zhí)行第一序列化流程; 所述第一序列化流程包括:判斷屬性類型是否為基本類型,若是基本類型,則將基本類型的屬性序列化為XML節(jié)點(diǎn)并轉(zhuǎn)化為字符流,其中節(jié)點(diǎn)名為屬性名,節(jié)點(diǎn)值為屬性值;若不是基本類型,判斷屬性類型是否為集合類型,若不是集合類型,則創(chuàng)建該非集合類型屬性對(duì)應(yīng)的節(jié)點(diǎn),在該節(jié)點(diǎn)下,將非集合類型的屬性作為當(dāng)前應(yīng)用對(duì)象,返回執(zhí)行所述分別遍歷當(dāng)前應(yīng)用對(duì)象的公有屬性和第一屬性存儲(chǔ)圖的步驟;若是集合類型,創(chuàng)建該集合類型屬性對(duì)應(yīng)的節(jié)點(diǎn),節(jié)點(diǎn)名為屬性名,遍歷集合類型屬性中每個(gè)集合元素,若集合元素的類型是基本類型,在集合類型屬性對(duì)應(yīng)的節(jié)點(diǎn)下,將基本類型的集合元素序列化為XML節(jié)點(diǎn)并轉(zhuǎn)化為字符流;若集合元素的類型不是基本類型,則將該集合元素作為當(dāng)前應(yīng)用對(duì)象,返回執(zhí)行所述分別遍歷當(dāng)前應(yīng)用對(duì)象的公有屬性和第一屬性存儲(chǔ)圖的步驟。
10.一種客戶端,其特征在于,所述客戶端包括: 第一序列化模塊,用于將運(yùn)行的當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下進(jìn)行序列化以得到第一序列化數(shù)據(jù); 第一數(shù)據(jù)發(fā)送模塊,用于向服務(wù)器發(fā)送攜帶第一序列化數(shù)據(jù)和協(xié)作受理端用戶名的第一消息;以便服務(wù)器將第一消息發(fā)送到所述用戶名對(duì)應(yīng)的協(xié)作受理客戶端,以便協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象并在第一狀態(tài)下的所述應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
11.根據(jù)權(quán)利要求10所述的客戶端,其特征在于,所述第一消息還包括操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果,當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果時(shí),所述客戶端還包括: 第一數(shù)據(jù)接收模塊,用于接收服務(wù)器發(fā)送的攜帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息,所述第二序列化數(shù)據(jù)為所述當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下的序列化數(shù)據(jù); 第一反序列化模塊,用于對(duì)接收的第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的所述當(dāng)前應(yīng)用對(duì)象。
12.—種協(xié)作方法,其特征在于,包括: 協(xié)作受理客戶端接收服務(wù)器發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù); 協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象; 在所述第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述第一消息還包括操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果,當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果時(shí),還包括: 將當(dāng)前應(yīng)用對(duì)象在第二狀態(tài) 下進(jìn)行序列化操作,得到第二序列化數(shù)據(jù); 向服務(wù)器返回?cái)y帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息;以便服務(wù)器將第二消息發(fā)送到協(xié)作發(fā)起客戶端,以便協(xié)作發(fā)起客戶端對(duì)第二序列化數(shù)據(jù)進(jìn)行反序列化操作得到第二狀態(tài)下的應(yīng)用對(duì)象。
14.根據(jù)權(quán)利要求12所述的方法,其特征在于,協(xié)作受理客戶端對(duì)第一序列化數(shù)據(jù)進(jìn)行反序列化操作,包括: 構(gòu)造初始狀態(tài)下的當(dāng)前應(yīng)用對(duì)象,獲取第二屬性存儲(chǔ)圖,所述第二屬性存儲(chǔ)圖為初始狀態(tài)下的當(dāng)前應(yīng)用對(duì)象的所有私有屬性的索引; 在第一序列化數(shù)據(jù)的節(jié)點(diǎn)信息中,分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息,對(duì)于公有節(jié)點(diǎn),執(zhí)行第一反序列化流程,對(duì)于私有節(jié)點(diǎn),執(zhí)行第二反序列化流程; 所述第一反序列化流程包括:判斷節(jié)點(diǎn)類型是否為基本類型,若是基本類型,則生成基本類型的公有屬性,屬性名為節(jié)點(diǎn)名,屬性值為節(jié)點(diǎn)值;若節(jié)點(diǎn)類型不是基本類型,判斷節(jié)點(diǎn)類型是否為集合類型,若不是集合類型,則在該節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟;若是集合類型,則遍歷集合類型節(jié)點(diǎn)中每個(gè)集合元素節(jié)點(diǎn),若集合元素節(jié)點(diǎn)類型是基本類型,生成基本類型的集合元素,元素名為節(jié)點(diǎn)名,元素值為節(jié)點(diǎn)值;若集合元素節(jié)點(diǎn)類型不是基本類型,則在該集合元素節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟; 所述第二反序列化流程包括:在第二屬性存儲(chǔ)圖中取屬性名是所述節(jié)點(diǎn)名的屬性,判斷節(jié)點(diǎn)類型是否為基本類型,若是基本類型,為該屬性賦值為節(jié)點(diǎn)值;若節(jié)點(diǎn)類型不是基本類型,判斷節(jié)點(diǎn)類型是否為集合類型,若不是集合類型,則在該非集合元素節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟;若是集合類型,則遍歷集合類型節(jié)點(diǎn)中每個(gè)集合元素節(jié)點(diǎn),若集合元素節(jié)點(diǎn)類型是基本類型,則在所述屬性下生成基本類型的集合元素,元素名為節(jié)點(diǎn)名,元素值為節(jié)點(diǎn)值;若集合元素節(jié)點(diǎn)類型不是基本類型,則在該集合元素節(jié)點(diǎn)下返回執(zhí)行所述分別遍歷公有節(jié)點(diǎn)信息和私有節(jié)點(diǎn)信息的步驟。
15.—種客戶端,其特征在于,包括: 第二數(shù)據(jù)接收模塊,用于接收服務(wù)器發(fā)送的攜帶第一序列化數(shù)據(jù)和協(xié)作受理客戶端用戶名的第一消息,所述第一序列化數(shù)據(jù)為協(xié)作發(fā)起客戶端運(yùn)行當(dāng)前應(yīng)用對(duì)象在第一狀態(tài)下的序列化數(shù)據(jù); 第二反序列化模塊,用于對(duì)接收的第一序列化數(shù)據(jù)進(jìn)行反序列化操作得到第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象; 執(zhí)行模塊,用于在所述第一狀態(tài)下的當(dāng)前應(yīng)用對(duì)象的基礎(chǔ)上完成業(yè)務(wù)操作。
16.根據(jù)權(quán)利要求15所述的客戶端,其特征在于,所述第一消息還包括操作權(quán)限的指示,所述操作權(quán)限包括協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果和不返回業(yè)務(wù)操作結(jié)果,當(dāng)所述操作權(quán)限為協(xié)作受理客戶端返回業(yè)務(wù)操作結(jié)果時(shí),所述客戶端還包括: 第二序列化模塊,用于將當(dāng)前應(yīng)用對(duì)象在第二狀態(tài)下進(jìn)行序列化操作,得到第二序列化數(shù)據(jù); 第二數(shù)據(jù)發(fā)送模塊,用于向服務(wù)器返回?cái)y帶所述協(xié)作發(fā)起客戶端用戶名和第二序列化數(shù)據(jù)的第二消息;以便服務(wù)器將第二消息發(fā)送到協(xié)作發(fā)起客戶端,以便協(xié)作發(fā)起客戶端對(duì)第二序列化數(shù)據(jù)進(jìn)行反序列化操作 得到第二狀態(tài)下的應(yīng)用對(duì)象。
17.一種客戶端協(xié)作系統(tǒng),其特征在于,所述系統(tǒng)包括: 如權(quán)利要求4-6任一項(xiàng)所述的服務(wù)器、權(quán)利要求10-11任一項(xiàng)所述的客戶端和權(quán)利要求15-16任一項(xiàng)所述的客戶端。
【文檔編號(hào)】H04L12/58GK103546369SQ201310566671
【公開日】2014年1月29日 申請(qǐng)日期:2013年11月13日 優(yōu)先權(quán)日:2013年11月13日
【發(fā)明者】操先良, 應(yīng)俊, 黃強(qiáng), 劉利峰, 朱坤 申請(qǐng)人:中國農(nóng)業(yè)銀行股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
德令哈市| 通许县| 扶余县| SHOW| 玉屏| 安仁县| 宁化县| 雷波县| 聂拉木县| 苍南县| 孟村| 宝兴县| 游戏| 金乡县| 华亭县| 乌兰县| 电白县| 手游| 达孜县| 嘉祥县| 开江县| 伊川县| 镇原县| 河东区| 哈巴河县| 拉孜县| 根河市| 民权县| 武穴市| 临桂县| 全州县| 永春县| 岳池县| 伊宁县| 靖宇县| 广州市| 长宁县| 邵武市| 余姚市| 喀喇沁旗| 兖州市|