Indice - Progetto di Reti di Calcolatori - Fabio Adani e Marco Chiesi
Implementazione

Interfacce remote

Il sistema contiene 6 classi remote. Esse sono :

  • MainClient
  • RoomClient
  • MainServer
  • RoomServer
  • ClientAgent
  • UserDBServer

Ognuna di esse deve implementare una o più interfacce remote, per offrire i servizi per cui è stata pensata. La seguente figura mostra tale dipendenza :

Come si vede quindi le interfacce remote sono 7e si suddividono tra i packages netgame.shared e netgame.server.

Non si illustrano in questa sede in dettaglio tutti i metodi che esse comprendono. La loro presentazione è già stata fatta nel progetto e per una descrizione dettagliata si rimanda al codice o alla documentazione generata con javadoc.

Si da qui una inquadratura generale di tali interfacce, specificando per ognuna il ruolo all’interno di NetGame.

Innanzitutto diciamo che le interfacce remote sono state poste nel package shared nel caso vengano utilizzate per la comunicazione tra un client ed un server, mentre sono state poste nel package server se vengono usate esclusivamente tra due server.

IMainClient. E’ l’interfaccia per la comunicazione del MainServer verso un MainClient. Consente di comunicare quando il server si disconnette.

IRoomClient. E’ l’interfaccia per la comunicazione del RoomServer verso un RoomClient. Consente di comunicare al client eventi significativi che avvengono nella stanza e ricevere da esso un riferimento al client di gioco quando inizia una partita.

IClientAgent. E’ l’interfaccia per la comunicazione del client verso il server. Consente di entrare ed uscire da una stanza e di effettuare tutte le operazioni all’interno di una stanza.

IClientAccess. E’ un’altra interfaccia per la comunicazione del client verso il server. Consente l’ingresso e l’uscita dalla rete.

IServerAccess. E’ l’interfaccia di comunicazione tra un MainServer e l’altro. Presenta tutti i metodi per l’esecuzione del protocollo 2PC e per la comunicazione di eventi significativi a livello MainServer.

IRoomServerToServer. E’ l’interfaccia di comunicazione tra un RoomServer e l’altro. Presenta tutti i metodi per l’esecuzione del protocollo 2PC e per la comunicazione di eventi significativi a livello RoomServer.

IUserDBAccess. E’ l’interfaccia di comunicazione di un MainServer verso uno UserDBServer. Permette di verificare la correttezza dei dati di un utente.

Quindi tutti i metodi di comunicazione remota presentati nel progetto si mappano in queste interfacce remote. Durante l’elaborazione uno stesso messaggio potrà essere trattato in diversi punti come un evento, ma al momento di fare un’invocazione remota si dovrà adeguare a queste interfacce.

Indietro Inizio pagina Avanti
Indice   Fabio Adani e Marco Chiesi