Implantation des protocoles de communication FIPA dans la plate-forme GAMA

Dimension: px
Commencer à balayer dès la page:

Download "Implantation des protocoles de communication FIPA dans la plate-forme GAMA"

Transcription

1 L Institut de la Francophonie pour l Informatique L unité de recherche Geodes, Institut de Recherche pour le Développement (UR079, IRD) Master INTELLIGENCE ARTIFICIELLE ET MULTIMEDIA, 2 ème année, Spécialité RECHERCHE Année universitaire Implantation des protocoles de communication FIPA dans la plate-forme GAMA Mémoire présenté par VO Duc An Stage effectué à l UR079, IRD Bondy et au laboratoire MSI, IFI. Directeur : Alexis DROGOUL Directeur de Recherche, UR079, IRD. HaNoi, Septembre 2008.

2 L Institut de la Francophonie pour l Informatique L unité de recherche Geodes, Institut de Recherche pour le Développement (UR079, IRD) Master INTELLIGENCE ARTIFICIELLE ET MULTIMEDIA, 2 ème année, Spécialité RECHERCHE Année universitaire Implantation des protocoles de communication FIPA dans la plate-forme GAMA Mémoire présenté par VO Duc An Stage effectué à l UR079, IRD Bondy et au laboratoire MSI, IFI. Directeur : Alexis DROGOUL Directeur de Recherche, UR079, IRD. HaNoi, Septembre 2008.

3 Remerciements Je tiens à remercier tout particulièrement Alexis DROGOUL pour m avoir encadré ces six mois. En fait, j ai de la chance de travailler sous la direction de Alexis DROGOUL dans le projet GAMA depuis plus d un an. Il est un professeur extraordinaire. Je le remercie pour son amitié, sa patience avec mes questions souvent stupides, son encouragement, son soutien, et la liberté de recherche qu il a bien voulu me laisser. Les moments où il m a aidé à faire le debug sur Eclipse sont des moments inoubliables pour moi. Je remercie Quang de son amitié, son encouragement et son soutien tout au long de ce travail. Je le remercie pour son aide à Bondy ainsi qu à MSI. Je lui souhaite tout le succès pour sa thèse. Je remercie François Sempé d avoir accepté de rapporter sur ce travail. Je remercie Minh Thu, Khanh, Edouard et Doanh pour leur amitié, leur aide pour le temps à MSI. Je remercie chaleureusement mes camarades de la promotion XII pour leur amitié sans faille et leur souhaite bonne chance pour la soutenance. Je remercie les professeurs de l IFI pour leurs aides pendant ces derniers trois ans à IFI. Enfin, je remercie mes parents pour leur soutien et leur encouragement à tout instant. Je leurs dédie ce travail.

4 Tableaux des matières I. Introduction... 6 II. Problème actuel et les protocoles d interaction de FIPA... 7 II.1. Problème actuel de la communication dans GAMA... 7 II.2. Les protocoles d interaction de FIPA... 8 II.2.1. Message FIPA ACL... 9 II.2.2. Protocole d interaction «FIPA Request»... 9 III. L implémentation des protocoles d interaction de FIPA dans GAMA III.1. Diagramme de classe III.2. Structure d un «Message» III.3. Abstraction des protocoles d interaction III.4. Mécanisme d envoi et de réception d un message III.5. Vérification d un message avec le protocole d interaction employé III.6. Langage GAML III.6.1. Les primitifs, les variables, les objets d un agent communicant III.6.2. Exemple de GAML IV. Validation dans le modèle «fourmis» IV.1. Le modèle «fourmis» original IV.2. Le modèle «fourmis» avec la communication IV.2.1. Fonctionnement du modèle IV.2.2. La communication entre les agents IV.2.3. Le fonctionnement du nouveau modèle dans GAMA IV.3. Commentaire sur le fonctionnement de deux versions de «fourmis» V. Validation dans le modèle «AROUND» V.1. Modèle AROUND original V.2. Modèle AROUND avec la communication V.3. Commentaire sur le fonctionnement de deux versions de «AROUND» VI. Conclusion et perspectives Bibliographie Annexe Annexe A Code source du modèle «fourmis» avec la communication Annexe B Code source du modèle AROUND avec la communication... 59

5 Tableau des figures Figure 1 - L architecture d une plate-forme d agent proposée par FIPA... 8 Figure 2 - Protocole d interaction «FIPA Request» Figure 3 - Les classes principales de l implémentation Figure 4 - Structure d un message Figure 5 - Les protocoles d interaction de FIPA implémentés dans GAMA Figure 6 - Modélisation d un protocole d interaction Figure 7 - Protocole d interaction FIPA Request Figure 8 - Itinéraire d un message de l envoyeur au récepteur Figure 9 - Un message respecte le protocole d interaction employé Figure 10 - Un message ne respecte pas le protocole d interaction employé Figure 11 - Protocole d interaction FIPA Request Figure 12 - Le comportement d une fourmi dans le modèle «fourmis» original Figure 13 - Le modèle «fourmis» original Figure 14 - Le comportement d un «foodfinder» Figure 15 - Le comportement d un «foodcarrier» Figure 16 - Protocole «FIPA Contract Net» dans le modèle «fourmis» Figure 17 - Protocole «No Protocol» entre foodcarrier et foodfinder Figure 18 - Modèle «fourmis» avec la communication dans GAMA Figure 19 - Deux ambulances vont prendre une même victime Figure 20 - Relation entre military et explorer Figure 21 - Procotole d Interaction FIPA Request entre military et explorer Figure 22 - Protocole d Interaction «No Protocol» entre explorer et military Figure 23 - Relation entre military et fireman Figure 24 - Protocole d Interaction FIPA Request entre military et fireman Figure 25 - Protocole d Interaction FIPA Request entre military et hospital Figure 26 - Protocole d Interaction «No Protocol» entre military et hospital Figure 27 - Relation entre hospital et ambulance Figure 28 - Protocole d Interaction FIPA Request entre ambulance et hospital Figure 29 - Protocole d Interaction «No Protocol» entre les hôpitaux Figure 30 - Protocole d Interaction «No Protocol» entre hospital et ambulance Figure 31 - Protocole d Interaction FIPA Request entre hospital et ambulance Figure 32 - Protocole d Interaction FIPA Request When entre hospital et ambulance Figure 33 Repartition des ambulances dans la version originale Figure 34 Repartition des ambulances dans la nouvelle version Figure 35 - Repartition des voitures des pompiers dans la version originale Figure 36 - Repartition des voitures des pompiers dans la nouvelle version... 47

