FR2836611A1 - Procede de communication reseau avec une carte a puce par messages asynchrones - Google Patents

Procede de communication reseau avec une carte a puce par messages asynchrones Download PDF

Info

Publication number
FR2836611A1
FR2836611A1 FR0202567A FR0202567A FR2836611A1 FR 2836611 A1 FR2836611 A1 FR 2836611A1 FR 0202567 A FR0202567 A FR 0202567A FR 0202567 A FR0202567 A FR 0202567A FR 2836611 A1 FR2836611 A1 FR 2836611A1
Authority
FR
France
Prior art keywords
agent
card
network
message
messages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR0202567A
Other languages
English (en)
Inventor
Olivier Fambon
Andre Freyssinet
Philippe Laumay
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Institut National de Recherche en Informatique et en Automatique INRIA
Original Assignee
Bull SA
Institut National de Recherche en Informatique et en Automatique INRIA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SA, Institut National de Recherche en Informatique et en Automatique INRIA filed Critical Bull SA
Priority to FR0202567A priority Critical patent/FR2836611A1/fr
Priority to US10/505,931 priority patent/US8606914B2/en
Priority to AT03704876T priority patent/ATE362268T1/de
Priority to EP03704876A priority patent/EP1481531B9/fr
Priority to AU2003207876A priority patent/AU2003207876A1/en
Priority to PCT/IB2003/000770 priority patent/WO2003073727A1/fr
Priority to DE60313746T priority patent/DE60313746T2/de
Publication of FR2836611A1 publication Critical patent/FR2836611A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Abstract

La présente invention concerne un procédé de communication informatique par messages asynchrones au sein d'une architecture logicielle distribuée, par exemple du type AAA-MOM ( « Agent Anytime Anywhere - Message Oriented Middleware » ), incluant une plate-forme déconnectable comme une carte à puce. Cette communication se fait entre d'une part un agent de carte (CA), mémorisé dans une plate-forme amovible (31, 32), connectable à un terminal (21, 22), et d'autre part au moins un agent logiciel standard (AS). Cet agent standard peut être mémorisé dans ce réseau informatique (1), dans une autre plate-forme amovible. Un message émis par l'agent de carte (CA) vers un agent standard (AS) ou émis par un agent standard (AS) vers l'agent de carte (CA), est mémorisé dans le réseau par au moins un agent intermédiaire (CEPA, CAPA) gérant les communications de cet agent de carte (CA) avec le réseau (1).

Description

