天天看點

DotNET企業架構應用實踐-企業管理軟體架構的曆史與發展(中)- 分布式系統

分布式系統(distributed system)是建立在網絡之上的軟體系統。正是因為軟體的特性,是以分布式系統具有高度的内聚性和透明性。是以,網絡和分布式系統之間的差別更多的在于高層軟體(特别是作業系統),而不是硬體。内聚性是指每一個資料庫分布節點高度自治,有本地的資料庫管理系統。透明性是指每一個資料庫分布節點對使用者的應用來說都是透明的,看不出是本地還是遠端。在分布式資料庫系統中,使用者感覺不到資料是分布的,即使用者不須知道關系是否分割、有無複本、資料存于哪個站點以及事務在哪個站點上執行等。

在一個分布式系統中,一組獨立的計算機展現給使用者的是一個統一的整體,就好像是一個系統似的。系統擁有多種通用的實體和邏輯資源,可以動态的配置設定任務,分散的實體和邏輯資源通過計算機網絡實作資訊交換。系統中存在一個以全局的方式管理計算機資源的分布式作業系統。通常,對使用者來說,分布式系統隻有一個模型或範型。在作業系統之上有一層軟體中間件(middleware)負責實作這個模型。一個著名的分布式系統的例子是網際網路(World Wide Web),在網際網路中,所有的一切看起來就好像是一個文檔(Web 頁面)一樣。

以上内容是百度百科對分布式系統的定義,從理論的角度來講,目前極大多資料企業管理應用都是屬于分布式系統這一範疇,C/S、B/S是分布式結構、C/A/S、B/A/S也是分布式結構、智能用戶端更是這種結構,分布式系統的本質是在網絡條件下的協同作戰。

目前,在業界都不把C/S應用和B/S做為分布式應用,而之前文章中介紹的C/A/S、B/A/S結構我們可以認為是一個分布式體系結構,因為廣義的分布式系統太過于寬泛,狹義的分布式體系如下圖:

DotNET企業架構應用實踐-企業管理軟體架構的曆史與發展(中)- 分布式系統

即實體上三層/多層(Tier)、邏輯上也是三層/多層結構(Layer),很多程式員都在喊,要搞三層架構的應用,但對于Tier和Layer兩個概念還是不能混淆的。

三層/多層(Tier)是一種實體部署結構,其與一系列的分布式通信技術分不開,常用的分布式通信技術如下:

DCOM全稱為分布式元件對象模型,是微軟基于其自身的COM技術的分布式擴充,它支援不同的兩台機器上的元件間的通信,而且不論它們是運作在區域網路、廣域網、還是Internet上。

DotNET企業架構應用實踐-企業管理軟體架構的曆史與發展(中)- 分布式系統

DOCM提供了一系列的概念和程式接口,利用這個接口,用戶端程式對象能夠請求來自網絡中另一台計算機上的伺服器COM對象。COM提供了一套允許同一台計算機上的用戶端和伺服器之間進行通信的接口。

DCOM是早期的分布式通信技術,目前還有大量的應用運作于DCOM技術之上。

可以說Remoting就是DCOM的一種更新,它改善了很多功能,并極好的融合到.Net平台下,用于在.NET開發中代替DCOM技術,并且和DCOM技術相比,其更加靈活和友善。

DotNET企業架構應用實踐-企業管理軟體架構的曆史與發展(中)- 分布式系統

.NET Remoting 提供了一種允許對象通過應用程式域與另一對象進行互動的架構,而其技術本質是對象的跨越程序邊界,具體的說,就是對象的代理技術,在目前企業管理應用系統之中,.NET Remoting應用的非常廣泛。

如果說DOCM和.NET Remoting都是微軟的特有技術的話,那麼Web Service技術就是一種标準,但是寫到這,我無法确切的給出一個Web Service的定義,隻好摘抄百科中的一段自認為還算嚴謹定義:

Web services是建立可互操作的分布式應用程式的新平台。作為一個Windows程式員,你可能已經用COM或DCOM建立過基于元件的分布式應用程式。COM是一個非常好的元件技術,但是我們也很容易舉出COM并不能滿足要求的情況。

Web service平台是一套标準,它定義了應用程式如何在Web上實作互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平台上寫Web service ,隻要我們可以通過Web service标準對這些服務進行查詢和通路。

Web Service及其所使用的通信協定SOAP已經是國際标準,基于這些标準,不管是windows還是UNIX,也管你使用何種程式設計語言,都可以通過這麼一個标準建構和使用WebService。

CORBA(Common Object Request Broker Architecture公共對象請求代理體系結構)是由OMG組織制訂的一種标準的面向對象應用程式體系規範。或者說 CORBA體系結構是對象管理組織(OMG)為解決分布式處理環境(DCE)中,硬體和軟體系統的互連而提出的一種解決方案。

前面介紹了幾種分布式通信技術,其規納起來無外忽兩種:

這中技術也可以了解為對象代理技術,或者說遠端過程調用也是對象代理技術的實作思路,從這種看法來分類,DCOM、.NET  Remoting和COBRA都屬性這一類,其本質是在用戶端請求遠端執行某個過程或者方法,微軟的RPC或者JAVA RMI。

通信雙方都尊守某一個協定标準進行通信,各通信雙方對消息進行處,比如Web Service 采用SOAP-XML做為标準的通信消息,服務提供者和調用者自行處理消息中的業務請求。

<a href="http://www.cnblogs.com/eastjade/archive/2010/10/18/1854644.html">DotNET企業架構應用實踐-系列目錄</a>

<a href="http://www.cnblogs.com/hegezhou_hot/archive/2011/03/30/2000180.html">AgileEAS.NET平台開發Step By Step系列-藥店系統-索引</a>

<a href="http://www.cnblogs.com/eastjade/archive/2010/09/09/1822530.html">AgileEAS.NET應用開發平台介紹-文章索引</a>

QQ群:125643764,120661978

    本文轉自魏瓊東部落格園部落格,原文連結:http://www.cnblogs.com/eastjade/archive/2011/05/26/2057876.html,如需轉載請自行聯系原作者

繼續閱讀