|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 498
|
Analogo di WCF per Java
Buongiorno a tutti,
esiste una tecnologia di riferimento per la comunicazione fra sistemi, analoga alla WCF (Windows Communication Foundation) di .NET, per Java? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
AHAHAHAHAHAH
![]() ![]() in teoria ci sarebbe RMI ![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jul 2005
Messaggi: 291
|
Pur non conoscendo (io) WCF, che te ridi?
RMI è un peletto più di teoria, e devo dire che è fatto veramente bene avendoci fatto qualche progetto, se invece che comunicazione punto punto serve qualcosa per il group multicast/membership c'è la libreria JGroups. Con RMI ti crei l'interfaccia dell'oggetto remoto che estende una data interfaccia Codice:
public interface IMioOggetto extends Remote{ public void op1() throws RemoteException; //eccetera, puoi usare tutti gli oggetti che implementino Serializable, che implementino Remote o tipi primitivi } Codice:
public class MioOggetto extends UnicastRemoteObject implements IMioOggetto{ public MioOggetto() throws RemoteException{ } public void op1() throws RemoteException{ //le tue operazioni } } Codice:
Registry reg=LocateRegistry.getRegistry("la macchina su cui sta il registry",666); //porta 666 reg.bind("NomeLogicoDelTuoOggetto",new MioOggetto()); Codice:
Registry reg=LocateRegistry.getRegistry("la macchina su cui sta il registry",666); //porta 666 IMioOggetto imo=reg.lookup("NomeLogicoDelTuoOggetto"); imo.op1(); //uso dell'oggetto Informarsi prima di parlare (ridere) please (non ho fatto alcun confronto tra WCF e RMI/JGroups non conoscendo WCF)
__________________
CPU: Intel Core 2 Quad Q6600 - Mobo: Asus P5E - RAM:4x2GB DDR2 - sk video: Power Color ATI Radeon HD3870 - HD:Western Digital 750GB |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2007
Città: Bergamo
Messaggi: 307
|
Se ho capito cos'è WCF (e non ne sono affatto sicuro) potresti provare con CORBA.
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
WCF è un'implementazione degli standard WS-*.
Un equivalente è JAX-WS |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 498
|
Trovo più che appropriata la locuzione "in teoria"
![]() Però, abbi pazienza, anche a me non risulta, ma al contempo reputo difficile che, a livello di Java EE o con altro framework JCP, nessuno abbia pensato ad una API che risolve gli stessi problemi affrontati (reputo intelligentemente, poi è chiaro che ognuno ha le sue opinioni) da WCF. |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 498
|
Quote:
Comunque grazie per il suggerimento ![]() |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 498
|
Sono convinto che sia un'ottima risposta, ma siccome conosco abbastanza bene .NET, ma MOLTO meno Java EE, non so interpretarla
![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
WCF é piú del singolo WS-*, CORBA o altro... e tutto insieme
![]() lo stesso servizio puó essere esposto come web-service, remoter o essere pubblicato tramite XML o JSON in risposta a richieste REST ![]() |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Quote:
Un client può comunicare con un enterprise java bean che rappresenti un servizio via soap, via http, via rmi, via praticamente tutto. WCF mi ricorda molto questo tipo di piattaforma di sviluppo, solo un po' più in piccolo.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 498
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
No. Ma trovi tutto nel capitolo sugli EJB nel meraviglioso manuale di Sun.
http://java.sun.com/javaee/5/docs/tutorial/doc/ [Edit] No, che io sappia. Ma io sappia solo le basi di Java EE.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
![]() premesso che ho lavorato piu volte con RMI avrei qualche domanda: 1) come reagisce un'applicazione basata su RMI se un client malizioso cerca di sopraffare le capacitá di handling del server? per esempio se un client effettua contemporaneamente 20 chiamate passando a ciascuna un array da 1 gigabyte, oppure se passa al server un input di dimensioni lineari in N laddove il server é costretto ad eseguire un algoritmo di complessitá esponenziale in N. 2) come si fa ad imporre restrizioni di sicurezza sulle chiamate che un client puó fare? inoltre devo implementarmi da solo il mio meccanismo di autenticazione? 3) piu in generale, come faccio ad identificare la connessione da cui proviene una certa chiamata? la documentazione del metodo RemoteServer.getClientHost() non assicura nulla sull'unicitá della stringa restituita, la quale dovrebbe essere usata piu che altro per motivi di logging immagino. 4) come faccio a fare chiamate asincrone? |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Se avessi un dubbio su RMI ti assicuro che non lo risolverei leggendo un forum.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Il pieno supporto agli standard WS-* garantisce la compatibilità con altri linguaggi (certo sperare di usare il WSHttpBinding da gsoap è un utopia...). Sinceramente mi sfugge quale sarebbe l'altra parte di WCF che non sia la sezione di comunicazione. |
|
![]() |
![]() |
![]() |
#19 | |
Member
Iscritto dal: Jul 2005
Messaggi: 291
|
Quote:
1) Attacchi di tipo (D)DOS son sempre presenti in tutte le tecnologie 2) RMI è solo un metodo per chiamare remotamente metodi, e basta, tutto il resto è o da cercare già implementato in qualche framework o farselo con le proprie manine 3) Vedi sopra 4) Codice:
public interface IChiamateAsincrone extends Remote{ public void chiamataAsincrona() throws RemoteException; } } public class ChiamateAsincrone extends UnicastRemoteObject implements IChiamateAsincrone{ public ChiamateAsincrone() throws RemoteException{ } public void chiamataAsincrona() throws RemoteException{ (new Thread(new Runnable(){ public void run(){ //Codice dell'operazione } })).start(); } }
__________________
CPU: Intel Core 2 Quad Q6600 - Mobo: Asus P5E - RAM:4x2GB DDR2 - sk video: Power Color ATI Radeon HD3870 - HD:Western Digital 750GB |
|
![]() |
![]() |
![]() |
#20 | ||||
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
Quote:
Quote:
Quote:
|
||||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:16.