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

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

SEANCE 2 : éléments de programmation

Programmation orientée agents #1. v 1.3. M1 S2 - Université de Montpellier II"

La Programmation Orientée Agent Les Agents Réactifs

Systèmes Multi-Agents

Etude de la simulation de systèmes multiagents pour la conception vivante d agents dans la méthode ADELFE

Espace de travail collaboratif pour un environnement de grille pervasive

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

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

Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy

La montée des bases de données open source

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Surveillance logicielle à base d une communauté d agents mobiles

INTRODUCTION AUX SGBD/R LUW

Développement logiciel pour le Cloud (TLC)

Présentation Alfresco

Logiciel Libre & qualité. Présentation

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

Guide d installation de SugarCRM Open Source version 4.5.1

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Petit guide pour l installation de CVW sous Linux

NFP111 Systèmes et Applications Réparties

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

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SERVEUR DÉDIÉ DOCUMENTATION

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

W4 - Workflow La base des applications agiles

Configurer la supervision pour une base MS SQL Server Viadéis Services

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

2011 Hakim Benameurlaine 1

Vanilla : Virtual Box

Systèmes en réseau : Linux 1ère partie : Introduction

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

Threads. Threads. USTL routier 1

Gestion des utilisateurs dans un environnement hétérogène

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

11 Février 2014 Paris nidays.fr. ni.com

Sécurité en MAC OS X [Nom du professeur]

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

Java et les bases de données

Déploiement OOo en environnement Windows Terminal Server

SPECIFICATION ET DESCRIPTION DU MULTICAST FIABLE DANS ETOILE

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

La démarche SOA et l interopérabilité applicative

Vérifier la qualité de vos applications logicielle de manière continue

Getting Started. 10 étapes pour bien démarrer. Avant de démarrer. Première connexion PCC

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

UTILISATION DE LA PLATEFORME WEB D ANALYSE DE DONNÉES GALAXY

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

Olivier Deheurles Ingénieur conception et développement.net

Business Process Management

Architecture Orientée Service, JSON et API REST

Votre premier projet Android

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Mise en œuvre d un outil collaboratif pour l exploration d environnements inconnus, par des robots mobiles

Open Source Job Scheduler. Installation(s)

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

SCIENCES & TECHNOLOGIES - SANTÉ ET STAPS MASTER INFORMATIQUE. Parcours Ingénierie du Logiciel Libre (I2L)

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Debian en milieu professionnel. This document is under the GNU Free Documentation License.

L art d ordonnancer. avec JobScheduler. François BAYART

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Catalogue Formations Jalios

Dossier -projet d'informations et Sciences du numérique.

GAME CONTENTS CONTENU DU JEU OBJECT OF THE GAME BUT DU JEU

VTP. LAN Switching and Wireless Chapitre 4

Programmation d'applications sur PDA

4.2 Unités d enseignement du M1

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

GUIDE NSP Activation et gestion des produits avec NSP

GEI 465 : Systèmes répartis

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Les Entrepôts de Données

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

DG-ADAJ: Une plateforme Desktop Grid

Smart Energy & Power Quality Solutions. La solution Cloud pour votre gestion d Energie

Once the installation is complete, you can delete the temporary Zip files..

JOnAS 5. Serveur d application d

Solutions de gestion de la sécurité Livre blanc

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Assemblée générale Aristote

Alfstore workflow framework Spécification technique

WORKSHOP OBIEE 11g (version ) PRE-REQUIS:

Un projet communevo / UPMC

DOCUMENTATION - FRANCAIS... 2

Gestion de la relation Client (CRM)

IBM Tivoli Monitoring, version 6.1

Pilot4IT Tableaux de Bord Agréger et consolider l ensemble de vos indicateurs dans un même portail.

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Les nouvelles architectures des SI : Etat de l Art

Module BD et sites WEB

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Transcription:

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 moins bien) Est-ce que je ne pourrais pas avoir un langage un peu plus «intuitif» pour décrire mon agent? Je veux utiliser java, mais maintenant, concrètement, je programme quoi?

Je regarde les plateformes Choix important! http://en.wikipedia.org/wiki/comparison_of_agent-based_modeling_software Nombreux critères: Applications possibles Langage de programmation License

