青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統計

  • 隨筆 - 21
  • 文章 - 0
  • 評論 - 2
  • 引用 - 0

常用鏈接

留言簿

隨筆分類

隨筆檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

ACE about server
隨著計算機網絡的發展,特別是因特網的出現,數字娛樂和網絡游戲產業得到了蓬勃的發展,異軍突起的網絡游戲成為中國網絡產業中的先鋒。而由于信息技 術的進步,計算機、手機以及不同的傳媒終端等不斷涌現,如何將這些眾多不同的終端通過互聯網進行互聯互動成為一大技術難點,而這些難點的突破取決于網絡游 戲服務器的開發。目前在各種服務器通信軟件的設計和開發中,已經廣泛地使用到軟件設計模式。尤其在大型的服務器通信軟件開發中常會采用模塊化設計。當一個 龐大的服務器系統執行任務時,往往要通過其中不同的模塊進行協作完成,在這種情況下各機間的數據通信會變得異常繁瑣和復雜。另外不同操作系統通信機制的不 同也會影響通信軟件的開發和效率,網絡編程人員通常從底層進行開發,這大大增加了軟件開發的難度和周期。針對以上存在的問題,ACE自適應通信構架給出了 良好的解決方案,ACE能夠跨越多種操作系統平臺,可進行通用的網絡編程任務,并結合軟件設計模式,避免了通信軟件根據不同環境需要重新開發的弱點,減少 了軟件開發的周期和資金,簡化和強化了系統的設計實現。

1 ACE框架

ACE 自適應通信環境(ADAPTIVE CommunicationEnvironment)是可以自由使用、開放源碼的面向對象(OO)框架(Framework),在其中實現了許多用于并發 通信軟件的核心模式。ACE提供了一組豐富的可復用C++Wrapper Facade(包裝外觀)和框架組件,可跨越多種平臺完成通用的通信軟件任務,其中包括:事件多路分離和事件處理器分派、信號處理、服務初始化、進程間通 信、共享內存管理、消息路由、分布式服務動態(重)配置、并發執行和同步等。ACE體系結構包括3個基本層次:操作系統適配層、C++包裝層、框架組件 層。操作系統適配層直接駐留在用C寫成的本地OS API之上,將ACE中的其他層與OS API相關聯的平臺專有特性屏蔽開來。由于ACE操作適配層所提供的抽象,極大地增強了ACE的可移植性和可維護性。C++包裝層通過提供類型安全的 C++接口簡化通信應用程序的開發,各種應用可以有選擇地繼承、聚合或實例化其中的組件來使用這些包裝。ACE還包括一個高級的網絡編程框架,集成并增強 較低層次的C++包裝層,該框架支持并發分布式服務動態配置。

大多數的網絡化應用可以通過ACE這樣的可移植中間件進行開發,因為ACE封裝并加強了本地操作系統機制,通過其組件可以移除底層操作系統API的繁瑣和易錯性創建可重用的網絡程序。

2 網絡游戲服務器系統框架的設計

在設計網絡服務器的過程中,如何保證服務器的安全和最大限度地支持更多的客戶端連接是擺在開發者面前一個重要的問題。為了解決這2大問題,根據經驗,在開發游戲服務器的過程中,采用如下的服務器架構可有效解決上述2個問題。

2.1 支持Gate的游戲服務器架構

在該架構下,Client和Gate Server相連,而不是直接和Game Server相連。Gate Server主要負責轉發客戶端和Game Server之間的數據包,Game Server負責處理游戲的所有邏輯。如圖1所示。

采 用該架構,有如下幾個優點:客戶端通過Gate Setver和游戲服務器Game Servet相連,Game Server IP對外不可見,這樣Game Server更安全、更不易受攻擊。一個Game Server同樣也可以對應若干個Gate Server,當某個Gate Server受攻擊或停機后,其他的Gate Server仍然照常運行,和其他Gate Server相連的客戶端仍然可正常進行游戲;可支持更多的客戶端連接。Gate Server把眾多的客戶端連接分散到多個Game Server中去,而不是獨自來承擔,從而可支持更多的客戶端連接;Gate Server可分擔一部分安全管理工作,減輕Game Server的壓力。例如若某個客戶端在一段時間內不發數據包,則把該客戶端踢下線的工作可由Gate Server來完成。

2.2 軟件功能模塊劃分

