... Mobiles1
http://www.irit.fr/recherches/ISPR/IAM/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ouverte2
Les aspects concernant l'adaptation et l'ouverture de l'implémentation [LA04] ne sont pas décrits dans ce document
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Invocation3
http://java.sun.com/products/jdk/rmi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... 1.44
http://java.sun.com/j2se/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... installé5
Pour vérifier votre version : java -version renvoie des informations sur l'environnement installé ; ensuite si la commande javac renvoie un message d'erreur vous disposez du JRE (exécution seulement) sinon vous avez le JSDK (compilation possible). Pour télécharger et installer Java : http://java.sun.com/j2se/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...JavAct\xspace 6
http://www.irit.fr/recherches/ISPR/IAM/JavAct.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Linux7
Sous Linux/Unix si vous n'avez pas le répertoire courant (.) dans le path, il faudra préfixer les scripts par ./ pour pouvoir les exécuter : ./javactvm .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... systèmes8
Sur les systèmes Windows, le caractère de séparation des chemins sera simplement '/' au lieu de '$\backslash$' :
javactvm d:$\backslash$JavActv050$\backslash$places.txt.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... places9
Machine virtuelle java exécutant une instance de la classe javact.net.rmi.Creator
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... RMI10
http://java.sun.com/j2se/1.4.2/docs/guide/rmi/faq.html#domain
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... récupérer11
http://java.sun.com/j2se/1.4.2/docs/guide/rmi/codebase.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... différents12
Cela a pour conséquence que les types tableaux ne sont pas acceptés comme types de retour : leurs noms contiennent des crochets (« [ ») qui ne sont pas des caractères autorisés dans les noms de variables. Ce problème sera résolu dans une version ultérieure de JAVACT.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...SendCt.STD.send()13
Il faut noter que les méthodes create() et send() ne doivent théoriquement être appelées que par des objets acteurs, précisément par leurs comportements. Les objets statiques CreateCt.STD et SendCt.STD permettent de créér des acteurs ou de leur envoyer des messages en dehors des comportements d'acteur, par exemple dans le main, et doivent être réservés à cela.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... pleine14
A partir d'ici, nous omettons de donner les lignes d'import
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Gries15
dans : C.A.R. HOARE, Communicating Sequential Processes, Communications of the ACM 21(8), 1978, pp. 666-677
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...become16
Ne pas coder de changement de comportement équivaut à exprimer plus simplement un become sur soi-même
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... croissant17
Cet algorithme nécessite que l'ordre d'envoi des messages soit préservé à la réception, ce que nous appelons propriété de régularité de la communication. Ceci assure que le premier nombre non multiple traité par l'acteur est bien un nombre premier. Cette propriété de régularité ne fait pas partie du modèle d'acteur. Cependant, l'implantation de JavAct à partir de RMI, lui-même basé sur TCP/IP garantit, de fait, cette propriété. Ceci permet d'avoir un code des comportements plus simples, dans lesquels on ne se préoccupe pas de l'ordre des messages reçus.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... visite18
Pour une étude plus approfondie concernant les agents mobiles de recherche d'information, on pourra se reporter à [ALP03]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... suivant19
Ainsi liée au changement de comportement, l'introduction de la mobilité ne réduit pas l'expressivité et le niveau abstraction du support de programmation : la mobilité n'impose pas le développement de code supplémentaire, et par conséquent, on contourne les inconvénients de la mobilité faible de Java
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... réseau20
L'interface javact.util.StandAlone contribue grandement à l'expressivité de la mobilité car elle permet d'éviter au programmeur une gestion artificielle des messages en attente. Ajouté à l'expression naturelle de la mobilité liée au changement de comportement, ceci permet de contourner les difficultés dues à la mobilité faible de Java, c'est-à-dire à l'impossibilité de capturer un l'état d'exécution d'un agent
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.