• Like
Introduksjon til NServiceBus
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Introduksjon til NServiceBus

  • 2,181 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,181
On SlideShare
0
From Embeds
0
Number of Embeds
39

Actions

Shares
Downloads
17
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Erfaringer med NServiceBus
  • MÅ ikke bruke Generic Host, men Generic Host gjør det enklere å komme i gang med NServiceBus
  • IBus: Alle metoder har en tilsvarende Expect… metode i testbiblioteket
  • Biztalk kan ha mange ulike roller: Mottaker, avsender, subscriber, publisher

Transcript

  • 1. Introduksjontil NServiceBus
    NNUG 25.05.2010
  • 2. Sverre HundeideSeniorkonsulentItera Consulting (tidligere Objectware)Twitter: @sverrehundeideBlog: http://sverrehundeide.blogspot.com
    Objectware har blitt Itera Consulting
  • 3. Kort om messagingpatterns
    NServiceBus egenskaper og konfigurasjon
    Demo
    Spørsmål og diskusjon
    Agenda
  • 4. UtvikletavUdiDahan
    Andreas Öhlundogflerebidrarogså
    Gjortomtil Open Source i 2006
    Versjon 2.0: Mars 2010
    Historien til NServiceBus
  • 5. Hvaeren “service bus”?
  • 6. "The bus is a lie!"
  • 7. Bus vs. Broker
    Broker, "hub and spoke"
  • 8. Bus vs. Broker
  • 9. Bus vs. Broker
    "Busses rule, brokers drool"
    - Dru Sellers
  • 10. Oppsummert: En service bus er
    DISTRIBUERT!
  • 11. Skalerbarhet
    Løse koplinger
    Interoperabilitet
    Robusthet
    Generelle messaging fordeler
  • 12. Asynkronekommunikasjonstyper med messaging:
    Store and forward (send and forget)
    Send / Receive (Request / Response) 
    Publish / Subscribe
    Messaging patterns støttet av NServiceBus
  • 13. Store and forward
    • Asynkront:
    • 14. Avsendertråden venter ikke
  • Store and forward - Eksempel
    Venter ikke på bekreftelse på at eposten har blitt sendt.
  • 15. Send / Receive (Request / Response)
  • 16. Send / Receive - Eksempel
    Klienten:
  • 17. Send / Receive - Eksempel
    Serveren:
  • 18. Send / Receive - Eksempel
    Klienten – Håndteresvaret:
  • 19. Send / Receive 
    Hvorskalsvaretsendes?
    Informasjonomsvarkøliggerpå MSQM-meldingen (standard MSMQ funksjonalitet).
  • 20. En tråd ligger og venter på svar og kjører callbackmetoden når svar kommer.
    Er ikke robust
    Send / Receive - Asynkonous callbacks
  • 21. Publish / Subscribe
  • 22. Publish / Subscribe
  • 23. Publish / Subscribe - Eksempel
    Publisher:
    Subscriptions gjøres til denne køen
  • 24. Publish / Subscribe - Eksempel
    Subscriber:
  • 25. Publish / Subscribe - Eksempel
    Subscriber:
  • 26. Publish / Subscribe - Eksempel
    NServiceBusvilsende en subscription melding vedoppstart:
  • 27. Ved pub/sub publisereseventer
    Ikkekommandoer (request meldinger)!
    Definerer en hendelseifortid
    Eksempel:
    OrderStatusChanged
    Eventer
  • 28. 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
  • 29. NServiceBuskonfigurasjon
  • 30. Konfigurasjon - Fluent API
  • 31. Convention over configuration
    Konfigurasjon
  • 32. ForenklerbrukenavNServiceBus
    BasertpåTopShelf
    Kan enkeltinstalleressom en Windows Service
    Deployessammen med alletjenestersomskalmotta, sendeellerpubliseremeldinger
    Kan ogsåbrukeNServiceBusuten Generic Host
    Håndterer “Profiler”
    Generic host
  • 33. Marker interfaces somdefinerer default konfigurasjon:
    AsA_Client, AsA_Server, AsA_Publisher
    Konfigurasjonav Generic Host
    • AsA_PublisherarverfraAsA_Server
    • 34. AsA_Clientkanikkekombineres med AsA_Publisher
  • Default konfigurasjonsalternativer:
    Konfigurasjon av Generic Host
    Transaksjonell
    Impersonation
    Sletter meldinger ved oppstart
    Støtte for sagaer
    Transport
    AsA_Client
    Nei
    Nei
    Ja
    Nei
    MSMQ
    AsA_Server
    Ja
    Ja
    Nei
    Ja
    MSMQ
  • 35. In-memory subscription storage:
    Er default
    Servere mister abonnementerved restart
    Kun for egnetvedutvikling/test!
    Konfigurasjon - Subscription storage
  • 36. MSMQ subscription storage storage:
    Abonnementerlagresi en egenkø
    Konfigurasjon - Subscription storage
  • 37. DB subscription storage
    Lagrerabonnementeri en database
    NHibernate ellerSQLite
    Automatiskgenereringav schema
    Børbrukesiproduksjonsmiljøet
    Konfigurasjon - Subscription storage
  • 38. DB subscription storage eksempelkonfigurasjon:
    Konfigurasjon - Subscription storage
  • 39. 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
  • 40. Konfigurasjon - Velge profil
  • 41. Implementere IProfile
    Konfigurasjon - Lag din egen profil
  • 42. Konfigurasjon - Tilpasse en profil
  • 43. 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
  • 44. Definisjon av en saga:
    Sagaer - Eksempel
  • 45. Håndtering av en melding:
    Sagaer - Eksempel (forts)
  • 46. 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
  • 47. NServiceBus.Testing.Dll
    BrukerRhino.Mocks
    Enhetstesting
  • 48. Generic host
    Timeout manager
    Distibutor
    Gateway
    Proxy
    NServiceBus prosesser
  • 49. Distributor - Load balancing
    http://nservicebus.com
  • 50. Gateway
  • 51. Proxy
    http://nservicebus.com
  • 52. Proxy
    http://nservicebus.com
  • 53. NServiceBusleggerpåegendefinertmeldingshode
    Kan skapeproblemer for eksternekonsumenterav MSMQ-køen
    Interoperabilitet
  • 54. Selvemeldingener en standard MSMQ melding
    Interoperabilitet
  • 55. Integrasjon via:
    EgenNServiceBus service på BizTalk serveren
    Tar imotmeldingenog sender den videretil BizTalk
    MSMQ
    Custom BizTalk Adapter for NServiceBus
    BizTalk og NServiceBus
  • 56. NServiceBushar:
    Pub/sub støtte
    Innebygdstøtte for transaksjonerogfeilhåndtering
    Kombinere WCF med NServiceBus
    Bruksynkronogasynkronkommunikasjon alt etterhvasom passer
    WCF og NServiceBus
  • 57. 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
  • 58. NServiceBus 2.1
    Fokuspåpluggbarhet
    Støtte for Azure (fortsattpå et tidlig stadium)
    Målsetningom å slippe en nyversjonhver 6. måned
    Neste versjon
  • 59. 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
  • 60. Publish/subscribe demo
  • 61. 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
  • 62. NServiceBus tutorials
    Eksempelprosjekter:
    ElegantCode Starbucks spike
    NYC Alt.Net demo application
    Azure integrasjon
    Stockholm Alt.Neteksempelav Andreas Öhlund
    NServiceBus diskusjonsgruppehos Yahoo Groups
    Ressurser
  • 63. Spørsmål?