SlideShare a Scribd company logo
1 of 11
André Gagnon ing.
Cale systems
• Je travaille dans le domaine du Stationnement
• Je développe un système de requête réponse d’une
borne de paiement vers un dispositif de paiement
(Interac, Carte de crédit)
• Il peut avoir de 0 à n transactions simultanément, d’où le
besoins d’être asynchrone.
• La plupart des dispositif de paiement utilisent, de base,
une communisation RS232.
• On peut utiliser le USB, LAN, Wifi, mais la
communication demeure la même
• Un début et une fin de message
• Un ACK / NAK
• Une longueur de message
• Ex:
•  <STX>Request<ETX><LRC>
•  <ACK>
•  <STX>Response<ETX>
•  <ACK>
• Le modèle proposé par le fournisseur est un modèle Event
Based Asynchronous Pattern.
• Il permet d’être multithread
• Pas à attendre (WaitOne, WaitAll), cependant, il faut un mécanisme
pour rediriger les réponses.
• Le modèle utilise les classes suivantes
• AsyncOperation
• BeginInvoke/EndInvoke
• Event/EventHandler
• !! Comme par hasard, ca ressemble à du Web. Alors, on ne
réinvente pas la roue, on utilise les principe du WEB
• https://msdn.microsoft.com/en-us/library/hh191443.aspx
• Sommairement, on crée une « requête » en mode
asynchrone, le contrôle est immédiatement retourné à
l’appelant.
• À L’aide d’event / EventHandler, nous allons recevoir la
réponse
• ** On doit se retrouver,
• State, Id, etc.
• Static (Thread safe)
• On utilise un header et on peut mettre des trucs dans le header.
• Les appels asynchrone proposent tjrs un « UserState » pour passer
l’objet que tu veux afin de le récupérer dans le callback.
• Header! Comme le HTTP!
• Code code code!
• Calling Synchronous Methods Asynchronously
• https://msdn.microsoft.com/en-us/library/2e08f6yc(v=vs.110).aspx
• Tableau comparatif
• http://stackoverflow.com/questions/9582165/in-c-sharp-net-does-
an-async-operation-necessarily-create-a-thread-that-blocks
• Le mot clé LOCK devrait être utilisé pour de petites et
courtes opérations.
• Dangereux de bloquer des processus
• Utile dans le modèle EAP pour conserver des état par
« id » puisqu’on est asyncrone est que l’on doit, en
quelque sorte, écouter ou questionner l’état du système.
• EX:
• Dans mon système, certains objets doivent avoir une
durée de vie
• Empêche deux requêtes pour un même dispositif en même temps
• Bloque les requêtes dans le cas d’Exception qui rendent le
système instable
• Etc.
• Manuellement, on peut utiliser un objet avec une « date »
et avoir une mécanique qui enlève ces objets après un
certains temps
• Le Framework .net offre des objets pour nous simplifier la
vie
• System.Remoting.Caching
Event based asynchronous pattern

More Related Content

Viewers also liked

programme Fêtes des Lumières 2014
programme Fêtes des Lumières 2014programme Fêtes des Lumières 2014
programme Fêtes des Lumières 2014jgrjgkgkth
 
Présentation skill2 invest
Présentation skill2 investPrésentation skill2 invest
Présentation skill2 investJulie Province
 
Panorama de l'Information Scientifique et Technique pour le doctorant
Panorama de l'Information Scientifique et Technique pour le doctorantPanorama de l'Information Scientifique et Technique pour le doctorant
Panorama de l'Information Scientifique et Technique pour le doctorantCéline Andrieu
 
E-journal Février - Mars 2015
E-journal Février - Mars 2015E-journal Février - Mars 2015
E-journal Février - Mars 2015Ideotour Vietnam
 
E-twinning diaporama fr
E-twinning diaporama frE-twinning diaporama fr
E-twinning diaporama frMaud Vederine
 
Français: faire du sport?
Français: faire du sport?Français: faire du sport?
Français: faire du sport?Emilio Miró
 
Relations entre intégration d’un nouvel outil technologique et planification ...
Relations entre intégration d’un nouvel outil technologique et planification ...Relations entre intégration d’un nouvel outil technologique et planification ...
Relations entre intégration d’un nouvel outil technologique et planification ...Aurélien Fiévez
 
PowerShell - NIk Charlebois
PowerShell - NIk CharleboisPowerShell - NIk Charlebois
PowerShell - NIk CharleboisMSDEVMTL
 

Viewers also liked (20)

Logements prfabriqués fr
Logements prfabriqués frLogements prfabriqués fr
Logements prfabriqués fr
 
Loi 10.95
Loi 10.95Loi 10.95
Loi 10.95
 
