Programiranje

Medprocesne komunikacije v Javi

V: Kako lahko dva Java procesa (dva JVM) v istem računalniku sodelujeta - to pomeni, da bereta metode drug drugega in izmenjujeta predmete? Uporabljam RMI, vendar se zdi, da bi morala obstajati preprostejša rešitev.

A: Medprocesna komunikacija je pomembna programska tema in tudi Java, tako kot vsako resno programsko okolje, obravnava težavo. Kot ste se že naučili, je eden od pristopov RMI. Tesno povezana alternativa je CORBA. CORBA vam omogoča izmenjavo predmetov in dinamično priklic metod med izvajanjem. (Za hitro vadnico CORBA glejte spodnji razdelek Viri.)

Vendar je lahko podobno kot RMI v nekaterih okoliščinah tudi CORBA pretirana. Za preprosto medprocesno komunikacijo lahko za komunikacijo med aplikacijami Java uporabite navadne stare vtičnice. Predmeti se lahko serializirajo in prenesejo v vtičnice z uporabo ObjectInputStream in ObjectOutputStream razredih. Čeprav so vtičnice preprostejše od RMI ali CORBA, za vas ni določeno nič, zato boste morali določiti vse. To pomeni, da boste morali sami določiti svoje komunikacijske protokole, napisati lastne storitve iskanja in povezovanja, skrbeti za varnost itd. (Za dober uvod v programiranje vtičnic Java glejte Viri.)

Skoraj se bojim omeniti, vendar bi lahko vedno zaposlili zaklepanje datotek za komunikacijo. Datoteke za zaklepanje so primitiven način komunikacije med procesi v istem sistemu. Konceptualno so datoteke za zaklepanje preproste: za komunikacijo dva ali več procesov bereta in pišeta v dobro znano datoteko v datotečnem sistemu. Ker je to tako primitiven pristop, se nanj pogosto namrščajo in se ne šteje za legitimno obliko medprocesne komunikacije.

Tony Sintes je višji svetovalec v podjetju ObjectWave Corporation, ki je specializiran za telekomunikacije. Tony sodeluje z Javo od leta 1997 in je programer Java 1.1 in razvijalec Java 2 s certifikatom Sun.

Preberite več o tej temi

  • "Uvod v CORBA," iz povezave Java Developer Connection

    //developer.java.sun.com/developer/onlineTraining/corba

  • "Osnove programskega jezika Java, 2. del Lekcija 1Socket Communications", prav tako iz povezave Java Developer Connection, nudi dobro vadnico o programiranju vtičnic

    //developer.java.sun.com/developer/onlineTraining/Programming/BasicJava2/socket.html

To zgodbo "Medprocesne komunikacije v Javi" je prvotno objavil JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found