Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Progetto LPS-C 2004-2005 Una rubrica interattiva
prorub Progetto LPS-C Una rubrica interattiva
2
Struttura complessiva
client1 clientN server Processo server gestisce una rubrica centralizzata ogni voce ha (cognome, nome, città, tel, commento) es: De Rossi Mario Pisa Casa Bei Sandra Bari Cellulare
3
Come funziona rubserver Attivazione server:
file_voci 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
4
Formato del database Un 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`)
5
Formato del database Sono rappresentati come 140 char
De Rossi Mario Pisa Casa Bei Sandra Bari Cellulare Sono rappresentati come 140 char De Rossi 32b Mario 35b Pisa 16b 10b Casa 16b Bei 37b Sandra 34 Bari 16b 12b Cellulare 11b
6
Come funziona (2) client $$ rubclient
rubclient -i rubclient -q rubclient -d $$ rubclient stampa un messaggio di uso (formato a piacere)
7
Come funziona (3) $$ rubclient -i
inserisce un record in modo interattivo (formato fisso nelle specifiche)
8
Come funziona (3.1) $$ rubclient -i Cognome ?
9
Come funziona (3.2) $$ rubclient -i $$ Cognome ? Rossi Nome ? Gino
Citta ? Pisa Telefono ? Commenti ? Ufficio Vuoi inserire il record: ‘Rossi Gino Pisa Ufficio ?’ (OK per confermare) OK $$
10
Come funziona (4) $$ rubclient -d chiave
cancella tutti i record del DB che contengono chiave in uno dei campi (es. ossi in Rossi)
11
Come funziona (4.1) $$ rubclient -d chiave $$
Vuoi cancellare tutti i record che contengono ‘chiave’? OK Cancellazione avvenuta $$
12
Come funziona (5) $$ rubclient -q chiave
mostra tutti i record del DB che contengono chiave in uno dei campi (es. ossi in Rossi)
13
Come funziona (5.1) $$ rubclient -q ossi $$
Rossi Gino Pisa Ufficio Grossi Mario Napoli Casa $$
14
Come funziona (5.2) $$ rubclient -q hossi $$
Nessun record contiene ‘hossi’ . $$
15
Struttura da realizzare
rubclient1 rubclientN rubserver Programma rubserver Programma rubclient
16
Struttura da realizzare: interazioni client server
/tmp/clientserver rubclient rubserver I client comunicano con il server con una pipe dal nome fissato richieste di operazioni, formato di lunghezza fissa (161, vediamo poi perché)
17
Struttura da realizzare: interazioni client server (2)
rubclient rubserver /tmp/pipe_ascolto 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
18
Struttura da realizzare: interazioni client server (3)
/tmp/clientserver rubclient -i pid 1234 rubserver /tmp/pipeas1234 Esempio di richiesta di aggiunta: A pipeas1234 10b De Rossi 32b Mario 35b Pisa 16b 10b Casa 16b
19
Struttura da realizzare: interazioni client server (4)
/tmp/clientserver rubclient -i pid 1234 rubserver /tmp/pipeas1234 Esempio di risposta del server:1+140 inserzione OK OK 139b
20
Struttura da realizzare: interazioni client server (5)
/tmp/clientserver rubclient -q pid 1237 rubserver /tmp/pipeas1237 Esempio di query: Q pipeas1237 10b ossi 136b
21
Struttura da realizzare: interazioni client server (6)
/tmp/clientserver rubserver rubclient -q pid 1237 /tmp/pipeas1237 Esempio di risposta : due msg 1+140 A De Rossi 32b Mario 35b Pisa 16b 10b Casa 16b STOP 137b
22
Protocollo complessivo client server
Specificato nel testo del progetto
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
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
25
Data ultima Entro il 10 Febbraio 2006
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.