.NET Remoting與ASP.NET Web服務效能比較

來源:互聯網
上載者:User

摘要:本文對 Microsoft ASP.NET Web 服務與 Microsoft .NET Remoting 的相對效能進行比較。Microsoft ASP.NET Web 服務的互通性最好,並完全支援 HTTP 上的 WSDL 和 SOAP;而 Microsoft .NET Remoting 可實現公用語言運行庫類型系統的高保真,並支援其他資料格式和通訊通道。

從 MSDN Code Center 下載 BDADotnet.msi 範例程式碼(英文)。

簡介

ASP.NET Web 服務和 .NET Remoting 為分布式應用程式中的處理序間通訊提供了一整套設計選項。通常,ASP.NET Web 服務的互通性最好,並完全支援 HTTP 上的 WSDL 和 SOAP;而 .NET Remoting 可實現公用語言運行庫類型系統的高保真,並支援其他資料格式和通訊通道。有關詳細資料,請參閱 ASP.NET Web 服務還是 .NET Remoting:如何選擇。

本文主要對這兩項技術的相對效能進行比較。

ASP.NET Web 服務

ASP.NET 提供以 Microsoft® IIS 作為宿主的基礎結構,支援 SOAP、XML 和 WSDL 等行業標準。儘管 .NET Remoting 也支援 IIS 宿主和 HTTP 上的 SOAP,但 ASP.NET 卻可提供最進階別的 SOAP 互通性,包括對 SOAP Section 5 和 Document/Literal 的支援。

ASP.NET 可以充分利用 IIS 具有的功能,如安全性和日誌記錄。IIS 宿主也很強大,因為它可以在 Aspnet_wp.exe 終止後重建它。此外,由於 ASP.NET Web 服務的伺服器和用戶端的配置都已簡化,因此與使用 .NET Remoting 提供的服務相比,它的建立和使用更為容易。

.NET Remoting

.NET Remoting 更具通用性和擴充性,允許在使用不同傳輸協議和序列化格式的對象間進行通訊。它支援二進位、SOAP、自訂格式以及 TCP、HTTP 和自訂協議。支援多個物件建立和生存期模式,包括 Singleton、SingleCall 和 Client-Activated。Remoting 需要一個主機處理序,可以是 IIS、Microsoft® Windows 服務或用 .NET 編寫的可執行檔。

在具有 ASP.NET 的 IIS 中宿主使用 SOAP 格式化程式的 .NET Remoting 對象時,該對象可以公開為 XML Web 服務。由於承載以 HTTP 上的 SOAP 進行編碼,因此任何支援 SOAP 編碼格式的用戶端均可通過 網際網路存取該對象。使用 HTTP 協議的另一個優點是它通常可以暢通無阻地通過大多數防火牆。TCP 通道和二進位格式化程式可以部署在伺服器和用戶端均運行 .NET Framework 的 Intranet 環境中。此方法的效能最佳,因為在使用原始通訊端通過網路傳輸資料時使用了效率高於 HTTP 的自訂協議。儘管此方法在封閉環境中可以提供出眾的效能,但它不能部署於用戶端未運行 .NET Framework 的跨平台方案。

IIS 主機使用安全通訊端層 (SSL) 為網路級保護提供安全通訊,您也可以利用 IIS 和 ASP.NET 身分識別驗證和授權。TCP 通道以及不通過 IIS 宿主的 HTTP 通道不支援安全通訊端傳輸,因此其資料以明文形式傳輸。如果使用的是 TCP 通道或由非 IIS 進程宿主的 HTTP 通道,則您需要負責實現其安全性。

測試方案

分布式應用程式中處理序間通訊的效能取決於以下因素:

用於跨遠程邊界的應用程式間傳輸資訊的通道(包括 TCP 和 HTTP)佔用的系統開銷量。TCP 通訊端比 HTTP 更為有效。

另一個因素是序列化。序列化流可以通過 XML、SOAP 或壓縮二進位標記法進行編碼。ASP.NET Web 服務使用 XMLSerializer 類將對象序列化為 XML 流,XML 流的速度非常快,但由於存在 XML 分析,因而需要一定的系統開銷。Remoting 分別使用 BinaryFormatter 和 SOAPFormatter 將對象序列化為二進位格式和 SOAP 格式。由於這些格式化程式使用反射,因而對於引用對象很快,但對於必須經過裝箱或unboxing來通過反射 API 傳遞的實值型別則較慢。此外,SOAPFormatter 還需要額外的系統開銷以產生編碼的 SOAP 訊息。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.