% PARTOF texte:da/tex/a_home.tex
%%
%% Titel: Eine Umgebung f"ur mobile Agenten...
%%
%-----------------------------------------------------------------------------
\chapter{Einf"uhrung}
\pagenumbering{arabic}
Im Zuge der weltweiten Verbreitung leistungsf"ahiger Telekommuniaktions-
und Netzwerktechnologien, die gleicherma"sen Unternehmen wie auch
Privatpersonen kosteng"unstig zur Verf"ugung stehen, wandeln sich
Informationssysteme von abgeschlossenen, zentralistischen Lösungen hin zu
offenen, integrativen und dezentralisierten Komponentensystemen.

Dabei ist der "uber diese Systeme erreichbare Bestand an Informationen um den
Faktor 10 bis 100 gr"o"ser als jemals zuvor \cite{CISManifesto97}.
Einen ma"sgeblichen Anteil an dieser Entwicklung tr"agt das globale Netzwerk
Internet bei, insbesondere mittels seiner endnutzerorientierten Dienste wie dem
elektronischen Postdienst und dem multimedialen Hypertextdienst des
WorldWideWeb.

Ein weiterer Aspekt dieser Globalisierungstendenz ist die vom weltweiten
Austausch von Informationen getragene Dynamik der M"arkte. Anders als noch vor
zehn Jahren verändern sich organisatiorische Gegebenheiten, Geschäftsprozesse
und Systemumgebungen der am Markt befindlichen Unternehmen kontinuierlich und
rapide, anstatt "uber l"angere Zeitr"aume hinweg stabil und damit
langfristig planbar zu bleiben.

Stabilit"at und Planbarkeit sind jedoch wichtige Voraussetzungen, unter
denen gro"se, monolitische Informationssysteme entworfen und betrieben werden
k"onnen. In dem Ma"se, in dem diese Voraussetzungen schwinden, w"achst der
Bedarf an Konzepten, Modellen und Methoden zum Entwurf von Systemen, welche die
Auswirkungen von Ver"anderungen in der realen Welt tolerieren und ihnen folgen
k"onnen.

\section{Das ODP-Referenzmodell}

Das Referenzmodell f"ur {\em Open Distributed Processing}\footnote{Eine
weitergehende Einf"uhrung in das ODP-Modell bietet \cite{Pop96} und
\cite{ODP1,ODP2,ODP3}} (ODP) der International Standardization Organization
(ISO) definiert einen koordinierenden Rahmen f"ur den Entwurf offener und
verteilter Systeme, deren Architektur die Probleme der zentralen bzw.
monolitischen Informationssysteme "uberwindet.

Der ODP-Standard betrachtet offene, verteilte Systeme, die Organisations- und
Technologiegrenzen "uberschreiten. Systeme dieser Art sind gekennzeichnet durch
das Fehlen einer zentralen Kontrolle und besitzen daher die folgenden
Charakteristika:

\begin{itemize}
\item Heterogenit"at: Es kann keine systemweit einheitliche Systemtechnologie
vorausgesetzt werden und die vorhandene Systemtechnologie wird sich
"uber den Lebenszyklus des Informationssystems "andern.

\item Autonomie: Ein verteiltes System kann einer Vielzahl von
autonomen Management- und Kontrollautorit"aten unterliegen, die keine
zentrale Kontrolle des Systems erm"oglichen.

\item Evolution: Ver"anderungen der realen Welt bedingen innerhalb des
Lebenszyklus eines Systems Anpassungen an neue Erfordernisse.

\item Mobilit"at: Informationsquellen, Netzknoten und Systemnutzer
sind physisch mobil. Programme und Daten k"onnen ebenfalls aus Gr"unden
der Systemperformanz oder der Abbildung von Anforderungen der realen Welt
zwischen Rechnerknoten verschoben werden.

\end{itemize}

