Newsgroup: it.comp.lang.c++
Titolo: Forse OT: Java <-> C++ via RMI

Forse non OT, vedete oltre :-)
Devo realizzare un'applicazione client server con client Java. Per il 
server penso di orientarmi su C++ per ragioni di efficienza e di mie 
consoscenze/esperienza personali.
Il problema che vi sottopongo e' nella comunicazione tra i due:
ovviamente potrei scrivere le classi in oggetto separatamente in 
versione Java e C++, poi farmi un piccolo protocollo di basso livello 
per la comunicazione tra le due componenti; probabilmente sarebbe la 
cosa piu' semplice, ma di certo non la migliore dal punto di vista della 
manutenzione.
L'altra strada e' quella di usare una qualche cosa tipo CORBA, RMI, RPC, 
SOAP, ecc...
Il vantaggi che vorrei trarre da questa soluzione sono:
_ definire le classi una volta sola (es: in IDL con CORBA, ma va bene 
anche XML o qualunque altro linguaggio "comune"), poi derivare 
automaticamente le due versioni C++ e Java (senza dovere pertanto 
mantenerle manualmente in sincronia);
_ lavorare ad alto livello senza perdere tempo a sviluppare (ed 
aggiornare) il protocollo di cui sopra;
_ eventualmente (ma e' un bonus) avere la persistenza di tali oggetti 
(se possibile in un DB SQL, se no va bene lo stesso).
Ora la domanda e': cosa usereste voi?
I requisiti che ho sono (in ordine di importanza)
_ che il prodotto/libreria in questione sia stabile, possibilmente free 
e che non venga dismesso tra un po' di tempo;
_ che la comunicazione possa avvenire criptata (una o piu' porte TCP 
aperta sul  server, alla/e quale/i i client si connettono);
_ autenticazione dei client (con vari livelli di permessi, ma questi 
immagino di dovermeli gestire io);
_ che il lato server sia multipiattaforma e multicompilatore (non solo 
per rientrare IT :-);
_ che la comunicazione sia il piu' efficiente possibile.
Qualcuno ha esperienze in merito?
  bye & Thanks
	av.

[...]
Non ho mai realizzato un'applicazione come la tua, ma ti segnalo
un'implementazione di CORBA open source, ACE TAO.
http://www.cs.wustl.edu/~schmidt/TAO.html
Spero che possa servire.
Ciao, Ugo

 Spero che possa servire.
Grazie. In effetti, dopo un po' di ricerche, ero indeciso tra TAO e 
omniORB, che mi sono sembrate due soluzioni con "features" analoghe e 
superiori a tutti i concorrenti.
Alla fine ho optato per omniORB solo perche' ho letto che e' un ordine 
di grandezza piu' piccolo (in termini di download, ma soprattutto di 
dimensione delle librerie che vanno ridistribuite): dopo un paio di 
giorni che ci litigo, sono riuscito a mettere in sieme un banale esempio 
(stile "Hello world") che funziona.
Se poi avro' problemi, penso che passare da omniORB a TAO non dovrebbe 
essere un trauma.
Cosi' a margine: avevo studiato CORBA sulla carta molti anni fa (erano 
ancora i '90 e una delle poche implementazioni era SOM di IBM, oggi 
defunto); mi sembra che da allora, a suon di 
aggiunte/modifiche/ripensamenti l'abbiano complicato parecchio, ma forse 
e' solo che non ho ancora una visione di insieme del sistema.
  bye & Thanks
	av.

 superiori a tutti i concorrenti.
Ti consiglio anche un'occhiata ad ICE 
http://www.zeroc.com/ice.html
Conosco aziende che lo usano per sviluppare sistemi distribuiti con 
requisiti di performance e scalabilità (audio/video real time).
Bye
Jarod