66
Utvikling av distribuerte systemer på .NET-platformen Distribuert utvikling på .NET-plattformen Page 1 , 12.10.2010

Distribuert utvikling på net platformen

Embed Size (px)

Citation preview

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

Sposlashrsmaringl

Distribuert utvikling paring NET-plattformen

Page 66

12102010