簡體   English   中英

Web服務和遠程處理有什么區別?

[英]What is the difference between web service and remoting?

我知道Web服務並且對遠程處理有一些了解。 這兩個概念都在客戶機上調用方法,所以區別在哪里?

通過遠程處理我們也可以在遠程機器上執行該方法,同樣的功能也可以通過Web服務實現。

如果這是一個明顯的問題,請原諒我..

兩者都支持分布式應用

Web服務是跨平台的,使用通用標准並通過防火牆工作。 他們還考慮消息,而不是對象 - 您向服務發送消息,然后您得到回復。

遠程處理是一種僅限MS的技術,它不是跨平台的,並且以二進制格式進行通信。 它根據對象思考,在遠程服務器上創建一個對象並使用它。 它不適用於防火牆。 Remoting現在也已經死了,MS贊成WCF(包括Web服務)

.NET Remoting概念是一種Microsoft / .NET特定的進程間通信技術。

由於其炒作,“Web服務”一詞非常分散。 但我認為W3C定義適用於大多數情況。 它定義了WSDL作為接口描述和SOAP作為消息協議的使用。

根據Microsoft .NET Remoting:MSDN上的技術概述 ,Remoting使用二進制或XML編碼。 而XML編碼使用SOAP。 但據我所知,它不符合WS-I Basic Profile 因此,它提供了極其有限的Web服務互操作性。

這兩個概念都允許進程間通信。 如果您的應用程序僅使用.NET,那么使用.NET Remoting是一個不錯的選擇。

但是,如果您計划提供與其他編程語言的互操作性,那么您應該使用Web服務。

基於ASP.NET的Web服務只能通過HTTP訪問。 .NET Remoting可以在任何協議中使用。

Web服務在無狀態環境中工作,其中每個請求都會創建一個新對象來為請求提供服務。 .NET Remoting支持狀態管理選項,可以關聯來自同一客戶端的多個調用並支持回調。

Web服務通過SOAP消息中包含的XML序列化對象,因此只能處理可以用XML完全表示的項目。 .NET Remoting依賴於包含有關數據類型信息的公共語言運行庫程序集的存在。 這限制了必須傳遞給對象的信息,並允許通過值或引用傳遞對象。

Web服務支持跨平台的互操作性,適用於異構環境。 .NET Remoting要求客戶端使用.NET或其他支持.NET Remoting的框架構建,這意味着同構環境。

遠程處理和Web服務都是應用程序之間的通信方式。

遠程處理 - 在遠程處理中,通信過程中涉及的應用程序可以位於同一計算機,相同或不同網絡中的不同計算機上。 在遠程處理中,兩個應用程序都相互了解。 在另一個應用程序上創建應用程序對象的代理。

Web服務 - 使用Web服務的應用程序之間的通信獨立於平台並且獨立於編程。 使用Web服務的應用程序只需訪問它,而無需知道如何實際實現和創建此Web服務。

Web服務是遠程處理的一種形式,因為您有效地在AppDomain之外的同一台機器上執行代碼。

通過透明代理和序列化在AppDomain /平台邊界之間制作對象,因此在同一台機器上或通過網絡進行遠程處理(InterProcess)是不同的。 遠程處理具有復雜性,很容易變得非常復雜。 WCF使維護更簡單。 性能方面,我沒有比較兩種方法,並且肯定會有興趣看看在InterProcess環境中的兩種情況。 由於WCF可以與二進制綁定進行通信,因此不限於HTTP協議。

使用Pipes進行InterProcess通信,WCF使這變得更加簡單。

最后,WebServices用於通過端口80(標准)進行通信,HTTP和Remoting可以使用不同的序列化格式化器通過預定義的端口和通道進行通信。

它們現在已由WCF升級,現在為這些類型的通信提供方法。

遠程處理是模擬作為本地方法調用的外來方法,接受相同類型的參數,因此它所需要的只是對對象進行序列化並轉移調用遠程方法(在同一語言或平台中),並提供響應。

Web服務(SOAP服務)處理RPC術語中的跨平台方法調用,但是可以使用文檔樣式服務進一步改進,這里語言或平台不是障礙,因為XML將通過編組和解組本機和XML表示來充當中間體。 。

雖然WebService是通過HTTP實現的,但Remoting是通過TCP / UDP實現的。 因此,Remoting在速度方面表現更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM