Plus besoin de les présenter, les FaceBook, twitter, etc. sont les applications qui font le web d'aujourd'hui ! Mais s'ils est évident de voir les nouveaux usages qu'elle apportent, qu'en est il côté techno ? Cette nouvelle race d'applications se distingue des applications web plus traditionnelles par le format des données qu'elles manipulent, fini les données fortements structurées ou les schémas fixes : les applications du web de demain veulent de la flexibilité, de l'évolutivité, de la scalabilité et les outils qui vont avec. Et c'est exactement le créneau de TerraStore, un entrepôt de documents au format JSON.
TerraStore se positionne dans la même catégorie que CouchDB et Cassandra de la fondation Apache, même si ces dernier endosse plus franchement le rôle de base de donnée. Les fonctionnalités que TerraStore propose sont celles d'un véritable entrepôt de données textuelles accessibles directement en HTTP ce qui justifie son intérêt pour des applications massivement en-ligne. On plonge là au coeur du thème très en vogue du NO-SQL.
L'application est, de plus conçue, sur une architecture en cluster afin d'assurer un service sous fortes charges. Deux types de composants sont présents : le server qui stocke directement les données ou plutôt leurs fragments et le master, responsable de la répartition des données et de la charge sur les servers. Une installations de TerraStore suit donc l'habituel schéma des serveurs à l'écoute du ou des maîtres qui gère(nt) l'application en grappe. L'accent est aussi mis sur les performance réseau : les traitements sur les données sont ainsi effectuées sur le serveur même qui héberge les données. Encore un point essentiel pour des applications fortement orientées web.
Le nom de TerraStore témoigne de l'utilisation sous-jacente de Terracotta, cette solution Open Source de clustering de JVM qui avait déjà fait l'objet d'un article. Malgré cet empilement de couches, TerraStore reste d'une simplicité d'installation et d'utilisation assez déconcertante comme en témoigne ce tutoriel de quelques lignes qui met en place un master et deux servers via Apache Ant. Malgré sa jeunesse (version 0.4.2 en téléchargement), TerraStore présente des fonctionnalités visiblement très abouties : possibilité de monitoring via console JMX, fonctionnalités de sauvegarde des servers et aussi capacité de gestion orientée évènements.
Les ambitions de solutions telles que CouchDB et TerraStore ne sont peut-être pas de révolutionner le monde des bases de données mais l'effort reste très intéressant et prometteur. Ces solutions sont donc à surveiller car elles pourraient être une autre preuve de la théorie de l'évolution mais cette fois-ci dans le domaine de l'informatique.
# NO-SQL
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 8.
[^] # Re: NO-SQL
Posté par claudex . Évalué à 2.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: NO-SQL
Posté par Corentin Chary (site web personnel) . Évalué à 5.
Bah oui, bonne idée :)
[^] # Re: NO-SQL
Posté par claudex . Évalué à 2.
Non, c'est déjà n'importe quoi, autant l'officialiser et ne pas se cacher derrière des faux semblant de norme pas respectée.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: NO-SQL
Posté par Gniarf . Évalué à 6.
[^] # Re: NO-SQL
Posté par claudex . Évalué à 2.
Et c'est quoi du SQL portable? Le SQL définit par la norme qui n'est supporté par personne en totalité?
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: NO-SQL
Posté par Corentin Chary (site web personnel) . Évalué à 5.
Par contre, dès que c'est moins basique, c'est sûr, y'a des différences, mais en général ça s'adapte bien. J'ai fait une migration MySQL -> PgSQL, et a part pour les dates et le "INSERT OR UPDATE", j'ai pas eu beaucoup de problème.
[^] # Re: NO-SQL
Posté par claudex . Évalué à 2.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: NO-SQL
Posté par yellowiscool . Évalué à 3.
Envoyé depuis mon lapin.
[^] # Re: NO-SQL
Posté par Jérôme . Évalué à 3.
C'est justement le problème. On ne reste jamais longtemps à faire du SQL basique. Ensuite viennent les problèmes et divergences.
[^] # Re: NO-SQL
Posté par Antoine . Évalué à 2.
[^] # Re: NO-SQL
Posté par Batchyx . Évalué à 4.
[^] # Re: NO-SQL
Posté par Narmer . Évalué à 0.
Tu parles de standardisation pour SQL mais une requête mysql ne va jamais forcement passer sur une base oracle, postgres ou mssql. Donc la fameuse interopérabilité n'en est pas une en fait.
No-SQL regroupe plusieurs type de techno Key/Value, Document Based, Column based etc .. donc une standardisation me parait comment dire .. infaisable et surtout ça ne sert à rien. Bien souvent tu couples au dessus de ces outils un Lucene ou bien Solr qui permet de gérer la partie recherche et du coup on peut retrouver un langage commun pour les requêtes.
[^] # Re: NO-SQL
Posté par Bactisme (site web personnel) . Évalué à 2.
Sauf que ce que l'on aime avec le SQL, c'est pas le SQL ... c'est l'aspect relationel des bases de donnes.
Bref, Avec les base SQL, les ORM sont possibles et facile a faire ... sur les bdd no-SQL ... presque impossible...
[^] # Re: NO-SQL
Posté par Narmer . Évalué à 0.
NoSQL n'est pas un remplacement mais une alternative, un complément.
Là ou je ne suis pas d'accord avec toi c'est quand tu avances la chose suivante
Bref, Avec les base SQL, les ORM sont possibles et facile a faire ... sur les bdd no-SQL ... presque impossible...
La plupart des implémentations nosql n'ont pas besoin d'outils de mapping comme hibernate, de part leur nature schemaless
ou encore schema dynamique. Le mapping s'en retrouve simplifié et souvent les performances sont au rendez vous. Ce genre
de base sont souvent à coupler avec du Domain Driven Design [http://en.wikipedia.org/wiki/Domain-driven_design] ou encore
du CQRS (Command and Query Responsibility Segregation) [1]. Une très bonne implémentation du CQRS est
le framework axon [2].
Bref, d'autre type d'architecture existe aujourd'hui pour se passer proprement des outils de type ORM.
Pour mes futurs projets java, je partirais sur du nosql ou du sgbdoo tout dépends des besoins.
[1] http://blog.fossmo.net/post/Command-and-Query-Responsibility(...)
[2] http://code.google.com/p/axonframework/
[^] # Re: NO-SQL
Posté par Antoine . Évalué à 3.
Mais mon coco ce n'est pas une question de besoin (on peut très bien accéder à une base SQL sans ORM), c'est une question de commodité.
Maintenant si tu penses que de simples correspondances clés / valeur, ou bien des documents JSON, permettent d'écrire des applications sans se fouler, je te souhaite bonne chance au pays des bisounours.
[^] # Re: NO-SQL
Posté par Narmer . Évalué à 0.
passer d'outils ORM.
Car Tout-Calin peut :
- soit utiliser une sgbdoo type db4o. Du coup plus besoin d'ORM.
- soit utiliser neo4j une GraphDB qui te permet 2 façons élégantes de te passer de mapping
- La première c'est d'aggréger au sein de l'implementation de chacun des objets métiers
un node neo4j et de mapper à la main une propriété de ton bean à une property du node
pareil pour les associations et les relations. C'est aussi simple que cela.
- tu utilises http://code.google.com/p/jo4neo/ qui te pemet via des annotations simples
de rendre tes objets du domaine de s'intégrer à neo4j.
Tu vois même les bisounours peuvent le faire...
Et encore une fois les patterns d'architecture comme le DDD et CQRS peuvent t'aider à gérer
ces "mappings" même avec du Document Based et du Clef/Valeur. Il n'y a pas que le DAO
dans la vie (et heureusement) , aujourd'hui il est un peu dépasser tout seul pour tout faire.
Bonne nuit.
[^] # Re: NO-SQL
Posté par Thomas Douillard . Évalué à 6.
D'autre part les nouvelles bases de données sont plus proches du modèle objet dans l'esprit, la correspondance devrait être plutôt facilitée ... genre tu écris presque directement l'objet dans la base de données.
[^] # Re: NO-SQL
Posté par ckyl . Évalué à 2.
Le relationel ca marche très bien dans son domaine. Mais quand tu vois que beaucoup de cas d'utilisation c'est juste sauvegarder des objets dans une table SQL, tu te dis qu'il y a quelque chose qui cloche dans le bazar et que c'est bien dégueulasse et pas pratique. Au contraire suivant les usages une BDD no-SQL ca peut être beaucoup plus pratique et facile à mettre en oeuvre que de chercher à faire des mappings foireux et gérer une cohérence assez étrange au final.
Y'a des cas d'utilisation pour toi... Une base SQL c'est comme un marteau, ca marche bien tant que t'as pas des vis à enfoncer...
[^] # Re: NO-SQL
Posté par claudex . Évalué à 1.
Il y a des vis prévues pour être enfoncées au marteau.
---> []
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.