基於AgileEAS.NET企業應用開發平臺的分佈式解決方案

 

開篇 分佈式應用

       AgileEAS.NET基於Microsoft .Net構件技術而構建,Microsoft .Net最吸引人的莫過於分佈式應用技術,基已經提供了XML WebService、 .Net Remoting、WCF等技

術。AgileEAS.NET平臺所實現的分佈式包含兩層一次,一次是廣義的分成式應用,其意義是應用服務定位器提供本地服務組件及不同分佈式服務的發現、定位與集

成;狹義的分佈式系統是基於信息系統類應用場景所實現的分佈式數據訪問、分佈式ORM、遠程方法調用這樣的分佈式這實現,滿足以數據庫驅動爲主的信息系統開

發的分佈式組件。

AgileEAS.NET平臺的分佈式提供了二種橋接器,通過橋接器實現本地訪問與分佈式訪問的自由切換,只需要通過配置文件更改即可完成,這大大的提高了開發人員的

開發效率,讓開發人員更專注業務功能,而儘量少的因爲約束而投入過多的開發成本與時間。

分佈式應用概述

        分佈式系統(distributed system)是建立在網絡之上的軟件系統。正是因爲軟件的特性,所以分佈式系統具有高度的內聚性和透明性。因此,網絡和分佈式系統之

間的區別更多的在於高層軟件(特別是操作系統),而不是硬件。內聚性是指每一個數據庫分佈節點高度自治,有本地的數據庫管理系統。透明性是指每一個數據庫

分佈節點對用戶的應用來說都是透明的,看不出是本地還是遠程。在分佈式數據庫系統中,用戶感覺不到數據是分佈的,即用戶不須知道關係是否分割、有無複本、

數據存於哪個站點以及事務在哪個站點上執行等。

        在一個分佈式系統中,一組獨立的計算機展現給用戶的是一個統一的整體,就好像是一個系統似的。系統擁有多種通用的物理和邏輯資源,可以動態的分配任

務,分散的物理和邏輯資源通過計算機網絡實現信息交換。系統中存在一個以全局的方式管理計算機資源的分佈式操作系統。通常,對用戶來說,分佈式系統只有一

個模型或範型。在操作系統之上有一層軟件中間件(middleware)負責實現這個模型。一個著名的分佈式系統的例子是萬維網(World Wide Web),在萬維網中,所

有的一切看起來就好像是一個文檔(Web 頁面)一樣。

        上面的兩端是摘抄自網絡中的對分佈式系統的介紹,按照上面的含義,C/S、B/S結構的應用也應該是分佈式的應用,這也許是廣義上的分佈式應用。而在我們日

常的應用開發中,是指對應用的數據層、業務層使用比如DCOM、CORBA、JAVA RMI、WebServices、Remoting等技術的應用並且數據庫、業務邏輯、界面都運行在不同的機器

上的應用,這也許是在狹義上的分佈式應用。

EAS.NET平臺的分佈式

Ø 典型的應用場景

         我們知道,在信息系統(Information System)或者管理信息系統(MIS)是基於數據驅動的應用,應用系統中90%以上的業務都是基於數據庫的操作,一個分佈式的IS

或MIS應用也是遵循此種特性的,基於快速開發的原則,我們實現對分佈式的數據訪問器、分佈式的ORM訪問器,則我們已經實現了分佈式的90%,在AgileEAS.NET

平臺中,我們提出了這麼一個應用場景,即MIS系統在開發時只基於標準的數據訪問器、ORM訪問器、遠程方法調用器(本地方法調用器)開發與環境無法的信息系

統,至於信息系統是本地方式運行還是以分佈式方法運行取決於部署環境,部署成分佈式即分佈式運行,部署成本地方式即以本地方式運行。

        分佈式系統的典型應用場景應該是,當我們的系統需要部署在不同的物理範圍內時,這時候普通的方法方式已經無法滿足要求,這時候就必須要使用分佈式訪問

方式了,當然如果系統是B/S的時候,可能對這個分佈式方式的影響並不大,然後分佈式的方式更多強調的物理上的位置的不同區域。關於分佈式的應用場景可簡單

的總結如下:

         clip_p_w_picpath002

Ø 分佈式應用系統拓撲結構

        目前、平臺的分佈式應用主要是在醫療的區域衛生平臺整合與HIS系統中,通過分佈式的部署方式實現了相關的遠程系統訪問與本地訪問一樣簡單,並且集成了

強大的智能升級與一鍵部署功能,讓我們更方便的使用系統。

         目前AgileEAS.NET平臺的分佈式應用結構圖:

 

         p_w_picpath

        上圖是醫療行業的比較通用的分佈式系統的物理結構圖,下面我們來看看分佈式應用的其他的方式。

        由於AgileEAS.NET的分佈式組件與SAAS引擎及ESB組件相互集成,所以平臺的分佈式基礎中間件可以說是功能非常的強大,而且配置起來極其的靈活,只需要

