En direct de Tech-Ed 2003  Par Sami Jaber (webmaster@dotnetguru.org)

L'édition 2003 de Tech-Ed sera un bon cru. C'est en substance la phrase qui résume le mieux l'évènement de cette année. Au menu, plus de 5000 personnes avec une fréquentation quelque peu retrouvée par rapport aux éditions précédentes. Il faut dire que tout a été fait pour satisfaire le public cette année. En premier lieu la technologie. En effet, Microsoft a rarement eu l'occasion de montrer autant de nouveautés avec des produits phares tels que Yukon, Biztalk 2004 ou encore ADS et WSE v2. Par ailleurs, aux dires des nombreux observateurs présents sur place, la qualité des sessions a été considérablement améliorée. Plus de technique, moins de blabla et plus de "sérieux". Est-ce à dire que les shows Microsoftiens d'entan ont disparu des estrades ? Pas vraiment, mais l'approche est, comment dire, ... plus pragmatique, moins bricolo et finalement plus "enterprise".

Je reprend maintenant la première personne du singulier  (quelle horreur ;-) ) pour vous relater les différentes sessions auxquelles j'ai pu assister. J'ai consciemment choisi des sujets proches de ceux dont nous vous faisons l'écho régulièrement sur DNG : Architecture, SOA, Securité, Web Services, Interopérabilité. 

Cette première journée a débuté avec en matinée une keynote du vice-président de Microsoft Corp : Sanjay Parthasarthy. Quant aux sessions de l'après midi, j'ai choisi pour vous "Securité avec Kerberos" et "Biztalk 2004". Pourquoi ces thèmes ? Et bien, Kerberos est un sujet ô combien important pour celui qui souhaite mettre en place un semblant de sécurité entre systèmes hétérogènes. Aujourd'hui très peu de protocoles font l'unanimité côté Microsoft et côté J2EE/Plateformes libres. Kerberos en fait partie. Mais au delà de Kerberos même, ce qui m'intéressait fondamentalement dans un tel sujet est la possibilité d'invoquer de multiples applications Web (WebApps) .NET ou J2EE (ou Php) sans avoir à me résigner, ou mieux encore, en récupérant directement mon login NT ou Linux. Loin de solutions telles que Passport ou Liberty Alliance, cette session devait m'en dire plus sur les capacités d'Active Directory à gérer Kerberos de manière transparente. 

Quant au second sujet, Biztalk 2004. Que dire de plus sinon que ce produit m'a totalement saisi la première fois que je l'ai découvert. Il marquera de toute évidence l'histoire des produits Microsoft et augure d'une nouvelle ère dans l'intégration d'applications. La session que j'ai suivi ne m'a pas fait changer d'avis.  

Mardi

KeyNote d'inauguration 

Le keynote de Sanjay Parthasarthy a été des plus classiques avec une orientation Web Services (pour changer). Concernant la stratégie de l'éditeur, beaucoup de marketing, toujours autant d'optimisme et une réelle volonté de conquérir le serveur. Fini le temps du Microsoft Desktop, voici venu le temps du Microsoft "Enterprise". Sur le même sujet, nous avons eu droit à la présentation de la machine la plus puissante du monde (au TPC), un HP exécutant 2003 avec un nom à coucher dehors :-). Puis s'en est suivi une série de démonstrations finalement très classiques : Une application de localisation géographique utilisant les WebServices à outrance, une application faisant appel à un client TabletPC et enfin une mise en pratique d'Active Deployment Services (ADS). La partie la plus enthousiasmante a été celle traitant de "Jupiter". Si elle n'a duré que quelques secondes, la démonstration a été des plus convaincantes. Pour résumer, le speaker nous a montré une application basée sur InfoPath comme client utilisant des processus métier Biztalk 2004, le tout connecté à Office 2003 avec un brin de SharePoint Services. Un must!.

Session SEC400 : Unix & Kerberos Interop to achieve Identity Management

