ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Reliable MessagingMarc de Graauw
Reliable messaging
Betrouwbaar transportNetwerk is niet betrouwbaarHet is niet te garanderen dat twee partijen beide 100% zeker weten dat communicatie geslaagd isHet is wel te garanderen dat als de communicatie niet geslaagd is, tenminste een partij dat weetAanname: vroeg of laat is het netwerk weer beschikbaar
Eisen betrouwbaar transportIeder bericht wordt minimaal een keer afgeleverdIeder bericht wordt maximaal een keer afgeleverdBerichten worden afgeleverd in de volgorde waarin ze verzonden zijnAfgeleverde berichten worden bewaard
Het IssueTransport over HTTP is niet betrouwbaarGeen antwoord op een bericht:door timeout, netwerk down, server downniet zeker of het bericht al dan niet aangekomen en/of verwerkt is
HTTP Methods (RFC 2616)safe heeft geen neveneffecten op de serverHTTP: GETb.v.: opvragen informatieidempotentlaat server in zelfde staat na herhaling HTTP DELETE, PUTb.v. verwijderen recordniet-idempotentwijzigt serverHTTP  POSTb.v. 100 aandelen kopen
ZenderOntvangerBericht
ZenderOntvangerBerichtVerwerk berichtKopie van berichtOntvangstbevestiging
ZenderOntvangerVerwerk berichtBerichtOntvangstbevestigingNiet verwerkenKopie van berichtOntvangstbevestiging
Betrouwbare afleveringGegarandeerde afleveringberichtnummersontvangstbevestigingeventueel duplicaat zendenEenmalige afleveringduplicaatdetectieduplicaatverwijderingVolgordelijke afleveringoplopende berichtnummering
Eisen aan betrouwbaar transportEis 1: duplicaatdetectie is nodig voor niet-idempotente actiesEis 2: ontvangstbevestigingen zijn nodig bij niet-directe actiesOntwerprichtlijn: Geef bij iedere interactie aan of deze veilig en/of idempotent isOntwerprichtlijn: Ieder bericht waarop niet direct een (ander) antwoord komt, krijgt een ontvangstbevestigingOntwerprichtlijn: Idempotente berichten waarop het verwachte antwoord niet komt, worden herhaald met een nieuw bericht-id. Geen duplicaat dus, maar een nieuw berichtOntwerprichtlijn: De ontvanger hoeft voor idempotente berichten geen status (bericht-id en verzonden antwoord) te bewarenOntwerprichtlijn: Niet-idempotente berichten waarop het verwachte antwoord niet komt, worden herhaald met een duplicaat.
Transport Level Reliability
WS-ReliableMessagingApache Sandesha 2 ondersteund WS-RM 1.1 voor Axis2 Java en C++http://ws.apache.org/sandesha/sandesha2/index.htmlWSO2 bevat Sandesha2 en ondersteund daarmee ook WS-RM 1.1.Metro 3.0.1 (onderdeel van J2EE reference implementatie"glassfish") ondersteund in ieder geval WS-RM 1.1.https://metro.dev.java.net/Apache CXF ondersteund gezien de source alleen WS-RM 1.0.JBossWS vanaf versie 3.0.1: ondersteund 1.0 en 1.1.https://jira.jboss.org/jira/browse/JBWS-515http://jbossws.jboss.org/mediawiki/index.php?title=WS_Reliable_MessagingMicrosoft .Net ondersteund WS-RM 1.1 vanaf versie 3.5, Windows Communication Framework
Reliable messaging
WS-ReliableMessagingCreateSequenceCreateSequenceResponseSequenceSequence + AckRequestedSequenceAcknowledgementTerminateSequenceTerminateSequenceResponse
Infra 1
Infra 2tekenentoken, berichteindpunttransport,opslaan
ZIMGBZ 1GBZ 2appopslagackackapp
WSRM patronen1-waybidirectionalanonymousveel berichten (atom. aanmelden)plaatjes
OntvangerZenderHL7v3 Query1. QueriesHL7v3 Antwoord2. Bericht zonderantwoordHL7v3 BerichtHL7v3 Accept AcknowledgementHL7v3 Bericht 3. Bericht metantwoordHL7v3 BerichtResponse (Accept or Reject)
ZIMGBZ 1CreateSequenceCreateSequenceResponseHL7v3 bericht 1 + AckRequestack 1TerminateSequenceTerminateSequenceResponse
ZIMGBZ 1CreateSequenceCreateSequenceResponseHL7v3 bericht 1HL7v3 bericht 2HL7v3 bericht 3HL7v3 bericht 4HL7v3 bericht 5 + AckRequestack 1..5TerminateSequenceTerminateSequenceResponse
ZIMGBZ 1CreateSequenceCreateSequenceResponseHL7v3 bericht 1HL7v3 bericht 2HL7v3 bericht 3HL7v3 bericht 4HL7v3 bericht 5 + AckRequestack 2..5HL7v3 bericht 1 + AckRequestack 1TerminateSequenceTerminateSequenceResponse
ZIMGBZ 1CreateSequenceCreateSequenceResponseHL7v3 bericht a1HL7v3 bericht a2HL7v3 bericht b1HL7v3 bericht a3HL7v3 bericht a4 + AckRequestHL7v3 bericht b2 + ackRequestack a1..a4ack b1..b2TerminateSequenceTerminateSequenceResponse
ZIMGBZ 1HTTP Request + HL7v3 bericht 1 HTTP Response + HL7v3 Accept Ack
ZIMGBZ 1CreateSequenceCreateSequenceResponseHTTP Request +HL7v3 bericht 1 + AckRequestHTTP Response + ack 1TerminateSequenceTerminateSequenceResponse
ZIMGBZ 1CreateSequenceCreateSequenceResponseHTTP Request +HL7v3 bericht 1 + AckRequestHTTP 200 OKHTTP Response +ack 1HTTP 200 OKTerminateSequenceTerminateSequenceResponse
Welke communicatiepatronen?anonymous one-way, one message, one ackanonymous one-way, many messages, many acksaddressed one-way, many messages, one ack?bidirectional – (nog) niet?alles anonymous?
Business level Reliability
businessdocumentbusinessdocumentEnvelopeHeaders:Web Service SenderWeb Service Receiverreliabilityreliability modulemessagingreliability modulemessagingsecuritysecurity modulesecurity modulePayload:transaction moduletransaction modulebusinessdocumentet ceteraet cetera
Scenario 1: Resending worksSenderReceiverMessageDuplicate MessageProcess MessageAcknowledgement
Scenario 2: Resending failsSenderReceiverMessageProcess MessageAcknowledgementDuplicate MessageProcess MessageAcknowledgement
Scenario 3: Reliable messagingSenderReceiverMessageProcess MessageAcknowledgementDuplicate MessageDiscard DuplicateAcknowledgement
Sender’sTransportModuleReceiver’sTransportModuleSender’sBusinessModuleReceiver’sBusinessModulePlace OrderOrderMessageTransport AckSubmit OrderAccept OrderAcceptMessageTransport AckSubmit Accept
GP’sTransportModulePharmacistsTransportModuleGP’sConsultationApplicationPharmacistsPrescriptionApplicationPrescriptionPrescriptionPrescriptionprescription.id=xprescription.id=xprescription.id=xAck prescriptionPrescriptionPrescriptionprescription.id=xPrescriptionprescription.id=xprescription.id=xErrorErrorErrorprescription.id=xalready existsprescription.id=xalready existsprescription.id=xalready exists