<Desc/Clms Page number 1>
Procédé de communication réseau avec une carte à puce par messages asynchrones
La présente invention concerne un procédé de communication informatique par messages asynchrones au sein d'une architecture logicielle distribuée, par exemple du type AAA-MOM ( Agent Anytime AnywhereMessage Oriented Middleware en Français : couche logicielle intermédiaire orientée message du type agent, n'importe quand, n'importe où ), incluant une plate-forme déconnectable comme une carte à puce.
Les applications ou systèmes d'informations amenés à utiliser un ou plusieurs réseaux informatiques de stations de traitements de données numériques constituent une partie importante des développements informatiques actuels et à venir. De tels systèmes peuvent jouer un rôle important dans des applications telles que la gestion de données communes à plusieurs personnes ou groupes de personnes. De telles applications peuvent de plus avoir à gérer des données, mémorisées dans des plate-formes situées en des lieux différents et pouvant être différents selon les moments.
Le développement de telles applications utilisant des réseaux est de plus en plus souvent basé sur des logiciels ou programmes informatiques présentant une architecture dite distribuée, c'est à dire dont des composants logiciels différents existent et sont exécutés sur des stations de traitement de données, ou plate-formes, différentes. Ces composants peuvent également être situés sur des plate-formes différentes selon les moments. De telles stations de traitement de données sont reliées par une combinaison de réseaux de communication informatique, d'architectures matérielles et logicielles pouvant être hétérogènes, et constituent chacune un noeud d'un réseau qui peut présenter de nombreuses formes et couvrir des zones plus ou moins étendues, par exemple depuis la simple configuration locale comportant quelques stations jusqu'à un réseau global comme l'Internet.
Dans la suite de la présente description, on entendra par noeuds les différentes stations ou plate-formes matérielles d'un tel réseau et par le
<Desc/Clms Page number 2>
réseau l'ensemble de ces noeuds et des architectures physiques et logicielles assurant une communication entre eux.
Une application à architecture distribuée pourra donc comprendre un ensemble d'agents (composants logiciels réactifs) fonctionnant et interagissant ensemble. Ces agents peuvent exister sur un ou plusieurs noeuds différents du réseau en même temps, voire utiliser des noeuds différents au cours du temps.
Une telle application présente un certain nombre d'avantages, comme de ne pas être dépendante d'un noeud unique, que ce soit quant à son existence ou à ses performances.
Pour le développement et la réalisation d'une telle application distribuée, la communication entre les différents agents peut être gérée au niveau de chaque noeud par une couche logicielle, dite middleware , intermédiaire entre le système d'exploitation de la plate-forme constituant le noeud et les applications ou les agents fonctionnant sur cette plate-forme. Parmi les différents types de middleware existe un type d'infrastructure logicielle couramment appelé MOM (c'est à dire Message Oriented Middleware en anglais), dont le fonctionnement utilise des messages asynchrones comme base de toutes les structures de communication, coordination et synchronisation de ses différents composants ou agents. Ces messages sont qualifiés d'asynchrones au sens où ils peuvent être émis, et respectivement reçus, indépendamment de la disponibilité de leur destinataire, et respectivement émetteur. De façon typique, de tels messages contiennent, en plus des informations à transmettre, un ou plusieurs codes identifiant l'émetteur et le destinataire du message, et éventuellement des informations complémentaires ou des marquages utilisés et modifiables par les différents agents intervenant dans leur transmission.
Une telle infrastructure de communication présente l'avantage de fournir dans nombres de langages de programmation de haut niveau et en particulier orientés objet, comme Java@, des outils de communication entre agents qui soient fiables et faciles à utiliser. En effet, l'utilisation des outils fournis dans par une telle infrastructure logicielle est alors indépendant des modes de fonctionnement réel des communications au sein du réseau.
<Desc/Clms Page number 3>
Au sein des différents types de MOM existe en particulier une architecture appelée AAA ou A3 ( Agent Anytime Anywhere en anglais), utilisée par exemple par ! e) ogicie) NETWALL@, et décrite en particulier par la communication effectuée sous la référence suivante : An Agent Platform for Reliable Asynchronous Distributed Programming)), L. Bellissard, N. De Palma, A. Freyssinet, M. Herrmann, S. Lacourte, Symposium on Reliable Distributed Systems (SRDS'99) (short paper), Lausanne-Suisse, 20-22 Octobre 1999
Cette architecture AAA est basée sur une infrastructure logicielle de communication de type MOM, qui assure la gestion de ces messages asynchrones et se compose entre autres d' Agents et de Serveurs d'Agents . Un agent peut être défini comme un composé logiciel réactif unitaire, dont la réaction s'effectue en fonction d'évènements déterminés. Un serveur d'agents comporte un programme logiciel exécuté sur une plate-forme et qui gère un certain nombre d'agents, et peut comporter un composant, dit moteur ( Engine en Anglais), qui exécute les opérations logicielles constituant les réactions des agents qu'il gère.
Dès lors qu'au moins une application exécutée dans cette architecture doit fonctionner pendant une durée déterminée, voire de façon permanente, l'architecture AAA en elle-même et un certain nombre des agents AAA qu'elle comporte doivent fonctionner et être accessibles pendant au moins cette même période, ce que l'on définira par le fait pour un agent d'être persistant .
De ce fait, toute défaillance d'une partie du réseau ou de ses noeuds peut entraîner la disparition ou l'indisponibilité pour le reste du réseau d'un agent existant sur cette partie de réseau, ou de messages circulant dans cette partie de réseau entre plusieurs agents, et être cause de dysfonctionnements des applications qui utilisent cette architecture.
De façon à assurer le fonctionnement d'une telle architecture, le réseau et les noeuds qui le composent comportent un certain nombre de mécanismes et procédés, automatiques ou non, permettant de restaurer l'intégrité de tout
<Desc/Clms Page number 4>
élément logiciel de l'architecture AAA qui viendrait à être endommagé ou perdu.
Avec le développement de l'informatique embarquée et la multiplication d'objets portables ayant des capacités de traitement de données, comme les cartes à micro-circuit intégré ou cartes à puce , il devient courant de connecter de tels objets en tant que noeuds dans un réseau supportant une ou plusieurs applications, simples ou distribuées.
Or l'utilisation normale et récurrente d'un tel objet est de pouvoir être déconnecté à tout moment et de rester un certain temps sans être présent sur le réseau, et éventuellement d'être reconnecté en un autre endroit non prévisible du réseau. En l'état actuel de la technique, une telle absence imprévisible de certains composants d'une architecture AAA n'est pas gérée par les différents mécanismes et protocoles de communication assurant le fonctionnement d'un tel réseau.
De façon à pouvoir utiliser les facilités de développement apportées par l'architecture AAA pour des applications distribuées incluant l'utilisation de tels objets portables, en particulier la transparence des modes de communication vis à vis des langages de haut niveau, il serait donc utile de disposer, pour les fonctionnalités de cette architecture, d'une implémentation adaptable à de tels objets et donc gérant de telles spécificités.
Un des buts de l'invention est de fournir un procédé permettant la transmission d'un message asynchrone quelconque entre un autre agent mémorisé dans un objet portable et déconnectable et un autre agent mémorisé dans le réseau, de façon transparente pour le réseau.
Ce but est atteint par un procédé de communication informatique par messages asynchrones entre d'une part au moins un agent logiciel quelconque, dit agent de carte, mémorisé dans une station de traitement de données portable, dite plate-forme amovible, pouvant être connectée ou déconnectée par des moyens de communication avec au moins une station de traitement de données, dite terminal, à tout moment et indépendamment de l'état de fonctionnement de ce terminal ou de la plate-forme amovible, et d'autre part au moins un agent logiciel quelconque, dit agent standard, cet
<Desc/Clms Page number 5>
agent standard étant, soit mémorisé dans des moyens de mémorisation d'un réseau informatique relié à ce même terminal et comprenant une ou plusieurs stations de traitement de données où sont mémorisés un ou plusieurs agent logiciels communiquant entre eux en utilisant une infrastructure logicielle distribuée de communication informatique par messages asynchrones, soit mémorisé dans cette même plate-forme amovible ou dans une autre similaire, caractérisé en ce qu'il comporte une étape de mémorisation d'un message émis par l'agent de carte vers au moins un agent standard ou émis par un agent standard vers l'agent de carte, dans des moyens de mémorisation du réseau par au moins un agent intermédiaire gérant les communications de cet agent de carte avec le réseau.
Selon une particularité, le procédé comporte les étapes suivantes : - émission vers le réseau par cet agent de carte d'un message ou indicateur de message destiné à un agent standard ; - transmission d'un message ou indicateur de message destiné à cet agent standard, depuis cet agent de carte vers un agent dit agent proxy de moteur de carte mémorisé dans des moyens de mémorisation du réseau ; - mémorisation dudit message ou indicateur de message dans des moyens de mémorisation du réseau par l'agent proxy de moteur de carte ; - émission à travers le réseau dudit message ou indicateur de message par l'agent proxy de moteur de carte ;
Selon une particularité, le procédé comporte les étapes suivantes : - réception à travers le réseau d'un message ou indicateur de message destiné à cet agent de carte, par un agent, dit agent proxy de moteur de carte, mémorisé dans des moyens de mémorisation du réseau ; - mémorisation dans des moyens de mémorisation du réseau dudit message ou indicateur de message par l'agent proxy de moteur de carte ; - transmission dudit message ou indicateur de message de l'agent proxy de moteur de carte à au moins un agent de carte mémorisé dans la plate-forme amovible ; - mémorisation dudit message ou indicateur de message dans des moyens de mémorisation de la plate-forme amovible ;
<Desc/Clms Page number 6>
Selon une particularité, les messages transmis entre l'agent de carte et l'agent proxy de moteur de carte, ou inversement, passent par l'intermédiaire d'un agent moteur de carte, mémorisé dans des moyens de mémorisation de la plate-forme amovible, et ayant pour fonction de gérer ou animer cet agent de carte.
Selon une particularité, le procédé comporte en outre les étapes suivantes : - mémorisation dudit message ou indicateur de message dans des moyens de mémorisation du réseau par un agent proxy d'agent de carte, mémorisé dans le réseau et reflètent l'identité de l'agent de carte destinataire ; - transmission d'un message ou indicateur de message destiné à l'agent de carte depuis proxy d'agent de carte vers l'agent proxy de moteur de carte correspondant à l'agent de carte destinataire
Selon une particularité, les échanges de messages entre l'agent proxy de moteur de carte et l'agent moteur de carte s'effectuent selon un ordonnancement de type le premier entré est le premier sorti .
Selon une particularité, les échanges de messages entre l'agent proxy de moteur de carte et l'agent moteur de carte utilisent au moins un procédé d'envoi avec accusé de réception permettant à l'émetteur d'un message ou indicateur de message d'avoir confirmation, par le destinataire de ce même message, de sa bonne réception et de transmettre à nouveau les messages non reçus par le destinataire.
Selon une particularité, l'agent de moteur de carte ou l'agent proxy de moteur de carte émettent un ou plusieurs messages ou indicateurs de messages vers un même agent destinataire en mettant en oeuvre un procédé dit procédé de tampon d'accusé de réception, comportant les étapes suivantes : - mémorisation dans un tampon d'accusé de réception, par l'émetteur d'un ou plusieurs messages ou indicateurs de messages à émettre, ces messages ou indicateurs étant classés selon l'ordre dans lequel ils doivent être émis et associés à des identifiants dit index ;
<Desc/Clms Page number 7>
- transmission, depuis l'émetteur vers le destinataire, d'au moins un message ou indicateur de message accompagné d'une donnée dite marquage représentant l'index de ce même message ;
Selon une particularité, ledit procédé de tampon d'accusé de réception comprend en outre les étapes suivantes : - réception par le destinataire d'au moins un message ou indicateur de message accompagné d'une donnée dite marquage représentant l'index de ce même message ; - transmission depuis le destinataire vers l'émetteur d'une donnée dite index de dernier message reçu par le destinataire comportant ou représentant la valeur de l'index représenté par le marquage qui accompagnait le dernier message ou indicateur reçu depuis ce même émetteur ; - réception de cet index de dernier message reçu par l'émetteur et comparaison de ce même index avec les index des messages ou indicateurs mémorisés dans son tampon d'accusé de réception ; - nouvelle transmission, par l'émetteur vers le destinataire, des messages ou indicateurs mémorisés à la suite du message dont l'index correspond à l'index du dernier message reçu par le destinataire dans son tampon d'accusé de réception,
Selon une particularité, une nouvelle transmission, par ledit procédé de tampon d'accusé de réception, des messages mémorisés par l'émetteur dans son tampon d'accusé de réception et non encore reçus par le destinataire, s'effectue dans l'ordre où ces messages ont été mémorisés dans ce même tampon d'accusé de réception.
Selon une particularité, ledit procédé de tampon d'accusé de réception comprend en outre une étape de mémorisation par le destinataire, en tant qu'index de dernier message reçu par le réseau ou index de dernier message reçu par la carte, d'une donnée comportant ou représentant l'index de l'emplacement où est mémorisé ce même message dans le tampon d'accusé de réception de l'émetteur.
Selon une particularité, le procédé de tampon d'accusé de réception comprend en outre un moins une étape de vérification, par le destinataire du
<Desc/Clms Page number 8>
message ou indicateur, de l'intégrité du contenu de ce message ou indicateur, l'index de dernier message reçu par le destinataire étant alors déterminé comme étant l'index représenté par le marquage accompagnant le dernier message reçu dont l'intégrité satisfait à des conditions déterminées.
Selon une particularité, l'agent proxy de moteur de carte transmet à l'agent moteur de carte un ou plusieurs messages ou indicateurs reçus depuis le réseau, en mettant en oeuvre un procédé dit de contrôle de flux par tampon, comportant les étapes suivantes : - mémorisation dans un tampon de contrôle de flux situé dans des moyens de mémorisation du réseau d'un ou plusieurs messages ou indicateurs reçus, ces messages ou indicateurs étant classés suivant leur ordre de réception ; - vérification de l'état de fonctionnement du tampon d'accusé de réception ; - émission desdits messages ou indicateurs, dans l'ordre où ils ont été reçus, selon ledit procédé tampon d'accusé de réception.
Un des buts de l'invention est de proposer un procédé permettant la réactualisation des agents mémorisés dans un objet portable et déconnectable, quant aux messages échangés avec un autre agent mémorisé dans le réseau, à l'issue d'une période de déconnexion de cet objet, de façon à permettre une continuité de fonctionnement des applications qui utilisent cet objet.
Ce but est atteint par un procédé tel que décrit plus haut, caractérisé en ce que les moyens de communication du terminal sont gérés par au moins un agent de communication de terminal mémorisé dans des moyens de mémorisation du terminal ou du réseau, le passage de la plate-forme amovible de l'état connecté à l'état déconnecté déclenchant des étapes de : - détection de la déconnexion de la plate-forme amovible par l'agent de communication de terminal ; - envoi d'un message de notification de deconnexion depuis l'agent de communication de terminal vers l'agent proxy de moteur de carte ; - mémorisation dans des moyens de mémorisation du réseau par l'agent proxy de moteur de carte de l'état déconnecté de la plate-forme amovible.
Selon une particularité, ledit procédé contrôle de flux par tampon comporte en outre une étape de prise de connaissance par l'agent proxy de
<Desc/Clms Page number 9>
moteur de carte de l'état de connexion ou d'accessibilité de la plate-forme amovible depuis le réseau.
Selon une particularité, la communication du terminal avec la plateforme amovible est gérée par au moins un agent de communication de terminal mémorisé dans des moyens de mémorisation du terminal ou du réseau, le passage de cette plate-forme amovible de l'état déconnecté à l'état connecté, combiné ou non avec un autre événement, déclenchant les étapes suivantes : - détection par l'agent de communication de terminal de cette connexion ; - prise de connaissance par l'agent de communication de terminal d'une donnée représentant un code identifiant un agent de carte ou un agent moteur de carte, mémorisé dans les moyens de mémorisation de la plate- forme amovible ; - envoi d'un message de notification d'insertion, depuis l'agent de communication de terminal vers l'agent proxy de moteur de carte, comportant ou représentant le code de l'agent moteur de carte ou de l'agent de carte.
Selon une particularité, un agent proxy de moteur de carte mémorisé dans le réseau et un agent moteur de carte mémorisé dans la plate-forme amovible échangent un ou plusieurs messages ou indicateurs de messages selon ledit procédé tampon d'accusé de réception, le passage de la plate-forme amovible de l'état déconnecté à l'état connecté, combiné ou non avec un autre événement, déclenchant un procédé dit de réactualisation comprenant les étapes suivantes : - transmission, depuis l'agent de communication de terminal ou l'agent moteur de carte vers l'agent proxy de moteur de carte, de l'index de dernier message reçu par la carte mémorisé par cet agent moteur de carte ; - transmission, depuis l'agent proxy de moteur de carte vers l'agent moteur de carte, des messages ou indicateurs mémorisés dans son tampon d'accusé de réception comme étant destiné à ce même agent moteur de carte, et non encore reçus par lui.
Selon une particularité, un agent proxy de moteur de carte mémorisé dans le réseau et un agent moteur de carte mémorisé dans la plate-forme
<Desc/Clms Page number 10>
amovible échangent un ou plusieurs messages ou indicateurs de messages selon ledit procédé tampon d'accusé de réception, le passage de la plate-forme amovible de l'état déconnecté à l'état connecté, combiné ou non avec un autre événement, déclenchant un procédé dit de réactualisation comprenant les étapes suivantes : - transmission depuis l'agent proxy de moteur de carte vers l'agent moteur de carte de l'index d'émission de dernier message reçu par le réseau mémorisé par cet agent proxy de moteur de carte ; - transmission depuis l'agent moteur de carte vers l'agent proxy de moteur de carte des messages ou indicateurs mémorisés dans son tampon d'accusé de réception comme étant destinés à ce même agent proxy de moteur de carte, et non encore reçus par lui.
Selon une particularité, le procédé comporte : - une étape de sérialisation comprenant une conversion des objets logiciels à transmettre par agent depuis un terminal de communication vers une plate- forme amovible ou inversement, cette conversion s'effectuant depuis la forme structurée que présentent ces objets logiciels dans l'agent qui souhaite les transmettre, vers la forme moins structurée de données sous laquelle ils sont à même d'être transmis entre un terminal de communication et les moyens de communication d'une plate-forme amovible ou inversement ; - une étape de désérialisation réalisant la conversion inverse une fois cette transmission effectuée.
Selon une particularité, au moins un agent proxy de moteur de carte gère les communications avec le réseau de plusieurs agents moteurs de carte, cet agent proxy de moteur de carte mémorisant, dans le réseau, des données représentant un code d'identification, un état d'accessibilité ou non de la plateforme, un index de dernier message reçu par le réseau, et le contenu des messages émis sans accusé de réception, pour chacun des agents moteurs de carte qu'il gère.
<Desc/Clms Page number 11>
Selon une particularité, au moins un agent communique à travers le réseau en utilisant une infrastructure logicielle de communication de type AAA ou compatible avec une telle infrastructure.
Selon une particularité, au moins un desdits agents participe à au moins une application programmée dans le langage Java@.
Un des buts de l'invention est de fournir un système permettant la communication par messages asynchrones entre un autre agent mémorisé dans un objet portable et déconnectable et un autre agent mémorisé dans le réseau, de façon transparente pour le réseau.
Ce but est atteint par un système de communication par messages asynchrones entre d'une part un réseau informatique comprenant une ou plusieurs stations de traitement de données où sont mémorisés un ou plusieurs agent logiciels communiquant entre eux en utilisant une infrastructure logicielle distribuée de communication informatique par messages asynchrones, et d'autre part au moins un objet portable comportant au moins un processeur, des moyens de mémorisation, et des moyens de communication avec au moins un terminal relié au réseau, caractérisé en ce que cet objet portable comporte au moins un agent logiciel, dit agent de carte, communiquant par message ou indicateur de message avec au moins un agent logiciel quelconque, dit agent standard, cet agent standard étant mémorisé, soit dans des moyens de mémorisation du réseau informatique, soit dans cette même plate-forme amovible ou une autre similaire, ce réseau informatique, cette communication se faisant par l'intermédiaire d'au moins un agent intermédiaire mémorisé dans les moyens de mémorisation du réseau et gérant les communications de l'agent de carte avec le réseau.
Un des buts de l'invention est de proposer un système assurant la réactualisation des agents mémorisés dans un objet portable et déconnectable, quant aux messages échangés avec un autre agent mémorisé dans le réseau, à l'issue d'une période de déconnexion de cet objet, de façon à permettre une continuité de fonctionnement des applications qui utilisent cet objet.
Selon une particularité, le système comporte au moins un agent logiciel, dit agent de communication de terminal, mémorisé dans des moyens
<Desc/Clms Page number 12>
de mémorisation du terminal ou du réseau, ayant pour fonction de gérer la communication entre le terminal et la plate-forme amovible, cet agent de communication de terminal et d'envoyer des notifications de connexion ou de déconnexion de la plate-forme amovible.
Selon une particularité, la plate-forme amovible comporte au moins un agent logiciel, dit agent moteur de carte, ayant pour fonction de gérer ou animer le fonctionnement d'au moins un agent de carte, l'agent proxy de moteur de carte ayant alors pour fonction de gérer les communications de cet agent moteur de carte avec le réseau.
Selon une particularité, le système comporte au moins un agent logiciel, dit agent proxy d'agent de carte, mémorisé dans des moyens de mémorisation du réseau, ayant pour fonction de refléter l'identité d'au moins un agent de carte et recevoir les messages provenant du réseau qui lui sont destinés.
Selon une particularité, le réseau, ou la plate-forme amovible, ou les deux, comportent une structure de mémoire, dite tampon d'accusé de réception, ayant pour fonction d'indexer et de mémoriser les messages envoyés depuis le réseau vers la plate-forme amovible ou inversement, et de les envoyer à nouveau à leur destinataire lorsqu'ils n'ont pas été bien reçus.
Selon une particularité, le réseau comporte une structure de mémoire, dite tampon de contrôle de flux, ayant pour fonction de mémoriser les messages reçus par l'agent proxy de moteur de carte à l'intention d'un agent de carte, puis de présenter ces messages au tampon d'accusé de réception pour transmission à la plate-forme amovible lorsque la plate-forme amovible est accessible ou que le tampon d'accusé de réception n'est pas saturé.
Selon une particularité, le tampon d'accusé de réception et le tampon de contrôle réalisent l'extraction des messages qu'ils contiennent dans l'ordre où ils les ont mémorisés.
Selon une particularité, l'agent proxy de moteur de carte et l'agent moteur de carte comportent une fonction de sérialisation et une fonction de désérialisation, réalisant, dans un sens et respectivement dans le sens inverse, la conversion ou la traduction d'au moins un message à transmettre à travers le
<Desc/Clms Page number 13>
terminal entre la structure qu'ils présentent lorsqu'ils sont reçus et une structure compatible avec le terminal et les moyens de communication de la plate-forme amovible.
Selon une particularité, la communication entre le terminal et les moyens de communication de la plate-forme amovible se fait par transmission de données au format APDU selon la norme ISO 7816.
Selon une particularité, au moins deux stations composant le réseau communiquent entre elles selon une infrastructure logicielle de type AAA-MOM.
Selon une particularité, le système comporte au moins un desdits agents programmé dans le langage Java@.
L'invention, avec ses caractéristiques et avantages, ressortira plus clairement à la lecture de la description faite en référence aux dessins annexés dans lesquels : - la figure 1 représente conjointement plusieurs variantes du procédé selon l'invention, dans un schéma symbolique d'un réseau communiquant avec une plate-forme amovible en utilisant ce procédé ; - la figure 2 représente un schéma symbolique du fonctionnement d'un procédé de tampon d'accusé de réception selon l'invention dans un mode de réalisation, dans le cas d'un message émis par un agent de carte vers un agent standard du réseau ; - la figure 3 représente un schéma symbolique du fonctionnement d'un procédé de contrôle de flux par tampon selon l'invention dans un mode de réalisation, dans le cas d'un message reçu par un agent de carte depuis un agent standard du réseau ; - la figure 4 représente un schéma symbolique du fonctionnement de la réactualisation des envois de messages par différents agents lors de la re-connexion d'une plate-forme amovible au réseau après une interruption, dans un mode de réalisation du procédé selon l'invention.
Pour la présente description, on définira comme agent, ou agent logiciel, un composant réactif de programme d'ordinateur bénéficiant d'une identité, par exemple à travers la possession d'un code l'identifiant localement ou globalement auprès d'autres composants logiciels. Un agent est mémorisé
<Desc/Clms Page number 14>
dans des moyens de mémorisation et peut exister en tant que processus exécuté, ou attendant d'être exécuté, par un processeur. La qualité de réactif correspond à une capacité à effectuer une action, interne ou interagissant avec d'autres éléments, lors de la survenue de certains évènements.
Selon les applications et les modes de réalisation, un agent pourra exister par lui-même ou être animé et géré par un autre agent parfois qualifié de moteur.
Selon les applications et modes de réalisations, les messages échangés pourront être des messages complets ou partiels, comprenant tout ou partie des informations à transmettre. Sans sortir de l'esprit de l'invention, les fonctionnalités et caractéristiques décrites pour des messages s'appliquent aussi bien à de simples indicateurs de messages signalant l'existence d'un message au destinataire de ce message, et éventuellement une information lui permettant de localiser et lire ce même message.
Pour certains environnements de programmation, tels que Java@, ou pour certaines infrastructures logicielles d'un réseau de stations informatiques de traitement de données, telles que l'infrastructure de type AAA ou A3 , un agent logiciel pourra être qualifié d'agent Java ou d'agent AAA s'il correspond aux critères respectifs de ces environnements ou infrastructures logicielles.
Le fonctionnement du procédé selon l'invention comporte l'utilisation d'agents dont certains comportent le terme proxy dans le nom employé pour les désigner. Un serveur proxy est défini dans certains dictionnaires comme un ordinateur vicariant qui effectue une opération pour le compte d'un demandeur , par exemple lorsque le demandeur est incapable de le faire luimême ou pour éviter de compromettre sa sécurité. Le terme proxy employé dans la présente description peut évoquer cet aspect de délégation ou fonction vicariante, mais doit avant tout être compris à travers la description qui en est faite pour chacun des éléments ainsi désignés.
Un tel réseau peut comprendre une ou plusieurs parties de réseaux interconnectées, ces parties pouvant être par exemple un réseau local (LAN : Local Area Network ) au sein d'un ou plusieurs bâtiments, un réseau de
<Desc/Clms Page number 15>
zone ou régional (MAN : Medium Area Network ) au sein d'une zone telle qu'une ville, d'un réseau étendu (WAN : Wide Area Network ) regroupant un certain nombre de stations réparties sur de grandes distances, ou un réseau global tel que Internet. Un tel réseau peut utiliser une ou plusieurs architectures physiques, par exemples en étoile ou en mailles, et utiliser des normes ou protocoles différents voire variables pour chacune des couches de fonctionnement assurant la communication entre ses différents noeuds et leurs systèmes respectifs.
Du fait qu'il utilise une infrastructure logicielle de communication rendant ces communications transparentes pour les différents agents respectant cette infrastructure, ce réseau peut être considéré comme un réseau unique englobant tous les noeuds qui le composent, et où la répartition matérielle des différents moyens de mémorisation et des différents agents interagissant entre eux n'a pas d'importance du point de vue de ces mêmes agents.
La présente description s'applique au cas d'un réseau fonctionnant en utilisant une architecture basée sur une infrastructure de communication de type AAA-MOM, et plus particulièrement pour des agents et applications programmés en langage Java@, mais il doit être évident que les mêmes caractéristiques sont utilisables avec d'autres architectures ou d'autres langages, ou les deux, sans sortir de l'esprit de l'invention.
La présente description illustre un procédé et un système selon l'invention dans l'un de ses modes de réalisation. Naturellement, lorsqu'une ou plusieurs étapes ou fonctionnalités sont décrites comme présentant des possibilités de variantes, il doit être compris qu'un procédé ou système combinant une ou plusieurs de ces variantes constitue également un mode réalisation de l'invention.
La figure 1 représente de façon symbolique une partie des communications entre les différents agents intervenant dans la transmission d'un message, dans un sens ou dans l'autre, entre un agent logiciel de type AAA, dit agent de carte (CA A, CA B, CA C), mémorisé dans une plate-forme amovible, par exemple une carte à puce (31,32) et un autre agent logiciel de
<Desc/Clms Page number 16>
type AAA, dit agent standard (AS). Un agent standard (AS) est alors un agent de type AAA, mémorisé en n'importe quel endroit d'un réseau (1), qui comprend un réseau de stations ou noeuds communiquant entre eux en utilisant une infrastructure de type AAA-MOM.
Une station de traitement de donnée, dite plate-forme amovible (31, 32), est constituée par exemple d'une carte à puce comprenant au moins un processeur, des moyens de mémorisation et des moyens de communication (310,320).
Selon une variante, la plate-forme amovible (31) est connectée au réseau (1) par l'intermédiaire d'un premier terminal (21), relié à un noeud (11) du réseau (1) par des moyens de communication d'un type connu et disposant d'un emplacement de connexion (210). Cet emplacement de connexion réalise la communication entre le terminal (21) et la plate-forme amovible (31) par des moyens de connexion, par exemple par contact électrique ou communication radio, ou les deux, selon un protocole de communication d'un type connu, par exemple de type APDU répondant à la norme ISO 7816. Ce terminal (21) comprend une station de traitement de données dans laquelle est mémorisé au moins un agent de communication de terminal (TSPA 1) qui gère par des moyens connus la communication entre d'une part les moyens de communication (310) de la plate-forme amovible (31) et d'autre part ce même terminal.
Selon une autre variante, la plate-forme amovible (32) est connectée au réseau (1) par l'intermédiaire d'un deuxième terminal (22), disposant également d'un emplacement de connexion (220). La communication du deuxième terminal (22) avec la plate-forme amovible (32) est gérée selon des moyens connus par un agent de communication de terminal (TSPA 2), qui est un agent de type AAA mémorisé dans des moyens de mémorisation du réseau (1), par exemple dans ce même terminal de communication (22). Cet agent de communication de terminal (TSPA02) étant lui-même un agent AAA, on peut en effet considérer qu'il fait lui-même partie du réseau (1).
Au sein d'une application programmée dans un langage de haut niveau, et en particulier dans le cas des langages structurés ou orientés objets
<Desc/Clms Page number 17>
comme par exemple Java@, une grande part des données utilisées ou traitées sont organisées et mémorisées sous la forme d'objets logiciels comportant une structure précise, plus complexe qu'une simple succession d'octets. De tels objets peuvent regrouper plusieurs variables ou groupes de données, par exemple sous la forme de chaînes de caractères (type string ), de tableaux (type array ) à une ou plusieurs dimensions, d'enregistrements (type record ) regroupant plusieurs champs, ou de types d'objets (parfois appelés super-types ) définis par le langage ou par le programmeur comme une combinaison de plusieurs autres objets eux-mêmes de types variés. De tels objets structurés peuvent parfois être définis ou représentés par des arborescences regroupant différents objets eux-mêmes de différents types, l'organisation d'une telle structure étant parfois appelée le graphe de l'objet.
De façon à permettre à des agents AAA de transmettre de tels objets logiciels structurés depuis le réseau (1) vers la plate-forme amovible et réciproquement, le procédé selon l'invention comporte des étapes de conversion ou sérialisation. Une étape de sérialisation consiste ainsi à convertir un objet logiciel structuré en une succession linéaire de données compatible avec le format APDU de communication utilisé par les moyens de communication (310,320) ou par le terminal (21,22). Après transmission de ces données au format APDU. Une autre étape, dite de désérialisation, consiste alors à effectuer la conversion inverse de façon à fournir à l'agent destinataire un objet logiciel ayant retrouvé sa structure initiale.
Au sein de la plate-forme amovible (31,32), les agents de carte (CA A, CA B, respectivement CA C) sont gérés et animés par au moins un agent AAA, dit agent moteur de carte (CEA 1, respectivement CEA02), lui-même mémorisé et exécuté dans la même plate-forme amovible (31, respectivement 32).
De façon à assurer la permanence dans le réseau (1) d'un tel agent moteur de carte (CEA 1, respectivement CEA02), le procédé selon l'invention utilise au moins un agent AAA, dit agent proxy de moteur de carte (CEPA 1, respectivement CEPA 2), mémorisé dans au moins un noeud (11) du réseau (1). Cet agent proxy de moteur de carte (CEPA) joue un rôle d'intermédiaire entre son agent moteur de carte correspondant et le reste du
<Desc/Clms Page number 18>
réseau lorsque la plate-forme amovible est accessible, et assure la continuité de l'accessibilité de ce même agent moteur de carte lorsque la plate-forme amovible n'est pas accessible. Lorsque la plate-forme est déconnectée, cette continuité comprend la mémorisation de l'ensemble des messages destinés à l'agent devenu inaccessible. Lorsque la plate-forme passe de l'état déconnecté à l'état connecté, cette continuité comprend alors un échange d'informations entre cet agent moteur de carte (CEA 1, CEA 2) et son agent proxy de moteur de carte correspondant (CEPA01, respectivement CEPA 2) permettant à chacun d'envoyer à l'autre les messages mémorisés qui n'ont pu être envoyés auparavant.
Lorsque qu'une plate-forme amovible (31) est connectée au réseau (1) par l'intermédiaire d'un terminal de communication (21), un message émis par un agent de carte (CA A) à destination de n'importe quel agent AAA, dit agent standard (AS), du réseau (1) est émis vers l'agent de communication de terminal (TSPA01) correspondant. Cet agent de communication de terminal (TSPA 1) transmet alors ce message à l'agent proxy de moteur de carte correspondant (CEPA01), lequel l'émet à travers le réseau (1) à l'intention de son destinataire.
Dans un mode de réalisation, cet agent proxy de moteur de carte (CEPA 1) effectue alors un échange d'information avec un agent AAA, dit agent proxy d'agent de carte (CAPA A), mémorisé dans des moyens de mémorisation du réseau (1), de façon à ce que l'état de cet agent proxy d'agent de carte (CAPA A) reflète l'état de l'agent de carte (CA A) émetteur du message en question.
De façon à assurer la continuité de l'existence par rapport au réseau (1) des différents agents de carte (CA A, CA B),) le procédé selon l'invention utilise au moins un agent, par exemple de type AAA, dit agent proxy d'agent de carte (respectivement CAPA A, CAPAOB) mémorisé dans au moins un noeud (11) du réseau (1). Cet agent proxy d'agent de carte (CAPA A, CAPA B) reflète l'existence de son agent de carte correspondant, par exemple en mémorisant un code identifiant ce même agent de carte (CAPA A, CAPA B).
<Desc/Clms Page number 19>
Lorsqu'une plate-forme amovible (31) est connectée au réseau (1) par l'intermédiaire d'un terminal de communication (21), dans un mode de réalisation, un message émis par un agent standard (AS) du réseau (1) à destination d'un agent de carte (CA B) est réceptionné par l'agent proxy d'agent de carte (CAPA B) correspondant au destinataire. Cet agent proxy d'agent de carte (CAPA B) transmet ce message à l'agent proxy de moteur de carte correspondant (CEPA01). Cet agent proxy de moteur de carte (CEPA 1), sérialise ce message ensuite puis le transmet à l'agent de communication de terminal (TSPA 1). Ce message est alors transmis depuis l'agent de communication de terminal (TSPA 1) vers l'agent moteur de carte (CEA 1) correspondant, lequel le transmet à l'agent de carte (CAOB) destinataire.
Selon une variante, c'est l'agent proxy de moteur de carte (CEPA C) qui mémorise un code identifiant un ou plusieurs agents de carte (CA C) présent sur la plate-forme amovible correspondante (32). Un message émis par un agent AAA quelconque du réseau (1) à destination d'un agent de carte (CA C) est alors réceptionné directement par l'agent proxy de moteur de carte correspondant (CEPA 2). Ce message est alors transmis à l'agent de communication de terminal (TSPA02), qui le transmet à l'agent moteur de carte (CEA 2) correspondant, lequel le transmet à l'agent de carte (CAOC) destinataire de façon similaire.
Il est à noter que cette variante est indépendante de celle portant sur la nature de l'agent de terminal (TASP 1, TSPA 2). Ces deux variantes peuvent très bien être combinées ou non indifféremment dans un mode de réalisation sans sortir de l'esprit de l'invention.
Il est à noter que l'agent destinataire du message émis par un agent de carte (CA A) peut également être un autre agent de carte (CAOB) situé sur la même plate-forme amovible (31) ou un autre agent de carte (CA C) situé sur une autre plate-forme amovible (32). Le message sera alors transmis de la même façon depuis l'émetteur (CA A) jusqu'à l'agent proxy de moteur de carte (CEPA 1) correspondant qui l'émettra vers le réseau. Le message sera ensuite reçu par l'agent proxy d'agent de carte (CAPA B) correspondant ou directement l'agent proxy de moteur de carte (CEPA02) correspondant, puis
<Desc/Clms Page number 20>
transmis de la même façon que précédemment décrit à l'agent de carte (CA B, respectivement CA OC) destinataire. Il doit être bien compris ici que les différentes variantes décrites pour la réception d'un message ne dépendent pas du fait que le destinataire du message soit ou non mémorisé sur la même plate-forme amovible que l'agent émetteur.
Dans un échange de messages asynchrones où les communications se font par des chemins non connus ou variables, ou les deux, un certain nombre d'aléas sont susceptibles de retarder la transmission d'un message à son destinataire, et ce d'une façon différente d'un message à l'autre. Lors de l'émission de deux messages successifs vers un même destinataire, le message émis en dernier peut donc parfois arriver au destinataire avant celui émis en premier. Une infrastructure logicielle de communication, en particulier de type AAA-MOM, peut donc utiliser des moyens ou procédés destinés à permettre à chaque destinataire de recevoir les messages dans le bon ordre, également appelé ordre de causalité, ou à rétablir cet ordre dans sa façon de les prendre en compte.
De façon à être transparent vis à vis du réseau (1) et à ne pas perturber cet ordre de causalité, le procédé selon l'invention effectue la transmission des messages selon un protocole du type le premier entré est le premier sorti (FIFO : First In First Out en Anglais) entre l'agent moteur de carte (CEA 1, CEA 2) et son agent proxy de moteur de carte correspondant (CEPA 1, CEPA02), et inversement. C'est à dire que chacun d'entre eux transmet à l'autre les messages reçus à son intention dans l'ordre où il les a luimême reçus.
La figure 2 représente un schéma symbolique du circuit d'un message émis par un agent de carte à destination d'un agent standard.
Dans le mode de réalisation représenté en figure 2, un agent de carte (CA) mémorisé dans une plate-forme amovible (30) émets un message (40) à destination d'un agent standard (AS) mémorisé dans le réseau (1). Ce message est reçu par un agent de moteur de carte (CEA) situé également dans la plate-forme amovible (30), qui le mémorise, par exemple dans une structure de données dite file de sortie (51) de type FIFO ( First In First Out en
<Desc/Clms Page number 21>
Anglais), à la suite des messages qu'elle contient déjà. Les messages mémorisés dans cette file de sortie (51) sont alors traités par l'agent de carte dans l'ordre où ils sont arrivés.
Lorsqu'un message (41) est extrait de la file de sortie (51) pour être traité par l'agent de carte, ce message est d'une part mémorisé dans un tampon d'accusé de réception (52), par exemple de type tampon circulaire tel que décrit ci-dessous, et d'autre part préparé pour envoi vers un agent proxy de moteur de carte (CEPA) mémorisé dans le réseau (1).
Le tampon d'accusé de réception (52) comprend un nombre déterminé d'emplacements classés suivant un ordre déterminé, qui sont aptes à mémoriser chacun un message. Ces emplacements ou les messages qu'ils contiennent sont numérotés, ou indexés, et ce tampon (52) mémorise par ailleurs en permanence un numéro (sol, exemple=0), dit index de premier message mémorisé, et un numéro (S2, exemple=3), dit index de dernier message mémorisé. Lorsqu'un nouveau message (41) arrive dans le tampon d'accusé de réception, il est mémorisé dans l'emplacement suivant l'emplacement d'index (S2) de dernier message mémorisé, et la valeur mémorisée pour l'index (S2) de dernier message mémorisé est réactualisée avec la valeur (S3, exemple=4) de l'index désignant l'emplacement où a été mémorisé ce nouveau message (41) dans ce tampon (52) d'accusé de réception.
Dans le même temps, le message se voit ajouté par l'agent de moteur de carte (CEA) une donnée d'accompagnement dite marquage (SO), qui va l'accompagner dans sa transmission jusqu'à l'agent proxy de moteur de carte (CEPA), ce marquage prenant la nouvelle valeur de l'index (S3, exemple=4) de dernier message mémorisé.
Dans un mode de réalisation, le message (41) à transmettre et son marquage (SO) sont alors sérialisés, c'est à dire convertis en données (42) se présentant sous une forme compatible avec le fonctionnement des moyens de communication de la plate-forme amovible, par exemple sous forme de caractères ou entiers transmissibles en tant que paramètres d'une commande de protocole ADPU selon la norme IS01876.
<Desc/Clms Page number 22>
Les données (42) représentant le message (41) et son marquage (SO) sont alors transmis depuis la plate-forme amovible jusqu'à l'agent proxy de moteur de carte (CEPA) correspondant à l'agent moteur de carte (CEA), par l'intermédiaire d'un agent de communication de terminal (TSPA) gérant le terminal (20) de connexion relié au réseau (1), et dont un emplacement de connexion reçoit ladite plate-forme amovible (30).
Dans un mode de réalisation, lors de leur réception par l'agent proxy de moteur de carte (CEPA), les données (42) représentant le message (41) et son marquage (SO) sont désérialisées, c'est à dire convertis dans le sens inverse de la sérialisation, de façon à reprendre la structure d'origine du message (41) et de son marquage (SO) sous leur forme structurée initiale, et donc compatible avec les agents du réseau.
Dans un mode de réalisation, l'agent proxy de moteur de carte (CEPA) va alors d'une part émettre le message reçu (41) vers le réseau (1) à l'intention de l'agent standard (AS) destinataire, et d'autre part lire le marquage (SO) qui accompagne ce même message et mémoriser sa valeur en tant qu'index du dernier message reçu le réseau (LRMN R) et correspondant à ce même agent (CEPA).
A un moment déterminé, par exemple de façon périodique ou déclenché par un événement, l'agent proxy de moteur de carte (CEPA) envoie à l'agent moteur de carte (CEA) la valeur de l'index de dernier message reçu par le réseau (LRMNOR) telle qu'il l'a mémorisée. Lorsqu'il reçoit cet index de dernier message reçu par le réseau (LRMN R), l'agent moteur de carte (CEA) effectue une comparaison entre ce même index (LRMN R) et l'index (S2) de dernier message mémorisé ainsi que l'index (S 1) de premier message mémorisé correspondant à son tampon d'accusé de réception (52).
A la suite de cette comparaison, ce même agent moteur de carte (CEA) va alors d'une part effacer de son tampon circulaire d'accusé de réception (52) les messages émis entre le premier message mémorisé, ce message étant inclus, dont l'index (S1) est mémorisé, et le message émis avec un index correspondant à l'index de dernier message reçu par le réseau (LRMN R), ce message étant inclus. Ce même agent (CEA) va d'autre part lire dans ce même
<Desc/Clms Page number 23>
tampon (52) puis transmettre à nouveau vers l'agent proxy de moteur de carte (CEPA) les messages non encore reçus par lui. C'est à dire les messages mémorisés entre l'index de dernier message reçu par le réseau (LRMN R), ce message étant exclu, et l'index (52) de dernier message mémorisé, ce message étant inclus. Cette nouvelle transmission se fait suivant le même procédé de tampon d'accusé de réception et dans l'ordre où ils ont été mémorisés, c'est à dire dans le même ordre que leur émission initiale par l'agent moteur de carte (CEA).
Dans une variante de ce mode de réalisation, le procédé selon l'invention comprend une vérification par des moyens connus de l'intégrité des données transmises. Chaque message (41) reçu par l'agent proxy de moteur de carte (CEPA) n'est alors considéré comme reçu que si l'intégrité de son contenu, et éventuellement de son marquage (SO), est complète ou satisfait à des conditions déterminées.
On comprend bien que grâce à ce procédé de tampon d'accusé de réception, tous les messages qui n'ont pas été correctement reçus par l'agent proxy de moteur de carte (CEPA) lui seront renvoyés systématiquement par l'agent moteur de carte (CEA) jusqu'à bonne réception dans le réseau (1) par l'agent proxy de moteur de carte (CEPA), et ce en respectant l'ordre dans lequel ils ont été reçus en provenance de l'agent de carte (CA) émetteur.
Dans un mode de réalisation représenté en figure 3, un agent standard (AS) présent sur le réseau (1) émet à travers ce même réseau un message (45) à destination d'un agent de carte (CA) mémorisé dans une plateforme amovible (30) et lui-même géré par un agent moteur de carte (CEA) mémorisé dans cette même plate-forme amovible. Ce message est réceptionné par un agent proxy d'agent de carte (CAPA) reflétant l'identité de l'agent de carte (CA) destinataire. Ce message est alors émis par l'agent proxy d'agent de carte (CAPA) à travers le réseau (1) à destination d'un agent proxy de moteur de carte (CEPA) correspondant à l'agent moteur de carte (CEA) et comprenant un tampon (54) d'accusé de réception et un tampon (53) de contrôle de flux, par exemple une file d'entrée de type FIFO .
<Desc/Clms Page number 24>
Chaque fois que la plate-forme amovible contenant l'agent moteur de carte (CEA) correspondant à l'agent proxy de moteur de carte (CEPA) est connectée ou respectivement déconnectée, l'agent proxy de moteur de carte (CEPA) reçoit une notification d'insertion ou respectivement de déconnexion de la part d'un agent de communication de terminal (TSPA) gérant le terminal (20) où est connectée cette même plate-forme amovible (30). Cet agent proxy de moteur de carte (CEPA) mémorise alors l'état d'accessibilité de cette plateforme amovible dans des moyens de mémorisation du réseau, par exemple sous la forme d'une donnée dite état de carte (CO) indiquant l'état accessible ou non.
A réception de ce message (45), l'agent proxy de moteur de carte (CEPA) effectue une comparaison pour savoir d'une part si la plate-forme amovible (30) contenant l'agent de carte (CA) destinataire est accessible et d'autre part pour vérifier si le tampon (54) d'accusé de réception est plein ou non.
Si l'agent proxy de moteur de carte (CEPA) détecte que la plate-forme amovible n'est pas accessible ou si le tampon d'accusé de réception (54) ne comporte pas d'emplacement libre, le message est mémorisé dans le tampon (53) de contrôle de flux, à la suite des messages qu'elle contient déjà.
Lorsque le tampon d'accusé de réception se libère, et éventuellement à condition que la plate-forme soit accessible, le message (46) le plus ancien mémorisé dans la file d'entrée (53) est lu, se voit mémorisé dans un tampon d'accusé de réception (54) et associé un marquage (MO) correspondant à son index (M3), puis est transmis à l'agent moteur de carte (CEA) suivant le procédé de tampon d'accusé de réception décrit plus haut (cf. figure 2). Dans un mode de réalisation, le message (46) à transmettre et son marquage (MO) associé sont sérialisés en un ensemble de données (47) avant transmission, comme décrit plus haut (cf. figure 2), puis désérialisés après réception par l'agent moteur de carte (CEA).
Après réception du message (46) et de son marquage (MO) associé, et éventuellement désérialisation, par l'agent moteur de carte (CEA), celui-ci va d'une part transmettre ce message (46) vers l'agent de carte (CA) qui en est
<Desc/Clms Page number 25>
Figure img00250001

