專利名稱:通信系統(tǒng)以及客戶端與服務(wù)端之間的通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種通信系統(tǒng)以及客戶端與服務(wù)端之間的通信方法。
背景技術(shù):
WCF (Windows Communication Foundation)是由微軟發(fā)展的一組數(shù)據(jù)通信的應(yīng)用程序開(kāi)發(fā)接口,可以翻譯為Windows通訊接口,它是.NET框架的一部分,由.NETFramework 3. O 開(kāi)始弓I 入,與 Windows Presentation Foundation 及 Windows WorkflowFoundation并行為新一代Windows操作系統(tǒng)以及WinFX的三個(gè)重大應(yīng)用程序開(kāi)發(fā)類庫(kù)。在· NET Framework 2. O 以及前版本中,微軟發(fā)展了 Web Service (SOAP with HTTPcommunication), . NET Remoting(TCP/HTTP/Pipeline communication)以及基石出的·Winsock等通信支持,由于各個(gè)通信方法的設(shè)計(jì)方法不同,而且彼此之間也有相互的重疊性(例如.NETRemoting可以開(kāi)發(fā)S0AP,HTTP通信),對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),不同的選擇會(huì)有不同的程序設(shè)計(jì)模型,而且必須要重新學(xué)習(xí),讓開(kāi)發(fā)人員在使用中有許多不便。同時(shí),面向服務(wù)架構(gòu)(Service-Oriented Architecture)也開(kāi)始盛行于軟件工業(yè)中,因此微軟重新查看了這些通信方法,并設(shè)計(jì)了一個(gè)統(tǒng)一的程序開(kāi)發(fā)模型,即WCF,對(duì)于數(shù)據(jù)通信提供了最基本最有彈性的支持。基于WCF技術(shù)的通信系統(tǒng)一般包括WCF客戶端(client)和WCF服務(wù)端(server),當(dāng)用戶需要實(shí)現(xiàn)某項(xiàng)服務(wù)時(shí),通過(guò)向WCF客戶端發(fā)出服務(wù)請(qǐng)求,WCF客戶端基于所述服務(wù)請(qǐng)求創(chuàng)建與WCF服務(wù)端進(jìn)行通信的WCF通道(或稱為WCF網(wǎng)絡(luò)鏈路),通過(guò)所創(chuàng)建的WCF通道實(shí)現(xiàn)WCF客戶端與WCF服務(wù)端之間的通信交互,所述通信交互包括:WCF客戶端通過(guò)創(chuàng)建的WCF通道將服務(wù)請(qǐng)求傳遞給WCF服務(wù)端;WCF服務(wù)端根據(jù)所述服務(wù)請(qǐng)求執(zhí)行業(yè)務(wù)邏輯,并將執(zhí)行結(jié)果返回至WCF客戶端,即WCF客戶端接收WCF服務(wù)端對(duì)于所述服務(wù)請(qǐng)求的響應(yīng)?,F(xiàn)有技術(shù)中,在WCF客戶端與WCF服務(wù)端之間的通信結(jié)束之后,WCF客戶端就會(huì)關(guān)閉所創(chuàng)建的WCF通道,若接收到新的服務(wù)請(qǐng)求,則再創(chuàng)建新的WCF通道與WCF服務(wù)端進(jìn)行通信。由于WCF客戶端創(chuàng)建WCF通道比較消耗時(shí)間,因此會(huì)導(dǎo)致WCF客戶端的性能較低。相關(guān)技術(shù)還可參考公開(kāi)號(hào)為CN 102209076A的中國(guó)專利申請(qǐng),該專利申請(qǐng)公開(kāi)了一種服務(wù)端與客戶端之間的交互方法和交互系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明要解決的問(wèn)題是現(xiàn)有通信系統(tǒng)中WCF客戶端的性能較低。為解決上述問(wèn)題,本發(fā)明技術(shù)方案提供一種客戶端與服務(wù)端之間的通信方法,包括WCF客戶端在接收到服務(wù)請(qǐng)求后,檢測(cè)通道緩存池中是否存在可用的WCF通道,是則從所述通道緩存池中調(diào)用任意一個(gè)可用的WCF通道以與WCF服務(wù)端進(jìn)行通信,否則基于所述服務(wù)請(qǐng)求創(chuàng)建WCF通道以與所述WCF服務(wù)端進(jìn)行通信。
可選的,所述的客戶端與服務(wù)端之間的通信方法還包括在所述WCF客戶端與WCF服務(wù)端之間的通信結(jié)束后,將創(chuàng)建的WCF通道存于所述通道緩存池中。可選的,在所述WCF客戶端與WCF服務(wù)端之間的通信結(jié)束后,所述將創(chuàng)建的WCF通道存于所述通道緩存池是在檢測(cè)出該WCF通道未發(fā)生錯(cuò)誤之后進(jìn)行的。可選的,所述的客戶端與服務(wù)端之間的通信方法還包括檢測(cè)所述通道緩存池中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤,將發(fā)生錯(cuò)誤的WCF通道從所述通道緩存池中移除??蛇x的,所述通道緩存池中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤是通過(guò)檢測(cè)各WCF通道的狀態(tài)位實(shí)現(xiàn)的。為解決上述問(wèn)題,本發(fā)明技術(shù)方案還提供一種通信系統(tǒng),包括WCF客戶端和WCF服務(wù)端,所述WCF客戶端包括
通道緩存池,適于存儲(chǔ)所述WCF客戶端創(chuàng)建的WCF通道;第一檢測(cè)單元,適于在接收到服務(wù)請(qǐng)求后,檢測(cè)所述通道緩存池中是否存在可用的WCF通道;調(diào)用單元,適于在檢測(cè)到所述通道緩存池中存在可用的WCF通道后,調(diào)用所述通道緩存池中任意一個(gè)可用的WCF通道以實(shí)現(xiàn)與所述WCF服務(wù)端之間的通信;通道創(chuàng)建單元,適于在檢測(cè)到所述通道緩存池中不存在可用的WCF通道后,基于所述服務(wù)請(qǐng)求創(chuàng)建WCF通道以實(shí)現(xiàn)與所述WCF服務(wù)端之間的通信??蛇x的,所述的通信系統(tǒng)還包括緩存單元,適于在所述WCF客戶端與WCF服務(wù)端之間的通信結(jié)束后,將創(chuàng)建的WCF通道存于所述通道緩存池中。可選的,所述的通信系統(tǒng)還包括第三檢測(cè)單元,適于在所述WCF客戶端與WCF服務(wù)端之間的通信結(jié)束后,檢測(cè)創(chuàng)建的WCF通道是否發(fā)生錯(cuò)誤;所述緩存單元將創(chuàng)建的WCF通道存于所述通道緩存池是在所述第三檢測(cè)單元檢測(cè)出該WCF通道未發(fā)生錯(cuò)誤之后進(jìn)行的??蛇x的,所述的通信系統(tǒng)還包括第二檢測(cè)單元,適于檢測(cè)所述通道緩存池中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤;移除單元,適于將發(fā)生錯(cuò)誤的WCF通道從所述通道緩存池中移除??蛇x的,所述第二檢測(cè)單元通過(guò)WCF通道的狀態(tài)位檢測(cè)所述通道緩存池中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤。與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案至少具有以下優(yōu)點(diǎn)通過(guò)在WCF客戶端設(shè)置通道緩存池,當(dāng)完成WCF客戶端與WCF服務(wù)端結(jié)束通信后,不是關(guān)閉所創(chuàng)建的WCF通道,而是將其存于所述通道緩存池中,以便下一次服務(wù)請(qǐng)求到來(lái)時(shí),可以從所述通道緩存池中獲取到可用的WCF通道,由此大大減少了因重復(fù)創(chuàng)建WCF通道而消耗的時(shí)間,使WCF客戶端的性能得到提升。通過(guò)對(duì)所述通道緩存池中存儲(chǔ)的WCF通道的狀態(tài)進(jìn)行實(shí)時(shí)檢測(cè),移除檢測(cè)出發(fā)生錯(cuò)誤的WCF通道,可以有效避免調(diào)用所述通道緩存池中的WCF通道后產(chǎn)生出錯(cuò)的情況,能夠進(jìn)一步提升WCF客戶端的性能。將創(chuàng)建的WCF通道存于所述通道緩存池之前,通過(guò)檢測(cè)該WCF通道是否發(fā)生錯(cuò)誤,以免將發(fā)生錯(cuò)誤的WCF通道存入通道緩存池,能進(jìn)一步提升WCF客戶端的性能。
圖I是本發(fā)明實(shí)施方式提供的通信系統(tǒng)的結(jié)構(gòu)示意圖;圖2是本發(fā)明實(shí)施例的通信系統(tǒng)的結(jié)構(gòu)示意圖;圖3是本發(fā)明實(shí)施例的客戶端與服務(wù)端之間的通信方法的流程示意圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
做詳細(xì)的說(shuō)明。在以下描述中闡述了具體細(xì)節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以多種不同于在此描述的其它方式來(lái)實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣。因此本發(fā)明不受下面公開(kāi)的具體實(shí)施方式
的限制。如背景技術(shù)所述,現(xiàn)有的基于WCF技術(shù)的通信系統(tǒng)中,WCF客戶端對(duì)于每個(gè)接收到的服務(wù)請(qǐng)求都會(huì)創(chuàng)建WCF通道與WCF服務(wù)端通信,并在通信結(jié)束后關(guān)閉所創(chuàng)建的WCF通道,由于創(chuàng)建WCF通道需要消耗的時(shí)間較多,一定程度上降低了 WCF客戶端的性能。發(fā)明人考 慮,在實(shí)際情況中,有些創(chuàng)建的WCF通道是完全可以被重復(fù)利用的,有可能某個(gè)WCF通道被關(guān)閉后,不久之后WCF客戶端仍然需要重新將其創(chuàng)建以滿足通信交互的需要,因此,如果將每次創(chuàng)建的WCF通道緩存于一通道緩存池之中,待下次接收到服務(wù)請(qǐng)求時(shí)便可以從通道緩存池中調(diào)用可用的WCF通道,這樣就能夠減少因重復(fù)創(chuàng)建WCF通道而導(dǎo)致的時(shí)間消耗,從而有效提高WCF客戶端的性能。需要說(shuō)明的是,本領(lǐng)域技術(shù)人員知曉,通信系統(tǒng)內(nèi)的調(diào)用一般是由WCF客戶端發(fā)起,然后調(diào)用WCF服務(wù)端,由于WCF服務(wù)端會(huì)接受眾多WCF客戶端的調(diào)用,這個(gè)過(guò)程一般說(shuō)來(lái)WCF服務(wù)端消耗的性能會(huì)更大,因此,通常會(huì)考慮改善WCF服務(wù)端的性能;而WCF客戶端在一般情況下,消耗的性能會(huì)小很多,本領(lǐng)域技術(shù)人員并不容易意識(shí)到WCF通道的反復(fù)創(chuàng)建可能是WCF客戶端在調(diào)用WCF服務(wù)端過(guò)程中產(chǎn)生的最大性能消耗。圖I是本發(fā)明實(shí)施方式提供的通信系統(tǒng)的結(jié)構(gòu)示意圖。如圖I所示,本發(fā)明實(shí)施方式提供的通信系統(tǒng)包括WCF客戶端10和WCF服務(wù)端20,所述WCF客戶端10包括通道緩存池100,適于存儲(chǔ)所述WCF客戶端10創(chuàng)建的WCF通道;第一檢測(cè)單元101,與所述通道緩存池100相連,適于在接收到服務(wù)請(qǐng)求后,檢測(cè)所述通道緩存池100中是否存在可用的WCF通道;調(diào)用單元102,與所述第一檢測(cè)單元101和通道緩存池100相連,適于在檢測(cè)到所述通道緩存池100中存在可用的WCF通道后,調(diào)用所述通道緩存池100中任意一個(gè)可用的WCF通道以實(shí)現(xiàn)與所述WCF服務(wù)端20之間的通信;通道創(chuàng)建單元103,與所述第一檢測(cè)單元101和通道緩存池100相連,適于在檢測(cè)到所述通道緩存池100中不存在可用的WCF通道后,基于所述服務(wù)請(qǐng)求創(chuàng)建WCF通道以實(shí)現(xiàn)與所述WCF服務(wù)端20之間的通信。本發(fā)明實(shí)施方式中,通過(guò)在WCF客戶端10設(shè)置通道緩存池100,當(dāng)WCF客戶端10與WCF服務(wù)端20結(jié)束通信后,WCF客戶端10不是關(guān)閉所創(chuàng)建的WCF通道,而是將其存于所述通道緩存池100中,以便下一次服務(wù)請(qǐng)求到來(lái)時(shí),可以從所述通道緩存池100中獲取到可用的WCF通道,由于減少了因重復(fù)創(chuàng)建WCF通道而導(dǎo)致的時(shí)間消耗,因此能夠使WCF客戶端10的性能得到提升。本發(fā)明實(shí)施方式中,所述通道緩存池100中存儲(chǔ)的所述可用的WCF通道是指處于空閑狀態(tài)且并未發(fā)生錯(cuò)誤的WCF通道。下面以具體實(shí)施例對(duì)上述通信系統(tǒng)作詳細(xì)說(shuō)明。圖2是本發(fā)明實(shí)施例的通信系統(tǒng)的結(jié)構(gòu)示意圖。如圖2所示,本實(shí)施例提供的通信系統(tǒng)包括WCF客戶端10’和WCF服務(wù)端20,所述WCF客戶端10’除了包括上述實(shí)施方式中提到的通道緩存池100、第一檢測(cè)單元101、調(diào)用單元102、通道創(chuàng)建單元103,還包括緩存單元104,與所述通道創(chuàng)建單元103和通道緩存池100相連,適于在所述WCF客戶端10’與WCF服務(wù)端20之間的通信結(jié)束后,將創(chuàng)建的WCF通道存于所述通道緩存池100中。需要說(shuō)明的是,圖I所示通信系統(tǒng)的WCF客戶端10所包括的通道創(chuàng)建單元103和通道緩存池100之間的連接關(guān)系,在本實(shí)施例中具體是通過(guò)緩存單元104建立的,即通道緩存池100中所存儲(chǔ)的WCF通道是由通道創(chuàng)建單元103創(chuàng)建,并由緩存單元104在WCF客戶端10’與WCF服務(wù)端20之間的通信結(jié)束后存儲(chǔ)到通道緩存池100中的。下面詳細(xì)說(shuō)明圖2所示通信系統(tǒng)的實(shí)施過(guò)程。 在實(shí)際實(shí)施時(shí),本實(shí)施例提供的通信系統(tǒng)的WCF客戶端10’還可以包括通信單元(圖中未示出),適于接收用戶提出的服務(wù)請(qǐng)求,并在WCF通道被獲得后(由通道創(chuàng)建單元103創(chuàng)建獲得或由調(diào)用單元102從通道緩存池100調(diào)用獲得),將服務(wù)請(qǐng)求通過(guò)該WCF通道傳遞給WCF服務(wù)端20,以及接收WCF服務(wù)端20對(duì)于該服務(wù)請(qǐng)求的響應(yīng)。當(dāng)所述通信單元接收到服務(wù)請(qǐng)求后,WCF客戶端10’中的第一檢測(cè)單元101會(huì)檢測(cè)通道緩存池100中是否存在可用的WCF通道,如果存在可用的WCF通道,則由調(diào)用單元102調(diào)用所述通道緩存池100中任意一個(gè)可用的WCF通道,WCF客戶端10’與WCF服務(wù)端20之間便建立起了通信連接,WCF客戶端10 ’中的所述通信單元可以通過(guò)該WCF通道把所述服務(wù)請(qǐng)求傳遞給WCF服務(wù)端20,由WCF服務(wù)端20基于該服務(wù)請(qǐng)求執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,并把執(zhí)行結(jié)果作為對(duì)該服務(wù)請(qǐng)求的響應(yīng)返回給WCF客戶端10’的通信單元。如果通道緩存池100中不存在可用的WCF通道,則由通道創(chuàng)建單元103基于所述服務(wù)請(qǐng)求創(chuàng)建一個(gè)WCF通道,WCF客戶端10’通過(guò)創(chuàng)建的WCF通道與WCF服務(wù)端20過(guò)程如前所述,在此不再贅述。需要說(shuō)明的是,所述通道緩存池100中可用的WCF通道的數(shù)量可能是一個(gè),也可能是多個(gè),此時(shí)只需要從中任選一個(gè)可用的WCF通道進(jìn)行調(diào)用即可。在實(shí)際實(shí)施時(shí),通道緩存池100 —般可以使用堆棧的方式存儲(chǔ)WCF通道,那么當(dāng)通道緩存池100中存在一個(gè)以上可用的WCF通道時(shí),則選取位于堆棧頂部的可用WCF通道。當(dāng)WCF客戶端10’的通信單元接收到WCF服務(wù)端20對(duì)于所述服務(wù)請(qǐng)求的響應(yīng),該響應(yīng)表示已獲得該服務(wù)請(qǐng)求所需的結(jié)果,則說(shuō)明WCF客戶端10’與WCF服務(wù)端20之間的通信結(jié)束,此時(shí),如果用于通信的WCF通道是由通道創(chuàng)建單元103所創(chuàng)建的,則由緩存單元104將該WCF通道存儲(chǔ)到通道緩存池100之中。需要說(shuō)明的是,當(dāng)WCF客戶端10’剛剛啟動(dòng)時(shí),通道緩存池100中通常并未存儲(chǔ)任何WCF通道,那么接收到第一個(gè)服務(wù)請(qǐng)求時(shí),用于與WCF服務(wù)端20進(jìn)行通信的WCF通道由通道創(chuàng)建單元103創(chuàng)建獲得,而隨著WCF客戶端10’接收的服務(wù)請(qǐng)求的不斷增加(具體體現(xiàn)為線程數(shù)或其他組件的增加),一個(gè)個(gè)WCF通道被不斷創(chuàng)建,通道緩存池100中存儲(chǔ)的WCF通道也不斷增加,那么其中存儲(chǔ)的WCF通道被復(fù)用的可能性也隨之增大,WCF客戶端10’性能提升也越來(lái)越明顯。當(dāng)然,也可以在WCF客戶端10’啟動(dòng)后便預(yù)先創(chuàng)建一定數(shù)量的WCF通道,以便在接收到服務(wù)請(qǐng)求后可以從通道緩存池100中調(diào)用可用的WCF通道。
仍然參閱圖2,在本實(shí)施例中,所述WCF客戶端10’還包括第二檢測(cè)單元105,與通道緩存池100相連,適于檢測(cè)所述通道緩存池100中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤;移除單元106,與所述第二檢測(cè)單元105和通道緩存池100相連,適于將發(fā)生錯(cuò)誤的WCF通道從所述通道緩存池100中移除。在實(shí)際實(shí)施時(shí),由于各種原因,例如WCF服務(wù)端的拒絕、WCF服務(wù)端出錯(cuò)或重啟、網(wǎng)絡(luò)中斷等等,常常會(huì)使通道緩存池100中存儲(chǔ)的某個(gè)或某些WCF通道發(fā)生錯(cuò)誤(或稱為WCF通道失敗),如果不對(duì)這些發(fā)生錯(cuò)誤的WCF通道進(jìn)行處理,則調(diào)用單元102在調(diào)用其進(jìn)行通信交互時(shí)便會(huì)出錯(cuò),同樣會(huì)影響到WCF客戶端10’的性能,因此需要實(shí)時(shí)地對(duì)通道緩存池100中存儲(chǔ)的所有WCF通道進(jìn)行檢測(cè),一旦第二檢測(cè)單元105發(fā)現(xiàn)某個(gè)或某些WCF通道發(fā)生錯(cuò)誤,便由移除單元106將其從通道緩存池100中移除,這樣能夠進(jìn)一步提升WCF客戶端10’的性能。
具體實(shí)施時(shí),所述第二檢測(cè)單元105是通過(guò)WCF通道的狀態(tài)位檢測(cè)所述通道緩存池100中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤的。WCF通道的狀態(tài)位由底層庫(kù)設(shè)定,此為本領(lǐng)域技術(shù)人員所公知,在此不再詳細(xì)描述。在其他實(shí)施例中,本發(fā)明實(shí)施方式中所述的WCF客戶端還可以包括第三檢測(cè)單元,適于在所述WCF客戶端10’與WCF服務(wù)端20之間的通信結(jié)束后,所述緩存單元104將通道創(chuàng)建單元103所創(chuàng)建的WCF通道存于所述通道緩存池100之前,檢測(cè)該WCF通道是否發(fā)生錯(cuò)誤,是則關(guān)閉該WCF通道,否則將其存于通道緩存池100。由于在實(shí)際實(shí)施時(shí),可能在WCF客戶端通過(guò)某個(gè)WCF通道與WCF服務(wù)端完成通信交互之后,該WCF通道便可能發(fā)生錯(cuò)誤,此時(shí)將其存入通道緩存池不僅毫無(wú)意義,還會(huì)影響WCF客戶端的性能消耗,因此有必要在對(duì)WCF通道進(jìn)行緩存之前就判斷其是否可用。此外,本領(lǐng)域技術(shù)人員知曉,用于WCF客戶端與WCF服務(wù)端之間進(jìn)行通信交互的WCF通道實(shí)際上是WCF客戶端與WCF服務(wù)端雙方建立的連接,具體由WCF客戶端向WCF服務(wù)端發(fā)起連接,WCF服務(wù)端接受WCF客戶端的連接,從而雙方建立起連接。WCF客戶端與WCF服務(wù)端之間建立的連接按照不同標(biāo)準(zhǔn)可以分為多種類型,例如可以分為長(zhǎng)連接和短連接,也可以分為NET. TCP連接、HTTP連接等多種類型的連接,其中,NET. TCP連接通常屬于長(zhǎng)連接,該類型的連接被關(guān)閉后相應(yīng)的端口一般不會(huì)馬上被釋放,因此,若一定時(shí)間內(nèi)頻繁地創(chuàng)建并關(guān)閉此類型的連接,則會(huì)造成WCF客戶端的通信端口被耗盡的問(wèn)題,而HTTP連接一般為短連接,該類型的連接被關(guān)閉后馬上被釋放,不存在上述問(wèn)題。本實(shí)施例中,所述WCF通道的類型可以為NET. TCP長(zhǎng)連接,將NET. TCP長(zhǎng)連接緩存于通道緩存池之中,除了能夠減少因重復(fù)創(chuàng)建WCF通道而導(dǎo)致的時(shí)間消耗,還能夠有效避免由于一定時(shí)間內(nèi)頻繁創(chuàng)建和關(guān)閉NET. TCP長(zhǎng)連接而導(dǎo)致WCF客戶端的通信端口被耗盡。另外需要說(shuō)明的是,本實(shí)施例中所述的WCF客戶端和WCF服務(wù)端都是指相對(duì)性概念。一般來(lái)說(shuō),WCF客戶端作為服務(wù)請(qǐng)求以及調(diào)用的發(fā)起方,WCF服務(wù)端作為服務(wù)請(qǐng)求以及調(diào)用的接受方(或稱為響應(yīng)方)。在實(shí)際情況中,某一臺(tái)服務(wù)器既可以是WCF服務(wù)端,也可以作為WCF客戶端向其他服務(wù)器發(fā)起調(diào)用。本領(lǐng)域技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例中通信系統(tǒng)的全部或部分是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,所述存儲(chǔ)介質(zhì)可以是ROM、RAM、磁碟、光盤(pán)等。
對(duì)應(yīng)于上述通信系統(tǒng),本實(shí)施例還提供了一種客戶端與服務(wù)端之間的通信方法。圖3是本發(fā)明實(shí)施例的客戶端與服務(wù)端之間的通信方法的流程示意圖,如圖3所示,所述客戶端與服務(wù)端之間的通信方法包括執(zhí)行步驟SlOl,WCF客戶端接收到服務(wù)請(qǐng)求;執(zhí)行步驟S102,檢測(cè)通道緩存池中是否存在可用的WCF通道;是則執(zhí)行步驟S103,從所述通道緩存池中調(diào)用任意一個(gè)可用的WCF通道以與WCF服務(wù)端進(jìn)行通信;否則執(zhí)行步驟S104,基于所述服務(wù)請(qǐng)求創(chuàng)建WCF通道以與WCF服務(wù)端進(jìn)行通信。本實(shí)施例中,所述的客戶端與服務(wù)端之間的通信方法,還包括在所述WCF客戶端與WCF服務(wù)端之間的通信結(jié)束后,將創(chuàng)建的WCF通道存于所述通道緩存池中。其他實(shí)施例中,在所述WCF客戶端與WCF服務(wù)端之間的通信結(jié)束后,將所創(chuàng)建的WCF通道存于所述通道緩存池之前,還可以檢測(cè)待緩存的WCF通道是否發(fā)生錯(cuò)誤,是則關(guān)閉 該WCF通道,否則將其存于通道緩存池。本實(shí)施例中,所述的客戶端與服務(wù)端之間的通信方法,還包括檢測(cè)所述通道緩存池中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤,將發(fā)生錯(cuò)誤的WCF通道從所述通道緩存池中移除。具體實(shí)施時(shí),所述通道緩存池中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤是通過(guò)檢測(cè)各WCF通道的狀態(tài)位實(shí)現(xiàn)的。具體實(shí)施時(shí),所述WCF通道可以為NET. TCP長(zhǎng)連接。所述客戶端與服務(wù)端之間的通信方法的具體實(shí)施可以參考本實(shí)施例提供的通信系統(tǒng)的實(shí)施,在此不再贅述。本發(fā)明雖然已以較佳實(shí)施例公開(kāi)如上,但其并不是用來(lái)限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案做出可能的變動(dòng)和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護(hù)范圍。
權(quán)利要求
1.一種客戶端與服務(wù)端之間的通信方法,其特征在于,包括 WCF客戶端在接收到服務(wù)請(qǐng)求后,檢測(cè)通道緩存池中是否存在可用的WCF通道,是則從所述通道緩存池中調(diào)用任意一個(gè)可用的WCF通道以與WCF服務(wù)端進(jìn)行通信,否則基于所述服務(wù)請(qǐng)求創(chuàng)建WCF通道以與所述WCF服務(wù)端進(jìn)行通信。
2.根據(jù)權(quán)利要求I所述的客戶端與服務(wù)端之間的通信方法,其特征在于,還包括在所述WCF客戶端與WCF服務(wù)端之間的通信結(jié)束后,將創(chuàng)建的WCF通道存于所述通道緩存池中。
3.根據(jù)權(quán)利要求2所述的客戶端與服務(wù)端之間的通信方法,其特征在于,在所述WCF客戶端與WCF服務(wù)端之間的通信結(jié)束后,所述將創(chuàng)建的WCF通道存于所述通道緩存池是在檢測(cè)出該WCF通道未發(fā)生錯(cuò)誤之后進(jìn)行的。
4.根據(jù)權(quán)利要求I所述的客戶端與服務(wù)端之間的通信方法,其特征在于,還包括檢測(cè)所述通道緩存池中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤,將發(fā)生錯(cuò)誤的WCF通道從所述通道緩存池中移除。
5.根據(jù)權(quán)利要求4所述的客戶端與服務(wù)端之間的通信方法,其特征在于,所述通道緩存池中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤是通過(guò)檢測(cè)各WCF通道的狀態(tài)位實(shí)現(xiàn)的。
6.一種通信系統(tǒng),包括WCF客戶端和WCF服務(wù)端,其特征在于,所述WCF客戶端包括 通道緩存池,適于存儲(chǔ)所述WCF客戶端創(chuàng)建的WCF通道; 第一檢測(cè)單元,適于在接收到服務(wù)請(qǐng)求后,檢測(cè)所述通道緩存池中是否存在可用的WCF通道; 調(diào)用單元,適于在檢測(cè)到所述通道緩存池中存在可用的WCF通道后,調(diào)用所述通道緩存池中任意一個(gè)可用的WCF通道以實(shí)現(xiàn)與所述WCF服務(wù)端之間的通信; 通道創(chuàng)建單元,適于在檢測(cè)到所述通道緩存池中不存在可用的WCF通道后,基于所述服務(wù)請(qǐng)求創(chuàng)建WCF通道以實(shí)現(xiàn)與所述WCF服務(wù)端之間的通信。
7.根據(jù)權(quán)利要求6所述的通信系統(tǒng),其特征在于,還包括緩存單元,適于在所述WCF客戶端與WCF服務(wù)端之間的通信結(jié)束后,將創(chuàng)建的WCF通道存于所述通道緩存池中。
8.根據(jù)權(quán)利要求7所述的通信系統(tǒng),其特征在于,還包括第三檢測(cè)單元,適于在所述WCF客戶端與WCF服務(wù)端之間的通信結(jié)束后,檢測(cè)創(chuàng)建的WCF通道是否發(fā)生錯(cuò)誤;所述緩存單元將創(chuàng)建的WCF通道存于所述通道緩存池是在所述第三檢測(cè)單元檢測(cè)出該WCF通道未發(fā)生錯(cuò)誤之后進(jìn)行的。
9.根據(jù)權(quán)利要求6所述的通信系統(tǒng),其特征在于,還包括 第二檢測(cè)單元,適于檢測(cè)所述通道緩存池中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤; 移除單元,適于將發(fā)生錯(cuò)誤的WCF通道從所述通道緩存池中移除。
10.根據(jù)權(quán)利要求9所述的通信系統(tǒng),其特征在于,所述第二檢測(cè)單元通過(guò)WCF通道的狀態(tài)位檢測(cè)所述通道緩存池中存儲(chǔ)的WCF通道是否發(fā)生錯(cuò)誤。
全文摘要
一種通信系統(tǒng)以及客戶端與服務(wù)端之間的通信方法,所述客戶端與服務(wù)端之間的通信方法包括WCF客戶端在接收到服務(wù)請(qǐng)求后,檢測(cè)通道緩存池中是否存在可用的WCF通道,是則從所述通道緩存池中調(diào)用任意一個(gè)可用的WCF通道以與WCF服務(wù)端進(jìn)行通信,否則基于所述服務(wù)請(qǐng)求創(chuàng)建WCF通道以與所述WCF服務(wù)端進(jìn)行通信。本發(fā)明技術(shù)方案能提升WCF客戶端的性能。
文檔編號(hào)H04L29/06GK102801726SQ201210284940
公開(kāi)日2012年11月28日 申請(qǐng)日期2012年8月6日 優(yōu)先權(quán)日2012年8月6日
發(fā)明者虞鋼 申請(qǐng)人:上海西本網(wǎng)絡(luò)科技有限公司