1 prorub progetto lps-c 2004-2005 una rubrica interattiva
TRANSCRIPT
![Page 1: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/1.jpg)
1
prorub
Progetto LPS-C 2004-2005
Una rubrica interattiva
![Page 2: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/2.jpg)
2
server
client1
clientN
Struttura complessiva
• Processo server– gestisce una rubrica centralizzata– ogni voce ha (cognome, nome, città, tel, commento)
es:
De Rossi Mario Pisa +39-050789 Casa
Bei Sandra Bari 34778988 Cellulare
![Page 3: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/3.jpg)
3
rubserver
Come funziona
• Attivazione server:– $$ rubserver file_voci attiva un processo server (demone, in background)
che • legge da file_voci la rubrica corrente, controlla il formato e la memorizza in una SD interna• si mette in attesa di richieste dai client
file_voci
![Page 4: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/4.jpg)
4
Formato del databaseUn record per riga• Ogni campo di lunghezza fissa
– Cognome (40 char)– Nome (40 char)– Citta (20 char)– Telefono (20 char)– Commento (20 char)
• Se l’informazione è più corta si completa con blank (padding)• Sono seq di caratteri senza terminatori di stringa (‘\O`)
![Page 5: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/5.jpg)
5
Formato del database De Rossi Mario Pisa +39-050789 Casa
Bei Sandra Bari 34778988 Cellulare
Sono rappresentati come
140 char
MarioDe Rossi 35b32b Pisa 16b +39-050789 10b
Casa 16b
SandraBei 3437b Bari 16b 34778988 12b
Cellulare 11b
![Page 6: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/6.jpg)
6
client
Come funziona (2)
$$ rubclientstampa un messaggio di uso (formato a piacere)
rubclientrubclient -irubclient -qrubclient -d
![Page 7: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/7.jpg)
7
Come funziona (3)
$$ rubclient -iinserisce un record in modo interattivo
(formato fisso nelle specifiche)
![Page 8: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/8.jpg)
8
Come funziona (3.1)
$$ rubclient -iCognome ?
![Page 9: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/9.jpg)
9
Come funziona (3.2)$$ rubclient -iCognome ? Rossi
Nome ? Gino
Citta ? Pisa
Telefono ? 050698787
Commenti ? Ufficio
Vuoi inserire il record:
‘Rossi Gino Pisa 050698787 Ufficio ?’ (OK per confermare)
OK
$$
![Page 10: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/10.jpg)
10
Come funziona (4)
$$ rubclient -d chiavecancella tutti i record del DB che contengono chiave in uno dei campi (es. ossi in Rossi)
![Page 11: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/11.jpg)
11
Come funziona (4.1)
$$ rubclient -d chiaveVuoi cancellare tutti i record che contengono ‘chiave’?
OK
Cancellazione avvenuta
$$
![Page 12: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/12.jpg)
12
Come funziona (5)
$$ rubclient -q chiavemostra tutti i record del DB che contengono chiave
in uno dei campi (es. ossi in Rossi)
![Page 13: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/13.jpg)
13
Come funziona (5.1)
$$ rubclient -q ossiRossi Gino Pisa 050698787 Ufficio
Grossi Mario Napoli 98909 Casa
$$
![Page 14: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/14.jpg)
14
Come funziona (5.2)
$$ rubclient -q hossiNessun record contiene ‘hossi’ .
$$
![Page 15: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/15.jpg)
15
rubserver
rubclient1
rubclientN
Struttura da realizzare
• Programma rubserver
• Programma rubclient
![Page 16: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/16.jpg)
16
rubserverrubclient
Struttura da realizzare: interazioni client server
• I client comunicano con il server con una pipe dal nome fissato – richieste di operazioni, formato di lunghezza fissa (161, vediamo poi perché)
/tmp/clientserver
![Page 17: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/17.jpg)
17
rubserverrubclient
Struttura da realizzare: interazioni client server (2)
• I client creano una pipe dedicata per ricevere i messaggi di risposta del server in /tmp ne comunicano il nome al server assieme alle richieste
/tmp/pipe_ascolto
![Page 18: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/18.jpg)
18
rubserverrubclient -ipid 1234
Struttura da realizzare: interazioni client server (3)
• Esempio di richiesta di aggiunta:1+20+140
/tmp/pipeas1234
MarioDe Rossi 35b32b Pisa 16b +39-050789 10b
Casa 16b
A pipeas1234 10b
/tmp/clientserver
![Page 19: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/19.jpg)
19
rubserverrubclient -ipid 1234
Struttura da realizzare: interazioni client server (4)
• Esempio di risposta del server:1+140
• inserzione OK
/tmp/pipeas1234
OK 139b
/tmp/clientserver
![Page 20: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/20.jpg)
20
rubserverrubclient -qpid 1237
Struttura da realizzare: interazioni client server (5)
• Esempio di query:1+20+140
/tmp/pipeas1237
ossi 136bQ pipeas1237 10b
/tmp/clientserver
![Page 21: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/21.jpg)
21
rubserver rubclient -qpid 1237
Struttura da realizzare: interazioni client server (6)
• Esempio di risposta : due msg 1+140
/tmp/pipeas1237
MarioDe Rossi 35b32b Pisa 16b +39-050789 10b
Casa 16b
A
/tmp/clientserver
STOP 137b
![Page 22: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/22.jpg)
22
Protocollo complessivo client server
• Specificato nel testo del progetto
![Page 23: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/23.jpg)
23
Organizzazione complessiva• Scadenze consegne intermedie
– (+2 ogni consegna corretta in tempo)
Frammento 1: 13/04/2005
Frammento 2: 2/05/2005
Frammento 3 (progetto completo): 4/07/2005
• Almeno 15gg prima– specifiche, software di test, makefile e script per la consegna
• Due esercitazioni dedicate a ogni frammento
![Page 24: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/24.jpg)
24
Come e cosa si deve consegnare
• Esclusivamente usando gli script forniti nel materiale del frammento corrispondente• il README di ogni frammento spiega cosa occorre consegnare• Relazione (solo con il progetto finale)
– strutture dati e principali algoritmi (descrizioni e motivazioni)– struttura complessiva server e client– istruzioni per l’utente
![Page 25: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva](https://reader036.vdocumenti.com/reader036/viewer/2022081516/5542eb4c497959361e8b99ea/html5/thumbnails/25.jpg)
25
Data ultima
• Entro il 10 Febbraio 2006