6 I. Introduction GAMA (GIS & Agent-based Modelling Architecture) est une plateforme générique pour la modélisation et simulation orientée agent. GAMA est actuellement développée au sein du laboratoire MSI et est financée principalement par l IRD. Ce projet regroupe plusieurs partenaires : IFI, IRD, CIRAD, EDF. Le développement de cette plateforme est en parallèle avec l implémentation de plusieurs modèles complexes qui appartiennent à différents domaines. La diversité des modèles développés nous aide à vérifier la généralité de la plateforme et l assurer d une part. Elle sert également à découvrir les fonctionnalités manquantes de la plateforme d autre part. En observant le déroulement de la simulation de quelques modèles, nous avons fait le constat qu il n existe pas encore actuellement de mécanisme de communication standardisé entre les agents dans GAMA. En raison de cette absence, le fonctionnement de ces modèles peut ne pas être réaliste, n est pas efficace et parfois n est pas correct. Sans un mécanisme de communication, il n est par exemple pas possible ou difficile pour les modélisateurs d implémenter de mécanismes de coordination entre les agents. Ce stage de fin d étude a donc pour but d implémenter des protocoles de communication dans GAMA et de valider le fonctionnement de ces protocoles en les utilisant dans quelques modèles existants. Ce rapport présente le travail réalisé au cours du stage. Il se compose de six parties. Cette première partie donne une présentation générale du stage. La deuxième partie introduit le problématique : la nécessité d introduire des protocoles d interaction dans GAMA. Dans la troisième partie, l implémentation de ces protocoles dans GAMA est détaillée. Les quatrième et cinqième parties présentent la validation du travail réalisé. Dans la quatrième partie, une implémentation des protocoles d interaction dans un modèle simple est présentée. Puis une implémentation de ces protocoles d interaction dans un modèle complexe est le contenu de la cinqième partie. Ce rapport se termine avec une partie de conclusion et perspectives. 6

7 II. Problème actuel et les protocoles d interaction de FIPA II.1. Problème actuel de la communication dans GAMA Comme nous l avons souligné au-dessus, actuellement, GAMA ne fournit pas encore de capacité pour modéliser une «vraie» communication entre des agents. Les deux mécanismes existants, la communication par signal et la commande «ask», sont en effet très limités. Avec la communication par signal, un agent est capable de transférer des informations dans son environnement. Après quoi, d autres agents peuvent les lire puis réagir de façon appropriée. Comme un signal est transféré par l environnement, tous les autres agents peuvent le percevoir. Dans le cas où un agent A veut communiquer seulement avec un agent B, cela peut poser un problème : si A veut que les informations transférées ne soient visibles que par B, il n y a aucun moyen pour lui de le préciser. L utilisation du signal n est pas donc convenable dans ce cas. De plus, la communication par signal est couteuse en temps de calcul quand le rayon du signal est grand. Dans GAMA, on peut également utiliser l appel «ask» pour demander à un agent (ou à des agents) d exécuter du code. Cette commande est équivalente à l envoi de messages entre objets. On peut donc l utiliser pour simuler le processus de l envoi et de la réception de messages entre les agents. Mais il n est pas possible de modéliser un processus de négociation avec la commande «ask». Plus précisément, l agent A peut utiliser un «ask» pour demander à l agent B à faire quelque chose, mais il n y a aucune possibilité pour l agent B de refuser de le faire, et, de plus, aucune possibilité pour B d informer A de ce refus. Et si B exécute la demande de A, rien n est prévu dans le langage GAML (langage de modélisation de GAMA) pour que B informe A du résultat. Enfin, si B exécute l action demandée par A, mais que l exécution de cette action n est pas réussie, aucun mécanisme n est disponible pour prévenir A. Une autre nécessité est la capacité de coordination et de négociation entre des agents. Considérons un exemple inspiré par le protocole Contract Net. Supposons que l on a deux types d agent. Un agent qui joue le rôle d un gestionnaire. Plusieurs autres agents qui jouent le rôle des participants. Le gestionnaire souhaite faire effectuer une certaine tâche par un des participants. Le gestionnaire sollicite des propositions de m autres participants en publiant un appel d offres (call for proposals, ou cfp en anglais). Cet appel spécifie la tâche, ainsi que toutes les condition que le gestionnaire souhaite placer sur l exécution de cette tâche (temps minimum d exécution, qualité de la réalisation, etc.). Les participants recevant cet appel d offres sont considérés comme des «entrepreneurs». Parmi les m participants, j participants (j <= m) acceptent la sollicitation du gestionnaire en envoyant des offres au gestionnaire. Et i participants (i = m j) la refusent. En recevant j appels d offre de j participants, le gestionnaire choisit le participant le plus convenable pour exécuter la tâche. Actuellement, il n est pas possible de modéliser un scénario comme celui-ci dans GAMA, alors qu il est pourtant très utile dans un environnement multi-agent (où les 7

8 agents ne sont pas forcément tous égaux en terme de capacité, et pas forcément tous disponibles pour réaliser une tâche). En implémentant différents modèles classiques des SMA, nous percevons qu il existe bien des cas dans lesquels la coordination entre les agents joue un rôle vital. Sans une bonne coordination et la capacité de négociation, le fonctionnement de tels modèles n est pas efficace et parfois n est pas correct. Donc il est nécessaire d avoir un vrai mécanisme de communication dans GAMA. Ce mécanisme devra nous aider à modéliser la communication, la négociation et la coordination entre les agents. En plus, il devra fournir aux modélisateurs des primitives de haut-niveau pour manipuler les protocoles de communications et traiter les messages de façon confortable. II.2. Les protocoles d interaction de FIPA FIPA (Foundation of Intelligent Physical Agents) est un membre de l IEEE. Cette organisation a pour objectif de standardiser le développement des technologies orientées agent. Elle propose des normes et des spécifications pour l interaction entre agents et pour les systèmes orientés agent. Les spécifications de FIPA sont classées dans les catégories suivantes : communication entre agents, gestion des agents, transport d agents, architecture abstraite des applications orientées agent. Ces spécifications jouent un rôle d indications pour la conception et le développement des applications orientées agent. Elles aident aussi à augmenter l interopérabilité entre ces applications. La figure 1 est l architecture d une plate-forme d agent proposée par FIPA. Figure 1 - L architecture d une plate-forme d agent proposée par FIPA On voit que cette plate-forme se divise en plusieurs sous-systèmes comme : Agent, Agent Management System, Directory Facilitator, Message Transport System. Pour chacun de ces sous-systèmes, FIPA fournit plusieurs spécifications qui le décrivent. Parmi les spécifications de FIPA, nous nous intéressons aux spécifications qui concernent la communication d agent. Ces spécifications définissent les protocoles d interaction entre les agents. Les protocoles d interaction de FIPA sont des protocoles éprouvés pour 8

9 la communication d agent. Ils sont déjà implémentés dans quelques plate-formes d agent comme JADE, FIPA-OS, Un protocole d interaction est en fait une série de messages échangés entre des participants. La spécification du protocole stipule l ordre des messages que les participants doivent respecter. Les protocoles d interaction caractérisent différents scénarios de la communication. En se basant sur chaque situation concrète, le modélisateur emploie le protocole approprié. Les protocoles d interaction définis par FIPA sont FIPA Request, FIPA Query, FIPA Request When, FIPA Contract Net, FIPA Interated Contract Net, FIPA Brokering, FIPA Recruiting, FIPA Subscribe, FIPA Propose. Nous allons présenter en détail le protocole d interaction «FIPA Request». Pour le détail des autres protocoles, vous pouvez suivre le lien de FIPA donné dans la section bibliographie. Mais pour faciliter la présentation du protocole «FIPA Request», nous regardons maintenant la notion Message de FIPA. II.2.1. Message FIPA ACL Les agents réalisent des actions de communication en envoyant des messages et en les recevant. FIPA définit plusieurs attributs qu un message doit posséder. Les plateformes d agent qui implémentent la spécification de FIPA ne sont pas obligées d implémenter tous les attributs définis. L auteur de la plateforme peut choisir les attributs qui sont considérés comme convenable pour sa plateforme. Voici quelques attributs de message définis par FIPA : Sender : cet attribut indique l envoyeur du message. Receiver : cet attribut contient le nom (les noms) d un (des) récepteur(s) de message. Performative : cet attribut fait savoir le type de message. Normalement, la valeur de cet attribut donne une signification au message. FIPA définit une série de performatifs avec les significations correspondantes. Si vous vous intéressez, vous pouvez suivre le lien du document «FIPA Communicative Act Library Specification» qui se trouve dans la section bibliographie. Protocol : cet attribut indique le protocole d interaction que l envoyeur de message emploie pour envoyer ce message. Content : cet attribut contient le contenu du message. Conversation-id : cet attribut indique la conversation à laquelle ce message appartient. La notion de conversation est utilisée pour représenter le déroulement d un dialogue entre les agents. II.2.2. Protocole d interaction «FIPA Request» Dans cette partie, nous regardons en détail le protocole d interaction «FIPA Request» de FIPA. Ce protocole permet un agent à demander un autre agent à effectuer une certaine action. La représentation de ce protocole est donnée dans la figure 2. 9

10 Figure 2 - Protocole d interaction «FIPA Request» Dans un protocole d interaction, il y a deux types d agent : l initiateur (l agent qui initie le protocole) et le(s) participant(s). Le déroulement de ce protocole est comme suit : L initiateur commence le protocole en envoyant un message avec le performatif «request». En recevant ce premier message de l initiateur, le participant peut décider d accepter la demande ou de la refuser. Si le participant refuse la demande, il répond à l initiateur un message avec le performatif «refuse» et le protocole se termine. Si le participant accepte la demande, il communique cet accord à l initiateur en utilisant un message avec le performatif «agree». Après avoir accepté la demande, le participant effectue l action demandée. Quand le participant termine l exécution, il informe l initiateur en envoyant un message avec le performative «inform». Ou bien si l exécution a échoué, il informe l initiateur en utilisant un message avec le performatif «failure». Dans ce protocole, les messages avec les performatifs «refuse», «failure» ou «inform» du participant sont considérés comme des messages terminaux. Après avoir reçu un de ces messages, le protocole d interaction (ou bien la conversion correspondante) est donc considéré comme terminé. En se basant sur les spécifications des protocoles d interaction de FIPA, nous avons réalisé une implémentation de ces spécifications dans GAMA, qui est détaillée dans la section suivante. 10

11 III. L implémentation des protocoles d interaction de FIPA dans GAMA Comme nous l avons présenté dans l introduction, le travail de ce stage se divise en deux parties principales. La première partie a consisté à implémenter les protocoles d interaction de FIPA dans GAMA. Puis, dans la deuxième partie, la validation du fonctionnement de ces protocoles d interaction a été réalisée. Plus précisément, nous utilisons le travail de la première partie pour faire communiquer (et coordonner) des agents dans différents modèles. Dans cette partie, nous présentons l implémentation des protocoles d interaction de FIPA dans GAMA. III.1. Diagramme de classe Premièrement, nous présentons les classes principales de cette implémentation. Figure 3 - Les classes principales de l implémentation Agent : Cette classe est utilisée pour représenter un agent. Un agent peut participer à plusieurs conversations à la fois. Il peut jouer le rôle d un initiateur ou d un participant d une conversation. CommunicatingSkill : Cette classe définit les primitives qui servent à l envoi et à la réception des messages. Dans GAMA, on utilise la notion de Skill pour représenter une compétence particulière d un agent. Plusieurs classes ont été développées pour implémenter différentes compétences des agents. Par exemple, on a la classe CarryingSkill pour implémenter la compétence de porter des agents, la classe MovingSkill pour les compétences de déplacement, etc.. La classe CommunicatingSkill est donc développée pour la compétence de l envoi et de la réception des messages. Le modélisateur a besoin seulement de déclarer cette compétence pour les agents dans son modèle, et ses agents seront automatiquement dotés de tous les attributs et comportements nécessaires. IMessage : Cette interface définit les attributs d un message. Elle représente le morceau d information transmis entre les agents. On va décrire en détail cette classe dans la section qui suit. FIPAProtocol : Cette classe abstraite représente la notion de protocole d interaction de FIPA. Elle sert à vérifier si un message respecte la spécification d un protocole d interaction de FIPA ou pas. On va décrire en détail cette classe et ses sous-classes dans la section qui suit. 11

12 Conversation : cette classe représente une conversation/un dialogue entre les agents. Dans une conversation, les agents échangent les informations en envoyant les messages et en les recevant. Comme cela a déjà été décrit, il y a deux types d agent dans une conversation : un initiateur et un/des participant(s). Une conversation est commencée par un initiateur. La conversation suit un protocole d interaction défini par FIPA. Cela veut dire que les messages échangés entre l initiateur et le(s) participant(s) doivent respecter la structure du protocole d interaction actuellement employé. III.2. Structure d un «Message» Figure 4 - Structure d un message En se basant sur la spécification de FIPA, nous concevons notre propre classe de messages. Dans GAMA, un IMessage représente donc le morceau d information échangé entre les agents. Il se compose des attributs suivants : sender : cet attribut détermine l envoyeur du message. receivers : c est une liste qui contient le(s) récepteur(s) du message. content : c est une liste qui contient le contenu du message. On peut mettre n importe quel type de donnée dans cette liste. On laisse donc la liberté au modélisateur de manipuler le contenu du message dans son modèle. performative : cet attribut fait savoir la signification du message. FIPA définit une série de performatifs ainsi que les significations correspondantes. Pour plus d information, vous pouvez suivre le lien de FIPA donné dans la section bibliographie. conversation : un message appartient à une conversation. Une conversation suit un certain protocole d interaction. Cet attribut et l attribut «performative» servent donc à vérifier si le message échangé respecte bien le protocole d interaction actuellement employé. 12

13 III.3. Abstraction des protocoles d interaction Figure 5 - Les protocoles d interaction de FIPA implémentés dans GAMA La classe abstraite FIPAProtocol définit une méthode qui sert à vérifier si un message échangé respecte un protocole d interaction ou pas. FIPA fournit les protocoles d interaction comme : FIPA Request, FIPA Query, FIPA Request When, FIPA Contract Net, FIPA Interated Contract Net, FIPA Brokering, FIPA Subscribe, FIPA Propose. Pour chaque protocole, on décrit la structure de ce protocole dans une classe correspondante avec le même nom. Dans les classes de la figure ci-dessus, on voit la classe NoProtocol. Cette classe est spécifique à GAMA. Quand le modélisateur trouve que aucun protocole d interaction de FIPA n est convenable pour lui, il peut utiliser le protocole d interaction NoProtocol. Avec ce protocole, on peut envoyer et recevoir n importe quel message. Les performatifs des messages sont libres. Mais c est au modélisateur de terminer manuellement le protocole d interaction en utilisant le primitif «end» fourni par le CommunicatingSkill. Figure 6 - Modélisation d un protocole d interaction 13

14 On sait qu une Conversation suit un protocole d interaction. La classe correspondante a donc une référence à une sous-classe de FIPAProtocol qui détermine le protocole actuellement utilisé. Un protocole d interaction définit la série de messages autorisée. La question qui se pose maintenant est : comment peut-on modéliser la série de messages autorisée par un protocole d interaction? Pour le faire, on utilise la notion de ProtocolNode. Un ProtocolNode contient les méta-informations d un message. Pour chaque protocole d interaction, en se basant sur la structure définie dans la classe correspondante du protocole, on construit une liste de ProtocolNode. Cette liste contient les informations qui nous permettent de vérifier si un message échangé respecte bien un protocole d interaction ou pas. Un ProtocolNode se compose donc des attributs suivants : performative : cet attribut contient la valeur du performatif autorisé du message correspondant. sentbyinitiator : cet attribut détermine si le message correspondant est envoyé par l initiateur ou par un des participants. Si cette valeur est égale à vrai, le message correspondant vient de l initiateur. Sinon, il est envoyé par un des participants. followingnodes : cette liste contient les ProtocolNodes suivants autorisés par le protocole d interaction. Si cette liste est vide ou si la valeur de cet attribut est null, le ProtocoleNode actuel est le noeud terminal du protocole. Un protocole d interaction peut avoir plusieurs noeuds terminaux. Pour être plus clair, reconsidérons l exemple du protocole d interaction FIPA Request : nous regardons la série de message autorisée par ce protocole dans la figure suivante. 14

15 Figure 7 - Protocole d interaction FIPA Request A partir de la figure 7, on a la liste des ProtocolNodes correspondants. Numéro performative sentbyinitiator followingnodes 1 request true 2, 3 2 refuse false null 3 agree false 4, 5 4 failure false null 5 inform false null Tableau 1 - Listes des ProtocolNodes de FIPA Request Notons que l on a un seul noeud avec le performatif «inform». Dans la spécification de FIPA, on voit deux nœuds «inform» différents. Ils sont «inform-done» et «informresult». Mais grâce à notre conception de IMessage, l attribut contenu du message est une liste d objets. Cela veut dire que l on peut mettre n importe quelle donnée dans le contenu d un message, et qu on peut donc regrouper ces deux nœuds «inform» de FIPA en un seul nœud pour simplifier sa spécification. A partir de cet exemple, on peut voir que tous les protocoles d interaction de FIPA peuvent être modélisés en se basant sur l approche des ProtocolNodes. Si un message échangé ne respecte pas le protocole d interaction employé, on lèvera des exceptions. On a les exceptions suivantes (présentées dans la figure 6) : GamaException : C est une exception générique de GAMA. Une exception dans GAMA est une sous-classe directe ou indirecte de cette classe. 15

16 CommunicatingException : Cette exception est levée quand il y a une erreur générique de communication. ConversationFinishedException : Cette exception est levée quand un message est échangé dans une conversation déjà terminée. Une conversation est considérée comme terminée si un message terminal est échangé. Cela veut dire que, après qu un message terminal est échangé, l initiateur et le(s) participant(s) ne sont pas autorisés à échanger autres messages. Sinon cette exception sera levée. InvalidConversationException : cette exception est levée quand un message est échangé dans une conversation qui est différente de l attribut «conversation» du message. ProtocolErrorException : cette exception est levée quand le performatif du message actuel est différent du performatif autorisé par le protocole d interaction actuellement employé. UnknownProtocolException : cette exception est levée quand un message emploie un protocole d interaction qui n est pas reconnu par GAMA. III.4. Mécanisme d envoi et de réception d un message Dans cette section, nous regardons l itinéraire d un message de l envoyeur au récepteur. Considérons le diagramme de séquence suivant : Figure 8 - Itinéraire d un message de l envoyeur au récepteur L envoyeur commence ce processus en demandant à son CommunicatingSkill d envoyer un message. En recevant la demande de l envoyeur et toutes les informations nécessaires, le CommunicatingSkill crée une instance de Message et la met dans la liste des messages à envoyer de MessageBroker. Au cycle suivant de la simulation, le MessageBroker prendra les messages dans la queue d attente et fera deux choses suivantes avec chaque message : 1. Premièrement, on ajoute le message à la conversation correspondante : Si le message est le premier message d une conversation, on crée une nouvelle conversation avec le protocole d interaction déterminé et on met le message dans la nouvelle conversation. Si ce n est pas le premier message, on cherche la conversation correspondante du message et on le met dans la conversation trouvée. Le fait d ajouter un message à une conversation permet de vérifier si le message respecte 16

