Archive for the ‘Intégration’ Category

Valtech et Talend à l’heure du MDM…

Tuesday, April 20th, 2010

logo talendRetours du Talend Partner Summit, 15 avril 2010

En 2008, Valtech Technology signait un partenariat avec Talend, jeune éditeur de solutions d’intégration de données Open Source et challenger d’un marché de l’ETL dominé par les solutions propriétaires coûteuses et ciblant avant tout les projets de Business Intelligence.

De ce fait, le positionnement initial de Talend visait l’intégration opérationnelle, c’est-à-dire la synchronisation de données entre applications. Un domaine où les développements spécifiques étaient légions (les fameux « batchs » de données) et sur lequel l’ETL Talend Open Studio était particulièrement compétitif : outil intuitif et facile d’utilisation, connectable à de multiples sources de données grâce à la richesse de ses connecteurs, proposant une large palette de composants prêts à l’emploi pour traiter les données et un design graphique des flux de données au sein d’une interface familière au commun des développeurs Java, le tout sans coût initial d’achat de licences !

Nombre de DSI ont tenté l’aventure et les gains de productivité, d’évolutivité et de maintenabilité des développements middleware ont rapidement convaincu. J’aurai même tendance à dire que le succès de l’ETL Talend, et plus généralement de l’ETL Open Source, a fait de l’ombre à d’autres stratégies d’intégration middleware (notamment l’ESB) car ces outils ont aussi la capacité à gérer des flux en quasi-temps réel ! (Grâce à la technologie de Change Data Capture, ou encore l’exposition possible d’un flux en tant que WebService.)

Depuis, Talend a convaincu certains clients d’utiliser l’ETL sur des problématiques d’alimentation d’entrepôt de données décisionnel (là où la concurrence est plus rude avec des solutions très performantes comme la solution Informatica Powercenter…) et a aussi enrichi son offre : une ligne de produits dédiée à la qualité de la donnée (Talend Data Quality, proposant des fonctions de Data Profiling, Data Cleansing, de portail Web de reporting sur la qualité des données), et surtout, depuis le début de l’année 2010, une offre de Master Data Management : Talend MDM.

Alors, que dire sur le MDM ? Certes, je ne vais surprendre personne en disant que les problématiques de Data Management sont revenues ces dernières années sur le devant de la scène. La faute à des référentiels de données de piètre qualité : donnée incomplète, incohérente, non valide, doublonnée, associée à des valorisations multiples… Le constat d’une mauvaise qualité des données, pourtant vitales et stratégiques aux activités de l’entreprise (le « patrimoine informationnel » de l’entreprise), remonte à tous les niveaux de décisions. Car la donnée de référence est par définition diffusée à l’échelle du SI : applications de CRM, de finance, de RH, de logistique, etc…

Quelles sont les raisons de ce constat ? Citons entre autre : un manque de maîtrise dans la modélisation des données, le manque de contrôles appliqués sur la saisie, des responsabilités mal définies sur la gouvernance des données, des IHMs de saisie souvent obsolètes (technologies 90s’), difficilement maintenables par manque de compétences ou d’intérêt, utilisateurs métier réfractaires à leur utilisation, process d’acquisition et de diffusion des données non rationalisés et mal maîtrisés…

Alors le Master Data Management, qui est à la fois une démarche et un outillage, vise à résoudre ces problèmes soulevés sur la mauvaise qualité du patrimoine informationnel de l’entreprise. Les aspects démarches et outillage se complètent. En effet, aucun outil ne pourra par exemple assurer la pertinence d’une modélisation adaptée à l’ensemble des besoins de l’entreprise, ni encore la cohérence d’une architecture centrée autour d’un Hub de données (le « point de vérité ») et alimenté par de multiples points d’acquisition. Le projet de Data Management est ainsi avant tout une démarche d’urbanisation du SI.

En terme d’outillage, Talend rentre donc sur le marché du MDM avec une solution proposée en 2 versions : la Community Edition (gratuite) et l’Entreprise Edition (version à souscription). Le principe est le même que sur les deux lignes de produits précédentes. La version gratuite permet d’utiliser l’outil sans restriction (licence GPL) et la version payante apporte des briques qui facilitent le travail en équipe et l’exploitation de la plateforme de production.

Talend MDM est un outil complet. Il centralise en une seule plateforme les fonctions de gestion, de gouvernance et d’intégration des données. Citons notamment les fonctionnalités suivantes :

  • un éditeur XML pour modéliser (ou consulter) la structure des entités de référence (vue uniquement hiérarchique) ;
  • le Studio talend pour définir les jobs d’intégration (connecteurs spécifiques fournies pour les entités du MDM) ;
  • un gestionnaire d’évènements pour déclencher les contrôles nécessaires à la validation des données et les jobs assurant leur diffusion ;
  • un module de BPM (basé sur la solution de BPM Open Source BonitaSoft) pour assurer les workflows collaboratifs de contrôle et de validation des données ;
  • une appli web pour la saisie et le stewardship des données (supervision de la qualité des données).

La solution de Talend vise à outiller les référentiels « génériques ». Elle ne fournit pas de modèle de données pré-défini orienté Produit ou Client et se distingue ainsi de bons nombres de solutions de MDM PIM ou CDM. La concurrence est donc plutôt à chercher actuellement du côté de la solution EBX Platform (Orchestra Networks).