通過配置文件可實現自由的靈活配置,下面我們就來看看通用的分佈式應用系統的結構。

        p_w_picpath

        從上圖,我們看到AgileEAS.NET平臺提供了強大的基礎組件,來完成一些任務分發與任務路由等提高性能的併發與系統的可響應性等系統的質量屬性方面有了很

大的靈活性與策略,通過配置相關的策略,來達到系統的設計目標。

當然、關於分佈式的定義也是比較的模糊,讓人有點迷糊,因爲有時候可以理解成所有的系統,都可看作廣義的分佈式系統。

         clip_p_w_picpath007

         這是一般的C/S的應用部署,包括CAS部署方式。通過應用服務器來處理具體的業務,這時候的客戶端是瘦客戶端。

然後我們再發散下,應用在廣域網上的應用。

         clip_p_w_picpath008

         這就是很簡單的結構圖,與之前我們畫的拓撲圖相比是很容易理解了。

         關於服務器端的業務拆分與業務的協作,包括數據庫的數據拆分與數據的同步問題,就屬於平臺內部處理的問題,平臺會提供相關的組件來處理這方面的內

容。

Ø AgileEAS.NET平臺的服務橋接器

         AgileEAS.NET平臺對於分佈式這塊的設計思路,通過提供本地服務橋接器與分佈式服務橋接器來實現本地服務與遠程服務調用方式的無縫切換。通過配置文件

的配置節信息,在自動的判定是分佈式訪問還是本地訪問的方式。

        服務橋接器是目前平臺的核心,平臺提供了三種分佈式訪問的支持,Remoting、Webservice、WCF框架的集成。由於WCF本身已經集成了MSMQ消息服務,所以我

這裏就不會詳細的闡述了。

        我們就來看看服務橋接器的思路與原理。

        p_w_picpath

        下面我們就來看看客戶端容器內部的具體處理,因爲業務客戶端容器內部不管是不是分佈式訪問的訪問,都會創建業務處理對象代理,只不過分佈式訪問的方式

時,代理對象通過服務橋接器,實現客戶端代理對象與服務器端業務對象完成通信。本地客戶端的時候,則直接通過代理對象與數據庫交互或者是緩存服務器等。

        p_w_picpath

       通過上圖我們可以瞭解平臺的關於分佈式與本地切換時的具體的思想和設計體系。

EAS.NET平臺的統一

        我們再來回顧一下平臺的一般情況的分層架構圖:

        clip_p_w_picpath016

        並且提到如下內容:

        對於涉及到的通信/傳輸服務,或者說通信/傳輸服務層,在分佈式應用中,她是一個事實存在的通道,客戶端部署着界面層、業務代理層,應用程序服務器剛部

署着業務邏輯層和數據訪問層;但是在非分佈式應用中,比如客戶端聯想着所有組件,那麼就通信/傳輸服務,爲了統一這種分層架構,我在AgileEAS.NET平臺中,

對於訪問本地業務組件的這種服務搞了一個虛擬的通信/傳輸服務。

        AgileEAS.NET平臺自2004年發展到今天,我信提出一個概念,那就在開發過程中,我們可以不考慮應用的部屬,開發出的一個可以可以運行在普通環境下,也可

以運行在普通環境,也可以運行在分工式環境中。

        我們如果實現這種普通應用於分工式應用的統一呢,答案是我們使用了會話、資源和基於接口驅動的訪問器技術。

        AgileEAS.NET平臺上下文爲應用開發提供了上下文會話,一個會話包含着若干的會話資源(比如數據連接、N種訪問器)、而IOrmAccessor、IDataAccessor、IMet

hodInvoker本身就是會話資源,在運行期的容器根據系統配置文件決定加載何種訪問器:

        普通應用:

        clip_p_w_picpath018

       基於分佈式環境:

       clip_p_w_picpath020

       基於WebService與Remoting、WCF的分佈式訪問配置:

       clip_p_w_picpath022

EAS.NET平臺的分佈式應用的優勢

Ø 概述

        AgileEAS.NET平臺提供了普通訪問方式與分佈式訪問方式的無縫切換,對系統的開發只需要在業務邏輯層的每個業務對象實現既定的接口或者是繼承自平臺規定

的對象,那麼就可以完成相關的應用服務。這樣可以大大的縮短開發人員開發分佈式系統的開發難度,並且能夠讓開發原因更專注具體的業務開發,並且目前平臺提

供的插件開發模式下,開發分佈式應用與開發普通的應用方式上是一摸一樣的,唯一的區別是在系統的應用部署環節上。

Ø 分佈式系統與傳統系統相比的優勢

        î 分佈式系統的優勢:

 

        clip_p_w_picpath023

        高性能:分佈式架構降低了由於單個服務器的處理壓力及訪問數據的規模。通過本地緩存及內存緩存的方式來最大程度的降低由於I/O造成的系統瓶頸的影響。

多服務器的並行處理,提供了系統的處理能力與性能。

        高可用性:服務器之間可採用交叉備份方式,主從服務器之間實現數據同步。實施監控服務器的運行狀態,監測服務器的可用性狀態。當某個主服務器無法使用

時,通過任務分發路由,將任務路由到可用的服務器上。實現任務處理的不間斷。

        負載均衡:通過檢測每個服務器目前的運行狀態與負載情況,根據介入與路由服務器的負載情況,來選擇合適的處理服務器介入,根據數據服務器的存儲規模及

負載情況,來動態的調整路由規則。

        線性擴展:基於數據分割及應用路由實現的分佈式架構,隨着業務量的增長,通過增加服務器,調整分割與路由規則,來實現平臺容量的線性擴充。通過路由的

狀態控制,可實現數據的動態遷移。跳轉路由規則即可。

         î 分佈式系統的劣勢:

         p_w_picpath

        分佈式系統還包括一些成本上的投入較傳統方式的投入成本大,開發起來相比傳統方式複雜的多。所以我們在採用普通的開發方式還是分佈式應用時,方方面面

我們都需要考慮,分佈式系統的擴展性等各方面都更好,當然複雜度也會提供,同事性能上肯定會比普通方式會有所下降。因爲質量因素上的擴展性與高性能本身就

是有冒險的質量屬性。

Ø AgileEAS.NET平臺的優勢

        通過上面的簡單的對比,我們能夠看出來很多信息,AgileEAS.NET平臺集合了分佈式系統的有點,同時最大限度的彌補分佈式系統的缺點或劣勢,通過平臺提供

的一些設計機制和思想,讓開發人員在開發系統時與普通的開發方式相同。

        關於具體的AgileEAS.NET平臺的優勢羅列如下:

       clip_p_w_picpath027

       關於平臺的分佈式應用更多優勢,盡在降低開發成本與人員成本上。

      平臺使分佈式系統的開發方式與普通的系統的開發方式達到一致性,讓開發人員不會因爲分佈式系統的複雜性而無從下手。所以開發人員的成本只是在學習平臺

的使用如何開發插件上的學習成本,還不會有其他的更多的成本投入。

更多

         上面說了那麼多,下面我們來說說我們目前的平臺AgileEAS.NET平臺,首先我們所有的東西,不管是產品還是解決方案,都是基於AgileEAS.NET平臺之上構建的

產品或解決方案,所以我們所有的技術指導等方面都是基於AgileEAS.NET敏捷快速開發平臺之上來說的,一是平臺的構建是基於軟件工程的思想爲指導來構建的,所

以我們的平臺是融合了軟件工程的思想在其中。

         p_w_picpath_thumb37_thumb

        上圖是基本的軟件開發過程,當然可能部分現在是走敏捷開發,我們提供的是一樣的開發模式,一個模塊是一個插件,可以進行獨立的插件開發,並且實現真正

的並行開發,來提供開發速度,降低開發成本。

        上圖中的產品部署,目前也是已經有了,但是沒有提供可視化的管理,後續會提供可視化的管理,將軟件打包,統一發布和部署。

        

       上圖是平臺最終的開發管理解決方案,平臺提供豐富的開發工具,並且集成軟件工程的思想爲指導,幫助企業提高開發效率,幫助開發人員提高開發速度,但是

又不是降低開發人員的水平,讓其無用武之地。我們提供的平臺不是讓開發人員當碼農,而是讓其自身不斷的提升自己對軟件的理解和技術的提升。

例如,幫助企業提高開發效率體現如下:

        p_w_picpath_thumb39_thumb

        統一企業的產品線,並且能夠更好的對人員進行管理,同時開發上通過平臺提供的PM工具,更好的來進行項目的資源的分配與進度的跟蹤和調整。對開發人員

來說,通過使用平臺,我們能學習到如下:

        p_w_picpath_thumb41_thumb

       關於更多的使用平臺後成本的對比和相關的數據信息,我們可以在後面的客戶案例中,來進行一一的說明和分析,得出相關的結論。

 

相關信息

        p_w_picpath_thumb8_thumb_thumb_thumb

        關於平臺的更多詳細的資料,會第一時間提供下載,PDF版本的工作流使用手冊,會後續傳上來,大家可以查看和下載,當然羣共享裏面會第一時間提供相關的

下載信息。

        官方博客:http://www.smarteas.net/

        官方網站:http://www.agilelab.cn/

        如果您在使用AgileEAS.NET開發平臺中有什麼問題,請使用如下幾種聯繫方式或者溝通方式。

        1、郵箱方式:

        魏瓊東: [email protected] 手機:18629261335 博客:http://eastjade.cnblogs.com/

        殷長波:[email protected] 手機:18691480181  博客: http://www.cnblogs.com/onmyway/

        何戈洲[email protected] 博客:http://www.cnblogs.com/hegezhou_hot/

       2、QQ交流羣:

       AgileEAS.NET平臺交流羣:147168308(高級羣)[剩90人]

 

AgileEAS.NET快速開源平臺下載

       download 請點擊圖片下載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章