\chapter{Vergleich verschiedener Kommunikationsformen}



\label{verglei}



Das Modell der Business Conversations abstrahiert  

von der Art der Kommunikation. Die Grundlage ist lediglich, da"s Dialoge mit

ihrem Inhalt zwischen beiden Partnern ausgetauscht werden sollen. In der

Implementierung der Tycoon Business Conversations werden die Dialoge "uber ein

Unixnetzwerk mit dem entsprechenden "Ubertragungsprotokoll zu anderen Rechnern 

"ubertragen. Diese "Ubertragung kann mittels zweier verschiedener

Kommunikationsformen geschehen.

Bei

der objektbasierten Kommunikation werden die Dialoge von zwei entfernten

Kommunikationspartnern einzeln "uber das Netzwerk verschickt. In der agentenbasierten

Kommunikationsform beauftragt der Kunde einen mobilen Agenten, die Konversation

mit dem Dienstleister lokal durchzuf"uhren. Dazu migriert der Agent

auf den Rechner des Dienstleisters und f"uhrt dort eine

Konversation, um die Leistung zu bekommen. Anschlie"send kehrt der Agent mit dem

Ergebnis der Konversation zum Kunden zur"uck und "ubermittelt es ihm.



In den folgenden Abschnitten werden beide Kommunikationsformen beschrieben, damit

sie anschlie"send verglichen werden k"onnen.



\section{Objektbasierte Kommunikation}



Bei dieser Kommunikationsform handelt es sich um die entfernte "Ubermittlung von

Dialogen durch ein Netzwerk. Die Implementierung der Akteure, die in Kapitel \ref{feinent}

beschrieben wurde, zielt auf diese Form ab. 



Zu einer objektbasierten Kommunikation geh"ort ein Server f"ur Objekte, ein

Klient, der die Objekte nutzen m"ochte und ein "Ubertragungssystem, das die

Klienten f"ur den Benutzer transparent an die Server vermittelt. In den

kommerziellen Systemen aus Kapitel \ref{kom-verteilteObj} wird dabei viel Wert

auf eine komfortable Realisierung des "Ubertragungssystems gelegt. In der

vorliegenden Implementierung der Tycoon Business Conversations ist die

"Ubertragungsschicht nicht so komfortabel wie in den kommerziellen Systemen. Die

Kommunikationspartner m"ussen den Namen des Rechners und des Partners auf dem

Rechner kennen, um mit ihm in Verbindung treten zu k"onnen. Jedoch k"onnen "uber

den Mediator beliebige Metadienste wie zum Beispiel Adressaufl"osung integriert

werden.



Der Dienstleister kann als entfernter

Objektserver, der von verschiedenen Kunden Anfragen als Methodenaufrufe

"ubermittelt bekommt, angesehen werden. Dabei werden die Dialoge, die die

Anfrage nach Methoden oder die Ergebnisse der Methodenaufrufe enthalten,

als eigenst"andige Objekte "uber das Netzwerk verschickt.





\section{Kommunikation mittels mobiler Agenten}



In \cite{whi194} wird ein weiterer Ansatz f"ur die Zusammenarbeit von Systemen

vorgestellt. Nachdem im bisherigen Client/Server-Ansatz "uber das Netzwerk 

Anfragen und die Ergebnisse von entfernten Prozeduraufrufen transportiert werden,

wird mit dem Telescript-System ein Ansatz f"ur entfernte Programmierung

vorgestellt.



