Paola Magillo, Univestita' di Genova, Corso di Interfacce Utente per Informatica, a.a. 2002-2003.

SISTEMI A FINESTRE

Architettura

Un WMS puo' essere collegato ad una singola piattaforma sulla quale girano tutte le applicazioni che ne fanno uso, oppure avere una architettura distribuita di tipo client/server.

Architettura client/server

Ruoli di client e server

Il client e' quello che ci mette la CPU, il server e' quello che ci mette schermo e dispositivi di input. Il servizio offerto dal server e' la gestione dell'I/O.

NOTA BENE: Qui i ruoli di client e server sono invertiti rispetto ad altri contesti, nel quali come servizio offerto si intende la potenza di calcolo.

Il computer su cui risiede i client non ha bisogno di tutto lo strato di software che costituisce il WMS, ma solo di un protocollo di comunicazione e delle librerie che costituiscono l'API.

Comunicazione fra client e server

Tutto l'I/O dell'applicazione e' gestito dal server.

Il client invia richieste al server (es. chiede di aprire una finestra sullo schermo, chiede di scrivere o visualizzare qualcosa su una finestra...).

Il server invia al client:

In base alle richieste, il server alloca e mantiene risorse per conto del client:

Comunicazione asincrona

Il protocollo di cominicazione fra client e server e' asincrono.

Ne' il server ne' il client bloccano la loro esecuzione: Ci possono essere dei ritardi.

Risorse e richieste

Risorse

Risorsa: struttura dati mantenuta e gestita dal server per conto di uno o piu' client.
Contiene tutte le informazioni relative ad un potenziale strumento disponibile al client per fare I/O sul server

Risorse possono corrispondere a:

Il server puo' creare, modificare e distruggere le risorse su richiesta del client.

Nota: una risorsa corrisponde ad un potenziale strumento di I/O. Es: una finestra nello stato corrente puo' essere mappata (visibile) oppure non mappata (nascosta).

Richieste

Quando il client ha bisogno di un servizio da parte del server, manda una richiesta.

Esempi di richieste riferite a risorsa di tipo "finestra":

Vi sono richieste per altri tipi di risorse.

Per soddisfare una richiesta, il server puo' dover compiere una delle operazioni seguenti: