[Java] Communicatie tussen VM's

Pagina: 1
Acties:

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 21:44

Robtimus

me Robtimus no like you

Topicstarter
Ik ben op zoek naar manieren van communicatie tussen 2 JVM's op dezelfde machine, bij voorkeur zonder eerst via het netwerk te gaan of met files te werken. Oplossingen mogen beperkt blijven tot Linux oplossingen.

Ik weet dat het met Sockets of RMI kan, maar voor zover ik weet gaat dat via de netwerklaag. In dit geval is dat onnodig.
Ik heb al begrepen dat je in C sockets kan maken die dus niet via het netwerk gaan (type AF_UNIX), maar is er ook zoiets in Java?

Opm: de data die ik moet versturen zijn serialized objecten.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
In eerste instantie denk ik toch direct aan RMI; wat is het bezwaar daartegen?
Je schrijft wel dat je geen gebruik wilt maken van de netwerklaag, maar waarom niet?

Wat is verder de relatie tussen de processen die in die 2 JVM's draaien?

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 21:44

Robtimus

me Robtimus no like you

Topicstarter
kasper_vk schreef op 22 maart 2004 @ 14:35:
In eerste instantie denk ik toch direct aan RMI; wat is het bezwaar daartegen?
Je schrijft wel dat je geen gebruik wilt maken van de netwerklaag, maar waarom niet?
Omdat het netwerk wegens communicatie met andere machines zo min mogelijk mag worden belast. Die communicatie heeft alle bandbreedte nodig, niet alleen op de fysieke verbinding, maar het liefst ook in de buffers.
(note: ik ben niet al te bekend met netwerken :o ik gebruik ze alleen maar)
Wat is verder de relatie tussen de processen die in die 2 JVM's draaien?
Client - (distributed) server.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

Als je van netwerk sockets gebruik maakt zijn beide uiteinden aan local-host. De buffers zijn uniek voor elke socket paar, dus je verbuikt heus niet de normale netwerk sockets als je zelf ook sockets wilt gaan gebruiken. Ook verminder je de bandbreedte van je netwerk niet als je loopback netwerk gebruikt.
Als ik jou was zou ik gewoon sockets gebruiken (rmi vind ik kut ;) ), dan kan je later je applicatie in een handomdraai distributed maken mocht dat ooit nodig zijn.

"Beauty is the ultimate defence against complexity." David Gelernter


  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

127.0.0.1 is wel een netwerk-adres maar dat heeft totaal niets te maken met de eventuele netwerkkaart(en). Deze kun je prima gebruiken zonder dat er ook maar 1 byte naar de switch of hub wordt verzonden.

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Idd, wanneer je middels RMI of Sockets tussen 2 VM's communiceert, dan 'daalt' het dataverkeer van de ene VM tot en met de netwerklaag, concludeert daar dat de data naar exact dezelfde machine moet en zal voor de daadwerkelijke communicatie tussen die processen vast wel netjes de hele protocolstack 'afdalen' en weer 'beklimmen', maar daar komt geen netwerkkaart meer bij kijken.

De lagere protocol-lagen dan de transportlaag implementeren dan gewoon een
communicatievorm tussen 2 locale processen.

(ik ben geen echte netwerk expert o.i.d., maar redeneer dit op basis van theorie vanuit mijn opleiding)

[ Voor 14% gewijzigd door kasper_vk op 22-03-2004 16:16 . Reden: disclaimertje ]

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • Macros
  • Registratie: Februari 2000
  • Laatst online: 30-04 09:28

Macros

I'm watching...

Die protocoll stack stelt niet zo heel erg veel voor.
De JavaVM praat dmv SystemCalls met de TCP laag, welke samen met IP is geimplementeerd. Daar wordt opgemerkt dat er niets gerouteerd hoeft te worden en dat het alleen maar naar een ander process gestuurd hoeft te worden. Volgens mij is de snelheid en bandbreedte van je 127.0.0.1 verbinding alleen gelimiteerd van je CPU en je geheugen snelheid.

"Beauty is the ultimate defence against complexity." David Gelernter


  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Macros schreef op 22 maart 2004 @ 16:25:
....
Volgens mij is de snelheid en bandbreedte van je 127.0.0.1 verbinding alleen gelimiteerd van je CPU en je geheugen snelheid.
My thoughts exactly. 8)

Hoe denk de TS er inmiddels over?

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 21:44

Robtimus

me Robtimus no like you

Topicstarter
kasper_vk schreef op 22 maart 2004 @ 16:28:
Hoe denk de TS er inmiddels over?
Dat ie het gemakkelijker krijgt dan verwacht :P
RMI ben ik ook geen fan van, dus sockets it will be.

More than meets the eye
There is no I in TEAM... but there is ME
system specs

Pagina: 1