WIKITTY Base de données orientée documents et API de persistance pour Java.

Présentations similaires


Présentation au sujet: "WIKITTY Base de données orientée documents et API de persistance pour Java."— Transcription de la présentation:

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


Télécharger ppt "WIKITTY Base de données orientée documents et API de persistance pour Java."

Présentations similaires


Annonces Google