[發明專利]基于半同步半異步和管道過濾器模式的服務器設計方法在審
| 申請號: | 201410391320.4 | 申請日: | 2014-08-11 |
| 公開(公告)號: | CN104219284A | 公開(公告)日: | 2014-12-17 |
| 發明(設計)人: | 王成;賴雄鳴;謝維波;緱錦;鄭黎曉;李靜;官威 | 申請(專利權)人: | 華僑大學 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;G06F9/52;G06F9/50 |
| 代理公司: | 泉州市文華專利代理有限公司 35205 | 代理人: | 陳智海 |
| 地址: | 362000 福*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 同步 異步 管道 過濾器 模式 服務器 設計 方法 | ||
技術領域
本發明涉及一種服務器設計方法,特別涉及基于半同步半異步和管道過濾器模式的服務器設計方法。?
背景技術
隨著信息技術的不斷發展,新興的電腦,手機及各種媒體終端也不斷涌現,這也使如何讓這些不同的終端相互通信與協作成為一個挑戰。網絡服務器作為分布式應用的核心部件,其設計的好壞將直接影響到整個分布式應用的性能。雖然目前已經有一些較為成熟的設計模式已被應用到網絡服務器中,并在一定程度上提高了服務器的性能,比如半同步半異步模式等,但當前使用的網絡服務器仍然存在有這樣或者那樣的問題,這些網絡服務器的結構和缺點如下:?
(1)一個客戶端連接一個線程/進程的網絡服務器?
如圖1所示,圖中每一虛線框內的曲線均代表一個線程/進程;在該網絡服務器模型中,當一個新的網絡連接請求到達的時候,一個新的線程/進程將被創建并與這個新的網絡連接請求關聯。這個新創建的線程/進程不僅要負責建立新的連接,接收網絡連接上的數據,而且要負責處理網絡數據,發送處理結果到客戶端,處理中間出現的各種錯誤及關閉網絡連接。所以該服務器模型存在以下缺點:a、業務邏輯和網絡邏輯沒有被分離開來,兩者之間會相互影響,這也會增加系統出錯的概率;b、當大量的網絡連接請求同時到達時,將會創建與網絡連接請求數目相同的線程,這會占用大量的系統資源,在最壞情況下可能會導致系統癱瘓;c、業務邏輯和網絡邏輯之間存在耦合,一旦業務邏輯發生變化,系統需要進行較大改動,這會增加系統維護的難度;d、如果所有的線程是在同一個進程中創建的,當其中任何一?個線程出錯,整個應用程序就會發生崩潰;e、進程間會發生頻繁通信,這會耗費大量的系統資源,導致系統性能低下。?
(2)基于線程池的網絡服務器?
如圖2所示,圖中虛線橢圓代表一個線程池,虛線橢圓內的一條曲線代表一個線程;該模型中,在網絡連接請求到達之前,網絡服務器便會創建固定數目的線程等待網絡連接請求的到達,當網絡連接請求到達的時候,網絡服務器就從線程池中選擇一個空閑的線程來處理該網絡連接請求。在該模型中,線程池中線程的數量是固定的,且一個線程可以在不同時間,為不同的網絡連接提供服務,同時這種網絡服務器只會占用固定的系統資源,不會給系統帶來過大的負荷,但是它的缺點是:當并發的網絡連接請求數目大于線程池中線程數目的時候,它將不能同時處理所有的網絡連接請求,這會使一些網絡連接請求被阻塞一定時間。?
(3)基于領導者跟隨者的網絡服務器?
基于領導者跟隨者的網絡服務器提供了一個高效的并發模型,其中多個線程輪流共用一組事件源,以便及時發現活躍的網絡連接并處理它們。但是這種模型中沒有使用消息隊列,因此這種服務器不能同時處理大量的并發網絡連接請求。?
(4)基于半同步半異步設計模式的網絡服務器?
如圖3所示,基于半同步半異步設計模式的網絡服務器分為三個層次,從上往下分別是半異步層,排隊層和半同步層。在半異步層使用單個線程來監聽網絡端口并建立網絡連接;在排隊層使用一個隊列來緩沖已經建立的連接;在半同步層用一個線程池來處理網絡連接請求,這樣設計可以將網絡邏輯和業務邏輯分離開來,同時,排隊層的存在也可以將大量的連接緩沖一段時間,避免了網絡連接的丟失和阻塞。但是這種網絡服務器也存在以下缺點:a、當業務邏輯比較復雜的時候(比如要處理較復雜的網絡應用協議),半同步層的線程池策略不夠靈活;b、并發層次比較單一;c、不能動態的增加和減少業務處理邏輯模塊。?
發明內容
本發明要解決的技術問題,在于提供一種基于半同步半異步和管道過濾器模式的服務器設計方法,通過使用管道過濾器模式與數據處理模塊的線程池相結合的方式來設計服務器的半同步層,并可動態添加或刪除數據處理模塊,增加了系統的并發性、靈活性,且具有良好的擴展性。?
本發明是這樣實現的:基于半同步半異步和管道過濾器模式的服務器設計方法,所述基于半同步半異步模式的服務器包括半異步層、排隊層及半同步層,所述半異步層接收客戶端的網絡連接數據后,便將網絡連接數據通過所述排隊層傳遞給所述半同步層,所述方法包括以下步驟:?
步驟1、將所述半同步層設計成包括復數個數據處理模塊,且每一所述數據處理模塊均包括一線程池以及一與之關聯的消息隊列;?
步驟2、將管道過濾器模式應用到半同步層的數據處理模塊中,利用管道過濾器模式將一個復雜的任務分解為復數個連續的分任務,并將每一所述分任務均交由一對應數據處理模塊進行處理,處理的最終結果則通過所述排隊層及半異步層返回給客戶端。?
進一步的,所述方法還包括如下步驟:?
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華僑大學,未經華僑大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410391320.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種帶有表面微造型結構的活塞組件
- 下一篇:內錐轉動氣路閥





