|
|
|
|
|
|
|
|
(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 |