17 bien le protocole employé actuellement ou pas. On va détailler ce processus de vérification dans la section qui suit. 2. Deuxièmement, on ajoute le message à la liste des messages du récepteur. Chaque agent qui est capable de communiquer est doté d une liste qui joue le rôle d une boîte aux lettres. Cette liste contient les messages de l agent correspondant qui ne sont pas encore lus. Quand un agent lit un message dans sa boîte aux lettres, ce message est supprimé automatiquement par GAMA. Un agent communiquant possède aussi une liste de ses conversations actuellement en cours. Quand une conversation est terminée, cette conversation et tous les messages correspondants seront aussi supprimés automatiquement par GAMA. Le modélisateur n a donc pas besoin (sauf s il utilise le protocole NoProtocol) de gérer manuellement les messages. Quand un message arrive dans la boîte aux lettres d un agent, le modélisateur a toute la liberté de le lire et de traiter le contenu de ce message en implémentant le code GAML correspondant dans son modèle. III.5. Vérification d un message avec le protocole d interaction employé Comme nous l avons présenté, les classes Conversation, FIPAProtocol, les sous-classes de FIPAProtocol et ProtocolNode servent à vérifier si un message échangé respecte bien le protocole d interaction actuellement employé ou pas. Dans cette section, nous regardons comment un message est vérifié par rapport à son protocole d interaction. Nous considérons deux cas différents. Premièrement, le cas dans lequel le message respecte bien le protocole d interaction employé. Ce cas est décrit dans la figure suivante : Figure 9 - Un message respecte le protocole d interaction employé A chaque cycle de la simulation, le moteur de la simulation fait envoyer les messages dans la queue d attente du MessageBroker. Chaque message est ajouté à la conversation correspondante. Et la conversation fera une validation du message nouvellement ajouté par rapport au protocole d interaction que cette conversation suit. Plus précisément, elle fait des vérifications suivantes : 17

18 Vérifier le performatif du message par rapport aux performatifs autorisés par le protocole. Si le performatif du message n appartient pas aux performatifs autorisés pour le nœud suivant, un ProtocolErrorException sera levé. Si c est le premier message de la conversation, vérifier si le protocole employé est reconnu par GAMA. Si le protocole employé n est pas reconnu par GAMA, un UnknownProtocolException sera levé. Vérifier si la conversation actuelle est déjà terminée ou pas encore. Si un message est échangé dans une conversation déjà terminée, un ProtocolFinishedException sera levé. Si aucune exception n est levée, le message sera ajouté à la conversation correspondante et à la boîte aux lettres du récepteur. Si un des exceptions ci-dessus est levé, on aura le cas décrit dans la figure suivant. Figure 10 - Un message ne respecte pas le protocole d interaction employé III.6. Langage GAML GAML (GAMA Modelling Language) est un langage qui sert à écrire les modèles dans GAMA. C est un langage spécifique au domaine du multi-agent et de la modélisation, où tout est prévu pour simplifier le travail d un modélisateur. On utilise GAML pour modéliser les comportements des agents. La syntaxe de GAML s appuie sur une structure en XML. Alexis DROGOUL, responsable de ce stage, se charge de réaliser la conception et le développement de ce langage. Le développement de GAML se divise en deux tâches principales. Premièrement, écrire un compilateur. Deuxièmement, définir la syntaxe du langage. Dans ce rapport, nous ne présentons pas le détail de GAML. Si vous vous intéressez à ce langage, il existe un tutoriel détaillé sur le site web de GAMA. Nous nous concentrons plutôt sur le sujet du stage : la communication entre agents. Nous présentons donc dans la section suivante seulement les primitifs, les variables et les objets qu un agent est doté quand il est déclaré comme capable de faire la communication. III.6.1. Les primitifs, les variables, les objets d un agent communicant Quand le modélisateur déclare que son agent est capable de faire la communication, son agent est automatiquement doté des primitifs, des variables et des objets dans la classe CommunicationSkill. Concernant la syntaxe détaillée de GAML pour la déclaration de la 18

19 compétence de communication des agents, vous pouvez regarder le tutoriel en ligne qui se trouve sur le site web de GAMA. III Les primitifs En ce qui concerne les primitifs, nous avons fournit les primitifs qui aident les agents à envoyer et répondre les messages. Les primitifs de communication se divisent en deux catégories : les primitifs de base et les primitifs de haut-niveau. Deux primitifs de base sont send et reply. Ces deux primitifs servent respectivement à envoyer et répondre les messages. Les primitifs de haut-niveau sont agree, cancel, cfp, end, failure, inform, propose, query, refuse, rejectproposal, request, subscribe. Comme vous voyez, le nom de ces primitifs est identique avec le nom des performatifs définits par FIPA. Si vous vous intéressez aux spécifications détaillées des performatifs de FIPA, vous pouvez suivre le lien du document «FIPA Communicative Act Library Specification» qui se trouve dans la section bibliographie. Un primitif de haut-niveau est utilisé pour répondre à un message. L intérêt de ces primitifs est que le modélisateur ne doit pas fournir la valeur du performatif du message répondu. Cette valeur est remplie automatiquement en se basant sur le nom du primitif correspondant. Tous ces primitifs de haut-niveau ont deux arguments : message et content. message est le message à répondre et est un argument obligatoire. L envoyeur de l argument message joue le rôle du récepteur du message répondu. content est le contenu du message répondu et est un argument facultatif. Primitif «send» Ce primitif est employé pour envoyer un message. Les arguments de ce primitif sont comme suit : No Argument Obligatoire Signification 1 message non Le message à envoyer. 2 receivers oui Le(s) récepteur(s) du message. 3 content non Le contenu du message. 4 performative oui Le performatif du message. 5 protocol Le protocole d interaction que la conversation de ce message suit. Si le message à envoyer est le premier message d un protocole d interaction, le modélisateur doit fournir cet argument. Ca sert à créer une nouvelle conversation avec le protocole d interaction correspondant. Sinon, le modélisateur ne fournit pas cet argument. Cet argument et l argument «conversation» sont exclusifs. 6 conversation La conversation que ce message appartient. Si le message à envoyer n est pas le premier message d une conversation, le modélisateur doit fournir cet argument. Ca sert à ajouter le message correspondant à la bonne conversation. Sinon, le modélisateur ne 19

