.NET Remoting är en komponent skapad av Microsoft . API för kommunikation mellan processer . Microsofts implementering av SOAP -protokollet ( webbtjänster ). Släpptes 2002 med version 1.0 av .NET Framework . Det är en av en serie teknologier från Microsoft som började 1990 med den första versionen av OLE för 16-bitars Windows . Mellansteg i utvecklingen av sådana teknologier var COM , släppt 1993 och förfinad 1995 under namnet COM-95, DCOM , släppt 1997 (och omdöpt till ActiveX), och COM+ med sin Microsoft Transaction Server (MTS), släppt 2000 [1] . För närvarande har .NET Remoting ersatts av WCF , som är en del av .NET Framework 3.0 .
Precis som alla medlemmar i denna familj och liknande teknologier, såsom CORBA och RMI , är .NET Remoting-funktionen följande: med stöd av .NET Remoting-infrastrukturen skickar klientprocessen ett meddelande till serverprocessen och får ett svar [2] [3] .
.NET Remoting tillåter en applikation att skapa ett objekt (kallat ett fjärrobjekt ) tillgängligt inom fjärrgränserna och som finns i applikationsdomänen inom en process, i en annan process som körs på den datorn, eller till och med på en annan dator som är ansluten till ett nätverk [4 ] . .NET Remoting -processen innehåller en förfrågningsavlyssnare för ett objekt i serverapplikationsdomänen . På klientsidan dirigeras alla förfrågningar till ett fjärrobjekt av .NET Remoting-runtime genom objekt Channelsom är omslag för transportlagerfaciliteter som TCP- strömmar, HTTP- strömmar och namngivna rör . Som ett resultat av detta skiljer sig förfrågningar till fjärrobjekt för klientkod inte från lokala samtal, och genom att skapa en instans av det önskade Channel-objektet kan en .NET Remoting-applikation överföras till ett annat kommunikationsprotokoll utan omkompilering. Själva körtiden utför stegen att serialisera och sortera objekt i miljön mellan klient- och serverapplikationsdomänerna [4] .
.NET Remoting gör referensen till det avlägsna (fjärrbara) objektet tillgänglig för klientapplikationen, som sedan vidarebefordrar förfrågningar till fjärrobjektinstansen som om det vore ett lokalt objekt [4] . Själva exekveringen av koden sker dock på serversidan. Fjärrobjektet har identifierare i form av en aktiverings -URL . Beroende på konfigurationen av serverprocessen skapas en instans av fjärrobjektet vid anslutning med URL-data [5] i det ögonblick då en länk skapas till fjärrobjektet eller vid den första åtkomsten till fjärrobjektet. En lyssnare för ett objekt skapas av .NET Remoting-runtime när servern registrerar en kanal som kommer att användas för att ansluta till fjärrobjektet. På klientsidan skapar ramverket för .NET Remoting ett platshållarobjekt ( proxy), som är en pseudoinstans av objektet som ersätts. Den implementerar inte funktionaliteten hos ett fjärrobjekt, men tillhandahåller ett liknande gränssnitt, som omdirigerar alla förfrågningar till serverobjektet och returnerar resultaten från det till klienten. Som en konsekvens måste .NET Remoting-ramverket ha metadata som beskriver det offentliga gränssnittet för fjärrobjektet för att kunna skapa en proxy. Detta kan göras genom att statiskt länka till sammansättningen som innehåller metadata vid kompilering, eller genom att dynamiskt hämta metadata i form av WSDL eller ett proprietärt format utvecklat av Microsoft.
Under exekvering av en fråga serialiseras alla metodanrop som riktas till objektet, inklusive metodidentifieraren och alla parametrar som skickas, till en byteström och skickas genom en protokollspecifik kommunikationskanal till det mottagande proxyobjektet på serversidan (" marshaled ") . . Överföringen sker genom att skriva data till kanalens transportingång [5] . På serversidan läser proxyn dataströmmen från pipens utgång och gör ett fjärranrop för klienten. Resultaten serialiseras och skickas genom ett rör till klienten, där proxyn läser resultatet och skickar det till den anropande applikationen [5] .
Om ett fjärrobjekt behöver ge en återuppringning till ett klientobjekt måste klientåteruppringningsobjektet markeras som fjärranrop och .NET Remoting-infrastrukturen måste konfigureras för att skapa en lyssnare för det [5] . Servern kan ansluta till den via en annan kanal eller genom en befintlig, om anslutningen som den är baserad på stöder dubbelriktad kommunikation [5] . En kanal kan vara sammansatt av flera kanalobjekt, kanske till och med med olika transportmekanismer. Ett system baserat på .NET Remoting kan alltså bestå av flera delsystem sammankopplade av heterogena nätverk kopplade till varandra, inklusive Internet [5]
.NETTO | |
---|---|
Genomföranden | |
Arkitektur | |
Infrastruktur | |
Microsofts språk | |
Andra språk | |
Windows Foundations | |
Komponenter | |
Jämförelser |
|
Framtida teknologier | |
Informationsresurser |