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

    [Java] Domanda su RMI...

    Ciao a tutti.

    Ho già fatto una prima mini-applicazione che sfrutta RMI e le basi le ho capite, solo che ho alcuni grossi dubbi.

    Devo realizzare necessariamente con RMI (non posso purtroppo usare socket o altro) una funzionalità di questo tipo.

    C'è un server e N client.

    c'è l'interfaccia Server che offre la seguente funzionalità:

    login(String username)

    Ok. Ora ipotizziamo che il client richiama sul server: login("pippo").

    Benissimo, il server aggiunge a una lista dinamica l'utente "pippo" che si è loggato.

    Ora, ho la necessità che i client debbano avere sempre aggiornata la lista di chi è loggato.

    La soluzione più banale è che il server offra la seguente funzionalità:

    Lista richiedilistautenti()

    In pratica facendo questa chiamata, il server ritorna al client la lista di utenti online (serializzata).

    Il fatto è che dovrei mettere un loop sul client che continua a fare richieste al server, quindi per molti utenti contemporanei.. una marea di traffico, e in pratica scarto la soluzione.

    Io vorrei creare sul client una interfaccia che possa offrire:

    notificaArrivoUtente(String nomeutente)

    In pratica quindi al login di qualcuno devo richiamare questo metodo remoto a tutte le persone che sono loggate in quel momento.

    In pratica sia client che server dovrebbero agire da "server rmi".

    Due domande:

    1) sul server per attivare le funzionalità RMI, lancio rmiregistry, ma ovviamente la cosa farebbe davvero schifo se i client dovessero fare altrettanto per poter consentire al server di richiamare il metodo remoto "notificaArrivoUtente(...)" quindi si può evitare in qualche modo di fare eseguire ai client "rmiregistry"???

    2) come caspita faccio a risalire agli utenti che sono loggati per richiamare su di loro il metodo di notifica??? Cioè.. se usassi TCP basta tenere attivo uno stream TCP per ogni cliente.. ma con RMI come faccio a risalire a chi si era loggato in precedenza??

    Grazie a tutti per l'attenzione
    Buon agosto!

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; un ulteriore modo per poter fare quello che vuoi ( che cmq potrebbe non andare bene se sei vincolato dall'usare solo RMI ) è l'utilizzo di eventi e Messaggi tramite JMS; in pratica all'evento della registrazione di un nuovo utente fai partire un messaggio a tutti i client utilizzando JMS.
    Non so se potrebbe andarti bene.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Purtroppo è un progetto per un esame dell'univ e devo usare necessariamente RMI visto che lo richiede il prof.

    Cercando su internet ho visto che esiste la possibilità di permettere al server di invocare metodi remoti sui client.. tramite un meccanismo "client callback".

    Purtroppo non ho ancora trovato una guida decente a riguardo.. se qualcuno avesse qualche buon link, mi farebbe un favore

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.