destinataire, soit directement soit par l'intermédiaire d'une file de sortie (55) de type FIFO qui envoie à ce même agent de carte (CA) les messages qui lui sont destinés dans l'ordre où elle les a reçus ; et d'autre part lire le marquage (MO) qui accompagne ce même message et mémoriser sa valeur en tant qu'index (LRMN C) du dernier message reçu par la carte.
A un moment déterminé, par exemple de façon périodique ou déclenché par un événement, l'agent moteur de carte (CEA) envoie à l'agent proxy de moteur de carte (CEPA) la valeur de l'index de dernier message reçu par la carte (LRMN C) telle qu'il l'a mémorisé. Lorsqu'il reçoit cet index de dernier message reçu par la carte (LRMN C),l'agent proxy de moteur de carte (CEPA) effectue une comparaison entre ce même index (LRMN C) et les index de dernier message mémorisé (M2) et de premier message mémorisé (mol) correspondant à son tampon d'accusé de réception (54).
De la même façon que décrit plus haut, l'agent proxy de moteur de carte (CEPA) va alors d'une part ré-envoyer à l'agent moteur de carte (CEA) les messages non reçus par celui-ci, et d'autre part effacer de son tampon d'accusé de réception (54) les messages déjà reçus qui y sont mémorisés.
Dans une variante de ce mode de réalisation, le procédé selon l'invention comprend une vérification par des moyens connus de l'intégrité des données transmises. Chaque message (46) reçu par l'agent moteur de carte (CEA) n'est alors considéré comme reçu que si l'intégrité de son contenu, et éventuellement de son marquage (MO), est complète ou satisfait à des conditions déterminées.
De même, l'utilisation de ce procédé de contrôle de flux par tampon, dont la capacité de mémorisation peut être très importante voire variable en fonction des besoins, permet d'assurer la réception et la mémorisation des messages à destination d'un agent de carte (CA) même si celui-ci n'est pas accessible. Cette mémorisation s'effectue de plus dans l'ordre où ces messages auraient du être reçus si cet agent de carte (CA) était situé dans le réseau (1).
Au cours de son fonctionnement normal, une plate-forme amovible pouvant être utilisée dans le procédé selon l'invention, par exemple une carte à
<Desc/Clms Page number 26>
puce, peut être fréquemment déconnectée de toute liaison avec un quelconque réseau, ou être connectée dans des terminaux différents. C'est par exemple le cas d'une carte à puce que le porteur va utiliser dans différents terminaux distributeurs de billets de banque, et dans les terminaux de paiement de différentes boutiques ou autres établissements commerciaux.
Selon les applications, il peut arriver que la déconnexion puisse se produire de façon totalement imprévisible par le système, par exemple si le porteur de la carte extrait celle-ci du terminal de paiement sans attendre la fin d'une opération en cours.
De plus il faut bien comprendre que l'état déconnecté d'une plate-forme amovible tel qu'il est défini ici peut aussi bien résulter le fait que cette plateforme n'est pas accessible pour des raisons autres que son extraction hors du terminal. Il peut s'agir d'une panne ou d'un non-fonctionnement des différents moyens de communication entrant dans sa liaison au réseau, comme par exemple le fait d'être hors zone de couverture pour cette plate-forme ou pour un terminal relié par ondes radio au réseau, ou une saturation ou défaillance d'un des intermédiaires entrant dans cette liaison, aussi bien que d'une simple panne ou défaillance du terminal ou des contacts de connexion de la carte ou du terminal.
Lors d'une déconnexion d'une plate-forme amovible, c'est à dire de son passage de l'état connecté à l'état déconnecté, les liaisons sont interrompues ou suffisamment perturbées pour être inefficaces entre le terminal et la plateforme amovible, ou éventuellement entre le terminal et une station de traitement de données connectée avec la plate-forme amovible. Cette station de traitement de données peut être par exemple un téléphone modulaire sur lequel est connectée une carte à puce, ce téléphone étant en liaison, par exemple par ondes radio, avec un terminal relié au réseau comme par exemple une station relais.
Dans un mode de réalisation, lorsque se produit une déconnexion, le terminal communiquant avec la plate-forme amovible prend connaissance par des moyens connus de l'état déconnecté de celle-ci, et l'agent de communication de terminal (TSPA, figure 3) envoie une notification de
<Desc/Clms Page number 27>
déconnexion à l'agent proxy de moteur de carte (CEPA) qui gère les communications d'au moins un agent moteur de carte (CEA), mémorisé dans cette plate-forme amovible (30), avec le réseau (1). Cet agent proxy de moteur de carte (CEPA) mémorise alors, dans des moyens de mémorisation du réseau (1), cette notification de déconnexion ou une donnée (CO) la représentant ou représentant le nouvel état d'accessibilité de cette plate-forme amovible.
Une fois la plate-forme amovible déclarée inaccessible pour le réseau, l'agent proxy de moteur de carte (CEPA) correspondant à l'agent moteur de carte (CEA) de cette plate-forme amovible interrompt ses envois de messages vers cette même plate-forme amovible. L'agent proxy de moteur de carte (CEPA) conserve alors en l'état les messages à lui envoyer qui encore mémorisés dans son tampon d'accusé de réception (54), car pour ces messages il n'a pas reçu d'accusé de réception comme décrit plus haut.
De façon à ce que toute déconnexion soit transparente du point de vue du réseau (1), en tout cas vis à vis de la cohérence des communications entre le réseau et cette plate-forme amovible, l'agent proxy de moteur de carte (CEPA) qui lui correspond continue à recevoir les messages destinés à un agent de carte (CA) présent dans la plate-forme amovible (30), et les mémorise selon le procédé de contrôle de flux par tampon décrit plus haut.
Lorsque la carte est à nouveau accessible par le terminal, celui-ci prend connaissance de cet état connecté par des moyens connus, et l'agent de communication de terminal (TSPA, figure 3) envoie une notification de connexion à l'agent proxy de moteur de carte (CEPA) qui gère les communications d'au moins un agent moteur de carte (CEA), mémorisé dans cette plate-forme amovible (30), avec le réseau (1). Cet agent proxy de moteur de carte (CEPA) mémorise alors, dans des moyens de mémorisation du réseau (1), cette notification de connexion ou une donnée (CO) la représentant ou représentant le nouvel état d'accessibilité de cette plate-forme amovible.
De façon à maintenir la transparence des communications entre le réseau (1) et cette plate-forme amovible (30), l'agent moteur de carte (CEA) de la plate-forme amovible et son agent proxy de moteur de carte (CEPA) présent
<Desc/Clms Page number 28>
dans le réseau (1) vont alors effectuer une réactualisation de leurs états respectifs, de façon à ce que les communications entre cette plate-forme et le réseau soient rétablies sans qu'il se soit produit d'altération du contenu ni de l'ordre de causalité de leurs échanges de messages asynchrones, que ce soit par perte de messages ou par envoi en surnombre de certains messages.
Dans un mode de réalisation du procédé selon l'invention représenté en figure 4, lorsque la plate-forme amovible (30) passe de l'état déconnecté à l'état connecté, le terminal (20) prend connaissance de cette connexion par des moyens connus (non représentés). Cet agent de communication de terminal (TSPA) prend alors connaissance, auprès d'un agent moteur de carte (CEA) ou d'un agent de carte (CA) de la plate-forme amovible, d'un code d'identification (CEPld) identifiant cet agent moteur de carte (CEA) ou cet agent de carte (CEA), ainsi que de l'index de dernier message reçu par la carte (LRMNOC) mémorisé par ce même agent moteur de carte (CEA).
Dans une variante du procédé selon l'invention, agent de communication de terminal (TSPA) gérant les communications entre ce terminal et la plate-forme amovible est lui-même un agent de type AAA, et envoie vers le réseau à l'intention de l'agent proxy de moteur de carte (CEPA) correspondant à cet agent moteur de carte (CEA) une notification d'insertion sous la forme d'un message (48) comprenant ou représentant le code d'identification (CEPld) de cet agent moteur de carte (CEA) accompagné d'un marquage (S9) comportant ou représentant l'index de dernier message reçu par la carte (LRMNOC) mémorisé par ce même agent (CEA) lors de sa dernière réception de message.
Dans un mode de réalisation du procédé selon l'invention, non représenté, l'agent proxy de moteur de carte (CEPA) est capable de gérer les communications du réseau (1) avec un ou plusieurs agents moteurs de carte (CEA) mémorisés sur une ou plusieurs plates-formes amovibles. Un tel agent proxy de moteur de carte (CEPA) mémorise alors dans des moyens de mémorisation du réseau (1), pour chacun des agents moteurs de carte auxquels il correspond, les informations lui permettant de gérer les communications de cet agent moteur de carte avec le réseau (1). Ces
<Desc/Clms Page number 29>
informations peuvent être en particulier des informations représentant le code d'identification (CEPld) de l'agent moteur de carte ou d'un agent de carte (CA), l'état d'accessibilité de la plate-forme amovible (CO), l'index de dernier message reçu par le réseau (LRMN R) depuis cet agent moteur de carte, les index de premier message mémorisé (sol, figure 2) et index de dernier message mémorisé (S3, figure 2), et le contenu des messages mémorisés lors de leur envoi vers cet agent moteur de carte et pour lesquels il n'a pas reçu d'accusé de réception.
Lorsqu'il reçoit d'une part l'information représentant le code d'identification (CEPld) d'un agent moteur de carte (CEA) lui correspondant situé dans une plate-forme amovible (30) qui vient de se connecter, l'agent proxy moteur de carte (CEPA) effectue une comparaison pour d'une part identifier cet agent (CEA) et d'autre part lire et éventuellement mettre à jour les informations (56,54, CO) qui correspondent à l'état des communications du réseau (1) avec ce même agent moteur de carte (CEA). Il va alors envoyer à cet agent moteur de carte (CEA) l'index de dernier message reçu par le réseau (LRMN R) qui lui correspond.
Lorsqu'il reçoit une information représentant l'index de dernier message par la carte (LRMN C), l'agent proxy de moteur de carte (CEPA) va effacer de son tampon d'accusé de réception (54) les messages qui ont bien été reçus.
En parallèle, cet agent proxy de moteur de carte (CEPA) va réaliser la transmission à ce même agent (CEA) des messages (49) restant à lui envoyer, dans l'ordre où ils ont été reçus en provenance de leur agent émetteur et selon le procédé de tampon d'accusé de réception décrit plus haut.
A réception de l'index de dernier message reçu par le réseau (LRMN R) en provenance de son agent proxy de moteur de carte (CEPA), l'agent moteur de carte (CEA) efface de son tampon d'accusé de réception (52) les messages qui ont bien été reçus et réalise la transmission à ce même agent (CEPA) des messages (50) restant à lui envoyer, dans l'ordre où ils ont été reçus en provenance de leur agent émetteur et selon le procédé de tampon d'accusé de réception décrit plus haut.
<Desc/Clms Page number 30>
On comprend bien qu'un tel procédé de réactualisation, déclenché après une période de déconnexion de la plate-forme amovible (30), pour quelque type de déconnexion que ce soit et quel que soit le terminal (20) où elle est reconnectée ou à nouveau accessible, permet d'obtenir qu'une telle déconnexion ne cause ni détérioration, ni perte, ni transmission en surnombre de messages entre un agent moteur de carte (CEA) mémorisé dans cette plateforme amovible (30) et son agent proxy de moteur de carte (CEPA) correspondant mémorisé dans le réseau (1).
Cet agent proxy de moteur de carte (CEPA) étant mémorisé dans des moyens de mémorisation du réseau (1), et pouvant donc être accessible par ce même réseau indépendamment de l'accessibilité de la plate-forme amovible (30) qu'il gère, on comprend bien que le procédé selon l'invention permet d'assurer une communication entre un agent de carte (CA) de cette plate-forme amovible et n'importe quel agent standard (AS) du réseau (1) sans détérioration du contenu ni altération de l'ordre de causalité des messages asynchrones échangé entre eux.
Une telle communication pourra ainsi s'effectuer, éventuellement sur de longues périodes de temps en fonction des périodes de connexion de la plateforme amovible, de façon transparente entre ces agents (CA, AS), et ce tant que durera leur existence ainsi que celle du réseau (1) et des différents agents (CEA, CEPA, TSPA, CAPA) mettant en oeuvre) le procédé selon l'invention.
Dans une variante du procédé selon l'invention ne sortant pas de l'esprit de l'invention, les messages reçus et émis par la plate-forme amovible
Figure img00300001

