Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Arnaud CLERET


Astuces et News : .Net, BizTalk, Team System, SQL ...

Actualités

Visual Studio Talk Show : BizTalk & SOA

Comme annoncé par Florent Santin, nous avons donc enregistré une série de podcast pour le fameux Visual Studio Talk Show avec nos sympathiques amis Canadiens Guy Barrette et Mario Cardinal lors de leur passage sur Paris.

Pour ma part, j'ai donc traité le sujet sur BizTalk Server et les problématiques actuelles liées au SOA qui a été diffusé le 15 octobre dernier et que vous pouvez retrouvé ici 

Actuellement à la PDC, il est possible que vous me retrouviez pour un nouvel enregistrement autour de Oslo ! Wink

Bon podcast à tous !

Renouvellement du titre MVP

Je viens de recevoir il y a quelques minutes de cela le tant attendu mail MVP Award ! Big Smile. Je suis donc renouvelé une année supplémentaire mais cette fois-ci autour des technologies BizTalk Server !

MVP

BizTalk Server

Un grand merci donc à tout ceux qui ont participé de près ou de loin à mon renouvellement !

Wygday : Les grèves n'auront pas eu raison de nous !

Nous sommes donc arrivé hier soir sur Lille avec Guillaume Belmas et Yannick Lejeune pour la seconde édition des Wygday aux cotés de la WygTeam ! Le thème de cette année : "A LA CROISEE DES EXPERTISES SE TROUVE VOTRE INNOVATION"

Wygday

La loi de Moore, énoncée en 1964 par Gordon Moore, ne se limite plus au nombre de transistors par processeurs. Effectivement le nombre de logiciels, outils, technologies ne cessent de croître quel que soit le domaine d’activité. Cela engendre une confusion du marché et très souvent une crainte de non pérennité de vos investissements.
C’est pourquoi nous serons heureux cette année de vous guider dans cette diversité de produits et technologies - principalement Microsoft - au travers de l’expertises de nos speakers qui animeront les sessions du WygDay.
Notre objectif, comme le mentionne le thème central de l’évènement, sera de mettre à votre disposition tous nos retours d’expérience et notre analyse de cette diversité afin de vous aider dans vos choix d’investissement et ainsi guider votre innovation durable !

Nous avons donc eu l'honneur, Guillaume et moi-même, de présenter une session sur le thème : Innovez pour vos architectures SaaS - S+S

Plus qu’une nouvelle mode, les approches SaaS et plus largement S+S occasionnent quelques révolutions au niveau des usages des logiciels mais aussi au sein même de leur architecture.
Dans un monde toujours plus demandeur de performance, de flexibilité et de scalabilité, nous allons voir comment avec les outils d’aujourd’hui il est possible d’augmenter la productivité et la qualité des développements dans l’optique de construire une plateforme S+S stable et évolutive. Et si S+S signifiait en fait SOA + Software Factories… ?

image

Cette journée de session touchant à sa fin, je tenais à remercier tout particulièrement l'ensemble de la WygTeam pour leur accueille et leur sympathie ! Comme quoi, il y a du vrai dans "Bienvenue chez les ch'tis"...

Et je ne sais pas encore ce qu'ils nous ont réservé pour cette soirée mais ce qui est sur c'est que nous ne rentrerons que demain...

Intégration de Repository Factory à Visual Studio 2008

Depuis l'apparition des Software Factories mises à disposition par l'équipe Pattern & Practices et notamment la première version de Web Services Software Factory, nous avions vu apparaître un Guidance Package pour la couche d'accès aux données. Ce Guidance Package a ensuite été extrait de Web Service Software Factory pour donner naissance en octobre dernier à Repository Factory.

Malheureusement, ce dernier n'est proposé que pour Visual Studio 2005 et ne s'intègre pas nativement à Visual Studio 2008 alors que la nouvelle mouture de Web Service Software Factory renommée pour l'occasion en Software Factory : Modeling Edition s'y intègre parfaitement !

Ayant marre de switcher entre mes différentes version de Visual Studio (pas très productif et convivial tout ça...), je me suis attelé à refaire le Guidance Package afin de l'intégrer directement à Visual Studio 2008 et profiter ainsi pleinement de l'ensemble des Software Factories pour un de nos projets en cours de démarrage.

Les modifications apportées à ce Guidance Package sont donc les suivantes :

  1. Création d'un Guidance Package pour Visual Studio 2008
  2. Modification de la version du Framework pour se baser sur .Net 3.5
  3. Signature de l'assembly Microsoft.Practices.Repository.dll afin de pouvoir gérer cette assembly directement dans le GAC comme les Enterprise Library
  4. Ajout des fichiers pdb en sortie de projet pour la gestion du mode debug et du monitoring applicatif

Je vous joint donc à ce post un fichier zip à télécharger et comprenant les sources ainsi que le package msi pour Visual Studio 2008.

Bonne génération de code ! Wink

News : Annonce de BizTalk Server 2006 R3 !

Voici une annonce qui fait plaisir de bon matin ! Big Smile

BizTalk Server 2006 R3 RTM pour le premier semestre 2009

Cette annnonce était fortement attendue suite aux différentes remontées que nous avions faites à Microsoft dans l'attente de la prochaine version qui arrivera avec Oslo...

Cette release intermédiaire va donc permettre (enfin !) : 

  1. Un alignement de BizTalk Server avec la plateforme applicative 2008 de Microsoft : .Net 3.5 et Visual Studio 2008, SQL Server 2008 et Windows 2008
  2. Nouvelle infrastructure de service basée sur l'implémentation UDDI V3 pour la partie registry et repository de services
  3. Différentes améliorations au niveau des pattern d'implémentation SOA, du matériel RFID, de l'interopérabilité SWIFT... et des LOB Adapters

Dans l'attente des premiers tests de la version beta...

Réinitialiser la période d'activation de Windows 2008 et Vista

Voici une ligne de commande bien utile afin de réinitialiser la période d'activiation de Windows 2008 et Vista... Wink

Le tout de base sur "Software Licence Manager", ouvrez une commande windows prompt et tapez :

  • Connaitre le nombre de jour restant : slmgr -dli
  • Réinitialiser pour une période de 60 jours : slmgr -rearm

Attention : l'appel à slmgr est en fait un script vbs et il est donc nécessaire d'attendre le retour de la MessageBox pour voir le résultat et non l'affichage de la console.

Enjoy ! Wink

[EDIT]
Suite à la remarque de Xavier dans les commentaires, je précise que cette manipulation n'est possible que 3 fois d'affilées, soit 180 jours supplémentaires par rapport au nombre de jours initiaux. Attention, cette méthode redonne 60 jours mais ne les cumules pas avec ceux restant avant la manipulation (exemple : si il reste 4 jours, le résultat du rearm sera quand même 60 jours et non 64 jours).

Hyper-V : Impossible d'installer les composants Integration Services avec Windows 2008 32-bit ou 64-bit

Dans le cadre de machines virtuelles basées sur Windows 2008 32-bit ou 64-bit et hébergées dans Hyper-V, il est possible que vous rencontriez un problème d'installation des composants Integration Services correspondant anciennement aux VM Additions de Virtual Server. Il est donc indispensable de procéder auparavant à l'installation de la KB949219 :

Tant que cette KB n'est pas installée, il est impossible d'avoir les drivers des connexions réseaux (entre autres) ! Donc impossibilité de télécharger cette KB depuis le serveur virtuel mais obligation de créer une image ISO ou de graver un CD pour pouvoir l'exécuter sur la machine virtuelle...

Une fois cette KB installée, il devient donc possible d'installer les composants Integration Services et donc d'avoir les drivers de connexion réseau et l'intégration complète dans l'environnement : capture de la souris et autre...

Enjoy ! Wink

BizTalk : Management Pack SCOM 2007 disponible !

Voilà un petit moment que nous l'attendions et il est donc désormais disponible : Microsoft Biztalk Server 2006 Management Pack for SC Operations Manager 2007

