05. maj 2002 - 12:00
Der er
1 løsning
socket, rmi, corba
jeg er ved at karakterisere samt finde fordele / ulemper ved understående punkter, i forbindelse med noget skole projektarbejde.
Socket
• baseret på streams
• programmør skal selv definere en protokol
• marshalling er programmørens ansvar
RMI
• abstraktion som ligger ovenpå socket
• RMI varetager marshalling
• baseret på distribuerede metodekald, som er transparante for brugeren
• Java only
• Der skal være min én rmiregistry i netværket ?
CORBA
• som RMI
• sproguafhængig vha. IDL
• alle enheder (er en enhed både klient og server ??) skal køre en orb ?
Kan du komme med punkter som derudover kunne være relevante at komme ind på ?
Samt af/bekræfte de 2 spørgsmål.
mht til dine 2 spørgsmål:
Man behøver ikke et RMI registry, men det er frygteligt besværligt, ikke at have en, så praktisk set skal der være en registry service.
I et CORBA setup behøver man kun en ORB på serveren, men hvis du distribuerer en server på flere maskiner, flere services, skal de separate orbs kunne tale sammen via IIOP.
Derudover:
CORBA tilbyder en servicearkitektur, hvoraf ikke alle dele af en ORB skal være implementeret for at man har en ORB. Ikke alle for eksempel tilbyder dynamisk IDL.
CORBA har et set af services, som bla inkluderer naming, persistence, lifecycle management, transaktioner, etc, hvilket gør CORBA større i et ordentligt distribueret miljø.
RMI kan transporteres via JRMP (Java Remote Method Protokol) eller via RMI-IIOP. RMI-IIOP giver transport via ORB protokoller. Det er iøvrigt et krav for J2EE containere at implementere dette.