Christian Lemaître (LANIA, MX), Xavier Prat (Crim, P. VI), Laurent Magnin (Crim, UdM), Arnaud Dury (Crim)



Documents pareils
Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

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

Structurer ses données : les tableaux. Introduction à la programmation

Outils logiciels pour la combinaison de vérification fonctionnelle et d évaluation de performances au sein de CADP

Alfstore workflow framework Spécification technique

Projet de programmation (IK3) : TP n 1 Correction

Veille - recherche enrichissement. Veille sur les technologies et pratiques émergentes Recherche :

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Chapitre VI- La validation de la composition.

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

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

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

F. Barthélemy. 17 mai 2005

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Plateforme PAYZEN. Définition de Web-services

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Programmation Orientée Objet Java

Introduction à JDBC. Accès aux bases de données en Java

Chapitre 10. Les interfaces Comparable et Comparator 1

Modélisation multi-agents - Agents réactifs

Architecture Orientée Service, JSON et API REST

Cours de Génie Logiciel

TP1 : Initiation à Java et Eclipse

Un ordonnanceur stupide

OCL - Object Constraint Language

Programmer en JAVA. par Tama

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Cours Composant 2. Qualité logicielle et spécications algébriques

Vérification formelle de la plate-forme Java Card

Meta Object Facility. Plan

Urbanisation de système d'information. PLM 6 (Product Lifecycle Management) Collaboration et partage d'informations

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

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

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Héritage presque multiple en Java (1/2)

Protocole SSH-2.0. Tuan-Tu, TRAN. Janvier 2009

Formula Negator, Outil de négation de formule.

Composants Logiciels. Le modèle de composant de CORBA. Plan

modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

OpenPaaS Le réseau social d'entreprise

Objets et Programmation. origine des langages orientés-objet

.NET - Classe de Log

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Modélisation et évaluation de performance des systèmes basés composants

Diagramme de classes

Communication technique TC1552 Ed 01 Date: 22/11/2011

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Corrigé des exercices sur les références

Java Licence Professionnelle CISII,

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

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Compte-rendu de projet de Système de gestion de base de données

Définition des Webservices Ordre de paiement par . Version 1.0

GRIDKIT: Pluggable Overlay Networks for Grid Computing

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

Introduction aux «Services Web»

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

Description de la formation

Trixbox: Asterisk packagé. Unité Réseaux du CNRS

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

Resolution limit in community detection

Surveillance logicielle à base d une communauté d agents mobiles

Travaux Pratiques : Lucène - Gestion d un index plein texte

LES TYPES DE DONNÉES DU LANGAGE PASCAL

TD3: tableaux avancées, première classe et chaînes

Une introduction à Java

Premiers Pas en Programmation Objet : les Classes et les Objets

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

MapReduce et Hadoop. Alexandre Denis Inria Bordeaux Sud-Ouest France ENSEIRB PG306

Application de lecture de carte SESAM-Vitale Jeebop

Noms de domaine internationalisés

User Management Resource Administrator (UMRA)

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Recherche dans un tableau

Introduction : les processus. Introduction : les threads. Plan

Création d objet imbriqué sous PowerShell.

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

LE PROBLEME DU PLUS COURT CHEMIN

Analyse,, Conception Objet

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

A GRASPxELS approach for the Job Shop with generic time-lags and new statistical determination of the parameters

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Plan. Programmation par agents. Un agent mobile C est quoi?

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

La carte à puce. Jean-Philippe Babau

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Evaluation des performances de programmes parallèles haut niveau à base de squelettes algorithmiques

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Transcription:

Description, programmation et validation d'interactions par Coupled Augmented Transition Network (CATN) Christian Lemaître (LANIA, MX), Xavier Prat (Crim, P. VI), Laurent Magnin (Crim, UdM), Arnaud Dury (Crim)

Les interactions au cœur des SMA Agent A Agent B Réification des interactions - Modélisation / conception - Exécution - Validation - Transformation / adaptation

Le formalisme Coupled Augmented Transition Network (CATN)

