SlideShare a Scribd company logo
1 of 61
Introduksjontil NServiceBus NNUG 25.05.2010
Sverre HundeideSeniorkonsulentItera Consulting (tidligere Objectware)Twitter: @sverrehundeideBlog: http://sverrehundeide.blogspot.com Objectware har blitt Itera Consulting
Kort om messagingpatterns NServiceBus egenskaper og konfigurasjon Demo Spørsmål og diskusjon Agenda
UtvikletavUdiDahan Andreas Öhlundogflerebidrarogså Gjortomtil Open Source i 2006 Versjon 2.0: Mars 2010 Historien til NServiceBus
Hvaeren “service bus”?
"The bus is a lie!"
Bus vs. Broker Broker, "hub and spoke"
Bus vs. Broker
Bus vs. Broker "Busses rule, brokers drool" - Dru Sellers
Oppsummert: En service bus er DISTRIBUERT!
Skalerbarhet Løse koplinger Interoperabilitet Robusthet Generelle messaging fordeler
Asynkronekommunikasjonstyper med messaging: Store and forward (send and forget) Send / Receive (Request / Response)  Publish / Subscribe Messaging patterns støttet av NServiceBus
Store and forward ,[object Object]
Avsendertråden venter ikke,[object Object]
Send / Receive (Request / Response)
Send / Receive - Eksempel Klienten:
Send / Receive - Eksempel Serveren:
Send / Receive - Eksempel Klienten – Håndteresvaret:
Send / Receive  Hvorskalsvaretsendes? Informasjonomsvarkøliggerpå MSQM-meldingen (standard MSMQ funksjonalitet).
En tråd ligger og venter på svar og kjører callbackmetoden når svar kommer. Er ikke robust Send / Receive - Asynkonous callbacks
Publish / Subscribe
Publish / Subscribe
Publish / Subscribe - Eksempel Publisher: Subscriptions gjøres til denne køen
Publish / Subscribe - Eksempel Subscriber:
Publish / Subscribe - Eksempel Subscriber:
Publish / Subscribe - Eksempel NServiceBusvilsende en subscription melding vedoppstart:
Ved pub/sub publisereseventer Ikkekommandoer (request meldinger)! Definerer en hendelseifortid Eksempel: OrderStatusChanged Eventer
NServiceBus.dll Alle interface ligger her, ingen implementasjon NServiceBus.Core.dll Implementasjon avrammeverket Generert med ILMerge Inneholder mange eksterneavhengigheter: NHibernate ogFluentNHibernate  Spring Unntak: Log4Net, andreIoC-rammeverkenn Spring Forenkler deployment NServiceBus assemblies
NServiceBuskonfigurasjon
Konfigurasjon - Fluent API
Convention over configuration Konfigurasjon
ForenklerbrukenavNServiceBus BasertpåTopShelf Kan enkeltinstalleressom en Windows Service Deployessammen med alletjenestersomskalmotta, sendeellerpubliseremeldinger Kan ogsåbrukeNServiceBusuten Generic Host Håndterer “Profiler” Generic host
Marker interfaces somdefinerer default konfigurasjon: AsA_Client, AsA_Server, AsA_Publisher Konfigurasjonav Generic Host ,[object Object]
AsA_Clientkanikkekombineres med AsA_Publisher,[object Object]
In-memory subscription storage: Er default Servere mister abonnementerved restart Kun for egnetvedutvikling/test! Konfigurasjon - Subscription storage
MSMQ subscription storage storage: Abonnementerlagresi en egenkø Konfigurasjon - Subscription storage
DB subscription storage Lagrerabonnementeri en database NHibernate ellerSQLite Automatiskgenereringav schema Børbrukesiproduksjonsmiljøet Konfigurasjon - Subscription storage
DB subscription storage eksempelkonfigurasjon: Konfigurasjon - Subscription storage
For Generic Host De innebygdeprofilene: Lite (default) Integration Production Konfigurasjon - Profiler  Logging Subscription Saga persister Scale-out Lite Mye (Console) In-memory In-memory Nei Integration Mindre (Console) MSMQ SQLite Ja Production Lite/Custom (Fil) DB NHibernate Ja
Konfigurasjon - Velge profil
Implementere IProfile Konfigurasjon - Lag din egen profil
Konfigurasjon - Tilpasse en profil
Koordinererulikestegi en langtlevende, distribuertog persistent transaksjon Status lagresi en database Lignerpå workflow Men erikkedetsamme Erpå et høyerenivå Kan inneholde workflow og state machines Sagaer
Definisjon av en saga: Sagaer - Eksempel
Håndtering av en melding: Sagaer - Eksempel (forts)
Kjøressom en egen service Har sin egenkø Brukestil å vekketil live sagaersomventerpå en melding for å forsette Eksempel: En ordresomaldriblirgodkjent Kan fekssendepåminnelseetter en uke Sagaer - Timeout Manager
NServiceBus.Testing.Dll BrukerRhino.Mocks Enhetstesting
Generic host Timeout manager Distibutor Gateway Proxy NServiceBus prosesser
Distributor - Load balancing http://nservicebus.com
Gateway
Proxy http://nservicebus.com
Proxy http://nservicebus.com
NServiceBusleggerpåegendefinertmeldingshode Kan skapeproblemer for eksternekonsumenterav MSMQ-køen Interoperabilitet
Selvemeldingener en standard MSMQ melding Interoperabilitet
Integrasjon via: EgenNServiceBus service  på BizTalk serveren Tar imotmeldingenog sender den videretil BizTalk MSMQ Custom BizTalk Adapter for NServiceBus BizTalk og NServiceBus
NServiceBushar: Pub/sub støtte Innebygdstøtte for transaksjonerogfeilhåndtering Kombinere WCF med NServiceBus Bruksynkronogasynkronkommunikasjon alt etterhvasom passer WCF og NServiceBus
BlirstøttetinesteversjonavNServiceBus KjøreNServiceBusinnenfori en Azure Worker Role Azuere queues Max 8KB meldingsstørrelse Kombinere med Azure Blob Storage for størremeldinger Håndteringavtransaksjoner For integrasjon mot eksterneapplikasjonerogpartnere Azure og NServiceBus
NServiceBus 2.1 Fokuspåpluggbarhet Støtte for Azure (fortsattpå et tidlig stadium) Målsetningom å slippe en nyversjonhver 6. måned Neste versjon
Deployment  Myesommåkonfigureres Feilsøkingavtransaksjoner DTCPing NH Prof Oppfølgingavfeiliproduksjonsmiljøet Lageegneverktøyellerkjøpe? Kreverforståelse for messaging ogeventerhosutviklerene Ikkeundervurderkompleksiteten Vurderbehovet for skalerbarhet Antallsamtidigebrukere Tilgjengelighet, responstider Ingen golden hammer! Les kildekoden! Tips og erfaringer
Publish/subscribe demo
http://nservicebus.com UdiDahan sin blog: http://www.udidahan.com/ NServiceBus SVN trunk Sagas vs. workflows SOA vs. EAI vs. ESB Integrating BizTalk Server and nServiceBus FormellbeskrivelseavSagaerfra 1987 Hanselminutes Podcast 176 - NServiceBus with UdiDahan Deep Fried Bytes Episode 49: Getting the Right Message about NServiceBus with UdiDahan Referanser

More Related Content

Similar to Introduksjon til NServiceBus

Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...Kenneth de Brucq
 
Introduksjon til Asterisk
Introduksjon til AsteriskIntroduksjon til Asterisk
Introduksjon til Asteriskmagg
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Morten Bergset
 
Mellomvare og integrasjon en innføring i bruk av biz talk hos ikt agder iks
Mellomvare og integrasjon    en innføring i bruk av biz talk hos ikt agder iksMellomvare og integrasjon    en innføring i bruk av biz talk hos ikt agder iks
Mellomvare og integrasjon en innføring i bruk av biz talk hos ikt agder iksAtle Frydenlund
 
Apache solr i finn.no
Apache solr i finn.noApache solr i finn.no
Apache solr i finn.noFINN.no
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOpsAudunSolemdal
 
20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februarSturla Grelland
 
eCampus: NTNU IT-Kontaktforum 4 mai 2011
eCampus: NTNU IT-Kontaktforum 4 mai 2011eCampus: NTNU IT-Kontaktforum 4 mai 2011
eCampus: NTNU IT-Kontaktforum 4 mai 2011Jan Meijer
 
Distribuert utvikling på net platformen
Distribuert utvikling på net platformenDistribuert utvikling på net platformen
Distribuert utvikling på net platformenRune Sundling
 

Similar to Introduksjon til NServiceBus (12)

Bbs Tjueprosent Nosql
Bbs Tjueprosent NosqlBbs Tjueprosent Nosql
Bbs Tjueprosent Nosql
 
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...
Dell Solutions Tour 2015 - Neste generasjons Windows Server og System Center,...
 
AWS på kartet
AWS på kartetAWS på kartet
AWS på kartet
 
Introduksjon til Asterisk
Introduksjon til AsteriskIntroduksjon til Asterisk
Introduksjon til Asterisk
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3
 
Mellomvare og integrasjon en innføring i bruk av biz talk hos ikt agder iks
Mellomvare og integrasjon    en innføring i bruk av biz talk hos ikt agder iksMellomvare og integrasjon    en innføring i bruk av biz talk hos ikt agder iks
Mellomvare og integrasjon en innføring i bruk av biz talk hos ikt agder iks
 
Apache solr i finn.no
Apache solr i finn.noApache solr i finn.no
Apache solr i finn.no
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
 
Soa Runtime
Soa RuntimeSoa Runtime
Soa Runtime
 
20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar
 
eCampus: NTNU IT-Kontaktforum 4 mai 2011
eCampus: NTNU IT-Kontaktforum 4 mai 2011eCampus: NTNU IT-Kontaktforum 4 mai 2011
eCampus: NTNU IT-Kontaktforum 4 mai 2011
 
Distribuert utvikling på net platformen
Distribuert utvikling på net platformenDistribuert utvikling på net platformen
Distribuert utvikling på net platformen
 

Introduksjon til NServiceBus

Editor's Notes

  1. Erfaringer med NServiceBus
  2. MÅ ikke bruke Generic Host, men Generic Host gjør det enklere å komme i gang med NServiceBus
  3. IBus: Alle metoder har en tilsvarende Expect… metode i testbiblioteket
  4. Biztalk kan ha mange ulike roller: Mottaker, avsender, subscriber, publisher