Mais attention, le marché du MDM « générique », boosté par l’offre de Talend, risque de voir arriver sous peu de nouveaux entrants. L’américain Informatica n’a t-il pas annoncé le rachat de l’éditeur de solutions MDM (multi-domaines) Siperian, quasiment le même jour que la sortie de Talend MDM ?!

En tout cas, nul ne se plaindra d’une offre de solutions MDM élargie car la cause est noble : assurer la qualité des référentiels de données afin de fiabiliser les entrants des processus opérationnels et décisionnels à l’échelle de l’ensemble des activités de l’entreprise.

Bertrand Alazard
Valtech technology
Consultant Architecture de SI et Data Management

After Work ETL open-source – Paris la Défense

Monday, April 19th, 2010

Une soirée conviviale organisée par Valtech sur le thème de l’ETL open-source vous attend à Paris la Défense le 5 Mai 2010.

Aujourd’hui l’ETL (Extract, Transform & Load) a vu son champs d’utilisation s’étendre aux problématiques d’intégration de données au sens large. On assiste donc à une diversification de l’offre, avec l’arrivée de pure-players dans le monde de l’open-source, et notamment l’ETL Talend.

Après une présentation et un peu de pratique, les consultants, les formateurs et les managers de Valtech Training répondront à toutes vos questions sur les postes ouverts, les profils recherchés, la gestion de carrières, les types de missions proposées par Valtech.

Vous souhaitez participer à cet After work propice aux échanges, réservez vite votre place pour cet évènement qui aura lieu le 5 Mai 2010 de 18h30 à 21h30.

Software AG – Business Innovation Forum

Wednesday, April 7th, 2010

Le post qui suit propose un résumé du positionnement et de l’offre d’un éditeur partenaire de Valtech, Software AG suite à  sa conférence annuelle, le  Business Innovation Forum qui s’est tenu le mois dernier à Paris.

Software AG est le deuxième éditeur logiciel allemand après SAP.

L’objectif  de CA pour 2010 est d’1 milliard d’euro.
Software AG soutient la vision selon laquelle l’intégration sera dans les dix prochaines années en grande majorité pilotée par les processus.
Ce que Software AG appelle l’”excellence opérationnelle” est la capacité de définir, d’implémenter, de déployer, de mesurer et d’optimiser les processus transverses, ce qu’ils désignent par l’expression “digitalization of workflow”.

L’offre de Software AG couvre désormais l’ensemble des solutions nécessaires pour réaliser cette automatisation des processus d’entreprise:

  • intégration des mainframes : ADABAS
  • développement d’applications orientée services : Natural One
  • bus d’entreprise : WebMethods
  • gouvernance de services: Centra Site
  • modélisation/simulation/optimisation de processus : Aris

D’après le CEO de Software AG, la perspective de business liée à l’automatisation et à l’optimisation des processus d’entreprise représente un marché plus important que celui du déploiement d’ERPs des années 90.

L’après-midi de cette même conférence était dédiée aux présentations thématiques. J’ai assisté à celles qui traitaient du sujet de la gouvernance. Bilan ? rien de nouveau et peu de retours d’expérience concluants.

La présentation de Jean-François Caenen a permis de préciser certaines raisons de ce statut-quo et d’illustrer les facteurs majeurs d’échecs des programmes SOA.  Dans ce sens, il a souligné la double nécessité de réconcilier l’innovation avec les exigences opérationnelles et de prendre en compte au plus tôt les contraintes organisationnelles qui représentent le premier défi des architectures orientées services. Quelques extraits de cette présentation :

L’orientation service est un ensemble de pratiques d’architecture pour diriger l’évolution du SI.
Ce n’est pas un défi technologique mais un défi organisationnel. Plus précisément, il s’agit de fédérer l’entreprise sur des sujets transverses :

  • Qui paye les coûts induit par la ré-utilisabilité comme le redimensionnement des infrastructures ?
  • Les décisions sont-elles basées sur le court terme ou sur le moyen terme, sur les coûts de construction ou sur les coûts d’utilisation et de maintenance ?
  • Dans l’effort de mutualisation, a-t-il été pris en compte l’introduction de dépendances entre projets ?
  • Existe-t-il des  plateformes de tests transverses ?

Les tensions entre innovation et opérations persistent:

  • L’innovation fonctionne par cycles courts, en mode erreurs-tests-erreurs, construction / déconstruction de compétences
  • Les opérations fonctionnent sur des cycles longs, en mode zéro erreur avec une exigence de normalisation et d’uniformisation des pratiques et des compétences
  1. Reconnaître la frontière innovation/opération
  2. Protéger l’innovation
  3. Organiser le passage à l’industrialisation

Cours du soir – Progress Software – DataXtendSI

Thursday, June 18th, 2009

Les projets d’intégration (ETL, EAI, SOA, MDM) sont confrontés à de nombreuses difficultés pour établir, diffuser, développer et maintenir les contrats d’interface applicatifs et les règles de mapping des données échangées.

Le vice président du Gartner, Ted Friedman considère que ces deux points représentent 70% des efforts et du temps investis dans ce type de projet.

Les solutions dites d’intégration sémantique permettent de réduire considérablement cette complexité.


Les responsables du partenariat (Pierre Vaidie) et de l’avant-vente (Anthony Cross) de Progress Software nous ont présenté le 13 mai 2009 :

  • les enjeux liés au marché de l’intégration sémantique
  • le positionnement de leur solution: DataXtendSI
  • quelques retours d’expérience

