Questo progetto si pone l'obbiettivo di mostrare il funzionamento della tecnologia RMI di Java e della tecnologia JDBC.
Un file bash id183ovzRmiServerSideScript.sh
avvia il progetto e verifica che client e server siano connessi alla medesima rete.
Il lato server si interfaccia, attraverso JDBC, al DBMS e quindi al DB.
Il Server fornisce quindi al lato client dei servizi.
Il lato client, attraverso attraverso un menu testuale propone una serie di funzioni di consultazioni e/o ricerca all'utente, quali:
- Attori in base alla corrispondenza parziale di nome e/o cognome
- Attori in base alla corrispondenza parziale del paese di origine
- Film in base alla corrispondenza parziale del nome
- Film in base al anno
All'interno del repository sono disponibili i seguenti file:
readme.md
questo file!id183ovzRmiServerSideScript.sh
script che avvia il progettoIcinema.java
Interfaccia comune sia al lato server che client. Deve essere presente all'interno dei due file (vedi dopo)CinemaSvr.java
: gestisce l'interazione tra DBMS e fornisce i servizi al client. Tale file, assieme all'interfaccia, è importantissimo per la creazione del fileCinemaSvr.jar
CinemaClt.java
: fornisce all'utente i dati della propria consultazione. Tale file, assieme all'interfaccia, è importantissimo per la creazione del fileCinemaClt.jar
Per l'avvio del progetto è necessario aver avviato il DBMS dopodiché è necessario disporre dei seguenti file:
id183ovzRmiServerSideScript.sh
script che avvia il progettoCinemaSvr.jar
gestisce il lato serverCinemaClt.jar
gestisce il lato client
Ovviamente in questo repository non sono disponibili i file .jar
ma soltanto i sorgenti in formato .java
.
È quindi necessario creare i file .jar
a partire dai file sorgenti disponibili
Per creae questa tipologia di file è necessario inanzitutto compilare i file java in bytecode (file .class
) attraverso il comando:
javac *.java
Dopodiché dividere i file in due cartelle:
./CinemaSvr/Icinema.class
./CinemaSvr/CinemaSvr.class
./CinemaClt/Icinema.class
./CinemaSvr/CinemaSvr.class
A questo punto portarsi in una delle due cartelle e dare il seguente comando
jar -cf <NomeCartella>.jar *.class
I file ./CinemaSvr/Icinema.class
e ./CinemaClt/Icinema.class
sono la stessa cosa!
Inolte tale codice necessita anche di:
- l'uso di JDBC del giusto connettore, nell'esempio è stato usato mysql-j-connector
- il download del connettore mysql è disponibile qui
- è preferibile scaricarlo come
platform-indipendent
- estrarre dal file compresso il file
.jar
e importarlo nel tuo progetto
- usare un DBMS:
- nell'esempio è stato usato MySQL/MariaDB dbms
- è più sembra usare XAMPP
- usare la giusta base di dati (
sakila.db
)
Purtroppo la tecnologia RMI sembra deprecata. Il codice è vecchio e quindi presenta alcuni errori di semplice risoluzione!