Typiš čechyž
Typiš čechyžTypiš čechyž
Typiš čechyž
 
le sommeil
le sommeille sommeil
le sommeil
 
programme Fêtes des Lumières 2014
programme Fêtes des Lumières 2014programme Fêtes des Lumières 2014
programme Fêtes des Lumières 2014
 
Présentation skill2 invest
Présentation skill2 investPrésentation skill2 invest
Présentation skill2 invest
 
Panorama de l'Information Scientifique et Technique pour le doctorant
Panorama de l'Information Scientifique et Technique pour le doctorantPanorama de l'Information Scientifique et Technique pour le doctorant
Panorama de l'Information Scientifique et Technique pour le doctorant
 
Paris pour Chanel
Paris pour ChanelParis pour Chanel
Paris pour Chanel
 
Bâtiment à énergie positive, activité comprise - 6nergy+ - Groupe Gamba
Bâtiment à énergie positive, activité comprise - 6nergy+ - Groupe GambaBâtiment à énergie positive, activité comprise - 6nergy+ - Groupe Gamba
Bâtiment à énergie positive, activité comprise - 6nergy+ - Groupe Gamba
 
E-journal Février - Mars 2015
E-journal Février - Mars 2015E-journal Février - Mars 2015
E-journal Février - Mars 2015
 
Nonsence
NonsenceNonsence
Nonsence
 
Brochure Kerensen Retail & Luxe
Brochure Kerensen Retail & LuxeBrochure Kerensen Retail & Luxe
Brochure Kerensen Retail & Luxe
 
Xml quran
Xml quranXml quran
Xml quran
 
Loi 10 95
Loi 10 95 Loi 10 95
Loi 10 95
 
Plaquette de la saison 2013/2014
Plaquette de la saison 2013/2014Plaquette de la saison 2013/2014
Plaquette de la saison 2013/2014
 
E-twinning diaporama fr
E-twinning diaporama frE-twinning diaporama fr
E-twinning diaporama fr
 
Français: faire du sport?
Français: faire du sport?Français: faire du sport?
Français: faire du sport?
 
Relations entre intégration d’un nouvel outil technologique et planification ...
Relations entre intégration d’un nouvel outil technologique et planification ...Relations entre intégration d’un nouvel outil technologique et planification ...
Relations entre intégration d’un nouvel outil technologique et planification ...
 
Par#11
Par#11Par#11
Par#11
 
PowerShell - NIk Charlebois
PowerShell - NIk CharleboisPowerShell - NIk Charlebois
PowerShell - NIk Charlebois
 

Similar to Event based asynchronous pattern

Push to the web - Websocket et SignalR
Push to the web -  Websocket et SignalRPush to the web -  Websocket et SignalR
Push to the web - Websocket et SignalRMSDEVMTL
 
Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Maxime Leblanc
 
Kevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NETKevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NETMSDEVMTL
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Olivier Le Goaër
 
Java EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdfJava EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdfColombieColombie
 
Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Louis Jacomet
 
Concepts et configuration de base de la commutation
Concepts et configuration de base de la commutationConcepts et configuration de base de la commutation
Concepts et configuration de base de la commutationEL AMRI El Hassan
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotiqueMicrosoft
 
Reseaux Avancés Tunnel_Niveaux347.pdf
Reseaux Avancés Tunnel_Niveaux347.pdfReseaux Avancés Tunnel_Niveaux347.pdf
Reseaux Avancés Tunnel_Niveaux347.pdfSergeAKUE
 
chap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfchap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfdepinfo
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piadelegue
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture WebAdyax
 

Similar to Event based asynchronous pattern (20)

Rails 3 au Djangocong
Rails 3 au DjangocongRails 3 au Djangocong
Rails 3 au Djangocong
 
Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
Push to the web - Websocket et SignalR
Push to the web -  Websocket et SignalRPush to the web -  Websocket et SignalR
Push to the web - Websocket et SignalR
 
Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"Rétro-ingénierie de protocole crypto: Un "starter pack"
Rétro-ingénierie de protocole crypto: Un "starter pack"
 
Kevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NETKevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NET
 
Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !Les Web Services en 60 diapos chrono !
Les Web Services en 60 diapos chrono !
 
Java EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdfJava EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdf
 
_JCVFr
_JCVFr_JCVFr
_JCVFr
 
Le Réseau et Java
Le Réseau et JavaLe Réseau et Java
Le Réseau et Java
 
Cours 8 squid.pdf
Cours 8 squid.pdfCours 8 squid.pdf
Cours 8 squid.pdf
 
Serveurs
ServeursServeurs
Serveurs
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3
 
