Le retour du MDDay

3 novembre 2008

image Un an déjà ! Après le succès du MDDay 2007, les partenaires organisateurs ont décidé de remettre le couvert.

C’est toujours une journée dédiée au Model Driven (Development, Architecture, Engineering, Testing…) et c’est toujours gratuit. Même principe que ce qui a fait son succès l’an dernier : des présentations jumelées expert + client.

En plus des partenaires (Objet Direct, Objecteering, Jaxio, Lyria/W4, BlueXML, MIA, Obeo, Sodius, et Microsoft) deux guest stars (Didier Girard et Ed Merks, Mr EMF) donneront leur vision du sujet.

J’animerai la présentation pour Objet Direct, en collaboration avec un de mes clients, Eric Deriaz, de Merck Serono, Genève.

Ma présentation, sera en quelque sorte, la suite de celle que j’ai faite l’an dernier (j’avais parlé de l’intégration des règles de gestion dans les modèles destinés au MD). Mon sujet cette année : comment modéliser efficacement une application en approche MD. Je parle bien de modèle applicatif (le sujet n’est pas le modèle de domaine) et je montrerai comment éviter les syndromes classiques :

  • Le PIM anémique : pas de comportement, pas de modèle applicatif,
  • Le PIM obèse : un modèle fonctionnel ultra-détaillé, lourd et coûteux,
  • Le PIM « PSM » : un modèle technique ; de la génération de code pas agile, sans modèle fonctionnel.

Je présenterai des exemples concrets de « Patterns Applicatifs » qui permettent, avec très peu d’énergie, de produire beaucoup de code.

Eric parlera des raisons qui ont poussé Merck Serono à expérimenter l’approche MD à travers ces patterns sur une application pilote et les résultats de cette expérimentation.

Venez nombreux !

Une syntaxe concrète pour ASL

22 octobre 2008

image Pas trop tôt ! L’OMG a enfin proposé un RFP pour une syntaxe concrète pour ASL (Action Semantics Language). Dit comme ça ça ne fait pas trop rêver :-) Pourtant c’est depuis longtemps un de mes dadas et un sujet dont je parle régulièrement dans mes présentations/séminaires MD.

La norme UML2 définit une syntaxe abstraite (un méta-modèle) pour décrire les actions sur un modèle statique : ASL. C’est ce méta-modèle qui est derrière une bonne partie des diagrammes dynamiques d’UML.

Autrement dit, aujourd’hui, pour décrire un comportement en UML (le contenu d’une méthode par exemple) on dispose des diagrammes dynamiques (activités, séquence, vue d’ensemble des interactions) mais pas d’un langage de programmation (une syntaxe concrète). Même si aucune norme n’existe, certains outils (peu finalement) incluent leur version propriétaire d’un tel langage :

Pourquoi suis-je si intéressé par le sujet ? A mon avis l’absence d’un tel langage dans les modeleurs actuels est un des freins majeurs à l’adoption de démarches MD.

Je m’explique : un modèle source d’une approche MD (le PIM en MDA), pour permettre de générer un pourcentage raisonnable du code (>50% sinon on est pas vraiment centré sur le modèle), doit inclure l’aspect comportemental (les règles de gestion du domaine par exemple).

En théorie il y a tout ce qu’il faut dans UML pour modéliser un algorithme avec les diagrammes dynamiques.

Dans la réalité celui qui a déjà essayé sait que l’approche n’est pas pertinente ! Si on veut pouvoir produire le code cible à partir de ces diagrammes ils doivent être équivalents à du code, c’est-à-dire être complets et extrêmement rigoureux.

Or les diagrammes dynamiques d’UML n’ont pas été faits pour être compilés : ils sont très difficile à maintenir et surtout, leur syntaxe, telle qu’implémentée dans les modeleurs, est toujours incomplète et la plupart du temps beaucoup trop laxiste.

Une syntaxe concrète (i.e. un langage de programmation) associée à ASL suffirait donc pour non plus modéliser, mais programmer en UML !

Avantage supplémentaire de l’approche : on peut simuler, et donc tester, ces méthodes avant même de disposer des transformateurs vers la plate-forme cible.

On espère que (pour une fois à l’OMG !) cette RFP donnera lieu rapidement à un standard dont les éditeurs s’empareront.

Wake Up REST à la Cantine

30 septembre 2008

image J’ai eu la chance de participer jeudi matin (25/09) à une nouvelle initiative de Didier Girard (au fait, merci Didier), grand animateur de la communauté des architectes. Un « Wake Up » : ambiance conviviale autour d’un café à la Cantine (un peu tôt pour la bière tout de même !) pour une rencontre qui se voulait un brin polémique. L’idée était de nous faire réagir à l’arrivée de REST dans les architectures Web.

Didier nous présente REST comme un retour aux sources : finalement le web comme outil de publication documentaire à fait ses preuves, pourquoi ne pas voir une application comme un fournisseur de ressources (vues logiques sur les données) mises à disposition par les applications. Chaque ressource peut-être lue (GET), mise à jour (POST), créée (PUT) ou supprimée (DELETE) via une opération HTTP standard. Un des intérêts, faciliter la mise à disposition des données du SI (agrégée à la demande via des portails) et susciter de nouveaux usages.

Retour de balancier : la SOA voyait l’application comme fournisseur de services, les données n’étant que les valeurs de sortie des-dits service, REST nous propose une vision duale de la SOA, où les traitements sont implicites (une donnée est dans un état qui est gouverné par la dernière requête qui y a accédé).

Comme je l’ai dit lors de notre discussion jeudi, j’ai encore du mal à voir la valeur ajoutée, ou plutôt, j’ai l’impression que l’architecture REST, comme la SOA, est réductrice : les applications de gestion (celles sur lesquelles je travaille) sont plutôt conçues par rapport aux processus qu’elles automatisent et donc, centrées sur des activités métier (qui correspondent aux cas d’utilisation de l’application). Seules exceptions, les Référentiels, responsables de garantir la cohérence des données de références du SI ne fournissent souvent que des services CRUD (justement ceux cités plus haut). REST serait l’architecture adaptée à la mise à disposition en architecture web des Référentiels du SI ?

Je pense surtout qu’on tourne en rond ! Au « commencement » on publiait des documents sans état (web 1.0). On s’est rendu compte que pour faire des « vraies » applications, on avait besoin de publier des services (avènement de la SOA). On trouve ça trop compliqué (à juste titre) et on revient à la publication des données.

En fait quel est le besoin ? C’est la notion de « formulaire » au sens large : des données affichées + des traitements associés (les boutons). Suivant le cas, l’intérêt de l’utilisateur est plutôt centré sur les données ou sur les traitements.

Dans le cas général, cette chose étrange qui réunit des données et des traitements, on pourrait par exemple l’appeler un « objet » et se demander comment le publier sur le web…

Vivement la prochaine fois pour un Tribunal du SI ;-)

Google Developer Day Paris

25 septembre 2008

image J’ai participé la semaine dernière (18/09), comme spectateur, au passage à Paris du Google Developer Day.

Un petit retour rapide sur deux des présentations auxquelles j’ai assisté :

Android

J’ai eu envie d’en savoir un peu plus sur Android, un des buzz à la mode. Malgré un présentation plutôt sympa, pas d’annonce fracassante ni d’exclu juteuse. On n’a même pas pu voir le G1 « en vrai » !
Petite confidence « off » du conférencier : « j’ai un iPhone et un G1 et je préfère quand même l’iPhone » :-)

Un truc très sympa : un gagnant français du concours de développements Android (Android Developer Challenge) organisé par Google à parlé de son appli : un central de gestion de covoiturage (avec paiement éventuel et gestion de blacklist) intégrant la géolocalisation. A suivre probablement.

Au passage le concours en question, très bien doté puisqu’au total, ils ont distribué 5 millions de dollars, leur a permis de se constituer une logithèque de qualité (~2000 softs) avant même la sortie du mobile !
La vraie question est : nous, développeurs d’applis de gestion, devons-nous nous pencher sur le développement mobile ? Devons nous investir, nous former ?

Autant vous le dire, la présentation ne m’a pas apporté la réponse :-(

M2C : même si le rapport au mobile est aujourd’hui très « personnel » voire privé, il me semble que son coût extrêmement faible au regard de la technologie qu’il embarque devrait (moyennant un peu plus d’imagination que ce à quoi nous avons habitué nos clients) nous permettre d’explorer de nouveaux « use cases ». Désolé, ça reste vague, mais je pense que ça viendra probablement de la BI pour qui la diffusion d’informations, leur présentation, la dimension « aide à la décision » devraient être des moteurs. Je vais en causer avec mes voisins de bureau

Google App Engine

La présentation pour laquelle j’étais essentiellement venu m’a laissé sur ma faim. Il m’a semblé que les deux conférenciers (non « Googliens ») avaient juste passé deux heures de plus que moi sur le sujet (j’avais téléchargé le SDK la veille et déroulé le « Hello World » : 10 mn montre en main) ! Ils ont déroulé le Hello World en une demi-heure puis passé en revue les services disponibles. A leur décharge, on ne peut pas dire que Google nous « arrose » d’informations sur le sujet !

Pour résumer, qu’est-ce que le Google App Engine ?

  • Vision commerciale : c’est l’offre « cloud computing » de Google (essentiellement en réponse à EC2 d’Amazon).
  • Vision technique : c’est un serveur d’application hébergé exclusivement chez Google et qui s’appuie sur son infrastructure et met à disposition ses services : authentification, mail, persistance dans « BigTable » (LA base Google), accès aux Google Apps…

Concernant la technique, plusieurs points peuvent faire « tiquer » : un développement pour Google App Engine est exclusivement pour Google App Engine ! Google n’a pas eu la volonté d’implémenter, avec ses ressources, un serveur d’appli « standard » (J2EE ?). Tout est un peu « exotique » : l’authentification nécessite d’avoir un compte Google (la page d’authent est la même que pour votre GMail), la base n’est pas relationnelle, le langage de programmation est Python… et, aujourd’hui, aucune solution connue (en tout cas utilisée dans ma boîte, Objet Direct) ne permet de développer facilement (c’est le point important !) des IHM web pour GAE.

Ca veut dire, investir pas mal pour un business à peine émergent (GAE n’existe que depuis avril !).
La donne va changer dès que les API java sortiront (ce qui ne devrait tout de même pas tarder, même si, même sous le sceau du secret, ils ont refusé de nous dire quand !).
Il est donc urgent d’attendre (mais pas longtemps, j’espère).

Une chose très sensible : ce sont des maniaques du secret. Je pense que même après douze bières, il est impossible de leur faire avouer quand java sortira sur GAE. Il doivent avoir un flingue dans le dos (et en tout état de cause, ils sont très, très « briefés »).
A part ça je confirme que l’accueil était très sympa et l’esprit (faussement !) startup affiché (allez voir les photos, il y a même une preuve que j’y étais !). Une bonne occasion de faire du networking » et/ou du recrutement ou tout simplement de croiser des gens sympas « en vrai » (salut Samuel :-) ) ou de vieilles connaissances.

Et, comme prévu, malheureusement, pas de MD chez Google pour le moment :-(

Présentation au Paris JUG

30 juin 2008

image J’anime le 8 juillet à 20h, une des deux présentations du Paris JUG (Java Users Group). Le titre « Pourquoi tout le monde ne fait-il pas du MDA ? » annonce le ton. La présentation sera un peu polémique :-)

En particulier j’essaierai de montrer ce qui, aujourd’hui, freine l’adoption des démarches par transformation/génération (plate-forme incomplète, approche trop naïve, rareté des bons profils, changement d’organisation) et comment tenter d’y remédier.

En espérant vous y croiser et échanger sur le sujet autour d’une bière.

Ca se déroule dans les locaux de la FIAPP au 14 rue Cabanis dans le 14ème.

J’ai l’honneur de partager la soirée avec James Ward (Mr Flex chez Adobe) qui anime le slot 21h30-22h30 sur « RIA avec Flex et Java ».


Un petit lien vers les slides de la soirée.

Séminaire MDA à Grenoble

22 mai 2008

clip_image002J’anime le 12 juin après-midi à Grenoble un séminaire (gratuit !) sur MDA : « De la modélisation métier à l’application générée, comment tirer parti concrètement du MDA ?« .

Après une présentation générale des concepts j’expliquerai comment rendre efficace un processus MD. Je parlerai particulièrement de deux problèmes, à mon avis, difficiles :

  • Comment inclure les traitements métiers dans le modèle d’analyse ?
  • Comment dépasser le modèle de domaine et mettre en oeuvre une vraie modélisation applicative ?

Je présenterai un cas réel de l’utilisation de prototypes fonctionnels pour simuler et valider une analyse MD (avec D.OM) et une mise en œuvre concrète de la plate-forme MDA d’Objet Direct (Metadone) sur laquelle je travaille.

