dotnethub-nservicebus

Report
NServiceBus, l’”ESB” léger pour tous !
Steve Degosserie – 6 Mai 2010
Tout ce que vous avez toujours voulu savoir sur les
communications fiables dans un système distribué 
Prochaines sessions :


16 juin : Mini XP Days Wallonie 2010
24 juin : Microsoft Community Day 2010
 Introduction to NServiceBus (English)
3








Présentation de NServiceBus
Concepts & Briques de base
Processus hôte
Modèles de messaging
Messaging fiable
Processus longs
Intégrations
Outils
4

Fondateur de DotNetHub 



Freelance Software Architect –Yoot
Expertise : Framework & API Design, ORM, IOC, AOP
Focus actuel:






Domain-Driven Design (DDD)
Distributed System Design (SOA / EDA)
Functional & Concurrent Programming (F#)
Domain-Specific Languages (DSL)
Blog : http://yoot.be
Twitter : @stiiifff
5
 Présentation de NServiceBus







Concepts & Briques de base
Types d’hébergements
Modèles de messaging
Messaging fiable
Processus longs
Intégrations
Outils
6
Udi Dahan – The Software Simplist
Blog : http://www.udidahan.com
Twitter : @udidahan

Créateur de NServiceBus, expert mondial en SOA

Version 2.0 : Mars 2010
 Host générique
 Facile à configurer
 Extensible

Futur : Version 2.1
 Support d’autres technos de queuing que MSMQ
 Amélioration du Timeout Manager
7
Un Bus de services d'entreprise (“Enterprise Service
Bus”)






Open Source
Gratuit
Léger
Fiable
Sécurisé
Haute-performance
… permettant de développer des systèmes
distribués.
8
Et un “Enterprise Service Bus”, késako ?



Type d’architecture ?
Un produit ?
Ensemble de technologies ?
Une couche d’abstraction permettant
l’implémentation d’architectures de type SOA.
9
Communication synchrone  nombreux
problèmes potentiels:

Serveur down  erreur / message perdu
 On réessaie plus tard !


Timeouts
Couplage
 Temps de réponse
 Fiabilité
 Configuration
10
Communication asynchrone uni-directionnelle
(“One-way Messaging”)


Messages persistents (par ex. MSMQ)
Opérations transactionnelles sur les messages
stockés
 Erreur  message reste dans la queue

Faible couplage
 Communication “fiable”
11
Présentation de NServiceBus
 Concepts & Briques de base
 Modèles de messaging
 Messaging fiable
 Processus longs
 Intégrations
 Outils

12
Infrastructure transportant les messages.




IBus
Sécurisable
“Bus logique”
“Fluent” Config
13
Unité de base pour tout type d’information qui
transite sur le Bus.



Typage fort
“Marker interface” IMessage
Implémentation
 Classe
 Interface
14
Composant qui traite des messages d’un ou
plusieurs types.





IMessageHandler<T>
IHandleMessages<T>
“Injectables”
Zero config
Transactionnel
15
Abstraction de la technologie de transfert de
messages (ITransport).



MSMQ par défaut
Windows Azure en développement
Autres à venir
16
Présentation de NServiceBus
 Concepts & Briques de base
 Processus hôte
 Modèles de messaging
 Messaging fiable
 Processus longs
 Intégrations
 Outils

17
Diverses possibilités d’hébergement:




Console
Service Windows
Application WinForms / WPF
Application Web ASP.NET
Config 100% manuelle
18
NServiceBus.Host.exe : Processus hôte
générique


Console ou Service Windows
Configurations types:
 Client / Server
 Publisher

Auto install:
 MSMQ / MSDTC / Performance Counters
19
Support des Profils de configuration




Lite
Integration
Production
Custom
20
Présentation de NServiceBus
 Concepts & Briques de base
 Processus hôte
 Modèles de messaging
 Messaging fiable
 Processus longs
 Intégrations
 Outils

21
11 idées reçues sur les systèmes distribués
1.
2.
3.
4.
5.
6.
Le réseau est fiable
Les temps de latence restent constants
La bande passante est suffisante
Le réseau est sécurisé
La topologie du réseau est figée
L’Administrateur saura quoi faire
22
11 idées reçues sur les systèmes distribués
Le coût des communications réseau reste
négligeable
8. Le réseau est homogène
9. Le système est atomique / monolithique
10. Le système est fini / figé
11. La logique métier peut et doit être
centralisée
7.
23
Message à sens unique:



“One way” / “Fire & Forget”
Client envoie un msg, et continue à travailler
Messages identifiables par un Id
24
L’utilisation de messages à sens unique évitent
les problèmes de couplage




Technologique : XML
Temporel : Messages asynchrones
Afférent / Efferent : Contrats
Spatial : Configuration
25
Chaque message contient l’adresse de son
émetteur. Permet au destinataire de:



Répondre 
Ne pas devoir au préalable connaître l’adresse
de l’émetteur du message reçu
A l’émetteur de spécifier une adresse de
retour alternative (“Reply-to”)
26
Producteur / Consommateur
27
Présentation de NServiceBus
 Concepts & Briques de base
 Processus hôte
 Modèles de messaging
 Messaging fiable
 Processus longs
 Intégrations
 Outils

28
29
Présentation de NServiceBus
 Concepts & Briques de base
 Processus hôte
 Modèles de messaging
 Messaging fiable
 Processus longs
 Intégrations
 Outils

30
Appelés “Sagas”
31
Présentation de NServiceBus
 Concepts & Briques de base
 Processus hôte
 Modèles de messaging
 Messaging fiable
 Processus longs
 Intégrations
 Outils

32
33
Présentation de NServiceBus
 Concepts & Briques de base
 Processus hôte
 Modèles de messaging
 Messaging fiable
 Processus longs
 Intégrations
 Outils

34
35
“One more thing …”
36
NServiceBus est l’outil idéal pour
l’apprentissage et la mise en pratique d’une
architecture de type événementielle sur la
plate-forme .Net




Event-Driven Architecture (EDA) = SOA 2.0
Evénéments au lieu d’opérations
Chorégraphie au lieu d’orchestration
Couplage faible / Systèmes distribués
37
Questions ? 
38
Merci et à bientôt !
39

similar documents