ESFramework介紹之(6)―― 基於C/S的4層架構概述

來源:互聯網
上載者:User
    ESFramework的4層結構的4層分別是:用戶端(Client)、應用伺服器(AS)、功能伺服器(FS)、資料庫伺服器。它們之間的聯絡圖示意如下:

    FS (FunctionServer),功能伺服器,處理並且僅處理所有的功能性請求,不參與使用者管理、狀態保持等,提供最純粹的功能服務。
    AS (ApplicationServer),應用伺服器,轉寄所有的功能請求給FS,並處理所有的非功能請求,並管理終端使用者、進行狀態保持、日誌記錄等。
    中的功能伺服器FS的個數可能是0到N(N>0)個。在某種意義上可以認為,每個功能伺服器FS是可以互換的。

    將伺服器拆分為功能伺服器和應用伺服器有兩個顯而易見的好處:
(1)功能伺服器FS的完全可複用。由於功能伺服器採用“架構+外掛程式”的結構,所以整個功能伺服器是完全可複用的,從一個具體應用轉換到另一個具體應用,只需要替換功能外掛程式即可,FS不需重新編譯。
(2)由於FS僅提供最純粹的功能服務,不需要進行使用者管理、狀態保持,這種功能伺服器在運行時的無狀態性,使得功能伺服器很容易實現負載平衡叢集(後文中會講到,這種動態負載平衡是如何?的)。 

    如果ESFramework僅僅做到這一步,就沒有必要拿出來和大家分享了,ESFramework不僅對這種4層架構給予了充分完整的支援,ESFramework更進了一步,它可以支援“類似地區分布式”的體繫結構。讀者可能已經瞭解到,上面的4層架構已經是一種分布式架構了,那麼這裡說的“類似地區分布式”又是什麼意思?

    可以這麼說,4層架構是一種“縱向”的架構,“類似地區分布式”則側重於“橫向”,在“類似地區分布式”體繫結構中,每一個具體的“4層架構的實現”只是其中的一個組成元素。我舉個例子,現在我們的一個應用需要為全國範圍內的所有大城市的手機使用者提供某種基於C/S的手機增值服務。我們的經驗是,為每個城市配置一個應用伺服器AS,由於大量的計算在該AS對應的FS上,所以可能需要多個FS為這個AS服務。而每個城市的AS之間可能需要相互連信(比如處理漫遊使用者),這就需要將AS也管理起來,管理AS的伺服器是IRAS(跨地區伺服器)。如此一來,我可以畫出作為例子:

     圖中的FunAddin是功能外掛程式,這再前文已介紹過了。整個體系中,終端請求的服務主要分為兩大類,一是嚮應用伺服器AS請求功能服務,另一類是終端與終端之間的非功能通訊。所有的功能服務由功能外掛程式(FunAddin)進行處理,所有的非功能通訊由應用伺服器處理或中轉。如果,終端請求的功能服務位於外部系統,則功能外掛程式會自動定位外部系統的地址,然後通過WebService等方式向外部系統提交請求。
    
    好了,讀者已經瞭解了ESFramework中的4層結構和“類似地區分布式”結構是怎麼回事了,下面我簡單概述一下ESFramework對4層結構和“類似地區分布式”結構提供了哪些強有力的特性支援:            

1.  基於構件
    除了所有的功能外掛程式是構件外,整個ESF平台也是由構件組裝而成。其好處是:
(1)快速搭建系統
(2)促進構件複用,如AS/IRAS/FS/IRFS可以使用同一個通訊組件來完成通訊層工作。
(3) 實現功能外掛程式的“熱插拔”,可以在運行時動態添加/移除功能服務

2.  高度可擴充
    由於ESF服務平台體系需要隨時隨地的應付各種突如其來的變化,其一定要具備高度的可擴充性:
(1)功能外掛程式的“熱插拔”
(2)外部服務的動態接入(通常是通過WebService)
(3)應用伺服器AS的動態添加/移除,比如,新開通針對大連城市的服務。
(4)功能伺服器FS的動態添加/移除,實現功能伺服器的動態負載平衡叢集。

3.  高度可伸縮
    隨著我們提供的服務日漸深入人心,我們的使用者的數量會急劇增加,所以ESF服務平台體系必須具備高度延展性來提高系統的最大負載和輸送量。
