1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva.

25
1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva

Transcript of 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva.

Page 1: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva.

1

prorub

Progetto LPS-C 2004-2005

Una rubrica interattiva

Page 2: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva.

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.

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.

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.

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.

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.

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.

8

Come funziona (3.1)

$$ rubclient -iCognome ?

Page 9: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva.

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.

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.

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.

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.

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.

14

Come funziona (5.2)

$$ rubclient -q hossiNessun record contiene ‘hossi’ .

$$

Page 15: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva.

15

rubserver

rubclient1

rubclientN

Struttura da realizzare

• Programma rubserver

• Programma rubclient

Page 16: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva.

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.

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.

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.

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.

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.

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.

22

Protocollo complessivo client server

• Specificato nel testo del progetto

Page 23: 1 prorub Progetto LPS-C 2004-2005 Una rubrica interattiva.

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.

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.

25

Data ultima

• Entro il 10 Febbraio 2006