Programmēšana

Starpprocesu komunikācija Java

J: Kā divi Java procesi (divi JVM) vienā datorā var mijiedarboties - tas ir, lasīt viens otra metodes un apmainīties ar objektiem? Es izmantoju RMI, bet šķiet, ka vajadzētu pastāvēt vienkāršākam risinājumam.

A: Starpprocesu komunikācija ir svarīga programmēšanas tēma, un Java, tāpat kā jebkura nopietna programmēšanas vide, risina šo problēmu. Viena pieeja, kā jūs jau uzzinājāt, ir RMI. Cieši saistīta alternatīva ir CORBA. CORBA ļauj izpildlaikā apmainīties ar objektiem un dinamiski izmantot metodes. (Lai iegūtu ātru CORBA apmācību, skatiet tālāk esošo sadaļu Resursi.)

Tomēr, tāpat kā RMI, dažos gadījumos CORBA var būt pārspīlēta. Vienkāršai saziņai starp procesiem varat izmantot vienkāršas vecās kontaktligzdas, lai sazinātos starp Java lietojumprogrammām. Objektus var seriālizēt un pārsūtīt pa kontaktligzdām, izmantojot ObjectInputStream un ObjectOutputStream klases. Lai gan kontaktligzdas ir vienkāršākas nekā RMI vai CORBA, jums nekas nav noteikts, tāpēc jums viss būs jādefinē. Tas nozīmē, ka jums būs jādefinē savi sakaru protokoli, jāuzraksta savi uzmeklēšanas un savienošanas pakalpojumi, jārūpējas par drošību utt. (Lai iegūtu labu ievadu Java ligzdu programmēšanā, skatiet resursus.)

Es gandrīz baidos to pieminēt, bet jūs vienmēr varētu nodarbināt bloķēt failus saziņai. Bloķēšanas faili ir primitīva saziņas metode starp vienas sistēmas procesiem. Konceptuāli bloķēšanas faili ir vienkārši: sazināties, divi vai vairāki procesi tiek nolasīti un rakstīti uz labi zināmu failu sistēmas failu. Tā kā šī ir tik primitīva pieeja, tā bieži tiek noraizēta un netiek uzskatīta par likumīgu starpprocesu komunikācijas veidu.

Tonijs Sintess ir korporācijas ObjectWave vecākais konsultants, kurš specializējas telekomunikāciju jomā. Tonijs strādā ar Java kopš 1997. gada un ir Sun sertificēts Java 1.1 programmētājs un Java 2 izstrādātājs.

Uzziniet vairāk par šo tēmu

  • "Ievads CORBA" no Java Developer Connection

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

  • "Java programmēšanas valodas pamati, 2. daļa" 1.Socket Communications ", kas arī no Java Developer Connection, sniedz labu apmācību par ligzdu programmēšanu.

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

Šo stāstu "Starpprocesu komunikācija Java" sākotnēji publicēja JavaWorld.

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