20 Primitive «reply» fournit pas cet argument. Cet argument est l argument «protocol» sont exclusifs. Tableau 2 Les arguments du primitif «send» Ce primitif est employé pour répondre à un message. Les arguments de ce primitif sont comme suit : No Argument Obligatoire Signification 1 message oui Le message à répondre. 2 performative oui Le performatif du message répondu. 3 content non Le contenu du message répondu. Les primitifs de haut-niveau Tableau 3 Les arguments du primitif «reply» No Primitif Signification 1 agree Répondre un message avec le primitif «agree». 2 cancel Répondre un message avec le primitif «cancel». 3 cfp Répondre un message avec le primitif «cfp». 4 end Répondre un message avec le primitif «end». 5 failure Répondre un message avec le primitif «failure». 6 inform Répondre un message avec le primitif «inform». 7 propose Répondre un message avec le primitif «propose». 8 query Répondre un message avec le primitif «query». 9 refuse Répondre un message avec le primitif «refuse». 10 rejectproposal Répondre un message avec le primitif «reject-proposal». 11 request Répondre un message avec le primitif «request». 12 subscribe Répondre un message avec le primitif «subscribe». Tableau 4 Les primitifs de haut-niveau III Les variables A côté des primitifs présenté ci-dessus, un agent communicant possède quelques variables supplémentaires. Ces variables sont les listes des messages recus d un agent communicant. L intérêt de ces variables est que à partir du code GAML du modèle, le modélisateur peut récupérer les messages dans la boîte aux lettres de l agent de façon simple. Ces variables sont présentés dans le tableau suivant : No Variable Signification 1 acceptproposals Une liste des messages avec le performatif «accept-proposal» de l agent correspondant. 20

Générer du code à partir d une description de haut niveau

Générer du code à partir d une description de haut niveau Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,

Plus en détail

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

Plus en détail

Conception et contrôle des SMA tolérants aux fautes

Conception et contrôle des SMA tolérants aux fautes Conception et contrôle des SMA tolérants aux fautes Une plate-forme multiagents tolérante aux fautes à base de réplication Nora FACI Contexte SMA large échelle Nombre important d agents Ressources éloignées

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Modélisation multi-agents - Agents réactifs

Modélisation multi-agents - Agents réactifs Modélisation multi-agents - Agents réactifs Syma cursus CSI / SCIA Julien Saunier - julien.saunier@ifsttar.fr Sources www-lih.univlehavre.fr/~olivier/enseignement/masterrecherche/cours/ support/algofourmis.pdf

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Nom de l application

Nom de l application Ministère de l Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Gafsa Département Technologies de l Informatique

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Programmation de services en téléphonie sur IP

Programmation de services en téléphonie sur IP Programmation de services en téléphonie sur IP Présentation de projet mémoire Grégory Estienne Sous la supervision du Dr. Luigi Logrippo Introduction La téléphonie sur IP comme support à la programmation

Plus en détail

Innovation Francophonie Imagination

Innovation Francophonie Imagination Innovation Francophonie Imagination http://www.ifi.auf.org Qu est-ce que l IFI? Fondé en 1993 à Hanoï (Vietnam), l IFI est un institut universitaire international francophone de troisième cycle soutenu

Plus en détail

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude INF 1250 INTRODUCTION AUX BASES DE DONNÉES Guide d étude Sous la direction de Olga Mariño Télé-université Montréal (Québec) 2011 INF 1250 Introduction aux bases de données 2 INTRODUCTION Le Guide d étude

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

RAPPORT DE CONCEPTION UML :

RAPPORT DE CONCEPTION UML : Carlo Abi Chahine Sylvain Archenault Yves Houpert Martine Wang RAPPORT DE CONCEPTION UML : Bamboo Ch@t Projet GM4 Juin 2006 Table des matières 1 Introduction 2 2 Présentation du logiciel 3 2.1 Précisions

Plus en détail

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1

Plus en détail

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet. pierre.chauvet@uco.fr

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet. pierre.chauvet@uco.fr Atelier Transversal AT11 Activité «Fourmis» Pierre Chauvet pierre.chauvet@uco.fr Ant : un algorithme inspiré de l éthologie L éthologie Etude scientifique des comportements animaux, avec une perspective

Plus en détail

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle La plate-forme DIMA Master 1 IMA COLI23 - Université de La Rochelle DIMA Bref aperçu Qu'est-ce? Acronyme de «Développement et Implémentation de Systèmes Multi-Agents» Initié par Zahia Guessoum et Jean-Pierre

Plus en détail

IFT785 Approches Orientées Objets. FINAL Été 2002. Remise : Jeudi 19 août 2002 à 9h00 am

IFT785 Approches Orientées Objets. FINAL Été 2002. Remise : Jeudi 19 août 2002 à 9h00 am IFT785 Approches Orientées Objets FINAL Été 2002 2 e session d examen Début : Lundi 16 septembre 2002 à 9h00 am Remise : Jeudi 19 août 2002 à 9h00 am Professeur : Sylvain GIROUX Note : /100 points Remarques

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Chapitre I : le langage UML et le processus unifié

Chapitre I : le langage UML et le processus unifié I. Introduction Les méthodes d analyse orientées objet sont initialement issues des milieux industriels. La préoccupation dominante de leurs auteurs est le génie logiciel, c est-àdire les principes et

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P EUROCOPTER SAS Groupe EADS Marignane Ecole des Mines d Alès Laboratoire de Génie Informatique et d Ingénierie de Production LGI2P Nîmes Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P Titre Domaine

Plus en détail

Développement d un interpréteur OCL pour une machine virtuelle UML.

Développement d un interpréteur OCL pour une machine virtuelle UML. ObjeXion Software Prototyping made easy SA au capital de 500 000 F Siret 421 565 565 00015 APE 722Z Téléphone : 03 89 35 70 75 Télécopie : 03 89 35 70 76 L embarcadère 5, rue Gutemberg 68 800 Vieux-Thann,

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

Jean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux

Jean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux Colonies de fourmis Comment procèdent les colonies de fourmi pour déterminer un chemin presque géodésique de la fourmilière à un stock de nourriture? Les premières fourmis se déplacent au hasard. Les fourmis

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Master IAC 2013-2014. Philippe Caillou DÉVELOPPEMENT DE SMA. Cours 1b

Master IAC 2013-2014. Philippe Caillou DÉVELOPPEMENT DE SMA. Cours 1b DÉVELOPPEMENT DE SMA Cours 1b Je veux développer mon application.. Comme toujours, j utilise Java/Python/C#/ Mais : Est-ce que je ne reprogramme pas exactement la même chose que quelqu un d autre? (en

Plus en détail

Document de spécification du logiciel VALPO Définition du format des fichiers des

Document de spécification du logiciel VALPO Définition du format des fichiers des Document de spécification du logiciel VALPO Définition du format des fichiers des scénarios TELECOM Bretagne Projet VALPO - Démonstrateur de protocoles GSM/UMTS Département Réseaux, Sécurité, Multimédia

Plus en détail

Groupes et utilisateurs locaux avec Windows XP

Groupes et utilisateurs locaux avec Windows XP Groupes et utilisateurs locaux avec Windows XP 1. Distinction entre comptes de domaine et comptes locaux Pour rappel, et comme avec Windows 2000, il existe deux types de comptes utilisateurs : les comptes

Plus en détail

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

