Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parRenée Julien Modifié depuis plus de 8 années
1
WIKITTY Base de données orientée documents et API de persistance pour Java
2
Wikitty ©Code Lutin2 Objectifs ● Permettre de définir un modèle ● Orienté Objet ● Extensible ● Prévoir l'utilisation intensive ● Supporter le passage à l'échelle – Quantité de données – Quantité d'utilisateurs simultanés
3
Wikitty ©Code Lutin3 Wikitty ● Un wikitty a un identifiant unique ● Un wikitty a plusieurs extensions ● Une extension a des champs nommés ● Une extension peut dépendre d'une autre extension ● Un champ est une clé à laquelle on associe une valeur
4
Wikitty ©Code Lutin4 Exemple ● Une extension « Personne » ● Avec deux champs « nom » et « prénom » ● Une extension « Lutin » ● Qui dépend de l'extension « Personne » ● Avec un champ « numéro » ● Un wikitty qui porte l'extension Lutin a les trois champs
5
Wikitty ©Code Lutin5 Utilisation ● Description du modèle ● Utilisation d'un modeleur UML ● Génération du code ● Transparente ● Basée sur EUGene ● Extension du code généré (par héritage) ● Utilisation du code généré et de l'API wikitty
6
Wikitty ©Code Lutin6 Définition du modèle
7
Wikitty ©Code Lutin7 Définition du modèle ● Une extension → une classe ● Un champ de l'extension → un attribut ● Une dépendance entre extensions → une relation d'héritage ● Possibilité d'héritage multiple
8
Wikitty ©Code Lutin8 Génération du code ● Intégration d'EUGene dans Maven ● Modèle placé à côté des sources ● Génération déclenchée à la compilation ● Ajout du code généré au classpath pour la compilation ● Possibilité d'utiliser une tâche Ant
9
Wikitty ©Code Lutin9 Utilisation de l'API Person p = new PersonImpl(); p.setName("Martin"); p.setFirstName("Jacques"); proxy.store(p); Lutin l = proxy.restore(Lutin.class, p.getWikittyId()); l.setNumber("0606070708"); proxy.store(l);
10
Wikitty ©Code Lutin10 Utilisation de l'API Person p = new Person(); p.setName("Martin"); PagedResult list = proxy.findAllByExample(p); for (Person p : list.getAll()) { // do something } exemple de recherche par critère on l'on attend qu'une seule réponse : Criteria criteria = Search.query(). eq(Lutin.FQ_FIELD_NUMERO,"0606070708"). criteria(); Lutin lutin = proxy.findByCriteria(Lutin.class, criteria); if (lutin != null) { // do something }
11
Wikitty ©Code Lutin11 Fonctionnement interne ● Stockage ● Dans une base relationnelle via JDBC (PostgreSQL, H2) ● Dans une base NoSQL (Hbase) ● Ou tout autre solution (JMS, système de fichier...) ● Indexation ● Apache SolR ● Recherche par facettes
12
Wikitty ©Code Lutin12 Fonctionnement global ● Extensions versionnées ➔ Migration des wikitties juste-à-temps ● Gestion des droits pour chaque extension ● Internationalisation des wikitties ● Caches locaux et distants et notifications réseaux ● Communication client/serveur via services ● Outils de visualisation et de modification (wikitty-ui)
13
Wikitty ©Code Lutin13 Fonctionnement global
14
Wikitty ©Code Lutin14 Fonctionnement global
15
Wikitty ©Code Lutin15 Projets faisant appel à Wikitty ● BookMarks on the Web BookMarks on the Web ● Vradi Vradi ● Suite Chorem (billy, bonzoms)
16
Wikitty ©Code Lutin16 http://www.nuiton.org/projects/show/wikitty
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.