\subsection{Motivation f"ur mobile Agenten}



Wenn die Netzwerkt"atigkeit auf entfernten Prozeduraufrufen basiert, werden

Daten f"ur die Anfrage nach einem Dienst und f"ur die Antwort "uber das

Netzwerk transportiert. Dabei vereinbaren die Kommunikationspartner Nachrichten,

die von allen verstanden werden. Diese Vereinbarungen bilden ein Protokoll. F"ur

entfernte Prozeduraufrufe ist es charakteristisch, da"s jede Interaktion zwei

"Ubertragungen ben"otigt. Bei komplexen Diensten werden entsprechend mehr

"Ubertragungen gebraucht. Eine Folge von Interaktionen 

aus mehreren Prozeduraufrufen

ben"otigt andauernde 

Kommunikation.



Telescript will mit der entfernten Programmierung einen neuen Ansatz f"ur

Netzwerkt"atigkeit verfolgen. Sie

basiert auf der "Ubertragung von Objekten, also Daten und

Programmen, die nach Empfang auf einem entfernten Rechner ausgef"uhrt werden.

Diese Objekte werden {\em Agenten} genannt. Die Ausf"uhrung eines Agenten

besteht aus der Abarbeitung seiner Prozeduren im Kontext seiner Daten. Die

Kommunikationspartner agieren bei diesem Ansatz auf der Basis vereinbarter

Befehle, die Prozeduren bilden. Diese Vereinbarungen bilden eine Sprache.

Charakteristisch f"ur die entfernte Programmierung ist, da"s Klient und Server

ohne Hilfe des Netzwerks interagieren k"onnen. Auch eine Folge von Interaktionen

ben"otigt keine andauernde Kommunikation. 



Neben der M"oglichkeit, da"s der Klient zum Rechner des Servers "ubertragen

wird, kann auch der Server f"ur die Dienstleistung auf den Rechner des Klienten

"ubertragen werden.



\subsubsection{Vorteile}



Der neue Ansatz bietet gegen"uber der alten Form mehrere Vorteile. Ein Vorzug

besteht in der besseren Leistungsf"ahigkeit. Die Dienste k"onnen vor Ort

schneller erbracht werden, wenn nicht bei jedem Schritt der entfernte Klient das

Ergebnis erhalten mu"s, um eine neue Anfrage abzusenden. Und je langsamer die

Daten im Netzwerk "ubertragen werden, um so st"arker wirkt sich die geringe Anzahl von

"Ubertragungen aus. Ein weiterer Vorzug besteht in den besseren

Anpassungsm"oglichkeiten

der Dienste an spezielle Kundenw"unsche. Dabei kann sich der Kunde aus allen

Diensten, die von einem Server angeboten werden, selbst neue Dienste

zusammenstellen und sie in Form eines Agenten nutzen. Zum Beispiel kann sich der

Kunde selbst aus zwei Diensten, die entweder alle Dateien auf einem Server

anzeigen oder eine Datei l"oschen, einen Dienst zusammenstellen, der alle alten

Dateien l"oscht. 



\subsubsection{Konzepte}



Die Telescript-Technologie bietet einen elektronischen Marktplatz, auf dem sich

Anbieter und Kunden gegenseitig finden und interagieren k"onnen. Der

Marktplatz ist weiter unterteilt und strukturiert. Er besteht aus einer Menge

von {\em Pl"atzen}. Beispiele f"ur Pl"atze sind der Heimatplatz eines Agenten in

einem

pers"onlichen

Rechner eines privaten Nutzers

oder ein Platz, der ein elektronisches Kaufhaus darstellt und von einem

"offentlichen Anbieter realisiert wird. Pl"atze k"onnen geschachtelt sein. So

kann zum Beispiel das elektronische Kaufhaus aus mehreren Abteilungen bestehen, 

die

jeweils Pl"atze sind. Jeder Platz hat einen Besitzer.



Die Pl"atze werden von {\em Agenten} belegt. W"ahrend Pl"atze dem elektronischen

Marktplatz seine statische Struktur verleihen, sind die Agenten f"ur die

dynamischen Aktivit"aten verantwortlich. Die Agenten repr"asentieren potentielle

Anbieter und Konsumenten von G"utern und Diensten. Ein Agent bildet einen

unabh"angigen Proze"s, der von der Umgebung kontrolliert ausgef"uhrt wird. Alle

Agenten werden parallel ausgef"uhrt, haben dabei aber generell keinen Einflu"s

auf andere Agenten.



Bisher befinden sich die Anbieter und Kunden auf dem elektronischen Marktplatz

auf verschiedenen Rechnern, die durch ein Netzwerk getrennt sind. Die Kunden

und Anbieter k"onnen in der Telescript-Technologie mit {\em Reisen}

zusammenkommen. Die Agenten k"onnen sich selbst von einem Platz zu einem anderen

bewegen. Die Reisen werden angetreten, um entfernte Dienstleistungen zu

empfangen. Zum Beispiel kann ein Nutzer einen Agenten in das elektronische

Kaufhaus schicken, damit er dort eine Eintrittskarte f"ur eine Veranstaltung

erwirbt. F"ur die Reisen werden die Agenten mit {\em Fahrkarten} versehen. Auf den

Fahrkarten wird das Ziel der Agenten und die Zeit f"ur die Reise eingetragen.



Zwei Agenten k"onnen an einem Platz interagieren. Dabei nutzt ein Agent einen

Dienst, den der andere Agent anbietet. F"ur die Interaktion m"ussen sich beide

Agenten {\em treffen}. Ein Treffen wird von einem Agenten initiiert und der

zweite Agent mu"s dem Treffen zustimmen. Der Initiator "uberreicht dem Partner

eine {\em Petition}, auf der der Name des Agenten und die Dauer des Treffens

eingetragen ist. Falls das Treffen nicht erfolgreich beendet werden kann, wird

der Initiator informiert und kann die Situation gem"a"s seinem Programm

bew"altigen. Wenn ein Agent den Befehl {\k meet} ausf"uhrt, bekommt er eine

Referenz auf den Kommunikationspartner, die f"ur eine direkte Interaktion

genutzt werden kann.



\begin{figure}[bt]

\centerline{\epsfbox{bilder/agentsze.eps}}

\caption{Beispiel f"ur ein Treffen zweier Agenten}

\label{agenten-treffen}

\end{figure}



In Abbildung \ref{agenten-treffen} ist ein Beispiel f"ur ein Treffen zweier

Agenten gezeigt. Der Agent von Jim White ist "uber das Netzwerk auf den

Gro"srechner mit dem elektronischen Kaufhaus gereist, um dort in einem Treffen 

mit dem

Ticketh"andler zwei Theaterkarten f"ur ein bestimmtes Theaterst"uck zu

bestellen.



Agenten k"onnen auch interagieren, wenn sie sich an verschiedenen Pl"atzen

aufhalten. Dazu ben"otigen sie eine {\em Verbindung}. Mit diesem Konzept kann

zum Beispiel ein Agent am Heimatplatz "uber verf"ugbare Sitzpl"atze bei der

Theaterveranstaltung informiert werden, der wiederum den Benutzer aussuchen 

l"a"st,

welche Sitzpl"atze gebucht werden sollen. Der Agent am Heimatplatz informiert dann

den Agenten im Kartenverkaufsb"uro.

Mit diesem Konzept wird der alte Kommunikationsansatz in den neuen integriert.



Die St"arke der Telescript-Technologie und des Ansatzes der entfernten

Programmierung tritt erst vollst"andig zu Tage, wenn ein Agent mehrere Dienste

kombiniert nutzt. Damit kann der Agent einen h"oherwertigen Dienst, der aus

einzeln angebotenen Basisdiensten besteht, anbieten. Zum Beispiel kann ein Agent

mehrere Pl"atze nacheinander besuchen. Dabei kann er die Dienstleistungen

entweder alle in Anspruch nehmen oder aus allen Angeboten einige ausw"ahlen. So

kann der Agent, nachdem er Theaterkarten bekommen hat, bei einem

Floristen eine Lieferung von Rosen f"ur den Tag der Theatervorstellung bestellen.

Dabei kann das Ergebnis der Kartenbestellung, n"amlich der Tag der Vorstellung,

die Interaktion mit dem Blumenverk"aufer beeinflussen. In diesem Fall

dient die Telescript-Technologie dazu, aus dem Verst"andnis f"ur zwei verschiedene

Dienste, die Buchung von Theaterkarten und die Blumenbestellung, ein

Verst"andnis f"ur besondere Gelegenheiten zu bekommen. Daf"ur mu"s das

elektronische Einkaufszentrum nicht erweitert werden. Es kann jedoch ein

weiterer Dienst f"ur das Arrangement von besonderen Gelegenheiten angeboten werden,

in dem man den Agenten aus dem Beispiel auch anderen Nutzern zur Verf"ugung

stellt.



\subsubsection{Sicherheitsvorrichtungen}



Die Telescript-Sprache wird interpretiert und nicht in Maschinenbefehle

"ubersetzt. Den Pl"atzen und Agenten stehen damit keine Befehle f"ur den Zugriff

auf Speicher, Datei\-sys\-tem oder andere Ressourcen des ausf"uhrenden Rechners zur

Verf"ugung. Jeder Agent oder Platz besitzt einen Namen, mit dem er von anderen

identifiziert werden kann. Neben seinen Namen und Besitzern spielen die

{\em Beglaubigungen} der Agenten eine wichtige Rolle im Sicherheitskonzept der

Telescript-Technologie. {\em Regionen}, eine Menge von Pl"atzen, die dem

gleichen Besitzer geh"oren, k"onnen Agenten bei nicht ausreichenden

Beglaubigungen den Eintritt verwehren. Die Beglaubigungen m"ussen mit

entsprechenden Sicher\-heits\-vor\-kehr\-ung\-en gegen F"alschung und Verlust 

versehen

werden. Zu der Beglaubigung besitzt jeder Agent einen {\em Passierschein}, der 

seine

M"oglichkeiten einschr"ankt. Der Passierschein wird erstellt, wenn der Agent

programmiert wird und bei jedem Verlassen einer Region neu festgelegt. Vor dem

Eintritt in eine Region mu"s der Agent die dort herrschenden Vorschriften

anerkennen und sich entsprechend einschr"anken. Wenn der Agent die Region

verl"a"st, werden die Einschr"ankungen wieder aufgehoben. Mit dem Passierschein

erh"alt der Agent die M"oglichkeit, bestimmte Befehle zu benutzen. So kann es

einem Verkaufsagenten verboten werden, das {\k go}-Kommando zu benutzen.

Au"serdem darf der Agent aufgrund seines Passierscheins eine bestimmte Menge von

Ressourcen wie zum Beispiel Rechenzeit benutzen. Dabei wird der

Ressourcenverbrauch aller Agenten von der Maschine "uberwacht. Mit dem

Passierschein k"onnen Aktivit"aten der Agenten a priori vom Besitzer

eingeschr"ankt werden.



\subsubsection{Technologie}



Die Telescript-Sprache soll als Programmiersprache die Entwicklung von

kommunizierenden Anwendungen erm"oglichen. Dabei teilt sie viele Eigenschaften

mit anderen Programmiersprachen. Ihre besonderen Eigenschaften sind im folgenden

aufgez"ahlt:



\begin{itemize}



\item objekt-orientiert

\item dynamisch

\item persistent

\item interpretiert

\item kommunikationszentriert

\end{itemize}



Die Pl"atze und Agenten k"onnen ohne Telescript-Maschine nicht exisitieren. Die

Maschine verwaltet die Pl"atze und die Agenten, die sich auf den Pl"atzen

befinden. Dazu sorgt sie f"ur die Persistenz der Pl"atze und Agenten und f"uhrt

ihre Programme nebenl"aufig aus. Schlie"slich sorgt die Maschine f"ur den

Transport der Agenten zu anderen Maschinen, wenn die Agenten den Befehl dazu

aufrufen. Jede Telescript-Maschine besitzt drei Programmierschnittstellen, "uber 

die sie den Zugriff auf den Rechner abwickelt. Eine Schnittstelle dient dem

Transport von Agenten, in dem sie auf die Kommunikationsmedien zugreift. Die

zweite Schnittstelle bietet Zugriff auf den nichtfl"uchtigen Speicher des

Systems. Die dritte Schnittstelle dient dem Zugriff auf externe Applikationen.



Mit den Protokollen der Telescript-Maschine wird verschiedenen Maschinen

erm"oglicht, miteinander zu

kommunizieren. "Uber diese Verbindungen k"onnen Agenten von einer Maschine zur

anderen transportiert werden. Die Protokolle arbeiten auf zwei Ebenen. Auf der

h"oheren Ebene wird beschrieben, wie Agenten, ihre Daten, Programme und

Ausf"uhrungszust"ande f"ur den Transport darzustellen sind. W"ahrend die

Darstellung innerhalb der Maschine f"ur andere Partner keine Rolle spielt,

m"ussen sie einheitlich transportiert werden. Auf der unteren Ebene wird der

Transport von einer Maschine zur anderen abgewickelt.



\subsubsection{Verwaltung, elektronische Post und Unternehmen}



Das Konzept der Agenten wird auch zur Verwaltung der Maschine eingesetzt. Intern

arbeiten Agenten an Verwaltungsaufgaben, die auch netzweit zusammengefa"st

werden k"onnen. Die Telescript-Technologie kann au"serdem als Basistechnologie

f"ur

elektronische Post benutzt werden. Dabei sind die Nachrichten als Agenten 

und die

Postf"acher als Pl"atze, die von einem Agenten verwaltet werden, implementiert. 

Damit k"onnen

sowohl die Nachrichten als auch die Postf"acher an die Anforderungen der

Benutzer angepa"st werden. So kann zum Beispiel ein Postfach ein Verzeichnis

von Telefonnummern enthalten, anhand dessen die Nachrichten weiter zugestellt

werden. Mit der Telescript-Technologie kann auch ein

abgeschlossenes Firmennetz bedient werden. Zum Beispiel kann die

Reisekostenabrechnung mit einem Agenten von allen zust"andigen Abteilungen

bearbeitet werden.



\subsection{Ablauf von agentenbasierter Kommunikation}



Die Implementierung der Umgebung f"ur mobile Agenten nach \cite{joha97} st"utzt

sich auf das Modell der Business Conversations. Die Akteure {\em Kunde}

und {\em Dienstleister} wurden beide zu einem Agenten generalisiert. Ein Agent

kann sich frei in der Infrastruktur bewegen, er kann mit anderen Agenten

Konversationen beginnen und durchf"uhren und dabei sowohl Kunden- wie auch

Dienstleister-Rollen annehmen. 



Die Infrastruktur ist an die Telescript-Technologie angelehnt. Das bedeutet,

da"s es auch Agenten und Pl"atze gibt. Jedoch benutzen die Agenten zur

Kooperation die Konversationen aus dem Modell aus Kapitel \ref{tbc}. Mit der

Benutzung dieses Konzeptes fallen viele Sicherheitsprobleme, die in der

Telescript-Technologie behandelt werden, weg. Weil die Agenten nur noch Dialoge

austauschen, k"onnen sie in ihrer Umgebung keine unerlaubten Befehle ausf"uhren

oder f"ur sie nicht zugelassene Schnittstellen aufrufen.



Die implementierte Infrastruktur mu"s in jedem Objektspeicher des Tycoon-Systems,

der Agenten unterst"utzen soll, vorhanden sein. Sie ist das Analogon zur

Telescript-Maschine. Sie stellt den Agenten Dienste

zur Migration und zum Einleiten von Treffen zur Verf"ugung.



Jeder Agent bekommt einen Auftrag in einer Funktion, der abgearbeitet wird,

sobald der Agent erzeugt wurde. Innerhalb dieses Auftrages mu"s der Agent

Spezifikationen von Konversationen erhalten und mit wenigstens einer Rolle

belegt werden, um eine sinnvolle T"atigkeit zu erbringen. In dieser Funktion

kann der Befehl {\k migrateTo} aufgerufen werden, damit der Agent zu einem

anderen Platz wandert. Dort kann er mit dem {\k meet}-Befehl andere Agenten

treffen. Sie f"uhren miteinander Konversationen. Neben dem Auftrag bekommt ein

Agent eine {\k meet}-Funktion, mit der er auf Anfragen von

anderen Agenten nach einem Treffen reagiert. Diese Funktion gibt als Ergebnis

entweder eine Referenz auf den Agenten zur"uck oder verweigert ein Treffen mit

dem Initiator. Mit der Referenz des anderen Agenten kann eine Konversation

begonnen werden.



\begin{figure}[bt]

\centerline{\epsfbox{bilder/agentkon.eps}}

\caption{Der Ablauf von agentenbasierter Kommunikation}

\label{agent-konv}

\end{figure}



In der Abbildung \ref{agent-konv} ist der Ablauf der Kooperation von

MultiSiteAnalyzer und WebSiteProfiler dargestellt. Der MultiSiteAnalyzer bekommt

vom Benutzer den Auftrag, bestimmte Statistiken zu aggregieren. Er erzeugt

einen Agenten und beauftragt ihn mit einer Konversation, die gew"unschten

Daten vom WebSiteProfiler zu holen. Dann migiert er zum WebSiteProfiler und 

f"uhrt

dort eine Konversation, aus der er das entsprechende Ergebnis erh"alt. Dann

migriert er zur"uck zum MultiSiteAnalyzer, um die dortige Konversation mit der

"Ubermittlung der Statistiken zu beenden.



\section{Ein Vergleich beider Arten}



Der Unterschied zwischen beiden Kommunikationsformen besteht lediglich in der 

Menge der "uber das Netz transportierten Daten und der Anzahl der

Transportvorg"ange. Durch die

Spezifikation kann der Kunde die Konversation vorher "uberpr"ufen, ob sie

seinen Anforderungen entspricht. Damit l"a"st sich die Konversation

weitestgehend vorhersehen

und die meisten F"alle, die in der Konversation auftreten k"onnen, werden im

Auftrag,

den der Agent bekommt, ber"ucksichtigt. So kann oftmals die

Dienstleistung mit dem fertigen Auftrag des Kunden durch einen Besuch des Agenten

erbracht werden. Damit werden die Dienstleistungen mit nur zwei "Ubertragungen

des Agenten

vom Kunden zum Dienstleister und wieder zur"uck erbracht. 



Konversationen k"onnen auf der Basis der Agenten ohne st"andige Verbindung zum

Netzwerk abgewickelt 

werden. Wenn

der Agent seinen Auftrag bekommen hat, werden alle weiteren Schritte autonom

durchgef"uhrt. Der Kunde kann gerade bei Dienstleistungen, die viel Zeit

ben"otigen, die Verbindungen zum Netzwerk abbauen und erst sp"ater, beim

erwarteten Wiedereintreffen des Agenten, die Verbindung zum Netz wieder

aufnehmen, um das Ergebnis zu erhalten.



Der Rahmen zur Kooperation von Agenten wird mit den Tycoon Business Conversations

geliefert. Die Implementierung der Tycoon Business Conversations aus

\cite{joha97} stellt neben der M"oglichkeit der

objektbasierten Kommunikation auch eine Umgebung f"ur mobile Agenten zur

Verf"ugung. In dieser Implementierung kann der Benutzer bei Beginn einer 

Konversation entscheiden,

welche Kommunikationsform er nutzen m"ochte. Bei standardisierten

Dienstleistungen wie dem WebSiteProfiler bietet sich die agentenbasierte Form

aufgund der geringeren Netzbelastung an. Wenn f"ur die Dienstleistung aber

zwischen mehreren, st"andig wechselnden Vorgaben des Dienstleisters

entschieden werden mu"s, sollte sie der Kunde direkt abwickeln. Ein Beispiel

daf"ur ist der Einkauf in einem Warenhaus mit st"andig wechselnden Angeboten.



Der Wechsel zwischen beiden Kommunikationsformen kann ohne "Anderung der

Systemkonfiguration geschehen. 



In beiden Kommunikationsformen bilden Konversationen die Basis f"ur den

In\-for\-ma\-tions\-aus\-tausch. Auch bei der Kooperation der autonomen Agenten

werden

Konversationen zur Synchronisation benutzt.