le sont directement par le ou les agents de carte (CA, CA A, CA B, CA C) émetteurs et respectivement destinataires, sans passer par l'intermédiaire d'un agent moteur de carte (CEA, CEAOI, CEA 2).
Dans un mode de réalisation (non représenté) ne sortant pas de l'esprit de l'invention, l'agent proxy de moteur de carte et l'agent de communication de terminal sont réunis en un seul et même agent.
Du fait que le procédé selon l'invention permet de réaliser une liaison transparente entre un agent de carte de type AAA situé dans une plate-forme amovible et n'importe quel autre agent AAA d'un réseau de type AAA-MOM, cet
<Desc/Clms Page number 31>
agent de carte est vu par le réseau comme n'importe lequel de ses autres agents AAA. Muni du procédé selon l'invention, une telle plate-forme amovible devient donc un noeud intégré au réseau AAA. Il faut donc bien comprendre que ce même réseau peut comporter un nombre variable de noeuds comprenant une telle plate-forme amovible. Dans la présente description, une référence faite à un agent AAA quelconque du réseau, désigné par l'appellation d'agent standard (AS), peut donc aussi bien s'appliquer à un autre agent AAA situé sur une quelconque plate-forme amovible utilisant le procédé selon l'invention, qu'il s'agisse de la même plate-forme amovible ou d'une autre.
Il doit être évident pour les personnes versées dans l'art que la présente invention permet des modes de réalisation sous de nombreuses autres formes spécifiques sans l'éloigner du domaine d'application de l'invention comme revendiqué. Par conséquent, les présents modes de réalisation doivent être considérés à titre d'illustration, mais peuvent être modifiés dans le domaine défini par la portée des revendications jointes, et l'invention ne doit pas être limitée aux détails donnés ci-dessus.

