Les followers de @parisjug étaient au courant, Eric Evans (auteur de domain driven design) était de passage à Paris en ce début de semaine. Grâce à leur réactivité, les membres du Jug ont pu nous organiser une petite présentation ce lundi. (Merci au passage à l’Epita qui a accueilli l’évènement).
Malgré l’annonce tardive, la blogosphère Java à bien réagi et l’amphi était plein, environ 110 personnes avaient fait le déplacement.
La présentation d’Eric s’articulait sur les contextes d’utilisation du DDD ainsi que ses apports en comparaison aux techniques plus classiques.
Pour résumer en quelques lignes : Pour les applications dont la complexité inhérente est dûe à la complexité du domaine, l’approche DDD permet, en recentrant les développeurs sur le métier, de collaborer avec des experts du domaine afin de construire un logiciel flexible répondant à leur problématique.
On retiendra donc en points clés de cette présentation :
- L’unicité du langage : les développeurs et les experts métiers doivent être capables d’exprimer les mêmes concepts avec le même vocabulaire. Ceci afin de faciliter la communication et de permettre le partage de connaissances. Cette unicité doit se retrouver aussi bien dans les phases de design que dans l’implémentation.
- Le besoin pour les équipes de développement de travailler en étroite collaboration avec les experts du domaine (ce qui permettra justement la construction de ce langage commun et l’échange d’information)
- Le développement itératif, encore une fois, le besoin de communication entre les équipes de dev et le métier nécessite un processus itératif. Seules les itérations permettent de capitaliser sur les connaissances acquises précédemment.
- Un contexte d’application clair et nettement défini. La nécessité d’un langage unique et d’un modèle adapté aux problématiques métiers exclu de facto les possibilités d’universalité de ce modèle. Un modèle n’étant donc qu’une représentation partielle adaptée aux besoins, il faudra définir les clairement les limites d’application de ce modèle afin de pouvoir s’en affranchir dans d’autres contextes.
La soirée s’est conclue par la traditionnelle troisième mi-temps, délocalisée cette fois à la porte d’Italie !
Prochain évènement de l’agenda : Soirée ALT.NET
Demain soir à 19h30 se déroule le traditionnel Paris JUG, événement réunissant la communauté Java parisienne autour d’un certain nombre de sujets d’actualité. Je précise pour les non initiés 
Il est vrai que d’ordinaire nous ne postons jamais au sujet de cet événement car d’autres confrères le font très bien.
Cependant, il me semblait important de mentionner la présentation Data Grid qui me semble très intéressante et d’actualité dans un certain nombre de projets.
Qu’est ce que le Data Grid ?
Tous ceux qui sont confrontés à des problématiques de temps d’accès aux données ou de traitements massifs de ces données recherchent des solutions alternatives aux bases de données relationnelles.
Les Data Grid en mémoire permettent de clusteriser la mémoire d’un parc hétérogène de machines tout en fournissant un accès simple (clef valeur, ?QL, template d’objet) et transactionnel, à cet espace mémoire virtualisé.
Le stockage des données en mémoire est fiabilisé par un certain nombre de mécanismes et le Data Grid fournit les indispensables mécanismes d’intégration au SI dont, notamment, les bases de données existantes.
Lorsqu’on revient aux fondamentaux; j’aime considérer les technologies en identifiant leur impact sur les éléments matériels sous-jacents (CPU, mémoire, disque, réseau); on se rend compte que les technologies Data Grid fournissent une réponse très adaptée dans beaucoup de situations car les temps d’accès et la bande passante de la mémoire sont infiniment supérieurs à ce que peuvent proposer les disques.
Évidemment, on peut toujours payer très cher pour essayer d’atteindre les mêmes performances que la mémoire avec des disques spécialisés, mais le veut on ?
Oui me diront certains, ça rassure ! Mais c’est un autre débat et puis ces temps-ci, en période de crise, ça fait pas très classe
La base de données change de rôle
En tant que partenaire GigaSpaces, un des leaders de ce domaine, nous voyons de plus en plus d’entreprises de toute taille qui démarrent des études afin de choisir le Data Grid qui permettra à leurs projets stratégiques de gérer les problématiques de stockage haute-performance et de traitements de données.
Depuis un peu plus de 3 ans environ, une grosse partie de notre activité a été de concevoir avec nos clients, et mettre en production, des systèmes stratégiques fondés sur les technologies Data Grid. Non seulement ça marche, mais les performances sont au rendez vous :
- plusieurs dizaine de milliers d’appels par seconde
- des temps de réponse inférieurs à la milliseconde sur des réseaux classiques 1GB
tout çà sur une “lame” d’entrée de gamme à quelques milliers d’euros pièce.
Lorsqu’on voit la prolifération d’offres alternatives aux bases de données relationnelles, il est désormais clair que le rôle de la base de données est en train de changer (ou a déjà changé pour certains) dans le système d’informations.
La base de données a imposé son hégémonie dans nos systèmes d’information depuis des années et a fait la richesse de certains acteurs du secteur, mais il est désormais acquis que la base de données ne peut pas monter en charge sans faire la richesse des vendeurs de matériel.
D’ailleurs, curieusement, dans certains cas, ce sont les mêmes
Le Data Grid s’est donc imposé avec le temps; projet après projet, secteur d’activité après secteur d’activité comme la solution alternative à la base de données, notamment lorsque celle ci se trouve sur le chemin critique des transactions.
Des pionniers de ce secteur comme GigaSpaces martèlent ce message depuis une dizaine d’années maintenant.
D’autres utilisateurs et fournisseurs d’infrastructures massivement distribuées ont utilisé un certain nombre de concepts d’informatique distribuée sous-jacents aux technologies Data Grid dans leurs infrastructures internes.
Je pense notamment à Google, Amazon, Facebook qui n’ont pas eu le choix, pour des raisons économiques que de créer des alternatives pour stocker et exploiter de manière efficace leurs données.
Comme il faut rendre à César ce qui appartient à César on peut même dire que ces acteurs incontournables du Web poussent à leurs limites les technologies traditionnelles et dans certains cas poussent (ou tirent comme vous voulez) l’innovation. Le concept MapReduce a été popularisé par Google par exemple.
Le Data Grid, la boite à outils pour le traitement massif de données
Lorsqu’il m’arrive de présenter GigaSpaces, je fais souvent l’analogie entre GigaSpaces et les concepts sur lesquels s’appuient ces énormes infrastructures en indiquant que GigaSpaces peut être vu comme une technologie permettant de productiser, et rendre accessible de manière simple un ensemble de concepts d’informatique distribuée.
Cela nous permet à nous, architectes et développeurs, d’avoir les outils permettant d’assurer la performance et la scalabilité de nos applications distribuées.
D’ailleurs à ce propos, je voudrais mentionner cet article qui explique bien un certain nombre de principes de l’informatique distribuée : http://www.hfadeel.com/Blog/Files/ArtofDistributed.pdf tels que les concepts de Grid Computing, de Master Worker ou de MapReduce.
Au delà de la gestion des données en mémoire, de manière fiabilisée et très performante, le Data Grid permet de paralléliser les traitements sur les données en permettant l’implémentation de patterns tels que Master Worker ou Map Reduce.
Les capacités du Data Grid sont multiples, les technologies Data Grid sont matures (car d’autres ont débuggé pour vous, vous savez ce que c’est
), et les cas d’utilisation foisonnent, tous secteur d’activités confondus.
Voilà, j’espère que je vous aurai donné envie de venir assister à cette présentation Data Grid si vous n’étiez déjà convaincus, et je serai présent ainsi qu’un certain nombre de nos consultants (dont Jean-Michel qui participe à cette présentation) pour discuter de tout çà avec vous.
Pour venir : http://www.jugevents.org/jugevents/event/16041
Les détails de la présentation : http://www.parisjug.org/xwiki/bin/view/Meeting/20090512