Vers les CATN : les ATN 1/4 e1 ReceiveRequest Message() ComputeCost() e2 e3 e4 Cost =- 1 TimerFired := Sleep() SendInform Message() e5 LaunchService Message() e6 e7 TimerFired = true ExecuteService(ServiceName e8 xprat? Représentation? Conditions? Plusieurs de l'exécution sous forme d'un graphe de passage sur les arcs types de transitions : simple, OR, AND, XOR

Vers les CATN : ATN évolués 2/4 e1 Registres : Float Cost = -1 Boolean TimerFired = false GuestId Applicant = null String ServiceName = null ReceiveRequest Message() Cost := ComputeCost() e2 e3 e4 Cost =- 1 TimerFired := Sleep() SendInform Message() e5 LaunchService Message() e6 e7 TimerFired = true? Utilisation de registres internes au CATN ExecuteService(ServiceName e8 xprat

Vers les CATN : ATN évolués 2/4 e1 Registres : Float Cost = -1 Boolean TimerFired = false GuestId Applicant = null String ServiceName = null ReceiveRequest Message() Cost := ComputeCost() e2 e3 SendInform Message() e4 Cost =- 1 TimerFired := Sleep() e5 LaunchService Message() e6 e7 TimerFired = true? Utilisation de registres internes au CATN ExecuteService(ServiceName e8 xprat e1? Utilisation Message := ReceiveMiscMessage() e2 de sous-atn ExecuteSubATN( «respondtoaservicerequest.atn») IsRequest( Message) ExecuteSubATN( «participatetoanauctionsale.atn») IsAuction( Message) e3 e4

Les CATN : les interactions 3/4 Registres : Float Cost = -1 Boolean TimerFired = false GuestId Applicant = null String ServiceName = null e4 Cost =- 1 TimerFired := Sleep() e7 TimerFired = true e1 e2 Cost := ComputeCost() e3 e5 e6 RequestMessage InformMessage LaunchServiceMessage ExecuteService(ServiceName e8? Inclusions des interactions dans le formalisme xprat

e1 Les CATN : représentation complète des interactions 4/4 Registres : Float Cost = -1 Boolean TimerFired = false GuestId Applicant = null String ServiceName = null e2 Cost := ComputeCost() e3 Cost =- 1 e4 TimerFired := Sleep() e5 e6 e7 TimerFired = true RequestMessage InformMessage LaunchServiceMessage ExecuteService(ServiceName e8 xprat e1 e2 TimerFired := Sleep() e3 TimerFired = true e5 e4

Exécution des CATN

Exécution des CATN Implémentations indépendantes des platesformes multiagents Portage sur FipaOS et Guest (Aglets, Corba, Grasshopper, Jade et Voyager) Fait appel aux méthodes natives des agents Constitués de : Parseur CATNManager MessageManager

xprat Inplémentation : Parseur <CATN name = "serviceprovider"> <Register name = "applicant" datatype = "ca.crim.guest.main.guestid" initialvalue = "" <Register name = "servicename" datatype = "String" initialvalue = "-"/> <Register name = "activationcost" datatype = "Float" initialvalue = "-1"/> <State name = "e1"> <Transition type = "single"> <Arc actiontype = "CATNMR" label = "receiverequest" result = "applicant, servicename" nextstate = "e2"/> </Transition> </State> <State name = "e2"> <Transition type = "single"> <Arc actiontype = "PA" label = "computecostoftheservice" param = " servicename" result = "activationcoast" nextstate = "e3"/> </Transition> </State> <State name = "e3"> <Transition type = "xor"> <Arc actiontype = "PA" label = "donothing" nextstate = "e4"> <Constraint type = "comparison" lefttype = "register" leftvalue = "activationcost" relationalop = "equals" righttype = "Float" rightvalue = "-1"/ </Arc> <Arc actiontype = "CATNMS" label = "constructinformmessage" agent = "applicant" param = "activationcost" nextstate = "e5"/> </Transition>

CATNManager Charge, décharge, exécute des CATN Permet l'exécution simultanée de plusieurs CATN Problématiques de gestion de Thread importante Gestion des erreurs Déchargement en cascade xprat

MessageManager File de message en attente de traitement File d'arc en attente de message Gestion de conversation Pour savoir quel message est dirigé vers quel CATN xprat

Validation des interactions

Validation de traces La vérification de propriétés d un système doit se baser sur un modèle de celui-ci Difficulté à modéliser des système ouverts et hétérogènes (méthodes natives) Notre approche consiste à générer, à partir d une trace d exécution du système (messages échangés), un modèle de celui-ci La validation se fera alors sur ce modèle

Validation : Model Checking Principe Recherche de propriétés dans les traces d'exécution Quatre étapes Définition des anti-patterns que l'on ne veut pas trouver Récupération de la trace d'exécution Exprimer sous un même formalisme les traces et les anti-patterns Analyse de la trace Xprat

Validation : Model Checking SMA exécutant des graphes CATN Trace d'exécution en XML Anti-patterns écrit en Goal SDL Model SDLTools Xprat Concepteur du système Produit ObjectGEODE Tools : OG Simulator OG Model Checker Patterns présents ou pas

Validation : définition d'un antipattern S0 Output request correlation_id := applicant!correlation_id Success state Succ; Error state Err; dcl correlation_id in probe applicant ; S1 Intput inform Output request EndState correlation_id := applicant!correlation_id xprat applicant!correlation_id = correlation_id True Err Fals e S0 S1 Succ

Validations possibles Approche utilisée dans la validation d un système multiagent industriel Trois niveaux de validation : Implémentation «Système» (messages bien reçus) «Algorithmique» Génération automatique des propriétés à valider à partir d un CATN (travail en cours)

Transformation / adaptation Nouvelle implémentation des CATN Permet de décrire récursivement les CATN Possibilité de chargement, d arrêt, de modification et de relance dynamique des CATN

Conclusion

Les CATN nous permettent : De décrire les interactions entre agents De les faire s exécuter en parallèle De générer automatiquement des traces et les propriétés à y vérifier De modifier dynamiquement et de façon unifiée ces mêmes interactions

Questions?