Download - Distribuert utvikling på net platformen
Utvikling av distribuerte systemer
paring NET-platformen
Distribuert utvikling paring NET-plattformen
Page 1
12102010
bull Forstaringelse av tilgjengelige arkitekturer og teknologier
bull Diskutere for aring bedre felles forstaringelse
bull Skrive kode for aring senke inngangsterskelen
Distribuert utvikling paring NET-plattformen
Page 2
12102010
Formaringlet med sesjonen
bull Del 1bull Mennesker miljoslash og omkringliggene krav
bull Kommunikasjonsformer
bull Vanlige arkitekturer
bull Del 2bull Teknologier
Distribuert utvikling paring NET-plattformen
Page 3
12102010
Agenda
bull Din og andre utvikleres erfaring
bull Hva med kunden
bull Leverandoslashrer produkter og penger
Distribuert utvikling paring NET-plattformen
Page 4
12102010
Ikke-tekniske elementer som spiller inn
1 The network is reliable
2 Latency is zero
3 Bandwidth is infinite
4 The network is secure
5 Topology doesnt change
6 There is one administrator
7 Transport cost is zero
8 The network is homogeneous
Peter Deutsch amp James Gosling Sun Microsystems
Distribuert utvikling paring NET-plattformen
Page 5
12102010
Fallacies of distributed computing
bull Reliability Availability Scalability Extensibility
Securability Interoperability +++
bull Viktig del av utformingen av enhver arkitektur
bull Loslashsninger blir laget kun basert paring ikke-funksjonelle kravbull Extensibility WorkflowBPM engine DSL plug-ins
bull Scalability MessageService bus Database NoSql
bull Essensielt aring forstaring forretningsproblemene i tillegg
Distribuert utvikling paring NET-plattformen
Page 6
12102010
Ikke-funksjonelle krav =gt laquo-ilityraquo-ene
bull Synkron RPC
bull Asynkron RPC mcallback
bull Meldingsbasert
Distribuert utvikling paring NET-plattformen
Page 7
12102010
Hovedformer for kommunikasjon
bull Den laquovanligeraquo maringten aring utvikle paring
bull Koden lik som vanlige ressurser i minne
bull Traringden blokkeres mens klient venter paring at server svarer
bull Koden blir lesbar og sekvensiell lett aring faring oversikt
bull Fungerer naringrbull Hente mindre mengder data
bull Kalle operasjoner som tar lite tid
Distribuert utvikling paring NET-plattformen
Page 8
12102010
Synkron RPC
bull Ulemperbull Tette koblinger i tid og rom
bull (Stadig oslashkende) ventetid for bruker eller tjenester
bull Husk krasj nettverksproblemer vedlikehold
bull Vanskeligere aring gjoslashre systemet robust
bull Last-problemer paring server
bull Reduserer mulighetene for skalering
Distribuert utvikling paring NET-plattformen
Page 9
12102010
Synkron RPC
bull Vanligst i web
bull Mye tydeligere i koden at noe vil bruke tid
bull Fordeler i forhold til synkron RPCbull Traringden kan fortsette arbeidet
bull Mindre saringrbart for krasj og nettverksproblemer
bull Men fortsatt ikke ideeltbull Kobling i rom
bull Last-problemer paring server
bull Oppstykket kode
Distribuert utvikling paring NET-plattformen
Page 10
12102010
Asynkron RPC mcallback
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Forstaringelse av tilgjengelige arkitekturer og teknologier
bull Diskutere for aring bedre felles forstaringelse
bull Skrive kode for aring senke inngangsterskelen
Distribuert utvikling paring NET-plattformen
Page 2
12102010
Formaringlet med sesjonen
bull Del 1bull Mennesker miljoslash og omkringliggene krav
bull Kommunikasjonsformer
bull Vanlige arkitekturer
bull Del 2bull Teknologier
Distribuert utvikling paring NET-plattformen
Page 3
12102010
Agenda
bull Din og andre utvikleres erfaring
bull Hva med kunden
bull Leverandoslashrer produkter og penger
Distribuert utvikling paring NET-plattformen
Page 4
12102010
Ikke-tekniske elementer som spiller inn
1 The network is reliable
2 Latency is zero
3 Bandwidth is infinite
4 The network is secure
5 Topology doesnt change
6 There is one administrator
7 Transport cost is zero
8 The network is homogeneous
Peter Deutsch amp James Gosling Sun Microsystems
Distribuert utvikling paring NET-plattformen
Page 5
12102010
Fallacies of distributed computing
bull Reliability Availability Scalability Extensibility
Securability Interoperability +++
bull Viktig del av utformingen av enhver arkitektur
bull Loslashsninger blir laget kun basert paring ikke-funksjonelle kravbull Extensibility WorkflowBPM engine DSL plug-ins
bull Scalability MessageService bus Database NoSql
bull Essensielt aring forstaring forretningsproblemene i tillegg
Distribuert utvikling paring NET-plattformen
Page 6
12102010
Ikke-funksjonelle krav =gt laquo-ilityraquo-ene
bull Synkron RPC
bull Asynkron RPC mcallback
bull Meldingsbasert
Distribuert utvikling paring NET-plattformen
Page 7
12102010
Hovedformer for kommunikasjon
bull Den laquovanligeraquo maringten aring utvikle paring
bull Koden lik som vanlige ressurser i minne
bull Traringden blokkeres mens klient venter paring at server svarer
bull Koden blir lesbar og sekvensiell lett aring faring oversikt
bull Fungerer naringrbull Hente mindre mengder data
bull Kalle operasjoner som tar lite tid
Distribuert utvikling paring NET-plattformen
Page 8
12102010
Synkron RPC
bull Ulemperbull Tette koblinger i tid og rom
bull (Stadig oslashkende) ventetid for bruker eller tjenester
bull Husk krasj nettverksproblemer vedlikehold
bull Vanskeligere aring gjoslashre systemet robust
bull Last-problemer paring server
bull Reduserer mulighetene for skalering
Distribuert utvikling paring NET-plattformen
Page 9
12102010
Synkron RPC
bull Vanligst i web
bull Mye tydeligere i koden at noe vil bruke tid
bull Fordeler i forhold til synkron RPCbull Traringden kan fortsette arbeidet
bull Mindre saringrbart for krasj og nettverksproblemer
bull Men fortsatt ikke ideeltbull Kobling i rom
bull Last-problemer paring server
bull Oppstykket kode
Distribuert utvikling paring NET-plattformen
Page 10
12102010
Asynkron RPC mcallback
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Del 1bull Mennesker miljoslash og omkringliggene krav
bull Kommunikasjonsformer
bull Vanlige arkitekturer
bull Del 2bull Teknologier
Distribuert utvikling paring NET-plattformen
Page 3
12102010
Agenda
bull Din og andre utvikleres erfaring
bull Hva med kunden
bull Leverandoslashrer produkter og penger
Distribuert utvikling paring NET-plattformen
Page 4
12102010
Ikke-tekniske elementer som spiller inn
1 The network is reliable
2 Latency is zero
3 Bandwidth is infinite
4 The network is secure
5 Topology doesnt change
6 There is one administrator
7 Transport cost is zero
8 The network is homogeneous
Peter Deutsch amp James Gosling Sun Microsystems
Distribuert utvikling paring NET-plattformen
Page 5
12102010
Fallacies of distributed computing
bull Reliability Availability Scalability Extensibility
Securability Interoperability +++
bull Viktig del av utformingen av enhver arkitektur
bull Loslashsninger blir laget kun basert paring ikke-funksjonelle kravbull Extensibility WorkflowBPM engine DSL plug-ins
bull Scalability MessageService bus Database NoSql
bull Essensielt aring forstaring forretningsproblemene i tillegg
Distribuert utvikling paring NET-plattformen
Page 6
12102010
Ikke-funksjonelle krav =gt laquo-ilityraquo-ene
bull Synkron RPC
bull Asynkron RPC mcallback
bull Meldingsbasert
Distribuert utvikling paring NET-plattformen
Page 7
12102010
Hovedformer for kommunikasjon
bull Den laquovanligeraquo maringten aring utvikle paring
bull Koden lik som vanlige ressurser i minne
bull Traringden blokkeres mens klient venter paring at server svarer
bull Koden blir lesbar og sekvensiell lett aring faring oversikt
bull Fungerer naringrbull Hente mindre mengder data
bull Kalle operasjoner som tar lite tid
Distribuert utvikling paring NET-plattformen
Page 8
12102010
Synkron RPC
bull Ulemperbull Tette koblinger i tid og rom
bull (Stadig oslashkende) ventetid for bruker eller tjenester
bull Husk krasj nettverksproblemer vedlikehold
bull Vanskeligere aring gjoslashre systemet robust
bull Last-problemer paring server
bull Reduserer mulighetene for skalering
Distribuert utvikling paring NET-plattformen
Page 9
12102010
Synkron RPC
bull Vanligst i web
bull Mye tydeligere i koden at noe vil bruke tid
bull Fordeler i forhold til synkron RPCbull Traringden kan fortsette arbeidet
bull Mindre saringrbart for krasj og nettverksproblemer
bull Men fortsatt ikke ideeltbull Kobling i rom
bull Last-problemer paring server
bull Oppstykket kode
Distribuert utvikling paring NET-plattformen
Page 10
12102010
Asynkron RPC mcallback
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Din og andre utvikleres erfaring
bull Hva med kunden
bull Leverandoslashrer produkter og penger
Distribuert utvikling paring NET-plattformen
Page 4
12102010
Ikke-tekniske elementer som spiller inn
1 The network is reliable
2 Latency is zero
3 Bandwidth is infinite
4 The network is secure
5 Topology doesnt change
6 There is one administrator
7 Transport cost is zero
8 The network is homogeneous
Peter Deutsch amp James Gosling Sun Microsystems
Distribuert utvikling paring NET-plattformen
Page 5
12102010
Fallacies of distributed computing
bull Reliability Availability Scalability Extensibility
Securability Interoperability +++
bull Viktig del av utformingen av enhver arkitektur
bull Loslashsninger blir laget kun basert paring ikke-funksjonelle kravbull Extensibility WorkflowBPM engine DSL plug-ins
bull Scalability MessageService bus Database NoSql
bull Essensielt aring forstaring forretningsproblemene i tillegg
Distribuert utvikling paring NET-plattformen
Page 6
12102010
Ikke-funksjonelle krav =gt laquo-ilityraquo-ene
bull Synkron RPC
bull Asynkron RPC mcallback
bull Meldingsbasert
Distribuert utvikling paring NET-plattformen
Page 7
12102010
Hovedformer for kommunikasjon
bull Den laquovanligeraquo maringten aring utvikle paring
bull Koden lik som vanlige ressurser i minne
bull Traringden blokkeres mens klient venter paring at server svarer
bull Koden blir lesbar og sekvensiell lett aring faring oversikt
bull Fungerer naringrbull Hente mindre mengder data
bull Kalle operasjoner som tar lite tid
Distribuert utvikling paring NET-plattformen
Page 8
12102010
Synkron RPC
bull Ulemperbull Tette koblinger i tid og rom
bull (Stadig oslashkende) ventetid for bruker eller tjenester
bull Husk krasj nettverksproblemer vedlikehold
bull Vanskeligere aring gjoslashre systemet robust
bull Last-problemer paring server
bull Reduserer mulighetene for skalering
Distribuert utvikling paring NET-plattformen
Page 9
12102010
Synkron RPC
bull Vanligst i web
bull Mye tydeligere i koden at noe vil bruke tid
bull Fordeler i forhold til synkron RPCbull Traringden kan fortsette arbeidet
bull Mindre saringrbart for krasj og nettverksproblemer
bull Men fortsatt ikke ideeltbull Kobling i rom
bull Last-problemer paring server
bull Oppstykket kode
Distribuert utvikling paring NET-plattformen
Page 10
12102010
Asynkron RPC mcallback
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
1 The network is reliable
2 Latency is zero
3 Bandwidth is infinite
4 The network is secure
5 Topology doesnt change
6 There is one administrator
7 Transport cost is zero
8 The network is homogeneous
Peter Deutsch amp James Gosling Sun Microsystems
Distribuert utvikling paring NET-plattformen
Page 5
12102010
Fallacies of distributed computing
bull Reliability Availability Scalability Extensibility
Securability Interoperability +++
bull Viktig del av utformingen av enhver arkitektur
bull Loslashsninger blir laget kun basert paring ikke-funksjonelle kravbull Extensibility WorkflowBPM engine DSL plug-ins
bull Scalability MessageService bus Database NoSql
bull Essensielt aring forstaring forretningsproblemene i tillegg
Distribuert utvikling paring NET-plattformen
Page 6
12102010
Ikke-funksjonelle krav =gt laquo-ilityraquo-ene
bull Synkron RPC
bull Asynkron RPC mcallback
bull Meldingsbasert
Distribuert utvikling paring NET-plattformen
Page 7
12102010
Hovedformer for kommunikasjon
bull Den laquovanligeraquo maringten aring utvikle paring
bull Koden lik som vanlige ressurser i minne
bull Traringden blokkeres mens klient venter paring at server svarer
bull Koden blir lesbar og sekvensiell lett aring faring oversikt
bull Fungerer naringrbull Hente mindre mengder data
bull Kalle operasjoner som tar lite tid
Distribuert utvikling paring NET-plattformen
Page 8
12102010
Synkron RPC
bull Ulemperbull Tette koblinger i tid og rom
bull (Stadig oslashkende) ventetid for bruker eller tjenester
bull Husk krasj nettverksproblemer vedlikehold
bull Vanskeligere aring gjoslashre systemet robust
bull Last-problemer paring server
bull Reduserer mulighetene for skalering
Distribuert utvikling paring NET-plattformen
Page 9
12102010
Synkron RPC
bull Vanligst i web
bull Mye tydeligere i koden at noe vil bruke tid
bull Fordeler i forhold til synkron RPCbull Traringden kan fortsette arbeidet
bull Mindre saringrbart for krasj og nettverksproblemer
bull Men fortsatt ikke ideeltbull Kobling i rom
bull Last-problemer paring server
bull Oppstykket kode
Distribuert utvikling paring NET-plattformen
Page 10
12102010
Asynkron RPC mcallback
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Reliability Availability Scalability Extensibility
Securability Interoperability +++
bull Viktig del av utformingen av enhver arkitektur
bull Loslashsninger blir laget kun basert paring ikke-funksjonelle kravbull Extensibility WorkflowBPM engine DSL plug-ins
bull Scalability MessageService bus Database NoSql
bull Essensielt aring forstaring forretningsproblemene i tillegg
Distribuert utvikling paring NET-plattformen
Page 6
12102010
Ikke-funksjonelle krav =gt laquo-ilityraquo-ene
bull Synkron RPC
bull Asynkron RPC mcallback
bull Meldingsbasert
Distribuert utvikling paring NET-plattformen
Page 7
12102010
Hovedformer for kommunikasjon
bull Den laquovanligeraquo maringten aring utvikle paring
bull Koden lik som vanlige ressurser i minne
bull Traringden blokkeres mens klient venter paring at server svarer
bull Koden blir lesbar og sekvensiell lett aring faring oversikt
bull Fungerer naringrbull Hente mindre mengder data
bull Kalle operasjoner som tar lite tid
Distribuert utvikling paring NET-plattformen
Page 8
12102010
Synkron RPC
bull Ulemperbull Tette koblinger i tid og rom
bull (Stadig oslashkende) ventetid for bruker eller tjenester
bull Husk krasj nettverksproblemer vedlikehold
bull Vanskeligere aring gjoslashre systemet robust
bull Last-problemer paring server
bull Reduserer mulighetene for skalering
Distribuert utvikling paring NET-plattformen
Page 9
12102010
Synkron RPC
bull Vanligst i web
bull Mye tydeligere i koden at noe vil bruke tid
bull Fordeler i forhold til synkron RPCbull Traringden kan fortsette arbeidet
bull Mindre saringrbart for krasj og nettverksproblemer
bull Men fortsatt ikke ideeltbull Kobling i rom
bull Last-problemer paring server
bull Oppstykket kode
Distribuert utvikling paring NET-plattformen
Page 10
12102010
Asynkron RPC mcallback
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Synkron RPC
bull Asynkron RPC mcallback
bull Meldingsbasert
Distribuert utvikling paring NET-plattformen
Page 7
12102010
Hovedformer for kommunikasjon
bull Den laquovanligeraquo maringten aring utvikle paring
bull Koden lik som vanlige ressurser i minne
bull Traringden blokkeres mens klient venter paring at server svarer
bull Koden blir lesbar og sekvensiell lett aring faring oversikt
bull Fungerer naringrbull Hente mindre mengder data
bull Kalle operasjoner som tar lite tid
Distribuert utvikling paring NET-plattformen
Page 8
12102010
Synkron RPC
bull Ulemperbull Tette koblinger i tid og rom
bull (Stadig oslashkende) ventetid for bruker eller tjenester
bull Husk krasj nettverksproblemer vedlikehold
bull Vanskeligere aring gjoslashre systemet robust
bull Last-problemer paring server
bull Reduserer mulighetene for skalering
Distribuert utvikling paring NET-plattformen
Page 9
12102010
Synkron RPC
bull Vanligst i web
bull Mye tydeligere i koden at noe vil bruke tid
bull Fordeler i forhold til synkron RPCbull Traringden kan fortsette arbeidet
bull Mindre saringrbart for krasj og nettverksproblemer
bull Men fortsatt ikke ideeltbull Kobling i rom
bull Last-problemer paring server
bull Oppstykket kode
Distribuert utvikling paring NET-plattformen
Page 10
12102010
Asynkron RPC mcallback
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Den laquovanligeraquo maringten aring utvikle paring
bull Koden lik som vanlige ressurser i minne
bull Traringden blokkeres mens klient venter paring at server svarer
bull Koden blir lesbar og sekvensiell lett aring faring oversikt
bull Fungerer naringrbull Hente mindre mengder data
bull Kalle operasjoner som tar lite tid
Distribuert utvikling paring NET-plattformen
Page 8
12102010
Synkron RPC
bull Ulemperbull Tette koblinger i tid og rom
bull (Stadig oslashkende) ventetid for bruker eller tjenester
bull Husk krasj nettverksproblemer vedlikehold
bull Vanskeligere aring gjoslashre systemet robust
bull Last-problemer paring server
bull Reduserer mulighetene for skalering
Distribuert utvikling paring NET-plattformen
Page 9
12102010
Synkron RPC
bull Vanligst i web
bull Mye tydeligere i koden at noe vil bruke tid
bull Fordeler i forhold til synkron RPCbull Traringden kan fortsette arbeidet
bull Mindre saringrbart for krasj og nettverksproblemer
bull Men fortsatt ikke ideeltbull Kobling i rom
bull Last-problemer paring server
bull Oppstykket kode
Distribuert utvikling paring NET-plattformen
Page 10
12102010
Asynkron RPC mcallback
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Ulemperbull Tette koblinger i tid og rom
bull (Stadig oslashkende) ventetid for bruker eller tjenester
bull Husk krasj nettverksproblemer vedlikehold
bull Vanskeligere aring gjoslashre systemet robust
bull Last-problemer paring server
bull Reduserer mulighetene for skalering
Distribuert utvikling paring NET-plattformen
Page 9
12102010
Synkron RPC
bull Vanligst i web
bull Mye tydeligere i koden at noe vil bruke tid
bull Fordeler i forhold til synkron RPCbull Traringden kan fortsette arbeidet
bull Mindre saringrbart for krasj og nettverksproblemer
bull Men fortsatt ikke ideeltbull Kobling i rom
bull Last-problemer paring server
bull Oppstykket kode
Distribuert utvikling paring NET-plattformen
Page 10
12102010
Asynkron RPC mcallback
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Vanligst i web
bull Mye tydeligere i koden at noe vil bruke tid
bull Fordeler i forhold til synkron RPCbull Traringden kan fortsette arbeidet
bull Mindre saringrbart for krasj og nettverksproblemer
bull Men fortsatt ikke ideeltbull Kobling i rom
bull Last-problemer paring server
bull Oppstykket kode
Distribuert utvikling paring NET-plattformen
Page 10
12102010
Asynkron RPC mcallback
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Handler om aring kommunisere via meldinger
bull To hovedformer for aring administrere flytenbull Message Broker
bull Message Bus
bull Meldingsstrategibull Store amp Forward
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 11
12102010
Meldingsbasert arkitektur
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
laquoDecouple the destination of a message from the sender
and maintain central control over the flow of messagesraquo
Distribuert utvikling paring NET-plattformen
Page 12
12102010
Messsage broker
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
laquoEnable separate applications to work together but in a
decoupled fashion such that applications can be easily
added or removed without affecting the othersraquo
Distribuert utvikling paring NET-plattformen
Page 13
12102010
Message bus
Distribuert
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 14
12102010
Store and forward (Send and forget)
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 15
12102010
Request Response (Send Recieve)
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 16
12102010
Publish Subscribe
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Vanligvis er dette ting som har hendtbull Ordre kansellert Produkt utsolgt Kunde opprettet
bull Publiserer vet ikke ved designtid hvem som vil motta
meldingenbull Vanskeligere aring faring full oversikt over hvordan systemet henger sammen
bull Oppnaringr loslashs kobling
Distribuert utvikling paring NET-plattformen
Page 17
12102010
Publish Subscribe
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Kode senderpubliserer melding
bull Melding legges paring lokal koslash
bull Koslash(meldings)-infrastrukturen tar over ansvaret
bull Koden fortsetter aring kjoslashre
Distribuert utvikling paring NET-plattformen
Page 18
12102010
Implementasjon
void SendCustomerDeleted()
Customer customer = GetDeletedCustomer()var msg = new CustomerDeletedMessage (customerCustomerNumber)ServiceBusSendMessage(msg)
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Koslashsystemer innebygget i operativsystem siden 80-tallet
bull MSMQ i Windows siden 1997
bull Koslashen persisterer meldingen paring disk
bull Hvis maskinen krasjer vil den fortsatt kunne sende
bull Naringr mottaker har mottatt beskjeden vil den persisteres paring
disk der Da vil sender slette meldingen
bull Meldingen vil ligge i mottakerkoslashen inntil mottaker fjerner
den derfra
Distribuert utvikling paring NET-plattformen
Page 19
12102010
Hva skjer naringr meldingen er lagt paring koslashen
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Loslashs kobling mellom tjenester
bull Haringndtere og skalere enkelttjenester
bull Mindre avhengigheter mindre bindinger stoslashrre individuell
frihet =gt mer robuste systemer
bull Koslasher
bull Pluggbarhet
Distribuert utvikling paring NET-plattformen
Page 20
12102010
Fordeler ved meldingsbasert arkitektur
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Ny hverdagbull Utviklere
bull Driftere
bull Forrestningssiden
bull Noslashdvendig med nye verktoslashy
bull Forstaring hele flyten i systemet
Distribuert utvikling paring NET-plattformen
Page 21
12102010
Ulemper ved meldingsbasert arkitektur
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Design for tjenestefeil
bull Kombiner tjenester paring klienten ikke i tjenestene
bull Ikke distribuerte transaksjoner mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 22
12102010
Designprinsipper
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 23
12102010
Varingr verden - vanlige applikasjonsformer
bull CRUD (Create Read Update Delete) med ingenbegrenset logikk paring serverbull CRUD med mye logikk paring serverenbull Mer komplisert applikasjon med mye koblinger SOA
CQRS
SOA
bull Command Query Responsibility Segregation (CQRS)
bull SVAEligRT forenklet
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Hva slags kommunikasjonsform bruker man naringr
bull Og hvilke teknologier finnes
Distribuert utvikling paring NET-plattformen
Page 24
12102010
Varingr verden - vanlige applikasjonsformer
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull WCF RIA Services
bull Standard WCF
bull CQRS
bull (WCF Data Services)
Distribuert utvikling paring NET-plattformen
Page 25
12102010
CRUD (Create Read Update Delete) med
ingenbegrenset logikk paring server
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Standard WCF
bull Asynkrone kallmeldingsharingndtering
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 26
12102010
CRUD med mye logikk paring serveren
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull WCF Data Services
Distribuert utvikling paring NET-plattformen
Page 27
12102010
Eksponere OData eller RESTful interface
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Standard WCF mellom klient og server ndash hente data
bull Meldingsbasert
bull CQRS
Distribuert utvikling paring NET-plattformen
Page 28
12102010
Mer komplisert applikasjon med mye
koblinger SOA
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 29
12102010
Forretningsperspektiv
Salg
Kunde Frakt
Kjoslashp vare Oppdater rabatt
Lagrekjoslashpsinformasjon
Abonner paring laquoKundestatus oppdatertraquo
Abonner paring laquoVare kjoslashptraquo
PubliserlaquoKundestatus oppdatertraquo
PubliserlaquoVare kjoslashptraquo
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Har oppdeling i tjenester bruk av koslasher osv foslashringer for
fysisk delingbull Nei
bull Trenger ikke vaeligre en maskin per tjeneste
bull Trenger ikke vaeligre web services mellom tjenester
bull Kan ha forskjellig transportprotokoller mellom tjenester
Distribuert utvikling paring NET-plattformen
Page 30
12102010
Hardwareperspektivet
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 31
12102010
Tid for diskusjon
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull WCF
bull WCF RIA Services
bull WCF Data Services
bull Biztalk
bull NServiceBus
bull Rhino Service Bus
bull Azure
Distribuert utvikling paring NET-plattformen
Page 32
12102010
Teknologiene
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
laquoA part of the NET Framework that provides a unified
programming model for rapidly building service-oriented
applications that communicate across the web and the
enterpriseraquo MSDN
Distribuert utvikling paring NET-plattformen
Page 33
12102010
Windows Communication Foundation
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 34
12102010
WCF RIA Services
laquoWCF RIA Services lets you quickly build N-Tier Silverlight
client applications without needing to focus on the service
plumbing to get data into and out of your client application
from back-end services logic and data accessraquo MSDN
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Naringr du bygger domene-service paring server genereres
tilsvarende kode paring klienten
Distribuert utvikling paring NET-plattformen
Page 35
12102010
WCF RIA Services
ServerCustomerService- IQueryableltCustomergt GetCustomersByCountry
KlientCustomerContext- IQueryableltCustomergt GetCustomersByCountryQuery
Customer editerbar- Oppdateringer oppdater properties fra query- Inserts CustomerContextCustomersAdd(new Customer() )- Delete CustomerContextCustomersRemove(someCustomer- CustomerContextSubmitChanges()
bull Objektene som sendes maring vaeligre entitetstyperbull Validering med SystemComponentModelDataAnnotationsbull Primaeligrt for Silverlight
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
MSDN
bull httpwwwsilverlightnetgetstartedriaservices
26 part series av Brad Abrams
bull httpblogsmsdncombbradaarchive20091027index-
for-business-apps-example-for-silverlight-3-rtm-and-net-
ria-services-july-updateaspx
Distribuert utvikling paring NET-plattformen
Page 36
12102010
WCF RIA Services
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull REST-ifisert entitetsmodell med OData
bull Kan returnere XML JSON eller RDF +
XML
bull GET PUT POST DELETE
bull Primaeligrbruk For andre aring konsumere
eventuelt JQuery
Distribuert utvikling paring NET-plattformen
Page 37
12102010
WCF Data Services
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Eksempelbruk
bull httpdataserverservicesvcMusicCollection
bull httpdataserverservicesvcMusicCollection[SomeArtist]
bull httpdataserverservicesvcMusicCollection[SomeSong]Genre
bull httpdataserverservicesvcMusicCollection[SomeArtist]ReleaseDate[Year eq 2006]
bull httpdataserverservicesvcMusicCollection$orderby=ReleaseDateamp$skip=100amp$top=50
Distribuert utvikling paring NET-plattformen
Page 38
12102010
WCF Data Services
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Message Broker
bull Kommuniserer med andre software systemer gjennom
en rekke adaptere
bull Tilbyr
bull Enterprise Application Integration
bull Business Process Automation
bull Business-to-business Communication
bull Message Broker
Distribuert utvikling paring NET-plattformen
Page 39
12102010
Microsoft Biztalk Server
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Forskjellige versjoner
bull Enterprise - $34999
bull Standard - $8499
bull Branch - $1800
bull Developer - $499 per user
Distribuert utvikling paring NET-plattformen
Page 40
12102010
Microsoft Biztalk Server
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Design av systemer for meldingsbasert arkitektur med
message bus
bull Bygget paring toppen av MSMQ
bull Open source
bull Laget av Udi Dahan
bull wwwnservicebuscom
bull Stoslashtterbull Store and forward (send and forget)
bull Request Response
bull Publish Subscribe
Distribuert utvikling paring NET-plattformen
Page 41
12102010
NServiceBus
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Gir mostand ved feil bruk
bull Profiler
bull Generic host
bull Convention over configuration
bull Pluggbarhet
bull Sagaer
bull Enhetstesting
Distribuert utvikling paring NET-plattformen
Page 42
12102010
NServiceBus - Diverse
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 43
12102010
NServiceBus ndash Store and forward
Venter ikke paring bekreftelse paring at epost har blitt sendt
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Klient
Distribuert utvikling paring NET-plattformen
Page 44
12102010
NServiceBus ndash Request Response
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Server
Distribuert utvikling paring NET-plattformen
Page 45
12102010
NServiceBus ndash Request Response
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Klient ndash haringndtere svaret
Distribuert utvikling paring NET-plattformen
Page 46
12102010
NServiceBus ndash Request Response
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 47
12102010
NServiceBus ndash Request Response ndash
Asynchronous callbacks
Hvis klienten garingr ned mister man meldingen
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Publisherbull Meldinger som hendelser i fortid
Distribuert utvikling paring NET-plattformen
Page 48
12102010
NServiceBus ndash Publish Subscribe
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Publisher
Subscriber
Distribuert utvikling paring NET-plattformen
Page 49
12102010
NServiceBus ndash Publish Subscribe
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Subscriber
Distribuert utvikling paring NET-plattformen
Page 50
12102010
NServiceBus ndash Publish Subscribe
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Vil sende en subscription-melding ved oppstart
Distribuert utvikling paring NET-plattformen
Page 51
12102010
NServiceBus ndash Publish Subscribe
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Det tar tid aring komme i gang
bull Mye som maring konfigureres
bull Verktoslashy for oppfoslashlgning i produksjon
Distribuert utvikling paring NET-plattformen
Page 52
12102010
NServiceBus - Diverse
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
httpwwwnservicebuscomRoadmapaspx
Mest spennende i neste versjon Stoslashtte Micrososft
Azure Queues og Amazon SQS (Simple Queue
Service)
Distribuert utvikling paring NET-plattformen
Page 53
12102010
NServiceBus ndash Videre utvikling
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Laget av Oren Eini (Ayende Rahien)
bull Kun Store and forward og Request Response
bull Mye mindre alternativer enn NServiceBus
bull Open Source
bull httpgithubcomayenderhino-esb
Distribuert utvikling paring NET-plattformen
Page 54
12102010
Rhino Service Bus
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
laquoI liberally stole from both ideas and code from Mass
Transit and NServiceBus My main goal was to get to a
level with no configuration no complexity high degree of
flexibility from design stand point but a very rigid structure
for the usersraquo
Oren Eini
bull Detaljerbull C 30 amp MSMQ 40 - taking advantage of features such as sub queues async
queue receiving
bull Pluggable
bull Minimal moving parts strongly opinionated
bull Hard focus on developer productivity and ease of use
bull Conventions assertions and convictions
Distribuert utvikling paring NET-plattformen
Page 55
12102010
Rhino Service Bus
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull Interessant eksempel paring MSDN
laquoBuilding Distributed Apps with NHibernate and
Rhino Service Busraquo
bull Bruke (1)request response med message bus og
(2)utstrakt bruk av caching for aring (3)gi rask respons og
(4)stoslashtte occasionally connected samt (5)samle
queries for aring gi et naturlig kodeinterface og unngaring
chatty interface mellom klient og server
Distribuert utvikling paring NET-plattformen
Page 56
12102010
Rhino Service Bus - Eksempel
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 57
12102010
Rhino Service Bus - Eksempel
Rhino Service Bus som service bus over MSMQ
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 58
12102010
Rhino Service Bus - Eksempel
Ved initialisering ndash Sende en request for aring faring svar paring alle queries
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 59
12102010
Rhino Service Bus - Eksempel
Integrert bruk av cache for aring gi hurtig respons
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 60
12102010
Rhino Service Bus - Eksempel
Mottak av melding paring serversiden samt respons
Alt som skjer i en message batch wrappes i en transaksjon
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 61
12102010
Rhino Service Bus - Eksempel
Haringndtering av respons fra server paring klienten
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Hvorfor han lagde det
httpayendecomBlogarchive20081217rhino-service-
busaspx
Ayende sine blogposter om Rhino Service Bus
httpayendecomBlogcategory554aspx
Asynchrounous eksempel paring MSDN (part 1 amp 2)
httpmsdnmicrosoftcomen-usmagazineff796225aspx
httpmsdnmicrosoftcomen-usmagazineff872394aspx
Distribuert utvikling paring NET-plattformen
Page 62
12102010
Rhino Service Bus ndash Mer info
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 63
12102010
NServiceBus vs Biztalk
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
Distribuert utvikling paring NET-plattformen
Page 64
12102010
Azure
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010
bull NServiceBus og meldingseksempler fra Sverre Hundeide
httpwwwslidesharenetsverrehundeideintroduksjon-til-
nservicebus
bull Presentasjoner rundt meldingsbasert arkitektur paring NNUGbull Sverre Hundeide Ole-Marius Moe-Helgesen Jan Ove Skogheim Olsen
bull httpwwwudidahancom
bull httpwwwmsdncom
Distribuert utvikling paring NET-plattformen
Page 65
12102010
Referanser
Sposlashrsmaringl
Distribuert utvikling paring NET-plattformen
Page 66
12102010