Vous pouvez vous y inscrire en ligne ici. Je serai ravi de vous y rencontrer et d’échanger sur le sujet.

Test de stress sur Google App Engine

22 mai 2008

image Je sais ça n’est pas du tout MD (encore que : quelle sera la première plate-forme à générer du code GAE ?)

Didier Girard organise un test de stress sur une appli Google App Engine (il va vraiment falloir se mettre au Python, à moins de le générer).
Donc, demain (vendredi 23 mai 2008) 16h, entraînez-vous à la frappe rapide.
Le post original est (au fait, il se trompe d’heure : en été, la France est à GMT+2 et non +1 ; il risque d’avoir tous les étrangers à 15h !).

Dans tous les cas, je pense qu’on se doit de regarder GAE qui
- est un vrai changement par rapport à nos habitudes actuelles
- est poussé fortement par Google
- est un des trucs qui fait méchamment flipper Microsoft

Il existe un blog pas mal sur le sujet avec quelques liens intéressants.

Bienvenue sur le Cloud.

DSL aux QCon

21 mars 2008

image J’ai eu la chance de participer, pour Objet Direct, la semaine dernière, aux QCon à Londres. Malgré de nombreuses interventions de haut niveau, il y avait, malheureusement, peu de speach en rapport avec l’approche MD. Le thème sur les DSL était probablement le plus proche de mes préoccupations du moment. Le speach le plus intéressant était celui de Markus Völter, External Textual DSLs made simple, qui présentait XText. Il s’agit d’un outillage eclipse qui permet très simplement de produire un environnement de développement pour un DSL.

En effet, un des prérequis à l’adoption de DSL est la disponibilité d’outils de « développement » associé. Personne n’acceptera d’utiliser un DSL avec Word comme IDE…

imageLe principe de XText est simple : en entrée, on fournit une grammaire BNF du DSL (plus quelques infos facultatives supplémentaires : contraintes exprimées en OCL, contenu et structure des vues sur le code), l’outil génère, sous forme d’un plugin eclipse, un parseur, un modèle cible (EMF), un compilateur vers ce modèle et un éditeur qui fournit tout ce qu’on attend : coloration syntaxique, complétion du code, vue « outline » personnalisable, validation temps réel de contraintes.

Le « DSL-IDE » produisant de l’EMF, il est possible d’exploiter sa sortie avec tout l’outillage diponible : visualisation graphique, transformateurs de modèle, générateurs de code. En particulier, il est possible d’intégrer la compilation de ce DSL dans une chaîne de transformation OpenArchitectureWare (oAW Workflow).

Je pense essayer rapidement l’outil avec un petit langage orienté vers la saisie d’exigences métier. Je vous tiendrai au courant.

Boîte à outils de Noël

24 janvier 2008

imageLa période autour des fêtes a été l’occasion d’annoncer une avalanche de nouveautés (presque toutes mineures !) chez les éditeurs et les fournisseurs d’outils : Lire le reste de cet article »

Epoux et amants (2)

6 janvier 2008

Ce post fait suite au premier du même nom qui s’intéressait à l’implémentation de relation UML en java. On avait vu qu’une simple association 1-1 donnait déjà lieu à du code non trivial.

Un problème amusant (!) du même genre est la transformation en java, d’une relation multivaluée. L’objectif est, toujours, de conserver en implémentation le maximum d’informations contenues dans le modèle.

Pour planter le décor concernant nos époux (qui sont tous les deux des personnes :-) ), je vous propose d’étendre le domaine de notre application au delà de leur vie amoureuse. Considérons par exemple leur lieu d’habitation et leurs changements d’adresse successifs. Notre modèle de domaine ressemblera à ça :

Adresses

Lire le reste de cet article »

buy sale viagra
buy viagra online price
buy discount levitra
buy sale viagra
viagra 100 mg
buy cheap cialis
buy viagra
cheapest levitra
buy viagra online
buy viagra usa
buy viagra online
buy now viagra
buy price viagra
buy now levitra
buy discount viagra
cheap viagra online
buy viagra fedex
buy viagra overnight
buy viagra las vegas
generic viagra
cheap price viagra
Pfizer viagra free samples
generic cialis
cialis black reviews
buy cheap cialis
free madonna ringtones
cheapest cialis
buy now viagra online