2010-12-07 108 views

回答

5

它們沒有可比性。

.NET遠程處理是一個(過時的,使用WCF)技術呼叫遠程服務。您可以在SOA環境以及純客戶端 - 服務器通信(更可能是客戶端 - 服務器通信)中使用.NET遠程處理。 .NET Remoting不會談論爲什麼他們互相交談,只是如何。

SOA是概念(或企業架構)關於不同的服務如何相互協作。它不會談論使用什麼技術,而是關於如何使用統一的業務對象和統一接口連接不同的服務的結構。 SOA是如何建模和提取這些通用接口和常用業務對象的過程。

+1

你剛剛比較了他們:)但我同意你已經畫出了一個本質區別 - 即SOA是一個概念。也許你可以擴展和引用Web服務,直接套接字通信等,正如你提到的WCF。 – 2010-12-07 21:15:13

0

SOA比遠程處理更具企業規模 - 在SOA中,您可能有許多組件支持服務發現,工作負載和方法調用管理以及資源管理等等。

0

最簡單的說,Remoting緊密耦合組件,而SOA有鬆散耦合的組件。

在Remoting中,它只是通常在.Net或Java(或C++等)中找到的開發過程調用風格的擴展,擴展爲允許遠程過程調用。雙方(客戶端和服務器)通常都構建在同一個平臺上,而且這些調用並不旨在與其他平臺進行互操作。

在SOA中,服務的構建意圖是調用它們的客戶端可能不會構建在同一個平臺上。通常情況下,SOA解決方案是圍繞這樣的想法構建的,即客戶端和服務器之間的調用被視爲消息,並且消息本身與操作同樣重要。

將客戶端到服務器的調用視爲消息的好處是,可以使用其他服務在消息從客戶端到服務器路由時與消息進行交互,使注入新功能變得更加容易,而無需重寫客戶端或服務器。你可以用Remoting來做一些這樣的事情,但是它不像SOA那麼容易,因爲客戶端和服務器端可能都沒有考慮到這種可擴展性。這就是說,SOA確實增加了架構的複雜性。不是不值得額外投資的複雜性。一位優秀的架構師將幫助您確定項目每種開發風格的優缺點,幫助確定何時使用每種風格。