Komunikacja zdalna .NET

.NET Remoting to interfejs programowania aplikacji (API) firmy Microsoft do komunikacji międzyprocesowej wydany w 2002 r. wraz z wersją 1.0 .NET Framework . Jest to jedna z serii technologii firmy Microsoft, która rozpoczęła się w 1990 roku wraz z pierwszą wersją łączenia i osadzania obiektów (OLE) dla 16-bitowego systemu Windows . Pośrednimi krokami w rozwoju tych technologii były Component Object Model (COM) wydany w 1993 i zaktualizowany w 1995 jako COM-95, Distributed Component Object Model (DCOM), wydany w 1997 (i przemianowany na Active X) oraz COM + z jego Microsoft Transaction Server (MTS), wydany w 2000 roku. Obecnie jest zastępowany przez Windows Communication Foundation (WCF), który jest częścią .NET Framework 3.0 .

Podobnie jak jego członkowie rodziny i podobne technologie, takie jak Common Object Request Broker Architecture (CORBA) i Java Remote Method Invocation (RMI), .NET Remoting jest złożony, ale jego istota jest prosta. Z pomocą systemu operacyjnego i agentów sieciowych proces klienta wysyła wiadomość do procesu serwera i otrzymuje odpowiedź.

Przegląd

Usługa .NET Remoting umożliwia aplikacji udostępnienie obiektu (nazywanego obiektem zdalnym ) ponad granicami komunikacji zdalnej , co obejmuje różne domeny aplikacji , procesy , a nawet różne komputery połączone siecią. Środowisko uruchomieniowe usługi .NET Remoting obsługuje odbiornik żądań kierowanych do obiektu w domenie aplikacji aplikacji serwera. Po stronie klienta wszelkie żądania kierowane do obiektu zdalnego są przekazywane przez środowisko uruchomieniowe usługi .NET Remoting przez kanału , które hermetyzują rzeczywisty tryb transportu, w tym strumienie TCP , strumienie HTTP i nazwane potoki . W rezultacie, tworząc instancje odpowiednich Channel , aplikacja .NET Remoting może obsługiwać różne protokoły komunikacyjne bez ponownej kompilacji aplikacji. Środowisko uruchomieniowe samo zarządza aktem serializacji i organizowania obiektów w domenach aplikacji klienta i serwera.

Usługa .NET Remoting udostępnia odwołanie do obiektu zdalnego aplikacji klienckiej, która następnie tworzy instancję obiektu zdalnego i używa go tak, jakby był obiektem lokalnym. Jednak rzeczywiste wykonanie kodu odbywa się po stronie serwera. Obiekt zdalny jest identyfikowany przez adresy URL aktywacji i jest tworzony przez połączenie z adresem URL. Odbiornik dla obiektu jest tworzony przez zdalne środowisko wykonawcze, gdy serwer rejestruje kanał używany do łączenia się z obiektem zdalnym. Po stronie klienta infrastruktura zdalna tworzy serwer proxy , który pełni rolę pseudoinstancji obiektu zdalnego. Nie implementuje funkcjonalności obiektu zdalnego, ale prezentuje podobny interfejs. W związku z tym infrastruktura zdalna musi wcześniej znać publiczny interfejs obiektu zdalnego. Wszelkie wywołania metody wykonane względem obiektu, w tym tożsamość metody i wszelkie przekazane parametry, są serializowane do strumienia bajtów i przesyłane kanałem zależnym od protokołu komunikacyjnego do obiektu proxy odbiorcy po stronie serwera („ marshalled ”), przez pisząc do zlewu transportowego kanału. Po stronie serwera serwer proxy odczytuje strumień z ujścia i w imieniu klienta wywołuje zdalny obiekt. Wyniki są serializowane i przesyłane przez ujście do klienta, gdzie serwer proxy odczytuje wynik i przekazuje go aplikacji wywołującej. Jeśli obiekt zdalny musi wykonać wywołanie zwrotne do obiektu klienta dla niektórych usług, aplikacja kliencka musi oznaczyć go jako zdalny i mieć odbiornik zdalnego hosta środowiska uruchomieniowego. Serwer może połączyć się z nim przez inny kanał lub przez już istniejący, jeśli podstawowe połączenie obsługuje komunikację dwukierunkową. Kanał może składać się z wielu różnych obiektów Channel, prawdopodobnie z różnymi heterogenicznymi transportami. W ten sposób zdalny dostęp może również działać w systemach oddzielonych połączeniem heterogenicznych sieci, w tym Internetu. Bezpieczeństwo typu jest wymuszane przez środowisko uruchomieniowe CTS i .NET Remoting. Wywołania metod zdalnych są z natury synchroniczne; wywołania asynchroniczne można zaimplementować przy użyciu bibliotek wątków. Uwierzytelnianie i kontrolę dostępu można zaimplementować dla klientów przy użyciu niestandardowych kanałów lub hostując obiekty zdalne w usługach IIS , a następnie korzystając z systemu uwierzytelniania usług IIS.

Linki zewnętrzne