|
|
|
|
|
|
|
|
|
|
|
(lásd D'Agents) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(akadémia) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Siemens, Portugália |
|
|
|
|
|
(régi) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(utóda: Odyssey) |
|
|
|
|
|
|
|
|
| Az alábbiakban egy egyszerű Voyager programot mutatunk be példaként,
mely megkreálása után végigjárja a -- konstruktor bemenő paraméterében
-- megadott tömb által tartalmazott hostokat. Minden
meglátogatott környezetben annak nevével kiegészíti naplóját, majd visszatér a kiinduló végrehajtási egységbe. Itt a napló tartalmát a konzolra írja.
//
// Egyszerű mobil ágens
// (c) 1999. Gulyás László
// Java 2 útikalauz programozóknak
//
import com.objectspace.voyager.*;
import com.objectspace.voyager.agent.*;
import com.objectspace.voyager.loader.*;
import com.objectspace.voyager.mobility.*;
public class Agens implements java.io.Serializable {
private String napló;
private String hostok[];
private int aktuálisHost;
private String ház;
public Agens(String[] hostok) {
// Változók inicializálása
ház = Agent.of(this).getHome();
this.hostok = hostok;
this.napló = "";
this.aktuálisHost = 0;
/* A következő utasításra csak abban az esetben van
szükség, ha az Agens osztály nem szerepel
minden érintett gép CLASSPATH-jában */
// try {
// Agent.of(this).setResourceLoader(
// new URLResourceLoader(
// new java.net.URL("http://szamitogep.hu/~felhasznalo/")
// )
// );
// } catch (java.net.MalformedURLException e) {
// System.err.println("URL hiba.");
// }
// Megkezdjük utunkat
try {
try {
Agent.of(this).moveTo(
hostok[aktuálisHost++], "hozzáad"
);
} catch (ArrayIndexOutOfBoundsException e) {
Agent.of(this).moveTo(ház, "kiír");
}
} catch (MobilityException e) {
System.err.println("Hiba.");
}
}
public void hozzáad() throws MobilityException {
String gépnév = "ismeretlen";
// A gépnév lekérdezése
try {
java.net.InetAddress host = java.net.InetAddress.getLocalHost();
gépnév = host.getHostName() + " [" +
host.getAddress() + " ]";
} catch (java.net.UnknownHostException e) {
System.err.println("Hiba.");
}
// Írunk a távoli gép képernyojére
System.out.println( "Ágens: Megérkeztem a(z) " +
gépnév + " gépre."
);
// "Naplózás"
napló = napló + " " + gépnév;
// Továbbmegyünk, ha van hova. Ha nincs, hazatérünk.
try {
try {
Agent.of(this).moveTo(
hostok[aktuálisHost++], "hozzáad"
);
} catch (ArrayIndexOutOfBoundsException e) {
Agent.of(this).moveTo(ház, "kiír");
}
} catch (MobilityException e) {
System.err.println("Hiba.");
}
}
public void kiír() {
System.out.println("Ágens: A naplóm tartalma:" + napló);
System.out.println("Ágens: Az utat befejeztem.");
// Deklaráljuk, hogy végetért az életciklusunk
Agent.of(this).setAutonomous(false);
Voyager.shutdown();
}
public static void main(String[] argumentumok) {
try {
// A voyager inicializálása
Voyager.startup();
System.out.println("Az ágens indítása.");
// Létrehozzuk az ágenst
Agens proba = new Agens(argumentumok);
System.out.println("Az ágens elindult.");
} catch (StartupException e) {
System.err.println("Hiba.");
}
}
}
A program forráskódja: Agens.java |