Il comprend notamment les points d'améliorations suivants :

  • Suspended Message Alerts
  • Alert Suppression Policy
  • BAM Technical Assistance Alerts
  • BizTalk Message Boxes and Hosts
  • Orchestration Failures
  • Service Monitoring
  • Application Monitoring
  • Monitoring of various aspects of RFID

Ce management pack est surtout attendu pour les nouvelles fonctionnalités type RFID de la version 2006 R2 de BizTalk mais aussi et surtout pour la gestion de la découverte des plateformes BizTalk avec SCOM 2007. En effet, dans le cadre d'architecture mixant sur les mêmes serveurs les services de cluster et la répartition de charge (cas typique de gestion en parallèle des adapteurs MSMQ et Http par exemple...), il était devenu impossible depuis SCOM 2007 de forcer la découverte du noeud passif et cela imposait donc de revenir à MOM 2005 ! Bref, à tester tout ça...

BizTalk : Désactiver le tracking de manière globale

Toujours par le biais du BizTalk User Group , j'en ai profiter pour publier une petite astuce concernant la désactivation de la fonctionnalité de tracking de BizTalk de manière globale.

Vous pouvez visualiser cet article ici.

Bonne lecture à tous.

Limitation de la taille des messages WCF dans IIS

Lors du déploiement de services WCF (Windows Communication Foundation), il est possible de prévoir un hébergement dans IIS avec un mode compatible ASP.NET. Dans ce cadre, il est important de prendre en considération la configuration par défaut du Framework .Net au niveau HttpRuntime et notamment sur la volumétrie des requêtes Http transmisent au serveur.

En effet, le fait d'être en mode compatibilité ASP.NET induit le fait que le service s'exécutera selon la configuration établie dans la section HttpRuntime du fichier web.config ou machine.config. Ci-dessous un extrait du fichier machine.config par défaut :

<configuration>
  <
system.web
>
    <
httpRuntime
      executionTimeout="110
"
      maxRequestLength="4096
"
      requestLengthDiskThreshold="80
"
      useFullyQualifiedRedirectUrl="false
"
      minFreeThreads="8
"
      minLocalRequestFreeThreads="4
"
      appRequestQueueLimit="5000
"
      enableKernelOutputCache="true
"
      enableVersionHeader="true
"
      requireRootedSaveAsPath="true
"
      enable="true
"
      shutdownTimeout="90
"
      delayNotificationTimeout="5
"
      waitChangeNotification="0
"
      maxWaitChangeNotification="0
"
      requestPriority="Normal
"
      enableHeaderChecking="true
"
      sendCacheControlHeader="true
"
      apartmentThreading="false
"
    />
  </
system.web
>
</
configuration>

Il est donc à noté que, par défaut, toute requête émise vers le serveur ne pourra pas dépasser les 4Mo même si la clé maxReceivedMessageSize de WCF est paramétrée selon vos souhaits. En effet, les clés de configuration HttpRuntime prennent le pas sur la configuration System.ServiceModel de WCF définie.

Si ce cas est valable pour la taille des requêtes émises vers le serveur, il en va de même pour les paramètres liés aux optimisations de performances et notamment ici : minFreeThreads...

Pensez donc à modifier les clés HttpRuntime soit au niveau du web.config si vous souhaitez ne l'appliquez qu'a votre application soit au niveau de machine.config si vous souhaitez l'appliquer de manière globale.

Failover BizTalk et MSMQ

Lors de la mise en oeuvre de port de réception basé sur MSMQ, la problématique de haute disponibilité impose de configurer le host BizTalk et MSMQ en mode cluster. En effet, il n'est pas supporter d'avoir des lectures transactionnelles distantes avec MSMQ et c'est donc ce qui impose la mise en cluster.

Lors de la configuration des ressources du cluster, il est donc indispensable de prévoir les bonnes dépendances afin que les ressources MSMQ démarrent avant les ressources BizTalk :

"The MSMQ cluster resource group needs to be restarted before restarting the BizTalk Host cluster resource group during the cluster failover.
In a failover cluster scenario, when a failover is taking place, the MSMQ cluster resource group needs to be restarted before restarting the BizTalk Host cluster resource group. If you fail to do so, the MSMQ receive locations may be disabled. To work around this issue, you can make the BizTalk Host cluster resource group dependent on the MSMQ cluster resource group to ensure that the MSMQ cluster resource group starts before the BizTalk Host cluster resource group. Alternatively, you can restart the BizTalk Host cluster resource group to work around this issue."

