FR2885242A1 - Creation d'applications personnalisables - Google Patents
Creation d'applications personnalisables Download PDFInfo
- Publication number
- FR2885242A1 FR2885242A1 FR0504449A FR0504449A FR2885242A1 FR 2885242 A1 FR2885242 A1 FR 2885242A1 FR 0504449 A FR0504449 A FR 0504449A FR 0504449 A FR0504449 A FR 0504449A FR 2885242 A1 FR2885242 A1 FR 2885242A1
- Authority
- FR
- France
- Prior art keywords
- application
- type
- dom
- node
- profile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
La présente invention concerne un procédé de création d'une application correspondant à un ensemble de composants, dont l'exécution fournit un résultat adapté en fonction des conditions d'utilisation de ladite application.Le procédé comprend la génération d'un ensemble de documents XML de type DOM comprenant la logique non générique de l'application, la logique générique étant associée à des classes java liées à certains éléments des DOM.Le procédé selon l'invention permet de façon tout à fait originale, aux utilisateurs, de modifier simplement l'application sans avoir besoin de recompiler l'ensemble des exécutables.
Description
CREATION D'APPLICATIONS PERSONNALISABLES
La présente invention se rapporte au domaine de la création d'applications informatiques, en particulier d'applications personnalisables.
La présente invention se rapporte plus particulièrement à un procédé pour créer des applications personnalisables dont l'affichage peut dépendre des conditions d'utilisation, de l'identité ou du profil de l'utilisateur.
Il est avantageux de personnaliser l'affichage des applications pour les différents utilisateurs. On peut par exemple désirer n'afficher qu'un premier contenu d'information pour un premier type de client, et afficher un second type d'information pour un second type de client. On peut également, pour un même contenu, vouloir faire varier l'affichage dudit contenu.
L'art antérieur avait déjà proposé une solution technique à ce problème de la personnalisation en proposant une architecture sous la forme d'une source d'informations structurées, telle qu'une base de données relationnelle ou XML, comprenant la définition et les données relatives aux informations de personnalisation, ainsi que les liens entre chaque type d'information (ex: profil, page, ...). Les différents composants applicatifs, par exemple de type java, permettent l'affichage des pages personnalisées par appel à une interface de programmation d'application (API), composée d'un ensemble de classes d'objets, qui encapsule l'accès à la source de données et la récupération des informations de personnalisation, lesquelles sont ensuite traitées et renvoyées aux composants applicatifs sous forme de résultat personnalisé. La figure 1 décrit une telle solution de l'art antérieur dans laquelle la personnalisation est réalisée par l'appel à des classes java contenant du code spécifique, à une source de données, par exemple de type base de données relationnelle. Cette base comprend des informations de personnalisation utilisées pour fournir un résultat personnalisé en fonction de l'utilisateur, A ou B. En fonctionnement, un composant applicatif par exemple un composant Web, appelle une classe Java à l'aide de paramètres associés à l'utilisateur A. Cette classe est éventuellement guidée par une classe Java ancêtre, qui encapsule la logique générique. La logique de la classe Java gère alors un ensemble de requêtes et de réponses de la part de la source de données contenant de l'information de personnalisation et traite cette information de façon à rendre un résultat personnalisé A. Il est important de comprendre que dans ce type de configuration, les programmes java spécifiques et génériques faisant référence à l'interface de programmation d'application sont compilés, et l'ajout ou la modification d'un nouvel attribut de personnalisation dans la base nécessite d'une part la mise à jour et la migration des informations existantes, mais également la modification et recompilation du code java de l'API. Dans ce cas, il convient également de modifier et de recompiler tous les programmes qui utilisent l'API.
Plus précisément, si l'on modifie la structure de la source de données, et qu l'on change les références entre les données, on doit également changer les classes Java contenant la logique non générique associée à ces informations pour prendre en compte les nouvelles information et donc de recompiler ces classes.
On comprend que cette contrainte constitue un inconvénient pour l'évolution de l'outil permettant de générer des applications personnalisables.
Cet inconvénient est résolu par le procédé et le programme d'ordinateur tel que revendiqué.
Selon l'invention, on fournit un procédé de création d'une application correspondant à un ensemble de composants, dont l'exécution fournit un résultat adapté en fonction des conditions d'utilisation de ladite application comprenant: une première étape préalable de création d'une application consistant à : Définir un premier ensemble de documents XML dont les n uds représentent lesdites conditions d'utilisation; Définir un second ensemble de documents XML dont les n uds représentent les composants de ladite application; chacun desdits premiers et second ensemble comprenant des documents XML comprenant un premier type de n ud associé à un exécutable et un second type de n ud définissant une référence à un document XML dudit premier et second ensemble; les documents du second ensemble comprenant un troisième type de n ud définissant une référence à un document XML du même second ensemble et représentant un composant de même type; Une seconde étape d'exécution de ladite application consistant à : lire à l'aide d'un interpréteur, un document du second ensemble pour l'interprétation de 20 35 l'ensemble de ses n uds et des n uds des documents référencés desdits premiers et second ensemble, l'interprétation de chaque n ud du premier type permettant les exécutions desdits exécutables associés; - Stocker, dans un contexte applicatif, les résultats desdites exécutions desdits exécutables; Renvoyer le contenu dudit contexte applicatif.
L'invention concerne également un programme d'ordinateur, éventuellement stocké sur un support de données, pour la mise en uvre du procédé selon l'invention.
Selon l'invention, l'ensemble de la logique spécifique qui était présente dans des classes Java compilées selon l'art antérieur est maintenant obtenue sous forme de DOM (Document Object Model) réalisant donc un programme de type XML.
On comprendra mieux l'invention à l'aide de la description, faite ciaprès à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux figures annexées: la figure 1 illustre le procédé et l'architecture de personnalisation selon l'art antérieur; la figure 2 illustre le procédé et l'architecture de personnalisation selon l'invention.
La figure 3 représente un exemple spécifique de DOM de personnalisation selon l'invention.
Les figures 4a à 4c correspondent à un exemple de code XML pour la mise en uvre de la présente invention.
Illustré figure 2, selon l'invention, on définit un ensemble de DOM A ayant comme noeuds les éléments correspondant aux informations de présentation. Ce DOM A comprend donc des éléments qui représentent la logique non générique pour les informations de personnalisation INFO qu'il définit.
On note tout d'abord que dans toute la suite, la notion d'héritage est employée dans son sens connu par l'homme du métier dans le domaine de la programmation, tel que par exemple un héritage de classes d'objets (ex: java).
Ce premier DOM A donc hérite d'un second type de DOM B. Chaque élément du DOM A comprend donc soit l'ensemble de l'information de personnalisation nécessaire à la personnalisation, soit une partie seulement de celle-ci, le complément d'information étant contenu dans le DOM B dont il hérite.
Par ailleurs, les éléments du DOM A peuvent faire référence à d'autres DOM C au sens de la référence XML afin de compléter les éléments d'information nécessaires à la personnalisation.
Chaque type d'élément représentant les noeuds des DOM selon l'invention fait référence à une classe Java contenant une logique générique. Un interpréteur spécifique interprète alors les éléments pour appeler la bonne classe Java.
On comprend donc facilement que cette structure de données permet, lorsque l'on désire modifier des attributs de personnalisation, de ne pas recompiler de Classe Java comprend du code non générique, mais simplement de rajouter un DOM ou un élément référençant un DOM qui incorpore l'information à ajouter.
On décrit maintenant plus spécifiquement l'invention dans le cadre d'un profil comme illustré figure 3.
Le DOM référencé 1 comprend un élément Presentation Space la correspondant aux différentes informations de présentation d'une page. Ce DOM 1 comprend un élément Profile lb qui fait référence à un DOM référencé 2 comprenant un élément de type Profile 2a, de nom Customer 2b. Ce profil correspond par exemple au type de client par défaut.
Lors de la connexion d'un client de type Customer , et au moment de l'interprétation des DOM, la référence entre les DOM 1 et 2 permet l'appel pour ce type de client, des éléments de type displet ld, le, 1f et l'affichage des displets Displet 1 et Displet 2 tels que définis dans le DOM 1. Cet affichage est réalisé par exécution d'une classe java associée par exemple aux éléments de type presentation Object 6c de l'élément Displet 6a du DOM 6.
Si l'on définit cette fois un type de client particulier de type Gold , en créant un nouveau DOM 3 comprenant un élément 3b de type Profile de nom Gold , et que l'on désire associé à ce type de client un affichage spécifique d'un displet Displet 3 .
Dans ce cas, on crée un autre DOM 4 comprenant un élément de type Presentation space 4a qui d'une part hérite du DOM 1 afin d'afficher également pour le client Gold les displets 1 et 2, et qui d'autre part comprend un élément de type Profile 4b qui référence le DOM 3.
De la sorte, à l'interprétation, la displet Displet 3 sera affichée pour les clients de type Gold mais pas pour les clients seulement de type Customer .
On comprend donc de la sorte que pour ajouter un profil avec des attributs particuliers, il n'est pas nécessaire de modifier la structure d'information relatives aux profils et de recompiler les classes existantes, mais simplement de créer un nouveau DOM héritant de DOM existants pour le type de modification à effectuer, et référençant un nouveau profil correspondant au profil à ajouter.
Les figures 4a à 4c illustrent un exemple de code associé à la situation de la figure 3. La figure 4a correspond à un composant applicatif de type DOM, qui affecte le profil appelé Demo à l'utilisateur courant, et donc, selon l'invention, fait référence au DOM demo de la figure 4b, par l'instruction <node:push src="profiles:demo"/> . On recherche ensuite la valeur de l'élément de displet b pour le profil Demo . L'instruction <node:push src="profiles:demo"/>, met dans le contexte les informations relatives au profil Demo . Les instructions <node:path-select select="/profile/displet/b"/> et < core:echo/> sélectionnent l'élément displet/b et affichent cet élément, pour le profil Demo .
Figure 4b, par le noeud parent , il existe une référence au DOM guest contenant l'élément displet/b. L'interpréteur va donc construire le contexte en plaçant les informations du profil Demo (DOM de la figure 4b) et y ajouter les informations de son profil parent guest (DOM de la figure 4c).
Dans les DOM des figures 4a à 4c, chaque n ud de type displet appelle un exécutable java, qui traite l'information.
L'homme du métier comprendra dans cet exemple l'avantage de la présente invention. En effet, si l'on désire ajouter un profil Demo2 , il suffit de créer le DOM demo2 et de modifier les références dans le DOM initial de la figure 4a, sans modifier la classe java associée.
L'invention est décrite dans ce qui précède à titre d'exemple. Il est entendu que l'homme du métier est à même de réaliser différentes variantes de l'invention sans pour autant sortir du cadre du brevet.
Claims (1)
- 9 REVENDICATIONS1. Procédé de création d'une application correspondant à un ensemble de composants, dont l'exécution fournit un résultat adapté en fonction des conditions d'utilisation de ladite application comprenant: une première étape préalable de création d'une application consistant à : Définir un premier ensemble (2,3) de documents XML dont les noeuds (2a, 3&) représentent lesdites conditions d'utilisation; Définir un second ensemble (1, 4, 6, 5) de documents XML dont les noeuds représentent les composants de ladite application; chacun desdits premiers et second ensemble comprenant des documents XML comprenant un premier type de noeud (6c, 5c) associé à un exécutable et un second type de noeud (lb, 4b) définissant une référence à un document XML dudit premier et second ensemble; les documents du second ensemble comprenant un troisième type de noeud (4a) définissant une référence à un document XML du même second ensemble et représentant un composant de même type; Une seconde étape d'exécution de ladite application consistant à : lire à l'aide d'un interpréteur, un document du second ensemble pour l'interprétation de l'ensemble de ses noeuds et des noeuds des documents référencés desdits premiers et second ensemble, l'interprétation de chaque noeud du premier type (5c, 6c) permettant les exécutions desdits exécutables associés; 15 30 - Stocker, dans un contexte applicatif, les résultats desdites exécutions desdits exécutables; - Renvoyer le contenu dudit contexte applicatif.2. Procédé selon la revendication 1, caractérisé en ce que ledit exécutable est une classe Java.3. Procédé selon la revendication 1 ou 2, caractérisé en ce que ladite exécution est réalisée sur un serveur.4. Procédé selon la revendication 1 ou 2, caractérisé en ce que ladite exécution est réalisée sur un poste client.5. Procédé selon la revendication 1, caractérisé en ce que lesdites conditions d'utilisation correspondent à un profil d'un utilisateur.6. Programme d'ordinateur caractérisé en ce qu'il comprend 20 un ensemble d'instructions pour la mise en uvre du procédé selon l'une quelconque des revendications 1 à 5.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0504449A FR2885242B1 (fr) | 2005-05-02 | 2005-05-02 | Creation d'applications personnalisables |
US11/243,526 US20060248097A1 (en) | 2005-05-02 | 2005-10-04 | Creating customisable applications |
EP06764574A EP1877898A1 (fr) | 2005-05-02 | 2006-04-28 | Creation d'applications personnalisables |
PCT/FR2006/000969 WO2006117467A1 (fr) | 2005-05-02 | 2006-04-28 | Creation d'applications personnalisables |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0504449A FR2885242B1 (fr) | 2005-05-02 | 2005-05-02 | Creation d'applications personnalisables |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2885242A1 true FR2885242A1 (fr) | 2006-11-03 |
FR2885242B1 FR2885242B1 (fr) | 2007-07-20 |
Family
ID=35455290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0504449A Expired - Fee Related FR2885242B1 (fr) | 2005-05-02 | 2005-05-02 | Creation d'applications personnalisables |
Country Status (4)
Country | Link |
---|---|
US (1) | US20060248097A1 (fr) |
EP (1) | EP1877898A1 (fr) |
FR (1) | FR2885242B1 (fr) |
WO (1) | WO2006117467A1 (fr) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2405726A (en) * | 2003-09-03 | 2005-03-09 | Business Integrity Ltd | Mark-up of automated documents |
US7757160B2 (en) * | 2006-01-30 | 2010-07-13 | Business Integrity Limited | Debugging of master documents |
US7987457B2 (en) * | 2007-06-25 | 2011-07-26 | Microsoft Corporation | Targeted patching for native generation images |
WO2015112755A1 (fr) * | 2014-01-22 | 2015-07-30 | AI Squared | Mise en évidence d'une partie des éléments de contenu visibles d'un document en langage de balisage |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005006187A1 (fr) * | 2003-07-10 | 2005-01-20 | Koninklijke Philips Electronics N.V. | Procede de modification dynamique d'une conception de logiciel |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6083276A (en) * | 1998-06-11 | 2000-07-04 | Corel, Inc. | Creating and configuring component-based applications using a text-based descriptive attribute grammar |
AU2001294555A1 (en) * | 2000-09-14 | 2002-03-26 | Bea Systems Inc. | Xml-based graphical user interface application development toolkit |
US6845499B2 (en) * | 2001-01-31 | 2005-01-18 | I2 Technologies Us, Inc. | System and method for developing software applications using an extended XML-based framework |
US20040031015A1 (en) * | 2001-05-24 | 2004-02-12 | Conexant Systems, Inc. | System and method for manipulation of software |
US7007266B1 (en) * | 2002-01-08 | 2006-02-28 | Quovadx, Inc. | Method and software system for modularizing software components for business transaction applications |
US20050229152A1 (en) * | 2004-04-08 | 2005-10-13 | Brian Connell | Integrated modeling environment |
US7657868B2 (en) * | 2005-03-14 | 2010-02-02 | Research In Motion Limited | System and method for applying development patterns for component based applications |
US7941784B2 (en) * | 2005-03-14 | 2011-05-10 | Research In Motion Limited | System and method for generating component based applications |
-
2005
- 2005-05-02 FR FR0504449A patent/FR2885242B1/fr not_active Expired - Fee Related
- 2005-10-04 US US11/243,526 patent/US20060248097A1/en not_active Abandoned
-
2006
- 2006-04-28 WO PCT/FR2006/000969 patent/WO2006117467A1/fr not_active Application Discontinuation
- 2006-04-28 EP EP06764574A patent/EP1877898A1/fr not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005006187A1 (fr) * | 2003-07-10 | 2005-01-20 | Koninklijke Philips Electronics N.V. | Procede de modification dynamique d'une conception de logiciel |
Non-Patent Citations (4)
Title |
---|
ERIC M. DASHOFY, ANDRÉ VAN DER HOEK, RICHARD N. TAYLOR: "A comprehensive approach for the development of modular software architecture description languages", ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, vol. 14, no. 2, April 2005 (2005-04-01), New York, NY, USA, pages 199 - 245, XP002360189, Retrieved from the Internet <URL:http://portal.acm.org/citation.cfm?id=1061254.1061258> [retrieved on 20051219] * |
KHARE R ET AL: "xADL: enabling architecture-centric tool integration with XML", SYSTEM SCIENCES, 2001. PROCEEDINGS OF THE 34TH ANNUAL HAWAII INTERNATIONAL CONFERENCE ON JANUARY 3-6, 2001, PISCATAWAY, NJ, USA,IEEE, 3 January 2001 (2001-01-03), pages 3845 - 3853, XP010550050, ISBN: 0-7695-0981-9 * |
NUNN I ET AL: "Automated assembly of software components based on XML-coded instructions", PROCEEDINGS ACM SAC, 2002, pages 937 - 942, XP002301790 * |
Q. LI, M. Y. KIM, E. SO, S. WOOD: "XVM: A Bridge between XML Data and Its Behavior", WWW2004 CONFERENCE PROCEEDINGS, 17 May 2004 (2004-05-17), New York City, pages 155 - 163, XP002360190, Retrieved from the Internet <URL:http://www.www2004.org/proceedings/docs/1p155.pdf> [retrieved on 20051214] * |
Also Published As
Publication number | Publication date |
---|---|
WO2006117467A1 (fr) | 2006-11-09 |
FR2885242B1 (fr) | 2007-07-20 |
US20060248097A1 (en) | 2006-11-02 |
EP1877898A1 (fr) | 2008-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2603908C (fr) | Methode dynamique de generation de documents xml a partir d'une base de donnees | |
US6061696A (en) | Generating multimedia documents | |
US7802230B1 (en) | Heterogeneous software integration systems and methods | |
US9026948B2 (en) | Multi-faceted relationship hubs | |
Bergel et al. | Deep Into Pharo | |
FR2826753A1 (fr) | Procede et dispositif de traitement d'un document informatique dans un systeme informatique | |
FR2885242A1 (fr) | Creation d'applications personnalisables | |
US20040250241A1 (en) | System and method for dynamic data binding in distributed applications | |
EP2116056A1 (fr) | Procede de transmission d'au moins un contenu representatif d'un service, depuis un serveur vers un terminal, dispositif et produit programme d'ordinateur correspondants | |
EP2219113B1 (fr) | Procédé d'affichage, dispositif et produit programme d'ordinateur correspondant | |
FR2906382A1 (fr) | Procedes et dispositifs pour optimiser le traitement xml | |
Bazelli et al. | WL++: a framework to build cross-platform mobile applications and RESTful back-ends | |
Rossi et al. | Object-oriented Web applications modeling | |
CA2406197A1 (fr) | Methode et systeme de creation de documents electroniques - auto-publiants et adaptatifs | |
FR2853974A1 (fr) | Procede de generation d'une interface de communication a distance pour des informations basees sur un cadre de description de ressources (rdf) | |
US9292582B2 (en) | Rendering a database record in a fixed display space | |
EP1764684A1 (fr) | Structure de données et procedé de création d'une documentation de logiciel | |
Jansson et al. | Speedflirt for Android, a study of porting a mobile application and its effects on user experience | |
Susana Sánchez Vignau et al. | Collection Development in a digital environment: an imperative for information organizations in the twenty‐first century | |
Pandurino et al. | Balancing Complex Page Modeling and Usability for Rich Internet Applications | |
Cavaco et al. | Rapid GIS Development: a model-based approach focused on interoperability | |
Lafourcade et al. | CGIs in Lisp | |
EP2271051B1 (fr) | Procédé d'exécution d'un service applicatif dans un environnement web | |
Gandhi | San Diego State University Android Library Resource Application | |
FR2828308A1 (fr) | Systeme de gestion d'une base de donnees topologique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20100129 |