在 設計服務器框架時,有一個基本原則,即框架和通信底層的具體實現需要分離,通信底層的具體實現不影響框架代碼的修改。因為通信底層的具體實現有很多方式, 不同操作系統平臺的具體實現差別也很大。例如僅在Windows平臺下就有基于Windows消息機制的、基于事件機制的、也有基于完成端口I/O模型的 實現等。采用框架與通信底層相分離的原則,也有利于利用一些成熟的開發框架,比如使用的ACE框架。這樣,當采用一種新的通信技術實現通信底層時,則可以 不改變服務器框架,而只需要修改通信底層。在設計服務器時按照服務器框架與通信底層相分離的原則,將服務器框架設計為多個模塊。并生成相應的動態鏈接庫以 供調用。軟件模塊框架如圖2所示。

在 軟件模塊劃分中,通信底層由線程模塊和通信模塊組成,上層則由同步、聯機管理和興趣區管理等模塊組成。其中同步模塊是基于保守/樂觀的同步算法構建的服務 器同步子系統,客戶端方面則可以使用航位推測法減少服務器的發包頻率。興趣區管理模塊用于相關性信息過濾,通過訂購玩家感興趣的范圍,可以有效減低網絡帶 寬消耗和服務器負載。聯機管理模塊主要負責數據封包中的通信協議以及數據報的壓縮和加密,在數據包中采用加密以增加服務器系統的安全性能,采用壓縮以減少 網絡帶寬消耗。

3 服務器系統通信底層的實現

3.1 線程模塊的實現

在 設計線程模塊中使用ACE框架中的ACE_Task類和ACE_Message_Queue來實現主動對象模式,用于處理主動對象,實現多線程處理。傳統 的對象是被動的代碼段,對象中的代碼是在對他發出方法調用的線程中執行的,當方法被調用時,調用線程將阻塞,直至調用結束。而主動對象卻不一樣。這些對象 具有自己的命令執行線程,主動對象的方法將在自己的執行線程中執行,不會阻塞調用方法。由于主動對象的方法調用不會阻塞,這樣就提高了系統響應速度。

設計中主動對象繼承ACE_Task,應用open進行初始化,并派生線程去循環判斷方法隊列中是否有方法對象,若隊列不為空則將方法出隊并執行。如圖3所示。

在創建任務和主動對象時,從ACE_Task類派生子類,在子類派生之后,采取以下步驟:

(1)實現服務初始化和終止方法:open()方法應該包含所有專屬于任務的初始化代碼;close()方法則包含相應的終止方法。

(2) 調用啟用(Activation)方法:在主動對象實例化后,必須通過調用activate()啟用他。在主動對象中創建的線程的數目,以及其他一些參 數,需傳遞給activate()方法,activate()方法會使sve()方法成為所有他生成的線程的啟動點。

(3)實現服務專有的處理方法;在主動對象被啟用后,各個新線程在svc()方法中啟動。

并發策略實現的程序流程如圖4所示:

3.2 通信模塊的實現

3.2.1 反應器ACE Reactor和前攝器ACE Proactor

ACE Reactor(反應器)和Proactor(前攝器)是可擴展的面向對象多路分離器,他們分派應用專有的處理器,以響應多種類型的基于I/O、定時器、信號和同步的事件。

ACE_Reactor 反應器應用于同步I/O操作,實現了事件的多路分離與分派,能夠處理多個來源的I/O。使用反應器框架,需要執行3個步驟:從 ACE_Event_Handler派生一個和多個事件處理器類,并定義相應的事件處理行為;向ACE_Reactor類登記應用的事件處理對象;運行 ACE_Reactor事件循環,事件發生時回調事件處理器中的事件處理函數。

ACE_Proactor應用 于異步I/O操作,他與反應器不同的是首先等待事件的完成,然后回調完成后的事件處理。當初始化I/O讀寫后把讀寫交給系統完成,等待事件完成后前攝器會 將執行I/O結果返回給對象,并且回調完成后的事件處理。前攝式模型允許單個應用線程同時發起多個請求。這一設計允許單線程化應用并發的執行多個I/O操 作,并且不會帶來與傳統的多線程化機制相關聯的開銷或設計復雜性。這樣做大大減少了I/O處理時間。

3.2.2 利用前攝器實現高效異步I/O數據通信

在實現通信模塊中使用的前攝器模式主要參與者有前攝發起器、完成處理器、異步操作、異步操作處理器、完成分派器。其結構如圖5所示:

其中,前攝發起器(服務器應用的主線程)是應用中任何發起異步操作的實體。他將完成處理器和完成分派器登記到異步操作處理器。完成處理器接口用于異步操作 完成通知,異步操作則是被用于代表應用執行請求。當異步操作完成時,異步操作處理器將應用通知委托給完成分配器。異步操作是由異步操作處理器來運行直至完 成的,該組件通常由操作系統實現。完成分派器負責在異步操作完成時回調應用的完成處理器。當異步操作處理器完成異步發起的操作時,完成分配器代表應用執行 應用回調。該機制的實現交互圖如圖6所示:

