




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、敏捷服務器開發解決方案介紹NoahFrame(以下簡稱簡稱NFrame) 是一個使用C+語言開發的、支持高并發、高性能的跨平臺敏捷服務器開發解決方案。旨在幫助中小企業降低開發門檻,快速完成項目功能。采用敏捷開發中的分層設計思路,將功能拆分為多個插件模塊,讓開發人員集中處理單一功能,提高團隊效率。NFrame經歷過國內最知名游戲研發運營廠商的考驗,設計了一套可動態擴展的服務器架構和邏輯架構,可節約底層約70%的代碼量、節約架構層約90%的代碼量、節約邏輯層約60%代碼量,讓研發團隊專注于產品設計,不再考慮較多技術問題,大幅節約項目時間。NFrame為全平臺服務器應用而生,支持開發PC、手機端服務
2、,更加適合現在流行的移動互聯網服務。NFrame良好的設計可以使其輕松適配多種類型的開發需求,無論是端游、頁游、手游、甚至工業應用均可使用NF進行開發。什么是NoahFrame?NFrame的特性 通用的抽象對象系統 數據驅動 (Property & record) 事件驅動 (Event) 可擴展的App、插件化、模塊化 (Plugin & Module) 面向接口編程 (IOD) 高性能、高并發 (網絡、Actor、邏輯) Component組件 (腳本系統) 分布式服務器架構 高穩定性、簡易部署、支持擴展、跨平臺 可視化配置、配套工具 配套客戶端(Unity3D客戶端、C
3、ocos2D客戶端) 企業定制化服務(存儲方案、邏輯模塊、新架構)通用的抽象對象系統(LogicClass) 豐富的基礎屬性類型 對象屬性的可配置性(XML可以定義所有屬性) 對象初始數據的可配置性(XML可以預設值所有屬性的值) 可動態增減屬性(服務器運行過程中可以程序添加屬性) 無需在代碼中再聲明任何業務類(XML直接聲明) 通用的設置/獲取信息接口APP邏輯框架圖LogicClass文件示例數據驅動 (Property & record)相對于傳統的服務器開發,NFrame使用了一種全新的數據定義和使用的方法,我們稱之為屬性(Property)和表(Record)。屬性(Prop
4、erty)主要用來存儲用戶的基本數據,例如:姓名、性別、年齡、等級 等數據,主要表現為一個名稱對應一個數據。表(Record)主要用來存儲一些記錄,例如:道具列表、任務列表 等數據,主要表現為一個記錄里包含多條數據。NFrame使用了此種模型來定義應用中的所有數據,避免了以往傳統服務器中數據結構定義混亂,接口不統一、別人無法接手等問題。該功能由上圖中提到的ProertyManager和RecordManager來管理。一個數據定義的例子:事件驅動(EventDriver)事件驅動靈感來源與處理器的處理流程,旨為只提供流水線式的處理邏輯模塊,而本身不保存和涉留對象的數據事件驅動包含:Proper
5、ty驅動,Record驅動,Event驅動,Heartbeat驅動通過Property Driver,所有只要注冊過屬性觀測者的Processer Function均會得到所關注Property的變化通知,以便做出對應的邏輯處理。通過Record Driver,所有只要注冊過Record的觀測者的Processer Function均會得到所關注Record的變化通知,以便做出對應的邏輯處理。通過Event System,所有只要注冊過Event的觀測者的Processer Function均會得到所關注的事件通知Processer可以產生新的事件或屬性驅動,以便驅動其他邏輯模塊處理邏輯。通過
6、Heartbeat System,所有只要注冊過同名心跳的觀測者的Processer Function均會定時處理邏輯,以便延時/定時處理邏輯。事件驅動設計圖事件驅動示例Property驅動Record驅動Event驅動Heartbeat驅動可擴展的App、插件化、模塊化NFrame采用國外成熟使用的敏捷開發思想分層設計。分層的程序設計帶來的好處是顯而易見的,由于層間松散的耦合關系,使得我們可以專注于本層的設計,而不必關心其他層的設計,也不必擔心自己的設計會影響其它層,對提高軟件質量大有裨益。而且分層設計使得程序結構清晰,升級和維護都變得十分容易,更改層的具體實現代碼,只要層接口保持穩定,其他
7、層可以不必修改。即使層的接口發生變化,也只影響上層和下層,修改工作量小而且錯誤可以控制,不會帶來意外的風險。NFrame同時使用了將應用程序設計成三層架構,最頂層是App,中間層是各種插件,插件下是各種對應的具化的模塊功能。這種設計的優點是對應模塊只處理自己的事務,降低耦合,通過接口與其他模塊交互,將模塊的風險降到最低。面向接口編程(IOD)較于大多數OO式開發,NFrame支持更靈活的IO(接口)式開發,讓你的開發更簡單純粹。通過模塊抽象基類的虛接口讓模塊的功能互相調用,真正做到了軟件開發的低耦合高內聚。高性能、高并發NFrame由于設計上的分層獨立從而使得架構上本身就性能較高。同時在網絡通
8、信上使用了久經考驗的LibEvent作為網絡底層,使用google ProtoBuf作為協議序列化庫,LibEvent的高性能加上Protobuf的高壓縮率,真實測試過單服承載8000以上用戶高頻率協議通訊。NFrame在邏輯處理上使用了Actor模式,采用了Theron作為Actor基礎類庫,支持并發編程,充分利用CPU性能。 Theron作為知名工業級并發庫,應用在許多工業級軟件上,例如Matlab使用了Theron后,讓其性能直接提高了4.5x倍(原文鏈接)。NFrame使用C+作為基礎開發語言,相對于其他編程語言,在性能和效率上更是快人一步,良好的設計模式的應用讓邏輯更加簡單。Comp
9、onent組件提供類似Unity樣式的組件組合模式,以豐富服務器后期腳本編輯以及對象行為擴展系統在對象產生時自動識別以及實例化Component通過事件系統,向Component注入事件消息,便于處理邏輯特殊需求的特殊處理,靈活拓展對象的行為不用關心其他模塊,降低耦合當前已經支持lua作為腳本嵌入到框架中使用(詳見教程6)后期將支持JavaScript,C#,python等腳本語言分布式服務器架構經過我們參考主流架構以及長期的項目經驗積累,NFrame被設計為理論上可無限擴展的分布式架構,擁有著真正的無理論上限的系統規模和負載可擴展性。主要特性: 無限擴展 高可靠性 簡易通訊 業務去中心化 自
10、動摘除問題節點 節點實時權重運算和評估 負載均衡NFrame服務器架構圖良好架構帶來的好處由于NFrame良好的服務器架構設計,故而擁有了其他架構所沒有的優點。 高性能,通訊優化,壓縮流量,C+底層,業務邏輯并行 高穩定性,服務器間實時數據統計,問題節點自動摘除,業務邏輯不中斷 簡易部署,通過開服工具可自動部署配置文件 方便擴展,實時熱加載配置,橫向無限擴展 跨平臺,使用標準C+開發,Windows和Linux均可使用,屏蔽大多數系統差異 節約硬件成本,分布式架構,運營廠商的每一臺機器都可作為節點加入到業務網絡中,性能低的機器照樣可以使用 維護簡單,實時通過log和分析工具查看服務器狀態以及負
11、載可視化配置、配套工具為方便與非編程人員合作,NFrame支持使用廣泛使用的Office Excel進行數據和資源的配置,讓合作部門能更快并準確的進行配置,降低部門合作的門檻。同時我們提供Excel轉化成xml的工具,方便程序內部使用,降低程序讀取配置的難度。配套客戶端企業定制化服務我們提供整套的解決方案,但是考慮到部分企業的業務需求與我們設計的有一定差別,所以我們面向企業提供特別定制化方案。 企業特定業務服務器架構 企業特定邏輯模塊 企業特定網絡通信組件 企業特定語言嵌入式組件 企業各種業務存儲方案 企業特定項目整體設計開發 企業特定運營硬件環境 企業其他業務需求后期開發計劃完善Unity3
12、D ARPG客戶端(邏輯,表現等)開發Cocos2D客戶端支持更多腳本語言(JavaScript, C#)服務器架構、性能、功能持續優化服務器更多模塊組件支持(排行榜,PVP,PVE,AI,強互動等)Web運維工具Web日志分析游戲SaaS云MoreOne more thing為什么要選擇NFrame?NFrame如何為企業節約成本?作為企業,最關心的自然是性價比,如何將成本最大化是一個最大的問題?一個小型的游戲研發團隊主要成員大致如下圖(注意:這里并未計算場地/水電/桌椅/計算機等基礎設施)研發周期最少6個月,多則12個月,下來進入運營階段,工資還是得照常發放。算下來需要150萬300萬的研發費用,這里是按照最少人員配置來計算,并且每個人都可以勝任自己的崗位。如果團隊人員出現流動的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論