日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 網(wǎng)絡(luò)協(xié)議
[導(dǎo)讀]基于C/S的4層架構(gòu)概述   ESFramework的4層結(jié)構(gòu)的4層分別是:客戶端(Client)、應(yīng)用服務(wù)器(AS)、功能服務(wù)器(FS)、數(shù)據(jù)庫服務(wù)器。它們之間的聯(lián)系圖示意如下:&nb

基于C/S的4層架構(gòu)概述

  ESFramework的4層結(jié)構(gòu)的4層分別是:客戶端(Client)、應(yīng)用服務(wù)器(AS)、功能服務(wù)器(FS)、數(shù)據(jù)庫服務(wù)器。它們之間的聯(lián)系圖示意如下:


    FS (FuncTIonServer),功能服務(wù)器,處理并且僅處理所有的功能性請求,不參與用戶管理、狀態(tài)保持等,提供最純粹的功能服務(wù)。
    AS (ApplicaTIonServer),應(yīng)用服務(wù)器,轉(zhuǎn)發(fā)所有的功能請求給FS,并處理所有的非功能請求,并管理終端用戶、進(jìn)行狀態(tài)保持、日志記錄等。
    上圖中的功能服務(wù)器FS的個數(shù)可能是0到N(N>0)個。在某種意義上可以認(rèn)為,每個功能服務(wù)器FS是可以互換的。

    將服務(wù)器拆分為功能服務(wù)器和應(yīng)用服務(wù)器有兩個顯而易見的好處:
(1)功能服務(wù)器FS的完全可復(fù)用。由于功能服務(wù)器采用“框架+插件”的結(jié)構(gòu),所以整個功能服務(wù)器是完全可復(fù)用的,從一個具體應(yīng)用轉(zhuǎn)換到另一個具體應(yīng)用,只需要替換功能插件即可,F(xiàn)S不需重新編譯。
(2)由于FS僅提供最純粹的功能服務(wù),不需要進(jìn)行用戶管理、狀態(tài)保持,這種功能服務(wù)器在運行時的無狀態(tài)性,使得功能服務(wù)器很容易實現(xiàn)負(fù)載均衡集群(后文中會講到,這種動態(tài)負(fù)載均衡是如何實現(xiàn)的)。 

    如果ESFramework僅僅做到這一步,就沒有必要拿出來和大家分享了,ESFramework不僅對這種4層架構(gòu)給予了充分完整的支持,ESFramework更進(jìn)了一步,它可以支持“類似地域分布式”的體系結(jié)構(gòu)。讀者可能已經(jīng)了解到,上面的4層架構(gòu)已經(jīng)是一種分布式架構(gòu)了,那么這里說的“類似地域分布式”又是什么意思?

    可以這么說,4層架構(gòu)是一種“縱向”的架構(gòu),“類似地域分布式”則側(cè)重于“橫向”,在“類似地域分布式”體系結(jié)構(gòu)中,每一個具體的“4層架構(gòu)的實現(xiàn)”只是其中的一個組成元素。我舉個例子,現(xiàn)在我們的一個應(yīng)用需要為全國范圍內(nèi)的所有大城市的手機(jī)用戶提供某種基于C/S的手機(jī)增值服務(wù)。我們的經(jīng)驗是,為每個城市配置一個應(yīng)用服務(wù)器AS,由于大量的計算在該AS對應(yīng)的FS上,所以可能需要多個FS為這個AS服務(wù)。而每個城市的AS之間可能需要相互通信(比如處理漫游用戶),這就需要將AS也管理起來,管理AS的服務(wù)器是IRAS(跨區(qū)域服務(wù)器)。如此一來,我可以畫出下圖作為例子:

     圖中的FunAddin是功能插件,這再前文已介紹過了。整個體系中,終端請求的服務(wù)主要分為兩大類,一是向應(yīng)用服務(wù)器AS請求功能服務(wù),另一類是終端與終端之間的非功能通信。所有的功能服務(wù)由功能插件(FunAddin)進(jìn)行處理,所有的非功能通信由應(yīng)用服務(wù)器處理或中轉(zhuǎn)。如果,終端請求的功能服務(wù)位于外部系統(tǒng),則功能插件會自動定位外部系統(tǒng)的地址,然后通過WebService等方式向外部系統(tǒng)提交請求。
    
    好了,讀者已經(jīng)了解了ESFramework中的4層結(jié)構(gòu)和“類似地域分布式”結(jié)構(gòu)是怎么回事了,下面我簡單概述一下ESFramework對4層結(jié)構(gòu)和“類似地域分布式”結(jié)構(gòu)提供了哪些強(qiáng)有力的特性支持:            

