Transcription of Les principaux domaines de l’informatique
1 Les principaux domaines de l'informatique .. abord s dans le cadre de ce cours: La Programmation Les Syst mes d'Exploitation Les Syst mes d'Information La Conception d'Interfaces les agents Logiciels Le Calcul Scientifique Informatique II Agents logiciels 1 . Pourquoi des agents logiciels ? (1). Du fait de la complexification croissante des t ches informatiser, les interactions avec les syst mes informatiques deviennent de plus en plus complexes. Elles se caract risent en particulier par une richesse fonctionnelle et des possibilit s de param trage de plus en plus importantes et il devient de ce fait difficile de concevoir des interfaces fig es.
2 La n cessit d'interfaces facilement programmables devient de plus en plus incontournable, et, avec l'av nement et la g n ralisation de l'approche objet et du principe d'encapsulation qui lui est associ , cette programmabilit peut d sormais tre con ue comme une interaction avec des entit s logicielles (les objets), par le biais des interfaces de communication/programmation (API application programming interfaces) qu'elles proposent. Informatique II Agents logiciels 2 . Pourquoi des agents logiciels ? (2). Cependant, les utilisateurs, qui ne sont pas n cessairement des programmeurs, manquent souvent de formation et l'utilisation des syst mes informatiques directement par le biais des API n'est pas r aliste.
3 On est donc confront un probl me: d'un c t la n cessit de concevoir des interfaces suffisamment flexibles et donc programmables;. de l'autre, l'incapacit de la majorit des utilisateurs utiliser effectivement les interfaces de programmation fournies, qui restent trop complexes. Il faut donc modifier l'approche traditionnelle de l'interaction personne-machine en y int grant plus d'intelligence et d'automation c'est l'un des r les importants des agents logiciels. Informatique II Agents logiciels 3 . Exemple: contr le de porte (1).
4 Un exemple simple: le m canisme de contr le d'une porte automatique Consid rons un syst me relativement simple de contr le de porte automatique constitu des l ments suivants : le moteur de contr le de la porte coulissante: ce moteur doit permettre quatre actions principales: Capteur de l'ouverture, la fermeture, le verrouillage de la pr sence (int) porte (blocage en position ferm e, si la porte n'est pas verrouill e, alors elle doit s'ouvrir Moteur de contr le d s qu'une pr sence est d tect e) et son d verrouillage.
5 Deux capteurs de pr sence Lecteur de (un de chaque c t de la porte). cartes permettant de d tecter une pr sence dans une zone active d termin e autour de la porte;. Porte (coulissante) un syst me d'authentification (par exemple un lecteur de carte). permettant un ventuel utilisateur de valider son identit pour d terminer ses droits Capteur de d'acc s. pr sence (ext). Informatique II Agents logiciels 4 . Exemple: contr le de porte (2). Ce syst me physique peut tre mod lis sous la forme de 5 objets logiciels: un objet porte disposant de 5 m thodes: ouvrir(), fermer(), verrouiller(), d verrouiller() et status(); Moteur Lecteur status deux objets capteurs [ capteurInt et identifie demandeId ouvrir fermer capteurExt] disposant chacun d'une m thode verrouiller pr sence() (qui renvoie une valeur vraie si une d verouiller pr sence est d tect e, fausse sinon).
6 D'un objet lecteur disposant de 2 m thodes: demandeIdentification() dont le r le est de Contr leur signaler l'utilisateur qu'il doit s'identifier ( en faisant clignoter un signal lumineux contr le autorise sur le lecteur) et identifie() qui r alise l'identification et renvoie un identificateur d'utilisateur en cas d'identification r ussie ou une valeur nulle sinon. CapteurExt CapteurInt d'un objet contr leur, d di au pilotage de la porte, pr sence pr sence disposant de la m thode centrale contr le(), ainsi que de la m thode autorise(), indiquant si la personne identifi e a ou non le droit d'entrer.
7 Informatique II Agents logiciels 5 . Exemple: contr le de porte (3). A l'aide de ces objets, on pourrait par exemple crire le programme de contr le tr s simple suivant: 1. boucle infinie permettant void contr le() { un contr le continu while (VRAI) {. d tection d'une pr sence pour sortir if ( ()==VRAI) {. on doit toujours ();. pouvoir sortir for (int t=0; ( ()==VRAI) && (t<TIME_OUT); t++);. (); d tection d'une } pr sence pour entrer boucle d'attente de sortie if ( ()==VRAI) { (avec temporisation). int userId(0).}}}
8 If ( ()==VERROUILLEE) { si la porte est verrouill e, (); on demande une identification userId = (); de l'utilisateur ext rieur }. if (( ()!=VERROUILLEE) || (autorise(userId)==VRAI)) {. ();. for (int t=0; ( ()==VRAI) && (t<TIME_OUT); t++);. ();. } } } } boucle d'attente d'entr e (avec temporisation). 1. Notez que ce programme tr s simple ne g re par le verrouillage et le d verrouillage de la porte. De plus, l'association entre une porte, un lecteur et un couple de capteurs doit tre faite par le programmeur, lors du choix des arguments du constructeur du contr leur.
9 Informatique II Agents logiciels 6 . Limitations de l'approche base d'objets L'impl mentation tr s simple sous forme d'objets que nous avons esquiss e poss de plusieurs limitations qui la rendent difficilement extensible des scenarii de contr le plus sophistiqu s : la logique du contr le est noy e dans le corps de la m thode contr le: cela la rend difficile maintenir et faire voluer. Il serait plus efficace de pouvoir exprimer cette logique de fa on d clarative, ind pendante de sa mise en uvre au sein d'un programme.
10 Le d roulement du contr le n'est pas tr s naturel, ce qui ne facilite pas sa mise en uvre par des utilisateurs non avertis. Pour illustrer le second point, consid rons ce qui pourrait se passer si le contr le tait fait (comme au bon vieux temps) par un portier humain (par exemple assis dans une loge de verre avec deux fen tres de communication, une vers chacun des deux cot s de la porte. Informatique II Agents logiciels 7 . Un sc nario naturel (1). 1. Cas d'un utilisateur sortant: Le portier voit arriver de l'int rieur un utilisateur vers la porte.)