20.07.2013 Aufrufe

Agentensysteme - Dokumentenserver Fakultät für Mathematik und ...

Agentensysteme - Dokumentenserver Fakultät für Mathematik und ...

Agentensysteme - Dokumentenserver Fakultät für Mathematik und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!