QUID des Messages synchrones et asynchrones ?
Dans la LOI2S la communication des Messages numériques inter Composants émis par les Processus sont de 2 Types :
- Synchrone en temps réel, le Processus émetteur est en attente d’une réponse
- Asynchrone en temps différé, le Processus émetteur n’attend pas de réponse
Rappel :
Les Composants ou plus précisément les Processus de la LOI2S communiquent entre eux au travers de Messages ciblés ou de Messages diffus.
- Un Message ciblé est un Message dont le ou les Composants destinataire sont identifiés.
- Un Message diffus est un Message sans Composant destinataire désigné. En fonction du Type de Message ce sont les Composants qui captent les Messages disponibles sur le BUS à Messages.
Dans un Système d’Information distribué massivement parallèle la validité, l’intégrité et la cohérence des informations nécessitent une attention particulière. Chaque Objet métier, chaque Donnée doivent préserver un Etat valide et cohérent malgré la sollicitation de multiples Messages asynchrones émis pas différents Composants internes ou externes au SI.
Un Processus amené à changer l’état d’Objets doit bloquer l’accès aux Objets impliqués et interdépendants durant toute la durée de son exécution, c.à.d. le déclenchement de tous autres Processus impliquant ces mêmes Objets. Le Processus doit garantir l’intégrité et la cohérence de l’Etat des Objets en fin d’exécution. On parle de Processus transactionnel ou Transaction. Si le Processus s’est exécuté correctement, les Objets impliqués ou interdépendants conservent un Etat valide, cohérent et intègre, sinon dans le cas contraire, en cas de dysfonctionnement, l’Etat des Objets impliqués doivent rester dans l’Etat précédent le début de l’exécution du Processus. Le Message initiateur du Processus est renvoyé à son émetteur avec un Compte rendu d’Erreur.
Il appartient à chaque émetteur ou Composant Fournisseur de Message de savoir interpréter les Messages d’AR Accusé Réception ou de CR Compte Rendu.
QUID d’un Message synchrone ?
Le Processus instancié qui émet un Message DDE de Demande (requête ou service délégué) reste en attente d’une réponse immédiate pour continuer l’exécution en cours dont la suite dépend de l’acquittement du Message AR d’Accusé Réception, du Message CR de Compte Rendu de prise en compte. On parle de traitement séquentiel, d’algorithme séquentiel ou d’algorithme série, étape par étape ou pas à pas.

Dans ce cas le Processus reste instancié dans le Composant qui l’encapsule durant la prise ne charge du Message de délégation de service. Les Objets impliqués ou interdépendants bloquent tous autres Processus concernant tous ces Objets.
QUID d’un Message asynchrone ?
Le Processus instancié qui émet un Message DDE de Demande (requête ou service délégué) n’attend pas de réponse pour continuer son exécution. Le Message AR d’Accusé Réception et le Message CR de Compte Rendu sont pris en charge par d’autres instance de Processus dans un temps différé plus au moins long. On parle de traitements parallèles ou simultanés.

Dans ce cas chaque Processus est instancié et s’exécute indépendamment les uns des autres ayant chacun leur propre temps d’exécution. On parle de traitements parallèles d’algorithme parallèle ou d’algorithme simultanée.
Dans ce cas la coordination entre les différents Messages asynchrones doit être pris en charge par chaque Processus en se référant à l’Etat des Objets manipulés ou interdépendants au moment de son exécution. Des règles de priorité ou d’accès concurrents doivent être mise en place dans les Processus : l’Etat des Objets impactées détermine si le Processus accepte, refuse ou diffère la prise en compte du Message.