FR 2814568 A1 20020329 FR 0012476 A 20000925 Assistant personnel électronique intelligent La présente invention décrit un assistant personnel électronique intelligent permettant d'assister un utilisateur dans la gestion de ses tâches quotidiennes à partir d'une pluralité d'endroits par exemple, son logement personnel, son bureau et son appareil portable. Cet assistant s'intéresse tout particulièrement aux problèmes posés par la prise de rendez-vous et à la gestion des tâches d'un utilisateur accédant à des systèmes d'information hétérogènes. Cet assistant permet entre autres de traiter les données utilisateurs professionnelles et personnelles en utilisant des modules / agents intelligents pour gérer ces données, ceci dans un but de confidentialité et de facilité de gestion. Jusqu'à présent, ces différentes données existent dans des mondes hétérogènes ne communiquant pas ensemble. Considérons la gestion des rendez-vous. De nos jours, la prise de rendezvous avec d'autres participants est un problème quotidien. Les participants doivent négocier des propositions puis des contre propositions pour arriver à un accord sur l'organisation d'une éventuelle réunion. Chaque acteur doit prendre en compte ses propres préférences et contraintes sans qu'un autre ne soit au courant des siennes. Chacun souhaite travailler avec un emploi du temps aménagé en fonction des tâches à effectuer. Etant donnée la quantité de donnée à manipuler dorénavant pour gérer ses rendez-vous, il est nécessaire de travailler avec un système permettant de limiter le temps consacré à chaque tâche. Ces données proviennent généralement de plusieurs environnements de travail professionnels et personnels. La gestion de ses données est devenue extrêmement complexe quand il faut garder à l'esprit que les rendez-vous pris dans un environnement ne doivent pas interférer avec ceux pris dans un autre environnement. Pour éviter les conflits, il faudrait pouvoir disposer librement des données personnelles et professionnelles des participants. Cependant, chacun souhaite garder ses données personnelles et professionnelles confidentielles. C'est en voulant trouver une solution répondant aux problèmes de prise de rendez- vous qu'est né l'assistant personnel électronique intelligent. Diverses motivations encouragent le développement du système présenté tout au long de cette invention. Par exemple, dans le milieu professionnel, le système permet d'accélérer la validation d'étapes de développement d'un produit pour réduire les délais de livraison de ce produit. Le système permet naturellement de mieux gérer un agenda et par conséquent d'augmenter la productivité d'un utilisateur. Une meilleure organisation des données entre différents collaborateurs permet à ceux- ci de se rencontrer plus rapidement Ces raisons peuvent être aussi personnelles. Du fait que le système intègre les données personnelles, une rencontre établie à l'avance avec un concessionnaire automobile pour la révision d'un véhicule sera prise en compte par l'utilisateur pour éviter des conflits dans l'organisation de son emploi du temps avec d'autres rendez-vous. Le système ne permet pas seulement d'éviter les conflits mais il optimise la résolution des tâches par rapport à chaque utilisateur. -2- Il existe bien actuellement des systèmes permettant d'automatiser la prise de rendez-vous mais on s'aperçoit que les systèmes proposés ne font pas l'unanimité auprès des utilisateurs. Les utilisateurs refusent qu'un programme informatique puisse prendre des décisions à leur place. Les utilisateurs refusent de rendre accessibles leurs données personnelles à d'autres personnes, que celles-ci soit leur secrétaire ou un autre utilisateur. Aujourd'hui, aucun système ne permet de lier en temps réel quand il le faut, plusieurs acteurs pour négocier rapidement une prise de rendez-vous, tout en prenant en compte des dispositions personnelles de chaque utilisateur. Aucun système ne permet de gérer l'ensemble des priorités dans un environnement de travail global. Le système présenté dans cette invention s'intéresse particulièrement à l'automatisation du travail ne nécessitant pas de logique humaine afin de laisser du temps à l'utilisateur pour se focaliser sur des tâches demandant une réelle réflexion humaine. Le domaine universitaire s'intéressant à l'intelligence artificielle est le plus actif concernant l'automatisation de la prise de rendez-vous sans intervention humaine. Aujourd'hui, des agents intelligents sont utilisés dans le but de prendre des décisions à la place des acteurs ou de leur représentant. Le système en question ici n'est pas destiné à la prise de rendez-vous sans accord préalable de l'utilisateur bien que ce système puisse le faire. Il pemnnet d'automatiser le processus de prise de rendez-vous avec d'autres acteurs avec accord final de ceux-ci. Un des buts de cet assistant est d'établir une meilleure gestion de l'emploi du temps et notamment des rendez-vous. Il permet en plus d'améliorer la qualité du travail et tout particulièrement des réunions. Aujourd'hui, les gens sont souvent surchargés et ne trouvent pas suffisamment de temps pour réaliser au mieux leurs tâches. Des réunions sont organisées mais restent souvent malheureusement insuffisamment préparées pour permettre un travail efficace. Les gens doivent donc se rencontrer une nouvelle fois pour aborder les mêmes sujets. Ces sujets sont la plupart de temps mal préparés par manque d'informations et de temps. Cet assistant vise aussi à augmenter la qualité des réunions en apportant une aide à l'organisation du travail. Cet assistant permet d'établir de réelles économies d'échelle dans une entreprise. Un autre but de cet assistant est de créer une charnière pour permettre aux utilisateurs de gérer leur vie privée et leur vie professionnelle à partir d'un système unique. L'utilisateur n'a donc plus besoin de s'inquiéter pour gérer en parallèle des données privées et professionnelles en craignant des conflits ou en essayant d'optimiser la gestion de plusieurs environnements de travail. Aujourd'hui, les gens n'ont pas tous des secrétaires ou bien partagent une secrétaire avec dix autres personnes. Le système proposé permet de mieux repartir l'effectif des secrétaires, et en l'absence de secrétaires, de les aider à gérer leurs données personnelles et professionnelles. En quelques sortes, les agents échangent des données qui permettent de trouver un compromis dans la prise de rendez-vous et proposer ainsi à l'ensemble des utilisateurs désireux d'obtenir une réunion, une solution convenant à tous et optimisée en fonction des contraintes définies par eux- mêmes dans un profil utilisateur. 3 - Afin d'automatiser le processus de prise de rendez-vous, il faut avoir accès à tous types de données. Il est nécessaire de travailler avec un outil permettant de joindre des données hétérogènes à l'intérieur d'un système homogène. Par manque d'outils adéquats, il n'est donc pas possible aujourd'hui de gérer dynamiquement différents systèmes d'information comme Microsoft Outlook/Exchange (marque déposée) et Lotus Notes (marque déposée) à partir d'un unique système les intégrant. Il n'y a pas d'agents sur le marché en tant qu'assistant personnel gérant l'environnement de l'utilisateur (bien que des universités s'y intéressent). Une solution est apportée par la présente invention. Dans le cas o un utilisateur posséderait ses données sur un Intranet, par exemple dans un système d'information Microsoft ou Lotus, et d'autres données sur un PDA (assistant numérique personnel) ou tout autre appareil portable, la synchronisation sur un serveur d'information centralisé est pour l'instant le seul moyen pour faire interagir les données. Dans l'état actuel, l'utilisateur est donc obligé de laisser entièrement accès à ses données personnelles pour que sa secrétaire puisse le seconder par exemple, ceci dans le cas o il aurait une secrétaire évidemment. La solution apportée ici permet de séparer les données professionnelles et personnelles tout en laissant accès aux informations réellement nécessaires. Par exemple concernant l'agenda, la disponibilité de certains créneaux horaires est donnée par les agents. Le contenu des agendas n'est en outre jamais divulgué. L'agent agissant au nom de l'utilisateur principal est programmé pour répondre à l'agent de la secrétaire ou à un autre agent ayant émis une requête: "non ce rendez- vous ABC n'est pas possible, mais les moments disponibles pour un rendez-vous seraient plutôt XYZ". Basé sur ce système et en ce qui concerne la requête de prise de rendezvous, le système innove avec l'utilisation d'interface o il est possible de gérer des paramètres du type importance relative de l'invitant, importance relative de l'invité, début de la réunion, durée, plage horaire utilisant la logique floue, contraintes et préférences sur les dates et horaires, sujet, commentaire, autorisation d'être dérangé pendant la réunion, personne déléguée en cas de non-assistance et enfin du type de stratégie à appliquer pour obtenir un rendez-vous. -4- En résumé, il n'y a pas de système intégrant un ensemble d'agents intelligents échangeant avec d'autres agents des informations sous un format standard d'échange de données, par exemple de type XML, conservant la confidentialité des données échangées si nécessaire, de plus coordonnant et gérant: 5. la détection et le type de connexion les agendas et prises de rendez-vous À les contacts À les courriers électroniques * les appels téléphoniques * les fax À les tâches à effectuer a les mémos À la recherche d'informations sur lIntemet À la recherche d'information sur l'Intranet À le niveau de rendement de l'utilisateur les ressources matérielles du type des salles à allouer pour une réunion a les ressources matérielles du type matériel de bureau nécessaire (projecteur ou autres) les ressources non matérielles comme la commande de mrafraîchissements auprès d'un établissement spécialisé 20. les activités quotidiennes comme l'étude du trafic avant de prendre la route ou la commande de billet en fonction de son profil utilisateur professionnel ou personnel ou bien encore l'utilisation de thesaurus pour communiquer dans d'autres langues À les achats de l'utilisateur en cas d'achats en ligne sur Internet À l'environnement de travail matériel a l'environnement de communication (Internet, Intranet, GSM, UMTS, Bluetooth (marque déposée), différents supports comme des ordinateurs connectés en permanence à un Intranet, à Intemet, des ordinateurs portables, téléphones, assistants personnels, pageurs connectés ponctuellement aux réseaux cités précédemment) À les profils utilisateur quant au comportement et aux préférences a les profils techniques pour l'utilisation de ressources À la gestion des connaissance des utilisateurs l'apparence de la fenêtre graphique utilisateur Au final, avec toutes ces options, il est envisagé de visualiser l'activité de l'utilisateur ou l'activité de ces collaborateurs si on y est autorisé en fonction des paramètres que l'on souhaite étudier. Les récents progrès ayant permis l'élaboration de cette invention vont être maintenant décrits dans la rubrique suivante concernant l'état de la technique. 2814568 Art antérieur Le sujet demandant un extrême niveau de complexité, de nombreux chercheurs en intelligence artificielle se sont penchés sur la question de la prise de rendez-vous assistée par des agents intelligents. Il faut rappeler qu'un agent intelligent est en fait un programme informatique transportant de la donnée et est capable de hétérogènes dans lesquels évoluent les utilisateurs. British Telecommunications (marque déposée) est aussi un acteur important sur ce marché puisque sur leur site Internet de nombreuses informations sont rendues publiques. De plus par le brevet W099/05597, un système est mis en place utilisant la collaboration d'agents intelligents entre eux. Dans un avenir proche leur système emploiera sûrement des agents intelligents pour gérer les différents types de données cornme la gestion d'agenda, des mails, d'appels téléphoniques, de liste de tâches à effectuer. La plate-forme commune permettant d'échanger des messages entre agents s'appelle ZEUS (marque déposée). Cependant ZEUS n'est pas conçu pour pouvoir faire interagir des agents intelligents avec des appareils portables. Il ne sera donc pas prévu d'utiliser un profil utilisateur fournissant les différentes sources de données de l'utilisateur. Avec ZEUS comme plate-forme, il est peu probable que l'utilisateur puisse avoir des données stockées à plusieurs endroits, par exemple dans une base de donnée stockée sur un serveur Intemet et sur un PDA par exemple. La logique floue sera peut-être utilisée lors de la -6- requête pour un rendez-vous étant donné que quelques autres s'intéressent à cette logique pour des applications de même type. A la vue des informations publiées par British Telecommunications, il semble que leur système sera davantage basé sur l'utilisation d'agents gérant des tâches. Le concept d'assistant personnel sur lequel travaille British Telecommunications est un programme fonctionnant sur des machines fixes internes à une société soit sur un ordinateur en local soit sur un serveur interne. Le système n'est pas prévue pour fonctionner avec des appareils portables ni même avec un serveur distant. Dans le cas o les utilisateurs se servent de Microsoft Outlook ou Lotus Notes alors une passerelle devrait permettre aux agents de communiquer à travers l'arête centrale ZEUS. Le brevet WO99/17194, intitulé "Ressource management system" est une des briques principales d'un système utilisant les agents intelligents pour gérer la charge de travail et le flux d'informations dans une entreprise. Microsoft Outlook ou encore Lotus Notes, pour ne citer qu'eux ne proposent pas de moyens pour donner des priorités à certaines tâches. Ils ne possèdent pas non plus d'agents intelligents qui automatisent les tâches faites aujourdhui manuellement. A travers le logiciel Microsoft Outlook, il est possible de publier des données sur une page Internet et de les rendre accessibles en communiquant l'adresse du serveur sur lequel se trouve la publication des disponibilités des utilisateurs. Il est ainsi possible de connaître l'emploi du temps d'un utilisateur si celui- ci a effectué les démarches pour. Ces logiciels ne sont donc pas adaptés pour assister l'utilisateur mais ils permettent de fourmir les briques de bases sur lesquelles notre système repose. Le but des agents intelligents est de supprimer les intermédiaires comme les secrétaires et c'est sans doute le frein principal au développement des systèmes les utilisant. La présente invention se base sur d'autres utilisations des agents parce que nous pensons que les agents intelligents sont destinés à seconder les hommes i.e. faire tout le travail automatisable et laisser le prise de décision à l'homme. Un standard est en cours d'élaboration par lTntemrnet Society pour utiliser les données d'une application à une autre. Par exemple on peut faire référence aux documents suivant: Intemrnet Calendaring and Scheduling Core Object Specification (iCalendar) (RFC 2445), iCalendar Transport Independent Interoperability Protocol (iTIP): Scheduling Events, Busy Time, To-dos and Journal Entries (RFC 2446), iCalendar Message based Interoperability Protocol (iMIP) (RFC 2447), Calendar attributes for vCard and LDAP (RFC 2739), Calendar Access Protocol (CAP) (draft-ieff-calsch-cap), Implementors' Guide to Internet Calendaring (draft-ieff- calsch-imp-guide), Fixing the iCalendar Registration Process (draftstracke-calsch-ical-reviewer), CAP Realtime iTIP based Scheduling Profil (CRISP) (draft-stracke-calsch-crisp). Ces standards seront utilisés par le système présenté dans l'invention pour simplifier les échanges entre agents. Etant donné que le système présenté dans cette demande de brevet prend en compte le fait que les données puissent être enregistrées à des endroits qui ne sont pas accessibles en permanence par des agents intelligents, il sera sûrement nécessaire d'utiliser des outils permettant d'établir un lien entre les différentes bases de données. La demande de brevet EP0917077, intitulé 7 2814568 "Wireless remote synchronization of data between PC and PDA", propose une solution pour connecter les appareils entre eux et avec le réseau afin que les agents intelligents puissent obtenir des irdnformations pour mettre en oeuvre le système. La demande de brevet EP0921670, intitulé "Electronic Scheduling devices", permet de prendre des rendez-vous à distance en utilisant son téléphone. Ce système utilise les boîtes vocales et les courriers électroniques. La demande de brevet EP0697671, intitulé 'Electronic secretary system", peut aussi servir pour montrer qu'une interface téléphonique représentant une secrétaire est un élément que l'agent de gestion des appels téléphoniques emploiera dans notre système. Pour optimiser cette gestion, on notera aussi la demande de brevet W099/21101 permettant de connecter ou déconnecter un téléphone portable en fonction de l'importance de l'appelant durant une réunion et ceci en utilisant une interface graphique utilisateur. Un autre type d'interface utilisateur a été développé dans le brevet US5877759. Cette interface emploie en arrière plan des agents intelligents qui servent à aller chercher des informations ou bien à prendre des rendez-vous. La prise de rendez-vous est toujours assistée par r'envoi de courrier électronique et ne permet pas de gérer des contraintes complexes ni même de garder la confidentialité des données. En aucun cas, le lien avec autres types de réseau comme celui gérant les appareils portables n'est pris en compte. De plus, en aucun cas, l'environnement dans lequel évolue l'utilisateur n'est pris en compte. Concernant l'utilisation d'un agent intelligent pour la gestion des courriers électroniques, certaines informations sont disponibles dans les différents articles comme '"Leaming rules that classify E-mail" écrit par Wiliam W. Cohen d'AT&T, "An open agent architecture" de Philip R. Cohen et Adam Cheyer ou bien dans les brevets US5765178 "Electronic mail receiving system allowing receiving party control of a display format of received mail", EP0420779 "User selectable electronic mail management method". En ce qui concerne le fait d'utiliser un agent coordinateur, des informations se trouvent dans l'article "Coordination of multiple intelligent software agents" de Katia Sycara et Dajun Zeng. Cet article n'adresse cependant pas le cas d'un système ayant des calendriers utilisant différents formats bien que des bases de données hétérogènes soient employées. C'est à dire que le système possède un seul type d'agent intelligent de prise de rendez-vous et celui-ci s'occupe d'aller chercher des informations dans un type de calendrier. Un autre type d'agent s'occupe d'aller chercher des informations sur l'Internet par exemple mais en tout cas quand ils parlent d'hétérogénéité des données ils envisagent les formats différents entre le format de l'Intemrnet et le format du calendrier. Il n'est jamais fait allusion aux possibilités d'extension du système avec des données enregistrées sur des appareils portables ni même aux faits de posséder des données sur plusieurs systèmes hétérogènes. En ce qui concerne les PDAs, le brevet US5842009 décrit un PDA ayant une interface permettant d'obtenir des informations sur des rendez-vous ou sur des tâches. Il n'est aucunement question cependant d'avoir un outil gérant la prise de rendez-vous sur ce type de PDA et encore -8- moins d'avoir des agents intelligents servant d'assistant personnel pour gérer les données dans la globalité en les faisant interagir avec d'autres types de données. En ce qui concerne l'utilisation d'agents intelligents pour établir une requête vers les pages jaunes, des informations se trouvent dans un article intitulé "an intelligent directory enquiry assistant" écrit par A de Roeck entre autres. En ce qui concerne les agents intelligents chargés de gérer l'activité et l'état de stress de l'utilisateur, le brevet US6065138 présente un système étant à l'écoute de l'utilisateur et le brevet US5579238 présente un système pour étudier la force avec laquelle un utilisateur frappe le clavier. En ce qui concerne les agents intelligents chargés de gérer l'environnement de travail de l'utilisateur pour savoir si il possède une caméra pour la visio conférence, un microphone pour interfacer avec un module de reconnaissance vocale et autres périphériques, il sera possible de trouver des informations dans le document intitulé "Intelligent multi-modal systems" écrit par K C Tsui et al, publié dans BT technical journal vol 16 No3 July 1998. En ce qui concerne les agents pour la prise de rendez-vous, certaines informations sont disponibles sur le site suivant: http://www.cs.ualberta. ca/-qihua/scheduler/report.html "An intelligent meeting scheduler". Les agents sont essentiellement dédiées à la prise de rendez- vous. Ils ne fonctionnent que sur une seule plate-forme. Ils n'y a pas non plus d'agent coordinateur interagissant avec d'autres agents. En ce qui concerne l'utilisation d'agents intelligents avec des PDAs, le document intitulé "Multimodal user interfaces in the open agent architecture" écrit par Douglas B Moran et al, et publié le 6 Janvier 1997 propose le principe global d'utiliser des agents intelligents avec des PDAs pour gérer son calendrier. L'utilisateur peut interagir avec d'autres utilisateurs mais en fait il garde ses propres données dans une seule base de donnée. Il n'y a pas de distinction entre sa base de donnée personnelle et sa base de donnée professionnelle. Il n'y a donc aucune confidentialité du point de vue d'un utilisateur externe. Jamais un profil utilisateur n'est pris en compte pour spécifier l'endroit o aller chercher les données et le type d'agent à utiliser pour accomplir la tâche. Les principales caractéristiques que ne comprend jamais l'art antérieur et qui consiste à rendre le système présent nouveau et inventif est que jamais un assistant électronique personnel intelligent n'a comporté la possibilité de gérer tout l'environnement de travail de l'utilisateur tout en conservant ses données à des endroits différents sur des plate-formes hétérogènes. Pour cela, il existe un profil qualifié de technique dans ce sens o ce n'est pas un profil utilisateur en charge de la gestion du comportement de l'utilisateur. Pour que les agents fassent leur travail, le système comprend aussi évidemment ce dernier type de profil. 9- Description brèves des figures La figure 1 représente le système dans sa globalité, les différents modules ou agents qui constituent le système dans son intégralité ainsi que les différents environnements dans lesquels le système est prévu pour fonctionner. La figure 2 représente plus particulièrement des exemples d'environnements dans lesquels le système assiste les utilisateurs. La figure 3 représente les différentes étapes utilisées pour prendre un rendez-vous. La figure 4 représente la démarche effectuée par l'assistant personnel électronique intelligent pour résoudre la tâche consistant à prendre des rendez-vous. La figure 5 représente l'interface pour la prise de rendez-vous. La figure 6 représente l'interface utilisateur graphique de l'assistant personnel électronique intelligent. - 10 - Description Le monde dans lequel les utilisateurs évoluent est un monde hétérogène o l'échange de donnée n'est pas encore très facile. Chaque société utilise un ou plusieurs systèmes propriétaires pour enregistrer ses propres données. Certains standards voient le jour comme Vcard et Vcalendar (marques déposées) dans le but d'échanger des données de type carte de visite et calendrier. XIML (eXtended Markup Language) sera sans doute le format standard pour échanger des données du type carte de visite et calendrier dans le futur cependant il faudrait que chacun s'accorde à développer une DTD (Document Type Definition) commune pour ces deux applications. LInternet va aussi sûrement évoluer dans ce sens en utilisant de plus en plus XML comme langage d'échange de donnée. En supposant que les agents intelligents servent à aller modifier des informations relatives à un utilisateur et que ces informations se trouvent sur un appareil portable, il faudra envoyer à partir d'un serveur, un document XML et un agent intelligent qui soit capable de faire interagir les données avec l'appareil portable. Par la demande de brevet FA572683 requise par l'auteur de la présente demande, il est utilisé une méthode permettant de traiter des informations sous format XML à l'aide d'un programme dépendant du profil technique de la machine qui doit traiter les informations XML. Ce programme servirait donc à faire l'interface entre l'agenda, les contacts, tout l'environnement fonctionnant sur l'appareil portable et le serveur partenaire de l'échange de données. L'idée est donc venue d'utiliser XML pour échanger des données de type calendrier ou toutes informnations personnelles avec un autre système dans le but daccroître la productivité, l'efficacité de chacun en travaillant sur un outil gérant les agendas, les contacts, les prises de rendez-vous et autres tout en gardant confidentiel les données de chaque utilisateur. La figure 1 représente le concept de l'invention mis en évidence. Le concept suivant est basé sur l'interaction entre agents intelligents dédiés a résoudre les tâches des utilisateurs travaillant dans des environnements hétérogènes. Les modules ou agents intelligents sont représentés par les éléments 1000à 1017. Aujourd'hui les utilisateurs travaillent sous des environnements intégrés, par exemple Microsoft Outlook, Lotus Notes, Symantec (marque déposée) pour gérer leur agendas, liste de contacts, liste de tâches à effectuer, gérer les courriers électroniques quand les données sont à caractère professionnel et qu'ils sont sur des postes fixes. Sur la figure 1, les différents modules 1000-1017 peuvent interagir avec différents réseaux: Intranet 1600, GSM 1500 RTC 1400, UMTS 1300 dans les années futures, Intemrnet 1200 et d'autres réseaux 1100 commne le palmnet (marque déposée) ou bien le réseau des pageurs ou encore le réseau ISDN qui n'est pas mentionné sur la figure I bien qu'aucune difficulté ne se présenterait pour intégrer le système avec ce réseau. Aussi, les utilisateurs sont amenés à posséder des données personnelles et professionnelles que ce soient pour les agendas, les contacts, les courriers électroniques, les numéros de téléphones et autres. Ces données peuvent être stockées dans des bases complètement délocalisées comme dans une base 1611 stockée sur le disque dur d'une station de travail personnelle 1610 reliée à l'Intranet ou sur une base 1621 d'un PDA 1620, - 11 - ou sur une base 1631 d'une station de travail 1630 quelconque cependant reliée à l'Intranet. De plus en plus, ils utilisent des bases de données stockées à distance sur 1Internet dans le but d'accéder aux données indépendamment de leur localisation. Ces bases de données sont représentées par les éléments 1121, 1211, 1221, 1222, 1231 et 1232. Les utilisateurs sont amenés à travailler aussi à partir de leur assistant personnel de type Palm pilot (marque déposée) par exemple. Chaque base de donnée possède aujourd'hui son propre système pour gérer les données. XML n'est pas encore implémenté pour les échanges de données entre les différents systèmes cités précédemment. Pour accéder aux données, il faut par exemple utiliser des méthodes développées par les créateurs de ces bases de données. Microsoft utilise des OLE par exemple. En général, les données inscrites dans une base de donnée propriétaire ne sont pas directement accessibles. Et même si XML était déjà implémenté, il faudrait toujours un outil permettant de gérer le flux de données entre différents environnements. Un utilisateur peut posséder plusieurs bases de données différenciées sur plusieurs types de plate-formes différentes comme nous venons de le présenter. Par exemple, l'utilisateur peut avoir une base professionnelle 1611 sur sa station de travail 1610, et une base personnelle 1621 sur son PDA 1620. La base professionnelle peut être synchronisée sur le réseau (Intranet ou Intemet) de manière automatique, et accessible à tous. La base personnelle par contre, est simplement répliquée régulièrement sur le réseau et ne sera accessible qu'à lui seul et à son agent personnel. Elle peut aussi ne pas être répliquée du tout. Il faut bien sûir que le système puisse accéder aux informations contenues dans les deux bases professionnelles et personnelles, ou tout au moins à des indications relatives au contenu de ces bases. Pour cela, un profil utilisateur 1005 est créé. Ce profil 1005 est différent du profil 1004 s'attachant à apprendre le comportement de l'utilisateur. Ce premier profil 1005 contient au minimum les données indispensables au fonctionnement du système: ò Identification de l'utilisateur 25. Mot de passe * Données nécessaires pour l'accès à la base professionnelle (emplacement, type de base, type d'agent, identification, mot de passe, algorithme d'accès, procédures en cas d'échec de lecture ou d'écriture) * Données nécessaires pour l'accès aux bases personnelles * Mode de contact et coordonnées de l'utilisateur (GSM, SMS, courrier électronique) Par ailleurs, le profil 1004 peut aussi comporter d'autres informations susceptibles d'être intéressantes pour améliorer les performances, l'efficacité, la flexibilité et l'ergonomie du système. Par exemple, on peut très bien envisager d'intégrer les informations sur les plages horaires de travail de l'utilisateur. Le système peut donc se passer de consulter la base de données personnelle pendant les heures de travail, si l'utilisateur a défini sa base de donnée personnelle comme étant uniquement accessible pour des rendez-vous en dehors du temps de travail. On peut aussi intégrer une liste de personnes (contacts) et une série de pondérations quant à l'importance relative de ces personnes et le comportement du système face à une requête urgente de rendez- -12 - v2814568 vous d'un de ceux-ci. On peut aussi programmer le système pour répondre à des demandes de rendez-vous automatiquement en fonction du requérant. Toutes ces informations sont partagées entre les deux types de profils 1004 et 1005. Pour les utilisateurs ayant une secrétaire, celle-ci possède un droit de regard relativement complet sur l'environnement de travail bien que ce regard soit accordé par le responsable qu'elle aide. Pour ce qui concerne les données en général, une forte tendance apparaît pour la gestion des données à l'aide de terminaux portables comme le Palm pilot, le Psion (marque déposée), le Pocket PC (marque déposée) et tous les PDAs ou téléphone portable permettant de gérer des données, tous de type 1120, 1310, 1410, 1510 et 1620. En effet, le marché des appareils portables est en pleine explosion et aucune solution ne permet d'avoir un environnement de travail similaire indépendant de la machine sur laquelle l'utilisateur est connecté. Une forte tendance apparaît aussi pour la délocalisation des données de types agendas pour être stockées sur lInternet et donc accessible plus facilement et à partir d'un poste ayant une connexion Internet 1220. L'idée sous jacente du système est qu'un agent est un processus dans un environnement multi tâche. Cet agent possède différents états. Ces états changent en fonction d'interaction avec d'autres agents. L'agent est programmé pour avoir un but en fonction du profil de son utilisateur, i n'est pas possible de l'extérieur de connaître le comportement d'un agent. Les agents entre eux échangent des messages. Les agents représentatifs de chaque utilisateur sont à l'écoute de tout changement dans les bases de données auxquelles des modifications interviennent. Le programme principal fonctionne sur un serveur 1230 et / ou 1640. Le système peut aussi fonctionner sur chaque station de travail 1210, 1220, 1610, 1630. Certains modules peuvent fonctionner sur les serveurs et d'autres sur les stations de travail. A partir du profil des ressources, il est possible à l'agent coordinateur 1000 de connaitre les endroits o il doit aller chercher les données et éventuellement les ressources comme les agents intelligents pour effectuer les différentes tâches qu'il doit résoudre. L'agent coordinateur 1000 se trouve sur le serveur interne d'une entreprise 1640, sur un serveur Internet 1230 ou bien encore sur un appareil mobile du type PDA 1620. Cet agent coordinateur 1000 communique avec un ensemble d'agents intelligents et un profil utilisateur 1005 mentionné précédemment. Cet agent coordinateur 1000 échange avec d'autres agents 1001-1017 des informations sous un format standard d'échange de données, par exemple de type XML, coordonnant et gérant: - 13- d2814568 À La détection et le type de connexion que l'utilisateur emploie, module 1001 À les agendas et la prise de rendez-vous, module 1002 À les contacts, module 1003 À les courriers électroniques, module 1012 5. les appels téléphoniques, module 1013 À les fax, module 1011 À les tâches à effectuer, module 1008 À les mémos, implémenté dans le module de l'agenda 1002 a la recherche d'informations sur lIntemrnet, module 1016 10. la recherche d'information sur l'intranet, module 1010 À le niveau de rendement de l'utilisateur, module 1009 À les ressources matérielles du type des salles à allouer pour une réunion, module 1006 les ressources matérielles du type matériel de bureau nécessaire (projecteur ou autres), module 1006 15. les ressources non matérielles comme la commande de rafraîchissements auprès d'un établissement spécialisé, module 1018 ( non représenté sur la figure 1) i les activités quotidiennes de l'utilisateur, module 1017 les achats de l'utilisateur en cas d'achats en ligne sur Internet * les périphériques de l'environnement de travail, module 1007 (cela peut aussi être un module à part) l'environnement de communication (Intemet, Intranet, GSM, UMTS, PalInnet, Bluetooth, pageurs et autres), module 1007 o les profils utilisateur quant au comportement et aux préférences, module 1004 À les profils techniques pour les utilisations des ressources comme les bases de données ou les modules précédemment cités, module 1005 À la gestion des connaissances des utilisateurs, module 1014 À l'apparence de la fenêtre graphique utilisateur, module 1015 Les différents agents vont maintenant être décrits par rapport au système global. Ils possèdent tous leur propre interface utilisateur et interagissent avec les autres types d'agents. - 14- Utilisation de l'agent de détection d'une connexion et de son type Un agent sert à détecter si un utilisateur est connecté au système communiquant ainsi à l'agent coordinateur l'autorisation de transmettre des messages destinés à celui-ci. Ce module permet parallèlement de détecter le type de connexion comme la connexion à partir d'un PDA, d'une station de travail sur l'Intranet ou l'Intemrnet, de sa station de travail personnelle connectée à l'Intranet ou à l'Internet ou encore à, partir d'un téléphone. Le fait de connaître le type de connexion permet à l'agent coordinateur de transmettre les messages sous une forme appropriée optimisant la réception des données en fonction du support. Cela est très utile lorsqu'on est connecté avec un PDA par exemple et que les capacités de la machine sont restreintes. Naturellement, il n'est pas bien utile de transmettre des informations qui ne pourront pas être bien interprétées par l'utilisateur. Cela permet donc de communiquer avec l'utilisateur de manière adaptée. À Utilisation de l'agent coordinateur Cet agent sert à gérer les activations d'autres agents pour obtenir des réponses aux requêtes souhaitées. Son rôle est bien particulier. Il est programmé en Java (marque déposée) bien que ce ne soit pas une solution unique à partir du moment o un autre langage de programmation gère des processus en parallèle. Aujourd'hui les différents agents sont programmés en Java parce que Java est portable et permet l'exécution de processus en parallèle. Cet agent fait appel à une base de donnée o sont enregistrés les profils des l'utilisateurs tels que l'endroit o se trouvent les données concernant les agendas possibles et autres ressources vues précédemment. L'agent coordminateur est celui qui provoque l'appel d'autres agents pour obtenir les données lui permettant de gérer l'intégralité du système. Il est la passerelle entre tous les modules et les différentes architectures. Cet agent accède aussi aux données sur l'utilisateur et renseigne les autres modules comme celui gérant les courriers électroniques. Il existe un fichier o sont répertoriées les conditions, les contraintes et les préférences que tous les agents utilisent pour répondre aux requêtes de l'agent coordinateur. L'agent coordinateur demande des requêtes du style: cherche des informations sur ce rendez-vous..., ensuite l'agent de recherche exécute la recherche en ayant en paramètre ce que l'agent coordinateur lui a passé. La réponse de cet agent recherche est ensuite donnée et l'agent coordinateur détermine si il est nécessaire de lancer une prise de rendezvous d'un intervalle de temps suffisant pour laisser du temps à l'utilisateur pour lire les informations collectées. I va de soi que lorsqu'un utilisateur reçoit du courrier électronique qui doit être lu et être assimilé, alors cet agent emploiera un autre agent qui déterminera en fonction des moments de stress les moins importants calculés par rapport à l'activité de l'utilisateur le moment opportun pour réserver du temps à la lecture et éventuellement à la réponse aux courriers électroniques. Cette fonction sera définie ultérieurement. Il en va de même pour les appels téléphoniques qu'il faut écouter et qui sont dans la boite vocale. Cet agent permet aussi de gérer le niveau d'interruption que l'utilisateur est prêt à accepter pendant un rendez-vous ou pendant une tâche - 15qu'il effectue sur un créneau horaire prédéfini. Cet agent permet aussi de gérer en tâche de fond les interactions avec des mémos eux-mêmes gérés dans le module de gestion de l'agenda et de prise de rendez-vous. Ces mémos peuvent porter sur des durées définies par l'utilisateur et concerner certains environnements de travail et pas d'autres. L'agent coordinateur fait aussi appel à une base de donnée contenant les actions à exécuter pour réaliser les tâches demandées par l'utilisateur. Par exemple si un utilisateur veut organiser un repas avec un autre utilisateur alors la liste contiendra les informations suivantes, par exemple: À trouver le nom d'un restaurant dans le quartier qui se trouve à une distance d'environ 5 minutes trouver le numéro de téléphone de ce restaurant envoyer une proposition de rendez vous pour un repas commun aux personnes concernées en fonction de leurs réponses, inscrire sur l'écran la proposition de validation ainsi que les informations nécessaires à l'utilisateur pour réserver. L'agent gérant les activités de l'utilisateur s'occupera d'effectuer les tâches en rapport avec la liste fournie par l'agent coordinateur. Il sera possible d'organiser une réservation par Internet le jour o l'infrastructure le permettra. Une même suggestion peut être prise en compte pour un utilisateur souhaitant aller en vacances ou en week-end quelque part et nécessitent des informations sur une certaine destination, sur certaines agences de voyage, sur leur offres. Il faut aussi pouvoir contacter les agendas des personnes que cela peut intéresser comme l'agenda du partenaire dans la vie de l'utilisateur ou bien celui de l'école pour savoir si il y a des sorties déjà proposées pour les enfants à ces périodes. Le profil de l'utilisateur est bien une des seules solutions pour savoir o aller chercher les données personnelles relatives à l'utilisateur. L'agent coordinateur peut aussi servir à envoyer des requêtes pour interagir avec l'agent gérant les activités de l'utilisateur comme par exemple, la réservation de moyens de transport. il peut donner aussi par exemple l'état du trafic à un moment donné et à un endroit donnée. L'agent coordinateur a pour rôle principal d'émettre des requêtes et évaluer les réponses pour prendre des décisions sur les actions à mener. L' agent coordinateur peut aussi servir à comparer des offres. Il peut servir à programmer des visioconférences et à paramétrer celles-ci. Cet agent sert aussi à préciser à une secrétaire qu'il faut faire 200 photocopies d'un document spécial pour le rendez-vous prévu à moment donné. Cet agent s'occupe de mettre à jour la liste des tâches à effectuer de la secrétaire. Automatiquement, des rafraîchissements peuvent être commandés pour ce rendez-vous en fonction des goûts des participants. - 16- Utilisation de l'agent pour gérer la prise de rendez vous dans un agenda L'utilisation de ces agents est un très bon exemple de coopération d'agents autonomes dans un système multi agents. Les personnes doivent négocier des propositions, puis souvent des contre propositions pour arriver à trouver un commun accord prenant en compte les contraintes ou préférences de chacun des participants. Il existe des problèmes lorsque plusieurs personnes ayant différentes préférences sont contactées pour un rendez-vous et que chacune de ces personnes ne connaît pas les contraintes des autres personnes. Chaque agent représentatif d'une personne possède les compétences pour aller chercher des informations dont l'utilisateur a besoin, pour aller négocier avec d'autres agents les horaires des rendez-vous par exemple en fonction de plusieurs niveaux de porioté relative. Pour les rendez-vous, quand l'utilisateur demande une prise de rendez-vous avec une personne ou un groupe de personnes, son assistant personnel électronique intelligent va négocier avec d'autres agents personnels ou d'autres agents représentatifs d'autres assistants personnels électroniques intelligents des personnes en question et va initier un processus de négociation prenant en compte des contraintes diverses du type importance relative du preneur de rendez-vous par rapport aux différentes personnes contactées, priorités relatives de la plage horaire, du lieu, de l'objet du rendez-vous, priorités relative des ressources matérielles comme la disponibilité des salles pour organiser le rendez-vous, la disponibilité du matériel a affecter à ce rendez-vous. Les agents mis en cause pour la prise de rendez vous possèdent certaines caractéristiques comme le fait de gérer les entrées en utilisant la logique floue. Un autre paramètre intéressant du système est qu'il garde privée toutes données concernant les utilisateurs. Ce sont les agents entre eux qui après négociation vont arriver à un arrangement. A aucun moment les données situées sur les différents systèmes mis en cause ne sont divulguées à un utilisateur non maître. Un utilisateur peut en effet dans ce système avoir des données sous la forme de système propriétaire, par exemple Microsoft, Lotus, Symantec pour ce qui est des systèmes fixes et en plus des données situées sur leur PDA ou téléphone mobile stockées dans un format différent. Dans notre système, les agents peuvent s'interfacer avec différents systèmes accédant à différentes bases de données. Les agents sont choisis parmi une base de donnée agent possédant des agents prévus pour fonctionner sous différents systèmes d'exploitations. Dans l'implémentation de notre système, nous considérons l'usage d'agents intelligents comme une aide aux utilisateurs ou bien comme une aide aux secrétaires représentantes de personnes comme des dirigeants de sociétés ou bien des personnes ayant un emploi du temps surchargé dans lequel une optimisation en fonction de différents critères comme l'importance des personnes avec qui un rendez-vous doit être pris, la plage horaire, le lieu, le sujet, l'importance de l'objet du rendez-vous fera le bonheur de tout le monde. Le système d'agents est interactif avec les données sur l'utilisateur et sur son comportement dans le but de trouver l'agent qui va lui donner les réponses a ses requêtes. Les agents ne prennent pour le moment pas de décision quant à la prise de rendez vous. Ils échangent des données puis lorsque toutes les données sont compatibles avec l'agenda des personnes, que les priorités et importances sont respectées, un choix est proposé aux utilisateurs à la fin du processus - 17 - -17- 2814568 de négociation. Ceux ci doivent valider le résultat de la négociation entre agents pour que les agents mettent à jour les différentes bases de données propres à chaque personne ayant été contactée. La description de cet agent sera complétée lorsque les figures 3 et 5 seront décrites. Utilisation des agents pour la gestion des contacts Les agents servent aussi à gérer la base de données des contacts. Les contacts peuvent être répartis en une pluralité de domaines dont le domaine professionnel et le domaine personnel. Le rôle de ces agents est d'aller chercher toutes les informations sur les contacts des personnes pour garder mis à jour les listes de contacts. Si il le faut, cet agent ira dans une base de donnée située sur Internet pour aller demander la carte de visite des personnes à rencontrer. Encore une fois, les contacts ne sont pas forcément enregistrés aux mêmes endroits. Aussi ces endroits ne sont pas forcément homogènes dans leur format de stockage. Par exemple, le fait d'actualiser ses contacts à partir d'une liste de contact stockée sur lInternet est automatisable à l'aide de ces agents. Cette liste pourrait contenir tous les éléments relatifs à des contacts, par exemple une liste de Vcard (carte de visite électronique d'une personne au format électronique). Cette liste pourrait être située sur l'Intemrnet ou sur le réseau interne d'une entreprise. Cette liste n'existe pas aujourd'hui alors qu'elle serait nécessaire. 20. Utilisation des agents pour la gestion du courrier électronique Ces agents servent à gérer les courriers électroniques pour le filtrage en fonction de l'importance du courrier électronique par rapport à son contenu pour pouvoir préciser par exemple à l'utilisateur si un courrier électronique doit être lu en urgence ou bien si il peut attendre. Les courriers peuvent provenir de plusieurs adresses. Ce sont les agents qui s'occupent d'aller lire les messages à ces adresses et de les trier. Si un courrier électronique arrive et qu'il est en rapport avec un rendez- vous proche alors il est noté à lire bientôt, quand il y a plusieurs "bientôt" à lire alors le système réserve une plage horaire de quelques minutes pour aller lire ces courriers électroniques par le biais de l'agent coordinateur. Un code de couleur permnnet de distinguer la provenance et l'importance des courriers traités. Cet agent de gestion de courrier électronique utilise les données de l'entête, des adresses des récepteurs si il y en a plusieurs et le sujet du courrier électronique pour définir des priorités à donner. Plusieurs niveaux de priorités sont donnés: élevé, moyen et bas. La date à laquelle les lire est aussi basée sur les différents paramètres comme l'entête, les adresses et le sujet. Le système prend en compte le temps mis dans le passé pour lire les courriers provenant de certaines adresses, en rapport avec le même sujet et en relation avec les différents receveurs et détermine l'importance en fonction de ce paramètre historique. Cet agent possède sa propre interface utilisateur permettant de visualiser les courriers en fonction de leur importance. Aussi trois icônes permettront de visualiser les courriers en permanence en fonction de leur priorité. -18 - 2814568 Utilisation des agents pour la gestion des appels téléphoniques Ces agents permettent de gérer la boite vocale et les appels téléphoniques de l'utilisateur. Les appels peuvent provenir de l'environnement personnel ou de l'environnement professionnel. Certains appels en fonction de leur provenance sont jugés importants ou pas et en fonction de cette importance sont interceptés pour être envoyés soit sur le poste de l'utilisateur soit sur leur boite vocale. Un agent de ce type agent se sert des informations contenues dans les autres bases de données relatives aux types de rendez-vous dans lequel se trouve l'utilisateur actuellement ou par rapport à sa possibilité d'être interrompu. Si l'appel entrant est filtré, l'agent répond par exemple à l'appelant que la personne ne peut être dérangé. Ce type d'agents a pour rôle de manipuler tous les objets relatifs aux appels téléphoniques. Utilisation des agents pour la gestion des fax Cet agent permet de faire des fonctions de filtrage sur les fax en fonction de l'environnement dans lequel ils doivent être considérés. Cet agent permet de détourner certains fax privés d'une machine principale pour les imprimer, de sorte que l'utilisateur puisse garder la confidentialité des données de ces fax. Les fax sont mis provisoirement dans une mémoire et sont envoyés à l'impression quand l'utilisateur le souhaite. Aussi, les agents peuvent examiner le contenu des fax et prévenir l'agent coordinateur qu'il faut réserver un lapse de temps à l'utilisateur pour lire ces fax, peut être avant un rendez-vous. Utilisation des agents pour la gestion des tâches Cet agent est un agent qui permet de gérer les tâches en allant interagir avec une liste d'opérations à effectuer pour accomplir une tâche. En fonctions de ces diverses opérations, le système allouera du temps à l'utilisateur pour réaliser les actions à accomplir. Une liste d'actions à mener en fonction de la tâche se trouve dans une des bases de données que l'utilisateur peut accéder parce que l'adresse de cette base se trouve dans la base de donnée des ressources 1021. Utilisation des agents pour la gestion des mémos Cet agent permet de gérer les mémos de l'utilisateur par rapport à ces activités. Les mémos sont des informations valables sur période prédéfinie par l'utilisateur. Ceux-ci doivent l'aider lors de la phase de validation d'une prise de rendez-vous. Ces mémos peuvent être affiché périodiquement pour empêcher l'utilisateur d'oublier. Cependant, le fréquence de rappel de ces mémos variera en fonction des actions que l'utilisateur effectue. L'utilisateur peut définir la période de validité de ces mémos et aussi le contexte dans lequel ils doivent apparaître par exemple l'environnement personnel ou bien l'environnement professionnel. -19 - 2814568 Utilisation des agents pour la recherche d'informations sur l'Internet ou l'Intranet Des agents servent à aller chercher des informations sur lInternmet ou sur l'Intranet lorsqu'un utilisateur a besoin d'informations sur le sujet d'un rendez-vous. Un agent est lancé à la recherche d'informations sur le site Intranet ou sur l'Intemrnet. Les différentes informations trouvées sont stockées dans un fichier et un créneau horaire précédent le rendez-vous sera réservé à la lecture de ce fichier. Les agents de recherche prennent en compte l'historique des recherches effectuées précédemment pour pouvoir obtenir l'information souhaitée par l'utilisateur. Ces agents recherches permettent de gérer la classification de certains documents nécessaire aux utilisateurs. Utilisation des agents pour la gestion de l'activité des utilisateurs. En fonction de l'état de stress des utilisateurs, des tâches nécessitant tres peu de stress seront exécutées. Le niveau de stress est mesuré par rapport aux mouvements de la souris comme le double clique utilisé abusivement ou bien mesuré par l'utilisation intensive des touches du clavier pour effacer ou bien encore par le fait d'appuyer sur beaucoup de touches en même temps, tout cela par rapport à son utilisation quotidienne dans l'environnement. Les tâches nécessitant très peu de stress sont par exemple la lecture de courriers non importants, l'entretien téléphonique avec des gens avec qui l'importance de ne pas rater son entretien soit primordiale. Après la phase d'apprentissage, l'agent de prise de rendez-vous déconseillera de prendre certains rendez- vous aux plages horaires connues représentant un moment de stress o l'utilisateur est moins efficace, tout cela bien entendu en prenant en compte toutes les contraintes enregistrées dans le système. Cet agent communique intégralement avec l'agent gérant l'interface multi mode. À Utilisation des agents pour la gestion du matériel D'autres agents sont considérés pour gérer des profils matériels comme l'emploi du temps du matériel ou bien l'allocation des salles voire même l'état de ceux-ci, si ils nécessitent des réparations, de l'entretien, du nettoyage, de la maintenance ou une préparation spécifique avant un rendez-vous particulier. 30. Utilisation des agents pour la gestion des ressources non matérielles Ces agents ont pour but de commander des rafraîchissements auprès d'un établissement spécialisé et de réserver une personne pour servir lors d'une réunion avec beaucoup de participants par exemple. -20- 2814568 Utilisation des agents pour gérer l'activité de l'utilisateur Ces agents permettent entre autres de gérer les nouvelles quotidiennes au format électronique provenant de l'Intemrnet, des groupes de nouvelles, etc... Ils permettent la gestion du trafic routier en prenant les trajets de l'utilisateur et en rassemblant les informations pour l'assister dans ses soucis quotidiens quant aux encombrements autoroutiers. Un thesaurus est aussi disponible pour l'aider dans la formulation des communiqués. Utilisation des agents pour le paiement en ligne Cet agent est chargé de prendre toutes les données relatives à des achats en ligne, s'occuper de payer des billets de transports pour un utilisateur en fonction du profil de l'utilisateur, i.e. une utilisateur peut vouloir acheter un billet en classe affaire si c'est pour son travail et un billet en classe économique si c'est pour son usage personnel. Une fois le processus de réservation établi, l'agent demandera à l'utilisateur de valider son achat en entrant les informations pour autoriser le paiement. Cet agent se charge de gérer vos achats et prévient l'utilisateur de l'état de ses achats. Cet agent gère aussi le paiement sécurisé des achats en rendant possible au commerçant de visualiser les données de l'acheteur et en échangeant avec son agent des informations confidentielles sous forme cryptée. * Utilisation des agents pour la gestion des périphériques de l'environnement de travail Cet agent a pour rôle d'examiner l'environnement de travail et de communication. C'est en quelques sortes un module interagissant avec une interface multi mode. Si un utilisateur possède une caméra, l'agent demandera à l'utilisateur de pouvoir le visualiser pour déterminer son état de fatigue à l'aide d'autres agents ou bien si l'utilisateur possède un microphone alors il sera proposé d'interfacer avec l'assistant personnel électronique intelligent en rentrant des commandes vocales. Dans le système implicitement mis en oeuvre un module de reconnaissance vocale ou reconnaissance de caractère manuel utilisant le stylet d'un appareil portable par exemple ou avec une ardoise électronique connectée à l'ordinateur et possédant l'interface utilisateur dessus, peut être employé pour la saisie des informations. Le module gérant l'environnement périphérique, module 1007 ou bien un module séparé non représenté sur la figure 1, comprend une interface multi mode permettant de gérer les données lorsqu'elles sont entrées à l'aide de la voix ou par des images lorsqu'une caméra est utilisée. On note au passage que la caméra sert à convertir les données sous forme d'images en des données digitales traitables par le module état utilisateur 1009. De même, cet agent gère les différents périphériques adaptés pour interagir avec le système. Certaines imprimantes seront sûrement plus adaptées que d'autres pour faire un travail par exemple, en fonction de leur rapidité. Si un document doit être imprimé confidentiellement alors cet agent lancera la tâche d'impression à une imprimante locale. - 21 - 2814568 -21 - Utilisation des agents pour la gestion de l'environnement de communication En fonction de l'environnement de communication Internet, Intranet, GSM, UMWS, Palrnnet, Bluetooth, pageurs et autres, l'utilisateur ne se verra pas offert les mêmes services, quant aux capacités et vitesses d'exécution des traitements de certaines tâches. Si la bande passante est faible et que le système central a beaucoup d'interactions à établir avec une base de donnée personnelle alors le système demandera à l'utilisateur de se connecter de préférence avec un système ayant plus de capacités d'échange de donnée. On peut penser qu'une vague de service utilisant des agents intelligents et XML comme langage d'échange de donnée va bientôt voir le jour et donc il faudra pouvoir les incorporer au système, cependant si ceux-ci réduisent les performances de ce dernier, l'agent de gestion des périphériques permettra de faire le choix des services que l'utilisateur pourra employer efficacement. Utilisation des agents pour la gestion des profils utilisateur quant au comportement et aux préférences Ces agents intelligents apprennent le comportement des utilisateurs dans le but de les aider au fur et à mesure dans leur prise de décision. Initialement des préférences sont inscrites dans la base de donnée 1020 et permettent de renseigner les autres agents sur les préférences et contraintes qu'un utilisateur peut avoir. 20. Utilisation des agents pour la gestion des profils techniques pour les utilisations des ressources Ces agents servent à renseigner physiquement sur les type de d'agents utilisables et sur les données auxquelles ils peuvent accéder La base de donnée 1021 donne des indications sur les adresses des différents serveurs permettant de répondre aux requêtes. Utilisation des agents pour la gestion des connaissances Ces agents servent à renseigner les utilisateurs sur l'état des connaissances dans une entreprise. De plus en plus les entreprises possèdent une base de donnée des connaissances, malheureusement, les utilisateurs ne peuvent pas en faire un usage efficace. Le rôle de cet agent est d'aller chercher des informations dans cette base pour accroître la vitesse d'exécution des tâches des salariés. Grâce à cette outil, les gens seront plus à même de s'enrichir d'expériences de collègues. Ce module est assez similaire au module de recherche de données sur l'Intranet. À Utilisation des agents pour la gestion des interfaces graphiques utilisateurs En fonction du support sur lequel évolue l'utilisateur, le système ne se présentera pas sous la même forme. Quelques interfaces sont représentées à travers les figures 5 et 6. Le module de l'interface peut être téléchargé à partir d'un serveur sur lequel le système est enregistré. L'interface graphique peut être aussi un programme enregistré sur la machine support. L'usage d'agents mobiles permet de faire en sorte que l'interface soit un programme venant d'un serveur t-22-2814568 - 22 - et allant s'exécuter sur la machine distante. Enfin, le procédé mis en évidence dans la demande de brevet FA572683 développé par Mr. Julien Clausse est une autre solution à l'obtention d'une interface pouvant servir dans le cas présent. La figure 2 représente différents exemples d'utilisation de l'invention. Un usager peut se connecter à partir d'une station de travail 201 ou 202 ou encore un ordinateur portable 203 via l'Intranet 220 au système. Dans ce cas, les agents 241 se trouvent sur un serveur interne à l'entreprise. Il est possible de se connecter à partir d'ordinateur portable 262, 263 ou à partir de PDA palm pilot par exemple 261, 264. La différence entre les versions 261,262 d'une part et 263, 264 d'autre part est le fait que des modules de liaison résident sur les machines distantes pour accéder au système. Le téléchargement d'une interface utilisateur est montré dans le cas o il ne soit pas possible d'installer un module de liaison personnel sur les supports. Une interface WAP est tout à fait envisageable dans le cas présent. La figure 3 représente les étapes servant à la prise de rendez-vous. Enormément de contraintes doivent être gérées et c'est pour cela que les agents sont très utiles. Aujourd'hui, les utilisateurs possèdent plusieurs types de formats de sauvegarde de données, soit Microsoft Outlook, soit Lotus Organiser, soit un PDA ou bien les données sous format papier. Evidement lorsque les données sont sous format papier, alors il n'y a aucune possibilité pour un agent d'aller interagir avec un autre agent. L'avantage essentiel du système multi agents est que les données ne sont accessibles que par agents interposés, i.e. si un agent demande à une personne si un rendez- vous est programmable alors l'agent de la personne en question répondra seulement oui ou non mais ne fournira aucune donnée sur l'agenda de la personne en question quant à savoir si une plage horaire est prise pour des raisons personnelles ou pour tout autres raisons. L'agent peut aussi suggérer une autre solution pour réaliser la réunion. S'agissant des contraintes fournies à la requête, nous noterons qu'il est très intéressant de gérer les contraintes sur les ressources matérielles ou immobilières en parallèle aux contraintes provenant des participants. Les personnes contactées auront chacune des agents qui répondront aux requêtes de l'agent initiateur. A un certain moment, une solution convenant à tous les participants sera trouvée et alors le résultat de la recherche sera envoyé à chacun pour validation. Etant donné que les agents devront aller chercher des données quelques fois localisées sur un autre appareil comme un ordinateur personnel ou un téléphone mobile ou encore un PDA présentés sur la figure 2, il faut que les agents possèdent un module leur permettant de communiquer avec ces appareils. Pour le moment le module TCP/IP implémenté dans les agents permet le transport de l'information. A chaque fois qu'une requête est faite par un initiateur, des fonctions mathématiques sont appliquées prenant en compte les différents niveaux de priorité et de contraintes pour optimiser la rapidité des agents à trouver des solutions possibles aux requêtes et augmenter l'efficacité des négociations. Ces fonctions mathématiques s'appliquent en fonction de la densité des calendriers -23- 2814568 des utilisateurs, du nombre de participants et de l'importance général du rendez-vous à mettre en place. Ceci est dans le but de regarder à quelle période, un rendez-vous peut avoir lieu par rapport au résultat de la fonction donnant les meilleurs approximations du nombre de créneaux horaires disponibles pour ce rendez-vous. Ce qui est rajouté dans cette section vient en complément de la description faite à propos des agents servant à la prise de rendez-vous. En schématisant ce processus de prise de rendez-vous, différentes étapes sont identifiées. Tout d'abord, un acteur 301 initie une requête de rendez-vous en précisant les champs définis dans la figure 5. Une fois la requête passée, l'agent coordinateur va procéder à l'interrogation des différentes bases de données 312, 313 et 3 14 de chaque participant invité et invitant. Une fois les méta données acquises, l'agent coordinateur va négocier avec les agents intelligents des invités dans le but de trouver des créneaux horaires disponibles pour chacun et satisfaisant les préférences et contraintes de tout le monde. Une fois les créneaux horaires sélectionnés, une demande de validation est envoyée à tous les participants demandant leur accord sachant que le ou les créneaux horaires que proposent le système sont déjà satisfaisants. Si tous répondent positivement alors un ordre de mise à jour des bases de données des utilisateurs est passé. Si un répond négativement, alors le système relance une négociation ou annule tout en fonction de la stratégie qui avait été sélectionnée initialement. La figure 4 montre ce que fait le module coordinateur pour acquérir des données sur des ressources. Ce module coordinateur renseigne le module de gestion des rendez-vous 401 sur les adresses des bases de données o envoyer les requêtes. La base de donnée des profils 402 retourne ces adresses. Ensuite le module de prise de rendez-vous envoie des requêtes 423 aux différents serveurs 407 et 408 pour obtenir des informations concernant les utilisateurs impliqués. Notons au passage le module d'abstraction servant à faire l'interface entre les bases de données et le module de prise de rendez-vous. Ce module d'abstraction permet généralement d'accéder à des systèmes de données hétérogènes comme Microsoft Outlook ou Lotus Notes. La figure 5 représente une vue de l'interface utilisateur 500 concernant la prise de rendez- vous. Par exemple, un utilisateur possède une interface utilisateur devant lui sur son terminal mobile ou fixe. Il est défini auprès du système comme utilisateur maître ou esclave. Maître signifie qu'il possède tous les droits sur son assistant personnel électronique et esclave signifie que les droits de l'utilisateur du système d'agents sont réduits, dans le cas d'une secrétaire représentante d'une personne par exemple. L'utilisateur initie une requête de prise de rendez-vous par exemple en définissant le nom des personnes à contacter 508, 509 ou un type de personne à rencontrer 510, par exemple "directeur qualité", leur éventuelle importance par rapport au demandeur 511, une date 514, 515 ou une plage de dates 518, 519, 520 définie selon le principe de la logique floue (environ vers h, durée d'à peu près lheure) utilisant des fonctions mathématiques. L'utilisateur rentre par la d-24-2814568 - 24 - même occasion le début du rendez-vous 523, 524 ainsi que sa durée 527, 528 L'utilisateur définit aussi le lieu 532, 533 avec une priorité relative par rapport aux critères 534 et une précision relative 535 définie aussi par le principe de la logique floue. Les contraintes et préférences concernant les données temporelles sont du même type que d'autres préférences et contraintes. L'utilisateur procède de même pour les informations sur les salles et matériels. L'utilisateur définit aussi un sujet 541 pour le rendez-vous ainsi que des paramètres qui lui semblent importantes 544. L'interface utilisateur peut être modifiée pour prendre en compte ce que l'utilisateur souhaite voir figurer comme paramètres. Cette interface peut donc être plus simple ou plus complexe, c'est au choix des utilisateurs. Les utilisateurs peuvent choisir entre quatre stratégies 545 pour émettre une requête de prise de rendez-vous: À Si une personne refuse une demande de rendez-vous alors on ne fait rien et le rendez-vous n'aura pas lieu À Si une personne refuse une demande de rendez-vous, alors on propose une autre solution tant que la proposition n'est pas convenable Si une personne refuse une demande de rendez-vous, alors cette personne devient automatiquement initiatrice de rendez-vous * On prend en compte une quatrième stratégie qui consiste à pouvoir déplacer des rendez- vous Nous pouvons considérer le cas d'un agent coordinateur de tâche 1000 qui en fait sert dans le processus de négociation. Avec la stratégie numéro 3 par exemple, dans ce processus, la personne ayant le plus haut niveau de contrainte va devenir l'agent coordinateur et enverra des proposition aux autres intervenants et si elles sont acceptées, un rendezvous sera organisé ou alors si elles sont rejetés, un autre agent deviendra l'agent coordinateur. La figure 6 représente une interface graphique utilisateur 600 fonctionnant sur les plate- formes sur lesquelles l'utilisateur travail. L'interface utilisateur est adapté au support. Elle peut être soit implémenté sur le support, soit téléchargé à partir d'un serveur, soit être une page Intemrnet dynamique. L'utilisation d'agents intelligents mobiles n'est pas exclu pour pouvoir exécuter du code sur la machine distante qui se connecte et qui doit servir de support à l'utilisateur pour utiliser son assistant personnel électronique intelligent. * Cette interface possède différents fenêtres o sont visibles les résultats de certains agents comme les agents fax 609, téléphone 610 et e- mail 611. Cette interface peut être complètement personnalisée. Les utilisateurs peuvent choisir les fenêtres qu'ils décident obtenir rapidement à portée de vue. Cette interface propose de visualiser les différents environnements dans lesquels les utilisateurs sont susceptibles d'évoluer. Dans cette interface, à travers le menu fichier il est prévu de donner une option permettant de visualiser sa propre cadence de travail, de visualiser ce qu'on fait pour mieux gérer ses actions. Cette fonctionnalité prend de la valeur quand il est - 25 - A 2814568 possible de visualiser le travail effectué sur une longue période et de comparer avec ce que le système aurait proposé pour optimiser la productivité. Le principe repose quelque peu sur les mêmes fondements que les logiciels permettant de visualiser ses dépenses pour maîtriser son budget. Ici, le budget n'est pas seulement financier mais bien plus temporel. Le temps et la qualité de la gestion de son environnement de travail sont les valeurs sur lesquelles ce système trouve toute sa puissance. Une dernière remarque caractérisant le système concerne le contact des utilisateurs. Certains systèmes utilisent le courrier électronique pour envoyer des messages entre agents. Il subsiste un problème aujourd'hui quand les appareils recevant les courriers ne sont pas connectés en permanence au réseau. Grâce à l'utilisation des agents du système présent, il est possible de faire en sorte que lorsqu'un utilisateur d'appareil portable se connecte au réseau, un processus permet dans un premier temps d'échanger des informations concernant diverses possibilités de prise de rendez-vous. Puis dans un second temps, lors d'une connexion suivante, le processus fait apparaître une fenêtre sur l'écran de l'utilisateur pour lui demander de valider un rendez-vous proposé résultant d'une négociation entre les agents compte tenue des informations collectées par l'agent lors de la première connexion. Avec ce système, même délocalisées du réseau, les données vont être accessibles et le processus de prise de rendez-vous toujours plus rapide qu'une des solutions courantes actuelles consistant à effectuer une vérification manuelle dans son propre agenda pour décider d'une prise de rendez-vous reçue par courrier électronique. Le système offre l'opportunité de garder à jour son emploi du temps et d'inscrire automatiquement les rendez-vous. Le système présenté ne demande plus à l'utilisateur de rentrer les données dans ses différents calendriers. Il demande juste d'accepter ou de refuser des propositions. -26- 2814568 - 26 - Exemple concret d'utilisation Un cas concret de notre système donne toute la puissance de l'assistant personnel électronique intelligent. Imaginons un patron qui possède des enfants en bas age, il fait appel à une nourrice pour garder les enfants tous les jours parce que son/sa partenaire dans la vie travaille aussi tous les jours. Il reçoit l'information de la part de la nourrice que celle-ci sera indisponible le lendemain alors que celui ci a déjà un rendez-vous de prévu. Dans ce cas il faut agencer les agendas pour prévenir tout le monde et trouver une solution. Dans un premier temps, on peut imaginer que l'assistant personnel électronique intelligent va prendre en compte la requête d'absence de la nourrice initié par le patron à partir soit d'un téléphone, soit de son PDA ou encore de son PC relié à l'Internet. Sur ces deux derniers systèmes fonctionne un agent de liaison qui contactera l'agent coordinateur sur l'Intranet. Celui-ci recherche premièrement les données concernant les ressources. Si une requête est formulé par téléphone, un agent de gestion d'appel téléphonique situé sur l'Intranet se chargera de contacter son propre agent coordinateur par l'intermédiaire de son agent téléphonique. Une fois l'agent coordinateur contacté, il se charge de contacter l'agent gérant les contacts pour retrouver les données relatives à l'utilisateur avec qui le patron veut annuler un rendez-vous. Ce dernier rendra des données du type numéro de téléphone, adresse de courrier électronique à l'agent coordinateur. Ensuite cet agent demandera à un agent de gestion des appels téléphoniques d'envoyer un message à la personne ou bien demandera à un agent de gestion de courrier électronique d'envoyer un message d'annulation de rendez-vous. La personne évitera ainsi de se déplacer le lendemain pour rien ce qui n'aurait pu être le cas si il avait fallu attendre le lendemain matin la présence d'une secrétaire pour contacter la personne en question. Dans le cas o la personne contactée possède des moyens pour interfacer avec des agents alors les agents vont négocier entre eux une future opportunité de rendez-vous. Bien entendu plusieurs agents impliqué dans le rendez-vous annulé vont être convoqués pour mettre à jour toute donnée relative au rendez-vous qui était en question, pour modifier l'emploi du temps du matériel ou bien des salles, etc... Un autre avantage du système général est de provoquer des rendez-vous qui jusque là n'avait pas lieu par manque de bonne organisation. Prenons le cas de personnes travaillant sur plusieurs sites mais autour d'un même projet. Si une personne X appartenant au site 1 vient une fois par semaine sur le site 2 et doit rencontrer plusieurs personnes Y et Z appartenant au site 2, et que les gens n'ont pas de secrétaire pour prendre leur rendez-vous à leur place et qu'ils ne sont pas souvent disponibles pour s'occuper de leur prise de rendez-vous, alors il est fort probable qu'il faille plusieurs semaines pour arriver à ce que des personnes se rencontrent. Le cas est encore plus flagrant lorsqu'un rendez-vous de groupe est tenté d'être organisé. Avec le système, les emploi du temps respectifs de tout le monde sont optimisés, et le gain final pour les gens et pour le produit qui demande des validations par des personnes différentes verra ses délais de livraison raccourcis. Le système permet aussi de répondre aux nonnrmes qualités ISO9000 en terme d'amélioration des méthodes de travail pour réduire les temps affectés aux différentes tâches dans une entreprise. -27 - 2814568 Bien que l'invention divulguée dans le présent document ait été décrite au moyen d'implémentations spécifiques, de nombreuses modifications et variations peuvent être envisagées par l'homme de l'art, tant au niveau de l'architecture du système que des fonctionnalités des agents décrits, sans départir de l'étendue de l'invention telle qu'elle est décrite dans les revendications. -28- 2814568 Revendications 1. Assistant personnel électronique intelligent pour assister la gestion d'informations pour au moins un utilisateur et automatiser la gestion de tâches mettant en oeuvre des appareils pouvant être connectés à au moins un réseau téléphonique filaire et sans fil, comprenant une pluralité de modules spécialisés gérant un type d'information en utilisant des techniques informatiques de raisonnement intelligent, un module de gestion d'interface graphique utilisateur et un module coordinateur communiquant avec ces dits modules Caractérisé en ce qu'il comprend en plus des données personnelles et professionnelles enregistrées dans au moins une base de donnée pour chacun des dits utilisateurs, au moins une base de donnée additionnelle contenant des informations sur le profil d'au moins un utilisateur, sur leurs ressources associées et sur les identificateurs des dits modules spécialisés permettant de gérer les dites ressources, un module de détection des connexions des appareils communiquant et un module de gestion de la configuration de l'environnement de travail permettant d'adapter les dits modules spécialisés. 2. Un assistant personnel électronique intelligent selon la revendication 1 o les différents modules spécialisés gérant l'information servent à la gestion du temps, la gestion d'informations et la gestion de moyens de communication. 3. Un assistant personnel électronique intelligent selon la revendication 2 o les modules gérant les informations comportent au moins un module parmi des modules de détection de type de connexions, de gestion d'au moins un calendrier et de prise de rendez-vous, de gestion d'au moins une liste de contact, de gestion d'au moins une type de courrier électronique, de gestion d'au moins un type d'appel téléphonique à au moins un numéro de téléphone, de gestion de fax correspondant à au moins un numéro, de gestion de tâches, de gestion des mémos, de gestion de l'Internet, de gestion de l[ntranet, de gestion du niveau de rendement et de l'activité quotidienne de l'utilisateur, de gestion des ressources matérielles, de gestion des ressources non matérielles, de gestion de profils préférentiels et techniques, de gestion de l'environnement de travail, de gestion de l'environnement de communication et de gestion d'interface graphique utilisateur. 4. Un assistant personnel électronique intelligent selon une des revendications précédentes o les différents modules peuvent communiquer entre eux sans intervention extérieur et sont autonomes les uns par rapport aux autres. -29 - 2814568 5. Un assistant personnel électronique intelligent selon la revendications 3 o le module de gestion de l'environnement de travail possède une interface multi mode pour obtenir des informations concernant l'utilisateur provenant d'au moins un périphérique informatique matériel, comprenant une interface pour gérer des commandes vocales et des commandes visuelles, une interface pour gérer les commandes vocales ou écrites passées suivant la logique floue et une interface pour communiquer avec l'environnement de communication dans lequel se trouve l'utilisateur. 6. Un assistant personnel électronique intelligent selon une des revendications précédentes o le module coordinateur permet de gérer et visualiser le flux d'informations entres les différents modules spécialisés et l'activité des utilisateurs, le module de gestion d'au moins une interface graphique utilisateur, les modules de détection des connexions des appareils connectés et le module de détection de la configuration de l'environnement de travail et de communication permettant d'adapter lesdits modules spécialisés complémentaires. 7. Un assistant personnel électronique intelligent selon une des revendications précédentes o les modules sont des agents intelligents mobiles. 8. Procédé mis en oeuvre dans l'assistant personnel électronique intelligent selon une des revendications précédentes caractérisé en ce qu'il comporte les étapes suivantes: a) Identification de l'utilisateur à partir de la machine sur laquelle il se trouve via une interface homme machine b) Détection par le dispositif du type d'appareil communiquant et du type d'environnement de travail de l'utilisateur c) Accès à la base de données des profils ressources et utilisateurs d) Utilisation d'un module coordinateur adapté aux types d'appareils et à l'environnement de travail et permettant de gérer les différents modules spécialisés en fonction des tâches à effectuer, des systèmes d'information à accéder et des supports sur lesquels les informations sont enregistrées e) Exécution dans les environnements hétérogènes des tâches par les modules spécialisés 9. Un programme d'ordinateur comprenant des portions de code de programme pour l'exécution d'une au moins parmi les étapes du procédé selon la revendication 8 lorsque ledit programme est exécuté sur un support tel qu'un ordinateur, un assistant numérique personnel et un téléphone.