一種web端遠(yuǎn)程調(diào)用優(yōu)化的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及WEB端遠(yuǎn)程調(diào)用領(lǐng)域,尤其涉及一種WEB端遠(yuǎn)程調(diào)用優(yōu)化的方法及系統(tǒng)。
【背景技術(shù)】
[0002]近年來(lái)隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)站應(yīng)用的規(guī)模不斷擴(kuò)大,業(yè)務(wù)量也不斷增多,分布式系統(tǒng)已經(jīng)成為大多數(shù)企業(yè)的選擇了。在分布式系統(tǒng)開(kāi)發(fā)過(guò)程中,不同業(yè)務(wù)之間的數(shù)據(jù)調(diào)用越來(lái)越頻繁,于是有了遠(yuǎn)程調(diào)用的方式,實(shí)現(xiàn)跨平臺(tái)、跨語(yǔ)言的服務(wù)之間的溝通。在實(shí)現(xiàn)遠(yuǎn)程調(diào)用的過(guò)程中,會(huì)出現(xiàn)客戶端線程一直等待服務(wù)端返回處理結(jié)果的問(wèn)題,從而影響服務(wù)器的性能。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問(wèn)題之一,在于提供一種WEB端遠(yuǎn)程調(diào)用優(yōu)化的方法,解決了因線程等待導(dǎo)致耗時(shí)的問(wèn)題,從而提高服務(wù)訪問(wèn)的效率。
[0004]本發(fā)明的問(wèn)題之一,是這樣實(shí)現(xiàn)的:
[0005]—種WEB端遠(yuǎn)程調(diào)用優(yōu)化的方法,包括如下步驟:
[0006]步驟1、將注冊(cè)中心、服務(wù)端及客戶端進(jìn)行配置后,啟動(dòng)注冊(cè)中心、服務(wù)端及客戶端;
[0007]步驟2、服務(wù)端發(fā)送服務(wù)名稱給注冊(cè)中心,注冊(cè)中心監(jiān)聽(tīng)到服務(wù)端發(fā)送的消息后,將服務(wù)名稱存儲(chǔ)至服務(wù)列表里;
[0008]步驟3、客戶端發(fā)送要訂閱的服務(wù)名稱給注冊(cè)中心,注冊(cè)中心監(jiān)聽(tīng)到客戶端發(fā)送的消息后,從服務(wù)列表中進(jìn)行搜索,若服務(wù)列表中不存在客戶端要訂閱的服務(wù)名稱,則注冊(cè)中心將搜索結(jié)果告知客戶端;若服務(wù)列表中存在客戶端要訂閱的服務(wù)名稱,則注冊(cè)中心將相應(yīng)的服務(wù)名稱推送給客戶端,客戶端接收到該服務(wù)名稱后,進(jìn)入步驟4;
[0009]步驟4、客戶端會(huì)起一個(gè)線程將請(qǐng)求數(shù)據(jù)發(fā)送到服務(wù)端,線程無(wú)需等到服務(wù)器返回處理結(jié)果,往后繼續(xù)執(zhí)行,客戶端將發(fā)送的請(qǐng)求數(shù)據(jù)序列化并轉(zhuǎn)換為流,通過(guò)傳輸協(xié)議傳輸?shù)椒?wù)端;
[0010]步驟5、服務(wù)端接收到請(qǐng)求數(shù)據(jù)后,進(jìn)行反序列化并轉(zhuǎn)換為對(duì)象,然后調(diào)用相應(yīng)的服務(wù)去處理該請(qǐng)求數(shù)據(jù),通過(guò)回調(diào)函數(shù)通知客戶端接收處理結(jié)果;同時(shí),服務(wù)端將處理結(jié)果序列化并轉(zhuǎn)換為流,通過(guò)傳輸協(xié)議傳輸?shù)娇蛻舳耍?br>[0011]步驟6、客戶端接收到處理結(jié)果時(shí),當(dāng)前線程將接收到回調(diào)函數(shù),客戶端接收到處理結(jié)果后,進(jìn)行反序列化并轉(zhuǎn)換為對(duì)象,并執(zhí)行回調(diào)函數(shù),通過(guò)該回調(diào)函數(shù)獲取處理結(jié)果。
[0012]進(jìn)一步地,所述步驟I中服務(wù)端及客戶端的配置具體如下:
[0013]在服務(wù)端中創(chuàng)建服務(wù)工程,開(kāi)發(fā)發(fā)布服務(wù)的實(shí)現(xiàn)類及其接口,通過(guò)xml配置文件,該配置文件包括發(fā)布服務(wù)的實(shí)現(xiàn)類、發(fā)布服務(wù)的接口、傳輸協(xié)議、序列化方式及注冊(cè)中心的地址;
[0014]在客戶端中創(chuàng)建客戶工程,引入服務(wù)接口的包,根據(jù)包開(kāi)發(fā)調(diào)用服務(wù)接口類,通過(guò)xml配置文件,該配置文件包括調(diào)用服務(wù)的接口、回調(diào)函數(shù)、傳輸協(xié)議、序列化方式及注冊(cè)中心的地址。
[0015]進(jìn)一步地,所述步驟2和步驟3中注冊(cè)中心的監(jiān)聽(tīng)方式是通過(guò)socket協(xié)議來(lái)監(jiān)聽(tīng)服務(wù)端及客戶端發(fā)送的消息。
[0016]本發(fā)明要解決的技術(shù)問(wèn)題之二,在于提供一種WEB端遠(yuǎn)程調(diào)用優(yōu)化的系統(tǒng),解決了因線程等待導(dǎo)致耗時(shí)的問(wèn)題,從而提高服務(wù)訪問(wèn)的效率。
[0017]本發(fā)明的問(wèn)題之二,是這樣實(shí)現(xiàn)的:
[0018]一種WEB端遠(yuǎn)程調(diào)用優(yōu)化的系統(tǒng),包括:
[0019]文件配置模塊,用于將注冊(cè)中心、服務(wù)端及客戶端進(jìn)行配置后,啟動(dòng)注冊(cè)中心、月艮務(wù)端及客戶端;
[0020]服務(wù)發(fā)送模塊,用于服務(wù)端發(fā)送服務(wù)名稱給注冊(cè)中心,注冊(cè)中心監(jiān)聽(tīng)到服務(wù)端發(fā)送的消息后,將服務(wù)名稱存儲(chǔ)至服務(wù)列表里;
[0021]服務(wù)訂閱模塊,用于客戶端發(fā)送要訂閱的服務(wù)名稱給注冊(cè)中心,注冊(cè)中心監(jiān)聽(tīng)到客戶端發(fā)送的消息后,從服務(wù)列表中進(jìn)行搜索,若服務(wù)列表中不存在客戶端要訂閱的服務(wù)名稱,則注冊(cè)中心將搜索結(jié)果告知客戶端;若服務(wù)列表中存在客戶端要訂閱的服務(wù)名稱,則注冊(cè)中心將相應(yīng)的服務(wù)名稱推送給客戶端,客戶端接收到該服務(wù)名稱后,進(jìn)入請(qǐng)求傳輸模塊;
[0022]請(qǐng)求傳輸模塊,用于客戶端會(huì)起一個(gè)線程將請(qǐng)求數(shù)據(jù)發(fā)送到服務(wù)端,線程無(wú)需等到服務(wù)器返回處理結(jié)果,往后繼續(xù)執(zhí)行,客戶端將發(fā)送的請(qǐng)求數(shù)據(jù)序列化并轉(zhuǎn)換為流,通過(guò)傳輸協(xié)議傳輸?shù)椒?wù)端;
[0023]請(qǐng)求處理模塊,用于服務(wù)端接收到請(qǐng)求數(shù)據(jù)后,進(jìn)行反序列化并轉(zhuǎn)換為對(duì)象,然后調(diào)用相應(yīng)的服務(wù)去處理該請(qǐng)求數(shù)據(jù),通過(guò)回調(diào)函數(shù)通知客戶端接收處理結(jié)果;同時(shí),服務(wù)端將處理結(jié)果序列化并轉(zhuǎn)換為流,通過(guò)傳輸協(xié)議傳輸?shù)娇蛻舳耍?br>[0024]結(jié)果獲取模塊,用于客戶端接收到處理結(jié)果時(shí),當(dāng)前線程將接收到回調(diào)函數(shù),客戶端接收到處理結(jié)果后,進(jìn)行反序列化并轉(zhuǎn)換為對(duì)象,并執(zhí)行回調(diào)函數(shù),通過(guò)該回調(diào)函數(shù)獲取處理結(jié)果。
[0025]進(jìn)一步地,所述文件配置模塊中服務(wù)端及客戶端的配置具體如下:
[0026]在服務(wù)端中創(chuàng)建服務(wù)工程,開(kāi)發(fā)發(fā)布服務(wù)的實(shí)現(xiàn)類及其接口,通過(guò)xml配置文件,該配置文件包括發(fā)布服務(wù)的實(shí)現(xiàn)類、發(fā)布服務(wù)的接口、傳輸協(xié)議、序列化方式及注冊(cè)中心的地址;
[0027]在客戶端中創(chuàng)建客戶工程,引入服務(wù)接口的包,根據(jù)包開(kāi)發(fā)調(diào)用服務(wù)接口類,通過(guò)xml配置文件,該配置文件包括調(diào)用服務(wù)的接口、回調(diào)函數(shù)、傳輸協(xié)議、序列化方式及注冊(cè)中心的地址。
[0028]進(jìn)一步地,所述服務(wù)發(fā)送模塊和服務(wù)訂閱模塊中注冊(cè)中心的監(jiān)聽(tīng)方式是通過(guò)socket協(xié)議來(lái)監(jiān)聽(tīng)服務(wù)端及客戶端發(fā)送的消息。
[0029]本發(fā)明具有如下優(yōu)點(diǎn):本發(fā)明提供了一種WEB端遠(yuǎn)程調(diào)用優(yōu)化的方法,客戶端在發(fā)送請(qǐng)求指令給服務(wù)端時(shí),該線程不用一直等待服務(wù)端的處理結(jié)果,而是繼續(xù)處理其他事情,解決了因線程等待導(dǎo)致耗時(shí)的問(wèn)題,從而提高服務(wù)訪問(wèn)的效率。
【附圖說(shuō)明】
[0030]下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。
[0031]圖1為本發(fā)明中注冊(cè)中心、服務(wù)端及客戶端之間進(jìn)行數(shù)據(jù)交互的示意圖。
[0032]圖2為本發(fā)明一種WEB端遠(yuǎn)程調(diào)用優(yōu)化的方法執(zhí)行流程圖。
【具體實(shí)施方式】
[0033]為使得本發(fā)明更明顯易懂,現(xiàn)以一優(yōu)選實(shí)施例,并配合附圖作詳細(xì)說(shuō)明如下。
[0034]如圖1和圖2所示,本發(fā)明的一種WEB端遠(yuǎn)程調(diào)用優(yōu)化的方法,包括如下步驟:
[0035]步驟1、將注冊(cè)中心、服務(wù)端及客戶端進(jìn)行配置,服務(wù)端的配置具體為:在服務(wù)端中創(chuàng)建服務(wù)工程,開(kāi)發(fā)發(fā)布服務(wù)的實(shí)現(xiàn)類及其接口,通過(guò)xml配置文件,該配置文件包括發(fā)布服務(wù)的實(shí)現(xiàn)類、發(fā)布服務(wù)的接口、傳輸協(xié)議、序列化方式及注冊(cè)中心的地址;客戶端的配置具體為:在客戶端中創(chuàng)建客戶工程,引入服務(wù)接口的包,根據(jù)包開(kāi)發(fā)調(diào)用服務(wù)接口類,通過(guò)xml配置文件,該配置文件包括調(diào)用服務(wù)的接口、回調(diào)函數(shù)、傳輸協(xié)議、序列化方式及注冊(cè)中心的地址;再啟動(dòng)注冊(cè)中心、服務(wù)端及客戶端;
[0036]步驟2、服務(wù)端發(fā)送服務(wù)名稱給注冊(cè)中心,注冊(cè)中心通過(guò)socketUocket:網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)連接的一端稱為一個(gè)socket)協(xié)議監(jiān)聽(tīng)到服務(wù)端發(fā)送的消息后,將服務(wù)名稱存儲(chǔ)至服務(wù)列表里;
[0037]步驟3、客戶端發(fā)送要訂閱的服務(wù)名稱給注冊(cè)中心,注冊(cè)中心通過(guò)socket協(xié)議監(jiān)聽(tīng)到客戶端發(fā)送的消息后,從服務(wù)列表中進(jìn)行搜索,若服務(wù)列表中不存在客戶端要訂閱的服務(wù)名稱,則注冊(cè)中心將搜索結(jié)果告知客戶端;若服務(wù)列表中存在客戶端要訂閱的服務(wù)名稱,則注冊(cè)中心將相應(yīng)的服務(wù)名稱推送給客戶端,客戶端接收到該服務(wù)名稱后,進(jìn)入步驟4;
[0038]步驟4、客戶端會(huì)起一個(gè)線程將請(qǐng)求數(shù)據(jù)發(fā)送到服務(wù)端,線程無(wú)需等到服務(wù)器返回處理結(jié)果,往后繼續(xù)執(zhí)行,客戶端將發(fā)送的請(qǐng)求數(shù)據(jù)序列化并轉(zhuǎn)換為流,通過(guò)傳輸協(xié)議傳輸?shù)椒?wù)端;
[0039]步驟5、服務(wù)端接收到請(qǐng)求數(shù)據(jù)后,進(jìn)行反序列化并轉(zhuǎn)換為對(duì)象,然后調(diào)用相應(yīng)的服務(wù)去處理該請(qǐng)求數(shù)據(jù),通過(guò)回調(diào)函數(shù)通知客戶端接收處理結(jié)果;同時(shí),服務(wù)端將處理結(jié)果序列化并轉(zhuǎn)換為流,通過(guò)傳輸協(xié)議傳輸?shù)娇蛻舳耍?br>[0040]步驟6、客戶端接收到處理結(jié)果時(shí),當(dāng)前線程將接收到回調(diào)函數(shù),客戶端接收到處理結(jié)果后,進(jìn)行反序列化并轉(zhuǎn)換為對(duì)象,并執(zhí)行回調(diào)函數(shù),通過(guò)該回調(diào)函數(shù)獲取處理結(jié)果。
[004