Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Java] Passare codice tra cliente e server

    Sto costruendo un programmino server e uno client utilizzando Java RMI.

    Volevo sapere se esiste un modo semplice affinché il client possa passare del codice java al server. Cioè vorrei che il server avesse uno spazio libero per eseguire codice che gli arrivi direttamente dall'applicazione client.

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    "gli arrivi codice" non lo capisco

    in ogni modo tempo fa avevo letto di un modo per caricare delle classi da remoto
    in pratica uno mette su un server un jar e uno da un client lo esegue o ne fa uso nel classpath
    diciamo che è possibile usare un jar messo a disposizione da un altro server

  3. #3
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    bhè potresti fare in modo che il client invia al server informazioni sul codice da esegure, e poi il bytecode di un .class che verrà eseguito creando un istanza tramite la riflessione.
    Altri sistemi non mi vengono

    AH aspetta, Java 6 mi pare ha aggiunto delle librerie specifiche per la compilazione e l'esecuzione di classi in real time; non so se il package lo puoi scaricare e usare su altre versioni, ma java 6 è ancora abbastanza beta per poter essere usato.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  4. #4
    AH aspetta, Java 6 mi pare ha aggiunto delle librerie specifiche per la compilazione e l'esecuzione di classi in real time; non so se il package lo puoi scaricare e usare su altre versioni, ma java 6 è ancora abbastanza beta per poter essere usato.
    Grazie della dritta. Mi potresti dare qualche info su quali classi sono ecc... o un link per una pagina web.

  5. #5
    attraverso serializzazione fai passare un Mobile Agent dal client al server..non è altro che un oggetto serializzabile passato attraverso un'invocazione remota...siccome è serializzabile viene trasmesso per deep copy e va in esecuzione a destinazione, cioè sul server nel tuo caso

  6. #6
    Mi potresti dire che classi devo usare per creare un Mobile Agent?

  7. #7
    dai ricordi che ho basta creare un oggetto serializzabile...ti posto alcune linee di codice prese dagli appunti di università che dovrebbero essere abbastanza autoesplicativi:

    public interface MobileAgent {
    public void act();
    }

    public interface Receiver extends Remote {
    public void receive (Agent agent);
    }

    public class ConcreteAgent implements MobileAgent, Serializable {
    public void act() {....quello che il metodo deve fare eseguito sul server...}
    }

    public class Sender {
    public void send(Receiver rcvr) {
    rcvr.receive(new ConcreteAgent());} ....
    }

    public class ConcreteReceiver extends UnicastRemoteObject implement Receiver {
    public void receive(MobileAgent agent) {agent.act();}
    .....
    }

  8. #8
    In questa maniera dici che posso, senza usare java 6, spedire codice dal client verso il server ed eseguirlo on line?

  9. #9
    Io direi proprio di si, sono dell'idea che Java RMI abbia già tutti gli strumenti per effettuare mobilità di codice, senza scomodare java 6....cmq da come hai visto con le linee di codice che ti ho postato fai abbastanza presto a fare delle prove e vedere se la cosa funziona

    cmq sono gradite eventuali altre soluzioni da parte di qualcuno più esperto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.