More Related Content

Viewers also liked (19)

Contestador EscuelaContestador Escuela
Contestador Escuela
Jose Luis Ancona
Ìý
6 infeccoes do_tracto_urinario6 infeccoes do_tracto_urinario
6 infeccoes do_tracto_urinario
Daniele Marchi
Ìý
Preventores sociales comunitariosPreventores sociales comunitarios
Preventores sociales comunitarios
Richard Ortega
Ìý
Bons VentosBons Ventos
Bons Ventos
Marco Coghi
Ìý
ERPeixotoERPeixoto
ERPeixoto
Marco Coghi
Ìý
PMO EM LISARBPMO EM LISARB
PMO EM LISARB
Marco Coghi
Ìý
PMO EM LISARBPMO EM LISARB
PMO EM LISARB
Marco Coghi
Ìý
São paulo geep25-fundamentos-educaSão paulo geep25-fundamentos-educa
São paulo geep25-fundamentos-educa
Marco Coghi
Ìý
LifeLife
Life
Marco Coghi
Ìý
16 Jan 2012 :: Pergunta ao Governo: «medicamentos dispensados a doentes de es...16 Jan 2012 :: Pergunta ao Governo: «medicamentos dispensados a doentes de es...
16 Jan 2012 :: Pergunta ao Governo: «medicamentos dispensados a doentes de es...
SPEM - Sociedade Portuguesa de Esclerose Múltipla
Ìý
Armar a las masas revolucionariasArmar a las masas revolucionarias
Armar a las masas revolucionarias
Luis Landaeta
Ìý
Computacion dia positivasComputacion dia positivas
Computacion dia positivas
alexdiaz1992
Ìý
Recife-GP11-FGP-Grupo5Recife-GP11-FGP-Grupo5
Recife-GP11-FGP-Grupo5
Marco Coghi
Ìý
Bh gp39-pmo-clean fan - ventos do campoBh gp39-pmo-clean fan - ventos do campo
Bh gp39-pmo-clean fan - ventos do campo
Marco Coghi
Ìý
´¡±è°ù±ð²õ±ð²Ô³Ù²¹Ã§Ã£´Ç±Ê·¡°Õ´¡±è°ù±ð²õ±ð²Ô³Ù²¹Ã§Ã£´Ç±Ê·¡°Õ
´¡±è°ù±ð²õ±ð²Ô³Ù²¹Ã§Ã£´Ç±Ê·¡°Õ
Leticiacs10
Ìý
PMO em Lisarb - equipe GrupoPMO em Lisarb - equipe Grupo
PMO em Lisarb - equipe Grupo
Marco Coghi
Ìý
Conflicto y guerra sociologia historica (raymon aron)Conflicto y guerra sociologia historica (raymon aron)
Conflicto y guerra sociologia historica (raymon aron)
Luis Landaeta
Ìý
Matematica projeto conectaMatematica projeto conecta
Matematica projeto conecta
stemcbm
Ìý
Cultura mocheCultura moche
Cultura moche
Yagodaluisa
Ìý
Contestador EscuelaContestador Escuela
Contestador Escuela
Jose Luis Ancona
Ìý
6 infeccoes do_tracto_urinario6 infeccoes do_tracto_urinario
6 infeccoes do_tracto_urinario
Daniele Marchi
Ìý
Preventores sociales comunitariosPreventores sociales comunitarios
Preventores sociales comunitarios
Richard Ortega
Ìý
Bons VentosBons Ventos
Bons Ventos
Marco Coghi
Ìý
ERPeixotoERPeixoto
ERPeixoto
Marco Coghi
Ìý
PMO EM LISARBPMO EM LISARB
PMO EM LISARB
Marco Coghi
Ìý
PMO EM LISARBPMO EM LISARB
PMO EM LISARB
Marco Coghi
Ìý
São paulo geep25-fundamentos-educaSão paulo geep25-fundamentos-educa
São paulo geep25-fundamentos-educa
Marco Coghi
Ìý
LifeLife
Life
Marco Coghi
Ìý
16 Jan 2012 :: Pergunta ao Governo: «medicamentos dispensados a doentes de es...16 Jan 2012 :: Pergunta ao Governo: «medicamentos dispensados a doentes de es...
16 Jan 2012 :: Pergunta ao Governo: «medicamentos dispensados a doentes de es...
SPEM - Sociedade Portuguesa de Esclerose Múltipla
Ìý
Armar a las masas revolucionariasArmar a las masas revolucionarias
Armar a las masas revolucionarias
Luis Landaeta
Ìý
Computacion dia positivasComputacion dia positivas
Computacion dia positivas
alexdiaz1992
Ìý
Recife-GP11-FGP-Grupo5Recife-GP11-FGP-Grupo5
Recife-GP11-FGP-Grupo5
Marco Coghi
Ìý
Bh gp39-pmo-clean fan - ventos do campoBh gp39-pmo-clean fan - ventos do campo
Bh gp39-pmo-clean fan - ventos do campo
Marco Coghi
Ìý
´¡±è°ù±ð²õ±ð²Ô³Ù²¹Ã§Ã£´Ç±Ê·¡°Õ´¡±è°ù±ð²õ±ð²Ô³Ù²¹Ã§Ã£´Ç±Ê·¡°Õ
´¡±è°ù±ð²õ±ð²Ô³Ù²¹Ã§Ã£´Ç±Ê·¡°Õ
Leticiacs10
Ìý
PMO em Lisarb - equipe GrupoPMO em Lisarb - equipe Grupo
PMO em Lisarb - equipe Grupo
Marco Coghi
Ìý
Conflicto y guerra sociologia historica (raymon aron)Conflicto y guerra sociologia historica (raymon aron)
Conflicto y guerra sociologia historica (raymon aron)
Luis Landaeta
Ìý
Matematica projeto conectaMatematica projeto conecta
Matematica projeto conecta
stemcbm
Ìý
Cultura mocheCultura moche
Cultura moche
Yagodaluisa
Ìý

