PDA

View Full Version : [Java]comunicazione tra applicazioni in locale


Cryingcrow
07-04-2005, 20:18
Salve a tutti,

Per un progetto universitario ho la necessità di creare una specie di protocollo di comunicazione fra più processi separati senza l'utilizzo di socket e derivati.

In pratica ho due interfaccie grafiche diverse che devono comunicare in locale sulla stessa macchina.

Ad esempio la prima deve mandare una stringa che venga intercettata dalla seconda.

Diciamo un applicazione client/server senza però l'utilizzo di socket.

Ho cercto un pò su internet ma non ho trovato niente che mi permetta di fare questo.

Utilizzando i vari canali di stream riesco a fr comunicare due processi solamente utilizzando un'applicazione che lì genera e che ovviamente condivide lo stesso canale, ma con due applicazioni differenti?

Qualche idea?

Magari anche qualche semplice esempio o qualche link utile, sono un pò in crisi, e il bello è che penso sia piuttosto semplice come realizzazione, ma non ho trovto ancor una soluzione :(

grazie a tutti in anticipo...

kingv
07-04-2005, 21:42
dato che shared memory e altri simpatici ammenicoli in java ti sono preclusi io non vedo altra alternativa che:

- socket
- rmi o corba o altro protocollo di alto livello che comunque ha una implementazione sottostante che si basa su socket
- un processo scrive su un determinato file e un altro legge (un po' primitivo ma potrebbe funzionare)

Cryingcrow
07-04-2005, 22:01
bella fregatura...
ma con shared memory e altri ammenicoli cosa intendi? perchè mi sarebbero preclusi?

Ma le pipedOutput/inputStream come cavolo funzionano, ho capito che servono per lavorare con i thread(è un progetto di sistemi operativi) però non ho ben capito il loro reale utilizzo..

kingv
07-04-2005, 22:18
intendevo che ad esempio programmando in C su linux (ma penso anche su windows) hai accesso a differenti meccanismi per far colloquiare due processi in esecuzione sulla stessa macchina. In Java non puoi utilizzare esplicitamente dei meccanismi propri del sistema operativo su cui la jvm è in esecuzione per cui il "campionario" è limitato agli esempio che ti ho fatto prima.

PipedInput/PipedOutputStream possono essere usati a livello di thread differenti nella stessa VM, non di processi differenti.

Cryingcrow
07-04-2005, 22:32
ma quindi in pratica mi hanno proposto di fare un progetto piuttosto irrealizzabile?

Non penso che il docente stesse pensando ad un leggere e scrivere su file, troppo macchinoso e inutile.

Cavolo pensavo fosse una cosa semplice.

Del resto non è neanchè possibile che stesse pensando all'utilizzo di una sola jvm, di un solo programma per intenderci, anche perchè nelle richieste è esplicita la necessità di individuare la presenza dinamica di nuovi client che si "connettono".

uhm...

Grazie della risposta comunque!

Se vi vengono in mente idee non esitate...

Cryingcrow
08-04-2005, 00:51
ops...ho sbaià :-/

sliver80
09-04-2005, 16:35
programmazione ad agenti, protocollo Fipa, piattaforma Jade e passa la paura ;)

^TiGeRShArK^
09-04-2005, 19:05
si può utilizzare jade.... ma alla fine non capisco proprio il divieto dei socket.....
anke perkè se nn sbaglio jade alla fine basa tutto proprio su dei socket.....