Diplôme de Comptabilité et de Gestion. D é c r e t N 2 0 0 6-1 7 0 6 d u 2 2 d é c e m b r e 2 0 0 6 - A r r ê t é d u 8 m a r s 2 0 1 0

Diplôme de Comptabilité et de Gestion. D é c r e t N 2 0 0 6-1 7 0 6 d u 2 2 d é c e m b r e 2 0 0 6 - A r r ê t é d u 8 m a r s 2 0 1 0 Diplôme de Comptabilité et de Gestion DCG D é c r e t N 2 0 0 6-1 7 0 6 d u 2 2 d é c e m b r e 2 0 0 6 - A r r ê t é d u 8 m a r s 2 0 1 0 Validation des Acquis de l Expérience VAE R é f é r e n t i e

Plus en détail

Introduction aux concepts d ez Publish

Introduction aux concepts d ez Publish Introduction aux concepts d ez Publish Tutoriel rédigé par Bergfrid Skaara. Traduit de l Anglais par Benjamin Lemoine Mercredi 30 Janvier 2008 Sommaire Concepts d ez Publish... 3 Système de Gestion de

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Bien architecturer une application REST

Bien architecturer une application REST Olivier Gutknecht Bien architecturer une application REST Avec la contribution de Jean Zundel Ce livre traite exactement du sujet suivant : comment faire pour que les services web et les programmes qui

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer Le Processus RUP Database Administrator Project Leader H. Kadima Performance Engineer Release Engineer Analyst Designer / Developer Tester Table des matières 1. De l artisanat à l industrialisation de

Plus en détail

Patrons de Conception (Design Patterns)

Patrons de Conception (Design Patterns) Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques

Plus en détail

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information

Plus en détail

TP redondance DHCP. Gillard Frédéric Page 1/17. Vue d ensemble du basculement DHCP

TP redondance DHCP. Gillard Frédéric Page 1/17. Vue d ensemble du basculement DHCP Vue d ensemble du basculement DHCP Dans Windows Server 2008 R2, il existe deux options à haute disponibilité dans le cadre du déploiement du serveur DHCP. Chacune de ces options est liée à certains défis.

Plus en détail

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

TRAAM STI 2013-2014 Acquisition et exploitations pédagogiques des données sur un système pédagogique

TRAAM STI 2013-2014 Acquisition et exploitations pédagogiques des données sur un système pédagogique TRAAM STI 2013-2014 Acquisition et exploitations pédagogiques des données sur un système pédagogique Bilan technique et éléments de développement Fonctionnalités attendues Une vingtaine d établissements

Plus en détail

Validation de la création des groupes ABM et ajout de l utilisateur SASDEMO

Validation de la création des groupes ABM et ajout de l utilisateur SASDEMO COMMENT VALIDER VOTRE INSTALLATION SAS ACTIVITY-BASED MANAGEMENT 7.2? Vous venez d installer SAS Activity-Based Management 7.2. Ce document va vous aider à valider votre installation. Il pourra également

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

La haute disponibilité

La haute disponibilité Chapitre 3 La haute 3.1 Définition du cluster de serveurs...112 3.2 La mise en cluster des applications...114 3.3 Les composants du cluster de serveurs...115 3.4 Les obets du cluster de serveurs...119

Plus en détail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Méthodes d évolution de modèle produit dans les systèmes du type PLM Résumé de thèse étendu Méthodes d évolution de modèle produit dans les systèmes du type PLM Seyed Hamedreza IZADPANAH Table des matières 1. Introduction...2 2. Approche «Ingénierie Dirigée par les Modèles»

Plus en détail

GOL502 Industries de services

GOL502 Industries de services GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation

Plus en détail

Bien programmer. en Java 7. 10 000 ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Bien programmer. en Java 7. 10 000 ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret. Bien programmer en Java 7 Avec plus de 50 études de cas et des comparaisons avec C++ et C# Plus de 10 000 ex. vendus! Édition en couleur Emmanuel Puybaret, ISBN : 978-2-212-12974-8 chapitre1 Présentation

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Pourquoi archiver les emails

Pourquoi archiver les emails Pourquoi archiver les emails Objectif du document Ce document a pour objectif d'expliquer la nécessité et le bien-fondé de l'archivage des emails. Il a été écrit par Alain Heurtebise, Directeur Général

Plus en détail

Programmation de services sensibles au contexte en téléphonie sur IP

Programmation de services sensibles au contexte en téléphonie sur IP Programmation de services sensibles au contexte en téléphonie sur IP Présentation de mémoire Grégory Estienne Sous la supervision du Dr. Luigi Logrippo Introduction La téléphonie sur IP comme support à

Plus en détail

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image IN52-IN54 A2008 Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image Etudiants : Nicolas MONNERET Alexandre HAFFNER Sébastien DE MELO Responsable : Franck GECHTER Sommaire

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

Sommaire. Introduction. I. Notions de routage a) Technologies actuelles b) Avantages et désavantages

Sommaire. Introduction. I. Notions de routage a) Technologies actuelles b) Avantages et désavantages Sommaire Introduction I. Notions de routage a) Technologies actuelles b) Avantages et désavantages II. Routage et fourmis a) Principe et avantages b) Structure du simulateur III.Implémentation a) Présentation

Plus en détail

Club informatique Mont-Bruno Séances du 18 janvier et du 17 février 2012 Présentateur : Michel Gagné

Club informatique Mont-Bruno Séances du 18 janvier et du 17 février 2012 Présentateur : Michel Gagné Club informatique Mont-Bruno Séances du 18 janvier et du 17 février 2012 Présentateur : Michel Gagné Le fonctionnement du courrier électronique La différence entre Internet, Web et courrier électronique

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

IBM Tivoli Monitoring, version 6.1

IBM Tivoli Monitoring, version 6.1 Superviser et administrer à partir d une unique console l ensemble de vos ressources, plates-formes et applications. IBM Tivoli Monitoring, version 6.1 Points forts! Surveillez de façon proactive les éléments

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Retour d expériences avec UML

Retour d expériences avec UML Retour d expériences avec UML UML pour les systèmes biologiques Marie-Hélène Moirez-Charron, UMR AGIR, équipe MAGE INRA Toulouse mailto:marie-helene.charron@toulouse.inra.fr PLAN Contexte de travail UML,

Plus en détail

En proposant une formation souvent moins onéreuse et plus

En proposant une formation souvent moins onéreuse et plus CHAPITRE UN EXEMPLES DE FORMATIONS EN LIGNE En proposant une formation souvent moins onéreuse et plus pratique que les autres méthodes, l apprentissage en ligne est aujourd hui en train de transformer

Plus en détail

M1 : Ingénierie du Logiciel