L'agenda de cette session est le suivant : 

  • Identity and Access Management (I&AM) Issues

  • How Kerberos interop solves an identity management problem

  • Interop standards and technologies

  • Scenario & Demos
      *NX/AD Kerberos Sign-on
      *NX/AD Kerberos SSO
      Authentication vs Authorization
      Secure SSO and Authorization

Un planning des plus alléchants mais il y a des jours comme cela où il vaut mieux rester couché lorsqu'on est speaker. Toute cette session est basée sur une démonstration. Si elle plante, autant dire qu'il n'y a plus rien à voir. David Mowers a failli en faire la triste expérience. Et pourtant, tout avait bien commencé. Une partie théorique réservée à l'interopérabilité, la valeur de la sécurité, etc ... Tout se passe très bien. L'ambiance est très détendue. C'est à ce moment que le speaker annonce au public que sa démonstration est très (très) compliquée à mettre en oeuvre. Il précise qu'elle a apparemment planté à Dallas il y a trois semaines mais que depuis, il a décidé d'automatiser pour Barcelone les opérations manuelles afin d'éviter ce genre de mésaventure. 

Puis vient le moment de la démo. Le principe est très simple, il y a 7 étapes bien précises à exécuter pour intéropérer un client Linux (RedHat) et un serveur Windows 2003 avec Kerberos. Le but consiste donc à créer un compte utilisateur Linux sous Active Directory et à s'authentifier à partir de la machine RedHat. Rien de bien sexy finalement mais la face cachée de l'iceberg est d'une complexité effroyable. Linux implémente GSSAPI, Windows SSPI. Les deux plateformes ayant une gestion de la key table très similaire.  

 Après un premier essai, l'exécution de ktpass (script kerberos pour créer le compte sur le contrôleur de domaine) échoue. David oublie de mettre le nom de domaine dans l'adresse (mais entre temps, il a quand même rebooté deux fois la machine). Il aura fallu attendre qu'une personne du public lui porte secours pour pouvoir découvrir le reste de la démo. L'exécution de la deuxième étape échoue également dans la douleur. Normal, pour déclarer un utilisateur/machine Linux dans Active Directory, David utilise un plug-in de la société Vintela (www.vintela.com). Or, dans les onglets, il coche une première fois la case "Compte Spécial Linux" mais oublie de faire "apply" (argh!). Du coup, après maintes et maintes tergiversations (c'est dans ces moments qu'on se sent seul), une personne du public (toujours le même) qui avait aperçu l'erreur intervient après un petit moment d'inertie. Entre temps, nous avons eu droit à un "killall", un reboot (qui a planté, il a fallu relancer un émulateur VMWare) et plusieurs aller/retour avec les slides théoriques, histoire de meubler. 

Bref, la démonstration a finalement marché, il n'y eut en fait aucun problème de fond mais David, sous l'effet du stress, s'est quelque peu, comment dire ... emmêlé les pinceaux. Malgré tout, ce fût pour moi une brillante expérience car j'ai finalement pu voir ce que j'étais venu chercher. Si l'intérop Kerberos Linux/Win2003 ne m'a pas réellement impressionné, la dernière démonstration mettant en oeuvre l'authentification intégrée Kerberos avec Apache m'a scié. Imaginez réaliser tout ce que vous faîtes avec NTLM sur une machine Linux/Apache et ce, de manière multi-plateformes, tout  cela grâce à Mozilla SPNEGO. Dommage que le speaker ne soit pas allé jusqu'au bout avec une vraie application ASP.NET utilisant dans le web.config l'authentification intégrée Kerberos. Bref, même si ce fût une session "très bricolo", elle présage des outils de sécurité de demain. 

Session EBZ302 : Building Solutions and WebServices orchestration with Biztalk 2004