Concepts et configuration de base de la commutation
Concepts et configuration de base de la commutationConcepts et configuration de base de la commutation
Concepts et configuration de base de la commutation
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
Reseaux Avancés Tunnel_Niveaux347.pdf
Reseaux Avancés Tunnel_Niveaux347.pdfReseaux Avancés Tunnel_Niveaux347.pdf
Reseaux Avancés Tunnel_Niveaux347.pdf
 
chap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfchap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdf
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry pi
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
 

More from MSDEVMTL

Intro grpc.net
Intro  grpc.netIntro  grpc.net
Intro grpc.netMSDEVMTL
 
Grpc and asp.net partie 2
Grpc and asp.net partie 2Grpc and asp.net partie 2
Grpc and asp.net partie 2MSDEVMTL
 
Property based testing
Property based testingProperty based testing
Property based testingMSDEVMTL
 
Improve cloud visibility and cost in Microsoft Azure
Improve cloud visibility and cost in Microsoft AzureImprove cloud visibility and cost in Microsoft Azure
Improve cloud visibility and cost in Microsoft AzureMSDEVMTL
 
Return on Ignite 2019: Azure, .NET, A.I. & Data
Return on Ignite 2019: Azure, .NET, A.I. & DataReturn on Ignite 2019: Azure, .NET, A.I. & Data
Return on Ignite 2019: Azure, .NET, A.I. & DataMSDEVMTL
 
C sharp 8.0 new features
C sharp 8.0 new featuresC sharp 8.0 new features
C sharp 8.0 new featuresMSDEVMTL
 
Asp.net core 3
Asp.net core 3Asp.net core 3
Asp.net core 3MSDEVMTL
 
MSDEVMTL Informations 2019
MSDEVMTL Informations 2019MSDEVMTL Informations 2019
MSDEVMTL Informations 2019MSDEVMTL
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcoreMSDEVMTL
 
Groupe Excel et Power BI - Rencontre du 25 septembre 2018
Groupe Excel et Power BI  - Rencontre du 25 septembre 2018Groupe Excel et Power BI  - Rencontre du 25 septembre 2018
Groupe Excel et Power BI - Rencontre du 25 septembre 2018MSDEVMTL
 
Api gateway
Api gatewayApi gateway
Api gatewayMSDEVMTL
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcoreMSDEVMTL
 
Stephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environmentsStephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environmentsMSDEVMTL
 
Eric Routhier: Garder le contrôle sur vos coûts Azure
Eric Routhier: Garder le contrôle sur vos coûts AzureEric Routhier: Garder le contrôle sur vos coûts Azure
Eric Routhier: Garder le contrôle sur vos coûts AzureMSDEVMTL
 
Data science presentation
Data science presentationData science presentation
Data science presentationMSDEVMTL
 
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...MSDEVMTL
 
Open id connect, azure ad, angular 5, web api core
Open id connect, azure ad, angular 5, web api coreOpen id connect, azure ad, angular 5, web api core
Open id connect, azure ad, angular 5, web api coreMSDEVMTL
 
Yoann Clombe : Fail fast, iterate quickly with power bi and google analytics
Yoann Clombe : Fail fast, iterate quickly with power bi and google analyticsYoann Clombe : Fail fast, iterate quickly with power bi and google analytics
Yoann Clombe : Fail fast, iterate quickly with power bi and google analyticsMSDEVMTL
 
CAE: etude de cas - Rolling Average
CAE: etude de cas - Rolling AverageCAE: etude de cas - Rolling Average
CAE: etude de cas - Rolling AverageMSDEVMTL
 
CAE: etude de cas
CAE: etude de casCAE: etude de cas
CAE: etude de casMSDEVMTL
 

More from MSDEVMTL (20)

Intro grpc.net
Intro  grpc.netIntro  grpc.net
Intro grpc.net
 
Grpc and asp.net partie 2
Grpc and asp.net partie 2Grpc and asp.net partie 2
Grpc and asp.net partie 2
 
Property based testing
Property based testingProperty based testing
Property based testing
 
Improve cloud visibility and cost in Microsoft Azure
Improve cloud visibility and cost in Microsoft AzureImprove cloud visibility and cost in Microsoft Azure
Improve cloud visibility and cost in Microsoft Azure
 
Return on Ignite 2019: Azure, .NET, A.I. & Data
Return on Ignite 2019: Azure, .NET, A.I. & DataReturn on Ignite 2019: Azure, .NET, A.I. & Data
Return on Ignite 2019: Azure, .NET, A.I. & Data
 
C sharp 8.0 new features
C sharp 8.0 new featuresC sharp 8.0 new features
C sharp 8.0 new features
 
Asp.net core 3
Asp.net core 3Asp.net core 3
Asp.net core 3
 
