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.
|