Archive

Articles taggués ‘InfoQ’

QCon London 2011

Petit article sur une série de conférences qui a lieu sur Londres du 9 au 12 Mars 2011 : la QCon London.  Pour rappel, la QCon est organisée par InfoQ, une communauté indépendante sur l’Internet axée sur la veille, l’innovation technologique et l’agilité..

Les conférences révèlent les grandes tendances dans le monde, à savoir le Cloud, la mobilité, les bases de données NoSQL, HTML5 et enfin les nouvelles méthodes de gestion de projets  telles que Lean et Kanban. D’ailleurs, la première journée s’est ouverte par une excellente conférence de Craig Larman. Il  nous a exposé ses retours d’expériences, ses points de vue et les bonnes pratiques à adopter vis-à-vis de Lean et de son utilisation dans des gros projets nécessitant de nombreuses équipes réparties dans le monde. Grosso modo, il faut monter des petites équipes (d’environ 10 personnes) polyvalentes avec une personne par site qui orientera les personnes des autres sites vers le bon interlocuteur, et surtout utiliser la visioconférence, car « voir, c’est croire ».

Nous avons pu également avoir un aperçu du futur de Java. Ce dernier se repose sur deux dates : fin 2011 et fin 2012. Nous devrions voir arriver d’ici la fin de l’année le très attendu Java 7, dont le numéro pourrait refléter le nombre d’années de retard. Celui-ci s’orientera principalement sur une modification de la JVM afin qu’elle puisse supporter plus facilement des langages pur objet tel que Ruby, et aussi sur une meilleure gestion du traitement en parallèle, grâce à l’api java.util.concurrency. Fin 2012 verra la naissance de Java 8 qui apportera plus de nouveautés dans le langage avec les très attendues lambda fonctions, quelques nouveaux sucres syntaxiques pour facilité l’écriture, et aussi un mécanisme intéressant pour enrichir les interfaces sans impacter les implémentations (en proposant une implémentation par défaut, un peu comme les valeurs par défaut dans les annotations).

Nous avons pu également apprendre sur les futures orientations choisies pour JEE7. Celui-ci s’oriente naturellement vers le cloud (privé ?) avec la virtualisation du serveur d’application. Un exemple nous a été donné avec le serveur GlassFish 3.1 où avec un simple fichier déclaratif « cloud.xml », nous pouvions spécifier le nombre minimum d’instances de GlassFish sur lesquelles déployer l’application. Nous avons assisté au déploiement de l’application sur les 3 serveurs d’application et au monitoring de leur activité. A noter que chacune des instances était placée dans une machine virtuelle (certainement gérée par VirtualBox de Oracle).JEE7 améliorera aussi l’isolation des applications, gèrera la coexistence de versions différentes d’une même application. Un support d’HTML5 est prévu, comme le support du JSON, des WebSockets (déjà planifié pour JSF 2.2), des nouveaux types de champs pour les formulaires.

Ses conférences ont aussi été l’occasion de rencontrer des gens de FaceBook. Ils nous ont parlé de l’utilisation d’HTML5 pour la version mobile de leur site (et de la création de la communauté WURFL pour référencer les spécificités de chaque mobile sur l’HTML). Les gens de Twitter nous ont parlé de la gestion de leurs données et de leurs volumétries extrêmes (près d’un milliard de tweets sont enregistrés par mois, ce qui représente pas loin de 300 Go de données). Nous avons pu aussi compter sur Google qui nous a expliqué leurs démarches par rapport à l’innovation avec la mise en avant du « pretotyping ». Son but  : voir si l’intérêt des gens par rapport à une idée se maintient dans la durée Cela consiste à « créer » une maquette très simpliste. Le cas plus célèbre est celui du créateur du Palm qui avant de créer le 1er appareil avait fait des fiches sur un carnet pour représenter son interface et tester son idée en simulant les actions courantes.

Nous avons aussi assisté à une conférence de Netflix expliquant la stratégie retenue pour migrer des données d’une base Oracle vers une base NoSQL. L’infrastructure retenue fut celle d’Amazon. La migration a pris environ 2 ans. Ils ont du redévelopper un certain nombre de services de base comme la sauvegarde / restauration. Ils ont commencé avec SimpleDB et continué avec Cassandra. La conférence a été l’occasion d’un retour d’expérience très riche au travers de la présentation de nombreuses bonnes pratiques. La présentation est disponible ici : http://qconlondon.com/london-2011/file?path=/qcon-london-2011/slides/SiddharthAnand_NoSQLNetflix.pdf

Les slides peuvent être téléchargés sur le site de la QCon (http://qconlondon.com) et sur le site d’InfoQ, vous pourrez voir dans les semaines qui arrivent les vidéos prisent lors des conférences.

Julien Roche & Philippe Guédez

Categories: Actualités, Divers Tags: , , , ,

QCon London 2010 – Udi Dahan – Avoid a Failed SOA

“Business & Autonomous Components to the Rescue”

image Malgré un sujet pas très original, avec peu d’idées réellement neuves, probablement la meilleure présentation à laquelle j’ai assisté aux QCon 2010 de Londres. J’y ai été particulièrement sensible, du fait que j’ai moi-même réalisé et animé des séminaires sur des sujets similaires. Et j’ai pris une leçon, sur la forme comme sur le fond.

Sur le fond, finalement, un seul message simple est véhiculé par Udi Dahan : une condition nécessaire à la réussite d’une SOA c’est l’émergence de composants très faiblement couplés. Pas vraiment une surprise. Mais c’est grâce à une forme étudiée que son discours (simple mais pas simpliste) amène à se poser des questions profondes.

Sur la forme donc, un discours extrêmement clair sans utilisation d’aucun buzz, et un enchaînement logique des idées qui mène inexorablement l’auditoire à ses conclusions inéluctables. Quand la vidéo de cette présentation sera en ligne sur InfoQ (malheureusement, ils les distillent pendant six mois), ne la ratez pas.image

Je vais tenter de résumer.

Le sujet c’est le projet d’intégration. Pourquoi ça rate souvent, et comment faire que ça rate moins 🙂 On a le droit de se tromper plusieurs fois, mais à chaque fois différemment !

La présentation oscille autour de l’architecture entre la vision métier et la vision technologique.

SOA et couplage faible

Un des objectifs de la SOA est d’atteindre un couplage faible entre composants métiers autonomes. Tout le monde est d’accord là-dessus. Mais ce couplage faible doit être une exigence à la fois métier et technique qu’il faut prendre en compte à la conception comme à l’exécution.

imageUdi part d’un SI théorique plutôt bien aligné sur le métier (avec une véritable architecture fonctionnelle explicite) dont on pourrait se dire qu’il est facilement “SOAisable”.

Il montre qu’une intégration des applications par des services (une SOA) peut, en fait, mener facilement à des applications très fortement couplées qui amènent, en production, leur lot de contentions (mémoire, threads, locks base de données…) .

So what ? Qu’est-ce qu’on a loupé ?

On a oublié que pour obtenir le découplage à l’exécution il faut des communications asynchrones (d’un point de vue fonctionnel et pas seulement technique). Et il y a de fortes conséquences sur… la conception.

Il faut donc basculer du requête/réponse à la publication/abonnement (d’une architecture orientée services vers une architecture orientée événements). C’est la succession d’émission d’événements qui matérialise le processus et non l’orchestration d’appel de services. Et c’est l’émetteur qui définit le contrat de service et non le receveur. On parle d’Event Driven Architecture (EDA).

Mon avis

Même si ce qui vient d’être dit est parfaitement logique en terme d’affectation de responsabilités, la plupart des démarches de conception travaillent dans l’autre sens : le contrat de service est défini à partir du besoin du client du service (c’est ce qu’on fait quand on fait de la conception d’application : c’est le scénario d’utilisation qui définit les services publiés par le serveur métier). Il faut donc changer radicalement son mode dimagee conception lorsqu’on fait de la SOA/EDA : les contrats de service doivent être définis uniquement par les changements d’état des objets métier et non par les “clients” de ces changements d’état.

Autre réflexion que m’inspire cette vision (originale) de ce qu’est un processus SI : un enchainement infini d’événements. On ne peut plus définir un Processus avec un début (l’Evénement déclencheur) et une fin (un Produit de sortie) créant de la valeur pour son Client. C’est une révolution conceptuelle (on remet en cause la définition d’un processus selon l’ISO !) et surtout, ça pose un gros problème. Comment appliquer la doctrine millénaire du consultant en processus : “centrer les processus de l’entreprise sur le client”, si le client de l’entreprise n’est plus le client du processus ? Je n’ai pas de réponse pour le moment 🙂

Composants métier autonomes

Udi Dahan évoque ensuite une autre question délicate. Comment partitionner les services en composants autonomes ? A nouveau, une réponse évidente est : aligner les composants sur le métier. Un composant métier par bloc fonctionnel. Un rêve d’urbaniste !

Il montre qu’en fait, ce partitionnement “idéal” ne répond pas toujours au besoin et  imageparticulièrement aux exigences non fonctionnelles. Il donne l’exemple des SLA différents en fonction du type de client et propose donc des composants métier autonomes techniquement (potentiellement très différents dans l’implémentation), définissant les mêmes contrats de service mais implémentés différemment.

Mais à nouveau, comment éviter un couplage si, finalement le routage des événement doit se faire en fonction de leur contenu (l’événement contenant un “petit client” doit être routé vers le composant dédié petit client, l’événement “gros client” vers le composant dédié gros client).

Le fonctionnement EDA précédent permet, à nouveau, à chaque composant d’être autonome dans la prise de décision : tous les composants d’un même métier sont abonnés aux mêmes événements et chacun décide de manière autonome de traiter ou non un événement particulier en fonction de son contenu.

A bientôt pour d’autres conférences QCon.

Categories: Web Services - SOA Tags: , , , ,