• Aucun résultat trouvé

8.2 Solutions m´ ethodologiques et pratiques propos´ ees

8.2.5 R´ ecapitulatif

R´ecapitulons ici les diff´erents aspects que nous consid´erons importants et que nous met- trons en œuvre :

– mod´elisation et impl´ementation suivant quatre modules distincts : comportements, en- vironnement, ordonnancement et interaction.

– r´eification des moyens de perception et d’action d’un agent. – application de la distinction esprit/corps.

– utilisation du principe Influence/R´eaction pour mod´eliser la dynamique du syst`eme. – respect de la contrainte d’int´egrit´e interne d’un agent : garantir la propri´et´e d’autonomie. – respect de la contrainte d’int´egrit´e environnementale.

– respect du principe de coh´erence paradigmatique dans la mod´elisation.

8.3

Le mod`ele {Mouvement Interaction Calcul}

: M IC

8.3.1 Motivations

Vers des logiciels Anytime Anywhere

En dehors du contexte de la simulation de syst`emes complexes, le paradigme agent consti- tue aussi une alternative tr`es s´eduisante pour l’´elaboration de logiciels complexes et distribu´es. Un pan entier de la recherche utilise aujourd’hui les notions de proactivit´e et d’autonomie pour concevoir des logiciels vou´es `a ´evoluer dans des univers dynamiques, distribu´es et ouverts dont Internet est le meilleur exemple.

Dans ce contexte, les d´efis technologiques qui doivent ˆetre relev´es par les syst`emes multi- agents sont nombreux. En premier lieu, il semble qu’il existe une contradiction entre les buts poursuivis et les moyens d’y parvenir. En effet, dans un premier temps il s’agit bien sˆur d’´ela- borer des syst`emes informatiques qui poss`edent des propri´et´es classiques comme la stabilit´e, la fiabilit´e ou encore la s´ecurit´e. Dans le mˆeme temps, on souhaite aussi que ces syst`emes soient adaptatifs, ouverts1 et peupl´es par des entit´es logicielles mobiles dont les comportements sont impr´edictibles, car autonomes. En d’autres termes, la difficult´e est de r´ealiser des syst`emes dont l’´evolution reste maˆıtris´ee bien que produite par des entit´es incontrˆolables, les agents.

Pour atteindre cet objectif, la m´etaphore sociale est aujourd’hui la plus en vogue. Il semble en effet assez logique d’essayer de transposer aux syst`emes multi-agents les m´ecanismes qui font fonctionner les soci´et´es humaines ou animales : bien que chaque individu soit autonome du point de vue de son processus d´ecisionnel, ces soci´et´es remplissent des fonctions globales qui sont le fruit d’un subtil m´elange entre des buts individuels et des aspirations communes. Concevoir un logiciel comme une soci´et´e d’agents est somme toute une cons´equence naturelle de notre vision anthropomorphique des agents. Dans ce contexte, il existe deux approches compl´ementaires : les travaux bas´es sur des concepts organisationnels et les travaux fond´es sur la d´efinition de normes. Dans les premiers, la probl´ematique repose sur l’´elaboration de moyens permettant de structurer l’activit´e des entit´es [Ferber et al. , 2003]. Dans les deuxi`emes, le propos est de d´efinir un cadre qui permette de diriger et/ou de contrˆoler l’activit´e des agents grˆace `a un ensemble de r`egles [Stratulat, 2002].

1

8.3 {Mouvement Interaction Calcul}∗ : M IC∗ 171

La notion d’environnement de d´eploiement

Que ce soit dans l’une ou l’autre des deux pr´ec´edentes approches, l’id´ee fondamentale est de structurer l’environnement dans lequel ´evoluent les entit´es qui composent le syst`eme informatique. Dans le troisi`eme chapitre (cf. section 3.1.3page47), nous avions d´ej`a soulign´e l’importance de l’environnement dans la conception d’un syst`eme multi-agents : c’est lui qui d´efinit les conditions d’existence et d’´evolution des agents. En fait, bien plus que les agents eux-mˆemes, l’environnement constitue le cœur de l’ing´enierie des syst`emes ouverts. En effet, dans ces syst`emes, il est par d´efinition impossible de faire des suppositions sur la nature de l’architecture interne des agents.

Par ailleurs, il est n´ecessaire de consid´erer que ces mˆemes agents ne sont pas forc´ement bienveillants et qu’ils sont incontrˆolables dans les d´ecisions qu’ils prennent. Finalement, la seule entit´e logicielle sur laquelle on puisse garder une maˆıtrise absolue, tant au niveau de son design que de sa dynamique, c’est l’environnement. Il est donc n´ecessaire d’en identifier les caract´eristiques fondamentales [Weyns et al. , 2005b].

