FR 2888444 A1 20070112 FR 0552109 A 20050708 PROCÉDÉ DE GÉNÉRATION DE LOGICIEL D'APPLICATIONS DE FOURNITURE DE SERVICES CONTEXTUALISÉS ET SYSTÈME DE MISE EN UVRE DU PROCÉDÉ DESCRIPTION 5 DOMAINE TECHNIQUE L'invention concerne un procédé de génération automatique d'un logiciel d'application pour fournir à un terminal mobile un accès à au moins un service contextualisé. L'invention concerne également un système de mise en oeuvre du procédé, un logiciel d'application mémorisé sur un support et destiné, lorsqu'il est exécuté, à fournir à un terminal mobile un accès à au moins un service contextualisé. L'invention concerne également une architecture logicielle supportant ledit logiciel d'application. ÉTAT DE LA TECHNIQUE ANTÉRIEURE L'augmentation croissante du débit de transmissions via des terminaux, tel que des téléphones mobiles, des PDA (pour Portable Digital Agenda) ou encore des ordinateurs portables, permet aux utilisateurs de ces terminaux de recevoir une gamme de plus en plus riche de services mobiles (données, voix, vidéo...). Ces services peuvent être fournis sur requête de l'utilisateur du terminal (mode pull) ou suggérés à ce dernier en fonction de son profil (mode push). Dans le premier cas, l'utilisateur formule une requête qui est analysée puis transmise à un ou plusieurs serveurs susceptibles de fournir le service demandé. Dans le deuxième cas, des services sont suggérés à l'utilisateur du terminal en fonction de son profil. Un troisième mode de fourniture de service consiste à tenir compte du contexte dans lequel se trouve l'utilisateur du terminal. Dans ce mode, un contexte peut être défini par la localisation, l'identification des personnes et/ou des objets qui sont proches de l'utilisateur et les changements de tels objets. Il peut également être défini par n'importe quelles informations utilisées pour décrire une situation d'une entité représentant une personne, un lieu ou un objet. Les techniques mises en oeuvre dans ce troisième mode de fourniture de services prennent en compte essentiellement des paramètres fixes, prédéfinis se rapportant essentiellement à l'utilisateur du terminal. Ces paramètres sont généralement définis statistiquement en analysant les comportements des utilisateurs afin d'établir des profils types utilisés pour cibler les services à fournir. Un inconvénient de ces techniques provient du fait qu'ils ne s'adaptent pas aux changements de besoins d'application de fourniture de service. Ainsi, un premier exemple d'application peut consister à fournir à un automobiliste la liste des restaurants les plus proches en fonction de sa position. Un deuxième exemple d'application peut consister à fournir à un médecin des informations relatives à un type particulier de patients dans un hôpital en fonction, par exemple, du profil du médecin, du terminal dont il dispose et éventuellement de paramètres sélectionnés par le médecin (degrés d'urgence, type d' intervention à effectuer...). La réalisation de ces deux applications nécessite un temps de développement important et des compétences pluridisciplinaires. Dans les méthodes de l'art antérieur, chaque application doit être développée de façon indépendante, en tenant compte d'un environnement technologiques spécifique (appareil de réception, protocole de communication, ....). Aussi, ces méthodes ne permettent pas de s'adapter au type d'application envisagé. En outre, l'absence de normes régissant la fourniture de services mobiles contextualisés conduit les concepteurs de ces applications à développer des programmes propriétaires limitant ainsi leur interopérabilité avec des systèmes utilisant des bases de données hétérogènes, dans différentes localisations, sous différents réseaux, et avec différentes qualités du service. Le but de l'invention est de pallier les inconvénients de l'art antérieur en générant automatiquement des logiciels d'applications de fourniture de services contextualisés en tenant compte des changements des besoins en applications qui prennent en considération non seulement le profil de l'utilisateur, mais également le contexte technologique dans lequel un service peut être fourni. Ce contexte est défini notamment par les paramètres suivants: - le système d'exploitation, - le processeur équipant le terminal, - la mémoire disponible dans le terminal, - les interfaces réseaux, - les équipements périphériques reliés au terminal, - les protocoles de communication utilisés, - la bande passante disponible à un instant donné, - le niveau de batterie du terminal, etc. Ces paramètres peuvent être fournis par l'utilisateur ou détectés par des modules intelligents équipant le terminal. Un deuxième but de l'invention est d'améliorer la qualité des applications logicielles destinées à générer des services contextualisés. Un autre but de l'invention est de fournir un outil logiciel permettant de faciliter la coopération entre les différents acteurs qui interviennent dans le processus de fourniture de service, (éditeurs de SIG (Système d'informations géographiques), opérateurs de télécommunications, sociétés de service informatiques (SSII) spécialisées) . EXPOSÉ DE L'INVENTION A cet effet, l'invention préconise un procédé de génération automatique d'un logiciel d'application pour fournir à un terminal mobile un accès à au moins un service contextualisé comportant les étapes suivantes. - analyser les contextes d'utilisation dudit terminal, - déduire à partir de ladite analyse un ou plusieurs services adaptés aux contextes analysés, - rechercher une combinaison de composants logiciels adaptée pour gérer l'accès dudit terminal à l'un au moins desdits services, -générer automatiquement un modèle topologique d'exécution desdits composants logiciels. Selon l'invention, le modèle topologique d'exécution desdits composants logiciels est généré à partir de l'analyse des services, contextes et règles prédéfinis et lesdits composants logiciels sont extraits d'une ou de plusieurs librairies de programmes prédéfinies agencées localement dans le terminal ou agencées dans des serveurs distants. Le procédé selon l'invention comporte en outre les étapes préalables suivantes: a) spécifier au moins un service à fournir à un utilisateur du terminal, b) spécifier un ensemble de contextes élémentaires de fourniture de services, c) associer à chaque contexte élémentaire au moins une règle élémentaire régissant la fourniture d'au moins un service parmi les services spécifiés dans ce contexte élémentaire. Préférentiellement, un contexte élémentaire comporte notamment les paramètres suivants: - la position géographique du terminal, - l'instant d'utilisation du terminal, - le profil de l'utilisateur du terminal, - le type de périphériques reliés au terminal, - le type de protocoles de communication utilisés par le terminal, - des contextes physiques extérieurs au terminal. Selon une caractéristique de l'invention, à chaque paramètre est associée une règle élémentaire, et à chaque combinaison de paramètres est associée une combinaison de règles élémentaires régissant l'accès aux services. Dans un mode préféré de mise ne oeuvre de l'invention, la génération du modèle topologique d'exécution comporte les étapes suivantes: - exprimer les spécifications des services, contextes et règles dans un format de données exploitable par lesdits composants logiciels, -mémoriser les formats obtenus dans une base de données, - générer une architecture logicielle indépendante des technologies mises en oeuvre pour accéder au service. Dans une variante de mise en oeuvre du procédé selon l'invention, ladite architecture logicielle s'adapte automatiquement au changement du contexte d'utilisation dudit terminal mobile. L'invention concerne également un logiciel d'application mémorisé sur un support d'enregistrement et susceptible d'être exécuté sur un terminal mobile pour fournir audit terminal un accès à au moins un service contextualisé. Ce logiciel d'application comporte: - un module d'analyse des contextes spatio-temporels et technologiques d'utilisation dudit terminal, - un module d'inférence destiné à déterminer à partir de ladite analyse un ou plusieurs services adaptés aux contextes analysés, - un module de recherche d'une combinaison de composants logiciels adaptée pour gérer l'accès dudit terminal à l'un au moins desdits services, - un module de génération automatique d'un modèle topologique d'exécution desdits composants logiciels. Ce logiciel comporte en outre un module de traduction desdits contextes spatio-temporels et technologiques dans un langage formel de mémorisation exploitable par lesdits composants logiciels. L'invention est mise en oeuvre dans un système comportant: - au moins une librairie de composants logiciels élémentaires, - au moins une librairie de modèles de combinaisons desdits composants logiciels élémentaires, - un module d'acquisition de spécifications relatives aux contextes spatiotemporel et technologique d'utilisation du terminal mobile, - un module de stockage desdites spécifications, - un module de génération d'une architecture logique d'exécution d'au moins une des combinaisons de composants logiciels prédéfinies, - un module de génération d'une architecture physique d'exécution de ladite combinaison de composants logiciels. L'invention concerne en outre une architecture comportant: - une première couche destinée à gérer l'acquisition des informations relatives aux contextes spatio-temporels et technologiques d'utilisation du terminal, une deuxième couche destinée à analyser les informations acquises, - une troisième couche destinée à rechercher une combinaison de composants logiciels adaptés pour gérer l'accès dudit terminal à l'un au moins desdits services, - une quatrième couche destinée à générer automatiquement un modèle topologique d'exécution desdits composants logiciels. BRÈVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de l'invention ressortiront de la description qui va suivre, prise à titre d'exemple non limitatif, en référence aux figures annexées dans lesquelles: - la figure 1 illustre schématiquement un système selon l'invention, - la figure 2 représente un organigramme illustrant schématiquement les étapes essentielles du procédé selon l'invention, - la figure 3 représente un organigramme illustrant un mode préféré de mise en oeuvre du procédé selon l'invention, - la figure 4 représente un exemple d'application du procédé selon l'invention, - la figure 5 est un schéma bloc illustrant la mise en oeuvre du procédé selon l'invention dans l'application de la figure 4. EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS La figure 1 représente un système de génération d'un logiciel d'application pour fournir à un terminal mobile un accès à au moins un service contextualisé comportant un module central de coordination 1, une librairie 2 de composants logiciels élémentaires, une librairie 4 de modèles de combinaisons desdits composants logiciels élémentaires, un module d'acquisition 6 des spécifications relatives au contexte spatio-temporel et technologique d'utilisation du terminal mobile, un module de stockage 8 desdites spécifications, un module de génération 10 d'une architecture logique d'exécution d'au moins une des combinaisons de composants logiciels prédéfinies, un module de génération d'une architecture physique 12 d'exécution de ladite combinaison de composants logiciels. Le module d'acquisition 6 assure l'interface du système avec des utilisateurs tels que par exemple des concepteurs d'applications pour accéder à des services contextualisés ou des experts spécialisés dans des domaines spécifiques tels que par exemple des concepteurs de système d'information géographique ou encore des concepteurs de système d'informations médicales ou touristiques. Ce module reçoit les spécifications fournies par l'utilisateur et génère un fichier descriptif de ces spécifications. Le module de stockage 8 est destiné à mémoriser les fichiers des spécifications traduites dans un format de données intermédiaire afin qu'elles soient exploitables par les modules de générations d'architecture logicielle. Le module 10 de génération d'architecture logique communique avec le module de stockage 8, le module de génération d'architecture physique 12, la librairie de composants logiciels élémentaires 2 et avec la librairie de modèles 4. Ce module 10 reçoit les spécifications traduites du module de stockage 8, identifie un modèle dans la librairie de modèles 4 ou combine des composants logiciels élémentaires de librairie 2 pour créer un nouveau modèle, instancie le modèle choisi ou créé et fournit une architecture logicielle prenant en compte les contextes et les règles définies dans les spécifications. Notons que les composants logiciels élémentaires de librairie 2 peuvent être paramétrables ou auto adaptatifs. Notons également que les modèles générés par combinaison de composants élémentaires sont mémorisés dans le module de stockage 8 et peuvent être réutilisés tels quels si le terminal et l'utilisateur de ce terminal se trouvent dans le contexte ou la combinaison de contextes élémentaires à partir desquels ces modèles ont été générés. Le module 12 de génération d'architecture physique reçoit les spécifications relatives à l'environnement technologique d'utilisation du terminal telles que par exemple les différents langages de programmation côté clients et côté serveurs, les protocoles de communication supportés par le terminal, les différents types de matériels concernés (téléphones cellulaires, ordinateurs portables, PDA...), et génère automatiquement une architecture logicielle en agençant les composants logiciels élémentaires appropriés. L'architecture ainsi générée est sensible au contexte d'utilisation du terminal. La figure 2 illustre schématiquement les étapes essentielles pour permettre au système de la figure 1 de générer automatiquement un logiciel d'application destiné à fournir à un terminal mobile un accès à un service contextualisé. L'étape 20 consiste à définir formellement des spécifications qui vont être utilisées par le module 10 pour générer un modèle d'architecture logique. Ces spécifications concernent essentiellement les services à proposer et les contextes élémentaires dans lesquels un ou plusieurs services sont susceptibles d'être proposés. Dans un exemple de réalisation, les spécifications définissent notamment: - des paramètres géographiques, - des paramètres temporels, -des profils utilisateurs, - des contextes techniques d'utilisation du terminal (type de matériel périphérique, type de réseau supporté, type de connectiques supportées...), - des règles permettant de déduire un ou plusieurs services pour un contexte élémentaire ou une combinaison de contextes élémentaires et/ou une requête de l'utilisateur, - des contextes physiques extérieurs au terminal tel que par exemple les conditions météorologiques, - des contraintes fonctionnelles telles que par exemple des restrictions sur les communications. A l'étape 22, le module central de coordination 1 analyse les spécifications définies à l'étape 20 et fournit le résultat de cette analyse au module de génération d'architecture logique 10 qui génère (étape 24) un modèle d'architecture logique prenant en compte les services et les contextes élémentaires ainsi que les règles contextes/services définis à l'étape 20. L'architecture logicielle ainsi générée comporte des références de composants logiciels dont la combinaison est susceptible d'être utilisée (étape 26) par le module de génération d'architecture physique 12 pour générer une architecture physique comportant une combinaison des composants logiciels référencés. La figure 3 illustre schématiquement un mode préféré de mise en oeuvre du procédé de la figure 2. Dans ce mode de réalisation, avant d'être analysées par le module 10, les spécifications définies à l'étape 20 sont traduites à l'étape 30 dans un langage intermédiaire de mémorisation. Les spécifications traduites sont ensuite mémorisées dans le module de stockage 8. Comme on peut le voir sur cette figure, l'étape 24 comporte une première sous étape 32 consistant à rechercher des composants logiciels à combiner dans la librairie 2 ou un modèle de combinaison 4 de composants logiciels dans la librairie 4. La combinaison de composants logiciels ou le modèle trouvé constituera l'architecture logicielle sensible aux spécifications de l'environnement technologique du terminal. En effet, cette architecture est composée de références à des composants logiciels dont les paramètres de calculs sont les éléments caractéristiques de ce contexte technologique. Ces paramètres peuvent être soit mesurés par des éléments sensibles intégrés au terminal, tels que par exemple un thermomètre, une horloge, soit fournis au terminal par des dispositifs externes, tels que par exemple un dispositif de localisation (GPS, pour Global Positionning System). L'acquisition de ces paramètres permet au module 12 de générer (sous étape 34) l'architecture physique comportant les composants logiciels référencés. La figure 4 illustre un exemple de fourniture de services à un utilisateur 40 muni d'un terminal mobile dans un espace subdivisé en trois zones, zone 1, zone 2 et zone 3 comportant respectivement un gestionnaire de service 42, 44 et 46. Le terminal de l'utilisateur 40 est équipé d'un module intelligent 48 destiné à gérer les traitements qui doivent s'exécuter dans le terminal pour accéder aux services disponibles. Ces traitements comportent notamment: - la gestion de l'IHM (pour Interface Homme Machine) - l'acquisition du contexte spatial (par GPS par exemple), - l'acquisition du contexte temporel (date et heure), - l'acquisition du contexte physique (température, taux d'humidité, pression atmosphérique, ...), l'acquisition du contexte technique (type de matériel, caractéristiques techniques d'affichage, type de processeurs, type de mémoire, ...), l'acquisition du profil utilisateur, - l'acquisition de l'état de mobilité du terminal, - l'acquisition des paramètres de mobilité (vitesse, trajectoire, sens de déplacement, ...) . Le module 48 communique avec un serveur mandataire 49 situé côté serveurs sur une ou plusieurs machines et qui est destiné à recueillir les informations contextuelles ainsi que les éventuelles demandes de requête (mode pull) et à transmettre ces informations notamment à un module 50 de gestion de contexte et à un module 52 de gestion de services (voir figure 5). Le module 50 de gestion de contexte comporte un logiciel apte à déduire à partir des règles de contextes élémentaires, en fonction du contexte d'utilisation et, éventuellement, en fonction de la demande de service exprimée par l'utilisateur, la liste des services susceptibles d'être fournis à l'utilisateur. Le module 52 de gestion de services comporte un logiciel apte à décomposer les services disponibles en services élémentaires, à rechercher les adresses des services dans un annuaire de services local ou demander ces adresses à d'autres serveurs. La figure 5 illustre schématiquement les interaction entre les éléments 48, 49, 50, 52 pour fournir un service contextualisé à l'utilisateur. Le module 48 fournit au serveur mandataire 49 (flèche 60) les informations sur le contexte d'utilisation du terminal et éventuellement une demande de service. Le serveur mandataire 49 transmet (flèche 62) les informations sur le contexte au module 50. Ce dernier détermine la liste des services susceptibles d'être fournis à l'utilisateur et transmet (flèche 64) cette liste au serveur mandataire 49. Le serveur mandataire 49 transmet cette liste au module 52 (flèche 66) qui recherche les adresses des serveurs susceptibles de fournir ces services et transmet (flèche 68) la liste des adresses trouvées au serveur mandataire 49. Le serveur mandataire 49 transmet (flèche 70) la liste des adresses reçues au module 48. Ce dernier se connecte aux adresses indiquées dans la liste pour recevoir les services disponibles. 2888444 16 REVENDICATIONS 1. Procédé de génération d'un logiciel d'application pour fournir à un terminal mobile un accès à au moins un service contextualisé, caractérisé en ce qu'il comporte les étapes suivantes: - analyser les contextes d'utilisation dudit terminal, - déduire à partir de ladite analyse un ou plusieurs services adaptés aux contextes analysés, -rechercher une combinaison de composants logiciels adaptée pour gérer l'accès dudit terminal à l'un au moins desdits services, - générer automatiquement un modèle topologique d'exécution desdits composants logiciels. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre les étapes préalables suivantes: a) spécifier au moins un service à fournir à un utilisateur du terminal, b) spécifier un ensemble de contextes élémentaires de fourniture de services, c) associer à chaque contexte élémentaire au 25 moins une règle élémentaire régissant la fourniture d'au moins un service parmi les services spécifiés dans ce contexte élémentaire. 3. Procédé selon la revendication 2, dans lequel un contexte élémentaire comporte notamment les paramètres suivants. la position géographique du terminal, l'instant d'utilisation du terminal, le profil de l'utilisateur du terminal, le type de périphériques reliés au terminal, le type de protocoles de communication utilisés par le terminal. des contextes physiques extérieurs au terminal. 4. Procédé selon la revendication 3, dans lequel à chaque paramètre est associée une règle, et à chaque combinaison de paramètres est associée une combinaison de règles élémentaires régissant l'accès aux services. 5. Procédé selon la revendication 1, dans lequel lesdits composants logiciels sont extraits d'une ou de plusieurs librairies de programmes prédéfinies. 6. Procédé selon la revendication 5, dans lequel lesdites librairies sont réparties dans un ou plusieurs serveurs distants. 7. Procédé selon la revendication 5, dans lequel lesdites librairies sont mémorisées dans le terminal. 8. Procédé selon la revendication 1, dans lequel le modèle topologique exécution desdits composants logiciels est généré à partir de l'analyse des services, contextes et règles prédéfinies. 9. Procédé selon la revendication 8, dans lequel la génération du modèle topologique d'exécution comporte les étapes suivantes: - exprimer les spécifications des services, contextes et règles dans un format de données exploitable par lesdits composants logiciels, - mémoriser les formats obtenus dans une base de données, - générer une architecture logicielle indépendante des technologies mises en oeuvre pour accéder au service. 10. Procédé selon la revendication 8, dans lequel ladite architecture logicielle s'adapte automatiquement au changement du contexte d'utilisation dudit terminal mobile 11. Logiciel d'application mémorisé dans un support d'enregistrement et susceptible d'être exécuté sur un terminal mobile pour fournir audit terminal un accès à au moins un service contextualisé, caractérisé en ce qu'il comporte: - un module d'analyse des contextes spatio-temporel et technologique d'utilisation dudit terminal, -un module d'inférence destiné à déterminer à partir de ladite analyse un ou plusieurs services adaptés aux contextes analysés, - un module de recherche d'une combinaison de composants logiciels adaptée pour gérer l'accès dudit terminal à l'un au moins desdits services, - un module de génération automatique d'un modèle topologique exécution desdits composants logiciels. 12. Logiciel d'application selon la revendication 11, caractérisé en ce qu'il comporte en outre un module de traduction des contextes spatiotemporels d'utilisation dudit terminal dans un langage formel de mémorisation exploitable par lesdits composants logiciels. 13. Système de génération d'un logiciel d'application pour fournir à un terminal mobile un accès à au moins un service contextualisé, caractérisé en ce qu'il comporte: - un module central (1) de coordination - une librairie (2) de composants logiciels élémentaires, - une librairie (4) de modèles de combinaisons desdits composants logiciels élémentaires, - un module (6) d'acquisition de spécification relative au contexte spatiotemporel et technologique d'utilisation du terminal mobile, - un module (8) de stockage desdites spécifications, - un module (10) de génération d'une architecture logique d'exécution d'au moins une des combinaisons de composants logiciels prédéfinies, - un module (12) de génération d'une architecture physique d'exécution de ladite combinaison de composants logiciels. 14. Architecture logicielle pour fournir à un terminal mobile l'accès à un service contextualisé, caractérisée en qu'elle comporte: -une première couche destinée à gérer l'acquisition des informations relatives au contexte spatio-temporel et technologique d'utilisation du terminal, - une deuxième couche destinée à analyser les informations acquises, - une troisième couche destinée à rechercher une combinaison de composants logiciels adaptée pour gérer l'accès dudit terminal à l'un au moins desdits services, - une quatrième couche destinée à générer automatiquement un modèle topologique exécution desdits composants logiciels.