1.  基于構(gòu)件
    除了所有的功能插件是構(gòu)件外,整個ESF平臺也是由構(gòu)件組裝而成。其好處是:
(1)快速搭建系統(tǒng)
(2)促進(jìn)構(gòu)件復(fù)用,如AS/IRAS/FS/IRFS可以使用同一個通信組件來完成通信層工作。
(3) 實現(xiàn)功能插件的“熱插拔”,可以在運行時動態(tài)的添加/移除功能服務(wù)

2.  高度可擴(kuò)展
    由于ESF服務(wù)平臺體系需要隨時隨地的應(yīng)付各種突如其來的變化,其一定要具備高度的可擴(kuò)展性:
(1)功能插件的“熱插拔”
(2)外部服務(wù)的動態(tài)接入(通常是通過WebService)
(3)應(yīng)用服務(wù)器AS的動態(tài)添加/移除,比如,新開通針對大連城市的服務(wù)。
(4)功能服務(wù)器FS的動態(tài)添加/移除,實現(xiàn)功能服務(wù)器的動態(tài)負(fù)載均衡集群。

3.  高度可伸縮
    隨著我們提供的服務(wù)日漸深入人心,我們的用戶的數(shù)量會急劇增加,所以ESF服務(wù)平臺體系必須具備高度可伸縮性來提高系統(tǒng)的最大負(fù)載和吞吐量。
(1)由于功能服務(wù)器需要進(jìn)行大量的功能運算,所以平臺的瓶頸通常位于功能服務(wù)器,這可以通過功能服務(wù)器的動態(tài)集群來解決。集群中的各個功能服務(wù)器之間的負(fù)載均衡由對應(yīng)的應(yīng)用服務(wù)器AS來調(diào)度。
(2)當(dāng)單個區(qū)域的常在線用戶數(shù)量突破5000~10000時,我們需要添加AS進(jìn)行區(qū)域級的負(fù)載均衡,這可以通過具有端口映射功能分硬件來解決。 

4.  高度可復(fù)用
    ESF服務(wù)平臺體系并非只是適用于我們的LBS服務(wù),其實,ESF服務(wù)平臺體系是一個高度可復(fù)用的體系,也就是說ESF服務(wù)平臺可以作為任何、任意的服務(wù)的基本平臺,只要其所提供的服務(wù)是終端和服務(wù)器之間通過Tcp進(jìn)行基于連接的通信。 

5.  分布式
    除了外部系統(tǒng)的接入通過分布式服務(wù)進(jìn)行外,各應(yīng)用服務(wù)器之間、功能服務(wù)器與應(yīng)用服務(wù)器之間、應(yīng)用服務(wù)器和跨區(qū)域的應(yīng)用服務(wù)器之間都是采用分布式通信。跨區(qū)域的應(yīng)用服務(wù)器通過類似于remoTIng的方式在各個應(yīng)用服務(wù)器之間進(jìn)行調(diào)度。

6.  簡單部署、自動升級
    由于ESF服務(wù)平臺體系服務(wù)的區(qū)域可能非常多,比如各個大城市可能都需要部署應(yīng)用服務(wù)器和功能服務(wù)器,所以如果通過人工進(jìn)行部署和升級是非常低效的,ESF服務(wù)平臺提供了自動升級、加載、運行的功能。
