Avatar billede a/s Nybegynder
17. marts 2001 - 11:00 Der er 7 kommentarer og
1 løsning

Remote Method Invocation Daemon

Er der en der kan give mig en dansk forklaring på begrebet \"Remote Method Invocation Daemon\" (RMID) ? Tak
Avatar billede languy Nybegynder
20. marts 2001 - 18:42 #1
Remote Method Invocation (RMI) vil sige at du kalder nogle metoder, der befinder sig på en anden maskine end der hvor de kaldes fra.

Avatar billede a/s Nybegynder
20. marts 2001 - 19:02 #2
Hej Languy (og andre)...
Havd med Deamon - og hele sætningen ?
Avatar billede a/s Nybegynder
21. marts 2001 - 16:03 #3
Hej Languy,
har du glemt mig ???
Avatar billede a/s Nybegynder
06. april 2001 - 11:47 #4
Er der virkelig engen der kan hjælpe ???
Avatar billede a/s Nybegynder
06. april 2001 - 11:47 #5
Er der virkelig engen der kan hjælpe ???
Avatar billede a/s Nybegynder
22. juni 2001 - 12:47 #6
Er der ingen ekspert der kan hjælpe ?
Avatar billede logical Nybegynder
22. juni 2001 - 21:25 #7
Jo, men gamle spørgsmål drukner i nye når der nu er 215 åbne.

RMI (Som er grundbegrebet) betyder Remote Method Invocation, som languy også siger. Dvs. Du har et program på en maskine, som ønsker at kalde noget som ligger på en anden maskine. Nu siger jeg godt nok maskine, men det kan også gælde hvis man kalder mellem to \"virtuelle maskiner\" eller JVM som java fortolkeren kaldes.

Hvis du kender begrebet Remote Procedure Call, er RMI det samme bare objektorienteret. Hvis du ikke kender det, er fidusen nogenlunde følgende:

Når man udvikler client/server løsninger vil der typisk være en række klienter, som ønsker at forbinde sig til en fælles server, som forstår at behandle en række service. I objektorientering vil vi som regel invokere en metode på et remote object. Det der skal ske er, at vi pakker vores argumenter ind (ved hjælp af serialisering) og sender via netværket til serveren, som pakker dem ud og gør noget ved det. Evt. svar skal samme vej retur.

For at gøre det så nemt som muligt, skriver man et interface som beskriver hvordan serveren skal opføre sig. Dette interface kan så kompileres med en særlig kompiler (rmic), som så generer et par klasser, som overholder en streng netværksprotokol, men sørger for at data kommer sikkert frem og tilbage. På klient siden kalder man en af disse klasser (kaldet en stub), som så vil kommunikere med en af de andre klasser, som ligger på server klassen (denne kaldes for skel eller skeleton). Skel klassen vil så pakke argumenter ud og kalder en (af dig) nærmere specificeret klasse, som udfører arbejdet.

I bund og grund kan man på klienten kalde en metode forholdsvis simpelt, ala
// obtain remote reference.
SomeRemoteObject obj = ... getAReferenceSomeWay(); // described later.
// Just call methods.
String s = obj.calculateGreeting(6);

På serversiden har man så en klasse, som implementerer metoden:
public String calculateGreeting(int x) {...}

De genererede klasser skaber forbindelse mellem klienten og serveren.

OK, så langt så godt.

For at få det i gang kræves det selvfølgelig at serveren kører. Men klienten skal have fat i en instans af den rigtige klasse, for at kunne gøre dette. Det sker gennem en såkaldt Lookup mekanisme, der finder den rigtige klasse man skal bruge. Det er her RMID kommer ind i billedet, da den er en slags telefonbog i denne sammenhæng.

Når serveren starter op, vil den (typisk) forsøge at kalde en lookupservice, en slags telefonbog, og fortælle den at: 1) Jeg er en rmi-server-service 2) Jeg kalder mig \"xxx\" 3) Man skal bruge denne type klasse for at snakke med mig.

En klient vil ligeså kontakte en lookupservice, og spørge om 1) er der en server-service, der hedder \"xxx\" og 2) Hvordan får jeg forbindelse med den.

RMID er denne telefonbog, som står og er mellemled mellem servere og klienter. Bemærk, man behøver kun een RMID på et netværk selv om man måske både har mange klienter og mange servere.

Var det svar nok?

Avatar billede a/s Nybegynder
24. juni 2001 - 13:31 #8
TUSIND, TUSIND Tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester