Le Bureau Graphique (1/2)



Documents pareils
AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Environnements de développement (intégrés)

ISTIA INNOVATION. 62, Ave ND du Lac F Angers

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8.

WEB page builder and server for SCADA applications usable from a WEB navigator

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Éléments de programmation et introduction à Java

Systèmes en réseau : Linux 1ère partie : Introduction

LES ACCES DISTANTS ET SECURISES. Installation et utilisation du client. Cisco AnyConnect VPN Client. pour Windows

Sessions en ligne - QuestionPoint

Manuel du Desktop Sharing

Module BD et sites WEB

Annexe : La Programmation Informatique

Architecture client riche Evolution ou révolution? Thomas Coustenoble IBM Lotus Market Manager

HP Data Protector Express Software - Tutoriel 3. Réalisation de votre première sauvegarde et restauration de disque

Vulgarisation Java EE Java EE, c est quoi?

2 - VMWARE SERVER.doc

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

Manuel du client de bureau distant de KDE

Instructions Mozilla Thunderbird Page 1

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Terminal Server RemoteAPP pour Windows Server 2008

Réglages du portail de P&WC

Architectures web/bases de données

L3 informatique TP n o 2 : Les applications réseau

Bluetooth pour Windows

Forthcoming Database

Cours. Cours 8 : Révisions. Importance. Interface homme-machine

Solution de Collaboration synchrone

CAHIER DES CHARGES D IMPLANTATION

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

CA ARCserve Family of Solutions Pricing and Licensing

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Construire des plug-ins pour SAS Management Console SAS 9.1

Contents Windows

Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com IBM Corporation

Projet de développement

TD/TP 1 Introduction au SDK d Android

Manuel de System Monitor

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

Un serveur web léger et ouvert

-1 - Postes de travail graphiques

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

Dématérialisation et travail collaboratif

Vers l urbanisation agile d un client mobile ios/android natif, économique, flexible et pérenne

Guide de démarrage du système modulaire Sun Blade 6000

Logiciel Enterprise Guide Version 1.3 Windows

Découvrez notre solution Alternative Citrix / TSE

ORTIZ Franck Groupe 4. Terminal serveur pour administrer un serveur Windows à distance, client rdp linux.

Mise en œuvre des serveurs d application

L art d ordonnancer. avec JobScheduler. François BAYART

CSI351 Systèmes d exploitation Instructions pour rouler Linux avec Virtual PC dans la salle de labo 2052

Préparation à l installation d Active Directory

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Installation d'un TSE (Terminal Serveur Edition)

Installation FollowMe Q server

LES ACCES ODBC AVEC LE SYSTEME SAS

Mise en oeuvre d un Serveur de CD AXIS StorPoint

Paxton. ins Net2 desktop reader USB

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Installation d OpenVPN

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

Infrastructure RDS 2012

Comment créer vos propres pages web?

La solution idéale de personnalisation interactive sur internet

Fiche d utilisation du logiciel. 1 - Installation. J. Thioulouse & D. Chessel

Introduction au protocole FTP. Guy Labasse

RELEASE NOTES. Les nouveautés Desktop Manager 2.8

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

DOCUMENTATION - FRANCAIS... 2

Délivrer des postes de travail virtuels et des applications virtuelles en utilisant des technologies Open Source

INFO-F-404 : Techniques avancées de systèmes d exploitation

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

LINUX - ADMINISTRATION PROGRAMME DE FORMATION

DOCUMENTATION - FRANCAIS... 2

Interface Homme-Machine 1

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Chapitre I Notions de base et outils de travail

Langage de scripts : historique et définition

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Atelier Le gestionnaire de fichier

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

FAQ Trouvez des solutions aux problématiques techniques.

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Windows 8 : une petite révolution? 9. Démarrer Windows Accéder au Bureau à la connexion 13. Ouvrir ou activer une nouvelle session 13

Sauvegardes par Internet avec Rsync

Guide de Démarrage. Introduction... 2 Scénarios pour l utilisation de votre procloud@ocim.ch... 2 Scénarios à venir :... 2

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

Logiciels libres et Open source

Système de Gestion de Ressources

Internet & la recherche marketing : état des lieux. Présenté par Raymond Cyr Fondateur VOXCO

Guide d installation d AppliDis Free Edition sur Windows Serveur 2008 R2

MANAGEMENT SOFTWARE FOR STEEL CONSTRUCTION

Xerox EX Print Server Powered by Fiery pour la Xerox Color J75 Press. Impression

Guide de l'utilisateur. Linksys AE1000 Adaptateur USB sans fil - N hautes performances

MANUEL D INSTALLATION DES PRE REQUIS TECHNIQUES SALLE DES MARCHES V.7

Mise en route d'une infrastructure Microsoft VDI

Transcription:

Le Bureau Graphique (1/2)! Le bureau graphique (Desktop Environment) est censé assurer l interopérabilité entre applications. Le bureau graphique doit assurer le lien entre tous clients partageant votre display. En voici les principales caractéristiques : " look and feel uniforme : toutes les applications partagent une même présentation des menus, icônes, barres de défilement. " Drag and Drop : Les applications peuvent échanger données et objets entre eux. " Configuration interactive du bureau : Au lieu d éditer des fichiers de configuration avec une éditeur de texte, la configuration du bureau (apparence, couleurs, etc ) se fait de façon interactive, à la souris. Le Bureau Graphique (2/2) " Un système d aide commun : Les applications partagent le même mécanisme d aide (hotkeys, aide contextuelle). " API spécifique : Ensemble de bibliothèques facilitant le développement d utilitaires destinés au bureau graphique, permettant d exploiter pleinement les fonctionnalités du bureau graphique. " Création de documents composites : Un document peut contenir des objets créés/gérés par des applications différentes. " Gestion des sessions de travail : Un mécanisme commun permet la sauvegarde et la restauration des sessions de travail (sauvegarde de l état de chaque application ouverte dans la session), ainsi que le basculement d une session à l autre.

CDE! The Common Desktop Environment (CDE) is a commercial graphical user interface for UNIX in its various flavors (AIX, Digital UNIX, HP/UX, Solaris, UnixWare, etc.). The desktop has been jointly developed by Hewlett-Packard, IBM, Novell and Sun Microsystems (COSE : Common Open Software Environment, 1993). It has been adopted as a standard operating environment by these companies and many others in the UNIX workstation market.! Released 1994-1995! The CDE incorporates the dtwm window manager. This is a Motif-compliant, virtual window manager. CDE

KDE! Kool Desktop Environment. "KDE is a powerful graphical desktop environment for Unix workstations. It combines ease of use, contemporary functionality and outstanding graphical design with the technological superiority of the Unix operating system."! Rendre Linux accessible au plus grand nombre! Début du projet oct. 1996, ver. 1.0 en Juillet 1998! Window Manager (KWM). GNOME! GNU Network Object Model Environment. "GNOME is a user-friendly desktop environment that enables users to easily use and configure their computers. GNOME includes... a set of conventions that make it easy for applications to cooperate and be consistent with each other."! Début du projet en août 1997! Théoriquement, s'accommode de divers WM, qui doivent être 'gnome-compliant' (par ex. Enligthenment, mais pas fvwm).

KDE vs GNOME! KDE et GNOME se ressemble beaucoup du premier coup d œil.! Inspirés de l IHM de Microsoft Windows! La présentation est similaire : " Desktop (where data and applications can be placed) " Panel (for starting applications and displaying status information) " File Manager for manipulating file objects " Control Center for central configuration. KDE

GNOME Le panneau de commande (panel)! Le panneau (panel) constitue la centrale de commande de l'interface. Inspiré de la barre des tâches de MS Windows. Possibilité de basculer entre bureau virtuels! La distribution standard de GNOME inclut un grand nombre d'applets (petites applications que l on peut demarrer depuis le panneau). Les applets communiquent avec le panneau à l'aide de CORBA

Le gestionnaire de fichier (File Manager) GNOME : Evolution de Midnight Commander (GMC - GNU Midnight Commander). KDE File Manager (KFM), inspiré de Internet Explorer 4.0, intégrant un client FTP et un navigateur web, et la possibilité d'explorer des fichiers compressés (tar, gz) Remplacé par Konkeror Le centre de contrôle GNOME Control Center KDE Control Center

! GNOME utilise la bibliothèque orientée objet utilisée pour développer GIMP (GTK+ : GIMP Toolkit), dialoguant avec la Xlib par l intermédiaire d un wrapper (GDK) De plus, une bibliothèque C de bas niveau (Glib) est nécessaire.! KDE se base sur une bibliothèque spécifique (Qt, externe au projet KDE) pour la création/gestion des widgets L architecture de GNOME et KDE GTK+! Interfaçable avec 16 langages informatiques (C/C++, pascal, perl, python, )! Licence GPL! Supporte les modèles Drag & Drop de Motif! Utilisation conjointe de OpenGL et GTK+! Documentation laissant a désirer! Portabilité limité des applications développés avec GTK+ vers Windows.

Qt! Très modulaire, permettant une réutilisation facile des composants développés! Multi-plateforme, y compris portage vers Windows! Utilisation conjointe de OpenGL! Bonne documentation en ligne! Problème de licence (d ou le développement de GNOME) : QPL (Qt Public License) : Licence de la bibliothèque Qt de la société Troll Technologies, incompatible avec la GPL. Les sources modifiés ne peuvent être redistribués que sous forme de correctifs.! 3 langages : C/C++, perl, python! Qt is a C++ toolkit for multiplatform GUI application development. In addition to the C++ class library, Qt includes tools to make writing applications fast and straightforward. Qt's multiplatform capabilities and internationalization support ensure that Qt applications reach the widest possible market.! The Qt C++ toolkit has been at the heart of commercial applications since 1995 (Adobe, IBM, Motorola, NASA, and Volvo, + smaller companies and organizations).! Qt's classes are fully featured to reduce developer workload, and provide consistent interfaces to speed learning. Qt is, and always has been, fully object-oriented.! http:/ /www.trolltech.com/. Qt

La communication inter-client! Exemple : copy-paste d une zone de texte, ou insertion d un graphisme dans une feuille de tableur.! X11 propose : " ICCCM (Inter-Client Communication Conventions Manual) Sélection à la souris, presse-papier (clipboard) et cut-buffers (espace mémoire gérés par le serveur X servant de passerelle entre applications). Texte seulement. " Drag and Drop Protocols Feedback nécessaire L application cible doit pouvoir choisir un format de prédilection MotifDND (devenu trop complexe) et XDND " Session management Serveur spécial, indiquant au client de sauvegarder leur état. Les clients doivent communiquer au session manager des information permettant leur restauration. Autres communications inter-client! Pipes " Limités, unidirectionnels, bas niveau, connaissance nécessaire du format de l échange! Sockets " Utilisation du réseau. Bas niveau, bidirectionnel, connaissance nécessaire du format de l échange! RPC (Remote Procedure Calls) " Initialement développé par SUN pour NFS. Appel de procédures distante. Déclaration préalable des prototypes et des types de données.

! CORBA (Common Object Request Broker Architecture) est un mécanisme de type IPC basée sur une méthodologie objet.! The most important component is the ORB (Object Request Broker), which is responsible for all communications for identifying and locating objects, data transmission and for clients calling the object implementations CORBA comme communication Desktops & CORBA! CORBA presents a simple and a elegant solution to interprocess communications. For example, the GNOME panel uses CORBA to communicate with panel applets. In addition, some games also use CORBA as communication protocol to play in a network environment.! In version 2 of KDE the usage of CORBA has been discarded for efficiency reasons. The replacement for CORBA is called DCOP (Desktop COmmunications Protocol) and is based on X11's ICE.

Exemple de code KDE (Qt) /********************* khello.h *********************/ #include <kapp.h> #include <ktmainwindow.h> class KHello : public KTMainWindow { Q_OBJECT public: KHello (void); public slots: void slothello(); void slotclose(); }; /********************* khello.cc *********************/ #include "khello.moc" #include <kmsgbox.h> #include <qpushbutton.h> KHello::KHello (void) { QPushButton *hello; QPushButton *close; hello = new QPushButton( "Hello", this ); hello->setgeometry(10,30,85,30); hello->show(); connect(hello, SIGNAL(clicked()), this, SLOT(slotHello())); close = new QPushButton( "Close", this ); close-> settgeometry(10,30,85,30); close->show(); connect(close, SIGNAL(clicked()), this, SLOT(slotClose())); } Exemple de code KDE (Qt) void KHello::slotHello() { KMsgBox::message (this, "Important", "Hello KDE!!!"); } void KHello::slotClose() { kapp->quit(); } /********************* main.cc *********************/ #include "khello.h" int main (int argc, char **argv) { KApplication *app; KHello *hello; app=new KApplication (argc, argv, "Hello KDE"); KHello hello; hello.setgeometry(100,100,200,100); app->setmainwidget( hello ); hello.show(); app->exec(); }

