體系結構
圖 1 顯示在 ASP.NET 中駐留遠程對象時的基本 .NET Remoting 體系結構。如果主要關心安全性問題,那么建議使用 ASP.NET 主機和 HTTP通道進行通信,因為它允許遠程對象利用 ASP.NET和 IIS 提供的基本安全服務。
有關可能使用的主機和通道類型范圍的詳細信息以及比較信息,請參見本章后面的“選擇一個主機進程” 。
圖 1. .NET Remoting 體系結構
客戶端與進程內的代理對象進行通信。可以通過遠程對象代理設置身份驗證憑證(例如,用戶名、密碼和證書等等)。方法調用通過接收鏈進行傳遞(您可以實現自己的自定義接收來執行數據加密),并到達負責通過網絡發送數據的傳輸接收。在服務器端,調用通過相同的管道進行傳遞,并向對象發出調用。
注 本章中使用的術語“代理” 一詞是指客戶端進程內的代理對象,客戶端通過該對象與遠程對象進行通信。不要將它與術語“代理服務器”混淆。
Remoting 接收
當客戶端在遠程對象上進行方法調用時,.NET Remoting 使用傳輸通道接收、自定義通道接收和格式化程序通道接收。
傳輸通道接收
傳輸通道接收通過網絡在客戶端與服務器之間傳遞方法調用。.NET提供了 HttpChannel 和 TcpChannel 類,但是,可以對體系結構進行完全擴展,并且插入您自己的自定義實現方法。
◆ HttpChannel。在將遠程對象駐留在 ASP.NET 中時,可以使用此通道。此通道使用 HTTP 協議在客戶端和服務器之間發送消息。
◆ TcpChannel。在將遠程對象駐留在 Microsoft? Windows? 操作系統服務或其他可執行文件中時,可以使用此通道。此通道使用 TCP 套接字在客戶端和服務器之間發送消息。
◆ 自定義通道 。自定義的傳輸通道可以使用任何基本的傳輸協議在客戶端和服務器之間發送消息。例如,自定義通道可以使用命名管道或郵件槽。
比較傳輸通道接收
下表對兩個主要的傳輸通道接收進行了比較。
自定義接收
可以在通道接收管道內的不同位置上使用自定義通道接收來修改在客戶端和服務器之間發送的消息。提供加密和解密功能的通道接收就是一個自定義通道接收的示例。
格式化程序接收
格式化程序接收獲取方法調用,并將它們序列化為可通過網絡發送的流。.NET 提供兩種格式化程序接收:
◆二進制格式化程序。它使用 BinaryFormatter 類將方法調用打包為一個序列化的二進制流,然后傳遞該流(使用 HTTP POST)以便向服務器發送數據。二進制格式化程序將 HTTP 請求中的內容類型設置為“application/octet-stream”。
與 SOAP 格式化程序相比,二進制格式化程序可以提供更高的性能。
◆SOAP 格式化程序.它使用 SoapFormatter 類將方法調用打包為 SOAP 消息。在HTTP 請求中將內容類型設置為“text/xml”,并使用 HTTP POST 將其傳遞到服務器。
共2頁: 1 [2] 下一頁 | ||
|