MSDEVMTL Informations 2019
MSDEVMTL Informations 2019MSDEVMTL Informations 2019
MSDEVMTL Informations 2019
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcore
 
Groupe Excel et Power BI - Rencontre du 25 septembre 2018
Groupe Excel et Power BI  - Rencontre du 25 septembre 2018Groupe Excel et Power BI  - Rencontre du 25 septembre 2018
Groupe Excel et Power BI - Rencontre du 25 septembre 2018
 
Api gateway
Api gatewayApi gateway
Api gateway
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcore
 
Stephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environmentsStephane Lapointe: Governance in Azure, keep control of your environments
Stephane Lapointe: Governance in Azure, keep control of your environments
 
Eric Routhier: Garder le contrôle sur vos coûts Azure
Eric Routhier: Garder le contrôle sur vos coûts AzureEric Routhier: Garder le contrôle sur vos coûts Azure
Eric Routhier: Garder le contrôle sur vos coûts Azure
 
Data science presentation
Data science presentationData science presentation
Data science presentation
 
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
Michel Ouellette + Gabriel Lainesse: Process Automation & Data Analytics at S...
 
Open id connect, azure ad, angular 5, web api core
Open id connect, azure ad, angular 5, web api coreOpen id connect, azure ad, angular 5, web api core
Open id connect, azure ad, angular 5, web api core
 
Yoann Clombe : Fail fast, iterate quickly with power bi and google analytics
Yoann Clombe : Fail fast, iterate quickly with power bi and google analyticsYoann Clombe : Fail fast, iterate quickly with power bi and google analytics
Yoann Clombe : Fail fast, iterate quickly with power bi and google analytics
 
CAE: etude de cas - Rolling Average
CAE: etude de cas - Rolling AverageCAE: etude de cas - Rolling Average
CAE: etude de cas - Rolling Average
 
CAE: etude de cas
CAE: etude de casCAE: etude de cas
CAE: etude de cas
 

Event based asynchronous pattern

  • 2. • Je travaille dans le domaine du Stationnement • Je développe un système de requête réponse d’une borne de paiement vers un dispositif de paiement (Interac, Carte de crédit) • Il peut avoir de 0 à n transactions simultanément, d’où le besoins d’être asynchrone.
  • 3. • La plupart des dispositif de paiement utilisent, de base, une communisation RS232. • On peut utiliser le USB, LAN, Wifi, mais la communication demeure la même • Un début et une fin de message • Un ACK / NAK • Une longueur de message • Ex: •  <STX>Request<ETX><LRC> •  <ACK> •  <STX>Response<ETX> •  <ACK>
  • 4. • Le modèle proposé par le fournisseur est un modèle Event Based Asynchronous Pattern. • Il permet d’être multithread • Pas à attendre (WaitOne, WaitAll), cependant, il faut un mécanisme pour rediriger les réponses. • Le modèle utilise les classes suivantes • AsyncOperation • BeginInvoke/EndInvoke • Event/EventHandler • !! Comme par hasard, ca ressemble à du Web. Alors, on ne réinvente pas la roue, on utilise les principe du WEB • https://msdn.microsoft.com/en-us/library/hh191443.aspx
  • 5. • Sommairement, on crée une « requête » en mode asynchrone, le contrôle est immédiatement retourné à l’appelant. • À L’aide d’event / EventHandler, nous allons recevoir la réponse • ** On doit se retrouver, • State, Id, etc. • Static (Thread safe) • On utilise un header et on peut mettre des trucs dans le header. • Les appels asynchrone proposent tjrs un « UserState » pour passer l’objet que tu veux afin de le récupérer dans le callback. • Header! Comme le HTTP!
  • 6.
  • 7. • Code code code! • Calling Synchronous Methods Asynchronously • https://msdn.microsoft.com/en-us/library/2e08f6yc(v=vs.110).aspx
  • 8. • Tableau comparatif • http://stackoverflow.com/questions/9582165/in-c-sharp-net-does- an-async-operation-necessarily-create-a-thread-that-blocks
  • 9. • Le mot clé LOCK devrait être utilisé pour de petites et courtes opérations. • Dangereux de bloquer des processus • Utile dans le modèle EAP pour conserver des état par « id » puisqu’on est asyncrone est que l’on doit, en quelque sorte, écouter ou questionner l’état du système. • EX:
  • 10. • Dans mon système, certains objets doivent avoir une durée de vie • Empêche deux requêtes pour un même dispositif en même temps • Bloque les requêtes dans le cas d’Exception qui rendent le système instable • Etc. • Manuellement, on peut utiliser un objet avec une « date » et avoir une mécanique qui enlève ces objets après un certains temps • Le Framework .net offre des objets pour nous simplifier la vie • System.Remoting.Caching