A telecharger

Transcription

A telecharger
Interface Utilisateur
! GUI (Graphical User Interface). Opposé à Command-line
interface.
! Interface (dialogue avec l’utilisateur) utilisant à bon
escient les capacités graphiques des ordinateurs pour
faciliter l’utilisation et la gestion de l’ordinateur.
! Une bonne interface graphique doit éviter l’apprentissage
d’une syntaxe et d’un langage de commande. Toutefois,
certains utilisateurs, maîtrisant ce langage, trouvent le
mode command-line plus rapide.
Interfaces Graphiques
! Le modèle le plus communément utilisé est appelé WIMP
" Abrégé pour Windows, Icons, Menus et Pointing device,
" Ce modèle semble évident maintenant, mais dans les 1970’s, le modèle
WIMP n’ était qu’une variante des IHM alors étudiés
! N’oublions pas qu’à l’époque, gérer une IHM WIMP nécessitait une
puissance de calcul considérable et des écrans hors de prix.
! C’est la notion de fenêtre qui mis le plus de temps pour s’imposer.
En effet, le multifenêtrage s’accorde avec le multitâche. D’autres
modèles était (sont encore) en usage :
" Mono-application (encore fréquent avec les stations de CAO DAO)
" Mono-application avec basculement de taches (MacOS avec "switcher")
" Multi-applications avec affichage multifenêtre
1
graphical character-based UI
! De nombreux programmes /
OS utilisait certaines
fonctionnalités de GUI (les
menus, par exemple), mais pas
les capacités graphiques. Ces
interfaces sont quelquefois
dénommés « graphical
character-based user
interfaces », comme le minitel
ou des outils comme
« Midnight Commander » sous
DOS.
Historique des GUI
! Xerox ALTO
" Debut de la production : 1972
" Don de 50 machines en 1978
aux universités : Stanford,
Carnegie-Mellon, et MIT
(Massachusetts Institute of
Technology).
" Bill Gates avait 17 ans
" Linus Torvalds avait 3 ans
2
Historique des GUI
Historique des GUI
! 1981 : Xerox STAR
"
"
"
"
Multifenetrage
Souris 3 boutons
Réseau
Travail distribué possible !
3
Xerox Star
Historique des GUI
! Apple I, puis Apple II (enorme
succèes), puis apple III
! Machine Apple Lisa en 1983
! Macintosh en 1984.
4
Historique des GUI
! MS Windows à partir
de 1985
! Position dominante avec
windows 3.11
! Mélange 16bits/32bits !
! Retrocompatibilité avec DOS
GUI : évènements
! La plupart des
applications actuelles
utilisant une interface
graphique (X11,
MacOS X, Win32)
réagissent en
fonction des
évènements (eventdriven).
! Un évènement ou
message est généré
pour chaque action
(frappe clavier,
déplacement souris,
etc…)
5
! Un événement ou message est identifié par :
" Un ID (numéro d’identification) unique
" Une structure de données contenant généralement :
• Un descriptif de l’évènement
• Éventuellement des données utilisateur ou contextuelles
! En général, les OS / Interfaces Graphiques gèrent une
liste d’évènement (Event Queues) afin de mémoriser et
de traiter tous les évènements, indépendamment de la
charge du système.
" Compromis entre « réponse immédiate, mais probabilité de perte
d’évènements » et « mémorisation de tous les évènements, mais
possible temps d’attente dans leur traitement »
Programmer avec les GUI
! Les OS / Interfaces Graphiques proposent des
procédures standards pour récupérer les évènement
dans la file d’attente.
! Les applications utilisent ces procédures (faisant parties
de l’API) pour effectuer une action correspondant à
l’évènement.
! Par exemple :
" En cas de modification de l’affichage (déplacement d’une
fenêtre), un (des) évènement(s) sont envoyés
" L’application (les applications) concernée(s) décident de
rafraîchir ou non le contenu de leur(s) fenêtre(s) respective(s)
! En conséquence :
Par exemple, chaque application est responsable de
l’affichage de sa fenêtre.
6
! Le système X a été développé au MIT, dans le cadre du
projet Athena
" Bob Scheifler, MIT X Consortium
• Interconnexion, partage des ressources, pour un parc hétérogène (systèmes
propriétaires) de 4000 machines
" 1985 : Première version publique : X10
" 1987 : X11R1 (X Version 11, Release 1)
! Actuellement maintenu par le Consortium X (www.x.org)
qui regroupe les principaux constructeurs
X
X Window System
X Version 11
X Window System, Version 11
X11
Principe généraux de Xwindow (1)
! Le système X est un système de création et de gestion
d'interfaces graphiques.
" Le système X permet l'affichage, sur un ou plusieurs écrans, de
plusieurs applications,
• tournant sur des machines différentes,
• dans des fenêtres séparées.
! Les programmes construits sur les principes du système
X sont appelés clients X ou applications X
! Chaque application X
" se connecte elle-même à un serveur X via un réseau ;
" et dispose sur son display d'une ou de plusieurs fenêtres.
7
Principe généraux de Xwindow (2)
! Fondé sur le modèle client-serveur.
! Comporte 3 composantes :
" Le serveur : programme qui contrôle le dispositif d'affichage
(display) : écran, clavier, souris.
" Les clients : programmes d'application.
" Le dispositif de communication entre clients et serveur.
! contrairement au modèle client serveur utilisé dans les
bases de données
" Le client est
distant ou local
" le serveur
est toujours local
Exemple
! Serveur X
sur PC/Windows
(Xwin32, StarNet)
! Connecté à
une Station
de Travail HP
! Ecran de la
station HP
visible dans
une fenêtre
(mode plein
écran également
possible)
8
Serveur X
! Le serveur X est composé (au niveau logiciel), de trois
couches:
" une partie indépendante du matériel;
" une partie dépendante du matériel (gestion des couleurs,
résolution, dispositif de pointage);
" Le lien avec les pilotes d'entrées et de sorties.
! Les clients sont indépendants du matériel, mais doivent
pouvoir s'adapter en fonction des capacités (de l'écran,
du clavier).
! Sous linux : Xfree
! Sous windows : Xwin32, Xlink, …
! Serveurs X disponibles pour Macintosh, Amiga, Stations,
PDA, ...
Les fonctions du serveur
! Traiter les sorties graphiques en exécution des requêtes :
"
"
"
"
Création, configuration, destruction des fenêtres;
Gestion des polices et des textes;
Tracés graphiques (lignes, arcs, régions);
Gestion des images et curseurs,
! Traiter les entrées et les transmettre aux clients :
" détection des frappes de clavier;
" détection des mouvements de souris.
! Gérer les communications avec le réseau.
9
Client ou application XWindow
! Exécutable utilisant la ou les bibliothèque Xwindow (Xlib,
Xt, …)
! Xwindow utilise un protocole réseau pour communiquer
" L'architecture de la plate-forme client peut être quelconque (PC,
station, système embarqué, etc…)
! Le client envoie des requêtes au serveur qui concernent :
" tracés de textes ou graphiques;
" création, affichage, gestion de fenêtres;
" demandes d'informations (tables, états).
Le fonctionnement du client
! Les requêtes sont formulées à travers les fonctions Xlib,
en s'appuyant sur un protocole propre, le protocole X.
" L’appel à une fonction Xlib provoque une ou plusieurs requêtes,
" Les requêtes sont transmises selon un protocole de réseau qui
assure la séquentialité,
" L'envoi des requêtes est asynchrone : on n'attend pas la réponse
(en général),
" Chaque client possède sa file de requêtes où sont rangées les
requêtes en attente d'envoi,
" A l'intérieur d'une station, la communication interprocessus est
utilisée,
10
Le Window Manager (1)
! Le gestionnaire de fenêtres (window manager) est un
client X comme les autres, ou presque.
" On peut ne pas utiliser de gestionnaire de fenêtres, ou en
changer en cours de session,
! Le rôle du gestionnaire est de faire vivre en commun les
applications présentes, en permettant
" de gérer la géométrie, i.e. de déplacer, retailler, empiler
différemment les fenêtres des applications;
" d'icônifier les applications;
" de contrôler le focus d'entrée du clavier.
Le Window Manager (2)
! La plupart des gestionnaires ajoutent, aux fenêtres
principales des applications, une décoration, composée
d'une bordure, d'une barre de titre avec divers boutons,
voire d'un menu déroulant.
11
Fonction du Window Manager (wm)
! Fourni une apparence
uniforme (look & feel)
! Permet l'icônification.
! Un gestionnaire dispose en
général d'un menu de fond
(root menu) permettant de
lancer de nouveaux clients
ou d'en tuer, ou de relancer
le gestionnaire.
! Enfin, le gestionnaire définit
" des raccourcis clavier,
" un comportement de
transition, par exemple le
comportement du focus du
clavier :
• click-to-type
• follow-cursor
Hiérarchie des bibliothèques de programmation
! Un client X n'écrit pas directement les requêtes X sur le
réseau :
" Une interface de programmation (API) et sa bibliothèque
associée sont fournies, permettant d'envoyer des requêtes à un
serveur X par un simple appel de fonction.
" C'est la bibliothèque X ou Xlib.
" D'autres librairies appelées boites a outils ou toolkits fournissent
des abstractions de plus haut niveau
12