More from Marc de Graauw (13)

Elektronische handtekening in de zorg
Elektronische handtekening in de zorgElektronische handtekening in de zorg
Elektronische handtekening in de zorg
Marc de Graauw
Ìý
Authentication and signatures overview
Authentication and signatures   overviewAuthentication and signatures   overview
Authentication and signatures overview
Marc de Graauw
Ìý
Identiteit in de ict
Identiteit in de ictIdentiteit in de ict
Identiteit in de ict
Marc de Graauw
Ìý
Tokenauthenticatie en xml signature in detail
Tokenauthenticatie en xml signature in detailTokenauthenticatie en xml signature in detail
Tokenauthenticatie en xml signature in detail
Marc de Graauw
Ìý
Overzicht aorta
Overzicht aortaOverzicht aorta
Overzicht aorta
Marc de Graauw
Ìý
Hl7v3 schema issues
Hl7v3 schema issuesHl7v3 schema issues
Hl7v3 schema issues
Marc de Graauw
Ìý
Hl7v3 and web services
Hl7v3 and web servicesHl7v3 and web services
Hl7v3 and web services
Marc de Graauw
Ìý
XML tekortkomingen en pluspunten
XML   tekortkomingen en pluspuntenXML   tekortkomingen en pluspunten
XML tekortkomingen en pluspunten
Marc de Graauw
Ìý
Versioning theory
Versioning theoryVersioning theory
Versioning theory
Marc de Graauw
Ìý
Versiecontrole in de keten
Versiecontrole in de ketenVersiecontrole in de keten
Versiecontrole in de keten
Marc de Graauw
Ìý
Luister niet naar de gebruiker
Luister niet naar de gebruikerLuister niet naar de gebruiker
Luister niet naar de gebruiker
Marc de Graauw
Ìý
Elektronische handtekening in de zorg
Elektronische handtekening in de zorgElektronische handtekening in de zorg
Elektronische handtekening in de zorg
Marc de Graauw
Ìý
Authentication and signatures overview
Authentication and signatures   overviewAuthentication and signatures   overview
Authentication and signatures overview
Marc de Graauw
Ìý
Identiteit in de ict
Identiteit in de ictIdentiteit in de ict
Identiteit in de ict
Marc de Graauw
Ìý
Tokenauthenticatie en xml signature in detail
Tokenauthenticatie en xml signature in detailTokenauthenticatie en xml signature in detail
Tokenauthenticatie en xml signature in detail
Marc de Graauw
Ìý
Hl7v3 schema issues
Hl7v3 schema issuesHl7v3 schema issues
Hl7v3 schema issues
Marc de Graauw
Ìý
Hl7v3 and web services
Hl7v3 and web servicesHl7v3 and web services
Hl7v3 and web services
Marc de Graauw
Ìý
XML tekortkomingen en pluspunten
XML   tekortkomingen en pluspuntenXML   tekortkomingen en pluspunten
XML tekortkomingen en pluspunten
Marc de Graauw
Ìý
Versioning theory
Versioning theoryVersioning theory
Versioning theory
Marc de Graauw
Ìý
Versiecontrole in de keten
Versiecontrole in de ketenVersiecontrole in de keten
Versiecontrole in de keten
Marc de Graauw
Ìý
Luister niet naar de gebruiker
Luister niet naar de gebruikerLuister niet naar de gebruiker
Luister niet naar de gebruiker
Marc de Graauw
Ìý

Reliable messaging