Au plus haut niveau d’abstraction, c’est bien la structure logicielle sur laquelle les agents sont ex´ecut´es qui constitue l’environnement primordial. Pour bien comprendre ce point de vue, il est ici n´ecessaire de faire une distinction claire entre l’environnement tel qu’il est g´en´e- ralement compris et la vision qu’il faut ici en avoir. Dans un syst`eme multi-agents, la notion d’environnement d´esigne g´en´eralement le mod`ele dans lequel les agents se situent, on parle d’agents situ´es dans un environnement : une organisation, une soci´et´e, une grille de cellules, etc. C’est dans cette acception que nous avons le plus souvent consid´er´e l’environnement jus- qu’`a pr´esent. Ici, nous sommes `a un niveau d’abstraction sup´erieur : nous faisons exclusivement r´ef´erence `a la structure logicielle utilis´ee pour d´eployer concr`etement le syst`eme multi-agents dans son ensemble : l’environnement situ´e et les agents. Cette entit´e logicielle constitue une probl´ematique `a part et nous utiliserons les termes environnement de d´eploiement pour d´esi- gner cet aspect d’un syst`eme [Goua¨ıch et al. , 2005].

Rarement ´etudi´e en tant que tel, l’environnement de d´eploiement est aujourd’hui cependant de plus en plus identifi´e comme une composante fondamentale de l’ing´enierie logicielle des syst`emes complexes : cela semble aujourd’hui le meilleur moyen de relever le d´efi des syst`emes informatiques de demain qui seront ouverts, compos´es d’environnements situ´es (par lequel des entit´es autonomes pourront agir et ˆetre influenc´ees), o`u les connaissances et le contrˆole seront distribu´es et les interactions locales [Zambonelli & Parunak, 2002].

Ainsi, c’est dans le contexte de l’ing´enierie des syst`emes informatiques distribu´es que Goua¨ıch et Guiraud ont tout d’abord propos´e le mod`ele MIC∗ [Goua¨ıch & Guiraud, 2002]. Le projet associ´e2, dans lequel nous sommes directement impliqu´e, a pour objectif de propo- ser un mod`ele d’environnement de d´eploiement pour syst`eme multi-agents bas´e sur un mod`ele alg´ebrique formel [Goua¨ıch et al. , 2003,Goua¨ıch, 2005]. Inspir´ee par des travaux sur les sys- t`emes multi-agents, le code mobile et les mod`eles de calcul formel, l’id´ee fondamentale de cette approche est de faire une distinction explicite entre l’environnement de d´eploiement, sa dyna- mique (les lois qui r´egissent l’environnement situ´e qu’il d´efinit) et les entit´es qui le peuplent. La figure8.1illustre cette approche. A cela s’ajoute l’id´ee que l’environnement de d´eploiement doit jouer un rˆole actif et pr´epond´erant dans la gestion des processus d’interaction qui existent entre les diff´erentes entit´es du syst`eme.

2

Environnement de déploiement

Agents

Fig. 8.1 – S´eparation explicite entre l’environnement de d´eploiement et les agents.

Objectifs et principes de conception du mod`ele MIC∗

A la diff´erence des mod`eles formels de calcul mobile comme Ambient [Cardelli, 1999] ou le π-calcul [Milner, 1999] qui se focalisent sur les propri´et´es internes des processus de calcul, l’objectif du projet associ´e `a l’´elaboration du mod`ele MIC∗ est d’´etudier les propri´et´es de l’en- vironnement qui entoure les processus de calcul, c’est-`a-dire les propri´et´es de l’environnement de d´eploiement. Dans cette optique, l’´elaboration du mod`ele MIC∗ a ´et´e r´ealis´ee en gardant `a l’esprit deux objectifs compl´ementaires : d´ecrire de mani`ere rigoureuse les concepts manipul´es et proposer un mod`ele qui puisse ˆetre directement impl´ement´e.

– description rigoureuse. Comme nous l’avons vu plusieurs fois, des concepts g´en´e- riques comme l’interaction, la mobilit´e et les agents sont souvent utilis´es avec ambigu¨ıt´e alors qu’il est important de les faire correspondre avec des structures computationnelles concr`etes. C’est pourquoi, sans pour autant imposer des d´efinitions consensuelles, MIC∗ caract´erise rigoureusement les concepts utilis´es dans le cadre de son ´etude.

– mod`ele impl´ementable. En adoptant une d´emarche purement alg´ebrique, la structure du mod`ele obtenue peut ˆetre impl´ement´ee par des structures informatiques qui corres- pondent directement aux objets alg´ebriques manipul´es. Par cons´equent, il est possible de faire un lien direct entre les structures informatiques du syst`eme et son mod`ele alg´e- brique. Ceci contraste avec les d´emarches formelles classiques qui d´efinissent une syntaxe puis des fonctions d’interpr´etation de cette syntaxe. Le lien entre l’impl´ementation du mod`ele et le mod`ele est alors plus difficile `a ´etablir.

8.3.2 Description des concepts fondamentaux de MIC∗