Claims (30)

REVENDICATIONS
1. Procédé de communication informatique par messages asynchrones entre d'une part au moins un agent logiciel quelconque, dit agent de carte (CA), mémorisé dans une station de traitement de données portable, dite plate-forme amovible (31,32), pouvant être connectée ou déconnectée par des moyens de communication avec au moins une station de traitement de données, dite terminal (21,22), à tout moment et indépendamment de l'état de fonctionnement de ce terminal ou de la plate-forme amovible, et d'autre part au moins un agent logiciel quelconque, dit agent standard (AS), cet agent standard étant, soit mémorisé dans des moyens de mémorisation d'un réseau informatique (1) relié à ce même terminal et comprenant une ou plusieurs stations de traitement de données où sont mémorisés un ou plusieurs agents logiciels communiquant entre eux en utilisant une infrastructure logicielle distribuée de communication informatique par messages asynchrones, soit mémorisé dans cette même plate-forme amovible ou dans une autre similaire, caractérisé en ce qu'il comporte une étape de : - mémorisation d'un message émis par l'agent de carte (CA) vers au moins un agent standard (AS) ou émis par un agent standard (AS) vers l'agent de carte (CA), dans des moyens de mémorisation du réseau par au moins un agent intermédiaire (CEPA, CAPA) gérant les communications de cet agent de carte (CA) avec le réseau (1).
2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte les étapes suivantes : - émission vers le réseau par cet agent de carte (CA) d'un message ou indicateur de message destiné à un agent standard (AS) ; - transmission d'un message ou indicateur de message destiné à cet agent standard (AS), depuis cet agent de carte (CA) vers un agent dit agent proxy de moteur de carte (CEPA) mémorisé dans des moyens de mémorisation du réseau (1) ;
<Desc/Clms Page number 33>
- mémorisation dudit message ou indicateur de message dans des moyens de mémorisation du réseau (1) par l'agent proxy de moteur de carte (CEPA) ; - émission à travers le réseau dudit message ou indicateur de message par l'agent proxy de moteur de carte (CEPA) ;
3. Procédé selon la revendication 1 caractérisé en ce qu'il comporte les étapes suivantes : - réception à travers le réseau d'un message ou indicateur de message destiné à cet agent de carte (CA), par un agent, dit agent proxy de moteur de carte (CEPA), mémorisé dans des moyens de mémorisation du réseau (1) ; - mémorisation dans des moyens de mémorisation du réseau (1) dudit message ou indicateur de message par l'agent proxy de moteur de carte (CEPA) ; - transmission dudit message ou indicateur de message de l'agent proxy de moteur de carte (CEPA) à au moins un agent de carte (CA) mémorisé dans la plate-forme amovible ; - mémorisation dudit message ou indicateur de message dans des moyens de mémorisation de la plate-forme amovible ;
4. Procédé selon l'une des revendications précédentes, caractérisé en ce que les messages transmis entre l'agent de carte (CA) et l'agent proxy de moteur de carte (CEPA), ou inversement, passent par l'intermédiaire d'un agent moteur de carte (CEA), mémorisé dans des moyens de mémorisation de la plate-forme amovible, et ayant pour fonction de gérer ou animer cet agent de carte (CA).
5. Procédé selon l'une des revendications 3 à 4, caractérisé en ce qu'il comporte en outre les étapes suivantes :
<Desc/Clms Page number 34>
- mémorisation dudit message ou indicateur de message dans des moyens de mémorisation du réseau (1) par un agent proxy d'agent de carte (CAPA), mémorisé dans le réseau (1) et reflètent l'identité de l'agent de carte (CA) destinataire ; - transmission d'un message ou indicateur de message destiné à l'agent de carte (CA) depuis proxy d'agent de carte (CAPA) vers l'agent proxy de moteur de carte (CEPA) correspondant à l'agent de carte (CA) destinataire
6. Procédé selon l'une des revendications précédentes, caractérisé en ce que les échanges de messages entre l'agent proxy de moteur de carte (CEPA) et l'agent moteur de carte (CEA) s'effectuent selon un ordonnancement
Figure img00340001
de type le premier entré est le premier sorti ( First In First Out en anglais).
7. Procédé selon l'une des revendications précédentes, caractérisé en ce que les échanges de messages entre l'agent proxy de moteur de carte (CEPA) et l'agent moteur de carte (CEA) utilisent au moins un procédé d'envoi avec accusé de réception permettant à l'émetteur d'un message ou indicateur de message d'avoir confirmation, par le destinataire de ce même message, de sa bonne réception et de transmettre à nouveau les messages non reçus par le destinataire.
8. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'agent de moteur de carte (CEA) ou l'agent proxy de moteur de carte (CEPA) émettent un ou plusieurs messages ou indicateurs de messages vers un même agent destinataire en mettant en oeuvre un procédé dit procédé de tampon d'accusé de réception, comportant les étapes suivantes : - mémorisation dans un tampon d'accusé de réception (52,54), par l'émetteur d'un ou plusieurs messages (41,46, 49) ou indicateurs de messages à émettre, ces messages ou indicateurs étant classés selon l'ordre dans lequel ils doivent être émis et associés à des identifiants dit index (S1, S2, S3, M1, M2, M3) ;
<Desc/Clms Page number 35>
- transmission, depuis l'émetteur vers le destinataire, d'au moins un message (41,46, 49) ou indicateur de message accompagné d'une donnée dite marquage (SO, MO) représentant l'index (S3, M3) de ce même message ;
9. Procédé selon l'une des revendications précédentes, caractérisé en ce que ledit procédé de tampon d'accusé de réception comprend en outre les étapes suivantes : - réception par le destinataire d'au moins un message (41,46, 49) ou indicateur de message accompagné d'une donnée dite marquage (SO, MO) représentant l'index (S3, M3) de ce même message ; - transmission depuis le destinataire vers l'émetteur d'une donnée dite index de dernier message reçu par le destinataire (LRMNOR pour les messages reçus par le réseau, respectivement LRMN C pour la plate-forme embarquée) comportant ou représentant la valeur de l'index représenté par le marquage (SO, MO) qui accompagnait le dernier message ou indicateur reçu depuis ce même émetteur ; - réception de cet index de dernier message reçu (LRMNOR, LRMN C) par l'émetteur et comparaison de ce même index avec les index des messages ou indicateurs mémorisés dans son tampon (52,54) d'accusé de réception ; - nouvelle transmission, par l'émetteur vers le destinataire, des messages ou indicateurs mémorisés à la suite du message dont l'index correspond à l'index du dernier message reçu par le destinataire (LRMNOR, LRMNOC) dans son tampon d'accusé de réception (52,54),
10. Procédé selon l'une des revendications précédentes, caractérisé en ce que une nouvelle transmission, par ledit procédé de tampon d'accusé de réception, des messages mémorisés par l'émetteur dans son tampon (52,54) d'accusé de réception et non encore reçus par le destinataire, s'effectue dans l'ordre où ces messages ont été mémorisés dans ce même tampon (52,54) d'accusé de réception.
<Desc/Clms Page number 36>
11. Procédé selon l'une des revendications précédentes, caractérisé en ce que ledit procédé de tampon d'accusé de réception comprend en outre une étape de mémorisation par le destinataire, en tant qu'index de dernier message reçu par le réseau (LRMN R) ou index de dernier message reçu par la carte (LRMN C), d'une donnée comportant ou représentant l'index (S3, respectivement M3) de l'emplacement où est mémorisé ce même message dans le tampon d'accusé de réception (52, respectivement 54) de l'émetteur.
12. Procédé selon l'une des revendications précédentes, caractérisé en ce que le procédé de tampon d'accusé de réception comprend en outre un moins une étape de vérification, par le destinataire du message ou indicateur, de l'intégrité du contenu de ce message ou indicateur, l'index de dernier message reçu par le destinataire (LRMN R, LRMN C) étant alors déterminé comme étant l'index représenté (S3, M3) par le marquage (SO, MO) accompagnant le dernier message reçu dont l'intégrité satisfait à des conditions déterminées.
13. Procédé selon l'une des revendications précédentes, caractérisé en ce que l'agent proxy de moteur de carte (CEPA) transmet à l'agent moteur de carte (CEA) un ou plusieurs messages ou indicateurs reçus depuis le réseau (1), en mettant en oeuvre un procédé dit de contrôle de flux par tampon, comportant les étapes suivantes : - mémorisation dans un tampon (53) de contrôle de flux situé dans des moyens de mémorisation du réseau (1) d'un ou plusieurs messages (45) ou indicateurs reçus, ces messages ou indicateurs étant classés suivant leur ordre de réception ; - vérification de l'état de fonctionnement du tampon (54) d'accusé de réception ; - émission desdits messages ou indicateurs, dans l'ordre où ils ont été reçus, selon ledit procédé tampon d'accusé de réception.
<Desc/Clms Page number 37>
14. Procédé selon l'une des revendications précédentes, caractérisé en ce que les moyens de communication du terminal (20) sont gérés par au moins un agent de communication de terminal (TSPA) mémorisé dans des moyens de mémorisation du terminal (20) ou du réseau (1), le passage de la plate-forme amovible de l'état connecté à l'état déconnecté déclenchant des étapes de : - détection de la déconnexion de la plate-forme amovible (30) par l'agent de communication de terminal (TSPA) ; - envoi d'un message de notification de deconnexion depuis l'agent de communication de terminal (TSPA) vers l'agent proxy de moteur de carte (CEPA) ; - mémorisation dans des moyens de mémorisation (CO) du réseau (1) par l'agent proxy de moteur de carte (CEPA) de l'état déconnecté de la plate- forme amovible.
15. Procédé selon l'une des revendications précédentes, caractérisé en ce que ledit procédé contrôle de flux par tampon comporte en outre une étape de prise de connaissance par l'agent proxy de moteur de carte (CEPA) de l'état de connexion ou d'accessibilité de la plate-forme amovible (30) depuis le réseau (1).
16. Procédé selon l'une des revendications précédentes, caractérisé en ce que la communication du terminal (20) avec la plate-forme amovible (30) est gérée par au moins un agent de communication de terminal (TSPA) mémorisé dans des moyens de mémorisation du terminal (20) ou du réseau (1), le passage de cette plate-forme amovible de l'état déconnecté à l'état connecté, combiné ou non avec un autre événement, déclenchant les étapes suivantes : - détection par l'agent de communication de terminal (TSPA) de cette connexion ;
<Desc/Clms Page number 38>
- prise de connaissance par l'agent de communication de terminal (TSPA) d'une donnée représentant un code (CEPld) identifiant un agent de carte (CA) ou un agent moteur de carte (CEA), mémorisé dans les moyens de mémorisation de la plate-forme amovible (30) ; - envoi d'un message de notification d'insertion, depuis l'agent de communication de terminal (TSPA) vers l'agent proxy de moteur de carte (CEPA), comportant ou représentant le code (CEPld) de l'agent moteur de carte (CEA) ou de l'agent de carte (CA).
17. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'un agent proxy de moteur de carte (CEPA) mémorisé dans le réseau (1) et un agent moteur de carte mémorisé (CEA) dans la plate-forme amovible échangent un ou plusieurs messages ou indicateurs de messages selon ledit procédé tampon d'accusé de réception, le passage de la plate-forme amovible de l'état déconnecté à l'état connecté, combiné ou non avec un autre événement, déclenchant un procédé dit de réactualisation comprenant les étapes suivantes : - transmission depuis l'agent de communication de terminal (TSPA) ou l'agent moteur de carte (CEA) vers l'agent proxy de moteur de carte (CEPA) de l'index de dernier message reçu par la carte (LRMNOC) mémorisé par cet agent moteur de carte (CEA) ; - transmission depuis l'agent proxy de moteur de carte (CEPA) vers l'agent moteur de carte (CEA) des messages (49) ou indicateurs mémorisés dans son tampon (54) d'accusé de réception comme étant destiné à ce même agent moteur de carte (CEA), et non encore reçus par lui.
18. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'un agent proxy de moteur de carte (CEPA) mémorisé dans le réseau (1) et un agent moteur de carte mémorisé (CEA) dans la plate-forme amovible échangent un ou plusieurs messages ou indicateurs de messages selon ledit procédé tampon d'accusé de réception, le passage de la plate-forme amovible
<Desc/Clms Page number 39>
de l'état déconnecté à l'état connecté, combiné ou non avec un autre événement, déclenchant un procédé dit de réactualisation comprenant les étapes suivantes : - transmission depuis l'agent proxy de moteur de carte (CEPA) vers l'agent moteur de carte (CEA) de l'index d'émission de dernier message reçu par le réseau (LRMNOR) mémorisé par cet agent proxy de moteur de carte (CEPA) ; - transmission depuis l'agent moteur de carte (CEA) vers l'agent proxy de moteur de carte (CEPA) des messages (50) ou indicateurs mémorisés dans son tampon (52) d'accusé de réception comme étant destiné à ce même agent proxy de moteur de carte (CEPA), et non encore reçus par lui.
19. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte : - une étape de sérialisation comprenant une conversion des objets logiciels (40,41, 45,46, 49,50) à transmettre par agent depuis un terminal de communication (20,21, 22) vers une plate-forme amovible (30,31, 32) ou inversement, cette conversion s'effectuant depuis la forme structurée que présentent ces objets logiciels dans l'agent qui souhaite les transmettre, vers la forme moins structurée de données sous laquelle ils sont à même d'être transmis entre un terminal de communication (20,21, 22) et les moyens de communication (310,320) d'une plate-forme amovible (31,32) ou inversement ; - une étape de désérialisation réalisant la conversion inverse une fois cette transmission effectuée.
20. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'au moins un agent proxy de moteur de carte (CEPA) gère les communications avec le réseau (1) de plusieurs agents moteurs de carte (CEA), cet agent proxy de moteur de carte (CEPA) mémorisant, dans le réseau
<Desc/Clms Page number 40>
(1), des données représentant un code d'identification (CEPld), un état (CO) d'accessibilité ou non de la plate-forme, un index (LRMNOR) de dernier message reçu par le réseau, et le contenu des messages émis sans accusé de réception, pour chacun des agents moteurs de carte (CEA) qu'il gère.
21. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'au moins un agent communique à travers le réseau en utilisant une infrastructure logicielle de communication de type AAA ou compatible avec une telle infrastructure.
22. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'au moins un desdits agents participe à au moins une application programmée dans le langage Java@.
23. Système de communication par messages asynchrones entre d'une part un réseau informatique (1) comprenant une ou plusieurs stations (11) de traitement de données où sont mémorisés un ou plusieurs agent logiciels communiquant entre eux en utilisant une infrastructure logicielle distribuée de communication informatique par messages asynchrones, et d'autre part au moins un objet portable (30,31, 32) comportant au moins un processeur, des moyens de mémorisation, et des moyens de communication avec au moins un terminal (20,21, 22) relié au réseau (1), caractérisé en ce que cet objet portable comporte au moins un agent logiciel, dit agent de carte (CA), communiquant par message ou indicateur de message avec au moins un agent logiciel quelconque, dit agent standard (AS), cet agent standard étant mémorisé, soit dans des moyens de mémorisation du réseau informatique, soit dans cette même plate-forme amovible ou une autre similaire, ce réseau informatique (1), cette communication se faisant par l'intermédiaire d'au moins un agent intermédiaire (CEPA, CAPA) mémorisé dans les moyens de mémorisation du réseau et gérant les communications de l'agent de carte (CA) avec le réseau (1).
<Desc/Clms Page number 41>
24. Système selon l'une des revendications précédentes, caractérisé en ce qu'il comporte au moins un agent logiciel, dit agent de communication de terminal (TSPA), mémorisé dans des moyens de mémorisation du terminal (20, 21) ou du réseau (1), ayant pour fonction de gérer la communication entre le terminal (20,21, 22) et la plate-forme amovible (30,31, 32), cet agent de communication de terminal et d'envoyer des notifications de connexion ou de déconnexion de la plate-forme amovible.
25. Système selon l'une des revendications précédentes, caractérisé en ce que la plate-forme amovible comporte au moins un agent logiciel, dit agent moteur de carte (CEA), ayant pour fonction de gérer ou animer le fonctionnement d'au moins un agent de carte (CA), l'agent proxy de moteur de carte (CEPA) ayant alors pour fonction de gérer les communications de cet agent moteur de carte (CEA) avec le réseau (1).
26. Système selon l'une des revendications précédentes, caractérisé en ce qu'il comporte au moins un agent logiciel, dit agent proxy d'agent de carte (CAPA), mémorisé dans des moyens de mémorisation du réseau (1), ayant pour fonction de refléter l'identité d'au moins un agent de carte (CA) et recevoir les messages provenant du réseau (1) qui lui sont destinés.
27. Système selon l'une des revendications précédentes, caractérisé en ce que le réseau (1), ou la plate-forme amovible, ou les deux, comportent une structure de mémoire, dite tampon (52,54) d'accusé de réception, ayant pour fonction d'indexer et de mémoriser les messages envoyés depuis le réseau (1) vers la plate-forme amovible (20) ou inversement, et de les envoyer à nouveau à leur destinataire lorsqu'ils n'ont pas été bien reçus.
28. Système selon l'une des revendications précédentes, caractérisé en ce que le réseau (1) comporte une structure de mémoire, dite tampon (53) de contrôle de flux, ayant pour fonction de mémoriser les messages reçus par l'agent proxy de moteur de carte (CEPA) à l'intention d'un agent de carte (CA), puis de présenter ces messages au tampon (54) d'accusé de réception pour
<Desc/Clms Page number 42>
transmission à la plate-forme amovible (20) lorsque la plate-forme amovible (20) est accessible ou que le tampon (54) d'accusé de réception n'est pas saturé.
29. Système selon l'une des revendications précédentes, caractérisé en ce que le tampon (52,54) d'accusé de réception et le tampon (53) de contrôle réalisent l'extraction des messages qu'ils contiennent dans l'ordre où ils les ont mémorisés.
30. Système selon l'une des revendications précédentes, caractérisé en ce que l'agent proxy de moteur de carte (CEPA) et l'agent moteur de carte (CEA) comportent une fonction de sérialisation et une fonction de désérialisation, réalisant, dans un sens et respectivement dans le sens inverse, la conversion ou la traduction d'au moins un message à transmettre à travers le terminal (20) entre la structure qu'ils présentent lorsqu'ils sont reçus et une structure compatible avec le terminal (20) et les moyens de communication de la plate-forme amovible (30).
31. Système selon l'une des revendications précédentes, caractérisé en ce que la communication entre le terminal (21,22) et les moyens de communication (310,320) de la plate-forme amovible (21,22) se fait par transmission de données au format APDU selon la norme ISO 7816.
32. Système selon l'une des revendications précédentes, caractérisé en ce qu'au moins deux stations composant le réseau (1) communiquent entre elles selon une infrastructure logicielle de type AAA-MOM.
33. Système selon l'une des revendications précédentes, caractérisé en ce qu'il comporte au moins un desdits agents programmé dans le langage Java@.
FR0202567A 2002-02-28 2002-02-28 Procede de communication reseau avec une carte a puce par messages asynchrones Pending FR2836611A1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FR0202567A FR2836611A1 (fr) 2002-02-28 2002-02-28 Procede de communication reseau avec une carte a puce par messages asynchrones
US10/505,931 US8606914B2 (en) 2002-02-28 2003-02-26 Network communication method with a smartcard using asynchronous messages
AT03704876T ATE362268T1 (de) 2002-02-28 2003-02-26 Verfahren zur netzwerkkommunikation mit einer chipkarte die asynchrone meldungen benutzt
EP03704876A EP1481531B9 (fr) 2002-02-28 2003-02-26 Procede de communication de reseau au moyen d'une carte a puce utilisant des messages asynchrones
AU2003207876A AU2003207876A1 (en) 2002-02-28 2003-02-26 Network communication method with a smartcard using asynchronous messages
PCT/IB2003/000770 WO2003073727A1 (fr) 2002-02-28 2003-02-26 Procede de communication de reseau au moyen d'une carte a puce utilisant des messages asynchrones
DE60313746T DE60313746T2 (de) 2002-02-28 2003-02-26 Verfahren zur netzwerkkommunikation mit einer chipkarte die asynchrone meldungen benutzt

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0202567A FR2836611A1 (fr) 2002-02-28 2002-02-28 Procede de communication reseau avec une carte a puce par messages asynchrones

