Procédé et système d'exécution d'une application pour la consultation de contenus et services accessibles par navigation sur un réseau de
télécommunication. La présente invention se rapporte au domaine des applications personnelles pour la consultation de contenus, et services se trouvant sur un ou plusieurs réseaux de télécommunication. Elle est plus particulièrement relative aux procédés et systèmes destinés à créer, développer, modifier, distribuer, installer, partager et utiliser une ou plusieurs applications ou programmes personnels sur un ou plusieurs appareils connectés à un réseau de télécommunication tel que l'Internet ou un Intranet, ouvert ou privé, en vue d'utiliser ou consulter des informations et/ou services selon des critères de sélection et de présentation propres à chaque utilisateur. Pour simplifier l'exposé, on utilisera uniquement les termes d"'lnternet" et de "la toile" dans la suite, mais l'invention s'applique aussi bien, sans limitation, aux réseaux privés et Intranet.
Il existe aujourd'hui une grande variété d'appareils permettant à leurs utilisateurs de tirer partie des informations et services de l'Internet : des ordinateurs personnels (de table et portables), des terminaux, des tablettes ou liseuses (à écrans tactiles), des écrans tactiles mobiles (téléphones haut de gamme ou terminaux de poche ou assistants électroniques de poche) connectés à l'Internet via le réseau d'un opérateur mobile ou un accès sans fil, certains téléphones et visiophones, des appareils décodeurs de TV, ainsi que des téléviseurs et des ordinateurs de bord de véhicule.
Cette liste n'est pas limitative et d'autres appareils peuvent s'y ajouter, au fur et à mesure des apports de nouveaux services de télécommunication et d'appareils qui nous entourent. On citera notamment des objets connectés dans des architectures dites "machine à machine".
L'outil de consultation d'information le plus communément utilisé et qui est présent sur la plupart de ces appareils est le navigateur qui intègre un grand nombre de technologies destinées à exprimer la quasi-totalité des fonctions et services proposées sur les sites visités, telles que HTML, Java, Flash, etc. A coté du navigateur, il est possible d'installer des applications, généralement dédiées à un type de service, qui peuvent offrir une ergonomie mieux adaptée à l'appareil, tout en permettant d'accéder aux informations de la toile. Certaines intègrent même un écran
de navigateur lorsque le choix de l'utilisateur s'oriente vers des données non prévues par l'application. On assiste progressivement à un rapprochement entre les deux modes de consultations précités.
De nombreuses informations sont disponibles sur Internet. Pour faciliter la recherche d'informations, il existe des moteurs de recherche généralistes (par exemple connu sous les noms de Google, Yahoo, Baidu, etc.) ou verticaux (des annuaires, des comparateurs dans les activités telles que : immobilier, tourisme, emploi, automobile, loisirs, jeux).
Les besoins des utilisateurs concernent le plus souvent des recherches d'informations ou de contenus sur des produits ou des services, des comparaisons de produits ou services (caractéristiques, prix, avis de consommateurs), ainsi que des recherches documentaires, des dépêches de journaux, des achats en ligne, etc. Cette liste n'est pas exhaustive.
Les utilisateurs ont pris l'habitude de passer du temps d'abord dans une séance de recherche qui nécessite la formulation des besoins, parfois imprécise et souvent difficile, puis une séance de consultation, pendant laquelle l'utilisateur peut souhaiter enregistrer des informations pour une exploitation ultérieure. Si tel est le cas, ces informations sont le plus souvent récupérées par copier coller et souvent stockées dans des fichiers et dossiers dont le classement est nécessaire s'il faut les retrouver ultérieurement. Toutefois, ces informations perdent rapidement de leur fraîcheur et doivent être mises à jour.
Le navigateur "généraliste" cité plus haut présente l'inconvénient de laisser l'utilisateur rechercher par lui-même les sources d'informations qui l'intéressent, gérer ces sources (à l'aide des signets) lorsqu'il décide d'y accéder de façon récurrente, et parfois télécharger des quantités d'informations plus ou moins importantes (des pages entières), même s'il ne s'intéresse qu'à une petite catégorie d'informations. C'est le cas, par exemple, des comparaisons de produits ou services entre plusieurs fournisseurs, des annonces immobilières, etc.
On trouve par ailleurs des d'applications qui sont développées pour les sites de la toile (dites "applications serveur"), mettant en oeuvre des robots automatiques qui réalisent la collecte et l'agrégation d'informations provenant de multiples sources (par exemple les dépêches de presse, les offres d'emploi, les comparateurs, etc.), pour les présenter ensuite avec le navigateur comme une page normale. Ces applications nécessitent chacune les compétences de développeurs spécialistes des
outils du site serveur et des interfaces de programmation (API). Ces compétences ne sont pas à la portée de tout utilisateur.
On trouve, enfin, des applications développées spécifiquement pour les appareils, qui tirent parti des spécificités du matériel et du système d'exploitation. Elles sont souvent plus performantes. Mais pour les réaliser, elles aussi nécessitent des compétences de développeurs, des outils de développements et de distribution puissants et complexes. Certaines d'entre elles se chargent de la collecte et de la présentation d'informations de la toile, de façon plus pratique qu'avec un navigateur (pour des informations boursières, la météo, des ventes d'occasion, des ventes ou locations immobilières, etc.). Cependant, comme les applications serveur, elles sont développées spécifiquement pour un service particulier, nécessitant des compétences spécifiques dont la connaissance d'interfaces de programmation (API) et elles ne sont souvent qu'une version améliorée des pages Web dudit service, excluant de ce fait les informations de services concurrents. Elles ne sont pas non plus à la portée de tout utilisateur.
Ces applications ne correspondent pas, le plus souvent, aux besoins réels et complets des utilisateurs. Leur ergonomie est imposée par le service et le développeur et ne tient pas compte des goûts personnels des utilisateurs. Ceux-ci souhaitent aussi des rapprochements d'informations de services différents, cas qui est rarement traité de façon satisfaisante. Idéalement, chaque utilisateur souhaiterait pouvoir réaliser lui-même ses applications à la demande. Mais, comme on l'a vu plus haut, ces développements nécessitent beaucoup de temps, des compétences pointues et une expérience de développeur.
La présente invention vise à remédier à ces inconvénients en permettant à la totalité des utilisateurs de la toile (ou d'Intranet), experts ou non, d'accéder et d'exploiter les données et les services qui les intéressent de la manière qui leur convient, et de façon simple et pratique.
Un des buts de l'invention est de permettre à chaque utilisateur, sans compétence particulière de développeur, de réaliser facilement et simplement ses propres applications de consultation de la toile, selon ses propres besoins, ses propres critères de sélection et de présentation des informations, sur n'importe lequel des appareils qu'il peut avoir à sa disposition (ordinateur, mobile, tablette, TV, autres..), et d'exécuter de telles applications sur l'appareil prévu à cet effet.
Un autre but de l'invention est de permettre à chaque utilisateur de modifier, d'améliorer ses propres applications au gré de son expérience et de l'évolution de ses besoins.
Un autre but de l'invention est de permettre à des utilisateurs de partager des applications ou des parties d'applications réalisées par d'autres utilisateurs, et notamment de pouvoir réutiliser une application existante sans avoir besoin de la réaliser, ainsi que de pouvoir la modifier, l'enrichir à loisir, ou intégrer un module créé par un autre utilisateur en accord avec des règles prédéfinies d'accès et d'autorisation.
A cet effet, un procédé d'exécution d'une application sur un appareil muni d'un écran d'affichage pour la consultation de contenus et services accessibles par navigation sur la toile est proposé selon un premier aspect de l'invention. Le procédé proposé comprend : exécuter un programme d'exécution d'application sur l'appareil, accéder à une structure de données de l'application comprenant (i) des métadonnées comprenant des informations de description et de location de données et correspondant à des informations et/ou contenus sélectionnés lors d'un parcours de navigation et de sélection par un utilisateur d'informations et/ou de contenus sur la toile, (ii) un agent logiciel apte à extraire des informations et/ou contenus de la toile sur la base des métadonnées, et (iii) des données de présentation des informations et/ou contenus extraits de la toile, exécuter l'agent logiciel enregistré dans la structure de données de l'application pour extraire des informations et/ou contenus sélectionnés par l'utilisateur sur la base des métadonnées de l'application, adapter, selon les données de présentation de l'application, les informations et/ou contenus extraits par l'agent logiciel, et afficher les informations et/ou contenus adaptés sur l'écran d'affichage de l'appareil.
Une métadonnée est entendue ici comme l'ensemble des critères nécessaires pour retrouver la donnée dans la page de la toile ou sur une autre page de structure similaire, en général au moyen d'agents et de robots.
Dans certains modes de réalisation du procédé d'exécution d'une application, la structure de données de l'application comprend en outre des données de navigation utilisable par l'agent logiciel pour reproduire un parcours de navigation et de sélection sur la toile par l'utilisateur, et on exécute l'agent logiciel pour reproduire le parcours de navigation et de sélection.
Selon un autre aspect, l'invention propose un système d'exécution d'application pour la consultation de contenus et services accessibles par navigation sur la toile, comprenant un appareil muni d'un écran d'affichage comprenant un processeur et une mémoire couplée au processeur, un serveur d'applications apte à accéder à une structure de données de l'application comprenant des métadonnées comprenant des informations de description et de location de données et correspondant à des informations et/ou contenus sélectionnés lors d'un parcours de navigation et de sélection par un utilisateur d'informations et/ou de contenus sur la toile, un agent logiciel apte à extraire des informations et/ou contenus de la toile sur la base des métadonnées, et des données de présentation des informations et/ou contenus extraits de la toile, dans lequel le serveur d'applications est configuré pour exécuter un logiciel comprenant des instructions pour, sur réception d'une requête d'exécution de l'application, exécuter l'agent logiciel enregistré dans la structure de données de l'application pour extraire des informations et/ou contenus sélectionnés par l'utilisateur sur la base des métadonnées de l'application, et transmettre à l'appareil les informations et/ou contenus extraits par l'agent logiciel au moyen d'une connexion de communication de données, et dans lequel la mémoire stocke un logiciel d'exécution d'application configuré pour, lorsqu'il est exécuté sur le processeur de l'appareil, établir une connexion de communication de données avec le serveur d'applications pour requérir l'exécution de l'application, recevoir les informations et/ou contenus extraits par l'agent logiciel, les adapter selon les données de présentation de l'application, et les afficher sur l'écran d'affichage.
Dans un mode de réalisation particulier du système d'exécution d'application, le serveur d'applications est en outre configuré pour capturer des métadonnées correspondant à des données du même type ou similaires à celles qui sont sélectionnées par l'utilisateur, dans la même page du site consulté, ainsi que dans d'autres pages du site.
Dans un mode de réalisation particulier du système d'exécution d'application, le logiciel du serveur d'applications comporte en outre des instructions pour partager entre utilisateurs des métadonnées et/ou de tout ou partie de la base de données pour permettre le partage entre utilisateurs des applications pour la création/modification et pour l'exécution d'applications.
Dans un mode de réalisation particulier, le système d'exécution d'application comprend en outre un serveur de souscription d'utilisateurs, une base de données d'utilisateurs et d'espaces utilisateurs, et des moyens de partage des applications entre les utilisateurs, selon des droits déterminés.
Dans un mode de réalisation particulier du système d'exécution d'application, la structure de données de l'application comprend en outre des données de navigation utilisable par l'agent logiciel pour reproduire un parcours de navigation et de sélection sur la toile par l'utilisateur, et dans lequel le serveur d'applications est configuré pour exécuter un logiciel comprenant des instructions pour exécuter l'agent logiciel pour en outre reproduire le parcours de navigation et de sélection.
Selon un autre aspect, l'invention propose en outre un dispositif pour exécuter une application pour la consultation de contenus et services accessibles par navigation sur la toile, comprenant un processeur, un écran d'affichage, une mémoire couplée au processeur, dans lequel la mémoire stocke un logiciel d'exécution d'application configuré pour, lorsqu'il est exécuté sur le processeur établir une connexion de communication de données avec un serveur d'applications pour télécharger une structure de données de l'application comprenant des métadonnées comprenant des informations de description et de location de données et correspondant à des informations et/ou contenus sélectionnés lors d'un parcours de navigation et de sélection par un utilisateur d'informations et/ou de contenus sur la toile, un agent logiciel apte à extraire des informations et/ou contenus de la toile sur la base des métadonnées, et des données de présentation des informations et/ou contenus extraits de la toile, exécuter l'agent logiciel de la structure de données de l'application pour extraire des informations et/ou contenus sélectionnés par l'utilisateur sur la base des métadonnées de l'application, adapter selon les données de présentation de l'application les informations et/ou contenus extraits par l'agent logiciel, et les afficher sur l'écran d'affichage.
Dans un mode de réalisation particulier du dispositif d'exécution d'application, le logiciel d'exécution d'application est configuré pour en outre capturer des métadonnées correspondant à des données du même type ou similaires à celles qui sont sélectionnées par l'utilisateur, dans la même page du site consulté, ainsi que dans d'autres pages du site.
Dans un mode de réalisation particulier du dispositif d'exécution d'application, la structure de données de l'application comprend en outre des données de
navigation utilisable par l'agent logiciel pour reproduire un parcours de navigation et de sélection sur la toile par l'utilisateur, et dans lequel le logiciel d'exécution d'application est configuré pour en outre exécuter l'agent logiciel pour reproduire le parcours de navigation et de sélection.
D'autres avantages, buts et caractéristiques de la présente invention se déduiront de la description qui suit, dans un but explicatif et non limitatif, en regard des dessins annexés, dans lesquels :
- La Figure 1 décrit un premier mode opératoire visé par l'invention, pour la création d'une application par un utilisateur.
- La Figure 2 décrit un second mode opératoire visé par l'invention, pour la modification d'une application existante.
- La Figure 3 représente l'architecture générale des moyens mis en oeuvre pour réaliser l'invention.
- La Figure 4 représente les étapes du procédé d'enregistrement d'applications.
- La Figure 5 représente la structure d'un enregistrement d'application.
- La Figure 6 représente un exemple de réalisation du serveur d'enregistrement d'applications.
- La Figure 7 représente un exemple de réalisation de l'extension du navigateur.
- La Figure 8 représente un exemple de réalisation d'un système d'enregistrement, de distribution et de partage d'applications selon l'invention.
Pour faciliter la compréhension de la description qui suit, un certain nombre de termes techniques sont tout d'abord définis :
- Appareil : Il s'agit d'appareils connectés ou connectables à la toile (Internet ou Intranet) et capables d'exécuter au moins une application, tels que : ordinateur de bureau, ordinateur portable, tablette, liseuse (tablette dédiée à la lecture de livres électroniques), téléphone mobile à écran (dits "smartphone" selon la littérature anglo- saxonne), téléphone java ("javaphone", dont le système d'exploitation est à base de Java), téléviseur ou décodeur-récepteur de TV numérique, ordinateur de bord embarqué (dans une voiture, sur un vélo, sur un piéton). Cette liste n'est pas limitative, d'autres appareils étant susceptibles d'exister prochainement sur le marché. Chaque utilisateur peut disposer d'un ou plusieurs appareils. Une caractéristique commune, mais non limitative, de ces appareils est qu'ils contiennent
un ou plusieurs organes d'interaction tel que écran, clavier, souris, commande vocale et haut-parleur ou surface tactile, une unité centrale et un système d'exploitation. Leurs organes de visualisation et d'interaction peuvent éventuellement être déportés sur d'autres appareils, via une liaison de télécommunication. Ils disposent de capacités d'accueil d'applications, par téléchargement ou pré installation (avant livraison à l'utilisateur). Cette liste peut aussi s'étendre à des appareils dits "domotiques" d'usage plus spécifiques (centrale de surveillance, de météo, automatismes, etc.) et aux machines faisant partie d'une architecture répartie du type "machine à machine".
- Applications, Navigateur : Les applications (logiciels applicatifs) sont les programmes lancés par l'utilisateur. L'application la plus courante pour la consultation d'information sur la toile est le navigateur. Celui-ci est d'usage très général pour permettre l'accès à pratiquement tous les types d'informations. Il est souvent complété de modules d'extension ("plugin" selon la littérature anglo- saxonne) pour réaliser une ou plusieurs tâches ou fonctions non prévues au départ.
Il existe également de nombreuses applications dédiées à un certain type d'information seulement (cours de bourse, programmes de cinémas, magasins en ligne, réservations d'avion, de train, de taxi, etc.) qui ont été développées exclusivement dans ce but.
II existe diverses technologies pour réaliser ces applications : les applications natives qui s'exécutent sur l'appareil de façon indépendante et les applications en ligne qui s'exécutent sur un site serveur de la toile et qui s'expriment sur l'appareil grâce au navigateur.
La présente invention concerne un nouveau type d'applications, celui des applications hybrides constituées d'une partie résidante dite "programme d'exécution" qui s'exécute sur l'appareil et d'une partie distante qui s'exécute en ligne sur un site serveur, les 2 parties coopérant via un réseau de télécommunication, notamment pour que la première (programme d'exécution) affiche les données transmises par la deuxième en réponse aux actions de l'utilisateur.
- Métadonnées : Ensemble structuré d'informations servant à décrire une ressource. Une page de la toile est constituée de données structurées présentées graphiquement dans des composants normalisés. Les métadonnées ne sont pas des données, mais sont les descriptions des données ou des critères servant à identifier et décrire les informations de la toile et plus généralement toute ressource
documentaire et tous types d'éléments (texte, image, vidéo, son) y compris les éléments d'interactivité (champs d'entrée, listes, formulaires, dialogues, boutons, liens, etc.). Elles servent à baliser ces ressources et permettent une meilleure interopérabilité entre les sources telles que (liste non exhaustive):
- Contenu : titre, sujet, description, source, langue, relation, couverture.
- Propriété intellectuelle : créateur, éditeur, contributeur, droits (droits d'auteur
...).
- Matérialisation : date, type, format, identifiant.
Ces données sont dynamiques, ce qui veut dire qu'elles varient dans le temps, alors que les métadonnées sont constantes. Il est à noter également que deux pages de la toile accessibles à des adresses différentes peuvent présenter des données de structures similaires mais contenant des valeurs différentes. Les métadonnées ne contiennent donc pas les valeurs mais des moyens d'accéder à ces valeurs à l'aide de robots et agents automatiques pour lesquels ces métadonnées sont construites et enregistrées. Les métadonnées trouvent leur pleine utilisation dans la toile sémantique. Celle-ci repose sur les standards généraux de la toile: Protocole HTTP, URI, langage XML, et sur des standards propres à la toile sémantique, le "Resource Description Framework" (RDF), les pformats : ce cadre de référence comporte des modèles de graphe destinés à décrire de façon formelle les ressources de la toile et leurs métadonnées, de façon à permettre le traitement automatique de telles descriptions.
- Enregistrement : élément d'un fichier ou d'une base de données. Dans la présente description, un enregistrement contient un ou plusieurs agents, robots et métadonnées.
- Agent (informatique) et robots : En informatique, un agent est l'équivalent d'un robot logiciel. C'est un programme qui accomplit des tâches à la manière d'un automate, en fonction de ce qui lui est demandé. Traditionnellement un agent pilote un ou plusieurs robots, les robots exécutant des tâches élémentaires. Les robots utilisent les métadonnées pour accéder aux données.
Dans le contexte de la toile, les agents intelligents sont liés à la toile sémantique, dans lequel ils sont utilisés pour faire, à la place des humains, les recherches et les corrélations entre les résultats de ces recherches. Ceci se fait en fonction de règles prédéfinies. Ils sont capables d'une certaine autonomie, en particulier de dialoguer entre eux.
- Mandataire, serveur mandataire: C'est un composant qui se place entre deux autres composants pour faciliter ou surveiller leurs échanges. Un serveur mandataire est mis en place pour assurer le fonctionnement du serveur d'applications, objet de l'invention. La dénomination "serveur" est relative à toutes architectures centralisées ou distribuées y compris les architectures "poste à poste". Les serveurs mandataires sont notamment utilisés pour assurer les fonctions suivantes :
- l'accélération de la navigation : mémoire cache, compression des données, filtrage des contenus;
- la journalisation des requêtes et l'enregistrement des réponses;
- la sécurité du réseau local, le filtrage et l'anonymat.
Les définitions ci-dessus sont données pour information et ne peuvent être considérées comme restrictives.
La Figure 1 décrit un premier mode opératoire simplifié destiné à illustrer le but visé par l'invention, pour la création d'une application simple par un utilisateur ordinaire.
Pour comprendre plus facilement l'invention, la description de ce scénario d'usage, vu de l'utilisateur, permet de présenter les principes essentiels qui respectent les buts de l'invention. Cela rend plus facile la compréhension de l'architecture et des composants du système qui sont décrits plus loin à la Figure 3.
Un utilisateur souhaite construire une mini application destinée à être utilisée sur un ou plusieurs appareils (ordinateur, tablette, téléphone, assistant de poche ou téléviseur), pour explorer un domaine particulier d'informations (ici, des appareils photos du commerce, en vue de préparer un achat par exemple). Il s'agit, d'un catalogue d'appareils, constitué de fiches présentant chacune la photo du produit, son prix, ses caractéristiques et les avis d'utilisateurs, ainsi qu'un outil de recherche. On imagine qu'il pourrait aussi contenir un comparatif et des liens vers les sites marchand respectifs, mais ceci n'est pas représenté.
Pour atteindre ce but, l'utilisateur lance un navigateur dans son ordinateur personnel qui affiche une première fenêtre 1 standard dans laquelle il peut consulter une page 3 d'un site de la toile qu'il aura préalablement recherché, par exemple au moyen d'un des moteurs de recherche connus.
Pour créer cette mini application, le navigateur est doté d'une extension pré installée, qui ajoute des fonctionnalités. Cette extension est supposée installée préalablement, par exemple à l'occasion d'une inscription auprès du site serveur de
création d'applications décrit plus loin, dont l'application a besoin pour fonctionner. De manière connue, le site propose le téléchargement et l'installation de cette extension, juste après l'inscription de l'utilisateur, comme tout autre téléchargement d'application.
L'ensemble navigateur + extension peut également être remplacé par une application qui intègre les deux fonctionnalités au préalable, par exemple lorsque l'ordinateur est pré équipé de cette application.
Notons également qu'à la place d'un ordinateur, il est possible d'utiliser une tablette ou tout autre appareil équivalent, du moment que des fonctionnalités équivalentes existent, même sous d'autres formes (par exemple, un écran tactile peut-être équivalent à une souris).
L'une des modifications essentielles apportées par cette extension est la redirection du trafic avec la toile à travers le site serveur d'application. Cette redirection est une fonction existante de configuration du navigateur qui est mise en œuvre par l'extension dès son lancement.
Dans cet exemple simplifié, l'extension affiche, dans une barre de menu spécifique, des boutons de commande permettant de réaliser des fonctions supplémentaires par rapport à celles du navigateur :
- un bouton 1 a pour créer une nouvelle application,
- un bouton 1 b pour modifier une application existante,
- un bouton 1 c pour sélectionner un élément,
- - un bouton 1 d pour enregistrer la fin des opérations,
- un bouton 1 e pour visualiser le résultat dans une fenêtre de simulation.
Le nombre des boutons et de fonctions correspondantes n'est limité ici que pour la clarté de l'exposé, mais d'autres boutons sont possibles, selon le niveau d'enrichissement voulu. Ces boutons sont faits pour transmettre des ordres au serveur d'application non représenté sur cette figure, mais décrit plus loin à la Figure 3, grâce à la redirection du trafic citée précédemment.
En cliquant sur le bouton 1 a, une "vue " ou fenêtre d'application ou "cadre applicatif 2 est créé et s'affiche. Il s'agit d'un prototype vide de la mini application.
Il s'agit plus avantageusement d'un modèle prédéfini prêt à remplir. Car avant la création de cette fenêtre, on supposera que le serveur aura proposé à l'utilisateur un thème d'application parmi un jeu de thèmes préexistant, de la même manière que de nombreuses applications du marché. En choisissant un thème, l'utilisateur choisit
aussi le ou les types d'appareils sur lesquels l'application à créer pourra s'exécuter. Dans l'exemple représenté, on suppose que l'utilisateur a choisi un catalogue de fiches de produits, chaque fiche étant prévue pour contenir une image du produit 2c, un prix 2b, une liste des caractéristiques du produit 2d, des avis d'utilisateurs 2e et un champ de recherche 2a parmi l'ensemble des fiches.
Pour garnir ce cadre applicatif, l'utilisateur commence d'abord par rechercher un produit du type souhaité sur la toile. Par exemple, il va sur le site d'une enseigne qui propose un catalogue de produits de cette enseigne. Il repère une image 4 d'un appareil photo qu'il sélectionne avec la souris par exemple, en définissant un cadre autour de l'objet ou en exerçant un clic long. Cette action est transmise au serveur qui peut alors identifier l'image. Pour signifier à l'utilisateur que cette image est identifiée par le serveur, celle-ci est mise en valeur par des moyens connus tels qu'un masque semi transparent, un cadre ou un clignotement. A partir de ce moment, l'utilisateur réalise un glisser déposer de l'image 4 dans la page 3 vers la zone d'image 2c du prototype 2. De la même manière, il continue avec les autres parties de la fiche, par un glisser déposer du texte des caractéristiques 5 sélectionné dans la page 3 vers la zone de caractéristiques 2d du prototype 2, et ainsi de suite pour les rubriques de prix 2b, et d'avis utilisateurs 2e.
A chaque sélection par l'utilisateur, le serveur extrait les métadonnées correspondantes, et les enregistre dans une base de métadonnées (décrite plus loin, à la Figure 3).
L'invention ne se limite pas à la sélection d'objets statiques comme ceux qui sont cités ci-dessus. Elle permet aussi de choisir des objets comportant des actions comme des boutons de calcul, des boutons de navigation, des boutons d'action, des dialogues, des champs de saisie, des listes, des formulaires, des affichages résultats d'actions, etc.
Une fois qu'une fiche est créée, elle est enregistrée et une autre fiche peut être créée. Le procédé continue ainsi jusqu'à ce que l'utilisateur ait enregistré tous les objets qui l'intéressent.
Durant le procédé, l'utilisateur peut modifier un objet à partir du bouton 1 b (par exemple la taille et la position d'un objet dans la fiche, à l'aide de sa souris ou la surface tactile).
Le bouton de test 1 e permet optionnellement le lancement de l'application en mode simulation dynamique pour juger de la qualité du résultat. Il permet de se servir
complètement de l'application créée dans le cadre 2 comme si elle avait été téléchargée sous sa forme finale. Cela permet à l'utilisateur de se rendre compte si l'application et si les objets extraits automatiquement de la toile par le serveur répondent à ses attentes.
A la fin de ces opérations, l'utilisateur clique sur le bouton "Enregistrer" 1d et l'application est finalisée automatiquement par le serveur. L'application est alors prête à être utilisée sur le ou les appareils prévus par l'utilisateur de la manière qui sera expliquée plus loin avec la Figure 3.
Cette application s'exécute alors conformément à la représentation choisie lors de la création (fenêtre 2), mais elle est devenue une application indépendante du navigateur, capable d'afficher des fiches de produits, parmi une liste de fiches, avec une navigation interactive, agrémentée d'un outil de recherche simple.
L'application téléchargée sur l'appareil depuis le serveur contient une partie résidente sur l'appareil, mais ne contient aucune donnée dynamique. La partie résidente prend en charge les fonctionnalités propres de l'appareil comme les fonctions de télécommunication, les affichages, restitutions d'images, sons et vidéo, les interactions avec l'utilisateur. Les contenus des fiches sont garnis à partir des métadonnées enregistrées au cours de la création sur le serveur et les données sont extraites de la page de la toile à partir de ces métadonnées, au moment de la consultation. Les données sont ainsi toujours à jour et sont extraites avec succès même si leur emplacement a changé sur le site d'origine.
Bien entendu, les fiches décrites dans cet exemple peuvent être enrichies par d'autres fonctions comme des classements selon certains critères, des liens vers des sites de la toile qui pourraient activer l'ouverture d'une fenêtre navigateur ou le lancement d'une autre mini application.
L'application enregistrée peut être d'usage strictement individuel mais aussi partagée avec d'autres utilisateurs qui peuvent, dans ce cas, réutiliser tout ou partie du cadre applicatif et de ses fonctionnalités. En effet, comme on le verra plus loin, l'extraction des données, réalisée par le serveur, peut-être mise en commun. Une application simple peut ainsi hériter des efforts d'autres utilisateurs et devenir bien plus riche.
On comprend ainsi le très faible effort nécessaire à la création d'une application, ce qui constitue le but et l'avantage principal de l'invention. Cet avantage est dû au découpage et à la coopération entre le serveur d'applications et l'extension
du navigateur utilisée pendant la création. La richesse des applications possibles découle de celle des modèles proposés (qui peuvent être enrichis par les utilisateurs), ainsi qu'aux possibilités de réutilisation et de modification d'applications existantes. Plus le nombre d'utilisateurs est grand, plus la richesse des applications sera grande, grâce à l'imagination des utilisateurs qui participent ainsi au développement du service.
Par ailleurs, l'extension du navigateur peut évidemment proposer un plus grand nombre de boutons et de fonctions (non représentés sur la figure) pour la construction graphique et l'enrichissement de l'application, selon des technologies connues, tels que, par exemple :
- Un bouton "sélection multiple" qui permet d'avertir l'extension et le serveur que la page consultée contient plusieurs objets du même type et que le serveur doit les extraire automatiquement lorsqu'un seul de ces objets est sélectionné. La sélection d'un seul objet peut alors conduire à la création automatique de plusieurs fiches.
- Un bouton "style" qui permettent de changer le graphisme comme la couleur, les styles et la taille des caractères, pour tout ou partie de l'ensemble des données liées aux métadonnées, c'est-à-dire applicable à tous les enregistrements similaires.
- Un bouton "grille" qui permet de faciliter le positionnement des objets dans la vue selon un alignement prédéfini.
- Un bouton "rafraîchissement" de la vue et donc des données et contenus extraits des métadonnées pour assurer la concordance des informations de la vue avec celles de la toile.
- Un bouton "fond d'écran" pour illustrer la zone dans laquelle la métadonnée est déposée.
- Un bouton "couches" qui permet de travailler sur plusieurs parties de l'application, de façon indépendantes, ou qui permet de créer des résultats différents dans une même zone, en fonction du parcours de l'utilisateur (par exemple un cours de bourse est représenté soit par la valeur en cours de l'action, soit par le graphe de l'historique de l'action, suivant le contexte lors de l'exécution de l'application...). Ce parcours est visualisable lors de la création par appui sur la touche "couches" qui permet de commuter simplement la signification de la zone modifiable par copier coller ou glisser déposer.
- Un bouton "modification" qui permet de modifier l'enregistrement réalisé ou le modèle choisi.
- Un bouton "partage" qui permet de partager tout ou partie du cadre applicatif et de ses outils associés. Il définit les autorisations d'accès par d'autres utilisateurs aux métadonnées enregistrées. Cela permet à des tiers de prendre, dupliquer, modifier, enrichir l'application.
- Un bouton "source" qui permet a l'utilisateur de retrouver la page de la toile à partir de laquelle il a capturé la ou les métadonnées.
- Un bouton "cadre" qui permet de commuter les actions de l'utilisateur d'un cadre applicatif vers un autre cadre applicatif si plusieurs cadres sont créés ou ouverts simultanément.
- Un bouton "aide" qui permet à l'utilisateur de trouver de l'aide lors de la création de l'application. Un agent, par exemple, pose des questions lorsque les choix sont multiples (lorsque la machine ne peut décider à sa place).
Ainsi une personne qui sait utiliser un navigateur peut créer son application entièrement avec la souris ou les doigts sur un écran tactile. On verra dans la suite de la description comment ces opérations simples aboutissent également à la création automatique d'agents complexes dans le serveur d'applications. Ces agents déchargent l'appareil des opérations concernant les données.
Alors que l'exemple précédent montre une application simple proposant une rubrique, il va de soi que l'invention permet également de créer des applications plus complexes par l'assemblage de plusieurs rubriques ou d'applications simples, chacune occupant un "sous-cadre" ou partie du cadre applicatif.
L'exemple de la Figure 2 concerne une telle application. Il présente un autre mode opératoire, qui concerne cette fois une modification d'applications existantes.
Dans la fenêtre du navigateur 1 , avec l'aide de l'extension précitée, l'utilisateur a choisi ou a été conduit à choisir une ou deux applications existantes choisies dans le site du serveur d'applications. Son intention est de construire une nouvelle application à partir des éléments de deux applications existantes. L'une au moins de ces deux applications, ou l'une de leurs rubriques aurait tout aussi bien pu être l'application décrite à la Figure 1 . Dans cet exemple, les deux applications comportent plusieurs rubriques et constituent le point de départ. Ces applications sont représentées côte à côte dans la fenêtre du navigateur 1 sous la forme des cadres 3 et 4 respectivement. Chacun d'eux comprend trois rubriques, sous forme de
liste déroulantes par exemple, pour l'une, des destinations de voyages 31 (avec photo, description, prix), des horaires aériens 32 et des réservations d'hôtels 33, et pour l'autre, des festivals musicaux 41 , des représentations théâtrales 42 et des horaires de trains 43.
En sélectionnant l'un des cadres (4 par exemple) et le bouton "Modifier" 1 b, une fenêtre d'application prototype ou "cadre applicatif 2 s'affiche. Celui-ci recopie, comme point de départ, les 3 cadres de l'application d'origine, 41 , 42, 43 qui deviennent 21 , 22 et 23. L'utilisateur décide alors de remplacer la rubrique 21 (ex 41 ) par la rubrique 31 du cadre 3. Il le fait par un simple glisser déposer vers le cadre 2. De plus il décide d'ajouter la rubrique 32 par un glisser déposer du cadre 3 vers le cadre 2, l'arrivée se situant entre les rubriques 21 -22 et 23. Les cadres de ces rubriques se réduisent en taille par des modifications de style automatiques et s'écartent pour laisser la place à la nouvelle rubrique 24. Toutes ces opérations automatiques sont réalisées par des interactions entre le serveur d'application et l'extension du navigateur, par des échanges de données et de commande invisibles à l'utilisateur qui n'a fait qu'un simple glisser déposer. Cette opération a permis de désigner complètement le sous-cadre source 32 dans le cadre 3, le cadre destination 2 et l'emplacement d'arrivée situés entre les sous-cadres 21 , 22 et 23. Les dimensionnements et modifications de style automatiques découlent des caractéristiques des cadres, tout étant connu du serveur d'applications.
On en déduit aisément comment l'utilisateur peut modifier l'une ou l'autre des applications élémentaires composantes de l'application 2 : il suffit de la sélectionner et le scénario décrit à la Figure 1 se déroule comme décrit précédemment : Les pages de la toile pointées par cette application unitaire peuvent apparaître alors successivement dans la fenêtre 1 . L'enregistrement des modifications d'une application élémentaire est suivi du retour à l'application globale qui contient cette composante, jusqu'à l'enregistrement de l'application globale modifiée.
La simplicité du mode opératoire est donc maximale, du point de vue de l'utilisateur. Cette simplicité résulte du découpage et de la répartition, selon l'invention, des fonctions qui interagissent entre le serveur et l'extension du navigateur.
Ces opérations sont décrites ci-après.
La Figure 3 représente l'architecture générale du système mis en oeuvre pour l'invention et notamment pour réaliser les scénarios d'usage décrits précédemment.
Cette figure représente deux chaînes de moyens : une chaîne de création et de modification d'application et une chaîne d'exécution d'application, qui partagent des éléments en commun.
Tout d'abord, la chaîne de création, modification d'application est décrite ci- après :
L'utilisateur qui souhaite créer ou modifier une application dispose d'un ordinateur 100 comprenant un navigateur 101 (l'un au moins des navigateurs existant) et une extension 102 conçue spécifiquement pour interagir avec le serveur d'applications 200, à travers l'Internet 1 . Cette extension 102 est supposée déjà intégrée au navigateur, soit par le constructeur dans le procédé de fabrication de l'ordinateur, soit par l'utilisateur, par exemple lors d'une connexion et une souscription ou inscription au site du serveur d'application, afin d'obtenir les moyens et autorisations nécessaires. Le serveur 200 est constitué de plusieurs sous- ensembles détaillés plus loin.
Selon une première forme de réalisation possible, cette extension peut être avantageusement réalisée en langage "Javascript" et téléchargée par le site du serveur d'applications. Des détails de réalisation de cette extension sont donnés plus loin avec la Figure 7.
Selon une autre forme de réalisation, l'extension et le navigateur peuvent ne former qu'une seule et même application intégrée 103, dédiée à cet usage.
Selon le premier mode opératoire (Figure 1 ), le lancement de l'extension 102 provoque une modification des paramètres de connexion à l'Internet 1 de l'ordinateur 100, de telle sorte que toutes les connexions (requêtes et réponses) à des sites d'information 300 soient redirigées à travers le serveur d'application désigné globalement sous la référence 200, et plus exactement à travers un serveur enregistreur 210 qui réalise aussi les fonctions d'enregistreur d'applications.
Cette redirection est réalisée par une simple modification des préférences du navigateur. La connexion entre l'ordinateur 100 et le serveur 210 est alors protégée comme une liaison dans un réseau local et sous contrôle total du serveur 210.
On peut dire, pour simplifier que cette extension réalise un déport des opérations informatiques de l'extension vers le serveur 210, de sorte que seuls les affichages et les interactions avec l'utilisateur restant sur l'ordinateur de l'utilisateur.
L'extension 102 ouvre également une fenêtre dite "cadre applicatif (comme la fenêtre 2 des Figure 1 et 2, mais non représenté sur la Figure 3) dans laquelle
l'utilisateur construit progressivement l'application qu'il souhaite utiliser plus tard. Les actions de l'utilisateur dans la fenêtre du navigateur et dans le cadre applicatif sont transmises au serveur 210. Les traitements consécutifs à ces actions sont réalisés par le serveur qui, en retour, pilote les affichages dans cette fenêtre et ce cadre.
La création de l'application se fait en analysant le parcours naturel des pages
Web sur le site Internet 300 depuis le navigateur 101 . Une capture automatique des éléments constituant de l'application en cours de création est réalisée, selon l'invention, par les fonctionnalités qui sont ajoutées au navigateur grâce à l'extension 102 en interaction avec le serveur 210.
Par exemple la position de la partie visible d'une page Web dans le cadre, une sélection d'une zone de texte ou d'une image, sont transmises au serveur sous forme d'index dans le code source de la page.
Cette extension 102 met également à disposition de l'utilisateur des fonctions de départ, sélection, modification et fin d'enregistrement d'une application, ainsi que bien d'autres fonctions telles que celles qui sont listées précédemment à la description de la Figure 1 . Une fois le début de l'enregistrement réalisé, l'application est automatiquement créée dans le serveur 200 sous forme d'un fichier contenant des enregistrements caractérisant le modèle d'application, les appareils cibles et les objets qui seront présentés ensuite par l'application finale lors de son exécution.
Ce fichier d'application est plus avantageusement enregistré dans une base de données 220, la technologie des bases de données étant mieux adaptée pour organiser les enregistrements de sorte que les applications soient partagées par un grand nombre d'utilisateurs.
La fonction de sélection donne le moyen de sélectionner non pas une simple donnée mais une métadonnée, c'est-à-dire la description et la localisation de la donnée. La donnée peut être une chaîne de caractère textuelle, une image, une vidéo, un lien vers une autre page, etc. A chaque sélection, le système identifie, par des critères pertinents, comment retrouver la donnée sur la toile.
Ce serveur mémorise dans la base de données 220 non seulement les métadonnées sélectionnées mais aussi le ou les agents et robots qui permettront de reproduire le parcours que l'utilisateur fait sur l'ensemble de la toile entre le début et la fin d'enregistrement, c'est à dire, au minimum, l'historique de navigation par l'utilisateur.
Il peut donc naviguer le plus naturellement possible et, lorsque qu'il souhaite sélectionner une donnée, le système met en oeuvre une fonction de capture des métadonnées qui peut être avantageusement un cadre de sélection dans la page visualisée ou toute autre forme de "sélection" selon l'interface utilisateur habituelle proposée par le constructeur de l'ordinateur. L'affichage de ce cadre dans la fenêtre du navigateur est une fonction de l'extension 102. L'extraction des métadonnées correspondant aux cadre de sélection est une fonction du serveur 210 qui possède, en cache, la page complète qu'affiche le navigateur et qui, du fait de la sélection, est capable de déterminer la portion du code HTML, XML ou autre qui correspond à cette sélection, ainsi que les coordonnées (URL de la page et position dans la page, au moins) pour y accéder par la suite.
La possibilité et la représentation du glisser déposer qui permet de positionner la donnée sélectionnée dans le cadre applicatif est une autre fonction de l'extension en interaction avec le serveur 210. L'enregistrement de la metadonnée se réalise au moment du dépôt de la donnée sélectionnée dans le cadre applicatif.
Les actions de l'utilisateur dans la fenêtre du navigateur sont donc transmises au serveur 210, et associées aux paramètres des données sélectionnées et extraites de telle sorte que le serveur identifie exactement les métadonnées correspondantes et leur intégration dans l'application, par un enregistrement de cette métadonnée dans la base de données 220.
Le serveur 210 fonctionne donc comme un enregistreur avec une action "début d'enregistrement" et une action "fin d'enregistrement". Entre les deux, des actions "capture" sont matérialisées par des enregistrements dans la base de données 220.
Le système d'extraction définit donc une métastructure qui peut être copiée- collée ou glissée-déposée dans le cadre applicatif. Une fois déposées dans le cadre applicatif (vue, page, etc.), les structures collectées sont affichées dans un composant approprié (une grille, une liste, une galerie, ...) qui fait partie de la définition du modèle choisi au départ.
Une application finale est donc constituée d'un ou plusieurs de tels composants.
Une application peut être aussi un composant.
Une application peut être aussi un assemblage d'autres applications.
Ce cadre applicatif permet de préparer l'application destinée à être redistribuée sur des supports variés ( ordinateur, téléphone mobile, tablette, télévision, etc.) qui peuvent imposer des variantes de présentation des même contenus (tailles et types de caractères, nombre de caractères par ligne, défilements et zoom, etc.).
Ce cadre permet de visualiser le rendu des métadonnées, c'est-à-dire la manière dont les données définies par les métadonnées seront visualisées par l'utilisateur après redistribution. L'utilisateur crée ainsi une image de la manière dont il voudra utiliser ce qu'il a capturé et enregistré.
Dans ce dessein des outils graphiques sont mis à sa disposition, qui sont appliqués à chaque métadonnée et concernent donc toutes les données liées à cette métadonnée.
La fonction de sélection offerte par l'extension, en combinaison et en relation avec le serveur enregistreur 210, lui permet d'identifier non seulement la donnée qu'il visualise à l'instant, mais également les données futures situées à la même place dans la page, ou bien dans une autre page avec une structure similaire.
Dans le cas d'une sélection simple, comme représenté sur la Figure 1 , la sélection d'un élément par l'utilisateur entraîne la création de la métadonnée correspondante. Par une simple opération de copier-coller ou glisser-déposer, le déplacement de la sélection vers la fenêtre applicative est traduit par le serveur 210 en un lien entre la métadonnée et le composant qui va la visualiser ou l'utiliser dans la nouvelle application. La sélection est facilitée par une mise en évidence de la sélection par une méthode visuelle qui peut-être un sur-lignage, un clignotement, un scintillement, un détourage, un encadré ou toute autre méthode de visualisation équivalente.
L'enregistrement d'une métadonnée peut aussi permettre l'enregistrement multiple d'autres métadonnées associée à la métadonnée sélectionnée, même si elles ne sont pas visualisées. C'est le cas des pages Web composées d'énumération de données simples ou complexes. On peut citer par exemple un catalogue de produits sous forme d'une grille dont chaque cadre décrit un produit. L'utilisateur peut avoir besoin de capturer l'ensemble des données de tous les produits en ne sélectionnant qu'un seul produit. Pour ce faire, l'utilisateur peut utiliser un bouton spécial de "sélection multiple" qui lance alors un moyen technique de sélection
automatique des données similaires à celle de la donnée sélectionnée qui seront associées à la même métadonnée.
La fonction de sélection dispose donc d'une option "multiple" qui, une fois choisie, indique à l'extension 102 et au serveur 210 qu'il doit mettre en œuvre un module de traitement de comparaison de structures et un robot de recherche et d'analyse travaillant sur le site visité. De cette façon, il n'est pas obligé de sélectionner manuellement chaque occurrence. Cela est d'autant plus utile que leur nombre peut-être variable d'une page à l'autre.
Des métadonnées similaires peuvent également être issues d'un moyen de recherche d'analogies sémantiques soit dans le même site, soit sur d'autres sites de la toile. Ces recherches analogiques peuvent se rencontrer dans le cas d'images ou données cachées derrière la métadonnée sélectionnée et donc non visualisées par l'utilisateur.
Une fois l'enregistrement terminé, le serveur 210 a enregistré dans la base de données 220 une série d'enregistrements correspondant aux contenus et informations souhaitées sous forme de métadonnées, ainsi qu'un ou plusieurs agents capable de reproduire le parcours de l'utilisateur sur la toile et un modèle de présentation qui permettra aux métadonnées d'être visualisées sur des supports variés, par exemple : des fonds d'écrans statiques ou dynamiques, des modules logiciels existant (tableur, agenda, cartes géographiques, jeux,...).
Dans la pratique, la hiérarchie entre les agents, robots et métadonnées s'exprime par le fait que l'agent commande des robots qui exécutent des tâches décrites par les métadonnées.
L'enregistreur met ces structures de données à disposition de l'application pour que celle-ci puisse ultérieurement y accéder indépendamment des pages qui les contiennent. La base de données 220 est donc commune au serveur enregistreur 210 pour les opérations de création/modifications et au serveur d'exécution applications 240 qui est décrit plus loin.
L'application enregistrée peut être d'usage individuel ou collectif. L'architecture du système selon l'invention permet des partages d'applications avec d'autres utilisateurs qui auraient, dans ce cas, accès à tout ou partie du cadre applicatif et de ses fonctionnalités, selon les autorisations qui y seraient attachées.
Maintenant la chaîne d'exécution d'applications est décrite ci-après :
Lorsque l'utilisateur souhaite utiliser l'application, à partir d'un appareil 1 10, il devra avoir téléchargé au préalable un module d'exécution 105 en se connectant au site du serveur d'applications 200. Cette connexion peut se faire de multiples manières, soit en tapant l'adresse du serveur dans le navigateur ou à partir d'un lien sur une page de la toile, un mèl, ou une autre application. L'accès à une application peut comporter des étapes d'inscription au site, aux services du site (comme la création d'application) et des contrôles d'accès (par nom et mot de passe).
Du fait de la différence de nature des appareils, selon l'invention, le module d'exécution 105 est spécifique à l'appareil ou à une catégorie d'appareils, notamment au système d'exploitation, à la définition de l'écran, à sa taille et aux caractéristiques de ses moyens d'interactivité. En effet, un petit écran ne peut pas afficher autant de composants applicatifs qu'un grand écran. Par conséquent la présentation peut différer d'un appareil à un autre et le serveur d'application se charge d'assurer l'adaptation nécessaire à partir de la connaissance qu'il acquiert sur le type d'appareil, à la connexion entre le module 105 et le serveur 200. Ces techniques d'adaptation sont connues et déjà mises en œuvre dans les navigateurs et les sites de la toile.
Selon une caractéristique de l'invention, l'enregistrement des métadonnées dans la base de donnée et l'extraction des données sont indépendants des appareils. Seul le rendu des données correspondant à ces métadonnées peut être personnalisé en fonction de l'appareil. Pour ce faire, l'application enregistrée comporte une partie descriptive de la présentation de l'application qui est adaptée aux caractéristiques des appareils, soit lors de l'enregistrement dans la base de donnée d'application, soit lors du téléchargement sur l'appareil, soit les deux à la fois. Les éléments nécessaires à la présentation sur un appareil donné sont déterminés, de préférence, au moment du téléchargement de l'application ou au moment de la transmission des données par le serveur. Il s'agit en fait du modèle choisi à la création, dans lequel pourront évoluer le rendu des métadonnées selon le type d'appareil et les préférences de l'utilisateur.
C'est une application générique, indépendante des données, des métadonnées et de leur représentation, qui s'exécute sur l'appareil (donc dépendant du matériel et du système d'exploitation de celui-ci). Les constructeurs des appareils fournissent habituellement des outils de développement de telles applications. Du fait de l'indépendance entre les applications et les données, une seule application
générique peut supporter de nombreux modèles d'applications enregistrées, qui permettent d'afficher de nombreux types de données, avec des fonctionnalités variables et des sujets différents. Un jeu de modèles associés à une application générique peut donc suffire à supporter une grande variété d'applications supportant toutes sortes de données.
L'application 105, côté utilisateur, envoie une requête de téléchargement de la description de l'application au serveur 240. Une fois téléchargée, celle-ci contient la liste d'agents que l'application exécute. Ces agents envoient alors des ordres de lancement des robots au serveur. Ces robots exécutent les requêtes vers l'Internet conformément aux métadonnées qu'ils contiennent. Les données en réponses parviennent ensuite à l'application qui les présente à l'utilisateur progressivement, de manière asynchrone, conformément à la description précitée. Plus de détails sont fournis avec la Figure 7.
L'application téléchargée 105 peut être un module navigateur ou être réalisée à partir des technologies d'un navigateur dont les fonctions sont limitées aux seules fonctions nécessaires afin d'en réduire la taille et d'optimiser ses performances. L'application 105 peut être aussi un "gadget" capable d'interpréter les commandes et le langage HTML et/ou XML.
D'autres exemples de réalisation sont donnés plus loin en ce qui concerne les récepteurs d'applications.
Optionnellement, une connexion entre le serveur enregistreur 210 et le serveur d'applications 240 permet l'exécution de l'application (en tout ou partie) pendant la création ou la modification en mode simulation, de façon à donner une représentation réelle de l'application. Dans ce cas, l'application 105 s'exécute dans le même appareil que le navigateur 101 et l'extension 102. Il s'agit alors d'un simulateur d'application ou un simulateur d'appareil. Il est possible de télécharger plusieurs applications ou simulateur 105 correspondant à différents types d'appareils (en particulier pour juger du rendu sur différentes tailles d'écran qui peut influer sur la disposition et la lisibilité des composants de l'applications).
La Figure 4 représente un exemple des étapes du procédé de création d'application selon l'invention.
Les étapes de gauche U1 à U6 se déroulent sur l'ordinateur 100 de l'utilisateur créateur d'application. Les étapes S1 à S6 se déroulent sur le serveur d'applications 200
Etapes U1 et S1 : Lancement du navigateur et son extension. Celle-ci établit une connexion via Internet avec le serveur 200. La redirection fait que tout le trafic de l'ordinateur passe par le serveur 200.
Etape U2 : Avant de démarrer la recherche de données sur Internet, l'utilisateur doit choisir un modèle d'application parmi un ensemble de modèles prédéfinis qui sont proposés par le serveur 200 (étape S2). C'est une étape de définition du projet et d'affichage de la fenêtre prototype. Le choix du modèle peut tenir compte du ou des appareils cibles dont les caractéristiques peuvent contenir des facteurs limitant ou nécessiter des variantes de présentation.
Etape S2 : Création du fichier d'application dans la base de données qui contiendra, entre autres, les enregistrements de métadonnées ainsi que la référence du modèle choisi à l'étape U2
Etape U3 : L'utilisateur procède à la recherche d'information sur le Web à partir de la fenêtre du navigateur
Etape U4 : L'utilisateur a trouvé une information pertinente pour son application. Il procède à la sélection de cette information (par exemple en cliquant sur le bouton "sélection", puis en définissant un cadre entourant l'information) et ensuite au glisser déposer de celle-ci dans la fenêtre prototype. Il peut également sélectionner un bouton de sélection multiple.
Les étapes U3 et U4 se répètent jusqu'à la fin de la création de l'application.
Etape S4 : A chaque ajout d'une information dans le prototype par l'étape U4, le serveur enregistre les métadonnées avec les agents et robots correspondants.
Etape U5 : A la fin de la création, l'utilisateur demande l'enregistrement de l'application
Etape S5 : Le serveur enrichit éventuellement la liste des métadonnées enregistrées par une recherche et l'enregistrement de métadonnées d'informations similaires, puis termine la compilation des données de l'application par des moyens informatiques habituels.
Etape U6 : La gestion des droits pour permettre le partage de tout ou partie de l'application nécessite optionnellement l'interrogation de l'utilisateur par une page questionnaire.
Etape S6 : Le système enregistre les données de gestion de droits, procède à la fermeture du fichier d'application et sa mise à disposition pour distribution et exécution.
D'autres manières de procéder à la création d'applications sont possibles et équivalentes. Notamment, il est possible de rechercher d'abord toutes les informations potentiellement intéressantes (répétition de la seule étape U3) puis de disposer les seules informations pertinentes pour l'utilisateur dans le cadre applicatif (répétition de l'étape U4).
La Figure 5 représente de façon symbolique un exemple de fichier d'application A dans la base de données 220. Il s'agit des blocs mémoire dans lesquels sont écrites les données enregistrées au cours d'une session de création ou modification d'application, données qui sont ensuite lues et exploitées par d'autres moyens du système au cours de l'exécution de l'application.
Ce fichier contient une partie application et une partie concernant les robots. Ceux-ci pouvant être commun à plusieurs applications sont donc de préférence séparés mais associés par des liens.
La partie application (à gauche de la figure) contient :
- Une partie A1 qui contient l'entête de l'application (nom, date, créateur, droits, description, etc.), ainsi que les types d'appareils supportés.
- Une description du modèle choisi M, qui contient une série de caractéristiques M1 , M2, M3, M4, etc. qui peuvent se rapporter, par exemple, aux éléments de texte, de grilles et tableaux, de graphiques, de multimédia, etc.
- Une série d'agents A2, A3, A4, etc. qui se référencent à des métadonnées et leurs robots, qui peuvent être démultipliés en sous-agents (par exemple s'il s'agit d'une sélection multiple) A21 , A22, A23, etc. Ces agents pointent alors vers l'autre partie qui concerne des robots R1 , R2, R3, etc. et groupes de robots R1 1 , R12, R13, etc. Chaque robot contient la métadonnée qui constitue la tâche qu'il doit faire.
Les robots sont généralement communs à plusieurs applications et sont liés aux applications par des liens ou références. Cette structure avec mise en commun permet de réduire la taille mémoire nécessaire, mais aussi d'enrichir facilement les applications comme indiqué précédemment.
La Figure 6 représente les détails de réalisation du serveur enregistreur 210. Rappelons que ce serveur a pour but de permettre l'analyse de la navigation Web effectuée par l'utilisateur en phase de création d'application, à partir de son navigateur 101 et en interactivité avec son extension 102 grâce à la redirection des
flux du navigateur vers le serveur 210. Ce dernier "voit" donc passer tous ces flux. Le serveur 210 met en oeuvre les fonctions technologiques nécessaires à l'analyse de ces flux et la création des enregistrements, c'est à dire les étapes du procédé décrit à la Figure 4, ainsi que des fonctions d'enrichissement automatiques.
Le serveur 210 enregistreur comprend les éléments ou modules suivants :
- Un serveur mandataire 21 1 qui assure la transition de l'ensemble du trafic entrant et sortant (requêtes et réponses) entre l'ordinateur de l'utilisateur (via le réseau 1 ) et le reste du système. Il assure éventuellement la fonction de cache, notamment l'enregistrement du parcours dynamique à travers différentes pages Web, requêtes et réponses, localisations sur le Web (adresses URL), actions utilisateurs effectuées sur chaque page, pour localiser et extraire les structures de données pertinentes permettant les enregistrements de métadonnées dans la base de données 220. Le serveur mandataire est capable d'écouter les commandes de l'extension 102 qui ne sont pas des ordres de navigation.
- Un aiguilleur 212 qui assure la séparation entre les requêtes du navigateur
101 destinées au site d'informations visité 300 en cours d'analyse par l'utilisateur et les requêtes de l'extension 102 destinés à la création de l'application (modèles, métadonnées et agents). Il permet de séparer des requêtes qui n'ont pas pour origine des éléments de la page consultée, mais qui proviennent indirectement de la boîte à outils 216, via l'extension 102. Les demandes comme la création d'une nouvelle application, le choix d'un modèle de cadre applicatif parmi ceux qui sont proposés dans une base de modèles 217, la création d'un agent, sa sauvegarde, la sélection d'une métadonnée, sa modification ou suppression , etc. sont identifiées grâce à un marqueur dans la requête et sont redirigées vers l'enregistreur d'agents et de métadonnées 214.
Les objets destinés à la création d'application sont ensuite transmis à :
- Un module enregistreur 214 des agents, robots et métadonnées correspondant aux données sélectionnées par l'utilisateur pour faire partie de l'application cible, dans la base de données d'applications 220. Ce module met donc ces structures de données à disposition de l'application pour que celle-ci puisse ultérieurement y accéder indépendamment des pages de la toile qui les contiennent.
Les réponses en retour du site consulté, via le réseau 1 sont traitées successivement par :
- Un module de filtrage et de normalisation 215 qui assure la cohérence entre les pages affichées le navigateur 101 et les traitements qui sont faits par l'enregistreur 214, de façon que, à l'exécution, la restitution soit conforme à l'original. Il permet, entre autres, de bloquer certains messages parasites, certains scripts dynamiques. Il assure ainsi l'analyse et la décomposition des pages visitées de manière à identifier leur structure de données et leur modèle de visualisation. Cette opération est étendue aux pages similaires du site visité, pour assurer, par exemple, les sélections multiples et les enrichissements automatiques à partir des robots et métadonnées existant dans la base de données, pouvant provenir d'autres utilisateurs. A titre d'exemple, si la page concernée n'a jamais été visitée (car ce serait la première fois), et n'est pas connue du serveur, cette page est restituée telle que au navigateur. Par contre, si la page est déjà connues du serveur et déjà associée à un robot (avec des métadonnées), alors le module 215 analyse cette page et ajoute dans la page des références aux métadonnées qui sont alors visualisées par l'extension (avec l'aide des outils du module 216 suivant) : l'utilisateur verra alors apparaître, par exemple, un objet présélectionné. Si cette sélection est pertinente pour l'utilisateur, il n'aura alors que le glisser déposer à faire pour garnir son application, d'où un gain en temps et en simplicité.
- Une "boîte à outils" 216 qui se présente sous forme d'injecteur de fonctions supplémentaires graphiques et sémantiques dans le document de réponse, notamment pour assurer la sélection de métadonnées. Elle ajoute par exemple des ordres graphiques et des éléments d'interactivité qui sont exploités par l'extension 102 et le navigateur 101 dans les mécanismes de sélection et d'identification de données par l'utilisateur. Cette boîte à outils est réalisée sous la forme d'une librairie de fonctions en Javascript. Une ou plusieurs fonctions sont sélectionnées en fonction du contexte pour être insérées dans le flot de données renvoyé au couple navigateur-extension 101 -102.
- Un module de mise en forme 218 des pages consultées, notamment l'intégration des fonctions de la boîte à outils dans la page de réponse et l'intégration des marqueurs exploités par le module d'aiguillage. Il peut aussi s'appuyer sur les caractéristiques du modèle qui sont aussi extraites de la base des modèles 217 pour être adressées à l'extension 102 et permettre un affichage conforme des données extraites sur le poste de création 100 de l'utilisateur.
La Figure 7 représente un exemple de réalisation de l'extension 102 du navigateur 101 .
Celle-ci contient deux modules principaux 1 10 et 1 1 1 . Le module 1 10 est dédié à la gestion de la fenêtre du navigateur 1 et le module 1 1 1 à la gestion de la fenêtre du cadre applicatif (un ou plusieurs) 2.
Le module 1 10 comprend deux types d'outils : les outils de sélection 1 10a qui s'affichent dans la page pour visualiser cette sélection et les outils de commande 1 10b comme les boutons définis et décrits à l'occasion des figures 1 et 2.
Le module 1 1 1 comprend deux sous-ensembles : Un module 1 1 1 a qui pilote le ou les cadres applicatifs en les matérialisant à l'aide des fonctions offertes par le système d'exploitation de l'ordinateur, comme le ferait une application standard. Et un module 1 1 1 b qui assure le choix du type d'interface entre les agents et l'appareil (pour tous les types d'appareils), en faisant l'interface entre le serveur 210 et la gestion des cadres applicatifs.
D'une manière générale, les interfaces applicatives des applications qui peuvent être produites selon l'invention, ne sont pas limitées à des interfaces de type écran tactile/clavier/souris (pour ordinateurs, tablettes, téléphones), mais elles intègrent également des interfaces vocales, sonores et peuvent, plus généralement, mettre en œuvre toutes sortes de dispositifs sensoriels, d'acquisition et de restitution.
La Figure 8 représente un système complet selon l'invention, comportant en outre un système de gestion d'abonnés et d'abonnements.
Comme décrit à la figure 3, le poste de création ou modification 100 est connecté, via l'Internet (non représenté) au serveur d'enregistrement 210 qui alimente la base de données d'applications 220. Via le serveur 210, dans son rôle mandataire, l'utilisateur créateur est aussi connecté à un serveur d'abonnés 250 qui gère des abonnements et, plus généralement, des espaces abonnés dans une base de données d'abonnés 260. Celle-ci permet de regrouper les différents services associés aux abonnements tels que les identifications et les autorisations d'accès (nom, pseudo, mot de passe, adresse mèl, etc.) et les autorisations d'usages (droits d'accès à tout ou partie des applications de la base de données 220, liste des applications appartenant à l'utilisateur et pointeurs vers ces applications dans la base 220 pour utilisation ou modification, gestion du partage vers d'autres utilisateurs, gestions de droits d'auteur, gestion des cotisations et outils de paiement en ligne).
De même, pour l'exécution d'une application sur un appareil 500, la connexion de l'appareil au serveur d'exécution 240 et l'accès à la base de données d'applications 220 nécessite une connexion authentifiée au serveur d'abonnés 250, puis le choix d'une application autorisée pour cet appareil et le téléchargement des modules nécessaires comme expliqué précédemment.
Puisque le partage d'applications est possible, sous certaines conditions techniques, juridiques et commerciales gérées par le serveur d'abonnés 250 selon certaines conditions d'utilisation, l'organisation des enregistrements dans la base de données d'applications est réalisée de telle sorte que les éléments communs aux applications ne sont pas dupliqués.
La réalisation technique des composants d'un tel ensemble "client-serveur" fait appel, pour chacune d'eux, à des technologies connues qui sont à la portée de l'homme de l'art.
En particulier, les serveurs d'enregistrement 220, d'exécution 240, d'abonnés 250 et les bases de données associés peuvent être construits tout aussi bien sous forme centralisée ou sous forme répartie, et utiliser toutes formes connues de communication entre ses composants.
Par ailleurs, il est tout aussi envisageable d'embarquer une petite partie des traitements des serveurs ci-dessus dans chaque appareil ou dans certains des appareils, notamment ceux qui restent connectés au réseau en permanence ou presque. Des technologies de type "port à port" sont bien adaptées à cela.
L'invention trouve de nombreuses applications dans les développements de plus en plus rapides des technologies de la toile. Elle s'applique plus particulièrement aux possesseurs d'appareils connectés à la toile, qui, par millions, peuvent trouver de plus en plus de services utiles et pertinents, attachés à leurs appareils. Grâce à l'invention, chaque utilisateur sera capable de concevoir la ou les applications pour obtenir le ou les services qu'ils souhaitent. Le succès des premiers appareils de ce type et des magasins d'application qui leur sont dédiés confirme déjà qu'une chaîne de création et de distribution d'applications encore plus simple, selon l'invention, permettra d'obtenir une diffusion encore plus grande, rapide et d'importants développements commerciaux.
L'invention s'applique non seulement aux appareils cités pour la réception et l'exécution des applications (ordinateurs, tablettes, téléphones, téléviseurs, etc.), mais aussi aux machines possédant des interfaces d'acquisition et de restitution
différents, même éventuellement dépourvues d'interface utilisateur et d'interactivité humaine, comme on en trouve dans les architectures réparties du type "machine à machine" dédiées à l'exécution de certaines tâches conditionnées par des données extérieures. Dans ce cas, on peut considérer ces machines comme équivalentes à ce qui est décrit précédemment, par le fait que l'interface utilisateur existe quand même, même si elle est déportée sur une ou plusieurs autres machines.
De plus, pour la création d'applications, l'invention s'applique aussi aux architectures distribuées de type "poste à poste" mettant en oeuvre des ordinateurs en réseau plutôt (ou en complément) que des serveurs centralisés, ces deux types d'architecture étant considérés comme fonctionnellement équivalent. Comme indiqué précédemment, l'architecture technique présentée peut être déclinée différemment, par exemple de façon répartie plutôt que centralisée, notamment pour assurer un dépliement massif des services selon l'invention.
L'invention propose en outre, selon certains modes de réalisation, un procédé de développement d'application personnelle pour la consultation de contenus et services de la toile sur divers appareils, à partir d'un ordinateur personnel opéré par un utilisateur et connecté à un serveur d'applications, caractérisé en ce qu'il comprend les étapes suivantes choisir, sur l'ordinateur, un modèle de cadre applicatif prototype prévu pour afficher sur un ou plusieurs appareils des informations et contenus selon une présentation choisie, et démarrer une session d'enregistrement par les deux opérations itératives suivantes rechercher et trouver sur la toile, par l'utilisateur, des informations du type souhaité, les sélectionner et les déposer dans des champs prédéfinis dudit cadre applicatif, capturer, en réponse aux actions de l'utilisateur, les métadonnées correspondant aux informations et contenus sélectionnés et les enregistrer successivement dans une base de données sous la forme d'un ou plusieurs agents capables de reproduire le parcours utilisateur, avec des données de présentation adaptées audit cadre applicatif, finir la session d'enregistrement, en regroupant, dans le serveur d'applications, les agents, les caractéristiques de présentation et le modèle de cadre applicatif, dans une structure de données dite "application", prête à être distribuée et exécutée sur au moins un type d'appareils.
L'invention propose en outre, selon certains modes de réalisation, un procédé d'exécution d'une application personnelle réalisée selon le procédé de développement ci-dessus, comprenant les étapes suivantes lancer un programme
d'exécution d'application sur l'appareil, qui peut être soit pré installé soit téléchargé, connecter ce programme d'exécution à un serveur d'application pour choisir, télécharger et lancer l'application qui requiert des données du serveur et assure l'affichage de ces données et les interactions entre l'utilisateur sur l'appareil et l'extraction des données sur la toile par le serveur, piloter, en réponse aux actions de l'utilisateur, par le serveur d'application, les ou les agents enregistrés dans l'application pour extraire les données correspondantes de la toile, filtrer, adapter selon le modèle de présentation de l'application, les données extraites par les agents et les transmettre au programme d'exécution qui les présente sur l'appareil à l'utilisateur.
Un des avantages de l'invention résulte de la combinaison de deux parties distinctes de l'application qui coopèrent, une partie, résidente sur l'appareil (après téléchargement le cas échéant) qui prend en charge les spécificités (fonctionnalités et limitations) de l'appareil, les interactions avec l'utilisateur et qui requiert les données du serveur, et une partie sur le serveur d'application qui prend en charge la gestion des données et leur transmission à l'appareil. Ce découpage garantit en particulier de permettre l'exécution d'une application sur un grand nombre de types d'appareils, l'adaptation ne s'opérant au maximum que sur une petite partie de l'ensemble, c'est-à-dire le programme d'exécution et éventuellement le modèle applicatif. Les données et contenus sont alors automatiquement adaptés au modèle. L'invention propose en outre, selon certains modes de réalisation, un système de développement d'application personnelle pour la mise en œuvre du procédé de développement d'application personnelle décrit ci-dessus, comprenant, en combinaison, pour la création d'application, un ensemble navigateur avec extension de développement spécifique, pré installé dans un ordinateur, permettant à l'utilisateur de construire une application pour un ou plusieurs appareils destinataires, à partir, d'une part, d'un modèle d'application choisi ou de sous-ensembles d'applications préexistantes, et, d'autre part, des informations ou contenus recherchés et localisés sur la toile avec le navigateur, cette extension comportant des moyens de réaliser la redirection des requêtes et des réponses du navigateur vers un serveur mandataire enregistreur puis, d'une part, la capture et la transmission audit serveur des actions de sélection de données ou de contenus faites par l'utilisateur dans une fenêtre du navigateur, et d'autre part, l'affichage d'au moins une fenêtre du modèle d'application qui présente les informations
sélectionnées et déposées depuis la fenêtre de navigation vers cette fenêtre du modèle, ainsi que les interactions entre ledit serveur et les actions de l'utilisateur, un serveur mandataire enregistreur qui comprend la mise en oeuvre, pendant une session de développement, des moyens de transmission des requêtes vers les sites de la toile choisis par l'utilisateur et de capture des réponses, des moyens de repérage, d'extraction et d'enregistrement, dans une base de données d'application, des agents et métadonnées correspondant aux informations sélectionnées par l'utilisateur, ces enregistrements, combinés avec le modèle d'application pour le ou les appareils destinataires, constituant une application, à la fin de la session de création, une base de données d'applications regroupant les enregistrements précités et les structures du modèle de présentation en vue d'une exécution par au moins un appareil.
Grâce à ces dispositions, les actions de développement (création ou modification) de l'utilisateur sont réalisées et automatisées par le serveur mandataire qui fait automatiquement un "apprentissage" des requêtes de l'utilisateur, puis enregistre le résultat global dans un fichier contenant les agents et les métadonnées associées à un ou plusieurs modèles de présentation des données. Ainsi l'application peut être "rejouée" ultérieurement sur différents types d'appareils.
En outre, les enregistrements réalisés en réponse aux sélections de l'utilisateur peuvent être enrichis par des enregistrements supplémentaires similaires à ceux qui sont précités lorsque les pages visitées de la toile ou la base de métadonnées contiennent des structures similaires. La richesse des applications profite donc pleinement de la richesse des pages, des sites et des enregistrements préexistant dans la base de données d'applications, par le fait, notamment, de la présence d'applications préexistantes, du même utilisateur ou d'autres utilisateurs, lorsque le partage est autorisé.
L'invention propose en outre, selon certains modes de réalisation, un système d'exécution d'une application créée par le procédé d'exécution d'une application décrit ci-dessus, et le système de développement d'une application décrit ci-dessus, comprenant une application interactive de visualisation résidente ou téléchargée sur l'appareil de l'utilisateur, capable de se connecter au serveur d'applications, de requérir une application déterminée et d'assurer l'affichage des informations transmises par le serveur d'application ainsi que l'interactivité avec l'utilisateur, selon des critères qui sont décrits dans l'application, un serveur d'applications capable de
stocker et de télécharger au moins une application vers un appareil connecté, comportant des moyens de commande du ou des agents lus dans le fichier de l'application et prévus pour extraire les données sur la toile, en interaction avec l'utilisateur via l'application de visualisation sur l'appareil, un ensemble d'agents et de robots pour réaliser lesdites extractions de données sur la toile, et des moyens de filtrage et d'adaptation des données extraites selon le modèle de présentation décrit dans l'enregistrement et de transmission vers l'application de visualisation sur l'appareil.
Dans certains modes de réalisation du système de développement d'application décrit ci-dessus, le serveur enregistreur comporte également des moyens automatiques de captures supplémentaires de métadonnées correspondant à des données du même type ou similaires à celles qui sont sélectionnées par l'utilisateur, dans la même page du site consulté, ainsi que dans d'autres pages du site.
Dans certains modes de réalisation du système de développement d'application décrit ci-dessus, le serveur enregistreur comporte des moyens de partage entre utilisateurs des métadonnées et/ou de tout ou partie de la base de données d'applications pour permettre le partage des applications, lorsque ce partage est autorisé, pour la création/modification et pour l'exécution d'applications.
Dans un mode de réalisation particulier du système de développement d'application, le logiciel du serveur enregistreur comporte en outre des instructions pour partager entre utilisateurs des métadonnées et/ou de tout ou partie de la base de données d'applications pour permettre le partage entre utilisateurs des applications pour la création/modification et pour l'exécution d'applications.
Ainsi, selon des modes particuliers de réalisation de l'invention, des moyens de partage sont combinés avec la base de données d'application pour permettre le partage de tout ou partie des applications lorsque ce partage est autorisé. Les utilisateurs bénéficiaires peuvent avantageusement modifier les applications partagées pour leur propre compte, en totalité ou en partie. Ils peuvent également modifier les modèles d'application prototype qui leur sont proposés pour les adapter à leurs besoins spécifiques. La construction d'applications sophistiquées peut aussi se faire par la combinaison des applications de plusieurs utilisateurs.
Grâce à ces dispositions, le partage des métadonnées et des structures similaires permet un enrichissement sans effort des applications.
Dans certains modes de réalisation du système de développement d'application décrit ci-dessus, l'extension comprend un module d'interface (1 1 1 b) entre les différents types d'agent de gestion de métadonnées des applications et les différentes technologies d'interfaces d'acquisition et de restitution présentes sur les appareils cibles des applications.
Dans certains modes de réalisation du système de développement d'application décrit ci-dessus, l'ensemble du navigateur et de l'extension sont réalisés sous forme d'une application de développement intégrée.
Dans certains modes de réalisation, le système de développement d'application décrit ci-dessus comporte en outre un ou plusieurs simulateurs d'applications conformes au système d'exécution décrit ci-dessus.
Dans certains modes de réalisation, le système de développement et d'exécution d'applications décrit ci-dessus comporte en outre un serveur de souscription d'utilisateurs, une base de données d'utilisateurs et d'espaces utilisateurs, et des moyens de partage des applications entre les utilisateurs, selon des droits déterminés.
Dans certains modes de réalisation, le système de développement et d'exécution d'applications décrit ci-dessus comporte un moyen de recherche d'analogies sémantiques de métadonnées pour augmenter l'extraction automatique de métadonnées durant la création ou la modification d'une application.
Grâce à ces dispositions, les données de l'application ne sont pas résidentes dans l'appareil qui ne contient qu'un module de visualisation et d'interaction avec l'utilisateur, ni dans le serveur d'application qui ne contient que des agents, robots et métadonnées, tout en bénéficiant de toutes les ressources, les performances, les mises à jour et les enrichissements dont il peut disposer. Les données extraites peuvent être de tous types (texte, images, vidéo, son, éléments d'interactivité, etc. comme décrit plus loin à la définition du mot "métadonnée").
Avantageusement, des performances optimales sont ainsi obtenues car seules les données dynamiques nécessaires à l'affichage et à l'interactivité du moment sont transmises. Les données statiques, de faible quantité et de faible volume, sont intégrées à l'application lors de sa création.
Grâce à ces dispositions, les efforts de l'utilisateur pour trouver des informations pertinentes de façon récurrente ne sont nécessaires qu'une seule fois à l'occasion de la création ou de la modification de l'application. La consultation des
informations se fait automatiquement à l'exécution au gré de l'interactivité entre l'utilisateur et l'application.
De plus, la partie la plus complexe, qui est la recherche et l'extraction des informations sur les sites de la toile, n'est plus réalisée directement par les utilisateurs mais est réalisée de façon automatique par le serveur qui est commun à tous les utilisateurs et qui est conçu pour supporter toutes les technologies nécessaires et leurs évolutions, avec des performances normalement supérieures à celles des appareils qui les consultent.
Avantageusement, les utilisateurs peuvent bénéficier des enrichissements d'informations évoqués plus haut parce qu'ils sont exécutés sur le serveur et peuvent évoluer bien plus facilement qu'une mise à jour d'application sur l'appareil.
En particulier, les utilisateurs ne sont pas limités à la construction d'applications à partir des seules informations repérées sur la toile, mais ils peuvent aussi s'approprier tout ou partie d'applications existantes et les combiner différemment, voire les enrichir avec d'autres types d'informations. Ils bénéficient ainsi des données visées par ces applications.
De plus, des enrichissements peuvent être proposés et intégrés directement par le serveur, soit lors de la création ou modification, soit lors de l'exécution. Ceux-ci peuvent être déduits des communications entre les robots en charge des requêtes et extractions, ou encore être induits par des applications spécialement développées dans ce but dans le serveur.