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