next up previous contents
Next: 6.5 Implementierung der Agenten Up: 6.4 Implementierung des Basisagenten Previous: Methode migrateTo(...)

6.4.3 Klasse AgentApplet

 Die Klasse AgentApplet ist die abstrakte Basisklasse aller Agenten-Applets. Sie stellt als einzige Methode initCORBA(...) zur Verfügung. Diese Methode stellt die Verbindung vom Applet zum Agenten her. Als Beispiel dient der Verbindungsaufbau zwischen dem Applet des IPRouting-Agenten (vgl. 6.5.4) und dem IPRouting-Agenten selbst. Der Ablauf von initCORBA(..) wird nachfolgend beschrieben und in Abbildung 6.2 in den Schritten (1) bis (4) verdeutlicht:
 1  public org.omg.CORBA.Object initCORBA(String identity) 
 2    throws java.net.MalformedURLException, java.io.IOException {
 3    java.net.URL url= this.getDocumentBase(); //get URL of webserver
 4    // create a request to the webserver
 5    String urlname= new String(url.getProtocol()+"://"+
 6                               url.getHost()+":"+
 7                               String.valueOf(url.getPort())+"/"+
 8                               identity+".ior");
 9    java.net.URL urlIOR= new java.net.URL(urlname);
10    java.net.URLConnection urlCon= urlIOR.openConnection();
11    // get the answer from the webserver
12    java.io.BufferedReader in = new java.io.BufferedReader(
13           new java.io.InputStreamReader(urlCon.getInputStream()));
14    String inputLine;
15    String ior=new String();
16    while ((inputLine = in.readLine()) != null) //read IOR
17      ior=ior.concat(inputLine);
18    in.close();
19    // initialize the orb and prevent
20    // connecting visigenic's gatekeeper
21    java.util.Properties prop= new java.util.Properties();
22    prop.put("ORBdisableLocator","true");
23    org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(this,prop);
24    org.omg.CORBA.Object obj= orb.string_to_object(ior);
25    return obj;
26  }
In den Zeilen 3 bis 10 wird eine URL erzeugt und vom Webserver-Agenten angefordert (Abb. Schritt (1)), die folgendes, festgelegte Format hat:
http://Webserver-Host:Webserver-Port/Identity-Agenten.ior
ein Beispiel wäre:
http://sunhegering2:4300/IPRouting.ior

Das Applet darf diesen Webserver kontaktieren, da es von diesem Webserver auch geladen wurde. Der Webserver sendet daraufhin die IOR des IPRouting-Agenten im Stringformat (Abb. Schritt (4),vgl. 6.5.1 und 6.5.4). Die IOR wird in Zeile 16 und 17 ausgelesen. Der ORB wird mit dem Applet selbst, angezeigt durch this und einem Properties-Objekt initialisiert (Zeile 23). Dabei muß sichergestellt werden, daß der ORB von Visigenic nicht versucht den Gatekeeper (vgl. [Vis97]) zu kontaktieren. Abschließend wird aus der IOR im Stringformat in eine CORBA-Objektreferenz umgewandelt (Zeile 24).


  
Abbildung 6.2: Verbindungsaufbau von einem Applet zum Agenten
\begin{figure}
 \begin{center}
 
\epsfig {file=Bilder/appletToAgent.eps,width=\textwidth}
 \end{center}\end{figure}


next up previous contents
Next: 6.5 Implementierung der Agenten Up: 6.4 Implementierung des Basisagenten Previous: Methode migrateTo(...)
Copyright Munich Network Management Team