Développement de SMA Les plateformes génériques Les langages Normes et extensions Plateformes utilisant un langage générique JADE MadKit Plateformes de simulation RePast S NetLogo GAMA FLAME Synthèse Plateformes liées à un modèle JEDI Les outils d aide au développement Plateforme distribuée / collaborative OpenMole GAMA: un exemple de développement de SMA La plateforme GAMA Application à un exemple Extension de la plateforme Les plateformes pour d autres applications Pour la 3d: Massive Pour la finance: MetaTrader, ATOM

Je veux quand même tout programmer Langage: Java / C++ / C# / Concrètement, un agent est Une application Vraiment autonome Distribution possible Un thread Permet des fonctionnements paralleles Facilite l administration Un objet Facilite la communication et la gestion des variables Permet un contrôle complet

Je veux une solution très légère http://sourceforge.net/projects/aglets/ Objectif: agent mobile Langage: Java License: IBM public license Identique à une applet mais en conservant son état (serialisé) Peut être transféré d un aglet host à un autre The aglet lifestyle Created: a brand new aglet is born -- its state is initialized, its main thread starts executing Cloned: a twin aglet is born -- the current state of the original is duplicated in the clone Dispatched: an aglet travels to a new host -- the state goes with it Retracted: an aglet, previously dispatched, is brought back from a remote host -- its state comes back with it Deactivated: an aglet is put to sleep -- its state is stored on a disk somewhere Activated: a deactivated aglet is brought back to life -- its state is restored from disk Disposed of: an aglet dies -- its state is lost forever J

Une plateforme légère respectant AGR pour simplifier l organisation et les communications http://www.madkit.org/ Plateforme très légère en Java Modèle AGR pour gérer la communication et les interactions

Je veux une solution complète multiplateforme: JADE http://jade.tilab.com/ (Telecom Italia) Objectif: généraliste, middleware Langage: Java License: Open Source LGPL

Jade : agents mobiles

JADE: un agent Herite de la classe Agent Propose un/des services visibles dans un annuaire Dispose de plusieurs Behaviours, héritant de Behaviours ou de ses fils (oneshot, cycle, ) Chaque agent et chaque Behaviour est un thread Envoie / recoit des messages FIPA-ACL de façon transparente Behaviour SimpleBehaviour ReceiverBehaviour CompositeBehaviour CyclicBehaviour OneShotBehaviour WakerBehaviour SequentialBehaviour ParallelBehaviour FSMBehaviour SenderBehaviour

Jade: exemple [Pelissier 02] CyclicBehaviour OneShotBehaviour ACLMessage Vendeur Acheteur HandleInform HandleQuery QUERY-REF QueryPrice HandleInform HandleRequest

Jade : Les principaux intérêts Compatible FIPA Communauté importante Exécution distribuée Exécution concurrente des agents Communication transparente par message (ACL) Choix automatique de la meilleure methode de transmission Notion de services Relativement facile a utiliser

Jade: Outils Jade GUI DF Agent GUI Dummy Agent Sniffer Agent Introspector Agent

Jade GUI Contrôler les agents Créer Tuer Suspendre Démarrer les autres outils

DF Agent GUI Inspecter les Yellow Pages (services enregistrés)

Dummy Agent Système de tests Envoyer et recevoir des messages ACL

Sniffer Agent Surveillance des échanges de messages dans une plateforme

Introspector Agent Surveiller état (cycle de vie) d un agent Ainsi que les messages reçus ou émis par cet agent

Développement de SMA Les plateformes génériques Les langages Normes et extensions Plateformes utilisant un langage générique JADE MadKit Plateformes de simulation RePast S NetLogo GAMA FLAME Synthèse Plateformes liées à un modèle JEDI Les outils d aide au développement Plateforme distribuée / collaborative OpenMole GAMA: un exemple de développement de SMA La plateforme GAMA Application à un exemple Extension de la plateforme Les plateformes pour d autres applications Pour la 3d: Massive Pour la finance: MetaTrader, ATOM

