一:何謂分布式?
首先,分布式應用的執行通常將會在幾個電腦上完成。這是它和“單機版”應用程式的主要區別。總結的來說,分布式應用的主要目標就是為了提高系經的整體效能和延展性。它可以避免當Client大量增加時,所帶來的效能瓶頸和擴充問題。通過並行地增加物理的Server電腦,來服務更多的Client.
二:採用分布式的原因有哪些?
- 將運行在不同環境,作業系統和平台上的程式整合起來。這就是Xml Service的設計初衷,也是ADO.NET採用XML標準的原因。
- 在多個用戶端之間提供同步或線上通訊的功能(比如:聊天伺服器)
- 支援瘦用戶端(如:手持功能或只有IE的用戶端),因為它們的運算和執行能力非常有限。這時伺服器將完成大部分的計算工作。
三:除了分層外,分布式應用的特點有哪些?
分層的程式,不一定就是分布式的,因為分層有物理和邏輯上之分。除了物理上進行分層,分布式應用還有如下特點:
- 基於組件的代碼重用
- 將代碼邏輯分為業務對象(BO)和Data Access Objects (DO)
- 多線程
- 斷開的串連,無狀態的資料
- 事務性的編程
為一個分布式應用的樣本圖:
四:分成式應用程式的優勢在哪?
- 延展性,可以說是分布式應用的最大亮點,只要需要,新的電腦可以新容易地加入到現在的系統當中,而不需要做特別的處理。穩定性也是其一大特點之一,如是你使用群集,其中一台電腦的問題不會影響整個系統,因為系統中其他的Server可以照常服務用戶端。
- 還有比如,串連池,對象池,即時啟用等特點,都是以前的C/S程式所不能比的。
五:.NET中分布式所採用的技術
- .NET Remting,就Dcom有替代者。如果你在編寫一個區域網路的應用程式,這將是最好的選擇,因為使用TCP串連,效能很高,而且配置也很靈活。使用.NET Remoting,你保持遠程對象的狀態,或開發P2P的程式。注意:.NET Remoting不能做Load-Balancing。下面為.NET Remoting應用程式的一個樣本。每個用戶端在伺服器上都有持有一個單獨的對象:
- XML Web Services,也許是.NET最著稱的特點吧。它有如下特點:
- 是跨平台,跨語言的。.NET可以調用Java的WS,反過來也一樣。
- 專門在Web上用的。網上有各種各樣的WS,提供各種不同的功能,如股票行情,天氣預計等等,都可以通過WS調用。
- 容易開發,就像開發普通的類和方法一樣。
- 使用Soap互動資訊。為Web Service應用的一個樣本:
- DCom/COM+,在.NET中有新的名字:Enterprise Service(企業服務),其實本質是一樣的。因為.NET 2.0後有了Remoting和WCF及Web Servcie,COM+現在很少人用。但它提供的一些進階特性,在一些情況下,還是很好的選擇,如分散式交易,訊息佇列,對象池,JIT啟用。最主要的一點是,它支援Load-Balancing和安全配置。在域環境或多種開發語言整合時,能派上用場。