Exemple de code GNOME (GTK+) #include <gnome.h> static void buttonhello(gtkwidget *button) { GtkWidget *msg; msg= gnome_message_box_new ("Hello GNOME!!!", GNOME_MESSAGE_BOX_GENERIC,NULL); gtk_widget_show(msg); } int main(int argc, char **argv) { GtkWidget *app; GtkWidget *hello; GtkWidget *close; GtkWidget *hbox; gnome_init ("GNOME example", "1.0", argc, argv); app = gnome_app_new ("GNOME example","hello GNOME"); /* When the program is closed */ gtk_signal_connect (GTK_OBJECT (app),"delete_event", GTK_SIGNAL_FUNC(gtk_main_quit), NULL); hbox = gtk_hbox_new (FALSE,5); gnome_app_set_contents (GNOME_APP (app), hbox); hello = gtk_button_new_with_label("hello"); gtk_box_pack_start (GTK_BOX(hbox), hello, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (hello), "clicked", GTK_SIGNAL_FUNC (buttonhello),null); close = gtk_button_new_with_label("close"); gtk_box_pack_start (GTK_BOX(hbox), close, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (close), "clicked", GTK_SIGNAL_FUNC (gtk_main_quit),null); gtk_widget_show_all(app); /* GTK main loop */ gtk_main (); return 0; } Programmer des IHM actuellement " Applications légères, hors environnement internet VB, VBA, Python " Applications légères, web VB, Java / Javascript, Macromedia Flash " Applications moyennes C/C++ et MFC, Pascal avec générateur d'interface, Python avec générateur d'interface (pygtk+, pyqt, Tkinter) " Application lourdes C / C++ / C# / DOT NET RAD / Advanced Rapid Application Development (ARAD) WinDev/ WebDev Clarion for Windows (softvelocity)

Event-routine binding: Motif, Tcl/Tk,...! Pour des applications conséquentes, il n est plus possible de gérer explicitement la boucle de messages.! De plus, une application est composé de plus en plus d éléments IHM, et une boucle de messages doit traiter tous les messages de tous les éléments! MOTIF et Tcl/Tk sont des bibliothèques utilisant X11. La boucle de gestion des messages fait partie de la bibliothèque, et devient invisible pour l application. " Utilisation de table de pointeurs sur fonction en interne, associant un pointeur sur fonction pour chaque objet / action (``Event Binding' ) " Cette table est modifiable. En général, une table par «window» Tcl / Tk! Tcl (Tool Command Language, prononcez "tickeul") est un langage interprété, disponible gratuitement (y compris si besoin les sources C) et qui fonctionne sous de très nombreux systèmes d'exploitation : Linux, Unix bien sûr, mais aussi Windows 95/98, NT, Mac/Os! Tk (Toolkit, prononcez "tikey") est l'extension de Tcl pour la gestion graphique.! Tcl et Tk ont été conçus vers 1988 par John K. Ousterhout, de l'université de Berkeley et qui après avoir travaillé chez Sun a créé sa startup : Scriptics est devenu ensuite Adjuba Solutions avant d'être racheté en octobre 2000 par Interwoven.

Tcl / Tk! Tcl est un script interprété par la commande tclsh, il peut être vu comme une extension du shell unix sh. Ce script peut être lancé soit en mode interactif: >tclsh % set a 1! soit en mode autonome en lui donnant un fichier d'entrée: >tclsh -f monfichier.tcl! Le premier cas sera utilisé pour le développement d'une application, alors que le deuxième cas permettra d'utiliser un programme tcl comme un programme à part entière.! Tk est une surcouche de Tcl, et est aussi un script interprété, mais par l'interpréteur wish (Widget shell) qui inclue tclsh. Wish permet la création d'objets graphiques (fenêtres, boutons, menus, canvas...), nommés widgets, ainsi que leur gestion, destruction,... Tcl / Tk wm title. "Vive Tcl/Tk!" label.texte -relief groove - text "Hello World!" -width 30 button.ok -text "OK" - command {exit} pack.texte.ok -side top

Tk! La structure hiérarchique des widgets est reflétée dans la façon utilisée par Tk pour nommer l'enchaînement des widgets, le point servant de séparateur et ayant donc un sens de filiation. Par exemple,.w.frame.button1.w.frame.button2.w.frame.canvas.w.label Pourquoi Tcl/Tk?! Tcl/Tk permet très simplement de construire des interfaces graphiques. Sa facilité d'utilisation réduit largement le temps de développement de l'interface graphique d'un logiciel.! De plus, Tcl est suffisamment puissant pour développer une application de petite taille.! Pour des applications de moyenne et grande taille, Tcl/Tk permet une interface simple avec le langage C (portage ADA, Java, Lisp, Perl.)! La portabilité de Tcl/Tk permet de passer d'une plateforme de développement à une autre (Mac, PC, station unix) sans aucune modification du programme!