(1)服務(wù)平臺安裝后,僅僅需要修改配置文件中的幾個參數(shù)即可正常運行。
(2)當(dāng)功能插件擁有新版本的時候,可以在不停止服務(wù)的情況下,自動升級到新版本。
(3)當(dāng)各服務(wù)器系統(tǒng)(AS/IRAS/FS/IRFS)有新版本時,會在該系統(tǒng)重啟的時候自動升級到新版本。為了在升級的時候不終止服務(wù),服務(wù)器系統(tǒng)可以使用逐步升級的方式。 

7.  通信保證機(jī)制
    當(dāng)遇到網(wǎng)絡(luò)突然斷開或某服務(wù)器重啟的情況,在網(wǎng)絡(luò)恢復(fù)或服務(wù)器重啟完成后,需要一種能自動的立即恢復(fù)通信(比如AS和FS的通信,各AS與IRAS之間的通信)的機(jī)制,ESF服務(wù)平臺提供了這種保證,其采用的策略主要基于:
(1)定時論詢
(2)Tcp連接池自動重連
(3)連接動態(tài)反轉(zhuǎn)

8.  漫游支持、跨區(qū)域功能請求支持
    在ESF服務(wù)平臺體系中,漫游是指某一區(qū)域的用戶登錄到另外一區(qū)域的應(yīng)用服務(wù)器AS上,對于此AS來說,該用戶是漫游用戶。如果用戶登錄到某AS卻請求其它區(qū)域的功能服務(wù),則是跨區(qū)域的功能請求。ESF服務(wù)平臺對這兩種情況都給予了充分的支持。

9.  終端與終端之間的通信支持
    有時,終端需要和終端(可能是同區(qū)域的、也可能是其它區(qū)域的)之間進(jìn)行通信,并且這種通信可以基于連接和基于非連接?;谶B接的通信像實時視頻聊天、實時監(jiān)控,基于非連接的像發(fā)送一張圖片給不在線的用戶。所有這些,ESF服務(wù)平臺都提供了支持。

10.支持二次開發(fā)
   在基于ESF服務(wù)平臺高度可復(fù)用和可擴(kuò)展的基礎(chǔ)上,ESF平臺可以非常容易的支持二次開發(fā),只要遵循相同的接口和通信協(xié)議,就可在ESF平臺進(jìn)行二次開發(fā)。

11.客戶端框架
   如果應(yīng)用的客戶端也可以使用.NET開發(fā),則ESFramework也提供了完善的支持,在ESFramework的支持下,開發(fā)客戶端僅僅需要開發(fā)業(yè)務(wù)插件就可以了,而整個網(wǎng)絡(luò)通信、多線程、升級部署等,都由框架完成了。后面的文章中我會介紹如何在AgileIM中開發(fā)自定義的業(yè)務(wù)插件。

     上面的所有特性將會在“基于C/S的4層架構(gòu)”部分分節(jié)介紹,感謝關(guān)注! 

     如果你的應(yīng)用不需要這么復(fù)雜的結(jié)構(gòu),比如僅僅一個簡單的3層架構(gòu),那么ESFramework仍然可以幫助你快速構(gòu)建,ESFramework是個輕量級的應(yīng)用框架,你不會為那些ESFramework提供了的而你不需要的功能/特性付出任何代價。
    (注意,ESFramework不太適合處理遺留系統(tǒng)(就像你很難使用MFC去處理基于VCL構(gòu)建的UI應(yīng)用一樣),ESFramework雖然與應(yīng)用無關(guān),但是為了能將更多的任務(wù)從應(yīng)用中抽象到框架中來,必須對應(yīng)用做一些假設(shè),幸運的是,ESFramework僅僅對應(yīng)用的通信協(xié)議做了最少的假設(shè),這個假設(shè)包含在NetMessage中。如果你不是處理遺留系統(tǒng),而是構(gòu)建一個全新的C/S應(yīng)用,那么ESFramework可以為你節(jié)省大量的架構(gòu)設(shè)計時間、軟件開發(fā)時間、調(diào)試和維護(hù)時間。) 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