Article : Known Issues for the WCF Adapters

Voici donc un point essentiel à prendre en compte dans vos architectures en plus des phases de tests nécessaires afin qu'un incident lié à ce type de problématique ne se pose pas lors d'un basculement du cluster en production.

BizTalk Server Database Optimization et BizTalk Server Operation Guide

Voilà donc deux bibles concernant l'optimisation et l'exploitation d'une plateforme BizTalk Server :

  1. BizTalk Server Database Optimization : cet article orienté base de données par son titre peut être largement appliqué à tout autre serveur applicatif pour bon nombre de bonnes pratiques qu'il contient. Une vrai référence en termes d'optimisation des plateformes BizTalk Server !
  2. BizTalk Server Operation Guide : Plus de 600 pages de retours d'expériences sur les plateformes BizTalk et leur exploitation au quotidien. Un guide à recommander à tout architecte ou administrateur BizTalk !

Bonne lecture à tous.

Implémenter simplement un service Java (JAX-WS)

Bon, je vois déjà les remarques de certains concernant ce billet mais rassurer vous je ne me suis pas converti à Java ! Wink

En fait, l'objectif est plutôt de communiquer une manière simple d'implémenter un Web Service basé sur JAX-WS à des fins de démos ou prototypes d'interopérabilité sans avoir à sortir une artillerie lourde du type serveur d'application, environnement de développement...

D'ailleurs, un grand merci à Stève Sfartz qui a pu nous transmettre cette approche lors des TechDays 2008. Big Smile

Seul pré-requis à cette approche : l'installation du JDK que vous pouvez télécharger ici.
Une fois installé, il est juste nécessaire de créer les trois fichiers suivants :

  1. Fichier d'implémentation du service : DemoService.java
  2. Fichier de script de compilation du service : Compile.bat
  3. Fichier de script de lancement et d'hébergement du service : Run.bat

Dans l'exemple suivant, le service exposera une méthode Notify prenant un paramètre d'entrée correspondant au message à afficher dans la console.

Dans le fichier DemoService.java, correspondant à l'impémentation de ce service, il suffit d'ajouter le code ci-après qui vous l'avouerez reste très proche d'une implémentation .Net C#. Deux méthodes sont à distinguer :

  1. la méthode Notify qui correspond à l'opération exposée par le service et affiche sur la console le message transmis.
  2. la méthode Main qui correspond au point d'entrée du programme et permet de publier le endpoint du service.

package Service;

import javax.jws.*;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.Endpoint;

@WebService(targetNamespace = "http://services.demo.fr/JAX-WS",
            name="AlertDispatcher",
            serviceName="DemoService")
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,
             use=SOAPBinding.Use.LITERAL)
public class DemoService
{
   @WebMethod(operationName="Notify", action="urn:Notify")
   public void Notify(@WebParam(name="message") String a)
   {
      System.out.println("Message : " + a);
   }

   @WebMethod(exclude=true)
   public static void main(String[] args)
   {
      String endpointUri = "
http://localhost:8585/";
      Endpoint.publish(endpointUri, new DemoService ());
      System.out.println("Publishing JAX-WS at " + endpointUri);
   }
}

Une fois l'implémentation du service terminée, il est nécessaire de compiler la solution avant de l'exécuter.
Dans le fichier Compile.bat, correspondant au script de compilation, il suffit d'ajouter le code suivant :

set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_04\"
set PATH=%ATH%;%JAVA_HOME%\bin

javac *.java

move *.class Service

wsgen -cp . Service.DemoService

pause

Seul paramètre à modifier si besoin est le nom de la classe d'implémentation du service. Dans ce cas précis : DemoService.

Une fois la compilation effectuée, il ne reste plus qu'a exécuter le service en le hostant en mode console.
Dans le fichier Run.bat, correspondant au script de lancement et d'hébergement du service, il suffit d'ajouter le code suivant :

set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_04\"
set PATH=%ATH%;%JAVA_HOME%\bin

java Service.DemoService

pause

Comme précédemment, le seul paramètre à modifier si besoin le nom de la classe d'implémentation du service. Dans ce cas précis : DemoService.

Le service est donc maintenant hosté et prêt à être consommé :

Le contrat WSDL correspondant au service est disponible, dans notre cas, à l'adresse suivante : http://localhost:8585/DemoService?wsdl

La définition des données attendues par l'opération Notify est faite dans le schéma XSD se trouvant à l'adresse suivante : http://localhost:8585/DemoService?xsd=1

Il est donc désormais possible de consommer se service depuis une application Java mais aussi .Net avec deux approches différentes basées soit sur un client de type Web Service soit un client de type WCF en basicHttpBinding.
Pour ce faire, au travers de Visual Studio, il suffit de faire un Add Service Reference :

Une fois le service ajouté, la classe proxy et le fichier de configuration WCF générés, il est maintenant possible d'invoquer le service en quelques lignes de code :

AlertDispatcherClient client = new AlertDispatcherClient();
client.Notify("Interop JAX-WS / WCF is good !");
client.Close();

Au niveau de la configuration WCF et notamment du endpoint client, le constat est que la communication entre le service et le client sera de type basicHttpBinding sans autre élément particulier ou spécifique :

<?xml version="1.0" encoding="utf-8" ?>
<
configuration
>
  <
system.serviceModel
>
    <
client
>
      <
endpoint
        name="AlertDispatcherPort
"
       
address="http://localhost:8585/DemoService" 
       
binding="basicHttpBinding
"
        contract="DemoService.AlertDispatcher"
/>
    </
client
>
  </
system.serviceModel
>
</
configuration>

Il est donc maintenant possible d'exécuter le client et de constater qu'un message s'affiche bien sur la console du service JAX-WS :

Voilà, l'implémentation du serveur comme du client est terminée !

Le constat de cet exemple est qu'il est maintenant simplissime de monter un scénario d'interopérabilité entre .Net et Java sans pour autant faire appel à une artillerie lourde !

L'exemple de code exposé dans ce post est disponible aussi en téléchargement via le fichier zip attaché : télécharger.

Enjoy ! Wink

Bande dessinée : A la quête de SOA

Microsoft en collaboration avec François Cointe publie cette bande dessinée dans le but de vulgariser les concepts de la SOA.
Une très belle réussite !

TechDays 2008 : Webcast des sessions

Vous le savez les webcast des TechDays 2008 sont disponibles depuis quelques jour sur le site suivant : http://www.microsoft.com/france/vision/mstechdays08/

Pour ceux qui serait intéressé par les sujets de l'industrialisation et du SOA, voici les deux sessions que j'ai eu l'honneur d'animer :

Industrialisation : Welcome to the real world co-animé par Guillaume Belmas et Pierre Couzy
Lors de cette session, venez découvrir un exemple concret d’industrialisation logicielle au travers notamment de Visual Studio Team System et des Software Factories.Basée sur le retour d’expérience d’un projet du secteur financier, cette session présentera différents aspects de l’industrialisation :
     - Framework d’entreprise
     - Capitalisation et qualité avec les Software Factories
     - Automatisation des processus
Une industrialisation concrète et pragmatique d’un projet réel !

ESB - SOA : Les stratégies d'interconnexion du SI co-animé par Stéphane Goudeau
Présentation des stratégies de création et d'exposition des services au sein du SI , et focus sur WCF (Windows Communication Foundation), et les adapteurs BizTalk. Disponible depuis la sortie du Framework .NET 3.0, WCF facilite la communication entre applications tout en respectant les principes SOA. Dans cette session, nous vous proposons de présenter divers scénarios d'utilisation de WCF, en entreprise, à partir de retours d'expérience projet :
     - Mise en oeuvre de WCF pour échanger des flux en environnement .Net : dimensionnement, patterns,...
     - Interopérabilité via les Services Web avancés (JAX-WS,...) ou les adaptateurs WCF pour BizTalk (SAP BizTalk Adapter,...)
     - Adaptation des flux inter-applications en exploitant les mécanismes natifs d'extensibilité de WCF

Si ces deux sujets vous ont intéressés, vous pouvez aussi poursuivre par le webcast de la session animée par Guillaume Belmas et Patrick Baud sur l'intégration de BizTalk et Team System : Comment tirer parti de Team System pour des projets BizTalk ?

BizTalk : Optimisation des adapters WCF

Toujours par le biais du BizTalk User Group , j'en ai profiter pour publier une petite astuce concernant l'optimisation des adapters WCF dans BizTalk et les implications à les utiliser dans leur configuration par défaut.

Vous pouvez visualiser cet article en cliquant ici.

Bonne lecture à tous.

BAM Interceptor : Gestion des namespaces par défaut

Puisque je viens de vous annoncer l'ouverture du BizTalk User Group, j'en ai profiter pour publier une petite astuce concernant la gestion des namespaces par défaut dans la configuration du BAM Interceptor.

Vous pouvez visualiser cet article en cliquant ici.

Pour rappel le BAM Interceptor permet de capturer des données métiers sur des flux synchrones gérés au travers de WCF et/ou de WF en les agrégeant au sein de la base de données BAMPrimaryImport de BizTalk dans l'objectif de fournir une vue temps réel sur les indicateurs métiers d'un système d'information.

Bonne lecture à tous.

News : BizTalk User Group

Voilà une news qui me fait plaisir et je tiens à remercier particulièrement Rock Baduel pour son initiative.
La communauté française des utilisateurs BizTalk : BizTalk User Group est donc en ligne depuis près d'un mois et je vous invite donc tous à vous y rendre !

Inscrivez-vous

Fréquence MSDN : Emission #2

Fréquence MSDN

Comme annoncé par Coq il y a de cela quelques jours, la seconde émission de Fréquence MSDN s'est tenue le lundi 26 novembre 2007 à 11h. J'ai eu l'honneur d'être invité par Eric Le Loc'h (IAV Team System) pour discuter de mes retours d'expériences sur Team System mais aussi et surtout de l'intégration de BizTalk Server 2006 avec Team Build.

L'enregistrement de cette émission devrait être disponible d'ici la fin de semaine mais vous pouvez d'ores et déjà consulter ce post de synthèse écrit par Nicolas Boonaert pour vous faire une idée des thèmes abordés.

Merci encore à l'équipe MSDN de m'avoir convié à cette émission ! Wink

BizTalk Server : Comment recréer les compteurs de performances manuellement

Voilà une astuce qui m'a été bien utile suite à la perte de l'ensemble des compteurs de performances sur ma machine virtuelle. L'ensemble du procédé est très bien décrit sur le blog BizTalk Performance et je pousse donc juste cette info : How to manually recreate missing BizTalk performance counters

Plus de Messages Page suivante »


Les 10 derniers blogs postés

- Emportez votre sélection de la MSDN dans la poche ? par Blog de Jérémy Jeanson le il y a 11 heures et 31 minutes

- [ #Office365 ] Pb de connexion du flux Yammer ajouté à un site SharePoint par Le blog de Patrick [MVP SharePoint] le il y a 16 heures et 52 minutes

- NFluent & Data Annotations : coder ses propres assertions par Fathi Bellahcene le il y a 17 heures et 1 minutes

- Installer un site ASP.net 32bits sur un serveur exécutant SharePoint 2013 par Blog de Jérémy Jeanson le 04-17-2014, 06:34

- [ SharePoint Summit 2014 ] Tests de montée en charge SharePoint par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 20:44

- [ SharePoint Summit 2014 ] Bâtir un site web public avec Office 365 par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 18:30

- Kinect + Speech Recognition + Eedomus = Dommy par Aurélien GALTIER le 04-16-2014, 17:17

- [ SharePoint Summit 2014 ] Une méthodologie simple pour concevoir vos applications OOTB SharePoint de A à Z par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 16:51

- //Lean/ - Apprendre à faire des Apps Windows universelles par Blog de Jérémy Jeanson le 04-16-2014, 12:57

- Une culture de la donnée pour tous… par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 11:00