3.2.3 通信連接的建立

在 具體通信模塊中,所用到的ACE主要類有異步連接類、服務處理類、異步操作類和處理結果類。建立連接的過程為:創建異步主動連接和被動連接子類,在進行異 步連接時,創建新的服務處理類,并將該服務類傳遞給異步連接類,這樣,數據的傳輸就交給服務類去執行。實現服務處理子類中提供的掛鉤方法,并通過創建 ACE_Sock_Stream和異步讀寫流類來進行異步通信。在異步讀寫流初始化時將其注冊到已創建的proactor中,并保存異步讀寫流類的句柄。 最后數據傳送的結果和狀態交給處理結果類來處理。異步通信的初始化:

(1)分別創建異步主動連接類的派生類和被動連接類的派生類

class TCommandChannelConnectorAcelmpl:public ACE_Asynch_Connector<TCommandChannelAcelmpl>

class TCommandChannelAcceptorAcelmpI:public ACE_Asynch_Acceptor<TCommandChannelAceImpl>

(2)創建主動連接類對象connector和被動連接類對象acceptor;

(3)對于主動連接,調用connector.open(…),并將其注冊到Proactor,由框架自動創建異步通信服務類,并且自動檢測連接建立狀態;

(4)對于被動連接,調用acceptor.open(…),并將其注冊到Proactor,由框架自動創建異步通信服務類,并且自動檢測連接建立狀態,處于等待偵聽狀態;

整個異步通信機制實現的流程如圖7所示:

3.2.4 ACE_Proactor完成多路分離

ACE_Proactor類負責驅動前攝器框架的完成處理。要讓異步I/O完成事件處理得以發生,還需要運行前攝器的事件循環,其流程圖如圖8所示。

4 結 語

本 文設計了一種適用于開發網絡游戲的服務器端架構,并應用ACE框架組件和面向對象的設計模式完成服務器底層通信的開發。ACE作為一種免費開源的中間件, 富含網絡與系統編程的實用設計模式,具有跨平臺等優越特性,能夠適合任何通信軟件的開發。尤其對于網絡游戲服務器開發者而言,ACE無疑是一種值得借鑒的 通信框架,具有良好的應用前景。

posted on 2009-12-23 15:59 ChinaPanda 閱讀(756) 評論(1)  編輯 收藏 引用 所屬分類: network

評論

# re: ACE about server 2013-10-22 20:49 athxy