Je veux faire une simulation (agents synchrones, pas de problème d ouverture, contrôle complet), avec un maximum de liberté: Repast http://repast.sourceforge.net/ Objectif: simulations multi-agent Langage: Java, C++, C#, Objective C (RePast S) Java, Objective C (RePast J) License: BSD

RePast 3 A l origine, un timer et des outils de gestion du temps, des paramètres et des variables (RePast J)

RePast Symphony Récemment, une interface de modélisation (RePast S)

Je veux programmer très vite un prototype: NetLogo http://ccl.northwester n.edu/netlogo/ Objectif: Simulation Langage: NetLogo License: non Open Source <5 OpenSource pour la futur v5

NetLogo: exemple to setup clear-all ;; clear the world create-turtles 100 ;; create 100 new turtles with random heading ask turtles [ set color red ;; turn them red forward 50 ] ;; make them move 50 steps forward ask patches end [ if (pxcor > 0) ;; patches with pxcor greater than 0 [ set pcolor green ]] ;; turn green

Je veux programmer une simulation avec un langage dédié pour être plus efficace, tout en gardant une simulation rapide et la possibilité de programmer en java: GAMA http://code.google.com/p/ga ma-platform/ Objectif: simulation Langage: XML (v1.3), GamL et Java (v1.4+) License: GPL

J ai vraiment beaucoup d agents très simple que je veux distribuer sur GPU: FLAME / FLAMEGPU http://www.flamegpu.com/index.php Contraint des diagramme d état Permet le calcul sur GPU

Une plateforme simple ou générique? Simple/ Rapide NetLogo NetLogo v5 Gama v1.3 Gama v1.4 RePast S RePast 3 omplexe Flame Jade Java Fermeture/ Restrictions Ouverture/ Liberté

Développement de SMA Les plateformes génériques Les langages Normes et extensions Plateformes utilisant un langage générique JADE MadKit Plateformes de simulation RePast S NetLogo GAMA FLAME Synthèse Plateformes liées à un modèle JEDI Les outils d aide au développement Plateforme distribuée / collaborative OpenMole GAMA: un exemple de développement de SMA La plateforme GAMA Application à un exemple Extension de la plateforme Les plateformes pour d autres applications Pour la 3d: Massive Pour la finance: MetaTrader, ATOM

Je veux programmer un agent financier Réaliser de vrais agents traders: MetaTrader Installation et compte gratuit: http://global.fxdd.com/fr/ Marché: FOREX Langage spécifique Et/ou DLL C++ Outils de tests et d exploration Simuler un marché: ATOM http://atom.univ-lille1.fr/ http://atom.univ-lille1.fr/js/ Avoir un agent qui puisse agir aussi bien sur une simulation que sur le marché réel (avec compte réel ou non): MetaSim

Je veux concurrence Peter Jackson: Massive http://www.massivesoftware.com/

Je veux définir des interactions et non des actions: IODA API en Java Outils adaptés à la méthodologie http://www.lifl.fr/smac/projects/ioda/index.php

Développement de SMA Les plateformes génériques Les langages Normes et extensions Plateformes utilisant un langage générique JADE MadKit Plateformes de simulation RePast S NetLogo GAMA FLAME Synthèse Plateformes liées à un modèle JEDI Les outils d aide au développement Plateforme distribuée / collaborative OpenMole Yang GAMA: un exemple de développement de SMA La plateforme GAMA Application à un exemple Extension de la plateforme Les plateformes pour d autres applications Pour la 3d: Massive Pour la finance: MetaTrader, ATOM

Distribution et coopération 1 ère approche: accéder à un site web et déposer son code pour distribuer des simulation sur une grille Ex: EPIS [Blanchart et al. 2011] Accepte des projets NetLogo, Gama, Un serveur doit être installé sur un ordinateur de la grille

OpenMole 2 ème approche: le programme de distribution est installé uniquement chez le développeur, il se charge de transférer ce qu il faut sur la grille http://www.openmole.org [Reuillon et al. 2010] Avantage: transparent, gestion du workflow

RePast HPC 3 ème approche: distribuer la simulation Beaucoup plus complexe que distribuer les simulation Plateforme en version Beta pour clusters et supercalculateurs