27 giugno 2007

D: client e proxy del progetto in processi indipendenti? R: No.

Riporto qui il testo di una mail di chiarimenti che ho ricevuto da uno studente e la relativa risposta:

Volevo sapere se:

1) le classi devono essere implementate come processi indipendenti e
le comunicazioni avvengono secondo il paradigma clien/server (quindi
comunicazioni tramite messaggi su socket)

oppure

2) gli obj sono istanziati dal main come server "virtuali" e la
comunicazione avviene attraverso la modellazione suggerita dal
progetto.

Il dubbio è nato dal comportamento DNS (che lei ha descritto a lezione
- vedi MP3).
Lei dice che il DNS deve riconoscere, in base all'IP del client, il
server Proxy geograficamente più vicino.
Ma, se il client è una classe virtuale (e non un processo in rete),
l'indirizzo IP deve essere una sua proprietà (eventualmente
modificabile dal file di configurazione(?) ) altrimenti sarebbe sempre
lo stesso.
Cosi facendo un esecuzione del progetto fornirebbe una statistica
(ovvero il comportamento del DNS sulla richiesta di un solo client
rediretto sempre sullo stesso proxy).
Per avere più statistiche dovremmo lanciare più volte il progetto
cambiando ogni volta l'IP virtuale) del client.
Risposta: in questo corso non ci interessa l'uso dei socket, quindi quando parlo di IP nei podcast delle lezioni mi riferisco a un identificatore per l'oggetto. Tutta la simulazione è fatta nell'ambito di un programma C++, e i parametri sono impostabili nel file di configurazione che il programma legge all'inizio.

Tutti i client, server, proxy e dns sono oggetti.