380 likes | 631 Vues
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é . DotNetHub. Prochaines sessions : 16 juin : Mini XP Days Wallonie 2010
E N D
NServiceBus, l’”ESB” léger pour tous ! Steve Degosserie– 6 Mai 2010 Tout cequevousaveztoujoursvoulu savoir sur les communications fiablesdans un systèmedistribué
DotNetHub Prochaines sessions : • 16 juin : Mini XP Days Wallonie 2010 • 24 juin : Microsoft Community Day 2010 • Introduction to NServiceBus(English)
Agenda • Présentation de NServiceBus • Concepts & Briques de base • Processushôte • Modèles de messaging • Messaging fiable • Processus longs • Intégrations • Outils
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 : http://yoot.be • Twitter : @stiiifff
Agenda • Présentation de NServiceBus • Concepts & Briques de base • Types d’hébergements • Modèles de messaging • Messaging fiable • Processus longs • Intégrations • Outils
Intro – Historique & Roadmap UdiDahan – 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’autrestechnos de queuing que MSMQ • Amélioration du Timeout Manager
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èmesdistribués.
Intro – ESB ?! Et un “Enterprise Service Bus”, késako ? • Type d’architecture ? • Un produit ? • Ensemble de technologies ? Unecouched’abstractionpermettantl’implémentationd’architectures de type SOA.
Intro – Hello DotNetHub - WCF Communication synchrone nombreuxproblèmespotentiels: • Serveur down erreur / message perdu On réessaie plus tard ! • Timeouts • Couplage • Temps de réponse • Fiabilité • Configuration
Intro – Hello DotNetHub - NSB Communication asynchroneuni-directionnelle (“One-way Messaging”) • Messages persistents (par ex. MSMQ) • Opérationstransactionnellessur les messages stockés • Erreur message restedans la queue • Faiblecouplage Communication “fiable”
Agenda • Présentation de NServiceBus • Concepts & Briques de base • Modèles de messaging • Messaging fiable • Processus longs • Intégrations • Outils
Concepts – Bus Infrastructure transportant les messages. • IBus • Sécurisable • “Bus logique” • “Fluent” Config
Concepts – Messages Unité de base pour tout type d’information qui transitesur le Bus. • Typage fort • “Marker interface” IMessage • Implémentation • Classe • Interface
Concepts – Message Handlers Composant qui traite des messages d’un ouplusieurs types. • IMessageHandler<T> • IHandleMessages<T> • “Injectables” • Zero config • Transactionnel
Concepts – Transport Abstraction de la technologie de transfert de messages (ITransport). • MSMQ par défaut • Windows Azure en développement • Autres à venir
Agenda • Présentation de NServiceBus • Concepts & Briques de base • Processushôte • Modèles de messaging • Messaging fiable • Processus longs • Intégrations • Outils
Hosting – Self-Hosting Diversespossibilitésd’hébergement: • Console • Service Windows • Application WinForms / WPF • Application Web ASP.NET Config 100% manuelle
Hosting – Generic Host NServiceBus.Host.exe : Processushôtegénérique • Console ou Service Windows • Configurations types: • Client / Server • Publisher • Auto install: • MSMQ / MSDTC / Performance Counters
Hosting – Profiles Support des Profilsde configuration • Lite • Integration • Production • Custom
Agenda • Présentation de NServiceBus • Concepts & Briques de base • Processushôte • Modèles de messaging • Messaging fiable • Processus longs • Intégrations • Outils
Messaging – 11 idéesreçues 11 idéesreçuessur les systèmesdistribués • Le réseauestfiable • Les temps de latencerestent constants • La bandepassanteestsuffisante • Le réseauestsécurisé • La topologie du réseauestfigée • L’Administrateursaura quoi faire
Messaging – 11 idéesreçues 11 idéesreçuessur les systèmesdistribués • Le coût des communications réseaurestenégligeable • Le réseauesthomogène • Le systèmeestatomique / monolithique • Le systèmeestfini / figé • La logique métier peut et doitêtrecentralisée
Messaging – Msg à sens unique Message à sens unique: • “One way” / “Fire & Forget” • Client envoie un msg, et continue à travailler • Messages identifiables par un Id
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
Messaging – Addresse de retour Chaque message contientl’adresse de son émetteur. Permet au destinataire de: • Répondre • Ne pas devoir au préalableconnaîtrel’adresse de l’émetteur du message reçu • A l’émetteur de spécifieruneadresse de retour alternative (“Reply-to”)
Messaging – Pub / Sub Producteur / Consommateur
Agenda • Présentation de NServiceBus • Concepts & Briques de base • Processushôte • Modèles de messaging • Messaging fiable • Processus longs • Intégrations • Outils
Agenda • Présentation de NServiceBus • Concepts & Briques de base • Processushôte • Modèles de messaging • Messaging fiable • Processus longs • Intégrations • Outils
Processus longs Appelés “Sagas”
Agenda • Présentation de NServiceBus • Concepts & Briques de base • Processushôte • Modèles de messaging • Messaging fiable • Processus longs • Intégrations • Outils
Agenda • Présentation de NServiceBus • Concepts & Briques de base • Processushôte • Modèles de messaging • Messaging fiable • Processus longs • Intégrations • Outils
NServiceBus “One more thing …”
EDA = SOA 2.0 NServiceBusestl’outilidéal pour l’apprentissage et la mise en pratiqued’une architecture de type événementiellesur 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 • Couplagefaible/ Systèmesdistribués
NServiceBus Questions ?
DotNetHub Merci et à bientôt !