Publications (1)

Publication Number Publication Date
FR2836611A1 true FR2836611A1 (fr) 2003-08-29

Family

ID=27676185

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0202567A Pending FR2836611A1 (fr) 2002-02-28 2002-02-28 Procede de communication reseau avec une carte a puce par messages asynchrones

Country Status (7)

Country Link
US (1) US8606914B2 (fr)
EP (1) EP1481531B9 (fr)
AT (1) ATE362268T1 (fr)
AU (1) AU2003207876A1 (fr)
DE (1) DE60313746T2 (fr)
FR (1) FR2836611A1 (fr)
WO (1) WO2003073727A1 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100459787C (zh) * 2004-08-29 2009-02-04 华为技术有限公司 一种用户卡的安全保障方法
US8095179B2 (en) * 2004-10-14 2012-01-10 Nokia Corporation Proxy smart card applications
US7933240B2 (en) * 2007-07-19 2011-04-26 Honeywell International Inc. Apparatus and method for redundant connectivity and multi-channel operation of wireless devices
US8681676B2 (en) * 2007-10-30 2014-03-25 Honeywell International Inc. System and method for providing simultaneous connectivity between devices in an industrial control and automation or other system
US10230678B2 (en) * 2015-08-20 2019-03-12 International Business Machines Corporation Storing messages of a message queue
FR3104357B1 (fr) * 2019-12-04 2022-08-12 Sangle Ferriere Bruno Renouvellement de clés à usage unique
CN111698217B (zh) * 2020-05-19 2022-01-28 电子科技大学 一种软件化雷达通用通信中间件
CN111988324A (zh) * 2020-08-25 2020-11-24 广州鲁邦通物联网科技有限公司 一种数据通讯方法、系统、设备及存储介质
CN117270818B (zh) * 2023-10-11 2024-04-09 北京航空航天大学 Mom标准中软件需求类图信息识别与模型生成方法和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100275023B1 (ko) * 1993-09-10 2000-12-15 사와무라 시코 Ic 카드 리더라이터 및 그 제어방법
EP0727894B1 (fr) * 1994-08-30 2004-08-04 Kokusai Denshin Denwa Co., Ltd Systeme de certification
US6157966A (en) * 1997-06-30 2000-12-05 Schlumberger Malco, Inc. System and method for an ISO7816 complaint smart card to become master over a terminal
US6192436B1 (en) * 1998-09-18 2001-02-20 Xilinx Inc. System and method for configuration of electronic devices using a smart card which having configuration data stored therein
US6195700B1 (en) * 1998-11-20 2001-02-27 International Business Machines Corporation Application protocol data unit management facility
US6715082B1 (en) * 1999-01-14 2004-03-30 Cisco Technology, Inc. Security server token caching
US6535997B1 (en) * 1999-05-19 2003-03-18 International Business Machines Corporation Data integrity in smartcard transactions
US6772239B2 (en) * 2000-04-18 2004-08-03 Swapcard.Com Inc. Computer product and method for smart card
US20030150915A1 (en) * 2001-12-06 2003-08-14 Kenneth Reece IC card authorization system, method and device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHRIVASTAVA S K ET AL: "A workflow and agent based platform for service provisioning", ENTERPRISE DISTRIBUTED OBJECT COMPUTING CONFERENCE, 2000. EDOC 2000. PROCEEDINGS. FOURTH INTERNATIONAL MAKUHARI, JAPAN 25-28 SEPT. 2000, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 25 September 2000 (2000-09-25), pages 38 - 47, XP010521574, ISBN: 0-7695-0865-0 *