Linux下C/C++、ACE、Boost、高性能服務器端應用 開發技術
http://www.xuanyuan-soft.cn/
  回復  更多評論    
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产欧美日韩免费| 欧美电影免费观看高清完整版| 欧美日韩人人澡狠狠躁视频| 日韩视频在线观看国产| 亚洲欧洲日本专区| 欧美激情乱人伦| 夜色激情一区二区| 亚洲专区一二三| 狠狠干综合网| 亚洲国产精品一区在线观看不卡| 欧美日韩高清在线| 久久国产加勒比精品无码| 久久亚洲精选| 亚洲私人影院在线观看| 亚洲一区国产视频| 精品动漫一区二区| 亚洲成人在线视频网站| 国产精品a久久久久| 久久嫩草精品久久久精品一| 欧美成人精品h版在线观看| 在线亚洲欧美| 久久久www成人免费精品| 亚洲精品欧美日韩专区| 一本色道久久综合亚洲精品不 | 久久久噜噜噜久久中文字免| 久久综合网络一区二区| 一区二区三区蜜桃网| 亚洲一区二区三区四区中文| 国内精品嫩模av私拍在线观看| 亚洲第一色在线| 国产三级精品在线不卡| 亚洲精品一区二区三区福利| 国产日韩在线一区二区三区| 日韩视频在线播放| 在线观看日韩专区| 亚洲专区欧美专区| 亚洲一区二区三区在线观看视频| 亚洲女性裸体视频| 久久久久久久综合日本| 这里只有精品视频| 久久久久久999| 亚洲自拍偷拍视频| 欧美精品在线一区| 欧美88av| 永久91嫩草亚洲精品人人| 亚洲一区二区免费在线| 一区二区三区日韩精品| 欧美成人一区二区三区片免费| 久久激情五月婷婷| 国产精品亚洲网站| 99re6这里只有精品| 亚洲国产日韩精品| 久久久久成人精品| 久久国产综合精品| 国产精品综合色区在线观看| 99视频+国产日韩欧美| 亚洲美女av在线播放| 美女主播精品视频一二三四| 久久久久久亚洲精品中文字幕| 国产女人18毛片水18精品| 亚洲激情午夜| 亚洲精品日韩综合观看成人91| 久久亚洲欧洲| 鲁大师成人一区二区三区| 国模 一区 二区 三区| 午夜精品在线| 欧美在线一二三区| 国产一区导航| 久久www成人_看片免费不卡| 久久国产精品第一页| 国产一区二区中文| 久久爱另类一区二区小说| 免费成人黄色| 日韩亚洲欧美一区| 欧美午夜三级| 欧美一二三区精品| 老司机成人在线视频| 在线日韩电影| 欧美精品一卡| 亚洲性感美女99在线| 久久精品盗摄| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美在线一二三四区| 女人香蕉久久**毛片精品| 亚洲国产精品ⅴa在线观看| 欧美国产激情| 亚洲午夜激情| 麻豆精品在线观看| 亚洲美女色禁图| 国产精品视频九色porn| 久久亚洲综合网| 99视频精品免费观看| 久久爱91午夜羞羞| 91久久久一线二线三线品牌| 欧美日韩精品在线观看| 久久成人av少妇免费| 亚洲精品国产精品久久清纯直播| 亚洲欧美视频在线| 亚洲福利在线视频| 欧美香蕉视频| 久久综合狠狠综合久久综青草| 日韩视频一区二区三区| 久久精品国产免费看久久精品| 亚洲精品一区二区三区婷婷月| 国产日韩精品在线观看| 欧美伦理91i| 欧美在线3区| 夜夜爽www精品| 免费成人高清视频| 欧美在线播放视频| 一本大道久久a久久精二百| 激情成人综合| 国产精品一级久久久| 欧美激情综合五月色丁香| 久久精品在线免费观看| 夜夜嗨av一区二区三区四季av| 欧美www视频在线观看| 午夜在线电影亚洲一区| 夜夜嗨av一区二区三区四季av| 国产在线欧美| 国产精品视频在线观看| 欧美日韩99| 裸体一区二区三区| 欧美在线一级va免费观看| 一区二区三区日韩在线观看| 亚洲国产精品黑人久久久| 久久综合福利| 久久久久久综合| 久久黄金**| 欧美在线|欧美| 欧美一区二区三区在线| 亚洲婷婷综合久久一本伊一区| 亚洲日本欧美| 亚洲国产欧美一区| 亚洲激情综合| 亚洲二区免费| 尤物精品在线| 亚洲国产精品尤物yw在线观看| 一区二区三区在线免费观看| 国产亚洲欧洲997久久综合| 国产日韩欧美一二三区| 国产一区导航| 一区二区三区在线不卡| 亚洲高清在线观看一区| 亚洲精品久久久久久久久久久| 91久久精品国产91久久性色| 在线观看亚洲一区| 最新亚洲电影| 一区二区日韩伦理片| 亚洲视频大全| 欧美在线看片| 久久久综合精品| 欧美大胆成人| 亚洲精品国产精品乱码不99| 日韩一区二区精品葵司在线| 一区二区三区视频在线播放| 亚洲欧洲99久久| 久久久久久久久一区二区| 噜噜噜躁狠狠躁狠狠精品视频| 免费黄网站欧美| 欧美日韩中文字幕在线视频| 欧美午夜精品久久久久免费视| 国产精品久久久久久久久久妞妞| 国产精品综合久久久| 精品1区2区3区4区| 亚洲精选一区| 欧美淫片网站| 欧美成人首页| 一区二区三区四区蜜桃| 午夜日韩在线| 欧美高清在线精品一区| 国产精品久久久久久久久久久久久久 | 日韩一级大片在线| 亚洲欧美日韩精品久久久久| 久久久久久久97| 欧美日韩视频专区在线播放| 国产精品一区免费视频| 一区二区视频欧美| 一区二区三区黄色| 久久久国产精品一区二区三区| 亚洲大片免费看| 亚洲影院一区| 欧美成人激情在线| 国产视频丨精品|在线观看| 亚洲日本欧美天堂| 久久国产视频网站| 一区二区国产日产| 久久资源在线| 国产日本欧美一区二区| 亚洲精品综合精品自拍| 欧美亚洲色图校园春色| 91久久国产综合久久| 久久国产精品99久久久久久老狼| 欧美日本二区| 在线观看亚洲视频啊啊啊啊| 午夜精品久久久久久久99水蜜桃| 亚洲国产一区二区a毛片| 久久不见久久见免费视频1| 国产精品久久激情| 一区二区三欧美|