.NET fjernbetjening

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 7. januar 2018; checks kræver 8 redigeringer .

.NET Remoting er en komponent skabt af Microsoft . API til kommunikation mellem processer . Microsofts implementering af SOAP -protokollen ( webtjenester ). Udgivet i 2002 med version 1.0 af .NET Framework . Det er en af ​​en række teknologier fra Microsoft, der begyndte i 1990 med den første version af OLE til 16-bit Windows . Mellemliggende trin i udviklingen af ​​sådanne teknologier var COM , udgivet i 1993 og forfinet i 1995 under navnet COM-95, DCOM , udgivet i 1997 (og omdøbt til ActiveX), og COM+ med sin Microsoft Transaction Server (MTS), udgivet i 2000 [1] . I øjeblikket er .NET Remoting erstattet af WCF , som er en del af .NET Framework 3.0 .

Ligesom alle medlemmer af denne familie og lignende teknologier, såsom CORBA og RMI , er .NET Remoting-funktionen som følger: med støtte fra .NET Remoting-infrastrukturen sender klientprocessen en besked til serverprocessen og modtager et svar [2] [3] .

Oversigt

.NET Remoting gør det muligt for en applikation at oprette et objekt (kaldet et fjernbart objekt ) tilgængeligt inden for fjerngrænserne og placeret i applikationsdomænet inden for én proces, i en anden proces, der kører på den computer, eller endda på en anden computer, der er forbundet med et netværk [4 ] . .NET Remoting-processen indeholder en anmodningslytter for et objekt i serverapplikationsdomænet . På klientsiden bliver alle anmodninger til et eksternt objekt dirigeret af .NET Remoting-runtime gennem objekter Channel, der er wrappers for transportlagsfaciliteter såsom TCP - streams, HTTP -streams og navngivne rør . Som et resultat heraf adskiller anmodninger til eksterne objekter om klientkode sig ikke fra lokale opkald, og ved at oprette en instans af det ønskede Channel-objekt kan en .NET Remoting-applikation overføres til en anden kommunikationsprotokol uden genkompilering. Selve kørselstiden udfører trinene til at serialisere og sortere objekter i miljøet mellem klient- og serverapplikationsdomænerne [4] .

.NET Remoting gør referencen til det eksterne (fjernbare) objekt tilgængelig for klientapplikationen, som derefter videresender anmodninger til den eksterne objektinstans, som om det var et lokalt objekt [4] . Selve eksekveringen af ​​koden foregår dog på serversiden. Fjernobjektet har identifikatorer i form af en aktiverings- URL . Afhængigt af konfigurationen af ​​serverprocessen oprettes en forekomst af det eksterne objekt, når der oprettes forbindelse ved hjælp af URL-dataene [5] i det øjeblik, hvor der oprettes et link til det fjerne objekt, eller i det øjeblik, hvor den første adgang til fjernobjektet er foretaget. En lytter til et objekt oprettes af .NET Remoting-runtimen, når serveren registrerer en kanal, der skal bruges til at oprette forbindelse til fjernobjektet. På klientsiden opretter .NET Remoting-frameworket et pladsholderobjekt ( proxy), som er en pseudo-forekomst af objektet, der erstattes. Det implementerer ikke funktionaliteten af ​​et eksternt objekt, men giver en lignende grænseflade, der omdirigerer alle anmodninger til serverobjektet og returnerer resultaterne fra det til klienten. Som følge heraf skal .NET Remoting-frameworket have metadata, der beskriver den offentlige grænseflade for det eksterne objekt for at kunne oprette en proxy. Dette kan gøres ved statisk at linke til samlingen, der indeholder metadataene på kompileringstidspunktet, eller ved dynamisk at hente metadataene i form af WSDL eller et proprietært format udviklet af Microsoft.

Under udførelsen af ​​forespørgslen serialiseres ethvert metodekald, der er rettet til objektet, inklusive metode - id'en og eventuelle parametre, der sendes, til en bytestrøm og sendes gennem en protokolspecifik kommunikationskanal til det modtagende proxy-objekt på serversiden (" marshaled "). . Overførslen sker ved at skrive data til kanalens transportindgang [5] . På serversiden læser proxyen datastrømmen fra outputtet af pipen og foretager et remote bean call på vegne af klienten. Resultaterne serialiseres og sendes gennem et rør til klienten, hvor proxyen læser resultatet og sender det til den kaldende applikation [5] .

Hvis et eksternt objekt skal give et tilbagekald til et klientobjekt, skal klienttilbagekaldsobjektet markeres som fjernbart, og .NET Remoting-infrastrukturen skal konfigureres til at oprette en lytter til det [5] . Serveren kan oprette forbindelse til den via en anden kanal eller gennem en eksisterende, hvis den forbindelse, den er baseret på, understøtter tovejskommunikation [5] . En kanal kan være sammensat af flere kanalobjekter, måske endda med forskellige transportmekanismer. Et system baseret på .NET Remoting kan således bestå af flere delsystemer forbundet af heterogene netværk forbundet med hinanden, herunder internettet [5]

Noter

  1. Cornella-Dorda, Santiago. Komponentobjektmodel og relaterede  egenskaber . Carnegie-Mellon Software Engineering Institute (13. marts 2001). Arkiveret fra originalen den 15. maj 2008.
  2. Scott McLean, James Naftel og Kim Williams. Microsoft .NET fjernbetjening  . -Microsoft Press, 2002.
  3. Ingo Rammer og Mario Szpuszta. Avanceret .NET fjernbetjening  . — Apress , 2005.
  4. 1 2 3 .NET Remote  Oversigt . Hentet 23. oktober 2007. Arkiveret fra originalen 30. juni 2007.
  5. 1 2 3 4 5 6 . .NET Remoting Architecture  . Hentet 23. oktober 2007. Arkiveret fra originalen 8. juni 2007.