Also Published As

Publication number Publication date
EP1481531B1 (fr) 2007-05-09
US8606914B2 (en) 2013-12-10
US20050125502A1 (en) 2005-06-09
DE60313746D1 (de) 2007-06-21
EP1481531B9 (fr) 2008-03-05
WO2003073727A1 (fr) 2003-09-04
ATE362268T1 (de) 2007-06-15
AU2003207876A1 (en) 2003-09-09
EP1481531A1 (fr) 2004-12-01
DE60313746T2 (de) 2008-01-24

Similar Documents

Publication Publication Date Title
EP1701274B1 (fr) Architecture de noeud de communication dans un système de réseau sur puce globalement asynchrone
EP1641197B1 (fr) Architecture de communication NoC (réseau sur puce ) pour applications de type flots de données
CN106130882A (zh) 用于传输消息的方法和装置
EP2791798B1 (fr) Bus logiciel
US20090150556A1 (en) Memory to storage communication for hybrid systems
FR2824215A1 (fr) Procede et dispositif de traitement d&#39;un message dans un reseau de communication
FR2836611A1 (fr) Procede de communication reseau avec une carte a puce par messages asynchrones
EP0524071A1 (fr) Système d&#39;exploitation pour dispositif universel de couplage d&#39;un bus d&#39;ordinateur à une liaison spécifique d&#39;un réseau
EP1531589B1 (fr) Système et procédé de transmission d&#39;une séquence de messages dans un réseau d&#39;interconnexions
FR2815801A1 (fr) Protocole de transmission d&#39;une pluralite de flux logiques d&#39;echange multiple de couples de commande/reponse sur un canal physique unique d&#39;echange entre maitre et esclave et systeme de suivi et de controle d&#39;execution d&#39;appliquettes
EP0606791B1 (fr) Dispositif et procédé d&#39;utilisation de fonctions de pseudo point de communication déportées (pseudo sockets)
FR2994782A1 (fr) Procede et systeme d&#39;execution de protocoles de chargement de donnees
FR3031822A1 (fr) Telechargement de donnees sur un equipement distant
FR3006528A1 (fr) Systeme et procede de supervision de communication entre composants applicatifs
Brahneborg et al. Towards a more reliable store-and-forward protocol for mobile text messages
EP3675435A1 (fr) Procédé de routage dynamique dans un réseau d&#39;objets connectés
EP3080706B1 (fr) Procédé de sauvegarde de données stockées sur un terminal
CN110968259A (zh) 分步式对象存储系统、对象储存方法及存储介质
FR2696256A1 (fr) Utilisation de &#34;tubes&#34; pour le transfert d&#39;états entre différents systèmes distants.
EP0113272B1 (fr) Réseau maille modulaire de communications
EP1952599B1 (fr) Procede de diffusion maitrisee d&#39;informations
EP0915602A1 (fr) Méthode de communication entre des terminaux répartis et une station centrale
EP3005625B1 (fr) Composant et procede de gestion de communication
WO1998009406A1 (fr) Dispositif de gestion d&#39;une memoire tampon, sans rearrangement en cas d&#39;elimination prematuree d&#39;un bloc de donnees memorise dans cette memoire
WO2009077568A1 (fr) Objet portable pour filtrer un message entrant non voulu, terminal et procede correspondants