Newsgroup: it.comp.java
Titolo: Integrare .NET con Java.

Salve ng,
sono alle prese con l'ennesimo dubbio amletico. Sto valutando la possibilità 
di  scegliere tra una soluzione full Java (di tipo client-server) rispetto 
ad una Java + .NET in cui Java (più precisamente J2EE) verrebbe utilizzato 
lato server e .NET lato client.
Come sistema di integrazione stavo pensato ai web services, ma ho qualche 
perplessità. La prima deriva dalla necessità di scambiare tra i tier classi 
arbitrariamente complesse (anche se saranno in realtà Java Bean) e 
collezioni delle stesse: fate conto che non ho a disposizione le ultime api 
di Java in materia, ma sono a J2EE 1.4 in ambiente websphere. La seconda è 
relativa all'efficienza di questo approccio: ha senso usare i ws per uno 
scambio di dati continuo tra client e server ?
Saluti e grazie,
    Scorpio. 


Se usi una soluzione Java client e Java server puoi usare RMI che ha 
alcuni vantaggi su web services.
RMI è molto piu' confortevole da usare.
Se il metodo remoto lancia un'ecezione questa viene serializzata e 
propagata al client.
In breve con i web services non puoi passare oggetti, con RMI puoi 
passare qualsiasi oggetto, sia per valore o per riferimento.
Per esempio con RMI puoi fare:
class Callback export Remote{
   void ciao() throws RemoteException;
}
codice client:
  Remote server = ...;
  Callback callback = ...;
  // qui faccio una chiamata ad un server remoto
  // passandogli il riferimento ad un oggetto
  // locale che verrà chiamato dal server
  server.chiamamiQuandoHaiFinito(callback);
Poi un'altra cosa che puoi fare con RMI è far migrare il codice da una 
JVM all'altra.
D'altra parte i Web Services hanno il vantaggio di essere accessibili da 
linguaggi diversi da Java.
In teoria un domani puoi creare un'altro client in un'altro linguaggio 
che utilizza lo stesso server.
-- 
Andrea Francia
http://www.andreafrancia.it/

 utilizza lo stesso server.
Sì, diciamo che l'idea sarebbe quella di utilizzare .NET perchè su un PDA 
con Mobile 2005 si fa prima a sviluppare una semplice gui in .NET che a 
cercare una JVM compatibile...
Scorpio.

 cercare una JVM compatibile...
Buon punto a favore di .net.
Quanto č complessa l'API del server, quante funzioni espone?
E' proprio necessario passare oggetti interi? In quante funzioni?


 E' proprio necessario passare oggetti interi? In quante funzioni?
Mah, proprio per concentrare il tutto la strategia che pensavo di adottare 
era quella di creare un unico endpoint che,
con un pattern data transfer hashmap, ricevesse tutti i parametri di 
competenza, ricostruisse la chiamata e gli oggetti Java di compentenza, e 
rispondesse al client sempre via hashmap.
Un collo di bottiglia, lo so, ma all'inizio puň stare in piedi.
Scorpio

 Scorpio.
Senti per serializzare e deserializzare io ho usato json...
http://www.json.org/
molto più leggero di XML e più intuitivo da usare... funziona per una 
miriade di linguaggi
Ciao

 Ciao
Gracias amigo. Lo guardo subito :-)
Scorpio. 

 passare qualsiasi oggetto, sia per valore o per riferimento.
Un webservice consente di passare e ritornare oggetti i quali vengono 
serializzati/deserializzati in formato XML.
Questo grazie a JAXB e agli schema XML.

 Questo grazie a JAXB e agli schema XML.
Che vergogna, ho sbagliato in pieno.
Almeno ho imparato una cosa nuova.
