Agentensysteme - Dokumentenserver Fakultät für Mathematik und ...
Agentensysteme - Dokumentenserver Fakultät für Mathematik und ...
Agentensysteme - Dokumentenserver Fakultät für Mathematik und ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Entwicklung eines universellen News Watcher-Agenten<br />
Die objektorientierte Programmiersprache unterstützt den Objektcha-<br />
<br />
rakter von Agenten sowie die Aufteilung der Programmlogik (Zerlegbarkeit)<br />
<strong>und</strong> die Wiederverwendbarkeit von Codeteilen (Zeitvorteil).<br />
Weiterhin ermöglichen Vererbung <strong>und</strong> abstrakte Klassen die Auswahl<br />
spezifischer Komponenten (z.B. Datentyp, Formatfilter) zur<br />
Laufzeit.<br />
<br />
Socketprogrammierung wird die Implementierung verteilter Pro-<br />
Durch das RMI-Konzept (Remote Method Invocation) <strong>und</strong> einfacher<br />
gramme unterstützt. Dadurch wird eine bessere Skalierbarkeit erreicht<br />
sowie die von der externen Anwendung getrennte Ausführung<br />
ermöglicht.<br />
Mittels dynamisch nachladbarer Klassen können zur Laufzeit<br />
<br />
Schnittstellen, Filter <strong>und</strong> unterstützte Datentypen erweitert werden.<br />
Java besitzt ein klares objektorientiertes Basismodell, automatische<br />
<br />
Speicherplatzverwaltung (garbage collection) <strong>und</strong> verzichtet auf Zeiger.<br />
Dadurch wird ein ‚sauberes‘ Design erzwungen, welches weniger<br />
Fehlerquellen <strong>und</strong> damit kürzere Entwicklungszeiten ermöglicht<br />
(speziell Fehlerbeseitigung beschränkt sich im wesentlichen auf<br />
Fehler beim Umsetzen des Algorithmus).<br />
Der größte Nachteil von Java gegenüber anderen Programmierspra-<br />
<br />
chen ist die durch den Interpreter bedingte langsamere Ausführung.<br />
Dieses ist jedoch <strong>für</strong> diese Anwendung vernachlässigbar, da der<br />
größte Teil der Ausführungszeit von der Datenbank beansprucht<br />
wird.<br />
Die meisten anderen Programmiersprachen sind entweder nicht auf allen<br />
Plattformen verfügbar, nicht binärkompatibel, nicht objekt-orientiert<br />
oder unterstützen keine bzw. nur wenige DBMS.<br />
5.3.2 Umsetzung der angepaßten Konzeption<br />
Wie in dem Design <strong>für</strong> den Prototyp vorgesehen wurde das System als<br />
zwei voneinander unabhängige Server (Java-Anwendungen) entwickelt.<br />
Eine logische Sicht auf die Klassen, aus denen die Server bestehen ist<br />
im Anhang 7.1 Abbildung 22 <strong>für</strong> den Agentenserver <strong>und</strong> in Abbildung 23<br />
<strong>für</strong> den Indexserver dargestellt. Die da<strong>für</strong> verwendeten Symbole der<br />
UML-Notation sind in Abbildung 21 mit Erläuterungen aufgeführt.<br />
Für den Prototyp wurde als Kommunikationsschnittstelle mit den Servern<br />
eine Socketverbindung implementiert, da diese die größtmögliche<br />
Flexibilität hinsichtlich des Verbindungsaufbaus mit anderen Anwendungen<br />
verspricht sowie eine netzwerkweite Kommunikation erlaubt. Als<br />
Protokoll wird eine ressourcenschonende Eigenentwicklung eingesetzt,<br />
die die Daten in durch Klammern hierarchisch verschachtelten Listen<br />
überträgt. Der Gr<strong>und</strong> da<strong>für</strong> ist, neben der minimalen Netzwerkbelastung,<br />
die einfache Implementierung der En- <strong>und</strong> Dekodiermodule, wodurch<br />
der Integrationsaufwand in externe Anwendungen verringert wird.<br />
85