Accueil Nos publications Blog Marklogic : Un repository Xml professionnel

Marklogic : Un repository Xml professionnel

Suite à la sortie de Marklogic Server 5 il y a peu, j’en profite pour faire un article présentant ce serveur de stockage peu connu en France mais qui gagne à être connu et qui monte de plus en plus en puissance aux Etats-Unis.
Marklogic Server est un repository XML, cela signifie qu’il permet de stocker nativement des documents XML et de les requêter en Xpath ou en Xquery.

Un repository XML à quoi ça sert ?

Comme je l’ai dit en introduction, un repository XML est une base de données qui stocke directement des documents XML avec ou sans schéma associé et qui permet de les requêter à l’aide de langages tels que Xpath ou Xquery.

Le principal avantage est de pouvoir directement stocker ses documents dans leur format d’origine, si vous travaillez avec du XML, sans avoir à les transformer dans un autre format et/ou à les faire rentrer dans des tables relationnelles.

Un autre avantage est que les indexes et le système de requêtage sont directement optimisés pour ce format et permettent d’obtenir des temps de réponse extrêmement bons sur de très gros volumes de documents.

Le requêtage est donc fait soit en Xpath pour les requêtes simples, soit en Xquery pour les requêtes plus avancées. Ces deux langages sont standardisés et fortement répandus dans les domaines manipulant de grandes quantités de documents XML.

De part leur conception, les repository XML font partie du mouvement plus global du NoSQL et du BigData bien qu’ils soient souvent laissés de côté dans les présentations NoSQL.

Le but est cependant commun à de nombreuses solutions NoSQL plus connues : gérer des volumes énormes de données hétérogènes, dont le format évolue beaucoup et qui grossissent de manière exponentielle.

Il existe plusieurs repository XML : eXist, BaseX, etc. et bien sûr celui qui nous intéresse aujourd’hui : Marklogic Server. Il existe également des bases de données relationnelles qui gèrent nativement le XML telles que Oracle ou Sybase.

A qui ce type de solution s’adresse-t-il ?

Bien évidement ce type de solution s’adresse avant tout aux structures ayant déjà de gros volumes de données XML et ayant du mal à les traiter efficacement. C’est d’autant plus vrai, si les données sont très hétérogènes et faiblement normalisées.

C’est le cas par exemple des administrations ou encore des éditeurs de presse. Ces derniers avec les jeux de rachat et l’indépendance des différents journaux se retrouvent avec de nombreux formats qu’il est pratique de pouvoir stocker et transformer à la volée sans devoir nécessairement les faire rentrer à 100% dans un schéma figé.

Ainsi, les principaux clients de Marklogic sont sans surprise les gros ministères américains, l’armée américaine et de gros éditeurs de journaux.

Plus surprenant, cette solution est également utilisée par des sites de e-commerce qui gèrent leurs articles sous forme XML. Le système est donc plutôt flexible même si l’intérêt pour ce type d’utilisation n’est pas forcément évident.

Enfin de nombreux gros groupes industriels les utilisent également.

Marklogic Server

Marklogic Server est donc un repository XML propriétaire, très performant et pouvant gérer des Teraoctets de données sans soucis, le tout en ayant des temps de réponse très rapides grâce à son puissant système d’index.


L’architecture de MarkLogic Server (source marklogic.com)

Cependant, Marklogic ne se contente pas de stocker des documents XML de manière très efficace, il offre de nombreuses fonctionnalités annexes :

  • Stockage de documents binaires dans la base de données
  • Api de requêtage de données géospatiales
  • Réplication et backup des données
  • Administration avancée
  • Intégration d’un serveur web pour faire des sites en XQuery directement dans Marklogic
  • De nombreuses extensions à Xquery pour enrichir le langage
  • Des mécanismes d’alerte
  • La transformation XSLT des contenus à la volée
  • Des Api de requêtage en HTTP, HTTPS, XDBC, WebDAV, REST, AJAX et JSON
  • Une application pour faire rapidement un site exploitant les données Xml de votre base
  • Un outil graphique d’import/export des données
  • De nombreux connecteurs avec des applications tierces telles que Microsoft Office
  • De la recherche par facette
  • Etc.

Le tout soutenu par une société qui semble calquer son modèle de relation client et commerciale sur Oracle alors que la plupart des solutions concurrentes tablent plutôt sur des modèles openSource. Ce type de modèle présente l’avantage de rassurer les décideurs mais demande par contre un ticket d’entrée assez conséquent, même si ce dernier point change avec l’arrivée de la version 5.

Les nouveautés de la version 5

La version 5, sortie début Novembre, apporte son lot de nouveautés :

  • Une meilleure gestion des documents binaires axée sur les fichiers médias avec une recherche sur les métadonnées
  • Un connecteur avec Hadoop
  • La réplication et des transactions distribuées
  • Des api et un dashboard de monitoring de la base
  • Une API REST
  • Et bien d’autres nouveautés

Mais le changement le plus important est l’ajout d’une licence Express gratuite qui, avant, était réservée aux projets openSource. Il vous est désormais possible de faire tout votre développement et même de partir en production avec une instance de Marklogic sans avoir besoin de payer la licence. Vous serez cependant limité à 40Gb de données, 1 ordinateur, 2 coeurs et 1 développeur.

On reste encore loin de l’approche de la plupart des autres bases NoSQL, mais à l’instar de Oracle Express, cela permet de se lancer à moindre frais et de profiter de l’ensemble des fonctionnalités et du support lorsque les besoins commencent à grossir.

Conclusion

Marklogic est un repository XML dont les performances sont vraiment bluffantes et qui rappelle beaucoup Oracle au niveau du support et de la politique commerciale, ce qui lui donne un côté assez rassurant.

Il ne s’agit cependant pas d’une solution miracle mais bel et bien d’un produit prometteur répondant à des besoins très particuliers et qui est encore peu connu en France malgré sa popularité croissante dans les grosses administrations et les grandes entreprises américaines.

Si vous êtes amené à gérer de grosses quantités de documents XML, il pourrait être intéressant d’y jeter un coup d’œil.