Télécharger la présentation
1
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é
2
NServiceBus, l’ “ESB” léger pour tous !
DotNetHub – Steve Degosserie 6 mai 2010 NServiceBus, l’ “ESB” léger pour tous !
3
DotNetHub Prochaines sessions : 16 juin : Mini XP Days Wallonie 2010
24 juin : Microsoft Community Day 2010 Introduction to NServiceBus (English)
4
Agenda Présentation de NServiceBus Concepts & Briques de base
Processus hôte Modèles de messaging Messaging fiable Processus longs Intégrations Outils
5
Steve Degosserie 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 : Twitter ORM : Nhibernate Framework & API Design : Design Patterns, Inversion of Control contains (Caste Windsor), SOLID, AOP
6
Agenda Présentation de NServiceBus Concepts & Briques de base
Types d’hébergements Modèles de messaging Messaging fiable Processus longs Intégrations Outils
7
Intro – Historique & Roadmap
Udi Dahan – The Software Simplist Blog : Twitter 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
8
Intro – NServiceBus, c’est quoi ?
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. “Messaging” => Communication basée sur des messages, asynchrones NServiceBus is a communication framework
9
Intro – ESB ?! 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. Les définitions d’”ESBB” varie, et le terme est malheureusement surchargé. Les vendeurs essaient bien évidemment chacun de vendre leur dernier produit en y associant les derniers termes à la mode. C’est en effet dans l’implémentation de systèmes distribués basé sur une architecture de type SOA qu’un ESB trouve son utilité principale. On peut utiliser un ESB comme simple abstraction de la couche de communication mais ce n’est pas le but premier.
10
Intro – Hello DotNetHub - WCF
Communication synchrone nombreux problèmes potentiels: Serveur down erreur / message perdu On réessaie plus tard ! Timeouts Couplage Temps de réponse Fiabilité Configuration Mise en évidence des problèmes liés aux communications de type synchrone Formes de couplage: Afférent (Français ?) Efferent (Français ?) Temporel Spatial Plate-forme WCF a été designé d’abord par rapport à des protocoles de type RPC (TCP / Remoting, HTTP / Web Services, …). Le support de MSMQ n’a été rajouté que plus tard (dixit Udi Dahan), et le design n’est donc pas pensé pour du One-Way Messaging … Même s’il y a un semblant de One-Way Messaging dans WCF, il y a pas mal de problèmes liés à celui-ci. Le support des extensions WS-* part le binding WsHttp2007 WCF (Reliable Messaging, Transactions) ne rend pas la communication plus “fiable”, au contraire !!!
11
Intro – Hello DotNetHub - NSB
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” -> Rend le système plus résistant dans son ensemble
12
Agenda Présentation de NServiceBus Concepts & Briques de base
Modèles de messaging Messaging fiable Processus longs Intégrations Outils
13
Concepts – Bus Infrastructure transportant les messages. IBus
Sécurisable “Bus logique” “Fluent” Config Le bus est en fait une abstraction il est réparti sur N machines physiques. De plus, au niveau implémentation, le Bus est séparé de la partie Transport (MSMQ, Azure). La configuration se fait grâce à une API “Fluent” (aisée). Types de sérialization supportés: - XML Binaire Le design distribué par nature de NServiceBus est propice au “Scale-out” on rajoute des serveurs sur lesquels on déploie l’application pour pouvoir servir plus de clients. Expose différents modèles de Messaging: - One-way - Request / Response - Publish / Subscribe
14
Concepts – Messages Unité de base pour tout type d’information qui transite sur le Bus. Typage fort “Marker interface” IMessage Implémentation Classe Interface Typage les messages sont typés ! Ils transportent une sémantique … il ne s’agit pas d’information quelconque ! Contraster l’implémentation class vs interface Versioning No logic in messages Il existe des extension methods pour facilement travailler avec des interface-based messages.
15
Concepts – Message Handlers
Composant qui traite des messages d’un ou plusieurs types. IMessageHandler<T> IHandleMessages<T> “Injectables” Zero config Transactionnel Transactionnel -> Dépend du type de messages / de la technologie de transport utilisée Pas besoind de créer explicitement un TransactionScope !
16
Concepts – Transport Abstraction de la technologie de transfert de messages (ITransport). MSMQ par défaut Windows Azure en développement Autres à venir
17
Agenda Présentation de NServiceBus Concepts & Briques de base
Processus hôte Modèles de messaging Messaging fiable Processus longs Intégrations Outils
18
Hosting – Self-Hosting
Diverses possibilités d’hébergement: Console Service Windows Application WinForms / WPF Application Web ASP.NET Config 100% manuelle
19
Hosting – Generic Host NServiceBus.Host.exe : Processus hôte générique
Console ou Service Windows Configurations types: Client / Server Publisher Auto install: MSMQ / MSDTC / Performance Counters Perf. Counters -> not automatic, only on request, must pass a flag to the host
20
Hosting – Profiles Support des Profils de configuration Lite
Integration Production Custom Profil de config : réglages pour le logging, la sécurité, la persistence, … pour un environement d’exécution de l’application Lite : In Memory saga persister Integration : SQLite saga persister Production : Database saga persister (Nhibernate)
21
Agenda Présentation de NServiceBus Concepts & Briques de base
Processus hôte Modèles de messaging Messaging fiable Processus longs Intégrations Outils
22
Messaging – 11 idées reçues
11 idées reçues sur les systèmes distribués 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
23
Messaging – 11 idées reçues
11 idées reçues sur les systèmes distribués Le coût des communications réseau reste négligeable Le réseau est homogène Le système est atomique / monolithique Le système est fini / figé La logique métier peut et doit être centralisée
24
Messaging – Msg à sens unique
Message à sens unique: “One way” / “Fire & Forget” Client envoie un msg, et continue à travailler Messages identifiables par un Id Asynchrone a.k.a. “One way” / “Fire & Forget”
25
Messaging – Msg à sens unique
L’utilisation de messages à sens unique évitent les problèmes de couplage Technologique : XML Temporel : Messages asynchrones Afférent / Efferent : Contrats Spatial : Configuration Spatial : Configuration Mapping Type de Message / Destinataire logique
26
Messaging – Addresse de retour
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”)
27
Messaging – Pub / Sub Producteur / Consommateur
28
Agenda Présentation de NServiceBus Concepts & Briques de base
Processus hôte Modèles de messaging Messaging fiable Processus longs Intégrations Outils
29
Messaging fiable
30
Agenda Présentation de NServiceBus Concepts & Briques de base
Processus hôte Modèles de messaging Messaging fiable Processus longs Intégrations Outils
31
Processus longs Appelés “Sagas”
32
Agenda Présentation de NServiceBus Concepts & Briques de base
Processus hôte Modèles de messaging Messaging fiable Processus longs Intégrations Outils
33
Intégrations
34
Agenda Présentation de NServiceBus Concepts & Briques de base
Processus hôte Modèles de messaging Messaging fiable Processus longs Intégrations Outils
35
Outils
36
NServiceBus “One more thing …”
37
EDA = SOA 2.0 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
38
NServiceBus Questions ?
39
DotNetHub Merci et à bientôt !
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.