Programovanie

Medziprocesová komunikácia v prostredí Java

Otázka: Ako môžu dva procesy Java (dva JVM) na rovnakom počítači interagovať - ​​to znamená vzájomne čítať metódy a vymieňať si objekty? Používam RMI, ale zdá sa, že by malo existovať jednoduchšie riešenie.

A: Medziprocesová komunikácia je dôležitou programátorskou témou a Java, ako každé vážne programovacie prostredie, rieši tento problém. Jedným z prístupov, ako ste sa už dozvedeli, je RMI. Úzko príbuznou alternatívou je CORBA. CORBA vám umožňuje vymieňať si objekty a dynamicky vyvolávať metódy za behu. (Stručný návod CORBA nájdete v časti Zdroje nižšie.)

Avšak rovnako ako RMI, aj CORBA môže byť za určitých okolností nadmerná. Na jednoduchú medziprocesovú komunikáciu môžete na komunikáciu medzi aplikáciami Java použiť staré obyčajné zásuvky. Objekty je možné serializovať a prenášať cez zásuvky pomocou servera ObjectInputStream a ObjectOutputStream triedy. Aj keď sú zásuvky jednoduchšie ako RMI alebo CORBA, nič pre vás nie je definované, takže budete musieť definovať všetko. To znamená, že budete musieť definovať svoje vlastné komunikačné protokoly, napísať svoje vlastné vyhľadávacie a spojovacie služby, postarať sa o bezpečnosť atď. (Dobrý úvod do programovania soketov Java nájdete v časti Zdroje.)

Skoro sa to bojím spomenúť, ale vždy sa dalo zamestnať zamknúť súbory pre komunikáciu. Zamknuté súbory sú primitívnou metódou komunikácie medzi procesmi v rovnakom systéme. Koncepčne sú uzamknuté súbory jednoduché: pri komunikácii dva alebo viac procesov, ktoré čítajú a zapisujú do známeho súboru v súborovom systéme, a zapisujú do neho. Pretože sa jedná o taký primitívny prístup, často sa naňho zamračia a nepovažujú sa za legitímnu formu medziprocesovej komunikácie.

Tony Sintes je senior konzultant v spoločnosti ObjectWave Corporation, ktorá sa špecializuje na telekomunikácie. Tony pracuje s programom Java od roku 1997 a je programátorom Java 1.1 a vývojom Java 2 spoločnosti Sun.

Získajte viac informácií o tejto téme

  • „Introduction to CORBA,“ from the Java Developer Connection

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

  • „Základy programovacieho jazyka Java, časť 2, lekcia 1 ,ocketová komunikácia“, tiež z programu Java Developer Connection, poskytuje dobrý návod na programovanie soketov.

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

Tento príbeh, „Medziprocesová komunikácia v Jave“, bol pôvodne publikovaný spoločnosťou JavaWorld.

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