Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

0

Share

Download to read offline

Event based asynchronous pattern

Download to read offline

Présentation du pattern EAP (Event-based Asynchronous Pattern) qui m'a permis de développer un serveur tiers multi-thread et non-blocking de gestion de requêtes. Le projet sur lequel je travaille consiste à développer un serveur qui communique en TCP avec des machines de paiement dans le domaine du stationnement. Nous survolerons aussi les "lock"

Conférencier: André Gagnon

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Event based asynchronous pattern

  1. 1. André Gagnon ing. Cale systems
  2. 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. 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. 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. 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. 6. • Code code code! • Calling Synchronous Methods Asynchronously • https://msdn.microsoft.com/en-us/library/2e08f6yc(v=vs.110).aspx
  7. 7. • Tableau comparatif • http://stackoverflow.com/questions/9582165/in-c-sharp-net-does- an-async-operation-necessarily-create-a-thread-that-blocks
  8. 8. • 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:
  9. 9. • 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

Présentation du pattern EAP (Event-based Asynchronous Pattern) qui m'a permis de développer un serveur tiers multi-thread et non-blocking de gestion de requêtes. Le projet sur lequel je travaille consiste à développer un serveur qui communique en TCP avec des machines de paiement dans le domaine du stationnement. Nous survolerons aussi les "lock" Conférencier: André Gagnon

Views

Total views

408

On Slideshare

0

From embeds

0

Number of embeds

5

Actions

Downloads

3

Shares

0

Comments

0

Likes

0

×