C’est en partie du fait que DataXtendSI soit utilisé conjointement avec Sonic MQ, l’ESB de Progress que ce dernier a été classé par le Forrester fin janvier 2009 comme meilleur ESB du marché. cf. The Forrester Wave™: Enterprise Service Buses, Q1 2009

Cette présentation s’inscrit dans le cadre du partenariat entre Valtech et Progress Software. Aujourd’hui, ce partenariat se développe essentiellement sur les opportunités de projets d’intégration (ETL, EAI, SOA, MDM) où les solutions d’intégration sémantique offre une retour sur investissement rapidement démontrable.

Pourquoi l’intégration sémantique ?

Les démarches de normalisation des formats d’échange d’informations sont très nombreuses plus de 200 vocabulaires XML verticaux. Parmi les plus connus:

  • Banque/Finance : FpML, SwiftML, FixML, xBRL
  • Telecom : NGOSS/SID
  • Assurance: ACORD
  • Santé: HL7
  • Commerce éléectronique: ebXML, UBL
  • Energie: PPMD

Un exemple majeur concerne la juridiction européenne qui imposera dès 2010 à tout dépositaire de données ayant un impact sur l’environnement (transport, urbanisme, énergie, la liste est très longue !) d’être à même de communiquer de manière normalisée ses données et ses métadonnées. Il s’agit de la directive européenne INSPIRE.

Cette tendance à la normalisation s’impose pour des raisons:

  • d’interopérabilité avec ses partenaires
  • de fiabilité des transactions
  • de conformité aux contraintes règlementaires
  • de maintenanabilité des solutions d’intégration (EAI, SOA)

Cette multiplication d’initiatives de sémantiques communes a un fort impact sur la façon dont les systèmes informatiques sont conçus, développés et maintenus.

Format “pipo” versus format Common Information Model

A l’échelle d’un projet d’intégration, le format dit « pivot » s’avère être davantage une contrainte qu’un vecteur de productivité.
Les raisons d’échec de la mise en œuvre de formats normalisés sont nombreuses :

  • Le modèle est redéfini à chaque projet du fait de l’absence d’organisation transverse
  • Le modèle est défini par la MOE sans implication de la MOA et ne représente pas la sémantique utilisée par les acteurs opérationnels
  • Absence d’outillage pour la gestion des évolutions, l’analyse d’impact et la définition des règles d’intégrité fonctionnelle
  • Dissociation des modèles de données et des règles de contrôle d’intégrité de la donnée

Les faiblesses de l’outillage “classique”

Les EAI (Webmethods, Tibco, Biztalk), les ETL (Oracle DI, Informatica), les ESB (fuse, mule, sonic, sopera) n’outille pas ces problématiques de façon satisfaisante. Par exemple, ils ne proposent pas les fonctionnalités suivantes :

  • Identifier les impacts induits sur l’ensemble des systèmes par une évolution du modèle normalisé des données, d’une « règle, du modèle de données d’un système, etc.
  • Ne pas avoir à modifier les règles de transformation et de contrôle qui ne sont pas impactées par un changement
  • Réutiliser les objets métier définis dans le format normalisé d’échange


DataXtendSI

Cette solution gère les phases de spécification, de développement et de maintenance pour:

  • les modèles de données publiques: les interface entre systèmes
  • les règles d’intégrité technique et fonctionnelle des ces données
  • les règles de transformation

Elle est interopérable avec l’ensemble des plateforme d’intégration du marché (Tibco, Webmethdos, IBM, Oracle, SAP) du fait que le code généré est du java ou du xslt. L’intégration avec Biztalk est théorique.

