La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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