Programmering

Interprosess kommunikasjon i Java

Spørsmål: Hvordan kan to Java-prosesser (to JVMer) på samme datamaskin samhandle - det vil si lese hverandres metoder og utveksle objekter? Jeg bruker RMI, men det ser ut til at en enklere løsning burde eksistere.

EN: Interprosesskommunikasjon er et viktig programmeringsemne, og Java, som ethvert seriøst programmeringsmiljø, adresserer problemet. En tilnærming, som du allerede har lært, er RMI. Et nært beslektet alternativ er CORBA. CORBA lar deg utveksle objekter og dynamisk påkalle metoder ved kjøretid. (For en rask CORBA-opplæring, se Ressursdelen nedenfor.)

I likhet med RMI kan CORBA imidlertid være overkill under noen omstendigheter. For enkel kommunikasjon mellom prosesser kan du bruke vanlige gamle stikkontakter til å kommunisere mellom Java-applikasjoner. Objekter kan serieiseres og overføres over stikkontakter ved bruk av ObjectInputStream og ObjectOutputStream klasser. Selv om stikkontakter er enklere enn RMI eller CORBA, er ingenting definert for deg, så du må definere alt. Dette betyr at du må definere dine egne kommunikasjonsprotokoller, skrive dine egne oppslags- og tilkoblingstjenester, ta vare på sikkerheten og så videre. (For ressurser om en god introduksjon til Java-sokkelprogrammering.)

Jeg er nesten redd for å nevne det, men du kan alltid ansette låse filer for kommunikasjon. Låsefiler er en primitiv metode for kommunikasjon mellom prosesser på samme system. Konseptuelt er låsefiler enkle: å kommunisere, to eller flere prosesser leses fra og skriver til en velkjent fil på filsystemet. Fordi dette er en så primitiv tilnærming, blir det ofte mislikt og ikke betraktet som en legitim form for kommunikasjon mellom prosesser.

Tony Sintes er seniorkonsulent i ObjectWave Corporation som spesialiserer seg på telekommunikasjon. Tony har jobbet med Java siden 1997 og er en Sun-sertifisert Java 1.1-programmerer og Java 2-utvikler.

Lær mer om dette emnet

  • "Introduksjon til CORBA" fra Java Developer Connection

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

  • "Java Programming Language Basics, Part 2Lesson 1Socket Communications", også fra Java Developer Connection, gir en god veiledning om socket programmering

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

Denne historien, "Interprocess communication in Java" ble opprinnelig utgitt av JavaWorld.

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