(1)由於功能伺服器需要進行大量的功能運算,所以平台的瓶頸通常位於功能伺服器,這可以通過功能伺服器的動態集群來解決。叢集中的各個功能伺服器之間的負載平衡由對應的應用伺服器AS來調度。
(2)當單個地區的常線上使用者數量突破5000~10000時,我們需要添加AS進列區域級的負載平衡,這可以通過具有連接埠映射功能分硬體來解決。 

4.  高度可複用
    ESF服務平台體系並非只是適用於我們的LBS服務,其實,ESF服務平台體系是一個高度可複用的體系,也就是說ESF服務平台可以作為任何、任意的服務的基本平台,只要其所提供的服務是終端和伺服器之間通過Tcp進行基於串連的通訊。 

5.  分布式
    除了外部系統的接入通過分布式服務進行外,各應用伺服器之間、功能伺服器與應用伺服器之間、應用伺服器和跨地區的應用伺服器之間都是採用分布式通訊。跨地區的應用伺服器通過類似於remoting的方式在各個應用伺服器之間進行調度。

6.  簡單部署、自動升級
    由於ESF服務平台體系服務的地區可能非常多,比如各個大城市可能都需要部署應用伺服器和功能伺服器,所以如果通過人工進行部署和升級是非常低效的,ESF服務平台提供了自動升級、載入、啟動並執行功能。
(1)服務平台安裝後,僅僅需要修改設定檔中的幾個參數即可正常運行。
(2)當功能外掛程式擁有新版本的時候,可以在不停止服務的情況下,自動升級到新版本。
(3)當各伺服器系統(AS/IRAS/FS/IRFS)有新版本時,會在該系統重啟的時候自動升級到新版本。為了在升級的時候不終止服務,伺服器系統可以使用逐步升級的方式。 

7.  通訊保證機制
    當遇到網路突然斷開或某伺服器重啟的情況,在網路恢複或伺服器重啟完成後,需要一種能自動的立即恢複通訊(比如AS和FS的通訊,各AS與IRAS之間的通訊)的機制,ESF服務平台提供了這種保證,其採用的策略主要基於:
(1)定時論詢
(2)Tcp串連池自動重連
(3)串連動態反轉

8.  漫遊支援、跨地區功能請求支援
    在ESF服務平台體系中,漫遊是指某一地區的使用者登入到另外一地區的應用伺服器AS上,對於此AS來說,該使用者是漫遊使用者。如果使用者登入到某AS卻請求其它地區的功能服務,則是跨地區的功能請求。ESF服務平台對這兩種情況都給予了充分的支援。

9.  終端與終端之間的通訊支援
    有時,終端需要和終端(可能是同地區的、也可能是其它地區的)之間進行通訊,並且這種通訊可以基於串連和基於非串連。基於串連的通訊像即時視訊交談、即時監控,基於非串連的像發送一張圖片給不線上的使用者。所有這些,ESF服務平台都提供了支援。

10.支援二次開發
   在基於ESF服務平台高度可複用和可擴充的基礎上,ESF平台可以非常容易的支援二次開發,只要遵循相同的介面和通訊協定,就可在ESF平台進行二次開發。

11.用戶端架構
   如果應用的用戶端也可以使用.NET開發,則ESFramework也提供了完善的支援,在ESFramework的支援下,開發用戶端僅僅需要開發業務外掛程式就可以了,而整個網路通訊、多線程、升級部署等,都由架構完成了。後面的文章中我會介紹如何在AgileIM中開發自訂的業務外掛程式。

     上面的所有特性將會在“基於C/S4層架構”部分分節介紹,感謝關注! 

     如果你的應用不需要這麼複雜的結構,比如僅僅一個簡單的3層架構,那麼ESFramework仍然可以協助你快速構建,ESFramework是個輕量級的應用程式框架,你不會為那些ESFramework提供了的而你不需要的功能/特性付出任何代價。
    (注意,ESFramework不太適合處理遺留系統(就像你很難使用MFC去處理基於VCL構建的UI應用一樣),ESFramework雖然與應用無關,但是為了能將更多的任務從應用中抽象到架構中來,必須對應用做一些假設,幸運的是,ESFramework僅僅對應用的通訊協定做了最少的假設,這個假設包含在NetMessage中。如果你不是處理遺留系統,而是構建一個全新的C/S應用,那麼ESFramework可以為你節省大量的架構設計時間、軟體開發時間、調試和維護時間。) 

    (最後做個廣告,如果你新接手的項目非常適合採用上面介紹的4層架構或“類似地區分布式”體繫結構,希望我們有合作的機會:)通過 agilesoft@163.com 聯絡我)

 轉到  :ESFramework 可複用的通訊架構(序) 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.