Hva er en fler vert i Java?

En flernettverksvert er en datamaskin eller annen maskinvare som holder mer enn én IP-adresse. Å ha flere IP-adresser er ikke uvanlig fordi adressen er knyttet til Internett-grensesnittet, ikke maskinen: En datamaskin som har både en Ethernet og Wi-Fi Internett-tilkobling har en annen IP-adresse for hvert grensesnitt. Ved hjelp av en flernettverksdatamaskin kan påvirke hvordan Java Virtual Machines samhandle med hverandre.

RMI

Remote Method Invocation er et Java-programmeringsgrensesnitt som hjelper Java virtuelle maskiner - Java-baserte dataplattformer - gjøre bruk av hverandres programvare. Hvis en utbygger installerer hennes eget program på en Java-maskin, kan hun dele den med andre utviklere og gi dem oppdateringer hun gjør, men det kan ta mye tid. RMI gjør det enklere: Når hun installerer oppdateringer i nettkatalogen, gjør RMI de andre virtuelle maskiner for å få oppdateringer uten utbygger å gjøre noe videre arbeid.

Starte

Hvis du vil kommunisere med en ekstern objekt - et stykke programvare som ligger på en annen Java-maskin - ved hjelp av RMI, er det første trinnet som regel å koble til med en "spire" i en RMI registeret. Den spire inneholder identifiserende data for vertsmaskinen holder fjern objekt, for porten på at verts hvor RMI tar forespørsler om å få tilgang til objektet, og for selve objektet. Den inneholder også en socket fabrikken, som er et RMI program som kontrollerer hvordan Java virtuelle maskiner koble til objektet.

Multihomes og RMI

Når RMI forsøker å gjenopprette et objekt fra en flernettverk vert, blir prosessen mer komplisert. Hvis RMI på Java maskin identifiserer datamaskinen din Wi-Fi-adresse som vert, kan datamaskiner som er koblet til deg i et Ethernet-nettverk ikke bruker RMI å få tilgang til noe på datamaskinen. Du kan stille RMI slik at det gir intranett adresse, men hvis du vil at andre virtuelle maskiner for å få tilgang til din ved både Wi-Fi og Ethernet RMI evne, som fortsatt ikke er riktig oppsett.

Solutions

For å gjøre RMI brukbart uansett hvor andre datamaskiner kobler til verten, bruker socket fabrikken for å kontrollere tilkoblingen. Ved hjelp av en Java variabel kalt ThreadLocal, kan du gi den kontakten fabrikken en IP-adresse som alle datamaskiner som bruker RMI må koble til. Du kan også stille Java, slik at det gir andre datamaskiner med en liste over alle mulige vertsnavn - alle IP-adresser i nettverket - og velger riktig en fra den listen.