Les modèles manipulées sont le plus souvent récupéré via des opérations d’import (reverse engineering) qui sont fonction de la connectivité des sources de données (XMI, IDL, SGBD, XML (DTD, XSD), Fichiers (CSV, positionnels, Idocs, EDIFACT, etc.).

Le principe central de ce produit est d’exposer sous forme de web service ws-* des opérations CRUD (Create, Retrieve, Update, Delete) sur des données selon un format normalisé (Common Information Model). *

Les opérations en question peuvent nécessiter l’utilisation de plusieurs sources de données (fichier, base de données, web service, etc.) et l’appelle à ces sources de données peut être séquencée en fonction des besoins.
L’outil, dans l’environnement de design est un plugin Eclipse permet

  • De récupérer un modèle commun de données défini au sein d’un XMI, d’un XSD, d’une DTD, d’un fichier IDL, etc.
  • De récupérer des sources de données définies au sein d’une base de données, d’un fichier (CSV, plat, XML, Cobol CopyBook, etc. ) ou via des opérations d’un Service web
  • De définir  un ensemble de data services
  • De spécifier les règles de mapping (graphique) entre les dataServices exposés (java ou WS) et le modèle commun, ainsi que le mapping entre le modèle commun et les différentes sources de données.

Et finalement un ensemble de règles de contrôle (avec un éditeur dédié) et des enrichissements (en développant un bout de code java).

L’ensemble peut être testé avec des jeux de données et déployé sous forme de classes java conforme à la norme SCA.

Le déploiement de ces classes peut avoir lieu sur un ESB, un serveur d’applications ou une simple JVM.

Les utilisateurs de DataXtendSI

DataXtendSI possède 40 clients dans le monde dont Manuthan, Boiron en France et Telecom Italia, British Airways en Europe.

La concurrence

La concurrence est peu nombreuse… A ce jour, elle se résume à l’éditeur Liaison, autre partenaire de Valtech,  qui propose une offre complète d’intégration sémantique avec son offre Contivo VMS.

Un article de Février 2008 rédigée par Anne Thomas Manes du Burton Group fait le tour des DSP (Data Service Platform) du marché mais reste très centré sur les solutions anciennement qualifiée d’EII: RedHat Metamatrix, Composite Software, Aqualogic Data Service, etc..

Les plus, les moins
Cet outil offre l’avantage, à travers son environnement de développement, d’analyser les impacts de changement d’une donnée sur les transformations, les règles, et les sources de données.

Et donc de mieux maîtriser la complexité de l’intégration des données, en particulier de gérer la problématique de maintenance des pivots et des transformations associés.
L’outil ne peut être déployé que sur une plateforme JAVA (pas prévu de cible .NET).

L’outil peut atteindre des limites dans l’administration des modèles de données complexes (aspect visualisation des modèles). Cette activité devra de préférence être gérée dans un outil de modélisation tel que Rational ou Entreprise Architect.

Actuellement, pas de worflow pour gérer les évolutions et un référentiel mono-projet (workspace Eclipse).

En résumé

C’est un outil qui propose :

  • Une très bonne productivité pour la prise en charge des évolutions : analyse d’impact au niveau le plus fin, conservation de l’intégralité des développements non affectés par l’évolution
  • Une ergonomie pour l’exploration de modèle de données complexes (+1000 classes)
  • La portabilité du code généré (POJO ou composant SCA)
  • l’association systématique de l’intégration de données et de la normalisation du format d’échange
  • L’association systématique du modèle de données avec des règles de contrôle d’intégrité
  • La corrélation des opérations de transformations de données effectuées sur plusieurs systèmes

Les outils d’intégration sémantique offrent une bonne alternative au “plat de spaghettis” de mapping, trop fréquent au sein des EAI et démontrent toute leur valeur dans un contexte de MDM où plusieurs sources de données doivent pouvoir être sollicitées de manière normalisée.

Ils peuvent également être utilisés pour fournir une couche de data services dans un SI orienté SOA et ceci avec une meilleure maîtrise des liens entre data services exposés et sources de données du backend. Il faudra de préférence l’associer à un ESB/EAI pour résoudre les problématiques de transport et de connectivité.

Par ailleurs, deux composantes s’avèrent à l’usage incontournables :

  • un workflow de gestion des évolutions
  • un repository multi-projet des métadonnées

Sans cela, l’utilisation de ces solutions est restreinte à l’échelle d’un projet.

L’ajout de ces deux composantes fait partie de la roadmap des éditeurs Liaison et Progress.

Forum Decideo 2009 : Business Intelligence Open Source

Wednesday, April 15th, 2009

logo de la conférenceValtech Technology, Gold Partner de l’éditeur Talend, suit de près l’évolution du marché de la Business Intelligence vers les solutions décisionnelles Open Source. Preuve à l’appui : sa présence aux conférences de l’édition 2009 du Forum Decideo Open Source !

Retours d’expérience utilisateurs et ateliers de démo sur les plateformes SpagoBI, Jedox Palo, JasperSoft, Actuate ont été au programme de cette journée qui a mis en évidence la montée en puissance et en maturité de ces nouvelles offres, et dont l’intérêt ne peut être que favorisé par la conjoncture actuelle : pilotage stratégique accru, besoin de solutions simples et rapides à mettre à oeuvre, coût initial moindre… Ainsi, comme le montre l’Observatoire du Logiciel Libre (www.ob2l.com) le décisionnel Open Source est en phase d’adoption,  avec +56% de personnes formées entre 2007 et 2008 !

Ces plateformes décisionnelles, toutes développées nativement en Java, bénéficient notamment des nouvelles technologies Web 2.0 et RIA, devenues également matures, et indispensables par exemple pour les solutions de reporting ad hoc (tel JasperServer), où l’utilisateur génère ses rapports via l’interface Web par glisser-déposer. Elles s’enrichissent également de capacité d’analyse en mémoire (grâce à la montée en puissance des machines actuelles), et d’offre en mode SaaS (à l’image de la version 3.5 de JasperSoft). L’allemand Jedox a ainsi annoncé en début d’année la mise au point d’une solution permettant de diminuer de 40 fois les temps d’accès aux données multidimensionnelles chargées en mémoire.

En 2009, l’open source couvre désormais tous les aspects de la chaîne décisionnelle : ETL (notamment avec Talend qui s’impose désormais comme le leader de ce marché Open Source) – Stockage de Données (SGBD, moteurs OLAP), Portail BI, Restitution (Analyse, Dashboard), Datamining. Aussi, le respect des standards technologiques permet l’assemblage de plusieurs briques décisionnelles. Pour l’exemple, Palo propose son propre ETL pour le chargement de son cube OLAP, mais on peut tout aussi bien l’interfacer avec Talend, qui propose en standard un connecteur Palo.

Enfin, les éditeurs de ce segment proposent tous des outils en téléchargement gratuit, mais prolongent leurs solutions décisionnelles par des offres à souscription. A l’image de l’éditeur Actuate, qui a offert BIRT à la communauté Eclipse, un outil de design de rapport destiné aux développeurs, et qui propose la suite payante Interactive Web Reporting pour le design interactif destiné aux end users.

Fiabilité, robustesse, facilité d’intégration, coûts raisonnables, innovation… Telles ont été les qualités de ces plateformes louées par les utilisateurs de cette édition 2009. Si, comme il l’a été rappelé lors de l’ouverture de cette journée, 2008 a vu la professionnalisation de la BI Open Source, les prochaines années verront à coup sûr leur adoption à plus large échelle.

Nouveau Valtech Lunch : Refonte partielle d’un Mainframe en Java

Monday, March 23rd, 2009

Valtech Lunch, une rencontre conviviale autour d’un déjeuner !
Avec le témoignage du Club Méditerranée
Le 7 Avril 2009 à Paris la Défense

Votre emploi du temps ne vous permet pas toujours d’accorder suffisamment de temps à la veille technologique ;
c’est pourquoi Valtech vous propose une rencontre de 12h15 à 13h45.

Ainsi, sans surcharger votre agenda, vous aurez l’occasion de faire le point sur ce qu’il est envisageable de faire en termes de migration progressive de systèmes d’information de type Mainframe vers des technologies moins onéreuses et plus flexibles.

Cette présentation durera 1h30 et sera accompagnée d’un déjeuner léger (type plateau repas).

Pour chaque inscription (60 € par personne), nous vous proposons d’inviter gratuitement une personne de votre choix.

Inscrivez-vous à la session Valtech Lunch du 7 Avril 2009

Afterwork « Architecture et SOA »

Sunday, March 1st, 2009

Mercredi 25 mars 2009 – 18h30 Paris la Défense

Après l’Afterwork GWT…

Après l’Afterwork Agilité…

Encore un évènement inédit proposé par Valtech avec une toute nouvelle session dédiée à l’Architecture et SOA! Cet évènement gratuit se déroule dans les locaux de Valtech Training, au rez de chaussée du bâtiment “Coeur Défense”. Cette session est ouverte à toutes et tous. C’est un moyen privilégié de découvrir l’Architecture, mais aussi le groupe Valtech dans une ambiance très conviviale et propice aux échanges.

A travers cette présentation, nous vous présenterons la vision de Valtech pour les architectures de services et comment concrètement les aborder tout en s’inscrivant dans un legacy fort. Nous parlerons notamment des ESB, présentés comme la pierre angulaire de SOA et de l’alternative technologique REST.

Au programme:

  • SOA, la vision de Valtech,
  • Panorama des ESB open-sources,
  • L’alternative REST,
  • Et bien sûr, une pause pour se restaurer et échanger sur les sujets qui vous intéressent.

Ne manquez surtout pas cette soirée ! Les places sont limitées, pour vous inscrire, cliquez ici :

Détails et inscription pour l’AfterWork « Architecture et SOA »

Aquarium Sun

Tuesday, December 23rd, 2008

The Aquarium Paris s’est déroulé Vendredi 12 Décembre, cette conférence était consacrée aux solutions Open Source de Sun, du middleware au client riche en passant par les ESB.

Tout d’abord, Sun a présenté sa stratégie commerciale autour de ses solutions Open Source, avec un périmètre élargi depuis le rachat de MySql début 2008.
Ensuite une dizaine de présentations se sont succédées, dont celle de Romain Linsolas de Valtech sur Hudson l’outil d’intégration continue.

JEE6
La présentation JEE6 par Roberto Chinicci (Spec Leader J2EE) est certainement celle qui était la plus attendue.

Avec JEE6 pas de révolution mais quelques nouveautés :
RestWS : support des Services Web en mode REST
EJBLite : déploiement d’un EJB en mode embarqué avec packaging dans un War
WebBeans : unification du modèle de développement JSF et EJB (standardisation du modèle de développement Seam)
ValidationBean : API permettant la validation des beans utilisable dans un contexte JPA et/ou JSF (devrait ressembler à l’API Hibernate Validator)
et la poursuite des simplifications opérées par JEE5 :
• Allègement de l’API, certaines librairies ne seront plus embarquées par défaut mais seront optionnelles (Entity Beans EJB 2, JAX-PRC…)
• Simplification de la configuration des applications web : configuration dynamique du fichier web.xml à partir d’annotations Java 5
• Plus de flexibilité : il sera enfin possible d’utiliser des threads dans JEE6.
• Les profils : un profil regroupera un sous ensemble de l’API JEE, actuellement un seul profil est prévu (Web Profile). Un serveur d’application pourra ainsi limiter son support uniquement à un profil et non plus à toute la plateforme entière. Cela devrait simplifier l’émergence de nouveaux acteurs  JEE (Spring Application Server par exemple).

Dans le détail JEE6 devrait être constitué des APIS suivantes :
EJB 3.1
∘ Plus besoin de déclarer les interfaces locales
@Singleton pour déclarer un EJB Session du type singleton
@Asynchronous pour déclarer une méthode asynchrone sur un EJB Session
∘ Convention de nommage JNDI par défaut : java:global/(app)/(module)/(bean)#interface
Servlet 3.0
∘ Configuration dynamique des Servlets à partir d’annotations Java 5
∘ La configuration et l’intégration des frameworks web Open Source sera simplifiée à partir de point d’extension (web-fragment.xml)
∘ API asynchrone : standardisation des principes du projet Comet (Reverse Ajax) qui permet du faire du push d’information depuis le serveur vers un client
JPA 2.0
JSF 2.0
∘ Mécanisme de template ressemblant à Facelet
∘ Cycle de vie compatible Ajax (?)
JAX-RS 1.1
JAXB 2.2

La version finale de JEE6 est prévue pour début 2009 et l’implémentation de référence devrait suivre avec GlassFishV3 courant 2009.

GlassFish V3
A propos de GlassFish V3, Alexis Moussine Pouchkine au cours de sa présentation a surtout insisté sur la rapidité de démarrage (grâce à OSGI seuls les modules nécessaires sont chargés en mémoire), la légèreté du serveur d’application (26 mégas) et la possibilité d’utiliser GlassFish en mode embarqué (à la mode en ce moment).

Grizzly Comet

J’ai également assisté à la présentation de Grizzly Comet par Jean François Arcand. Grizzly (le moteur HTTP de GlassFish) simplifie l’intégration avec l’API Comet (permet de faire du Reverse Ajax). Grizzly est prévu pour traiter des requêtes HTTP en mode asynchrone : le dialogue entre le client et le serveur n’est plus en mode requête/réponse. Le serveur est capable de pousser des informations vers le client. La requête HTTP n’est donc plus attachée à un seul thread, l’envoi de la réponse a lieu plus tard dans un autre thread, l’API Comet se chargeant de gérer le contexte.

Une application de démonstration du type Twitter a permis de se rendre compte de la simplicité et de l’efficacité de Grizzly Comet, mais ce genre de technologie semble à proscrire lors d’une utilisation derrière des proxys.
A noter que l’API Comet peut également fonctionner sur Tomcat et bientôt Jetty et que les concepts sont repris dans l’API JSF IceFaces.

JavaFX
Java FX était à l’honneur, la solution RIA de Sun. Les deux présentations ont permis à l’auditoire de se faire une idée sur le produit : globalement un concurrent de Flash à partir d’un langage de Script basé sur Java. Une application JavaFX peut se déployer dans un navigateur, en mode standalone ou bien sur un téléphone portable. Visuellement c’était très beau mais je ne pense pas que cette API soit utilisable actuellement pour le développement d’applications de gestion. Wait and See…
En ce qui concerne l’outillage un plugin JavaFX existe pour NetBeans 6.5. (un plugin eclipse existe également).

Valtech et le Model-Driven: Yann nous parle de SOA

Friday, July 11th, 2008

La dernière soirée du Paris JUG a provoqué quelques débats sur MDA, avec notamment le post d’Eric sur le positionnement de Valtech. Pour continuer sur la lancée d’Eric, Yann Letanou, Leader Technique chez Valtech Technology, nous propose un article riche sur les bénéfices du MD dans le cadre d’une SOA.

SOA et Approche Model-Driven

L’intérêt grandissant pour les architectures orientées-services amène à se poser la question de l’intérêt d’une approche MDA (Model-Driven Architecture) pour modéliser et au final générer le code permettant l’implémentation des différents composants logiciels.

Nous n’allons pas ici rentrer dans le détail du pour ou contre MDA pour SOA. A Valtech nous pensons que les approches de développement Agile permettent l’émergence d’un design et d’une architecture de bien meilleure qualité qu’une approche MDA. Cette dernière reporte toute la complexité d’écriture du code sur des modèles qui sont loin de permettre les mêmes nuances que du code. La complexité est également reportée sur les générateurs de code qui deviennent alors le point dur car très difficiles à maintenir et à faire évoluer. Au final, Cette élaboration de modèles très détaillés rend improductive l’équipe de développement, qui n’a pas les moyens d’agir au cœur des problèmes.

Toutefois, certaines approches dites « Model-Driven » peuvent être intéressantes lorsqu’elles permettent d’améliorer la productivité et la communication, à condition de ne pas être axées sur de la génération de code à tout va (qui nous ramène au point précédent). C’est par exemple le cas du « Model-Driven Testing » axé sur la génération des tests. C’est aussi le cas des approches centrées sur la génération de fichiers de paramétrage (typiquement à partir de schémas XML standardisés) permettant de configurer des composants logiciels « sur étagère » et à forte valeur ajoutée.

Les technologies utilisées pour implémenter des architectures de services (SOA) sont très axées sur ce type de composant logiciel avec notamment :

  • Les moteurs d’orchestration de service, principalement utilisés pour l’automatisation des processus métier,
  • Les bus d’intégration de services ESB, épines dorsales de la SOA,
  • Les conteneurs de services avec notamment le standard SCA.

L’idée est donc de pouvoir obtenir des applications par paramétrage d’un certain nombre de ces composants logiciels, grâce à l’élaboration de modèles dédiés permettant de s’intégrer dans une démarche agile prenant pour le reste en charge le développement du code applicatif ainsi que le cœur des services. La démarche est ainsi toujours la même :

  • On modélise et on paramètre graphiquement, avec un langage et un éditeur dédié,
  • On génère le ou les fichiers XML,
  • On déploie les fichiers générés dans le composant technique pour le configurer, parallèlement au déploiement du code écrit à côté,
  • On supervise ensuite l’exécution.

Moteur d’orchestration : Génération BPEL à partir de BPMN
BPMN est une notation définie et standardisée par l’OMG; elle permet de modéliser des processus métier à partir d’un ensemble d’éléments de modélisation permettant de couvrir une large palette de besoin. BPEL est un standard de l’OASIS définissant une grammaire XML permettant de décrire des processus directement exécutable par un moteur d’orchestration BPEL. L’une des force de BPEL est de se baser sur de l’orchestration de webservices et de supporter via BPEL4People la gestion de tâches humaines à travers un workflow.

Toutefois la syntaxe BPEL est très complexe et des outils ont rapidement vu le jour pour offrir une notation graphique au-dessus de BPEL (ActiveBPEL par exemple). Cette notation graphique est cependant très proche du BPEL et il reste nécessaire de maitriser ce langage pour définir correctement un processus. De plus, cette proximité de la notation graphique par rapport au BPEL fait que les processus définis ainsi restent difficilement lisibles par des personnes non-aguerries aux subtilités du langage. L’OMG a donc défini un mapping BPMN à BPEL permettant de conserver les avantages descriptifs et documentaire du BPMN tout en ayant la possibilité d’en faire un exécutable à travers BPEL. Ainsi des outils comme Intalio BPMS autorisent ce niveau de modélisation et permettent à une personne non-initiée au BPEL de modéliser et de déployer des processus exécutables. Attention toutefois, cela reste un outil d’informaticiens qu’on ne mettra pas dans les mains d’un pur analyste. Néanmoins, il permet de s’abstraire en grande partie des subtilités du BPEL tout en offrant une puissance de modélisation permettant de développer et déployer rapidement des processus exécutables basés à la fois sur de l’orchestration de services et de la gestion de tâches humaine.

Génération XML pour le paramétrage d’un ESB
Nous pouvons résumer simplement un ESB comme un bus logiciel de médiation, basé sur les standards du Web, orienté-service (et non orienté-flux à la différence d’un EAI classique) permettant de mettre en relation les composants d’une SOA, indépendamment des types de protocoles et de messages utilisés.

L’ESB permet d’exécuter des médiations, qui peuvent être vues comme un assemblage de modules logiciels permettant de mettre en relation des composants logiciels. Par exemple, l’ESB peut permettre de gérer différentes versions d’un webservice déployé sur différents serveurs. La médiation consiste alors à définir les conditions permettant de savoir à quelle version du service chaque appel doit être routé. Le service peut être activé via différents protocoles de communication. La médiation définit alors ces protocoles et les transformations nécessaires permettant au final d’activer le bon webservice.

La médiation peut être décrite graphiquement, à l’aide d’un outil, comme par exemple Spagic, IDE Eclipse permettant de paramétrer l’ESB d’apache ServiceMix. On assemble alors un certain nombre de composants élémentaires, issus généralement des EIP (Enterprise Integration Patterns). Puis on génère à partir de cela les différents fichiers XML de description de la médiation que l’on peut alors déployer dans l’ESB. Le format de ces fichiers XML varie en fonction de l’éditeur. A ce titre, le standard JBI (Java Business Integration, JSR208) tente de standardiser les spécifications d’un ESB et donc le format de ces fichiers de configuration XML. Contrairement aux grands éditeurs du marché, plusieurs ESB open-source suivent aujourd’hui ce standard : c’est notamment le cas de Apache ServiceMix, de Sun OpenESB ou encore de Petals.

Génération XML pour le paramétrage d’un conteneur SCA
SCA (Service Component Architecture) est une spécification de l’Open-SOA définissant un modèle pour la création et l’assemblage de composants de service, indépendamment des langages de programmation utilisés pour leur implémentation. Cette initiative est fortement supportée par IBM, dont la suite SOA est basée sur ce modèle.

L’idée est que le développeur puisse définir des assemblages de composants de service, graphiquement, puis pour chaque composant spécifier son implémentation (par exemple, BPEL, Moteur de règle, code java, etc.). Cet assemblage forme un composite SCA, dont la description est réalisée à travers une syntaxe XML dédiée.

Une fois le composite créé, l’outil génère les fichiers XML puis effectue le déploiement dans un ou plusieurs conteneurs de services SCA, selon que les composants de l’assemblage sont tous locaux ou distants.

Vers un environnement de développement SOA unifié
L’idéal est ensuite de disposer d’un environnement unifié pour définir ces différents modèles puis générer les fichiers de paramétrage associés pour automatiquement les déployer dans la brique logicielle correspondante. Les éditeurs tendent également vers cette ambition, comme IBM avec sa suite basée sur Websphere Process Server, et BEA avec sa suite Aqualogic.

Côté Open-Source, le projet Eclipse STP (pour SOA Tool Platform) est aujourd’hui le candidat le plus crédible. Bien que STP ne soit pas parfait pour l’ensemble des briques que nous avons citées (mais c’est aussi le cas des autres), il reste une initiative particulièrement suivi par la communauté SOA.

Auteur: Yann Letanou.

Solution de sauvegarde locale et distante avec rsync

Saturday, February 16th, 2008

Qui n’a jamais perdu des fichiers lors d’un crash de disque dur ? ou de la machine tout entière ?
Dans cet article je vous expliquer quels sont les moyens que j’ai mis en œuvre pour sauvegarder les données qui se situent sur mon serveur de fichiers (qui contient mes documents personnels, ma musique, mes photos, etc..) dans mon appartement.
Rsync est un logiciel qui construit des sauvegardes incrémentales, c’est à dire qu’il transfert entre chaque sauvegarde que le delta observé entre les 2.
Les machines concernées sont sous Ubuntu Server 7.10 mais l’article reste valide pour toute Ubuntu ou Debian.

Sauvegarde locale

La sauvegarde locale consiste à sauvegarder certains répertoires d’un disque vers un autre disque, dans la même machine (mon serveur de fichiers en l’occurrence) de manière périodique (toutes les semaines).
En l’occurrence sur la partition /dev/hda1 j’ai les répertoires /home /var /etc à sauvegarder; pour cela j’ai la partition /dev/sda2 (sur un disque différent donc) qui est montée sur le pointe de montage /backup
Ainsi mon script cron (sauvegarde.sh, executable bien sûr) à lancer toutes les semaines est le suivant :

#!/bin/sh
#############################
# SAUVEGARDES LOCALES #
#############################
#sauvegarde du repertoire etc
rsync -avz –delete /etc /backup/
#sauvegarde du repertoire var
rsync -avz –delete /var /backup/
#sauvegarde du repertoire home
rsync -avz –delete /home /backup/

L’option “-avz” signifie que la sauvegarde (le transfert) des fichiers sera récursif; les fichiers seront tranférés en mode “archive” qui garantit que les les liens symboliques, les attributs,les permissions, les droits, etc… seront préservés lors du transfert; de plus une compression sera utilisée lors du tranfert (qui n’affectera pas vos fichiers)
l’option “–delete” signifie elle que lorsque l’on supprimera un fichier sur /etc par exemple, il devra être supprimé aussi de /backup/etc/ lors de la sauvegarde. (si vous ne mettez pas cette option, votre /backup risque de se remplir très rapidement !!!)

Mise en place du “job” cron

Pour appeler le script de sauvegarde sauvegarde.sh, il faut l’indiquer dans une table cron; pour cela je vous renvoie au tutoriel cron d’ubuntu-fr.org
En particulier, le script de sauvegarde doit être lancé par un utilisateur ayant accès à l’ensemble du système de fichiers.
Plutôt que d’utiliser root, nous allons créer un nouvel utilisateur , “sauvegarde” qui fera partie du groupe root, et autres groupes utilisateurs nécessaires pour qu’il puisse sauvegarder l’ensemble des répertoires spécifiés.
Son “home directory” sera /backup
% sudo useradd -d /backup -g root -G anthony sauvegarde
donnez lui l’appartenance de ce répertoire:
% sudo chown -R sauvegarde:root /backup
Ainsi, le script sauvegarde.sh doit être accessible et lancé par notre nouvel utilisateur sauvegarde; pour cela, créez une nouvelle crontab pour l’utilisateur sauvegarde :

% sudo crontab -u sauvegarde -e

Votre éditeur (vi ou emacs) se lance, insérez la ligne suivante :
@weekly /chemin_ou_situe/sauvegarde.sh #sauvegarde

çà y est !
votre sauvegarde locale est créée, vous être à l’abri du crash du disque contenant /home /etc et /var !!
Mais si votre machine est victime d’une surtension,et que tous les disques sont endommagés, vous perdrez tout !!!

Sauvegarde distante

Pour se prémunir d’un dégât, d’un vol, d’un incendie, il faut sauvegarder vos données vers une machine distante.
Si vous possédez un serveur dédié (ou si un ami ou autre personne de confiance vous donne accès à son serveur) vous pouvez alors mettre en place une solution de sauvegarde distante.
Pour cela, compléter le fichier sauvegarde.sh en y rajoutant ces lignes :

#############################
# SAUVEGARDES DISTANTES #
#############################
serveur=”mon.serveur.dedie.fr”
#sauvegarde du repertoire home
rsync -avz –delete /backup/home $serveur:/backup/
#sauvegarde du repertoire etc
rsync -avz –delete /backup/etc $serveur:/backup/
#…

Comme vous pouvez le constater, avec rsync, une sauvegarde locale ou distante est traitée de la même manière, la syntaxe est identique, au $serveur: près.
Bien entendu pour que tout ceci fonctionne, vous devez, sur la machine distante, créer un utilisateur sauvegarde , avec pour “home directory” /backup (répertoire à créer sur la machine distante).
% sudo useradd -d /backup sauvegarde
donnez lui l’appartenance de ce répertoire:
% sudo chown -R sauvegarde:sauvegarde /backup
donnez à votre utilisateur sauvegarde un mot de passe (fort de préférence) :
% sudo passwd sauvegarde
Aussi, pour permettre à votre machine locale de se connecter à la machine distante, sans intervention de votre part (sans demander de mot de passe donc) vous devez créer un couple de clés DSA.
Sur la machine locale, logguez vous en utilisateur sauvegarde :
% sudo su sauvegarde
et créez votre couple de clés DSA :

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/backup/.ssh/id_dsa):
Created directory ‘/backup/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /backup/.ssh/id_dsa.
Your public key has been saved in /backup/.ssh/id_dsa.pub.
The key fingerprint is:
XXXXXXXXXXXXX sauvegarde@machine

Acceptez l’emplacement par défaut pour la création des clefs, et appuyez sur entrée lorsque l’on vous demande une “passphrase” (comme çà, nul besoin de saisir de mot de passe pour utiliser la clef).
Il n’y a plus qu’à partager la clef publique générée avec la machine distante :
toujours loggué en utilisateur sauvegarde sur la machine locale :
ssh-copy-id -i ~/.ssh/id_dsa.pub sauvegarde@machine_distante
C’est fini, votre utilisateur sauvegarde, sur la machine locale, pouvant se logguer sur la machine distante, votre script cron, sauvegarde.sh, sera lancé toutes les semaines sans problème afin de sauvegarder localement et à distance vos données importantes.
Vos commentaires sont les bienvenus !

Références :
le site officiel de Rsync
Formation Debian : accès par ssh