Um mit diesen Charakteristika umgehen zu k"onnen, zielt der ODP-Standard auf
den Entwurf von Systemen, die sich prim"ar durch die Eigenschaften
{\em Offenheit}, {\em Integrativit"at}, {\em Flexibilit"at},
 {\em F"oderalismus} und {\em Transparenz} auszeichnen.

Offenheit erm"oglicht einerseits, ein System ohne "Anderungen auf verschiedenen
Ausf"uhrungsknoten bzw. in unterschiedlichen Systemumgebungen zu betreiben
(Portabilit"at) und andererseits, verschiedene Systeme bzw. Systemkomponenten
sinnvoll miteinander interagieren zu lassen (Interoperabilit"at). Die
Integration hat zum Ziel, verschiedenste Ressourcen und Systeme zu einem
Gesamtsystem zu vereinigen, ohne da"s dies kostenaufwendige ad-hoc L"osungen
erfordert. Die Flexibilit"at zielt auf eine Unterst"utzung der Evolution von
Systemen, einschlie"slich der zu ber"ucksichtigenden Altsysteme (engl. {\em
legacy systems}). "Anderungen bzw. Neukonfigurationen eines ODP-Systems sollten
dabei insbesondere auch zu dessen Laufzeit erfolgen k"onnen. Die Basis f"ur
diese Flexibilit"at bildet die strukturelle Modularisierung des ODP-Systems in
autonome Teilsysteme, die jedoch untereinander in Beziehung stehen. Diese
autonomen Teilsysteme werden im Rahmen von F"oderationen, die verschiedene
technologische und administrative Dom"anen einbeziehen, zu einem
ODP-Gesamtsystem vereinigt. Eine zentrale Anforderung aus dem
ODP-Referenzmodell, welche die Erstellung von verteilten Anwendungen insgesamt
erleichtert, ist schlie"slich das Verbergen von Details der verteilten
Programmierung vor dem Anwendungsentwickler. Dies erfordert geeignete
Abstraktionen im verwendeten Programmiermodell und der Programmierumgebung, die
zu diesem Zweck z.B. Mechanismen f"ur Replikationstransparenz,
Migrationstransparenz und Ortstransparenz anbieten k"onnen.

Um der Modellierungskomplexit"at eines offenen verteilten Systems zu begegnen,
definiert das ODP-Referenzmodell das Konzept der Sichten (engl. {\em
viewpoints}). Ein ODP-System wird aus f"unf Sichten betrachtet, wobei jede Sicht
spezielle Aspekte der vollst"andigen Systemspezifikation in den Vordergrund
stellt. Im einzelnen sind diese Sichten:

\begin{itemize}
\item Die Unternehmenssicht, der {\em Enterprise Viewpoint}, umfa"st Zweck
und Strategie des Systems. In ihr werden die Systemanforderungen beschrieben.

\item Die Informationssicht, der {\em Information Viewpoint}, legt Wert auf
die Bedeutung der Informationen und die Identifizierung der Aktivit"aten der
Informationsverarbeitung innerhalb des Systems.

\item Die Verarbeitungssicht, der {\em Computational Viewpoint}, betrachtet die
funktionale Zerlegung des Systems in Objekte, welche Kandidaten f"ur eine
Verteilung sind.

\item Die Engineeringsicht, der {\em Engineering Viewpoint}, konzentriert sich
auf die f"ur die Verteilung notwendige Infrastruktur, die sog. Middleware.

\item Die Technologiesicht, der {\em Technologie Viewpoint}, befa"st sich mit
der Auswahl der f"ur das System notwendigen Technologie.

\end{itemize}

Ein ODP-konformes System sollte alle Anforderungen, die sich aus
der Betrachtung des Systems unter den genannten Sichtweisen ergeben,
gleicherma"sen erf"ullen.

Obwohl in der Unternehmenssicht eine anwendungsorientierte Modellierung des
Informationssystems vorgenommen wird, definiert das ODP-Referenzmodell
vergleichsweise wenige Begriffe auf dieser Ebene. Lediglich die Konzepte
Gemeinschaft und F"oderation sind Teil der standardisierten Unternehmenssprache,
der {\em Enterprise Language}.

Eine Systemmodellierung aus der Unternehmenssicht f"uhrt zur Betrachtung von
``Wirkenden'' und zu der Frage, welche Rollen diese aus der Sicht des
Unternehmens einnehmen. Das Unternehmen selbst bildet eine organisatorischen
Dom"ane, die ihre eigenen Strategien, Vertr"age und Regeln
weitgehend\footnote{Zwingende gesetzgeberische Einfl"usse seien an dieser Stelle
nicht betrachtet.} autonom bestimmt. F"ur eine solche Dom"ane kann weiter
zwischen Objekten externer Verteilung (z.B. Kunden, Lieferanten, ...) und
Objekten interner Verteilung (Mitarbeiter, EDV-Systeme, Gesch"aftsstellen, ...)
unterschieden werden. Innerhalb des Dom"ane bilden die Wirkenden eine
Gemeinschaft; werden Objekte verschiedener Dom"anen betrachtet, so bilden diese
Dom"anen eine F"oderation.

Gegenstand dieser Arbeit ist ein relativ neuer Ansatz der verteilten
Programmierung mit {\em mobilen Agenten}, welcher eine aktivit"atenorientierte
Modellierung von Informationssystemen aus der Unternehmenssicht erm"oglicht und
die dabei verwendeten Modellierungskonzepte direkt in ein Programmiermodell
umsetzt.

Agenten sind inh"arent aktive Softwarekomponenten (im Gegensatz zu verbreiteten
Objektmodellen, die zwar h"aufig aktive Objekte erlauben, nicht aber verlangen)
und bilden den Gegenstand der Verteilung im System.
Das agentenorientierte Programmiermodell geht aus von einem koordinierten aber
unvorhersehbaren Zusammenwirken von getrennt voneinander entwickelten
Komponenten in Hinblick auf ein gemeinsames Ziel (siehe auch die {\em Business
Objects} von CORBA \cite{Orf96}).

Mobile Agenten besitzen zus"atzlich die F"ahigkeit, sich aufgrund interner
Entscheidungsprozesse zwischen Rechnern "uber Netzwerke zu bewegen und mit
anderen Agenten und ihrer Umwelt zu interagieren. Sie k"onnen somit als lokale
Repr"asentation entfernter Dienste fungieren oder stellvertretend Aufgaben
erledigen, w"ahrend ein mobiler Nutzer zeitweilig nicht mit dem Zielrechner
verbunden ist. Durch ihr dynamisches Zusammenwirken k"onnen mobile Agenten
Dienste, die einem Benutzer angeboten werden, individuell an seine Interessen
und W"unsche anpassen und somit pers"onliche, kundenbezogene Sichten auf
Standarddienste bereitstellen \cite{GM95,Way94,Way95,Rei94}.

\section{Zielsetzung und Gliederung der Arbeit}

Ziel dieser Arbeit ist es, die Grundlagen f"ur die Erstellung von
agentenbasierten, kooperativen Anwendungen zu definieren und eine
Systemumgebung prototypisch zu realisieren, die eine Infrastruktur f"ur
verteilte agentenbasierte Anwendungen bildet. Der Entwurf der Umgebung und ihrer
Komponenten erfolgt dabei mit der objektorientierten Modellierungsmethode {\em
Mainstream Objects} \cite{YO95}.

\begin{sloppypar}
Der Einsatz der implementierten Umgebung soll weiter anhand eines
praxisrelevanten Beispiels demonstriert werden. Modelliert wird ein
einfaches, verteiltes Informationssystem ({\em MultiSiteAnalyzer}\footnote{
Die Schreibweise entspricht der Produktbezeichnung.}), welches statistische Daten autonomer Einzelsysteme aggregiert und diese Daten ebenfalls als kooperative Komponente anderen Informationsystemen und Endnutzern anbietet.
\end{sloppypar}

Bei der Konzeption der Umgebung f"ur mobile Agenten steht der Aspekt der
Kooperation autonomer Komponenten und die anwendungsnahe Modellierung
agentenbasierter Anwendungen aus der Unternehmenssicht des ODP-Referenzmodells
im Vordergrund.

Die prototypische Implementation verwendet die im Rahmen des $FIDE_2$-Projekts
am Arbeitsbereich Datenbanken und Informationssysteme der Universit"at Hamburg
entwickelte, integrierte persistente und polymorphe Programmierumgebung {\it
Tycoon}\footnote{Tycoon steht f"ur Typed Communicating Objects in Open
Environments}.

Die Arbeit gliedert sich wie folgt. In Kapitel \ref{koopis} werden die Grundlagen
kooperativer verteilter Informationssysteme pr"asentiert und verschiedene
Verfahren zu ihrer Realisierung gezeigt. Kapitel \ref{tbc} stellt das im Rahmen
dieser Arbeit entwickelte, anwendungsnahe Kooperationsmodell der {\em Business
Conversations} vor und beschreibt dessen medienunabh"angige Verwendung. Es folgt
in Kapitel \ref{mobileagents} eine "Ubersicht "uber existierende Agentensysteme
und die wesentlichen Eigenschaften dieser Architekturen. Kapitel \ref{umgebung}
zeigt dann die Konzeption der Umgebung f"ur mobile Agenten anhand von Konzepten
und notwendigen Systemkomponenten, unabh"angig von der verwendeten
Realisierungsplattform Tycoon. Die Kapitel \ref{wsp-msa} und
\ref{abstraktprgmodell} beschreiben das Beispielszenario und zeigen in Form
eines abstrakten Programmiermodells, wie eine entsprechende Anwendung mit den
Mitteln der entworfenen Agentenumgebung modelliert werden kann. Kapitel
\ref{tycoon} bietet eine kurze Einf"uhrung in das Tycoon-System und gibt
einen "Uberblick "uber die eingesetzte Systeminfrastruktur. Das Kapitel
\ref{AgentenBibliothek} zeigt dann die konkrete Umsetzung der einzelnen
Komponenten der Agentenumgebung f"ur das Tycoon-System. Kapitel
\ref{Zusammenfassung} fa"st r"uckblickend die Kernpunkte der vorliegenden Arbeit
aus der Sicht des ODP-Referenzmodells zusammen und gibt einen Ausblick auf
weiterf"uhrende Arbeiten auf dem Gebiet der agentenbasierten, kooperativen
Systeme, f"ur die diese Arbeit die konzeptuellen Grundlagen bereitstellt.

%

