一種遠(yuǎn)程服務(wù)調(diào)用方法、裝置及系統(tǒng)的制作方法
【專(zhuān)利摘要】本申請(qǐng)?zhí)峁┑倪h(yuǎn)程服務(wù)調(diào)用方法、裝置及系統(tǒng),當(dāng)接收到服務(wù)調(diào)用程序發(fā)送的調(diào)用指令時(shí),確定對(duì)應(yīng)的服務(wù)器,其中,該服務(wù)器為互聯(lián)網(wǎng)中的服務(wù)器,調(diào)用指令中包含調(diào)用參數(shù),提取調(diào)用參數(shù),并將調(diào)用參數(shù)進(jìn)行序列化處理,將序列化處理后的調(diào)用參數(shù)封裝為數(shù)據(jù)包,并利用HTTP協(xié)議將該數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至服務(wù)器,以使服務(wù)器返回調(diào)用結(jié)果,并將該調(diào)用結(jié)果返回至服務(wù)調(diào)用程序,完成一次在公網(wǎng)中的遠(yuǎn)程服務(wù)調(diào)用過(guò)程。并且,可以對(duì)從客戶端發(fā)送的數(shù)據(jù)包進(jìn)行加密及壓縮,使得數(shù)據(jù)包安全且快速地在公網(wǎng)中傳輸。
【專(zhuān)利說(shuō)明】—種遠(yuǎn)程服務(wù)調(diào)用方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件【技術(shù)領(lǐng)域】,尤其是一種遠(yuǎn)程服務(wù)調(diào)用方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]軟件領(lǐng)域中,開(kāi)發(fā)的客戶端-服務(wù)器通信模式,客戶端向服務(wù)器發(fā)送服務(wù)調(diào)用請(qǐng)求,服務(wù)器端設(shè)置有服務(wù)組件,服務(wù)器利用服務(wù)組件響應(yīng)所述調(diào)用請(qǐng)求。
[0003]目前,通常使用JAVA RMI (Java Remote Method Invocat1n, Java遠(yuǎn)程方法調(diào)用)技術(shù)實(shí)現(xiàn)遠(yuǎn)程服務(wù)的調(diào)用。在Java編程語(yǔ)言里,該技術(shù)是一種用于實(shí)現(xiàn)遠(yuǎn)程過(guò)程調(diào)用的應(yīng)用程序編程接口技術(shù),它能夠使客戶端運(yùn)行的程序調(diào)用遠(yuǎn)程服務(wù)器上的對(duì)象。但是,該種服務(wù)調(diào)用方式,只是應(yīng)用在局域網(wǎng)中,并沒(méi)有在互聯(lián)網(wǎng)公網(wǎng)中應(yīng)用。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供了一種遠(yuǎn)程服務(wù)調(diào)用方法、裝置及系統(tǒng),用以在互聯(lián)網(wǎng)公網(wǎng)中實(shí)現(xiàn)遠(yuǎn)程服務(wù)的調(diào)用。為實(shí)現(xiàn)所述發(fā)明目的,本發(fā)明提供的技術(shù)方案如下:
[0005]一種遠(yuǎn)程服務(wù)調(diào)用方法,應(yīng)用于客戶端,所述方法包括:
[0006]當(dāng)接收到服務(wù)調(diào)用程序發(fā)送的調(diào)用指令時(shí),確定與所述客戶端對(duì)應(yīng)的服務(wù)器;
[0007]提取所述調(diào)用指令中的調(diào)用參數(shù),并將所述調(diào)用參數(shù)進(jìn)行序列化處理;
[0008]將序列化處理后的調(diào)用參數(shù)封裝為數(shù)據(jù)包,并利用HTTP協(xié)議將所述數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至所述服務(wù)器,觸發(fā)所述服務(wù)器返回與所述數(shù)據(jù)包對(duì)應(yīng)的調(diào)用結(jié)果;
[0009]將所述調(diào)用結(jié)果返回至所述服務(wù)調(diào)用程序。
[0010]上述應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用方法,優(yōu)選地,所述將所述調(diào)用參數(shù)進(jìn)行序列化處理,包括:
[0011]利用預(yù)先設(shè)置的Hessian序列化組件,將所述調(diào)用參數(shù)進(jìn)行序列化處理。
[0012]上述應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用方法,優(yōu)選地,在所述將所述調(diào)用參數(shù)進(jìn)行序列化處理之后,還包括:
[0013]加密所述序列化后的調(diào)用參數(shù);
[0014]相應(yīng)地,所述將序列化處理后的調(diào)用參數(shù)封裝為數(shù)據(jù)包包括:
[0015]將所述序列化且加密后的調(diào)用參數(shù)封裝為數(shù)據(jù)包。
[0016]上述應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用方法,優(yōu)選地,在所述加密所述序列化后的調(diào)用參數(shù)之后,還包括:
[0017]壓縮所述序列化且加密后的調(diào)用參數(shù);
[0018]相應(yīng)地,所述將所述序列化且加密后的調(diào)用參數(shù)封裝為數(shù)據(jù)包包括:
[0019]將所述序列化、加密且壓縮后的調(diào)用參數(shù)封裝為數(shù)據(jù)包。
[0020]本申請(qǐng)還提供了一種遠(yuǎn)程服務(wù)調(diào)用方法,應(yīng)用在服務(wù)器,所述方法包括:
[0021]當(dāng)接收到客戶端通過(guò)互聯(lián)網(wǎng)發(fā)送的服務(wù)調(diào)用數(shù)據(jù)包時(shí),提取所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù);
[0022]依據(jù)所述調(diào)用參數(shù),調(diào)用對(duì)應(yīng)的服務(wù)執(zhí)行模塊,獲得調(diào)用結(jié)果;
[0023]將所述調(diào)用結(jié)果返回至所述客戶端。
[0024]上述應(yīng)用在服務(wù)器的遠(yuǎn)程服務(wù)調(diào)用方法,優(yōu)選地,所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù)為序列化、加密且壓縮后的調(diào)用參數(shù);
[0025]其中,所述提取所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù)包括:
[0026]對(duì)所述服務(wù)調(diào)用數(shù)據(jù)包進(jìn)行解壓縮、解密及反序列化處理,獲得調(diào)用參數(shù)。
[0027]本申請(qǐng)還提供了一種遠(yuǎn)程服務(wù)調(diào)用裝置,應(yīng)用在客戶端,所述裝置包括:
[0028]服務(wù)器確定單元,用于當(dāng)接收到服務(wù)調(diào)用程序發(fā)送的調(diào)用指令時(shí),確定與所述客戶端對(duì)應(yīng)的服務(wù)器;
[0029]調(diào)用參數(shù)處理單元,用于提取所述調(diào)用指令中的調(diào)用參數(shù),并將所述調(diào)用參數(shù)進(jìn)行序列化處理;
[0030]數(shù)據(jù)包發(fā)送單元,用于將序列化處理后的調(diào)用參數(shù)封裝為服務(wù)調(diào)用數(shù)據(jù)包,并利用HTTP協(xié)議將所述服務(wù)調(diào)用數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至所述服務(wù)器,觸發(fā)所述服務(wù)器返回與所述服務(wù)調(diào)用數(shù)據(jù)包對(duì)應(yīng)的調(diào)用結(jié)果;
[0031]調(diào)用結(jié)果返回單元,用于將所述調(diào)用結(jié)果返回至所述服務(wù)調(diào)用程序。
[0032]本申請(qǐng)還提供了一種遠(yuǎn)程服務(wù)調(diào)用裝置,應(yīng)用在服務(wù)器,所述裝置包括:
[0033]調(diào)用參數(shù)提取單元,用于當(dāng)接收到客戶端通過(guò)互聯(lián)網(wǎng)發(fā)送的服務(wù)調(diào)用數(shù)據(jù)包時(shí),提取所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù);
[0034]調(diào)用結(jié)果獲得單元,用于依據(jù)所述調(diào)用參數(shù),調(diào)用對(duì)應(yīng)的服務(wù)執(zhí)行模塊,獲得調(diào)用結(jié)果;
[0035]調(diào)用結(jié)果發(fā)送單元,用于將所述調(diào)用結(jié)果返回至所述客戶端。
[0036]本申請(qǐng)還提供了一種遠(yuǎn)程服務(wù)調(diào)用系統(tǒng),包括:如權(quán)利要求7所述的應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用裝置及如權(quán)利要求8所述的應(yīng)用在服務(wù)器的遠(yuǎn)程服務(wù)調(diào)用裝置。
[0037]上述遠(yuǎn)程服務(wù)調(diào)用系統(tǒng),所述應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用裝置還包括:
[0038]壓縮加密單元,用于在將所述調(diào)用參數(shù)進(jìn)行序列化處理之后,壓縮且加密序列化的調(diào)用參數(shù);
[0039]所述調(diào)用參數(shù)提取單元包括:
[0040]提取子單元,用于對(duì)所述服務(wù)調(diào)用數(shù)據(jù)包進(jìn)行解壓縮、解密及反序列化處理,獲得調(diào)用參數(shù)。
[0041]由以上的技術(shù)方案可知,本實(shí)施例提供的遠(yuǎn)程服務(wù)調(diào)用方法、裝置及系統(tǒng),當(dāng)接收到服務(wù)調(diào)用程序發(fā)送的調(diào)用指令時(shí),確定對(duì)應(yīng)的服務(wù)器,其中,該服務(wù)器為互聯(lián)網(wǎng)中的服務(wù)器,調(diào)用指令中包含調(diào)用參數(shù),提取調(diào)用參數(shù),并將調(diào)用參數(shù)進(jìn)行序列化處理,將序列化處理后的調(diào)用參數(shù)封裝為數(shù)據(jù)包,并利用HTTP協(xié)議將該數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至服務(wù)器,以使服務(wù)器返回調(diào)用結(jié)果,并將該調(diào)用結(jié)果返回至服務(wù)調(diào)用程序,完成一次在公網(wǎng)中的遠(yuǎn)程服務(wù)調(diào)用過(guò)程。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0042]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0043]圖1為本發(fā)明實(shí)施例提供的應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用方法的流程圖;
[0044]圖2為本發(fā)明實(shí)施例提供的應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用方法的另一流程圖;
[0045]圖3為本發(fā)明實(shí)施例提供的應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用方法的又一流程圖;
[0046]圖4為本發(fā)明實(shí)施例提供的應(yīng)用在服務(wù)器的遠(yuǎn)程服務(wù)調(diào)用方法的流程圖;
[0047]圖5為本發(fā)明實(shí)施例提供的應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用裝置的結(jié)構(gòu)圖;
[0048]圖6為本發(fā)明實(shí)施例提供的應(yīng)用在服務(wù)器的遠(yuǎn)程服務(wù)調(diào)用裝置的結(jié)構(gòu)圖;
[0049]圖7為本發(fā)明實(shí)施例提供的遠(yuǎn)程服務(wù)調(diào)用系統(tǒng)的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0050]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0051]參見(jiàn)圖1,其示出了本發(fā)明實(shí)施例提供的遠(yuǎn)程服務(wù)調(diào)用方法的流程,應(yīng)用在客戶端,該流程具體包括以下步驟:
[0052]步驟SlOl:當(dāng)接收到服務(wù)調(diào)用程序發(fā)送的調(diào)用指令時(shí),確定與所述客戶端對(duì)應(yīng)的服務(wù)器。
[0053]其中,客戶端中包含有服務(wù)調(diào)用程序,該服務(wù)調(diào)用程序需要調(diào)用的服務(wù)保存在服務(wù)器,需要說(shuō)明,該服務(wù)器是公網(wǎng)上的服務(wù)器。服務(wù)器具有URL (Uniform Resoure Locator,統(tǒng)一資源定位器)地址,將該URL地址發(fā)布給客戶端,以供客戶端在服務(wù)調(diào)用時(shí),確定對(duì)應(yīng)的服務(wù)器。相應(yīng)地,客戶端在開(kāi)機(jī)啟動(dòng)時(shí),進(jìn)行初始化操作。初始化操作包括在客戶端配置服務(wù)器發(fā)布的URL地址及端口標(biāo)識(shí)。利用該URL地址確定服務(wù)器,并且利用端口標(biāo)識(shí)進(jìn)一步確定服務(wù)器上接收服務(wù)調(diào)用請(qǐng)求的端口號(hào)。
[0054]步驟S102:提取所述調(diào)用指令中的調(diào)用參數(shù),并將所述調(diào)用參數(shù)進(jìn)行序列化處理。
[0055]需要說(shuō)明,服務(wù)器調(diào)用具體服務(wù),需要服務(wù)名稱(chēng)及參數(shù)。其中,服務(wù)名稱(chēng)用于在多個(gè)服務(wù)中確定具體調(diào)用的服務(wù),參數(shù)用于生成調(diào)用結(jié)果。調(diào)用指令中包含調(diào)用參數(shù),可選地,調(diào)用參數(shù)包含服務(wù)名稱(chēng)及參數(shù)。
[0056]客戶端調(diào)用公網(wǎng)中服務(wù)器上的服務(wù),也就是說(shuō),該調(diào)用過(guò)程涉及到進(jìn)程遠(yuǎn)程通信。而兩個(gè)進(jìn)程進(jìn)行遠(yuǎn)程通信時(shí),發(fā)送的數(shù)據(jù)需要轉(zhuǎn)換為二進(jìn)制序列的形式在網(wǎng)絡(luò)中傳輸。序列化處理就是將調(diào)用參數(shù)轉(zhuǎn)換為二進(jìn)制序列。
[0057]步驟S103:將序列化處理后的調(diào)用參數(shù)封裝為數(shù)據(jù)包,并利用HTTP協(xié)議將所述數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至所述服務(wù)器,觸發(fā)所述服務(wù)器返回與所述數(shù)據(jù)包對(duì)應(yīng)的調(diào)用結(jié)果。
[0058]序列化處理后的調(diào)用參數(shù)為二進(jìn)制序列,需要將該二進(jìn)制序列封裝成數(shù)據(jù)包,并通過(guò)可以在公網(wǎng)上傳輸數(shù)據(jù)的HTTP協(xié)議,將該數(shù)據(jù)包發(fā)送至服務(wù)器端。需要說(shuō)明,上述的服務(wù)器URL地址及端口信息分別用于確定服務(wù)器及服務(wù)器接收服務(wù)調(diào)用請(qǐng)求所用的端口。具體地,將數(shù)據(jù)包發(fā)送至服務(wù)器URL地址表示的服務(wù)器,且具體將其發(fā)送至端口標(biāo)識(shí)對(duì)應(yīng)的端口。
[0059]服務(wù)器注冊(cè)有接收器,該接收器可以接收客戶端發(fā)送的數(shù)據(jù)包,且當(dāng)接收到該數(shù)據(jù)包后,對(duì)數(shù)據(jù)包中序列化的調(diào)用參數(shù)進(jìn)行反序列化處理,從而獲得調(diào)用參數(shù),進(jìn)而利用調(diào)用參數(shù)調(diào)用服務(wù)實(shí)現(xiàn)模塊,從而生成調(diào)用結(jié)果。
[0060]具體地,服務(wù)參數(shù)包含服務(wù)名稱(chēng)及服務(wù)參數(shù)。利用服務(wù)名稱(chēng)確定對(duì)應(yīng)的服務(wù)模塊,觸發(fā)該服務(wù)實(shí)現(xiàn)模塊利用服務(wù)參數(shù)生成調(diào)用結(jié)果。
[0061]步驟S104:將所述調(diào)用結(jié)果返回至所述服務(wù)調(diào)用程序。
[0062]其中,服務(wù)器返回調(diào)用結(jié)果至本實(shí)施例的執(zhí)行模塊,本實(shí)施例的執(zhí)行模塊將該調(diào)用結(jié)果返回至服務(wù)調(diào)用程序,完成一次遠(yuǎn)程調(diào)用過(guò)程。
[0063]由以上的技術(shù)方案可知,本實(shí)施例提供的遠(yuǎn)程服務(wù)調(diào)用方法,當(dāng)接收到服務(wù)調(diào)用程序發(fā)送的調(diào)用指令時(shí),確定對(duì)應(yīng)的服務(wù)器,其中,該服務(wù)器為互聯(lián)網(wǎng)中的服務(wù)器,調(diào)用指令中包含調(diào)用參數(shù),提取調(diào)用參數(shù),并將調(diào)用參數(shù)進(jìn)行序列化處理,將序列化處理后的調(diào)用參數(shù)封裝為數(shù)據(jù)包,并利用HTTP協(xié)議將該數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至服務(wù)器,以使服務(wù)器返回調(diào)用結(jié)果,并將該調(diào)用結(jié)果返回至服務(wù)調(diào)用程序,完成一次在公網(wǎng)中的遠(yuǎn)程服務(wù)調(diào)用過(guò)程。
[0064]現(xiàn)有技術(shù)中,客戶端具有服務(wù)緩存功能,也就說(shuō)說(shuō),客戶端會(huì)將服務(wù)實(shí)現(xiàn)模塊的內(nèi)存地址緩存在客戶端本地,當(dāng)客戶端接收到服務(wù)調(diào)用模塊的調(diào)用參數(shù)后,首先在本地查找服務(wù)的內(nèi)存地址,并將查找到的內(nèi)存地址包含在生成的調(diào)用參數(shù)內(nèi),發(fā)送到服務(wù)器,服務(wù)器直接依據(jù)該內(nèi)存地址確定服務(wù)執(zhí)行模塊在內(nèi)存中的位置,進(jìn)而觸發(fā)服務(wù)實(shí)現(xiàn)模塊實(shí)現(xiàn)服務(wù)調(diào)用過(guò)程。然而,現(xiàn)有技術(shù)中的服務(wù)緩存方法,在服務(wù)器的服務(wù)實(shí)現(xiàn)模塊的內(nèi)存地址發(fā)生變更后,會(huì)造成調(diào)用參數(shù)的無(wú)效,進(jìn)而導(dǎo)致服務(wù)調(diào)用的失敗。
[0065]不同的是,本實(shí)施例中,接收到的調(diào)用參數(shù)中僅包含有服務(wù)名稱(chēng)及服務(wù)參數(shù),并未包含有服務(wù)實(shí)現(xiàn)模塊的內(nèi)存地址,而是將該調(diào)用參數(shù)發(fā)送到服務(wù)器,服務(wù)器依據(jù)預(yù)先設(shè)置的服務(wù)名稱(chēng)與服務(wù)實(shí)現(xiàn)模塊的內(nèi)存地址的對(duì)應(yīng)關(guān)系,確定需要調(diào)用的服務(wù)名稱(chēng)對(duì)應(yīng)的服務(wù)實(shí)現(xiàn)模塊的內(nèi)存地址。由于服務(wù)實(shí)現(xiàn)模塊的內(nèi)存地址發(fā)生改變后,服務(wù)器會(huì)隨之改變內(nèi)存地址與服務(wù)名稱(chēng)的對(duì)應(yīng)關(guān)系,因此,本實(shí)施例提供的遠(yuǎn)程服務(wù)調(diào)用方法是動(dòng)態(tài)的,也就是說(shuō),并不依賴于預(yù)先存儲(chǔ)在本地的服務(wù)實(shí)現(xiàn)模塊的內(nèi)存地址,進(jìn)而可以避免現(xiàn)有技術(shù)中將服務(wù)實(shí)現(xiàn)模塊的內(nèi)存地址預(yù)先存儲(chǔ)導(dǎo)致的服務(wù)調(diào)用失敗情形。
[0066]需要說(shuō)明,上述實(shí)施例中,服務(wù)器調(diào)用服務(wù)實(shí)現(xiàn)模塊生成調(diào)用結(jié)果時(shí),調(diào)用的是服務(wù)實(shí)現(xiàn)模塊的服務(wù)接口,該服務(wù)接口需要發(fā)布給客戶端,用于根據(jù)接口名稱(chēng)生成調(diào)用指令中的服務(wù)名稱(chēng)。另外,需要說(shuō)明的是,發(fā)布的服務(wù)接口并沒(méi)有具體的服務(wù)調(diào)用方法,客戶端在開(kāi)機(jī)啟動(dòng)初始化時(shí),可以根據(jù)服務(wù)接口生成動(dòng)態(tài)代理類(lèi),該動(dòng)態(tài)代理類(lèi)即是具體的服務(wù)調(diào)用方法。
[0067]在上述實(shí)施例中步驟S102中將所述調(diào)用參數(shù)進(jìn)行序列化處理的具體實(shí)現(xiàn)方式可以是:
[0068]利用預(yù)先設(shè)置的Hessian序列化組件,將所述調(diào)用參數(shù)進(jìn)行序列化處理。
[0069]需要說(shuō)明,現(xiàn)有技術(shù)中的序列化組件有多種,相較于使用Java內(nèi)置序列化組件而言,利用Hessian序列化組件可以更加快速地完成序列化過(guò)程。其中,Hessian序列化組件,可以對(duì)輸入的待序列數(shù)據(jù)進(jìn)行序列化處理。當(dāng)然,當(dāng)輸入的數(shù)據(jù)為調(diào)用參數(shù)時(shí),可以序列化該數(shù)據(jù)。需要說(shuō)明,Hessian組件中設(shè)置有描述信息,且描述信息采用的是鍵值對(duì)的形式。該種形式的描述信息比現(xiàn)有JAVA內(nèi)置序列化組件的描述信息少,因而,其序列化速度要快于JAVA內(nèi)置序列化組件。
[0070]需要說(shuō)明的是,上述實(shí)施例提供的遠(yuǎn)程服務(wù)調(diào)用方法通過(guò)互聯(lián)網(wǎng)傳輸數(shù)據(jù),而互聯(lián)網(wǎng)容易受到黑客等惡意程序的攻擊,數(shù)據(jù)傳輸安全性較低,因此,本發(fā)明實(shí)施例提供了另一遠(yuǎn)程服務(wù)調(diào)用方法,具體參見(jiàn)圖2。其中:
[0071]步驟S103:加密所述序列化后的調(diào)用參數(shù)。
[0072]其中,加密方法可以是DES對(duì)稱(chēng)加密算法,也可以是非對(duì)稱(chēng)加密算法。利用DES對(duì)稱(chēng)加密算法加密使用的密鑰為DES密鑰,該密鑰與服務(wù)器保持一致,這樣,服務(wù)器端才能對(duì)加密后的數(shù)據(jù)進(jìn)行解密。經(jīng)過(guò)加密后的數(shù)據(jù)安全性更高,更適合在公網(wǎng)中進(jìn)行傳輸。
[0073]步驟S104:將所述序列化且加密后的調(diào)用參數(shù)封裝為數(shù)據(jù)包,并利用HTTP協(xié)議將所述數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至所述服務(wù)器,觸發(fā)所述服務(wù)器返回與所述數(shù)據(jù)包對(duì)應(yīng)的調(diào)用結(jié)果。
[0074]需要說(shuō)明,步驟SlOl、步驟S102及步驟S105的說(shuō)明參照?qǐng)D1對(duì)應(yīng)實(shí)施例中的說(shuō)明,此處并不做贅述。
[0075]同時(shí),公網(wǎng)傳輸速率一般低于局域網(wǎng),因此,為了提高傳輸效率可以考慮將傳輸內(nèi)容進(jìn)行壓縮。參照?qǐng)D3,其示出了本發(fā)明實(shí)施例提供的又一遠(yuǎn)程服務(wù)調(diào)用方法的流程。其中:
[0076]步驟S104:壓縮所述序列化且加密后的調(diào)用參數(shù)。
[0077]本實(shí)施例中,可以使用ZIP壓縮算法。當(dāng)然,還可以是現(xiàn)有其他壓縮算法,并不做具體限定。ZIP壓縮算法可以對(duì)待壓縮內(nèi)容進(jìn)行壓縮,當(dāng)然,輸入本實(shí)施例中序列化且加密后的調(diào)用參數(shù),同樣可以實(shí)現(xiàn)壓縮。可選地,壓縮算法原理是將重復(fù)的多字節(jié)或單字節(jié)內(nèi)容用更少的數(shù)據(jù)量表示,從而實(shí)現(xiàn)壓縮。
[0078]步驟S105:將所述序列化、加密且壓縮后的調(diào)用參數(shù)封裝為數(shù)據(jù)包,并利用HTTP協(xié)議將所述數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至所述服務(wù)器,觸發(fā)所述服務(wù)器返回與所述數(shù)據(jù)包對(duì)應(yīng)的調(diào)用結(jié)果。
[0079]需要說(shuō)明,步驟S101、步驟S102、步驟S103及步驟S106的說(shuō)明參照?qǐng)D2對(duì)應(yīng)實(shí)施例中的說(shuō)明,此處并不做贅述。
[0080]上述各個(gè)實(shí)施例中的遠(yuǎn)程服務(wù)調(diào)用方法應(yīng)用在客戶端,同時(shí),為了響應(yīng)客戶端的操作,需要設(shè)置對(duì)應(yīng)的服務(wù)器。參見(jiàn)圖4,其示出了本發(fā)明實(shí)施例提供的遠(yuǎn)程服務(wù)調(diào)用方法,應(yīng)用在服務(wù)器,具體包括以下步驟:
[0081]步驟S201:當(dāng)接收到客戶端通過(guò)互聯(lián)網(wǎng)發(fā)送的服務(wù)調(diào)用數(shù)據(jù)包時(shí),提取所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù)。
[0082]當(dāng)客戶端通過(guò)互聯(lián)網(wǎng)將服務(wù)調(diào)用數(shù)據(jù)包發(fā)送至服務(wù)器時(shí),服務(wù)器通過(guò)注冊(cè)的監(jiān)聽(tīng)器監(jiān)聽(tīng)到該數(shù)據(jù)包后,提取該數(shù)據(jù)包中的調(diào)用參數(shù)。其中,調(diào)用參數(shù)可以包括服務(wù)名稱(chēng)及服務(wù)參數(shù)。
[0083]步驟S202:依據(jù)所述調(diào)用參數(shù),調(diào)用對(duì)應(yīng)的服務(wù)執(zhí)行模塊,獲得調(diào)用結(jié)果。
[0084]其中,服務(wù)器上設(shè)置有服務(wù)執(zhí)行模塊,并設(shè)置服務(wù)接口,通過(guò)服務(wù)接口可以調(diào)用服務(wù)執(zhí)行模塊。具體地,通過(guò)服務(wù)名稱(chēng)確定服務(wù)接口,并向該服務(wù)接口發(fā)送服務(wù)參數(shù),從而使服務(wù)執(zhí)行模塊利用服務(wù)參數(shù)生成調(diào)用結(jié)果。
[0085]步驟S203:將所述調(diào)用結(jié)果返回至所述客戶端。
[0086]本實(shí)施例中,通過(guò)互聯(lián)網(wǎng)將調(diào)用結(jié)果返回。
[0087]由以上的技術(shù)方案可知,應(yīng)用在服務(wù)器的服務(wù)調(diào)用方法在接收到客戶端通過(guò)互聯(lián)網(wǎng)發(fā)送的服務(wù)調(diào)用數(shù)據(jù)包時(shí),對(duì)該服務(wù)調(diào)用數(shù)據(jù)包進(jìn)行響應(yīng),生成對(duì)應(yīng)的調(diào)用結(jié)果并返回,實(shí)現(xiàn)公網(wǎng)中的遠(yuǎn)程服務(wù)調(diào)用。
[0088]當(dāng)然,客戶端發(fā)送的服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù)可以為序列化、加密且壓縮后的調(diào)用參數(shù),因此,上述實(shí)施例中提取所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù)的具體實(shí)現(xiàn)方式是:
[0089]對(duì)所述服務(wù)調(diào)用數(shù)據(jù)包進(jìn)行解壓縮、解密及反序列化處理,獲得調(diào)用參數(shù)。
[0090]具體地,解壓縮及解密分別與客戶端使用的壓縮及加密方法相對(duì)應(yīng)。其中,反序列化的算法可以應(yīng)用Hessian組件。
[0091]參見(jiàn)圖5,本發(fā)明實(shí)施例還提供了一種遠(yuǎn)程服務(wù)調(diào)用裝置,應(yīng)用在客戶端,具體包括:服務(wù)器確定單元101、調(diào)用參數(shù)處理單元102、數(shù)據(jù)包發(fā)送單元103及調(diào)用結(jié)果返回單元104。其中:
[0092]服務(wù)器確定單元101,用于當(dāng)接收到服務(wù)調(diào)用程序發(fā)送的調(diào)用指令時(shí),確定與所述客戶端對(duì)應(yīng)的服務(wù)器;
[0093]調(diào)用參數(shù)處理單元102,用于提取所述調(diào)用指令中的調(diào)用參數(shù),并將所述調(diào)用參數(shù)進(jìn)行序列化處理;
[0094]數(shù)據(jù)包發(fā)送單元103,用于將序列化處理后的調(diào)用參數(shù)封裝為服務(wù)調(diào)用數(shù)據(jù)包,并利用HTTP協(xié)議將所述服務(wù)調(diào)用數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至所述服務(wù)器,觸發(fā)所述服務(wù)器返回與所述服務(wù)調(diào)用數(shù)據(jù)包對(duì)應(yīng)的調(diào)用結(jié)果;
[0095]調(diào)用結(jié)果返回單元104,用于將所述調(diào)用結(jié)果返回至所述服務(wù)調(diào)用程序。
[0096]由以上的技術(shù)方案可知,本發(fā)明實(shí)施例提供的遠(yuǎn)程服務(wù)調(diào)用裝置,可以確定服務(wù)器,提取調(diào)用指令中的調(diào)用參數(shù),并對(duì)調(diào)用參數(shù)序列化處理后封裝為調(diào)用數(shù)據(jù)包,利用HTTP協(xié)議通過(guò)互聯(lián)網(wǎng)將調(diào)用數(shù)據(jù)包發(fā)送至服務(wù)器,觸發(fā)服務(wù)器返回調(diào)用結(jié)果,實(shí)現(xiàn)公網(wǎng)中的遠(yuǎn)程服務(wù)的調(diào)用。
[0097]參見(jiàn)圖6,本發(fā)明實(shí)施例還提供了一種遠(yuǎn)程服務(wù)調(diào)用裝置,應(yīng)用在服務(wù)器,包括:調(diào)用參數(shù)提取單元201、調(diào)用結(jié)果獲得單元202及203。其中:
[0098]調(diào)用參數(shù)提取單元201,用于當(dāng)接收到客戶端通過(guò)互聯(lián)網(wǎng)發(fā)送的服務(wù)調(diào)用數(shù)據(jù)包時(shí),提取所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù);
[0099]調(diào)用結(jié)果獲得單元202,用于依據(jù)所述調(diào)用參數(shù),調(diào)用對(duì)應(yīng)的服務(wù)執(zhí)行模塊,獲得調(diào)用結(jié)果;
[0100]調(diào)用結(jié)果發(fā)送單元203,用于將所述調(diào)用結(jié)果返回至所述客戶端。
[0101]由以上技術(shù)方案可知,本發(fā)明實(shí)施例可以實(shí)現(xiàn)公網(wǎng)中的服務(wù)器對(duì)通過(guò)互聯(lián)網(wǎng)發(fā)送的服務(wù)調(diào)用數(shù)據(jù)包的服務(wù)響應(yīng)。
[0102]參見(jiàn)圖7,本發(fā)明實(shí)施例還提供了一種遠(yuǎn)程服務(wù)調(diào)用系統(tǒng),具體包括:上述圖5所示的應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用裝置及如圖6所示的應(yīng)用在服務(wù)器的遠(yuǎn)程服務(wù)調(diào)用裝置。
[0103]在上述遠(yuǎn)程服務(wù)調(diào)用系統(tǒng)中,應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用裝置除了包括服務(wù)器確定單元101、調(diào)用參數(shù)處理單元102及調(diào)用結(jié)果返回單元104之外,還可以包括:壓縮加密單元105,用于在將所述調(diào)用參數(shù)進(jìn)行序列化處理之后,壓縮且加密序列化的調(diào)用參數(shù)。相應(yīng)地,數(shù)據(jù)包發(fā)送單元103將序列化、加密且壓縮后的調(diào)用參數(shù)封裝為數(shù)據(jù)包,并利用HTTP協(xié)議將所述數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至所述服務(wù)器,觸發(fā)所述服務(wù)器返回與所述數(shù)據(jù)包對(duì)應(yīng)的調(diào)用結(jié)果。
[0104]同時(shí),上述遠(yuǎn)程服務(wù)調(diào)用系統(tǒng)中,應(yīng)用在服務(wù)器的遠(yuǎn)程服務(wù)調(diào)用裝置中的調(diào)用參數(shù)提取單元201包括:提取子單元,用于對(duì)所述服務(wù)調(diào)用數(shù)據(jù)包進(jìn)行解壓縮、解密及反序列化處理,獲得調(diào)用參數(shù)。
[0105]由以上技術(shù)方案可知,本發(fā)明實(shí)施例可以實(shí)現(xiàn)在公網(wǎng)中通過(guò)壓縮加密數(shù)據(jù)保證數(shù)據(jù)安全且高效地傳輸。
[0106]需要說(shuō)明的是,本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。
[0107]還需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括上述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0108]對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專(zhuān)業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。
【權(quán)利要求】
1.一種遠(yuǎn)程服務(wù)調(diào)用方法,其特征在于,應(yīng)用于客戶端,所述方法包括: 當(dāng)接收到服務(wù)調(diào)用程序發(fā)送的調(diào)用指令時(shí),確定與所述客戶端對(duì)應(yīng)的服務(wù)器; 提取所述調(diào)用指令中的調(diào)用參數(shù),并將所述調(diào)用參數(shù)進(jìn)行序列化處理; 將序列化處理后的調(diào)用參數(shù)封裝為數(shù)據(jù)包,并利用HTTP協(xié)議將所述數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至所述服務(wù)器,觸發(fā)所述服務(wù)器返回與所述數(shù)據(jù)包對(duì)應(yīng)的調(diào)用結(jié)果; 將所述調(diào)用結(jié)果返回至所述服務(wù)調(diào)用程序。
2.根據(jù)權(quán)利要求1所述的遠(yuǎn)程服務(wù)調(diào)用方法,其特征在于,所述將所述調(diào)用參數(shù)進(jìn)行序列化處理,包括: 利用預(yù)先設(shè)置的Hessian序列化組件,將所述調(diào)用參數(shù)進(jìn)行序列化處理。
3.根據(jù)權(quán)利要求1所述的遠(yuǎn)程服務(wù)調(diào)用方法,其特征在于,在所述將所述調(diào)用參數(shù)進(jìn)行序列化處理之后,還包括: 加密所述序列化后的調(diào)用參數(shù); 相應(yīng)地,所述將序列化處理后的調(diào)用參數(shù)封裝為數(shù)據(jù)包包括: 將所述序列化且加密后的調(diào)用參數(shù)封裝為數(shù)據(jù)包。
4.根據(jù)權(quán)利要求3所述的遠(yuǎn)程服務(wù)調(diào)用方法,其特征在于,在所述加密所述序列化后的調(diào)用參數(shù)之后,還包括: 壓縮所述序列化且加密后的調(diào)用參數(shù); 相應(yīng)地,所述將所述序列化且加密后的調(diào)用參數(shù)封裝為數(shù)據(jù)包包括: 將所述序列化、加密且壓縮后的調(diào)用參數(shù)封裝為數(shù)據(jù)包。
5.一種遠(yuǎn)程服務(wù)調(diào)用方法,其特征在于,應(yīng)用在服務(wù)器,所述方法包括: 當(dāng)接收到客戶端通過(guò)互聯(lián)網(wǎng)發(fā)送的服務(wù)調(diào)用數(shù)據(jù)包時(shí),提取所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù); 依據(jù)所述調(diào)用參數(shù),調(diào)用對(duì)應(yīng)的服務(wù)執(zhí)行模塊,獲得調(diào)用結(jié)果; 將所述調(diào)用結(jié)果返回至所述客戶端。
6.根據(jù)權(quán)利要求5所述的遠(yuǎn)程服務(wù)調(diào)用方法,其特征在于,所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù)為序列化、加密且壓縮后的調(diào)用參數(shù); 其中,所述提取所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù)包括: 對(duì)所述服務(wù)調(diào)用數(shù)據(jù)包進(jìn)行解壓縮、解密及反序列化處理,獲得調(diào)用參數(shù)。
7.—種遠(yuǎn)程服務(wù)調(diào)用裝置,其特征在于,應(yīng)用在客戶端,所述裝置包括: 服務(wù)器確定單元,用于當(dāng)接收到服務(wù)調(diào)用程序發(fā)送的調(diào)用指令時(shí),確定與所述客戶端對(duì)應(yīng)的服務(wù)器; 調(diào)用參數(shù)處理單元,用于提取所述調(diào)用指令中的調(diào)用參數(shù),并將所述調(diào)用參數(shù)進(jìn)行序列化處理; 數(shù)據(jù)包發(fā)送單元,用于將序列化處理后的調(diào)用參數(shù)封裝為服務(wù)調(diào)用數(shù)據(jù)包,并利用HTTP協(xié)議將所述服務(wù)調(diào)用數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送至所述服務(wù)器,觸發(fā)所述服務(wù)器返回與所述服務(wù)調(diào)用數(shù)據(jù)包對(duì)應(yīng)的調(diào)用結(jié)果; 調(diào)用結(jié)果返回單元,用于將所述調(diào)用結(jié)果返回至所述服務(wù)調(diào)用程序。
8.—種遠(yuǎn)程服務(wù)調(diào)用裝置,其特征在于,應(yīng)用在服務(wù)器,所述裝置包括: 調(diào)用參數(shù)提取單元,用于當(dāng)接收到客戶端通過(guò)互聯(lián)網(wǎng)發(fā)送的服務(wù)調(diào)用數(shù)據(jù)包時(shí),提取所述服務(wù)調(diào)用數(shù)據(jù)包中的調(diào)用參數(shù); 調(diào)用結(jié)果獲得單元,用于依據(jù)所述調(diào)用參數(shù),調(diào)用對(duì)應(yīng)的服務(wù)執(zhí)行模塊,獲得調(diào)用結(jié)果; 調(diào)用結(jié)果發(fā)送單元,用于將所述調(diào)用結(jié)果返回至所述客戶端。
9.一種遠(yuǎn)程服務(wù)調(diào)用系統(tǒng),其特征在于,包括:如權(quán)利要求7所述的應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用裝置及如權(quán)利要求8所述的應(yīng)用在服務(wù)器的遠(yuǎn)程服務(wù)調(diào)用裝置。
10.根據(jù)權(quán)利要求9所述的遠(yuǎn)程服務(wù)調(diào)用系統(tǒng),其特征在于,所述應(yīng)用在客戶端的遠(yuǎn)程服務(wù)調(diào)用裝置還包括: 壓縮加密單元,用于在將所述調(diào)用參數(shù)進(jìn)行序列化處理之后,壓縮且加密序列化的調(diào)用參數(shù); 所述調(diào)用參數(shù)提取單元包括: 提取子單元,用于對(duì)所述服務(wù)調(diào)用數(shù)據(jù)包進(jìn)行解壓縮、解密及反序列化處理,獲得調(diào)用參數(shù)。
【文檔編號(hào)】H04L29/08GK104270470SQ201410578360
【公開(kāi)日】2015年1月7日 申請(qǐng)日期:2014年10月24日 優(yōu)先權(quán)日:2014年10月24日
【發(fā)明者】李七生, 胡斌, 馮維, 姜一維 申請(qǐng)人:杭州高達(dá)軟件系統(tǒng)股份有限公司