Cette session fût un vrai régal. J'étais venu sans réelle conviction vu le caractère "introduction" de la session. Finalement j'ai assisté à un vrai show technique doté d'une sobriété et d'une efficacité pédagogique rare. Le speaker, un dénommé David Fong nous a réellement impressionné. Avec une voix "à la CD-ROM" (vous savez, les voix qu'on entend dans les cours Office 95 sur CD-ROM), il n'a pas fait dans la dentelle. Maîtrisant Biztalk 2004 comme peut-être personne au monde, il nous a montré un exemple d'orchestration de WebServices récupérant un schéma XML, vérifiant une donnée dans le SI et renvoyant le résultat à un autre Webservices. Le tout avec une transformation de schéma. 

Pourquoi Biztalk 2004 est-il si séduisant ? Et bien, imaginez-vous un studio de développement BPEL4WS totalement intégré dans Visual Studio .NET. Vous concevez votre workflow directement dans l'IDE. Par simple glisser/déplacer, vous créez des ports, des messages et des WebServices. Dans le même outil vous faites appel à un transformateur graphique de schéma avec la possibilité d'insérer des fonction (mathématiques, etc..) avec un éditeur d'expression (en C#) proposant l'intellisense intégrée. Aucun article ne pourra vous montrer vraiment la puissance de Biztalk 2004. Et je vous passe l'étape de déploiement, un click sur déploy et l'assembly est générée puis déployée instantanément avec une WebApp ASP.NET de surcroit. 

Nous reviendrons sur Biztalk 2004 dans l'année lors du Symposium DNG, mais en attendant, si vous avez l'occasion d'installer la béta, n'hésitez pas une seconde. 

J'attends avec impatience l'équivalent sous Eclipse. Le plug-In BPEL4WS d'IBM est encore loin de fournir ce que j'ai vu aujourd'hui. Mais l'avenir nous en dira plus ...

(J'enrichirai ce document au fur et à mesure des sessions, mais maintenant il est vraiment temps que j'aille à la plage pour me remettre de toutes ces émotions)


(beaucoup de monde chez Borland, tout le monde s'acharne sur C#Builder)

Mercredi

Session EBZ304 : Administration and deployment with Biztalk 2004

Levé 7h pour une session à 8h. Dur, très dur. Au menu, une session administrateur sur Biztalk. Pourquoi celle-ci ? Découvrir le côté client et orchestration de Biztalk est un excercice très ludique mais il faut garder à l'esprit que cet outil est destiné avant tout aux architectures d'entreprise en tant que socle EAI, il convient donc de ne pas prendre à la légère le déploiement de telles solutions, (souvent onéreuses d'ailleurs). Je voulais donc simplement vérifier que la face cachée de l'iceberg était aussi belle et stable que la face visible. Résultat des courses, la session a été très ... comment dire ... "transparente". Sur un ton monocorde et très lent, j'ai tout de même pu découvrir les facettes de la sécurité Biztalk (Pki, crytage) et apercevoir les îlots de serveurs permettant d'héberger plusieurs instances de Workflow. Une session pas vraiment transcendante mais efficace.  

Session DEV485 : Microsoft CodeDOM demystified 

Je devais normalement suivre la session HWS (Human Workflow Services) mais au dernier moment j'ai préféré m'orienter vers la DEV485 intitulée CodeDOM demystified. Pourquoi ? Et bien, Thomas GIL et moi sommes tombé sur un problème bien connu de CodeDOM. Pour info, CodeDOM est l'API de Microsoft qui permet de compiler en mémoire un code source et de récupérer une référence vers le graphe objet du ByteCode ainsi généré. Cela permet entre autre de réaliser des générateurs de code ou des tisseurs AOP. Et c'est justement dans ce dernier cas au travers du projet AspectDNG que nous avons eu besoin de réaliser l'opération inverse qui consiste à lire une Assembly et enrichir son graphe d'objet. Or, lorsqu'on récupère une instance d'un ICodeProvider C#, le Framework nous renvoie null.  Pour quelle raison ? j'étais là pour le découvrir. 

Après une longue introduction aux API CodeDOM, Beat Schwegler, le speaker du moment, a enfin abordé le sujet (apparemment sensible chez MS) et nous a informé de travaux en cours dans ce sens chez l'éditeur. Son conseil : "utilisez le provider fournit dans Rotor" ou "allez voir ailleurs" (Mono par exemple ;-) ). C'est bien ce que nous pensions avec Thomas (et certains lecteurs nous avaient également mis la puce à l'oreille). Moralité, j'ai eu la réponse à ma question et j'ai pu très discrètement m'éclipser. Car il faut bien avouer, cette session relevait plus de l'introduction que du drill-down.

Session EBZ327 : Le projet "Jupiter" (InfoPath 2003 + Biztalk 2004)  

Cette session est peut-être ... allez je m'avance : la meilleure présentation à laquelle j'ai pu assister (à noter toutefois que j'ai eu très peu l'occasion d'en suivre). Je suis rentré en regardant l'heure et je suis parti presque dépité que cela soit aussi court. A la fin, j'ai été totalement scotché sur mon siège même en étant déjà très familier avec ces outils. En fait, le succès de cette session repose en partie sur les talents du speaker Scott Woodgate, un nom à retenir absolument. Scott est en charge des développements Biztalk 2004 chez l'éditeur et un fin limier dans l'art de la présentation. 90% de démo et 10% de slides. On y apprend que Jupiter est en réalité le nom de code d'un ensemble de produits : InfoPath + Biztalk 2004 intégrant HWS, Business Rules ou le mapper XSD. Le but était de nous montrer une orchestration utilisant un document client réalisé avec InfoPath envoyé à un Port receive (adaptateur fichier) générant plusieurs messages XSD, le tout avec une communication de type One-Way et Request-Response (dans InfoPath!). Ce qui signifie qu'il est tout à fait possible de récupérer le résultat instantané d'un processus métier dans l'outil bureautique et d'analyser la réponse du serveur. 

Il nous a également montré la puissance du mappeur XSD, des processing instructions XML (utilisées dans InfoPath pour récupérer un Template), des propriétés dynamiques de Biztalk, etc.... Tout ce qu'il toucha fonctionna du premier coup avec une aisance extraordinaire. Pourtant le produit est en beta et il vallaix mieux ne pas se risquer en terrain inconnu. 


(La session de scott Woodgate)

Une session remarquable et remarquée. Ce sera la dernière de ce genre concernant cet outil phare. Je regrette simplement que Microsoft ait choisi d'orienter son discours sur les fonctionnalités du produit sans jamais aborder les concepts. Aujourd'hui l'EAI n'est pas l'apanage sur le marché et il est hasardeux de s'engager dans de tels projet sans analyse et méthode préalable. Comment décider de la granuralité d'un BP (Business Process) ? Comment choisir les BP à "externaliser" dans l'EAI et ceux qui doivent rester confinés dans une application de gestion classique ? Quelle méthode utiliser, UML ? Sans compter les nouveaux rôles ou concepts que cette technologie (je préfère le terme "démarche") sous-tend : l'urbanisation des SI, la cartographie (rien à voir avec les  SIG ;-) ). Bref, apprendre Biztalk 2004 à quelqu'un n'ayant aucune connaissance des concepts d'EAI, c'est comme mettre une porsche entre les mains d'une personne sans permis. Biztalk 2004 c'est bien, mais encore faut-il savoir pourquoi et à quoi cela sert... Des questions auxquelles nous tenterons de répondre lors du Symposium DNG au mois d'Octobre. 

Session PLYA327 : Platja Barceloneta 

Cette session est une pure merveille. Bizarre, le speaker est haut perché et habillé de rouge et blanc avec une bouée à la main. Les sièges sont en forme de serviettes de bain et les slides ressemblent à une grande bleue aux odeurs de sable chaud... Bon d'accord, j'avoue, je n'ai pas pu résister aux sirènes de la plage. Si seulement toutes les conférences pouvaient se dérouler à 500 mètres de la mer.

Demain, je vous proposerai un TechEd live qui vous intéressera sûrement. J'ai prévu de passer la journée (ou une partie en tout cas) dans les sessions DEV337 (Modeling Distributed Enterprise Applications using UML and Visio Enterprise Architect) DAT401 (Object/Relationnal Mapping as a foundation for ADO.NET Database Access) et CHT006 (Microsoft and Open Source), il va y avoir du sport ... Stay Tuned

 
(le centre commercial Carrefour situé derrière TechEd, non ce n'est pas une blague)

Jeudi

Session DEV337 : Modeling Distributed Application using UML and Visio Architect  

Levé 8h. Début de la Session 8h30. Arrivée à 8h45 (vous aurez remarqué que c'est de plus en plus dur tous les jours). Le speaker se prénomme David Keogh. Pourquoi suivre une telle session ? Tout simplement pour vérifier qu'entre ma dernière expérience de Visio et la version actuelle, Microsoft a apporté des modifications en terme de génération/Synchronisation du code. C'est également la seule session où le terme "UML" apparaît dans l'intitulé (sur un total de 3 ou 400 sessions!). J'y vais sans trop de conviction. La suite me fera regretter un réveil aussi tôt. 

Pour vous schématiser. Il suffit d'imaginer un outil de reconnaissance vocale prenant en input le guide utilisateur de Visio. Et bien, c'est l'effet que m'a fait cette session. Sans vouloir incriminer le speaker (un métier difficile), cette session aurait mérité mieux sur le fond et sur la forme. Tout au long du track, nous avons eu droit à : "Pour créer un Use Case, fichier/nouveau/create". "Pour créer un diagramme de séquence, fichier/nouveau/diagramme"... Bref, un ton monocorde, un rythme très (très) lent, il ne m'en fallait pas plus pour décrocher. Concernant les fonctionnalités, Visio est toujours aussi à la traîne par rapport à Rational XDE. La génération de code n'est toujours pas intégrée à VS.NET, les diagrammes sont, disons-le, visuellement pas très beau. La synchronisation de code est inexistante. Quant au discours et à la stratégie de Microsoft vis à vis d'UML, il est de plus en plus floue. Pas de produit UML novateur annoncé dans les années à venir. L'éditeur est de plus en plus mal à l'aise lorsqu'il s'agit de mettre en avant ce langage de modélisation dont il n'a pas été à l'origine (spécifié par l'OMG). Une session pour rien.  

Session DAT401 : O/R Mapping  with .NET

La seule session TechEd traitant de mapping Objet/Relationnel est annulée et remplacée par SOA. Ca tombe bien. C'est justement un de nos thèmes de prédilection même si on regrettera le peu d'intérêt porté à l'O/R Mapping pendant cette conférence.  

Session SOA (Service Oriented Architecture) 

Yasser Shohoud est le speaker de cette session. Une "software legend" comme diraient certains. Je suis accompagné de Christophe Lauer, Webmaster de DotNet-Fr.org. Le début est assez clair même si Yasser Shohoud n'est pas transcendant dans sa présentation. Après quelques minutes, la session prend une autre tournure. Tout d'abord, le vocabulaire. Yasser insiste sur la nécessite de penser en terme de services et non de processus (Alors que SOA implique justement le contraire). D'où la réaction de Christophe sur son blog (après vérification des slides, une phrase page 5 semble indiquer le contraire). Il montre également un composant .NET Remoting et insiste sur le fait qu'il ne respecte pas le paradigme SOA (car lié à une infrastructure technique). Puis enchaîne sur une démonstration intitulée "Asset Management" qui échoue pour une raison indéterminée. Il finira par  illustrer sa conception de la gestion de version dans SOA : "ne cassez jamais la compatibilité avec vos clients et passez en paramètre de méthode la version actuelle du service cible". Je n'ai pas pu disposer des sources mais voici de mémoire ce qu'il propose (schématisé):

public MyService(TypeEnum version, Structure mesparams, any[])
{
if (version==Versions.V1) { return this.MyServiceV1(mesparams); }
if (version==Versions.V2) { return this.MyServiceV2(mesparams); }
if (version==Versions.V3) { return this.MyServiceV3(mesparams); }
}

Sans commentaire. Voilà pour aujourd'hui. Demain, au menu : "Enterprise Solution Patterns", "Smart Client et WebServices" et "Yukon" (enfin).

Vendredi

Levé 9h30. Température extérieure 30°. Trois sessions de prévues dans la journée mais je n'aurai finalement eu l'occasion d'en suivre qu'une, celle de Yukon. Le présentation "Enterprise Solution Patterns", aux dires de certains, était un condensé des principaux principes d'architectures énoncés dans le PAG (Prescriptive Architecture Guidance) de Microsoft. Je n'aurais donc pas appris grand chose et je n'aurais pas non plus eu l'occasion de vous annoncer des nouveautés. Pas de regret. Quant à "Smart Client et WebServices", un journaliste ayant assisté à la session m'en a dit le plus grand bien. Il a juste regretté que le speaker n'ait pas insisté un peu plus sur le passage des paramètres entre client et serveur (peut-être un des facteurs les plus important dans ce type d'architecture). 

Venons-en à Yukon maintenant. Encore un moment clé de TechEd 2003. La session démarre à 11h tapante, le speaker à des allures de tueur. Genre pit-bull américain picousé à la nicotine Microsoftienne ;-). Le discours quasi militaire est bien ficelé. Les outils un peu moins. Si Yukon est installé sur sa machine, le poison de "l'effet démo" lui, vient perturber les évènements. Le code présenté ne s'exécute pas et cette fichue Assembly ne daigne pas s'enregistrer dans une table SQLServer. Pas très grave, le plus important est là. Nous avons droit à une présentation de choc du genre 200km/h tête dans le guidon sans avoir le temps de prendre une seule note. 

J'avoue avoir réfléchi assez longtemps avant d'écrire ce compte rendu Yukon. En essayant de formaliser le bouillonnement incessant qui règne dans mon petit cerveau à la fin d'une telle session. J'ai deux solutions. Soit je décide de faire les choses proprement et je vous écris une dizaine de pages sur Yukon qui vous permettront réellement de comprendre les (nombreux) enjeux qu'impliquent ce produit. Soit je tente un résumé très sommaire et sans substance histoire de dire que  j'y étais. Je préfère la première option. Non pas que je veuille vous faire encore languir (encore que ;-)), mais Yukon mérite réellement qu'on s'y attarde longuement. Tout ce que je peux vous dire, c'est que Yukon est une base de données intégrant un Runtime .NET (CLR) et fournissant un moteur de mapping Relationnel/XML faisant appel au langage de requête standard XQuery (non vous ne rêvez pas). 

Promis, je vous prépare un tel article. A l'heure où j'écris ces quelques lignes, je n'ai moi même pas réellement fait le point sur la question. Mais à l'heure où on parle de séparation de couches par responsabilité, est-ce vraiment le rôle des données que de gérer des services ? L'effet boite noire ne nous guette t-il pas à travers une telle implémentation ? Microsoft ne nous réinvente t-il pas le SAP à la SQL Server ? Bref, autant de questions auxquelles je tenterai de répondre dans cet article et dans lequel je solliciterai sûrement votre avis  ...

Snif, au revoir Barcelone ...

C'est sur ces quelques mots et non sans une pointe d'amertume que je m'apprête à quitter cette ville magique la tête remplie de souvenirs. Si un jour votre chemin venait à croiser celui de cette magnifique cité, je ne saurais trop vous conseiller de vous arrêter à la Rambla. Une promenade extraordinaire qui vous emmènera au coeur de rues piétonnes uniques et féeriques dans lesquelles se mêlent hommes d'affaires, touristes, punks ou visiteurs TechEd habillés de rouge flashy (finalement, ils ne sont pas si différents des punks dans leur tenue ;-)). Les spectacles de rue et les bars à tapas y sont légion, la bière y coule à flot.

Barcelone est une ville qui nous apprend à être humble. C'est finalement la leçon principale que je retiendrais de TechEd 2003 (bon ok, et aussi le fait que Biztalk exporte du BPEL ;-) ).

Postez vos commentaires ici : http://www.dotnetguru.org/forums

 Les autres comptes rendus : http://www.builder.fr/story/0,,t541-s2137034,00.html,
 http://techupdate.zdnet.fr/story/0,,t381-s2136960,00.html,
 http://techupdate.zdnet.fr/story/0,,t381-s2136959,00.html
,
 mais également http://www.c2i.fr/code.aspx?IDCode=521, http://www.dotnet-fr.org.