M1 : Ingénierie du Logiciel M1 : Ingénierie du Logiciel UNIVERSITE PIERRE & MARIE CURIE (PARIS VI) Examen Réparti 2eme partie 16 Mai 2013 (2 heures avec documents : tous SAUF ANNALES CORRIGEES). Barème indicatif sur 20,5 points (max

Plus en détail

Chapitre 10. Architectures des systèmes de gestion de bases de données

Chapitre 10. Architectures des systèmes de gestion de bases de données Chapitre 10 Architectures des systèmes de gestion de bases de données Introduction Les technologies des dernières années ont amené la notion d environnement distribué (dispersions des données). Pour reliér

Plus en détail

Vérification formelle de la plate-forme Java Card

Vérification formelle de la plate-forme Java Card Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Les Architectures Orientées Services (SOA)

Les Architectures Orientées Services (SOA) Les Architectures Orientées Services (SOA) Ulrich Duvent Guillaume Ansel Université du Littoral Côte d Opale 50, Rue Ferdinand Buisson BP 699 62228 Calais Cedex Téléphone (33) 03.21.46.36.92 Télécopie

Plus en détail

Analyse,, Conception des Systèmes Informatiques

Analyse,, Conception des Systèmes Informatiques Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance

Plus en détail

WHITE PAPER Une revue de solution par Talend & Infosense

WHITE PAPER Une revue de solution par Talend & Infosense WHITE PAPER Une revue de solution par Talend & Infosense Master Data Management pour les données de référence dans le domaine de la santé Table des matières CAS D ETUDE : COLLABORATION SOCIALE ET ADMINISTRATION

Plus en détail

Rapport d évaluation du master

Rapport d évaluation du master Section des Formations et des diplômes Rapport d évaluation du master Etudes internationales de l Université Paris-Sud Vague E 2015-2019 Campagne d évaluation 2013-2014 Section des Formations et des diplômes

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

Prise en main rapide

Prise en main rapide Objectif terminal Réaliser un objet communicant Pourquoi? : 20 millards d objets connectés en 2020! Quelques mots sur l outil de développement App Inventor App Inventor pour Android est une application

Plus en détail

SQL Server Installation Center et SQL Server Management Studio

SQL Server Installation Center et SQL Server Management Studio SQL Server Installation Center et SQL Server Management Studio Version 1.0 Grégory CASANOVA 2 SQL Server Installation Center et SQL Server Management Studio [03/07/09] Sommaire 1 Installation de SQL Server

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Sauvegarde d une base de données

Sauvegarde d une base de données Sauvegarde d une base de données Version 1.0 Grégory CASANOVA 2 Sauvegarde d une base de données Sommaire 1 Introduction... 3 2 Différents types de sauvegarde... 4 2.1 Sauvegarde complète de base de données...

Plus en détail

Les diagrammes de modélisation

Les diagrammes de modélisation L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse

Plus en détail

UTILISER LA MESSAGERIE

UTILISER LA MESSAGERIE UTILISER LA MESSAGERIE OUTLOOK OU WINDOWS MAIL PRESENTATION DE LA MESSAGERIE CONDITIONS POUR UTILISER LE COURRIER ELECTRONIQUE Pour envoyer un courrier sur un PC il faut un programme ou un service de messagerie.

Plus en détail

Formation. Module WEB 4.1. Support de cours

Formation. Module WEB 4.1. Support de cours Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Sélection du contrôleur

Sélection du contrôleur Démo CoDeSys - 1 - 1. Configuration de l environnement de travail : Lancer le logiciel CoDeSys Fichier Nouveau Lors de la première utilisation, une boîte de dialogue apparaît permettant la sélection du

Plus en détail

IFT2255 : Génie logiciel

IFT2255 : Génie logiciel IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti

Plus en détail

Préparation à l installation d Active Directory

Préparation à l installation d Active Directory Laboratoire 03 Étape 1 : Installation d Active Directory et du service DNS Noter que vous ne pourrez pas réaliser ce laboratoire sans avoir fait le précédent laboratoire. Avant de commencer, le professeur

Plus en détail

eduscol Ressources pour la voie professionnelle Français Ressources pour les classes préparatoires au baccalauréat professionnel

eduscol Ressources pour la voie professionnelle Français Ressources pour les classes préparatoires au baccalauréat professionnel eduscol Ressources pour la voie professionnelle Ressources pour les classes préparatoires au baccalauréat professionnel Français Présentation des programmes 2009 du baccalauréat professionnel Ces documents

Plus en détail

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement SIP Nguyen Thi Mai Trang LIP6/PHARE Thi-Mai-Trang.Nguyen@lip6.fr UPMC - M2 Réseaux - UE PTEL 1 Plan Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement UPMC -

Plus en détail

Qu est-ce qu une tâche?

Qu est-ce qu une tâche? Qu est-ce qu une tâche? «Tâches», «Perspective actionnelle», «activités centrées sur le sens» Ce sont des concepts dont on entend beaucoup parler dans notre profession, mais que signifient-ils exactement?

Plus en détail

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1 SysCom - CReSTIC Université de Reims 17/02/2011 1 Motivation Gestion des expérimentations Avec les workflows Simulation Simulation des Systèmes Distribués ANR USS SimGrid Campagne de Test et gestion de

Plus en détail

Objet du document. Version document : 1.00

Objet du document. Version document : 1.00 Version document : 1.00 Objet du document Les dix points de cet article constituent les règles à connaitre pour intégrer une application au sein d AppliDis. Le site des Experts Systancia comporte également

Plus en détail

Organisation de dispositifs pour tous les apprenants : la question de l'évaluation inclusive

Organisation de dispositifs pour tous les apprenants : la question de l'évaluation inclusive Organisation de dispositifs pour tous les apprenants : la question de l'évaluation inclusive Transcription et traduction de la communication de Verity DONNELLY colloque Éducation inclusive, la question

Plus en détail

TD n o 8 - Domain Name System (DNS)

TD n o 8 - Domain Name System (DNS) IUT Montpellier - Architecture (DU) V. Poupet TD n o 8 - Domain Name System (DNS) Dans ce TD nous allons nous intéresser au fonctionnement du Domain Name System (DNS), puis pour illustrer son fonctionnement,

Plus en détail

Méthode universitaire du commentaire de texte

Méthode universitaire du commentaire de texte Méthode universitaire du commentaire de texte Baptiste Mélès Novembre 2014 L objectif du commentaire de texte est de décrire la structure argumentative et de mettre au jour les concepts qui permettent

Plus en détail

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une

Plus en détail

Messagerie asynchrone et Services Web

Messagerie asynchrone et Services Web Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS

Plus en détail

Manuel de System Monitor

Manuel de System Monitor Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail