Je vous invite à consulter les deux posts rédigés par mon associé, Dave NOLTING, co-fondateur de ReachSOA (www.reachsoa.fr) concernant le MDM (Master Data Management). Ces deux posts illustrent:
– Pour le premier, la mise en oeuvre du MDM avec SQL Server 2008 R2 MDS (Master Data Services). Vous découvrirez dans ce post comment modéliser les données du MDM et les exposer aux applications du SI (http://bit.ly/g5VZjX)
– Le second post est quant à lui consacré à la mise en oeuvre d’un MDM haute performance grâce à la combinaison des technologies AppFabric, BizTalk et Dynamics AX (http://bit.ly/gBwB5k).
Bonne lecture ![]()
Classé dans:AppFabric, BizTalk, MDM | Leave a Comment
Tags:AppFabric, BizTalk, MDM
Lors des MS TechDays 2011 (8, 9 et 10 février 2011), j’ai co-animé (avec Benjamin Guinebertière de MS et Daniel Pham de Rok Solutions) une session illustrant l’automatisation des processus de l’entreprise grâce aux technologies Microsoft (WF, WCF, AppFabric, BizTalk ainsi qu’avec l’outil ROK développé par ROK Solutions).
Lors de cette session, nous avons illustré (entre autres sujets) l’utilisation du BAM de BizTalk Server pour suivre l’ensemble du processus de prise de commande utilisé comme scénario de démonstration.
Pour ceux qui n’étaient pas présents aux TechDays et en attendant la sortie du webcast (fin mars certainement), voici quelques liens complémentaires permettant de visualiser le BAM en action. 3 vidéos :
- Définition du BAM grâce à Excel : définition des indicateurs, des mesures et des dimensions d’analyse:
http://cid-034bbd9ec4e51939.office.live.com/embedicon.aspx/Public/ARC305/TD11-ARC305-BAM1.wmv
- Visualisation des indicateurs du BAM dans le Portail BAM de BizTalk et dans une page Web ASP.Net
http://cid-034bbd9ec4e51939.office.live.com/embedicon.aspx/Public/ARC305/TD11-ARC305-BAM2.wmv
- Visualisation du BAM grâce au controle PivotViewer de SilverLight, illustré par l’intégration dans l’outil ROK
http://cid-034bbd9ec4e51939.office.live.com/embedicon.aspx/Public/ARC305/TD11-ARC305-BAM3.wmv
Lors de la session nous avons cité différents outils facilitant l’utilisation du BAM. Voici des informations détaillées sur ces outils:
- Génération d’une API typée : le BAM BizTalk est livré avec une API faiblement typée utilisable depuis n’importe quel client .Net et permettant d’enrichir le BAM. L’inconvénient majeur de cette API est justement son faible typage et ainsi son utilisation dans une application n’est pas toujours facilitée. Je vous conseille vivement d’utiliser le projet Codeplex http://generatetypedbamapi.codeplex.com/ afin de générer, à partir du fichier Excel de définition BAM, une API fortement typée,
- Génération d’un service WCF : si vous souhaitez que des applications non .Net enrichissent le BAM (applications non .Net), vous pouvez également produire un service WCF à partir de la définition du BAM. Vous pouvez utiliser le projet Codeplex : http://bmsrvgen.codeplex.com/
- Intercepteurs : pour rappel, l’enrichissement du BAM est également possible grâce à des intercepteurs (= sondes) pouvant être accostés à des workflows WF, des services WCF ou des flux BizTalk,
- Concernant la consommation des données du BAM (pour leur restitution dans une application, un dashboard, …), il est bien évidemment toujours possible de requêter directement la base de données SQL Server de stockage du BAM (base de données BAMPrimaryImport). Toutefois, je conseille souvent de créer un projet de type WCF Data Services, exposant les données du BAM, et pouvant être consommé par toute application (notamment Silverlight).
N’hésitez pas à laisser un commentaire pour toute question complémentaire ou demande de renseignement.
Classé dans:BizTalk | Leave a Comment
Tags:TechDays; BizTalk; BAM
EsbExceptionDb : backup BizTalk
L’ESB Toolkit de BizTalk (quelle que soit la version) contient un excellent pattern de gestion d’erreurs, reposant notamment sur une base de données pour le stockage des erreurs survenues dans l’environnement. Il s’agit de la base de données SQL Sever EsbExceptionDb (si vous avez gardé le nom par défaut).
Cette base de données contient notamment:
– Les erreurs survenues : détail de l’erreur, message(s) en erreur, …
– Les actions réalisées sur ces erreurs : est-ce que l’erreur a été traitée par un opérateur, est-ce que le message a été relancé dans le système.
Cette base de données devient donc tout aussi critique que les autres bases de données BizTalk et il convient d’adopter une stratégie de sauvegarde adaptée.
Vous pouvez certes créer un plan de maintenance pour réaliser le backup ‘standard’ SQL Server mais je vous conseille d’opter pour le backup BizTalk : le job de backup BizTalk Server effectue les sauvegardes des bases de données BizTalk (en garantissant une cohérence dans les sauvegardes de toutes les bases de données) et vous pouvez le configurer pour qu’il intègre également des bases tierces. Voici comment procéder pour la based de données EsbExceptionDb.
1) Créer la table MarkLog dans la base EsbExceptionDb
Lorsque le job de Backup BizTalk s’exécute sur une base de données, et avant de réaliser le backup effectif, il met à jour le contenu de la table MarkLog. Cette table doit donc être présente dans la base EsbExceptionDb (comme dans toutes les autres bases de données intégrées au job de Backup).
Pour créer cette table, exécutez simplement le script nommé Backup_Setup_All_Tables.sql situé dans le répertoire Schema du répertoire d’installation de BizTalk.
2) Créer les procédures stockées dans la base EsbExceptionDb
Le backup effectif de la base de données et la mise à jour de la table MarkLog sont effectués par un ensemble de procédures stockées devant être créées dans la base EsbExceptionDb.
Pour cela, exécutez le script Backup_Setup_All_Procs.sql situé lui aussi dans le répertoire Schema du répertoire d’installation de BizTalk.
3) Configurer le job de backup
Afin que le job de backup BizTalk intègre la base EsbExceptionDb dans le processus de sauvegarde, vous devez simplement mettre à jour la table adm_OtherBackupDatabases de la base de données BizTalkMgmtDb :
Ajoutez une entrée dans cette table pour votre base de données comme illustré ci-dessous :
Vous devez bien entendu personnaliser l’occurrence ajoutée à la table pour qu’elle corresponde à votre environnement :
– Le champ ServerName doit contenir le nom de l’instance SQL Server,
– Le champ BTSServerName doit contenir le nom du serveur BizTalk.
4) Tester le job
Exécutez ce job pour tester la sauvegarde. Vous obtiendrez un fichier de sauvegarde pour la base EsbExceptionDb : en configuration traditionnelle, vous aurez un full backup une fois par jour et un backup des logs toutes les 15 minutes.
Bonne pratique
Bien entendu cette procédure s’applique à toutes les bases de données tierces (base de configuration, données de transcodification, autres bases de données de l’ESB Toolkit…).
C’est une bonne pratique d’utiliser le job de backup BizTalk car il assure une cohérence dans les sauvegardes. Si vous utilisez le BizTalk Log Shipping pour un site de secours, toutes les bases de données sauvegardées par le job BizTalk seront automatiquement restaurées sur le site de secours sans effort. ![]()
Classé dans:BizTalk, ESB | Leave a Comment
MVP BizTalk 2010
C’est avec beaucoup de fierté que j’ai reçu, le 1er juillet,et pour la première fois, ma nomination en tant que MVP BizTalk. Je rejoins la communauté des MVPs BizTalk et compte bien profiter des avantages de cette nomination.
Ce billet est l’occasion de remercier les membres de la communauté BizTalk française ainsi qu’Eric Ortiz (Microsoft France) qui a proposé ma nomination et qui, pour rappel, à écrit la préface de mon livre BizTalk Server 2009 (http://tinyurl.com/livreBizTalk2009).
![]()
Classé dans:BizTalk, MVP | Leave a Comment
Tags:BizTalk, MVP
BizTalk peut, via l’adapter POP3, réceptionner des messages envoyés dans une boîte aux lettres. BizTalk scrute la boîte aux lettres, extrait l’email (le supprime de la boîte) et, en fonction de la configuration de l’emplacement de réception, récupère le body du mail et les attachements.
Lorsqu’un message est publié dans la MessageBox en provenance d’une boîte aux lettres, son contexte contient des propriétés spécifiques de l’adapter POP3 (namespace http://schemas.microsoft.com/BizTalk/2003/pop3-properties), notamment :
- Le sujet du mail (Subject)
- L’émetteur du mail (From)
- Le ou les destinataires (To)
La liste complète des propriétés contextuelles est ici : http://msdn.microsoft.com/en-us/library/aa560937.aspx
Vous pouvez ainsi lire ces propriétés pour procéder à des traitements particuliers sur les messages, soit pour les router vers des applications ou destinataires (grâce à des filtres), soit pour construire de nouveaux messages via une orchestration par exemple.
L’un de mes clients utilise ce mécanisme dans le scénario suivant:
- Des scanners de documents réceptionnent des documents papier et produisent des PDF;
- Les PDF produits sont envoyés par email (en attachement) à une boîte aux lettres générique;
- BizTalk écoute cette boîte aux lettres générique. Le mail et les PDF en attachement sont réceptionnés dans la MessageBox et traités par une orchestration;
- Chaque PDF est ensuite déposé dans une arborescence de répertoire ou dans une librairie documentaire d’une GED.
Le travail de récupération des PDF en attachement et d’envoi dynamique dans un répertoire ou une librairie documentaire d’une GED est réalisé via une orchestration et un port d’envoi dynamique.
Pour déterminer l’emplacement de dépôt des PDF réceptionnés, l’orchestration se sert du contenu de la propriété POP3.To. Cette propriété contient l’adresse email de la boîte aux lettres source. En fonction de son contenu, le chemin du répertoire de dépôt peut être déterminé (c’est une règle de gestion du client).
La lecture de la propriété est effectuée dans l’orchestration grâce une shape Expression et le code suivant : msgScanner(POP3.To).
Tout fonctionne bien car la propritété POP3.To est toujours présente dans le contexte… sauf dans certains cas !
En effet, la propriété POP3.To n’est pas dans le contexte du message si le contenu du champ “To” de l’email est trop volumineux. Dans certains scénarios métiers chez ce client, le scanner envoi le PDF à d’autres destinataires en plus de la BAL générique.
Lors de la réception du mail, l’adapter POP3 tente de promouvoir la propriété To mais ne peut le faire car son contenu excède la limite des 256 caractères d’une propriété promue. De ce fait, la propriété n’est pas dans le contexte…
Dommage que la propriété ne soit pas tout de même présente mais non promue (car dans ce cas, il n’y a pas la limite des 256 caractères).
Classé dans:BizTalk | Leave a Comment
Tags:BizTalk, POP3, Promotion
Tout le monde sait comment promouvoir une propriété depuis un composant de pipeline BizTalk (méthode Promote de la classe Context).
Mais savez vous comment dé-promouvoir une propriété qui est déjà promue ?
C’est tout simple, il suffit d’écrire de nouveau la propriété dans le contexte avec la méthode Write de la classe Context.
Ne pas confondre avec la “démotion” de propriétés qui elle permet de prendre une donnée dans le contexte d’un message pour l’écrire dans le body du message.
Classé dans:BizTalk | 1 Commentaire
Tags:BizTalk
Les webcasts des différentes sessions des TechDays 2010 sont disponibles sur le site Microsoft depuis le début de la semaine.
L’occasion de vous indiquer que la session ARC204 “Mettre en place un bus de service d’entreprise avec BizTalk Server 2009 et AppFabric” que j’ai co-animé avec Benjamin Guinebertière de Microsoft est également visualisable.
Pour consulter cette vidéo sur le site Internet de Microsoft c’est ici.
Classé dans:AppFabric, BizTalk, ESB | Leave a Comment
Tags:AppFabric, BizTalk, ESB, TechDays
En attendant la publication des webcasts des TechDays 2010, vous pouvez consulter la vidéo des démonstrations publiée par Benjamin Guinebertière (http://tinyurl.com/yb76p43).
Je vous propose maintenant de télécharger le code source des démonstrations:
- Solution BizTalk 2009 + ESB Toolkit
- Solution Windows Azure AppFabric + Windows Server AppFabric
Le code source est disponible ici : http://cid-034bbd9ec4e51939.skydrive.live.com/browse.aspx/Public/ARC204
Si vous avez des questions pour comprendre le code source et le faire fonctionner, laissez un commentaire sur ce post.
Classé dans:BizTalk, ESB Guidance | 4 Commentaires
Tags:BizTalk, TechDays
Je vous parlais dans ce post (http://blog.noveli.fr/2009/12/10/livre-biztalk-en-franais/) de mon livre BizTalk Server 2009 publié aux éditions ENI.
Ce livre est désormais disponible à la vente en suivant ce lien : http://tinyurl.com/livreBizTalk2009
Vous pouvez également retrouver le livre lors des TechDays 2010 (8, 9 et 10 février 2010) à Paris :
- Sur le stand des éditions ENI
- Lors des jeux concours organisés par Microsoft pour gagner des exemplaires du livre.
Classé dans:BizTalk | 2 Commentaires
Le SP1 de BizTalk Server 2006 R2 est disponible depuis hier. Il arrive finalement plus tôt que prévu car tout le monde l’attendait en même temps que BizTalk 2009 R2. Bonne nouvelle !
Pour le télécharger : http://www.microsoft.com/downloads/details.aspx?FamilyID=1768f7a3-d843-4f5b-aba7-b3d72892c16f&displaylang=en
Classé dans:BizTalk | Leave a Comment
Entrées récentes
- MDM avec AppFabric, BizTalk et SQL Server 2008 R2 MDS
- Retour sur la session ARC305 des TechDays 2011
- EsbExceptionDb : backup BizTalk
- MVP BizTalk 2010
- La propriété POP3.To n’est pas toujours présente dans le contexte
- Dé-promouvoir une propriété promue
- Webcast TechDays 2010 : session ARC204
- Code source de la session TechDays 2010 ARC204 – ESB
- Livre BizTalk Server 2009 disponible
- BizTalk Server 2006 R2 SP1 disponible
- Webcasts Integration RoadShow
Catégories
- AppFabric (2)
- BizTalk (46)
- Compétences (2)
- ESB (2)
- ESB Guidance (5)
- MDM (1)
- MVP (1)
- OpenXML (1)
- Wcf (1)
- Windows (1)
Archives
- avril 2011
- février 2011
- juillet 2010
- juin 2010
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- novembre 2009
- octobre 2009
- septembre 2009
- juillet 2009
- mai 2009
- avril 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juin 2008
- avril 2008
- février 2008
- janvier 2008
- octobre 2007
- septembre 2007
- août 2007
- juin 2007
- mai 2007
- mars 2007
- février 2007
