Technische Universität Ilmenau

Transcrição

Technische Universität Ilmenau
Technische Universität Ilmenau
Fakultät für Informatik und Automatisierung
Institut für Theoretische und Technische Informatik
Fachgebiet Rechnerarchitekturen
Diplomarbeit
Konzeption und Realisierung der Server-Komponente für ein
P2P-File-Sharing-System, bei dem die User am
Umsatz beteiligt sind
Autor:
Holger Krauß
geb. am 04.04.1975
Studiennummer 24691
Verantwortlicher Hochschullehrer:
Prof. Dr. Ing. habil. Wolfgang Fengler
Betreuer:
Dr. Ing. Jürgen Nützel
Datum:
19. September 2002
Inventarisierungsnummer:
2002-09-04/040/IN95/2231
Erklärung
Hiermit erkläre ich an Eides statt, die vorliegende Diplomarbeit persönlich
angefertigt zu haben. Ich habe im Rahmen der Arbeit nur die im
Literaturverzeichnis aufgeführte Literatur verwendet. Auszüge und Zitate aus
der Literatur sind mittels Quellenangabe als solche gekennzeichnet.
Ilmenau, 19. September 2002
Inv-Nr. 2002-09-04/040/IN95/2231
Holger Krauß
Danksagung
Ich möchte mich bei all denen bedanken, die mich bei der Bearbeitung meines
Diplomthemas unterstützt haben und somit einen großen Beitrag zum Gelingen der
Arbeit leisteten. Mein besonderer Dank gilt meinem Betreuer Dr. Ing. Jürgen Nützel
für die konstruktive Unterstützung bei der Ausarbeitung der Diplomarbeit durch viele
wertvolle Hinweise, Anregungen und fachlichen Diskussionen.
Des Weiteren möchte ich mich bei meiner Familie bedanken, deren vorbehaltlose
Unterstützung mir dieses Studium ermöglicht hat.
Ilmenau, 19. September 2002
Inv-Nr. 2002-09-04/040/IN95/2231
Holger Krauß
Thesen zur Diplomarbeit
1.
Für das Problem des profitablen Vertriebes von virtuellen Waren über das
Internet existiert derzeit keine hinreichende Lösung.
2.
Digital Rights Management (DRM) Systeme widersprechen dem Prinzip offener
Sicherheitsanforderungen, da sie die Rechteverwaltung in Hände derer gibt, die
kein Interesse daran haben.
3.
P2P-Netzwerke
befriedigen
das
Bedürfnis
der
Internet-Nutzer,
direkt
untereinander Daten auszutauschen und miteinander zu kommunizieren.
4.
Beim Strukturvertrieb, auch Multi-Level-Marketing (MLM) genannt, werden
Kunden Teil des Vertriebsnetzes, indem sie Waren nicht nur konsumieren
sondern an andere weiterverkaufen.
5.
P2P-Netzwerke eignen sich zur Realisierung einer MLM-Struktur für den
Vertrieb von virtuellen Waren über das Internet.
6.
Provisionen in finanzieller Form motivieren die Nutzer des Potato-Systems für
eine Vertriebstätigkeit und zum Bezahlen von virtuellen Waren.
7.
Die Zentralisierung der Nutzer- und Transaktionsverwaltung des PotatoSystems im Accounting-Server führt zur Struktur eines hybriden P2PNetzwerkes und ermöglicht einen effizienteren Ablauf als ein reines P2PNetzwerk ohne zentrale Instanz.
8.
Die
Transaktionsnummer
dient
zur
eindeutigen
Identifizierung
eines
elektronischen Belegs oder einer Quittung und ist somit die Basis für das
funktionale Prinzip des Potato-Systems.
9.
Das Potato-System macht das Interesse der Provider von virtuellen Waren zu
dem der Konsumenten und wirkt somit deren Verfeindung entgegen.
Ilmenau, 19. September 2002
Inv-Nr. 2002-09-04/040/IN95/2231
Holger Krauß
Inhaltsverzeichnis
1.
EINLEITUNG UND MOTIVATION....................................................................... 1
2.
PEER-TO-PEER NETZWERKE.......................................................................... 3
2.1.
P2P-Architekturen ......................................................................................................8
2.1.1.
Reines P2P ........................................................................................................................ 8
2.1.2.
Hybrides P2P (koordiniertes)........................................................................................... 14
2.1.3.
Cycle Sharing................................................................................................................... 16
2.2.
P2P-Geschäftsmodelle.............................................................................................16
2.2.1.
Bannerwerbung................................................................................................................ 17
2.2.2.
Affiliate Marketing ............................................................................................................ 18
2.2.3.
Struktur-Marketing ........................................................................................................... 20
2.2.4.
Punkte- und Rabattsystme .............................................................................................. 22
3.
LÖSUNGSANSÄTZE FÜR DAS POTATO-SYSTEM ....................................... 23
3.1.
Dezentraler Lösungsansatz mit reinem P2P..........................................................24
3.2.
Praktikabler Lösungsansatz mit koordiniertem P2P.............................................28
3.2.1.
Einführung der beteiligten Personen ............................................................................... 29
3.2.2.
Beschreibung des prinzipiellen Ablaufes......................................................................... 31
3.2.3.
Erweiterung um eine Virtuelle Community ...................................................................... 34
4.
KONZEPTION................................................................................................... 36
4.1.
Anwendungsfallanalyse...........................................................................................37
4.1.1.
Akteure............................................................................................................................. 37
4.1.2.
Anwendungsfall: Als Provider registrieren....................................................................... 38
4.1.3.
Anwendungsfall: Datei anmelden .................................................................................... 39
4.1.4.
Anwendungsfall: Als Käufer registrieren.......................................................................... 41
4.1.5.
Anwendungsfall: Datei kaufen ......................................................................................... 42
4.2.
Anwendungsarchitektur ..........................................................................................43
4.3.
Businessklassen identifizieren ...............................................................................45
Inv-Nr. 2002-09-04/040/IN95/2231
4.4.
Fachklassenmodellierung .......................................................................................46
4.5.
Komponentenabgrenzung .......................................................................................48
4.6.
Aktivitäten modellieren ............................................................................................50
4.7.
Dialoge identifizieren ...............................................................................................52
4.8.
Transaktionsnummern.............................................................................................53
5.
IMPLEMENTIERUNG EINES PROTOTYPS..................................................... 56
5.1.
Überblick über verwendete Technologien .............................................................57
5.1.1.
MySQL Datenbank Server............................................................................................... 57
5.1.2.
JavaBeans ....................................................................................................................... 57
5.1.3.
Java Servlets ................................................................................................................... 58
5.1.4.
JavaServer Pages (JSP) ................................................................................................. 58
5.1.5.
Java Applets .................................................................................................................... 59
5.2.
Umsetzung der Anwendungsarchitektur ...............................................................59
5.3.
Kommunikation zwischen Applets und dem Server .............................................61
6.
ZUSAMMENFASSUNG UND AUSBLICK ........................................................ 63
LITERATUR- UND QUELLENVERZEICHNIS ......................................................... 65
ABBILDUNGSVERZEICHNIS.................................................................................. 67
TABELLENVERZEICHNIS ...................................................................................... 68
ANHANG A – DATENBANKSCHEMA DES POTATO-SYSTEMS.......................... 69
Inv-Nr. 2002-09-04/040/IN95/2231
1. Einleitung und Motivation
Seite 1
1. Einleitung und Motivation
Die Produktion und der Vertrieb von multimedialen Produkten sind sehr teuer. Firmen
wie BMG, Sony und Vivendi, aber auch Hersteller von Software wie Microsoft oder
Oracle, tragen die gesamten Kosten und das Risiko. Sie sind somit auf den Erlös aus
dem Verkauf ihrer Produkte angewiesen. Die Verbreitung von illegalen oder
unlizensierten Kopien von Musik, Film, Software, etc. untergräbt dieses Modell.
Insbesondere
im
Musikgeschäft
könnte
dies
dazu
führen,
dass
Autoren,
Komponisten und Sänger nicht mehr ausreichend bezahlt und gefördert werden
können und somit keine hochwertigen Produktionen mehr entstehen. Mit der rasch
zunehmenden
Bandbreite
des
Internets
und
ständig
verbesserten
Komprimierungsverfahren betrifft diese Problematik auch immer stärker Kino- und
Videoproduktionen.
Eine wesentliche Rolle bei der Verbreitung von illegalen Kopien spielen sogenannte
Internet-Tauschbörsen. Auch wenn Napster bereits nicht mehr existiert, dürfte es
immer noch das bekannteste Beispiel dafür sein. Diese Tauschbörsen, die auch als
File-Sharing-Netze bezeichnet werden, basieren auf Peer-To-Peer-Netzwerken, wie
Gnutella oder Freenet. Sie erlauben ihren Nutzern auf einfache und schnelle Weise
in ihrem Besitz befindlichen Content mit anderen zu teilen, sowie gesuchte Inhalte
von anderen zu kopieren. So verbreiten sich gerade illegale Kopien von populären
Inhalten wie Musiktitel der Top-Ten rasend schnell im Internet.
Besonders im Bereich der Musik- und Filmindustrie ist man um Lösungen bemüht,
um den Schaden in der Zukunft einzudämmen. Zunächst zogen die großen
Produktionsfirmen in einen Krieg gegen die Internet-Tauschbörsen und erzwangen
auf gerichtlichem Weg die Abschaltung von Napster. Allerdings fanden die
ehemaligen Napster-Nutzer schnell Ersatz in neuen Tauschbörsen, die zu dem noch
weniger angreifbar waren als das Original.
Weitere Bemühungen beschäftigen sich mit den Inhalten selbst. Sogenannte Digital
Rights Management (DRM) Systeme sollen die Nutzung der Produkte so
einschränken, dass die Erstellung und Verbreitung von illegalen Kopien unmöglich
wird. Bei diesen Systemen wird jedoch die Verwendung der Produkte über ein
Werkzeug gesteuert bzw. eingeschränkt, dass auf dem Endgerät des Nutzers
installiert ist. Damit wird dieser gezwungen, die Bedürfnisse des Providers und nicht
Inv-Nr. 2002-09-04/040/IN95/2231
1. Einleitung und Motivation
Seite 2
seine eigenen zu befriedigen. Es ist zu bezweifeln, dass diese Bemühungen den
gewünschten Erfolg bringen. Mit dem Verkauf geben die Hersteller ihre Produkte
unter die Kontrolle der Kunden, was einem fundamentalen Prinzip offener
Sicherheitsanforderungen widerspricht: Die Mittel zur Durchsetzung von Interessen
müssen sich in der Hand derer befinden, die die Interessen verfolgen. Denn wie die
Erfahrung zeigt, gelingt es immer wieder, die unter hohem Aufwand hergestellten
Mechanismen zur Nutzungskontrolle auf Endgeräten auszuschalten oder zu
umgehen.
Des
Weiteren
versucht
die
Musikindustrie
derzeit,
das
Internet
als
Vertriebsmöglichkeit für sich zu erschließen. Bei den Ergebnissen handelt es sich
zumeist um Angebote, bei denen die Nutzer einzelne Titel gegen Bezahlung
herunterladen können. Es ist jedoch fraglich, ob solche Angebote auf große
Nutzerakzeptanz stoßen werden. Keine der derzeitigen Bemühungen der Anbieter
von virtuellen Waren liefert den Internet-Nutzern Grund genug, vom kostenlosen
Angebot der Tauschbörsen zu gebührenpflichtigen Angeboten zu wechseln. Für das
Problem des profitablen Vertriebs von virtuellen Waren über das Internet scheint es
also derzeit keine ansprechendeLösung zu geben.
Ziel dieser Arbeit soll es nun sein, einen neuen Lösungsansatz für dieses Problem zu
betrachten. In Kapitel 2 wird zunächst der aktuelle Stand als Basis dargelegt. Darauf
aufbauend soll im Kapitel 3 zunächst herausgefunden werden, ob dieser Ansatz
prinzipiell in der Lage ist, eine sinnvolle Alternative zu bestehenden Lösungen für
den Internetvertrieb von virtuellen Waren anzubieten. Die Idee bei diesem Ansatz ist
es, ein Peer-To-Peer-Netzwerk zum Vertrieb von virtuellen Waren im Internet
aufzubauen, bei dem die Nutzer selbst Teil der Vertriebsstruktur sind. Zur Motivation
für diese Vertriebstätigkeit werden die Nutzer in Form von Provisionen am Umsatz
beteiligt. Aus dieser Idee soll ein prinzipiell sowie technisch realisierbarer
Lösungsansatz entwickelt werden. Für die Umsetzung dieses Ansatzes wird in
Kapitel 4 ein Konzept erstellt. Um die Funktion des konzipierten Systems testen zu
können, soll noch ein Prototyp implementiert werden, womit sich Kapitel 5
beschäftigt.
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 3
2. Peer-To-Peer Netzwerke
Das Internet, wie es in den späten 60iger Jahren ursprünglich konzipiert wurde, war
ein Peer-To-Peer-System. Angedachter Sinn des ARPANET war die gemeinsame
Nutzung
von
Computerressourcen
in
einem
USA-weitem
Netzwerk.
Die
Herausforderung dabei war es, unterschiedliche existierende Netzwerke, sowie
künftige Technologien in einer gemeinsamen Netzarchitektur zu integrieren, die
jedem Host erlaubt, ein gleichwertiger Netzteilnehmer zu sein. ARPANET verband
damals Hosts nicht in einer Master/Slave oder Client/Server Beziehung, sondern als
Peers (Ebenbürtige) im Netzwerk. Generell waren zwei beliebige Rechner im Netz in
der Lage, Datenpakete auszutauschen, und das Netz diente vor allem Forschern zu
Kommunikation und Datenaustausch. Zwar waren FTP oder Telnet selbst
Client/Server Anwendungen, jedoch war das Nutzungsmuster als ganzes gesehen
symmetrisch, denn jeder Host im Netz konnte zu jedem anderen Host FTP- oder
Telnetverbindungen herstellen. Aus dieser grundlegenden Symmetrie entstanden
komplexere Systeme wie Usenet oder das Domain Name System (DNS), die auf
Peer-To-Peer-Kommunikation basieren. Mit der zunehmenden Verbreitung des
Internets kippte dieses Gleichgewicht dahingehend, dass immer mehr Nutzer
hinzukamen, die nur die bereitgestellten Ressourcen, anfänglich meist Informationen,
konsumierten. Die Zahl der Netzteilnehmer, die Ressourcen bereitstellten, blieb im
Verhältnis gesehen sehr gering. Dieses Ungleichgewicht zwischen Konsum und
Publikation führte dazu, dass sich das Internet immer mehr zu einer Client/Server
Landschaft entwickelte, in der die gesamten Ressourcen auf wenigen Servern
zentralisiert wurden und die Mehrheit der Netzteilnehmer nur als Clients auf diese
Ressourcen zugriff (siehe Abbildung 1). Dies ist vor allem auf die mehrheitlich
„dünne“ Anbindung dieser neuen Netzteilnehmer zurückzuführen, die es unmöglich
machte, dass diese über Modems angebundenen Hosts auch Inhalte anboten. Die
Client/Server Architektur beherrscht bis heute das Internet. Peer-To-Peer wurde
somit zunächst in den Hintergrund gedrängt [1].
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 4
Client
Client
Client
Server
Client
Client
Abbildung 1:
Client/Server-Modell
Mitte der neunziger Jahre rückte der Wunsch der Clients, Daten direkt untereinander
auszutauschen, wieder mehr in den Vordergrund. Auch wenn der Inhalt dieses
Austausches nun nicht mehr wissenschaftlichen Zwecken wie zu den Anfängen des
Internets dient, ist das Prinzip jedoch dasselbe. Zunächst beschränkte sich der
Datenaustausch auf Kurznachrichten, dem Instant Messaging, einer Form der
Kommunikation unter Netzteilnehmern, hervorgebracht durch das Programm ICQ („I
seek you“). Mit immer weiter zunehmender Leistungsfähigkeit der Clients und
Geschwindigkeit der Netzwerke, die sie verbanden, wurden auch andere Inhalte wie
Musik und Bilder zu beliebten Tauschobjekten im Internet. Der Erfolg von Napster
zeigt, wie groß der Bedarf der Internetnutzer ist, populäre Inhalte untereinander,
eben „Peer“ zu „Peer“, auszutauschen.
Da nun für all diese neueren Ansätze zum Austausch von Daten zwischen allen
möglichen Netzteilnehmern der Begriff „Peer-To-Peer“ (P2P) verwendet wird, ist es
sinnvoll, diesen einmal etwas näher zu betrachten.
Ursprünglich gilt für P2P-Netzwerke, dass die “Peers” gleiche Fähigkeiten und
gleiche
Verantwortung
haben
und
dass
zwischen
ihnen
symmetrische
Kommunikation besteht. Für heutige Verhältnisse vereinfacht dies das Verständnis
für diese neuen Ideen jedoch etwas zu stark oder besser gesagt ist er zu
einschränkend. Somit gilt es, die Veränderungen des Verständnisses des Begriffes
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 5
P2P zu erklären und zu verstehen. Der grundlegende Unterschied heutiger P2PNetzwerke und der aus den Anfängen der Netzwerktechnologie besteht in den
Netzknoten (nodes). Heutige Netzwerke sind im Gegensatz zu Früheren von einer
Heterogenität aus verschiedensten Geräten geprägt. Heute verbinden sich neben
PCs auch Mobiltelefone, PDAs und andere Smart-Devices mit Servern und
untereinander. Diese Heterogenität hat die Äquivalenz der früheren P2P-NetzwerkArchitekturen ersetzt. Die Ebenbürtigkeit der Teilnehmer in heutigen P2P-Netzen
bezieht sich nur noch auf eine Fähigkeit, direkt miteinander zu kommunizieren. Im
traditionellen Client/Server-Umfeld des Internets nimmt die Mehrheit dieser sich im
Netzwerk befindlichen Geräte die Rolle von reinen Clients ein, heißt sie greifen nur
auf Netzwerkressourcen zu (Informationen, Dokumente, Applikationen, Medien etc.),
ohne dabei selbst einen Beitrag oder Wert zum Netz hinzuzufügen. Gute Beispiele
dafür wären das Browsen im Internet oder das Streamen eines Videos. Somit läuft
die gesamte Kommunikation nur zwischen Client und Server ab und weist eine
starke Asymmetrie auf, so dass weit mehr Daten vom Server zum Client gesendet
werden als umgekehrt. Als Konsequenz daraus findet sich diese Asymmetrie z.B. in
Kabel- oder DSL-Angeboten verschiedener ISPs wieder: Die DownstreamGeschwindigkeit ist oft um ein vielfaches höher als die Upstream-Geschwindigkeit.
Ein großes, sich daraus ergebendes Problem ist die schlechte Skalierbarkeit dieser
Client/Server-Netze. Um immer mehr neuen Clients den Zugriff auf einen Server zu
ermöglichen, reicht nicht einfach der Anschluss des Clients an das Internet aus. Die
zusätzliche Belastung des Servers erfordert sowohl eine Erhöhung der Bandbreite
des Netzzuganges als auch die Erhöhung der Rechenleistung des Servers.
Aus Sicht der „P2P-Bewegung“ sind diese ursprünglich als reine Clients gesehenen
Knoten der Kern der veränderten Betrachtungsweise. Client/Server Modelle
berücksichtigen heute zu wenig, dass sich ein Großteil der Ressourcen vom Zentrum
weg zu den Clients verschoben hat. Diese Clients vereinen nämlich gewisse
interessante Eigenschaften.
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 6
Abbildung 2:
Ausschnitt aus Gnutella-Netzwerk
Sie befinden sich alle am „Rande“ des Netzwerks bzw. des Internets, d.h. sie sind
letztes Element in der Kette der Vernetzung und sind in der Regel vom DNS System
ausgeschlossen, da sie meist keine fixen IP-Adressen haben. Weiterhin besitzen sie,
durch
neue,
erschwinglichere
Technologien
(z.B.
Prozessor,
Harddisk,
Breitbandnetzzugänge) begünstigt, wertvolle meist brachliegende Ressourcen
(digitale Dokumente, digitale Medien, Präsenz des Benutzer/Besitzer, Speicherplatz,
Rechenleistung, Bandbreite). P2P-Netzwerke machen sich genau diese freien
Ressourcen zu nutze, um das Bedürfnis der Nutzer, direkt untereinander zu
kommunizieren und Daten auszutauschen, zu befriedigen. Zur Realisierung solcher
Netze sind nun spezielle Applikationen nötig.
Diese Applikationen müssen dezentralisierte Ressourcen finden und verwalten
können, sowie sich in einem Umfeld temporärer Verbindungen und wechselnder IPAdressen zurechtfinden. Weiter müssen die Knoten außerhalb des DNS-Systems
operieren und sind teilweise oder total unabhängig von zentralen Servern/Hosts.
P2P-Systeme müssen also zwei Dinge gewährleisten:
•
Variable Konnektivität und Temporäre Netzwerkadressen
•
Unabhängigkeit der einzelnen Knoten
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 7
Napster und ICQ sind gute Bespiele für P2P-Applikationen. Beide lassen in ihrer
Verwaltung das DNS-System außer Acht, die Kontrolle der Verbindung liegt beim
Knoten und die „Peers“ können autonom in Bezug auf ihre Ressourcen handeln.
Es gibt aber noch weitere Merkmale, die für P2P-Netwerke von Bedeutung sind. Da
wäre zunächst der so genannte Netzwerkeffekt. Er tritt in allen Arten von Netzwerken
auf und besagt, dass durch das Hinzukommen neuer Netzteilnehmer im System
zusätzliche Ressourcen, Fähigkeiten, etc. allen Beteiligten des Netzwerks zugute
kommen. Für die Beschreibung eines P2P-Netzwerks ist also die Anzahl der
beteiligten Knoten oder „Peers“ ein wichtiger Punkt. Eine hohe Anzahl von Knoten
bewirkt somit eine bessere Verfügbarkeit von Ressourcen (digitale Inhalte,
Speicherplatz, Rechenleistung, etc.), und steigert somit den Wert des Netzwerks. Vor
allem populäre Inhalte verbreiten sich durch die hohe Nachfrage schnell über das
Netz und sind dadurch redundant auf vielen Hosts zu finden und damit gut verfügbar.
Ein weiteres Merkmal heutiger P2P-Strukturen ist die Möglichkeit der Separierung
von Authoring und Publishing. Dies bedeutet, dass jeder Netzteilnehmer auch Inhalte
publizieren, sprich weitergeben kann, die er nicht selbst verfasst hat. Diese Tatsache
ist, wie der Fall Napster zeigt, höchst problematisch. Obwohl das Internet die
Selbstpublikation stark verbreitet hat, verbringen die meisten User heute noch immer
bedeutend mehr Zeit, Informationen zu verarbeiten (Downloaden) als selbst
herzustellen. Systeme wie Napster und Gnutella ermöglichen bzw. ermöglichten
somit neben dem Publizieren eigenen Schaffens auch das Verbreiten von Daten und
Inhalten, welche man selbst nicht verfasst hat. Dass dies zu Problemen mit
Urheberrechten führt illustriert der Fall Napster sehr gut. Auch wenn das File Sharing
von Napster abgeschaltet ist, wird dieses Merkmal weiterhin kennzeichnend für noch
existierende und neue P2P-Netze sein (Gnutella, Freenet, etc.) [1].
Zusammenfassend kann gesagt werden, dass P2P-Netzwerke eine Möglichkeit
bieten, das Verlangen der Internetnutzer, miteinander direkt zu kommunizieren und
Daten auszutauschen, befriedigen. Dieser Trend führt zu einer Verlagerung von
Ressourcen, vor allem in der Form von digitalen Inhalten, heraus aus dem Zentrum,
in Form der Server, an den Rand des Internets, zu den ursprünglich als Clients
fungierenden Hosts. Hierfür sind Applikationen nötig, die diese Ressourcen
verwalten und in Netzwerke integrieren. Dies müssen sie in einem heterogenen und
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 8
dynamischen Umfeld von autonomen Netzwerkknoten realisieren, ohne dabei mehr
als nötig zu standardisieren, um die Vorteile der Vernetzung optimal zu nutzen.
2.1. P2P-Architekturen
Grundsätzlich gibt es zwei verschiedene Formen von P2P-Architekturen. Die Erste
ist die reine Form eines P2P-Netzwerks, die Zweite eine P2P-Architektur, welche
durch Elemente einer Client/Server-Architektur erweitert wurde. Von dieser zweiten
Form gibt es zudem noch eine Variante, in welcher der Akzent mehr auf RessourcenNutzung als der Vernetzung zwischen den einzelnen „Peers“ liegt.
2.1.1. Reines P2P
In einem reinen P2P-Netzwerk gibt es keine zentrale Stelle, alle Netzteilnehmer sind
gleichgestellt (siehe Abbildung 3). Jeder Knoten verwaltet sich selbst, und alle
Knoten zusammengefasst bilden das Netzwerk und dessen Administration. Jeder
Knoten ist Server und Client zugleich („Servent“). Die Anwendungen, die diese
Servents realisieren, werden im Allgemeinen als Clients bezeichnet, auch wenn
diese Bezeichnung unzureichend ist. Da der Begriff „Servent“ in der Praxis eher
ungebräuchlich ist, werde ich im Weiteren nur noch die Bezeichnung „Client“
verwenden. Ein Client solch eines P2P-Netzwerks loggt sich in das Netz
folgendermaßen ein: er verbindet sich zu anderen Clients im Netzwerk und teilt ihnen
mit, dass er im Netz ist. Die anderen Hosts kommunizieren dem Knoten, mit welchen
anderen Clients („user“) sie verbunden sind und übermitteln gleichzeitig diesen den
aktiven Status des neu teilnehmenden Nutzers. Es wird also immer eine Antwort
zurück- und eine Nachricht weitergesendet. Dieser Prozess geht bei den anderen
Clients („user“) so weiter, so dass sich in kürzester Zeit Tausende von Hosts
miteinander verbinden können. Es scheint nun, dass die Reichweite solch eines
Netzwerks unendlich sein kann. Wie viele Schichten eine Mitteilung erreichen kann,
wird jedoch durch den „time-to-live“- Wert (TTL) begrenzt. Somit gibt es für jeden
Client eine Begrenzung der „Reichweite“ im Netz, Horizont genannt. Diese
Limitierung verhindert die Entstehung von infiniten Schleifen und ist damit besonders
wichtig für den problemlosen Betrieb des Netzwerkes. Trotz dieser Beschränkung
kann die Ausdehnung des Netzwerks von Teilnehmern, mit denen ein einzelner
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 9
Benutzer verbunden ist, enorme Ausmaße annehmen, und Daten verbreiten sich in
der Praxis dennoch über das gesamte Internet. Schließlich genossen Europäer im
Mittelalter ebenfalls chinesische Gewürze, obwohl sie außer Mythen und Legenden
nichts über China wussten. Alles was nötig war, war das Wissen um einige Plätze im
Nahen Osten, an denen mit China Handel betrieben wurde [2].
Die bekanntesten Beispiele für reines P2P im Internet sind Gnutella und Freenet.
Gnutella wurde ursprünglich von Nullsoft, einer Tochtergesellschaft von AOL,
programmiert. Das Programm war, entgegen der viel verbreiteten Meinung, nicht
Open-Source.
Das
Kommunikationsprotokoll
wurde
nicht
veröffentlicht.
Das
Programm wurde „reverse engineered“, d.h. Entwickler bauten nachträglich ein
Protokoll auf, welches die Eigenschaften von Gnutella erfasste.
Client
Client
Client
Client
Abbildung 3:
Client
Modell eines reinen P2P-Netzes
Gnutella ist ein Protokoll, nicht eine Software. Sie legt fest, wie GnutellaApplikationen miteinander über das Internet via HTTP kommunizieren.
Das Protokoll wurde öffentlich zugänglich gemacht. Es gibt heute über 30
verschiedene entsprechende Applikationen, die gemeinhin als „Clients“ bezeichnet
werden. (z.B. Bearshare, Limewire, Toadnode). Teilweise sind diese Anwendungen
selbst Open-Source-Projekte. Gnutella ist somit das erste große reine P2P-Netzwerk
nach den Anfängen des Internet selbst (Arpanet). Um ein Verständnis für die
Funktionsweise von Gnutella zu schaffen, soll nun kurz das Gnutella-Protokoll erklärt
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 10
werden. Es definiert die Kommunikation zwischen den Clients und erlaubt so einen
Suchmechanismus (distributed search) für das ganze Netzwerk. Die Kommunikation
findet über Mitteilungen (packets), welche durch eine spezielle Beschreibung
(Descriptor) gekennzeichnet (tagged) sind. Die Version 0.4 des Gnutella-Protokolls
definiert 5 Beschreibungen: PING, PONG, QUERY, QUERYHit und PUSH.
Mitteilungen enthalten außerdem den GUID (Global Unique Identifier), um so jeden
Host und jede Mitteilung eindeutig im Netzwerk zu identifizieren. Die Descriptors
geben den kommunizierenden Computern genaue Anweisungen, wie sie auf eine
Mitteilung zu reagieren haben. PING und PONG ermöglichen, wie schon oben
erwähnt, das Anmelden im Netzwerk. Nachfolgend soll der Prozess des Suchens
(QUERY), des Findens (QUERYHit) und des Herunterladens (PUSH) erläutert
werden.
Erster Schritt: Suche
Der eingegebene Suchbegriff wird
nun durch die Mitteilung QUERY an
alle
Netzteilnehmer
versandt.
QUERY durchsucht die von den
Clients
angebotenen
(shared)
Ressourcen. Die Reichweite dieser
Mitteilung
ist
durch
die
TTL
beschränkt.
Zweiter Schritt: Gefunden
Besitzt
nun
ein
durch
angesprochener
QUERY
Computer
den
gesuchten Inhalt, wird er sie mit
einer
QUERYHit
Netzwerk
an
Mitteilung
den
via
Suchenden
beantworten. Sie beinhaltet die IPAdresse
Namen
des
der
Senders
und
die
entsprechenden
Dateien.
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 11
Dritter Schritt: Download
Der
Computer,
welcher
die
gewünschte Datei hat, wird nun, im
Gegensatz zu vorher, über HTTP
direkt angesprochen. Der Download
wird nun vom Suchenden initiiert.
Firewalls
können
aber
eine
Verbindung zwischen den Clients
verhindern.
Evtl. vierter Schritt: Firewall
Falls der suchende Nutzer den
Download aufgrund eines Firewalls
nicht initiieren kann, sendet er eine
PUSH-Mitteilung
an
seine
Gegenpartei, welche nun von sich
aus den Transfer startet.
Die total dezentrale Struktur und der Open-Source-Code des Protokolls verursachen
aber auch gewisse Schwierigkeiten. Da inzwischen weit über 30 verschiedene auf
Gnutella basierende Programme im Umlauf sind, gibt es Kompatibilitätsprobleme.
Der einfache Aufbau des Protokolls ließ es zu, dass eine Menge an verschiedenen
Clients mit unterschiedlichen Zusatzfunktionalitäten entstanden, deren Kompatibilität
untereinander mehrheitlich nicht gegeben ist. Das Gnutella Protokoll selbst ist noch
nicht genügend ausgereift und bedarf einer Weiterentwicklung innerhalb der OpenSource-Community. Des Weiteren ist die Konnektivität ein Problem. Wie jeder
Browser braucht jeder Gnutella Client eine „Startseite“ resp. einen „Starthost“. Die
Tatsache, dass diese Hostadressen nur eine beschränkte Lebensdauer haben und
nicht ständig verfügbar sind erschwert den Verbindungsaufbau zum Netz. Ein
Lösungsansatz hierfür ist das „auto-connect“ Feature, welches in einigen Clients
(z.B. Bearshare oder Limewire) enthalten ist. Bei diesem „auto-connect“ greift der
Client auf Adresslisten zu, die auf zentralen Webservern, wie dss.Clip2.com oder
www.Gnutellahosts.com, gepflegt werden. Diese Zusatzfunktion bricht jedoch mit
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 12
dem Konzept des reinen P2P, da hierbei eine Art zentraler Koordination auf ClientServer- Basis genutzt wird.
Ein weiteres Problem von Gnutella ist die schlechte Skalierbarkeit. Durch die
parallele Weitergabe von eingehenden Requests in allen Knoten verbreiten sich
Anforderungen expotentiell im Netz. Diese Überflutung des Netzes mit Requests
erzeugt eine solch hohe Last auf dem Netzwerk, welches dadurch zum
Zusammenbruch gebracht werden kann. Für dieses Problem haben die GnutellaEntwickler derzeit noch keine Lösung parat [2]. Umgekehrt führt die zu geringe
Bandbreite der Netzzugänge vieler Clients ebenfalls zu Problemen. Über langsame
Modemverbindungen eingebundene Clients bremsen das Netzwerk aus oder
partitionieren es sogar. Dies erschwert die Kommunikation und schmälert erheblich
den Erfolg von Suchanfragen. Ein Lösungsansatz für dieses Problem ordnet die
Clients so um, dass schnelle Sevents mehr in die Mitte des Netzwerks und
langsamere mehr am Rand positionieren werden.
Ein weiteres bekanntes reines P2P-Netzwerk ist Freenet. Es entstand aus einem
Forschungsprojekt, das 1997 von Ian Clarke an der Universität von Edinburgh
begonnen wurde. Es wurde in Java entwickelt und benutzt im Gegensatz zu Gnutella
nicht HTTP als unterliegendes Schichtprotokoll. Hauptsächlich unterscheidet sich
Freenet von Gnutella jedoch durch die Ziele, die bei der Entwicklung im Mittelpunkt
standen und einen sehr sozialpolitischen Charakter haben. So wurde das FreenetProjekt mit folgenden Absichten ins Leben gerufen [2]:
•
anonyme Distribution von Inhalten zu ermöglichen
•
anonymes Abrufen von Inhalten zu ermöglichen
•
die Entfernung von Inhalten nahezu unmöglich zu machen, heißt Zensur
zu verhindern
•
ohne zentrale Kontrolle zu funktionieren
In vieler Hinsicht gleichen die Architektur und Protokoll von Freenet denen von
Gnutella.
Jeder
Teilnehmer
Anforderungen an ein paar
benutzt
eine
Client-Anwendung
und
schickt
benachbarte Clients. Diese werden eindeutig
gekennzeichnet, zu weiteren Clients weitergegeben und gespeichert, um den
Anforderungen entsprechende Daten an den Requester zurückgeben zu können. Der
wesentliche Unterschied zwischen beiden Systemen ist, dass ein Freenet-Client, der
eine Anfrage erfüllt, die Daten zum Requester schicken muss. Dies ist bei Gnutella
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 13
nur eine Option, jedoch nicht zwingend gefordert. Viel wichtiger als das eigentliche
Schicken der Daten ist die Tatsache, dass jeder Client in der Kette, durch die die
Daten gesendet werden, eine Kopie der Daten bei sich ablegt. Diese behält der
Client dann solange, wie andere Netzteilnehmer danach fragen, und löscht sie, wenn
eine gewisse Zeit lang sich niemand mehr dafür interessiert. Obwohl diese
Vorgehensweise auf den ersten Blick sehr ineffizient erscheint, so erfüllt es doch
einige Dinge, die bei der Umsetzung der Ziele von Freenet sehr hilfreich sind.
Mit diesem Vorgehen ermöglicht es Freenet kleinen Anbietern, große, populäre
Inhalte effizient, ohne Probleme mit zu geringer Bandweite oder zu schwachem
Server, zu verbreiten. Es fördert und verbreitet populäre Inhalte, während es
unpopuläre Angebote aus dem Netz verschwinden lässt. Durch diese weite
Distribution populärer Daten scheint es, als bringe Freenet die Daten „näher“ zu
denen, die sie haben wollen. Unter Nähe ist hier die Entfernung der Hosts in InternetHops von einander zu verstehen. Dies ist ein interessanter Punkt bezüglich der
Architektur von Freenet, denn die Popularität der Inhalte von Netzteilnehmern wirkt
sich tatsächlich auf die Topologie des Freenet-Netzes aus. Im Gegensatz zu
Gnutella werden bei Freenet nicht zu befriedigende Requests nicht parallel an alle
benachbarten Hosts, sondern nacheinander an die Nachbar-Hosts weitergegeben,
solange keine positive Antwort folgt. Dieses Vorgehen nennt man „Depth-first“
(Tiefensuche), während die Gnutella-Methode als „Breadth-first“ (Breitensuche)
bezeichnet wird. Nun angenommen, ein Client entdeckt, dass er ständig und schnell
Daten von einem bestimmten Nachbarn bekommt, so wird er diesen für künftige
Requests favorisieren. Die Bandbreite des Netzes verbessert sich somit dort, wo es
dem Endbenutzer zu Gute kommt. Zurückkommend auf das Bild des Handels
zwischen Europa und China im Mittelalter würde dies bedeuten, dass Freenet China
umso näher an Europa heranbringt, desto mehr Europäer mit China handeln wollen
[2].
Ein
weiters
Ergebnis
der
Freenet-Architektur
ist
die
gute
Skalierbarkeit.
Netzüberlastungen durch Request-Überflutung, wie bei Gnutella, sind durch die
verwendete Tiefensuche ausgeschlossen. Auch Versuche, das Netzwerk mit großen
Datenmengen zu überfluten haben nur geringe Auswirkungen. Solange niemand
nach diesen Daten fragt, werden sie sich nicht durch das Netz bewegen.
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 14
Des Weiteren macht es ein System von Schlüsseln und Prüfsummen (Hashes)
unmöglich,
im
Netzwerk
existierende
Inhalte
unter
gleichem
Namen
zu
überschreiben. Jedes Element hat eine eindeutige Kennung. Doch genau diese
einmalige Kennung birgt auch das größte Problem von Freenet in sich. Obwohl für
jedes Element, welches man ins Netzwerk stellt, ein beliebiger String als
Bezeichnung gewählt werden kann, erstellt Freenet aus Sicherheitsgründen sowohl
von diesen Bezeichnungen als auch von Such-Strings Prüfsummen. Wenn also
Bezeichnung und Suchstring sich auch nur in einem Zeichen unterscheiden, bleibt
bei der Suche das Datenelement außen vor. Zum Beispiel würde die Suche nach
Inhalten mit dem Titel „MySong.mp3“ eine Datei mit dem Namen „My-Song.mp3“
ignorieren. Freitext-Suchanfragen bleiben somit erfolglos. Die Lösung dieses
Suchproblems stellt laut Ian Clarke derzeit die wichtigste Aufgabe für die
Entwicklergemeinde von Freenet dar.
2.1.2. Hybrides P2P (koordiniertes)
Napster und ICQ sind wohl die bekanntesten Beispiele für hybride P2P-Netze. Nach
seiner Erfindung löste ICQ eine Welle des Instant Messaging aus, welches heute von
über 120 Millionen Menschen in über 245 Ländern genutzt wird [3]. Mitte 1999 ging
Napster online und hatte vor seiner, durch die Domestizierung durch Bertelsmann
bedingten, Abschaltung über 60 Millionen Nutzer.
Koordinierte P2P-Netzwerke haben im Gegensatz zur reinen P2P-Architektur einen
oder mehrere zentrale Server (siehe Abbildung 4). Dies soll dazu dienen, die Vorteile
von P2P mit denen des Client/Server Modells zu verbinden.
Um Teil eines solchen hybriden P2P-Netzes zu werden, benötigt der User in der
Regel eine Client Applikation. Diese meldet dann den Benutzer bei einem zentralen
Server an, sofern dieser registriert ist. Der zentrale Server administriert alle aktiven
User und deren angebotenen Ressourcen, welche der Server in einem zentralen
Verzeichnis einträgt. Die Suche nach Ressourcen verläuft nun eben über dieses
Verzeichnis der Koordinationsstelle und ermöglicht einen schnelleren Ablauf des
Such- und Vermittlungsprozesses. Bis hierhin entspricht dies im wesentlichen einer
Client/Server Architektur, bei der ein sehr geringes Datenaufkommen vorliegt. Um
hingegen nach der Vermittlung auf gefundene Ressourcen zuzugreifen, verbindet
sich der User dann über reines P2P direkt mit dem vermittelten „peer“. Große
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 15
Datenmengen werden somit nur direkt unter den „peers“ ausgetauscht. Das hohe
Datenaufkommen, mit dem herkömmliche File Server zu kämpfen haben, entfällt
somit bei den zentralen Servern einer hybriden P2P-Architektur.
Client
Client
Client
Server
Client
Client
Client
Abbildung 4:
Hyprides P2P
Damit bringt Koordiniertes Peer-2-Peer dem User höhere Benutzerfreundlichkeit und
verspricht insgesamt eine bessere Vernetzung der Hosts. Was bei der reinen P2PArchitektur zur fast uferlosen Vernetzung tausender Clients führt, wird hier durch
zentrale Server gelöst. Um große Massen von Nutzern effizient zu verwalten, bedarf
es eines Netzwerks von Zentral-Servern, was in einer Partitionierung des Netzwerks
resultiert. Einerseits wird dadurch eine bessere Connectivität erreicht. Andererseits
ist es dem User nicht immer möglich, das gesamte Netzwerk zu durchsuchen, da die
zentralen Server nicht zwingend miteinander kommunizieren und ihre Verzeichnisse
austauschen. Eine Lösung für dieses Problem sind erweiterte Clients, die es dem
Benutzer erlauben, den Server manuell auszuwählen. Dies ermöglicht außerdem die
Bildung von themenspezifischen Servern.
Die Abhängigkeit von zentralen Servern macht Hybride P2P-Netze allerdings leicht
angreifbar. Der Verlust der Server führt zum Verlust des ganzen Netzes, was die
Abschaltung von Napster technisch gesehen sehr einfach machte.
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 16
2.1.3. Cycle Sharing
Dieser Ansatz von Peer-2-Peer Netzwerken wurde von SETI@Home bekannt
gemacht und ist in diesem Bereich bislang das größte und erfolgreichste Projekt.
SETI (Search for Extraterrestrial Intelligence) begann das Projekt im Mai 1999, um
freie Rechenleistung von unzähligen PCs zur Analyse von Radiowellen zu nutzen.
Seither haben über 2.6 Millionen Freiwillige über 500 000 Jahre Rechenleistung
beigetragen.
Da diese Form des P2P jedoch für diese Arbeit nicht relevant ist, möchte ich nicht
näher darauf eingehen.
2.2. P2P-Geschäftsmodelle
Einfach gesagt, beschreibt ein Geschäftsmodell die Art und Weise, wie eine Firma
Geschäfte und damit möglichst Gewinne macht. Einige Modelle sind recht einfach:
eine Firma produziert Waren oder bietet Dienstleistungen an, und verkauft diese dem
Kunden.
Andere
Geschäftsmodelle,
wie
zum
Beispiel
Fernseh-
oder
Radioübertragung, sind etwas komplexer.
Das Internet ermöglicht viele neue Geschäftsmodelle, sowie viele Wiedererfindungen
von bestehenden Modellen. Ein bekanntes Beispiel hierfür sind Auktionen. Eines der
ältesten Geschäftmodelle der Welt wurde durch Firmen wie eBay aufgegriffen und
entwickelte sich zu einem der erfolgreichsten Modelle im Internet.
Gemein ist all diesen Business-Modellen im Internet, dass sie versuchen, die
besonderen Gegebenheiten des Mediums Internet zu ihrem Vorteil zu nutzen. Die
Vernetzung von Millionen von Benutzern auf der ganzen Welt brachte bereits eine
Fülle von Ideen, um damit Geld zu verdienen, hervor. Mit jeder Innovation, die diese
globale Vernetzung vorantreibt, werden sich neue Ideen und Geschäftsmodelle
ergeben.
Für P2P-Netze sind vor allem Geschäftsmodelle interessant, bei denen die direkte
Kommunikation der Benutzer von Bedeutung ist, und vom Betreiber motiviert wird.
Diese Motivation passiert meist durch einen materiellen Anreiz für den Benutzer, zum
Beispiel durch Provisionen oder Rabatte. Im folgenden werden einige Modelle
erläutert, die entsprechende Ansätze enthalten.
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 17
2.2.1. Bannerwerbung
Bannerwerbung ist eine der am meisten verbreiteten Varianten, Besucher auf die
Webseiten des Werbenden zu bringen. Werbebanner werden meist auf anderen
Websites geschaltet (siehe Abbildung 5). Neuere Entwicklungen bieten auch
Programme zum Download an, die Werbebanner direkt auf den Bildschirm des
Benutzers bringen. Dies dient dazu, nicht nur Betreibern von Webseiten, sondern
auch dem Endbenutzer und eigentlichen Werbekonsumenten zu ermöglichen, an der
geschalteten Werbung zu verdienen. Viele Anbieter von kostenlosen Diensten im
Internet finanzieren sich über die Einblendung von Werbebannern.
Abbildung 5:
Webseite mit Bannerwerbung
Die Schaltung von Werbebannern wird in der Regel entweder nach sogenannten AdImpressions, der Anzahl der vom Server ausgelieferten Banner, oder nach Ad-Clicks,
der Anzahl der tatsächlich erfolgten Klicks auf das Banner, abgerechnet. Bei der
Verrechnung nach Ad-Impressions wird meistens der Begriff des TKP, des
Tausender-Kontakt-Preises, des Preises für 1000 Ad-Impressions verwendet. Bietet
eine
Seite
die
Verrechnung
nach
Ad-Clicks
an,
wird
meist
von
einer
durchschnittlichen Click-Rate zwischen 0,5 und 3 Prozent der Ad-Impressions
ausgegangen und der Preis für einen Click dementsprechend hoch angesetzt. Die
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 18
Entscheidung, das Risiko einer geringen Click-Rate durch Buchung nach TKP selbst
zu tragen, oder dieses durch Wahl der vielleicht überteuerten Ad-Click Verrechnung
auf den Anbieter abzuwälzen, bleibt dem Werbenden überlassen.
2.2.2. Affiliate Marketing
Die Idee des Affiliate Marketings entstand während eines Gesprächs zwischen einer
jungen Frau und Amazon Gründer Jeff Bezos. Die junge Frau hatte eine Website
zum Thema Scheidung erstellt und fragte Bezos, ob sie nicht gegen eine
Verkaufsprovision Bücher zu diesem Thema auf ihrer Website anbieten könne. Die
Idee des Affiliate Programms war geboren und ist heute eine der entscheidenden
Säulen für Amazons Bekanntheit und Erfolg. Heute verkauft Amazon seine Bücher
und CDs auf über 500.000 Partner-Websites weltweit.
Jedoch ist das Affiliate Marketing im Grunde keine revolutionäre Idee, sondern
vielmehr die Rückbesinnung auf die bewährten Vertriebskanäle des Offline-Business.
Produkte und Dienstleistungen werden näher zum Kunden gebracht, sind für den
Kunden besser und schneller erreichbar und können unmittelbar an die spezifischen
Interessen und Bedürfnisse bestimmter Zielgruppen angepasst werden [4].
Affiliateprogramme beruhen auf der Basis der erfolgreichen Empfehlung. Die
Werbepartner empfehlen ein bestimmtes Produkt oder einen Anbieter und erhalten
dafür eine Provision.
Im Internet hat sich das Affiliate Marketing zum Online-Geschäftsmodell schlechthin
etabliert. Mit niedrigen Kundenakquisitionskosten für die Betreiber hat es sich in allen
Bereichen des B2C und B2B im E-Commerce durchgesetzt. Mehr als 20% des
Online-Umsatzes werden über Partner-Websites generiert. Affiliate-Programme
bieten für E-Business Unternehmen die Möglichkeit, virtuelle Filialnetze aufzubauen
[5].
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 19
Partner-Sites
Kunden
Kunden
Anbieter
Kunden
Abbildung 6:
Affiliate-Netzwerk
Wesentlich für den Erfolg der Affiliate-Programme ist die Tatsache, dass
Empfehlungen
durch
andere
weit
glaubwürdiger
auf
Kunden
wirken
als
Eigenwerbung, zum Beispiel durch Bannerwerbung. Doch welche Möglichkeiten
bieten Affiliate-Programme für die Werbepartner? Wie bereits erwähnt erhält der
Partner für seine Funktion als Werbender eine Provision. Hierfür gibt es mehrere
Möglichkeiten der Berechnung, die häufigsten sind folgende:
•
Erfolgreiche Empfehlung: Das heißt der Kunde hat den Link angeklickt
und das beworbene Angebot besucht. Dann bekommt der Werbepartner
für jeden Click auf den entsprechenden Werbelink einen Betrag
gutgeschrieben.
•
Abschluss eines Kaufs: Dies bedeutet, dass der Kunde das Angebot
besucht und etwas daraus gekauft hat. In diesem Abrechnungsmodell
erhält der Partner dann eine Provision in Höhe eines bestimmten
Prozentsatzes vom Betrag des Kaufes.
Ein Reiseportal im Internet wäre zum Beispiel ein idealer Werbepartner für einen
Hersteller von Reisegepäck. Der Reiseanbieter könnte bei jeder abgeschlossenen
Reisebuchung ein Werbebanner für ein Kofferset des Gepäck-Herstellers in die
Buchungsbestätigung einbinden. Der Betreiber des Reiseportals erhielte nun
entweder eine Provision für jeden Kunden, der sich das Angebot des Gepäck-
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 20
Herstellers angesehen hat oder für jeden Koffer, der von einem geworbenen Kunden
gekauft wurde.
Provisionen werden oft nur oberhalb eines Minimums oder nicht in Form von Geld
ausgezahlt. So vergeben viele Firmen ihre Provisionen nur in Form von Gutschriften
oder anderen virtuellen Währungen.
2.2.3. Struktur-Marketing
Das Struktur-Marketing, auch bekannt als Multi-Level-Marketing (MLM), Network
Marketing oder Strukturvertrieb, ist eine Form des Direktvertriebs, die sich unter
anderem aus dem Versandhandel entwickelt hat. Beim klassischen Direktvertrieb ist
das Ziel, Waren oder Dienstleistungen ohne Zwischenhändler, eben direkt, an
Endkunden zu verkaufen. MLM führt dieses Prinzip weiter, und versucht die
Endkunden als Wiederverkäufer zu gewinnen. Damit konsumiert der Kunde die
gekauften Produkte nicht nur, sondern verkauft sie weiter (siehe Abbildung 7). Somit
wird der Kunde selbst ein Teil der Vertriebsstruktur. Um die Teilnahme an dieser
Vertriebsstruktur für den Kunden attraktiv zu machen, erhält ein Kunde für jeden
verkauften Artikel eine Provision, und zwar nicht nur für selbst erzielte Verkäufe,
sondern auch für die Verkäufe derer, die er zunächst wiederum geworben hat.
Daraus ergibt sich eine pyramidenförmige Vertriebsstruktur.
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 21
Partner
Kunden
Kunden
Anbieter
Kunden
Kunden
Kunden
Abbildung 7:
Strukturvertrieb
Strukturvertrieb gibt es seit den 40er Jahren. California Vitamins, ein Direktverkaufsunternehmen, ermöglichte erstmals seinen Mitarbeitern, andere Menschen als
Vertriebspartner anzuwerben und somit auch an deren Provisionen teilzuhaben. Neu
an diesem Geschäft war die Art und Weise der Vergütung der Mitarbeiter. Heute
bekannte Beispiele aus der Wirtschaft sind „AVON“, „Tupper Ware“ oder „Amway“.
Im Internet existieren MLM-Geschäftsmodelle bislang vor allem als Weiterführung
von Banner- oder Affiliate-Programmen. Bei diesen werden dann die Werbepartner
nicht nur für die selbst vermittelten Umsätze entlohnt, sondern auch an denen
beteiligt, die von weiteren geworbenen Partnern vermittelt wurden.
Inv-Nr. 2002-09-04/040/IN95/2231
2. Peer-To-Peer Netzwerke
Seite 22
2.2.4. Punkte- und Rabattsystme
Viele Unternehmen versuchen, ihre Kunden durch die Vergabe von Rabattpunkten
für
zukünftige
Einkäufe
zu
binden.
Durch
Drittanbieter
werden
unternehmensübergreifende Netze gebildet, die Kunden an die angeschlossenen
Shops binden sollen. Bei diesem Modell sind dann die erworbenen Rabattpunkte in
allen Shops gültig, die Teil des Netzes sind. Bei jedem weiteren Einkauf werden
weitere Rabattpunkte gesammelt. Ein Beispiel hierfür ist Webmiles, zu dessen ShopNetz Firmen wie Quelle, bol.de oder Vobis gehören.
Einen anderen Weg beschreitet letsbuyit.com. Bei diesem Anbieter ergibt sich ein
Rabatt für Warenkäufe durch die Anzahl der Verbraucher, die den selben Artikel
kaufen wollen. Je größer die Anzahl der Käufer, desto höher ist der gewährte Rabatt.
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 23
3. Lösungsansätze für das Potato-System
Das unter dem Namen „Potato-System“ (PS) zu entwickelnde System soll es
ermöglichen, die Struktur eines P2P-Netzes zum Vertrieb von digitalen Inhalten zu
nutzen.
Im
Gegensatz
zu
bisherigen
P2P-Ansätzen
zum
Austausch
von
multimedialen Daten soll das PS nicht dazu dienen, die illegale Verbreitung von
Raubkopien im Internet zu fördern. Vielmehr ist es das Ziel, eine Lösung zu finden,
die es Autoren, Komponisten etc. ermöglicht, ihre Waren effizient und vor allem
profitabel mittels eines P2P-Netzwerkes zu vertreiben.
Ich gehe davon aus, dass der PC als offenes System bestehen bleibt. Unter offenen
Systemen
versteht
man
in
diesem
Zusammenhang
Systeme,
die
aus
herstellerunabhängigen, allgemein verfügbaren Hard- und Softwarekomponenten
bestehen. Dabei dienen Standardisierung und offene Spezifikation den Zielen
Interoperabilität und Portabilität [11]. Der PC kann also nach Belieben des Nutzers
durch Hard- und Softwarekomponenten in seiner Funktionalität erweitert und
verändert werden.
Unter dieser Vorraussetzung werden Digital Rights Management (DRM) Systeme
auch in Zukunft keinen zureichenden Schutz vor unlegitimer Verwendung und
Weiterverbreitung von Software oder Multimedia bieten. Wenn man den Nutzer nun
nicht zwingen kann, Urheberrechte einzuhalten und für konsumierte Ware zu zahlen,
muss man Möglichkeiten finden, den Nutzer zu motivieren, dies aus eigenem
Interesse zu tun. Beim Potato-System steht die Idee im Mittelpunkt, die Nutzer zu
Vertriebspartnern zu machen. Damit verlieren diese die Rolle des Feindes der
Content Provider und werden Verbündete im Vertrieb der digitalen Inhalte. Um den
Nutzer für diese „Vertriebstätigkeit“ zu motivieren, erhält er eine Provision. Genauer:
Ein Nutzer, der für ein Multimediaprodukt oder eine Software bezahlt hat, erhält jedes
Mal eine Vermittlungsprovision, wenn das von ihm weiterverbreitete Produkt von
einem der Empfänger bezahlt wird. Zahlt dieser keinen Kaufpreis, erhält der Sender
keine Provision. Allerdings kann dann der Empfänger seinerseits auch niemals eine
Vermittlungsgebühr erhalten, denn jeder Bezahlvorgang wird quittiert.
Diese Art des Vertriebes entspricht dem Prinzip des oben beschriebenen Multi-LevelMarketing: Der Content Provider sendet sein Produkt an eine Reihe von Nutzern, die
dies dann kaufen und gegen eine Provision an weitere Nutzer weiterverkaufen.
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 24
3.1. Dezentraler Lösungsansatz mit reinem P2P
Der erste Ansatz zur Umsetzung dieses Vertriebssystems zielt auf eine vollkommen
dezentralisierte Lösung ab. Betrachtet man die baumartige Struktur des MLM, so
erscheint ein reines P2P-Netzwerk (2.1.1) als gut geeignetes Netz, um ein MLM-Netz
darin einzubetten. So stellt sich ein reines P2P-Netz vom Blickpunkt eines einzelnen
Benutzers aus ebenfalls als Baum dar, bei dem der Betrachtende die Wurzel ist.
(siehe Abbildung 2). Der Vertrieb der virtuellen Waren würde somit von der Wurzel
aus, sprich dem Content Provider, über seine benachbarten Knoten weiter durch das
ganze Netz erfolgen (siehe Abbildung 8).
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Client
Abbildung 8:
Client
Einbettung eines Baumes in ein P2P-Netzwerk
Des Weiteren hat die Betrachtung von Freenet ergeben, dass sich reine P2P-Netze
bestens zur Superdistribution eignen. Superdistribution ist eine Art des Vertriebes,
bei der digitale Inhalte ohne Einschränkungen frei verfügbar, jedoch vor
Modifikationen und vom Besitzer unerwünschten Verwendungen geschützt sind [6].
Superdistribution ermöglicht somit die uneingeschränkte Verbreitung von digitalen
Inhalten im Netzwerk und fördert damit den bereits beschriebenen Effekt, dass sich
Inhalte umso schneller im Netz verbreiten, je populärer sie sind. Dies ist ein
wesentliches Ziel des zu entwerfenden Systems.
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 25
Neben diesen wesentlichen Eigenschaften bringt die Struktur eines reinen P2PNetzwerkes andere Vor- und Nachteile mit sich, die es in diesem speziellen
Anwendungsfall genau zu prüfen und zu bewerten gilt.
Ruft man sich den Fall Napster in Erinnerung und betrachtet dagegen Gnutella oder
Freenet, so bietet die dezentrale Struktur vor allem den Vorteil, dass es schwer
angreifbar ist. Es existieren keine zentralen Knoten, bei deren Sabotage oder
erzwungener Abschaltung das Netzwerk zerstört würde. Da das zu entwerfende
System jedoch das Ziel hat, die Benutzer zum Einhalten der Urheberrechte zu
motivieren und damit aller Voraussicht nach nicht mit dem Gesetz in Konflikt geraten
wird, beschränkt sich dieser Vorteil auf Sabotage und sollte nicht überbewertet
werden. Der Großteil des heutigen Internet beruht auf der zentralisierten
Client/Server-Struktur, deren Server mit diesem Problem zu kämpfen haben.
Ein tatsächlich großer Vorteil des dezentralisierten Lösungsansatzes ist die gute
Skalierbarkeit. Eine schnell wachsende Teilnehmerzahl hätte keine negativen Folgen
für die Verfügbarkeit von Daten, wie dies bei zentralisierten Client/Server-Systemen
der Fall ist. Im Gegenteil; je mehr Teilnehmer ein entsprechendes Netz hat, desto
schneller erfolgt die Verbreitung gefragter Inhalte und damit deren Verfügbarkeit im
Netz.
Neben diesen Vorteilen birgt ein ausschließlich dezentraler Ansatz einen großen
Nachteil für das hier zu entwerfende System. Das bei Gnutella als ineffizient
erscheinende Durchreichen der gewünschten Daten vom Responder zum Requester
durch alle Zwischenknoten beschränkt sich in diesem Fall nicht nur auf Daten. Die
zentrale Idee, dem Nutzer für seine Distribution Provisionen zu zahlen, würde bei
jedem getätigten Kauf erfordern, dass die bezahlte Summe entlang der gesamten
Distributionskette bis zum Content Provider durchgereicht wird. Dabei behält sich
jedes Glied in dieser Kette eine Provision ein und reicht nur den Restbetrag weiter
zurück, wie Abbildung 9 zeigt.
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Abbildung 9:
Seite 26
Waren- und Geldfluss bei dezentralem Lösungsansatz
Dieses Vorgehen setzt voraus, dass die gesamte Vertriebsgeschichte des Produktes
in irgendeiner Form an das Produkt selbst angehängt werden muss, um den Weg für
die Bezahlung zu beschreiben. Auch das eigentliche Weiterreichen der Bezahlung
dürfte sich in dieser Form nur sehr schwer realisieren lassen. Da ein Content
Provider für seine Ware natürlich eine reelle Währung verlangen wird, um seine
Produktionskosten zu decken, müsste somit auch Geld durch das Netz fließen. Es ist
wohl kaum praktikabel, wenn das Geld entlang der Vertriebskette von Nutzer zu
Nutzer bis zum Content Provider beispielsweise durch Überweisungen gelangt.
Abgesehen von einem sehr hohen Aufwand, den Geldfluss zu realisieren, würde
dieses Verfahren eine Reihe von Angriffspunkten beinhalten. So bedürfte es eines
aufwendigen Protokolls, um dem Provider zu ermöglichen, nachzuvollziehen, wie oft
sein Produkt von einem Vertriebspartner an weitere Nutzer verkauft wurde. Diese
Kontrolle ist aber zwingend erforderlich, um den Missbrauch zum Betrug
auszuschließen. Sonst könnten Vertriebspartner nicht nur ihre Provisionen, sondern
auch den eigentlichen Preis der Ware für sich einstreichen, ohne dass der Provider
oder die übergeordneten Vertriebspartner jemals etwas davon merken würden. Die
P2P-Clientsoftware müsste entsprechend eines solchen Protokolls realisiert werden.
Eine Information an die Vertriebspartner oder Provider, sprich deren Clientsoftware,
über jede getätigte Transaktion wäre nötig. Provider und Vertriebspartner könnten
daraufhin ihre Zahlungseingänge anhand dieser Informationen überprüfen. Da eine
Überprüfung jedoch noch nicht das Geld bringt, wäre es weiterhin erforderlich, dass
sich jeder Vertriebspartner gegenüber dem Provider oder dem über ihm liegenden
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 27
Vertriebspartner eindeutig identifiziert. Dies wäre prinzipiell durch digitale Signaturen
möglich, was jedoch einen höheren Aufwand für die Nutzer darstellt und somit nicht
in ihrem Interesse sein kann. Des Weiteren käme auf Provider und Vertriebspartner
ein hoher Verwaltungsaufwand zu, um den Geldfluss abzuwickeln. Der größte
Schwachpunkt dieser Idee ist jedoch die Clientsoftware. Mit dem Mechanismus der
Benachrichtigung des Providers über getätigte Transaktionen übergibt man wie bei
herkömmlichen Kopierschutzsystemen die Kontrollinstanz auf das Endgerät des
Nutzers und lädt diesen geradezu zum Missbrauch ein. Da das Protokoll offen gelegt
werden soll, wäre zu erwarten, dass sehr bald Clients entstehen würden, die die
Rückmeldung von Transaktionen „vergessen“ und somit den Nutzer zu größerem
Gewinn verhelfen. Dies hätte den Zusammenbruch des gewünschten Geldflusses
und damit des ganzen Systems zur Folge.
Eine praktikable Lösung wäre, wenn ein Käufer den Preis für das Produkt direkt an
den Hersteller bezahlt, und dieser dann anhand der Vertriebsgeschichte des
Produkts Provisionen an die Nutzer in der Vertriebskette auszahlt.
Abbildung 10: Waren- und Geldfluss bei dezentralem Lösungsansatz mit zentraler
Provisionsauszahlung
Bei diesem Vorgehen übernimmt der Content Provider jedoch eine zentrale Rolle.
Somit ist der Ansatz nicht mehr dezentral.
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 28
3.2. Praktikabler Lösungsansatz mit koordiniertem P2P
Bei näherer Betrachtung dieser zentralen Funktion eines Providers stellt man fest,
dass darin ein nicht zu unterschätzender Verwaltungsaufwand liegt. So ist es
durchaus wahrscheinlich, dass ein Provider nicht jede Provision einzeln auszahlt,
sondern diese wegen ihrer teilweise sehr niedrigen Beträge bis zu einem
Mindestauszahlungsbetrag anspart. Dies bedeutet aber, dass jeder Anbieter von
Inhalten Daten seiner Kunden und Vertriebspartner, sowie deren Kontoinformationen
speichern müsste. Es ist weiterhin anzunehmen, dass ein Nutzer von mehr als einem
Anbieter virtuelle Ware konsumiert und weiterverkauft. Als Folge müsste sich ein
Nutzer bei unzähligen Anbietern anmelden, seine Daten hinterlassen und hätte
ebenso viele Konten.
Spätestens hier drängt sich der Gedanke an eine zentrale Instanz auf, die sowohl
Anbieter als auch Vertriebspartner sowie deren Transaktionen an zentraler Stelle
verwaltet (siehe Abbildung 11). Diese zentrale Instanz soll im Folgenden als
Accounting Server (AS) bezeichnet werden.
Abbildung 11: Waren- und Geldfluss mit zentraler Instanz
Die Eigenschaften des dezentralen Ansatzes unter Verwendung eines reinen P2PNetzwerkes werden mit einer zentralen, koordinierenden Instanz verknüpft. Man
erhält also ein koordiniertes oder hybrides P2P-Netzwerk, wie unter 2.1.2
beschrieben.
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 29
3.2.1. Einführung der beteiligten Personen
Um die prinzipielle Funktionsweise des Potato-Systems besser beschreiben zu
können, stelle ich nun einige Personen vor, die mit dem System interagieren. Zur
Darstellung dieser Personen dienen gemischte Stereotype. Diese bestehen aus
einem Namen und einem zugehörigen Bild. Ein Stereotyp kann beliebige
Eigenschaften eines Objektes repräsentieren [7]. So werden die Personen, die mit
dem System interagieren greifbarer und die Beschreibung des Systems gelingt
anschaulicher.
3.2.1.1 Provider (Fred)
Da das System der Distribution von multimedialen Produkten und Software dienen
soll, stellt der Produzent solcher Ware die erste beteiligte Person dar. Diese soll im
Folgenden als Provider oder Anbieter bezeichnet werden. Ein Provider kann eine
reale Person, also zum Beispiel ein Autor eines Textes oder ein Komponist eines
Musikfiles, sein. Ebenfalls möglich wäre, dass ein Provider für eine Rechtsperson,
also zum Beispiel eine Firma, steht. So wäre denkbar, dass eine Managementfirma
mehrere Künstler betreut und deren Arbeiten über das Potato-System vertreibt.
Wesentlich für den Provider ist, dass er tatsächlich die Rechte an den von ihm
vertriebenen
Waren
zurückzuverfolgen
besitzt.
können
Um
sollte
eventuellen
ein
Provider
Missbrauch
als
reale
feststellen
Person
und
eindeutig
identifizierbar sein. Für den Provider wird im Weiteren der Stereotyp „Fred“
verwendet.
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 30
3.2.1.2 Konsument (Draco)
Neben den Anbietern von virtuellen Waren, den Providern, sind natürlich die Nutzer
für das System von Bedeutung, die die angebotene Ware konsumieren. Eine weitere
Person ist also der Konsument. Konsumenten bleiben dem System unbekannt und
zeichnen sich ausschließlich durch den Konsum, zum Beispiel das Hören von MP3s,
von multimedialen Produkten oder Software aus. Der Stereotyp Draco dient der
Veranschaulichung des Konsumenten.
3.2.1.3 Käufer (Harry)
Entschließt sich ein Konsument dazu, für die konsumierte Ware zu zahlen, so wird er
zum Käufer. Ein Käufer muss dem System bekannt sein, um einen Kauf
abzuwickeln. Der Käufer wird im Weiteren durch den Stereotyp Harry dargestellt.
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 31
3.2.1.4 Wiederverkäufer (Ginny)
Sowohl reine Konsumenten als auch solche, die durch den Kauf einer virtuellen
Ware zu Käufern geworden sind, haben die Möglichkeit erhaltene Waren
weiterzugeben. Ein Wiederverkäufer oder Vertriebspartner zeichnet sich jedoch
dadurch aus, dass er gekaufte Produkte an andere weiterverkauft. Also kann nur ein
Käufer zum Wiederverkäufer werden. Der Wiederverkäufer wird mit dem Stereotyp
Ginny dargestellt.
3.2.1.5 Betreiber des Accounting Servers (Bill)
Der zentrale Akteur des Systems ist der Betreiber des AS, er verwaltet alle Daten die
für das PS relevant sind. Des Weiteren führt er die „Potato-Konten“ der
angemeldeten Provider und Wiederverkäufer. Als Stereotyp dient Bill.
3.2.2. Beschreibung des prinzipiellen Ablaufes
Nehmen wir an, Fred hat eine virtuelle Ware, ein Musikstück, produziert. Dieses
Musikstück liegt als Datei mit dem Namen MYSONG.MP3 vor und Fred möchte diese
Datei kommerziell über das PS vertreiben. Voraussetzung dafür ist zunächst, dass
Fred tatsächlich die Urheberrechte an der Datei besitzt. Um das Risiko des
Missbrauches an dieser Stelle zu minimieren muss sich Fred zunächst bei Bill
registrieren. Dabei muss Fred gegenüber Bill einige Angaben machen, die es
erlauben, dass Fred von Bill eindeutig als Person identifiziert werden kann. Für
diesen Zweck wäre unter anderem eine Digitale Signatur von Fred sinnvoll. Fall sich
später herausstellt, dass durch den Vertrieb der Datei MYSONG.MP3 Urheberrechte
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 32
verletzt wurden, kann Bill aufgrund seiner Daten eindeutig feststellen, das Fred
diesen Missbrauch zu verantworten hat.
Der Ablauf des Vertriebs einer virtuellen Ware über das System soll durch Abbildung
12 veranschaulicht werden. Die Pfeile symbolisieren den Fluss von Ware,
Informationen und Geld. Die Nummerierung dieser Pfeile zeigen die zeitliche Abfolge
der im Folgenden beschriebenen Vorgänge.
Ist Fred nun bei Bill registriert, so kann er seine Datei bei Bill zum Vertrieb anmelden.
(1) Dabei ist wichtig, dass die Datei eindeutig als Freds Datei zu identifizieren ist.
Außerdem kann Fred noch weitere Angaben zur Datei beim AS von Bill hinterlassen.
Solche Angaben wären zum Beispiel eine Beschreibung, ein Preismodell für den
Vertrieb und natürlich die Information, wo die Datei zu finden ist. Denn es ist nicht
zwingend vorgesehen, dass eine Kopie der Datei bei Bill hinterlegt wird. Das
Preismodell enthält den Preis selbst und Daten die zur Berechnung der Provisionen
benötigt werden. Für die Anmeldung der Datei erhält Fred natürlich einen Beleg in
elektronischer Form (2). Dieser Beleg, bzw. ein Verweis darauf muss mit der Datei
verknüpft werden.
Fred kann die mit dem elektronischen Beleg versehene Datei nun auf beliebige
Weise, zum Beispiel per Email, über P2P-Tauschbörsen oder zum Download auf
einer Webseite verteilen (3). Sollte Fred nicht über die technischen Möglichkeiten
verfügen seine Waren selbst zu verteilen, wäre es durchaus sinnvoll weitere Dienste
anzubieten. So könnte man die Dateien auf einem separaten Server zum Download
anbieten, oder Fred auf dem Server Speicher zu Verfügung stellen, über den er frei
verfügen kann. Dort kann Fred dann sein Angebot selbst verwalten.
Erhält nun Ginny die Datei, so kann sie zunächst den Song anhören und die von
Fred bei Bill hinterlassenen Informationen über die Datei einsehen. Sie kann den
Song jedoch auch kaufen. Dazu muss sich Ginny sich zunächst ebenfalls bei Bill
registrieren. Jedoch sind dabei nicht so viele Angaben nötig wie bei Fred. Sie muss
sich auch nicht mit einer Digitalen Signatur identifizieren. Ihre Email Adresse reicht
aus. Im nächsten Schritt kann Ginny von Bills AS weitere Informationen, wie Preis,
Preismodell und eventuell die Vertriebsstufe, erfragen. Bei Gefallen kann er die Datei
mit einem Online-Payment-System bezahlen (4). Den bezahlten Betrag erhält Fred,
abzüglich der Gebühren, die Bill erhebt, auf seinem Account gutgeschrieben (5).
Ginny wiederum erhält für den getätigten Kauf ebenfalls einen elektronischen Beleg,
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 33
der nun mit der Datei verknüpft wird (6). Sie kann nun die Datei mit ihrem Beleg
weiterverbreiten.
Konten
Fred
Ginny
Harry
10
9
5
A
Dateiinformationen
Bill
S
2
6
11
1
Beleg
4
3
Quittung
Content
7
Quittung
Content
Quittung
Beleg
Fred
8
Ginny
Harry
Abbildung 12: Prinzipieller Ablauf beim Potato-System
Harry erhält nun die mit Ginny’s Beleg versehene Datei (7) und entschließt sich, es
Ginny gleich zu tun und den Song zu kaufen (8). Von dem von Harry bezahlten
Betrag erhält nun Ginny einen Teil auf ihrem Account bei Bill gutgeschrieben (9), den
Rest bekommt Fred (10). Harry erhält wiederum einen elektronischen Beleg für
seinen Kauf, der mit der Datei verknüpft wird (11).
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 34
3.2.3. Erweiterung um eine Virtuelle Community
Wie bereits beschrieben, erfolgt die Verteilung der Dateien primär unabhängig vom
Potato-System. Dies bedeutet, dass das PS über kein eigenes technisches P2PNetzwerk verfügt. Vielmehr ergibt sich aus der Struktur des Vertriebes mit dem AS
als zentrale Instanz ein „logisches“ P2P Netzwerk aus den Nutzern des PS. Bei
diesem Netzwerk sind die Nutzer die Knoten. Die Verbindungen zwischen den
Knoten entstehen durch ihre Kauf-/Verkaufsbeziehungen. Im Allgemeinen können
Verbindungen durch alle möglichen Beziehungen zwischen Personen repräsentiert
werden. Mit solchen logischen P2P Netzwerken beschäftigen sich aktuelle
Forschungen. So versuchen Soziologen derzeit die gesamte Menschheit als Modell
für den Nachrichtenfluss in einem P2P Netzwerk zu benutzen [13]. Dieses Projekt
basiert teilweise auf Forschungsergebnissen aus den sechziger Jahren [14]. Damals
wurde ermittelt, dass Botschaften an wildfremde Empfänger über durchschnittlich
sechs Stationen des „menschlichen Netzwerkes“ ihr Ziel erreichen. Während das
Experiment in den sechziger Jahren auf das Gebiet der USA begrenzt war, wird das
aktuelle Projekt global durchgeführt. Die Forscher erhoffen sich unter Anderem die
gewonnenen Erkenntnisse auch auf technische Netzwerke übertragen zu können.
Mögliche Anwendungen wären die Vorhersage von Netzauslastungen oder die
Verbesserung von Suchstrategien in Netzen.
Eine Form von logischen Netzen sind somit auch virtuelle Communities. Unter
Community, oder auf deutsch Gemeinschaft, versteht man eine Gruppe von
Personen mit gemeinsamen Interessen und Bedürfnissen [12]. Gemeinschaften
bilden sich vielfach in der realen Welt; zum Beispiel gibt es unzählige Vereine oder
denke man einfach an eine Stammtischrunde. Auch in realen Multi-Level-MarktingNetzen bilden sich solche Interessengemeinschaften. Deren Mitglieder treffen sich
bei Informations- und Verkaufsveranstaltungen um zum Beispiel Erfahrungen mit
Produkten auszutauschen oder diese auszuprobieren.
Bei einer virtuellen Community wird das reale Treffen durch die Interaktion und
Kommunikation über Onlinedienste (in der Regel dem Internet) ersetzt. Zur
technischen
Realisierung
der
Kommunikation
werden
Hilfsmittel
wie
Diskussionsforen, Chaträume, Newsletter, Mailinglisten und Email benutzt.
Wie in der realen dreht sich auch in der virtuellen Welt viel um die Anerkennung
innerhalb einer Gruppe. Dies ist zum Beispiel in Diskussionsforen zu beobachten.
Inv-Nr. 2002-09-04/040/IN95/2231
3. Lösungsansätze für das Potato-System
Seite 35
Nutzer, die einen besonders hohen Kenntnisstand durch entsprechende Beiträge
nachgewiesen haben, genießen innerhalb des Forums weitaus mehr dieser
Anerkennung als so genannte Newbies (Neulinge). Diese wiederum versuchen ihren
Kenntnisstand auszubauen, um ihn dann im Forum präsentieren zu können. Durch
diesen stetigen Zuwachs an Know How gewinnt das Forum an „Wert“, wird
interessanter und gewinnt an Popularität. In anderen Communities dreht sich alles
um erreichte Punktzahlen bei Computerspielen oder um seltene Sammlerstücke.
Dieser Vorgang wird oft als Community Effekt bezeichnet. Betrachtet man die
Gemeinschaft wiederum als Netz, so stellt er eine Form des oben bereits
beschriebenen Netzwerkeffektes dar.
Ein wesentlicher Beitrag zum Wachstum solcher Communities stellt die persönliche
Weiterempfehlung dar. Egal worin das gemeinsame Interesse der Mitglieder solcher
Gemeinschaften besteht, ob Wissensgebiet, Kultur oder gar eine Diät, es wird von
ihnen
an
Freunde,
Verwandte
und
Bekannte
weiterempfohlen.
Diese
Weiterempfehlungen sind weitaus glaubwürdiger als anderweitige Werbung, da sie
meist an Personen erfolgen, zu denen bereits eine Beziehung besteht. Diese
Beziehung kann wiederum die Zugehörigkeit zu einer anderen Gemeinschaft sein.
Für den Aufbau einer virtuellen Community zur Potato-Thematik wäre ein
Diskussionsforum gut geeignet. Anbieter sowie Konsumenten könnten sich dort
treffen und sich über die angebotenen virtuellen Waren austauschen. So könnte
beispielsweise ein Softwareentwickler auf sein neuestes Programm aufmerksam
machen. Nutzer die dieses dann verwenden können dann sehr einfach ihre Meinung
dazu abgeben sowie Vorschläge zu Änderungen am Programm machen. Der
Entwickler wiederum erhält somit ein gutes Feedback und kann gegebenenfalls
Anpassungen vornehmen. Dank eines Forums könnten sich gute, neue aber noch
unbekannte Waren schnell verbreiten und so an Popularität gewinnen, dass sie auch
außerhalb der Gemeinschaft gefragt sind.
Zur Förderung von Kontakten zwischen den Nutzern könnte noch ein weiterer
Service zur Verfügung gestellt werden. Nachdem ein Nutzer eine Datei gekauft hat
könnte er vom System eine Liste von Nutzern erhalten, die ebenfalls diese Datei
gekauft, also ein ähnliches Interessengebiet haben. In einem weiteren Schritt wäre
dann noch denkbar ihm Dateien anzubieten, die von diesen Nutzern ebenfalls
gekauft wurden und somit für ihn interessant sein könnten.
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 36
4. Konzeption
Um die in ihrer prinzipiellen Funktion beschriebene Serverkomponente des PotatoSystems, den Accounting-Server, zu realisieren muss zunächst ein Konzept erstellt
werden. Ziel ist ein objektorientiertes Konzept, welches die gesetzten Anforderungen
erfüllt und weitestgehend unabhängig von einer nachfolgenden Implementierung ist.
Objektorientiert heißt, dass versucht wird die Dinge der realen Welt auf SoftwareObjekte abzubilden. Dabei wird so abstrahiert, dass nur die im Kontext relevanten
Eigenschaften und Funktionen berücksichtigt werden. Um zu einem solchen Konzept
zu gelangen, wird eine objektorientierte Analyse der Anforderungen durchgeführt.
Aus den Ergebnissen kann man dann ein entsprechendes Design durchführen. Als
Instrument dienen Elemente der Unified Modeling Language (UML), einer Sprache
bzw. Notation zur Spezifikation, Konstruktion, Visualisierung und Dokumentation von
Modellen für Softwaresysteme.
Analyse und Design erfolgen in Anlehnung an Bernd Oestereichs Buch
„Objektorientierte Softwareentwicklung – Analyse und Design mit der Unified
Modeling Language“ (Quelle [7]). Alle Vorgänge und Begriffe, die ich in diesem
Zusammenhang verwende, werden in dieser Quelle ausführlich erläutert.
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 37
4.1. Anwendungsfallanalyse
Analyse und Design werden anwendungsfallgetrieben durchgeführt.. Das heißt, dass
zur Erschließung der Anforderungen Anwendungsfälle eingesetzt werden. Sie
beschreiben die grundsätzlichen Abläufe in einem System aus Sicht der Akteure.
Akteure und deren Anwendungsfälle müssen systematisch erarbeitet werden und
bilden die Grundlage für das weitere Vorgehen [7].
4.1.1. Akteure
Akteure sind Klassen, die außerhalb des Systems liegen und an der in einem
Anwendungsfall beschriebenen Interaktion mit dem System beteiligt sind. Akteure
nehmen dabei in der Interaktion gewöhnlich eine definierte Rolle ein.
Akteure sind beispielsweise Anwender eines Systems. Dabei werden jedoch nicht
die beteiligten Personen unterschieden, sondern ihre Rollen die sie einnehmen. Eine
Person kann somit in mehreren Rollen auftreten. Entsprechend werden dann
mehrere Akteure eingeführt. Akteure sind stereotypisierte Klasse und werden als
textueller, visueller oder gemischter Stereotyp dargestellt [7].
Die Akteure, die mit dem System interagieren, ergeben sich aus den oben
eingeführten Personen. Die entsprechenden Stereotype werden beibehalten. Für die
Betrachtung der Anwendungsfälle sind die Folgenden von Interesse:
•
Provider (Fred)
•
Konsument (Draco)
•
Käufer (Harry)
•
Wiederverkäufer (Ginny)
•
AS Betreiber (Bill)
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 38
4.1.2. Anwendungsfall: Als Provider registrieren
Tabelle 1: Anwendungsfall: Als Provider registrieren
Als Provider registrieren
Die Registrierung eines Anbieters von virtuellen Waren
wird vorgenommen.
Fred, Bill
Zweck
Akteure
Ereignis
Vorbedingung
Relevante Eingabedaten
Ausnahmen
Ergebnis
Szenario
Fred will sich als Anbieter von virtuellen Waren beim PS
registrieren, um über das System seine Waren
vermarkten zu können.
Login/Passwort, Benutzerdaten, Signatur
Login bereits vergeben, unzureichende Benutzerdaten
Fred ist als gültiger Anbieter von virtuellem Content im
System registriert und besitzt einen Account bei Bill..
1. Fred möchte seine virtuellen Waren über das PS
vertreiben.
2. Fred gibt seine Benutzerdaten an und erhält nach
Überprüfung der Daten sein erwünschtes Login von
Bill.
3. Für Fred wird im System von Bill ein Datensatz und
ein Account eingerichtet.
Dieser Anwendungsfall stellt weitestgehend eine gewöhnliche Nutzerregistrierung
dar. Es gibt jedoch zwei Besonderheiten, die hierbei zu beachten sind. Zum einen
muss Fred bei Bill Daten hinterlassen, die ihn eindeutig als Person Fred identifizieren
können. Dies könnte notwendig sein, wenn Fred beispielsweise Urheberrechte
verletzt hat und Bill rechtliche Schritte dagegen einleiten will. Eine Möglichkeit wäre
die Feststellung der Identität über eine Prüfung der Adressdaten. Bei diesem
Vorgehen würde Bill an die von Fred angegebene Adresse auf dem Postweg einen
Code senden, den Fred wiederum benötigt, um seinen Nutzeraccount bei Bill zu
aktivieren. In diesem Fall liegt der Aufwand auf Bills Seite, was natürlich im Interesse
von Fred wäre.
Eine
weitere
Möglichkeit
zur
eindeutigen
Identifizierung
wären
zertifizierte
Signaturen. Diese werden von unabhängigen Instanzen, Zertifizierungsstellen
genannt, vergeben. Wenn der Nutzer von einer solchen Instanz ein Zertifikat für
seine digitale Signatur haben möchte, muss er sich der Zertifizierungsstelle
gegenüber beispielsweise durch einen Personalausweis identifizieren. Dabei ist
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 39
jedoch zu beachten, dass es in vielen Ländern noch keine Gesetzgebung zum
Thema digitale Signaturen gibt. Dies bedeutet, dass in verschiedenen Ländern
Zertifikate unter verschiedenen Richtlinien vergeben werden. Was ist ein Zertifikat im
Fall der Anwendung beim PS wert, wenn es unter Angabe der Email Adresse
vergeben wurde? Des Weiteren ist zu bedenken, dass für den Fall, dass Fred noch
kein Zertifikat hat, auf ihn ein zusätzlicher Aufwand zukommt. Dies liegt jedoch nicht
in seinem Interesse und ist damit schlecht für die Nutzerakzeptanz des PotatoSystems.
Ein weiterer Punkt, der bei der Registrierung von Providern zu behandeln ist, betrifft
die Vergabe von Nutzernummern. Die Betrachtung dieses Problems betrifft jedoch
auch die Registrierung von Käufern und soll in einem späteren Abschnitt behandelt
werden.
4.1.3. Anwendungsfall: Datei anmelden
Tabelle 2: Anwendungsfall: Datei anmelden
Datei anmelden
Zweck
Akteure
Ereignis
Vorbedingung
Relevante Eingabedaten
Ausnahmen
Ergebnis
Szenario
Eine Datei, die eine virtuelle Ware beinhaltet, wird im
System zu Vermarktung angemeldet.
Fred, Bill
Fred will eine virtuelle Ware über das PS vertreiben.
Fred muss beim PS als solcher registriert sein.
Fred muss tatsächlich im Besitz der Rechte an der
angebotenen Ware sein.
Informationen zum Inhalt der Datei, Größe der Datei,
erwünschtes Preismodell für den Vertrieb der Datei,
Hash, semantischer Fingerprint
Im System existiert ein Datensatz zu einer Datei, dessen
Zugehörigkeit zu dieser eindeutig ist. Die Datei selbst
wird mit Informationen zum Eigentümer versehen.
1. Fred übermittelt die Informationen über die
einzustellende Datei an Bill.
1. Bill legt einen entsprechenden Datensatz zur Datei
auf dem AS an.
2. Bill schickt einen elektronischen Registrierungsbeleg
zurück an Fred.
3. Fred fügt diese elektronische Quittung an die
registrierte Datei an.
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 40
Um eine virtuelle Ware bei Bill anmelden zu können, muss Fred bereits bei ihm als
Provider angemeldet sein. Die wichtigste Vorraussetzung für das Anmelden einer
Datei ist jedoch, dass Fred tatsächlich in Besitz der Rechte an der virtuellen Ware,
welche die Datei beinhaltet, ist. Wenn dies der Fall ist, kann die Registrierung der
Datei bei Bill vorgenommen werden. Da die eigentliche Verbreitung der Datei
unabhängig vom PS erfolgen kann, muss gewährleistet werden, dass sie anhand der
bei Bill gespeicherten Daten eindeutig identifizierbar ist. Die Notwendigkeit dafür soll
im folgenden Szenario veranschaulicht werden: nehmen wir an, Fred registriert die
Datei
MySong.mp3
bei
Bill,
verknüpft
sie
mit
dem
von
ihm
erhaltenen
Registrierungsbeleg und bietet sie auf seiner Homepage zum Download an. Weiter
angenommen geht bei der Verbreitung der Datei im Internet die Zuordnung des
Belegs zur Datei verloren, und der Beleg wird auf nicht näher betrachtete Weise mit
einer anderen Datei, die vielleicht den gleichen Namen hat, verknüpft. Wenn nun
Ginny die Datei und den Beleg erhält und es kaufen will, so erhält Fred den Kaufpreis
für eine Datei, an welcher er keine Rechte besitzt. Um dies zu verhindern, sollte von
Bill stets geprüft werden, ob die Datei, welche gekauft werden soll, auch die richtige
ist.
Da Merkmale wie Dateigröße, Medientyp u.ä. nur unzureichende Sicherheit bei der
Identifikation von Multimedia in digitaler Form bieten, sollten von Dateien
semantische Fingerprints erzeugt und bei Bill hinterlegt werden, anhand derer man
die Dateien eindeutig identifizieren kann. Für Musik entwickelt die Fraunhofer
Arbeitsgruppe für Elektronische Medientechnologie (AEMT) in Ilmenau ein Verfahren
zur Ermittlung einer „AudioID“. Dieses ermöglicht das Erkennen eines Musikstückes
anhand weniger Sekunden des Signals [9].
Des Weiteren ist auch bei der Registrierung von Dateien die Vergabe von
Transaktionsnummern zu betrachten. Dies erfolgt in einem der folgenden Kapitel.
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 41
4.1.4. Anwendungsfall: Als Käufer registrieren
Tabelle 3: Anwendungsfall: Als Käufer registrieren
Als Käufer registrieren
Die Registrierung eines Käufers von virtuellen Waren
wird vorgenommen.
Harry, Bill
Zweck
Akteure
Ereignis
Harry will sich als Käufer beim PS registrieren, um
virtuelle Waren erwerben zu können.
Vorbedingung
Relevante Eingabedaten
Ausnahmen
Ergebnis
Szenario
Auch
dieser
Login/Passwort, Benutzerdaten
Login bereits vergeben, unzureichende Benutzerdaten
Harry ist als gültiger Käufer virtueller Waren beim
System registriert und besitzt einen Account bei Bill.
1. Harry möchte virtuelle Waren über das PS
weiterverteilen.
2. Harry gibt seine Benutzerdaten an und erhält dafür
sein erwünschtes Login von Bill.
3. Für Harry wird im System von Bill ein Datensatz und
einen Account eingerichtet.
Anwendungsfall
stellt
weitestgehend
eine
gewöhnliche
Nutzerregistrierung dar. Im Gegensatz zur Providerregistrierung muss Harry weniger
umfangreiche Angaben machen. Es genügen der Benutzername sowie die Email
Adresse. Eine eindeutige Identifizierung von Harry ist nicht nötig, da er keinen neuen
Content
zur
Verfügung
stellt,
sondern
nur
bereits
registrierten
Content
weiterverbreitet. Durch die oben bereits angesprochene eindeutige Identifikation der
eingestellten Dateien sollte es Harry somit nicht möglich sein, absichtlich oder
unabsichtlich Urheberrechte zu verletzen.
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 42
4.1.5. Anwendungsfall: Datei kaufen
Tabelle 4: Anwendungsfall: Datei kaufen
Datei kaufen
Zweck
Akteure
Ereignis
Vorbedingung
Relevante Eingabedaten
Ausnahmen
Ergebnis
Szenario
Erwerb der Provisionsberechtigung bei der
Weiterverteilung der Datei
Ginny, Fred, Bill, Harry
Harry kauft eine virtuelle Ware, die von Fred als Datei bei
Bill registriert ist.
Harry muss als Käufer bei Bill registriert sein.
Harry muss einen zur Datei gehörigen Beleg vorlegen.
Beleg, Quittung, Hash
Datei ist keine gültige „Potato-Datei“
Harry ist im Besitz einer elektronischen Quittung für den
Kauf des Produktes.
1. Harry sendet die Transaktionsnummer für die Datei
zu Bill.
2. Harry erhält von Bill alle relevanten Daten über das
zu kaufende Produkt.
3. Harry sendet eine Kaufanfrage an Bill und bezahlt die
Ware.
4. Bill legt für die Transaktion einen eindeutig
zuweisbaren Datensatz auf dem AS an und schickt
eine entsprechende Quittung an Harry zurück.
5. Harry hängt die Quittung an die Datei an.
6. Bill schreibt die Provision als Umsatz auf Ginnys
Konto gut.
7. Bill schreibt den Kaufbetrag abzüglich der Provision
und seiner Gebühren als Umsatz auf Freds Konto
gut.
Beim Kaufen einer Datei müssen aus Sicht der beteiligten Akteure verschiedene
Vorgänge berücksichtigt werden. Aus Sicht des Käufers (Harry) wäre da zunächst
die Prüfung der Daten über die zu kaufende Datei. Wie oben bereits beschrieben
sollte durch Bill hier eine Identifizierung der Datei erfolgen und Harry mit allen
notwendigen Informationen versorgt werden. Dazu könnten unter anderem der Preis,
der Name des Anbieters sowie die umsatzstatistische Informationen der Datei
zählen. Zentraler Punkt von Harrys Interesse ist natürlich der Erhalt des Kaufbelegs,
der ihn unter anderem die Berechtigung auf Provisionen für den weiteren Vertrieb
sichert.
Aus Sicht von Bill ist vor allem der korrekte Ablauf des Kaufes von Bedeutung, wozu
natürlich auch der Bezahlvorgang gehört. Die Bezahlung der Datei ermöglicht Bill
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 43
dazu den entsprechenden Betrag auf Freds Konto, sowie die Provisionen auf die
Konten der provisionsberechtigten Wiederverkäufer (Ginny) gutzuschreiben. Ginny
und Fred haben bei diesem Anwendungsfall eine passive Rolle.
4.2. Anwendungsarchitektur
Unter Anwendungsarchitektur ist hier die innere Strukturierung der AnwendungsKomponenten und Subsysteme zu verstehen. Dabei ist eine der wichtigsten
Anforderungen heutiger Architekturen die Entkopplung der Präsentationsschicht vom
eigentlichen Geschäftsmodell, sowie von der Workflowsteuerung. Aus diesem Grund
hat sich als Standard Architekturprinzip das Model-View-Controller Entwurfsmuster
(MVC) etabliert. Der Grundgedanke von MVC ist die Trennung fachlicher Semantik
von ihrer Präsentation. MVC gliedert Anwendungen in drei Teile:
•
Model (Modell)
Unter Model versteht man die Komponente, die den fachlich-funktionalen
Kern der Anwendung sowie die Daten enthält. Model-Klassen werden
daher auch Fachklassen genannt.
•
View (Ansicht)
Die View ist die Komponente, die die Daten des Models zur Darstellung
bringt.
•
Controller (Kontrollkomponente)
Der Controller steuert die Interaktion des Benutzers mit der Anwendung.
Die drei Teile Model, View und Controller sind nicht separat funktionsfähig, sondern
müssen sich gegenseitig unterstützen (siehe Abbildung 13). Dabei muss jedoch
darauf geachtet werden, dass das Model weitgehend unabhängig von den anderen
Komponenten bleibt [10].
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 44
View
Controller
Model
Abbildung 13: Entwurfsmuster Model-View-Controller
In Anlehnung an MVC bilden die im Folgenden beschriebenen Bestandteile die
Architektur des PS (siehe Abbildung 14). Diese sind als Schichten der Architektur zu
verstehen und finden sich in allen Komponenten der Anwendung wieder.
Dialoge
Die Dialoge bilden die Schnittstelle der Anwendung zu ihren Benutzern. Sie sind für
die Präsentation von Daten und Informationen zuständig und nehmen Eingaben
entgegen. Dialoge sorgen für eine angemessene Darstellung und Formatierung von
Informationen aber bearbeiten oder verändern jedoch die Daten inhaltlich nicht.
Ebenso werden Benutzereingaben nur formal, nicht aber inhaltlich verarbeitet. Nach
MVC-Muster entsprechen die Dialoge der View.
Interaktionssteuerung
Die Klassen dieser Schicht empfangen die Ereignisse, die von den Dialogen
kommen.
Die
Interaktionssteuerung
verarbeitet
die
eingegebenen
oder
darzustellenden Informationen inhaltlich nur in möglichst geringem Maße. Eventuelle
Bearbeitungen
sollten
nur
dazu
dienen,
Zustände
zu
erkennen,
um
die
Bearbeitungssituation zu steuern. Die Hauptaufgabe der Interaktionssteuerung ist die
Kommunikation zwischen den Dialogen und dem funktionalen Kern. Sie ist somit für
den technischen und formalen Ablauf zuständig und entspricht somit dem Controller
des MVC-Musters.
Vorgangssteuerung
Die Vorgangssteuerung gehört nach dem MVC Muster zum Model. Sie initiiert,
überwacht und steuert die Abarbeitung eines fachlichen Ablaufes. Dies könnte zum
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 45
Beispiel die Aufgabe „Neue Transaktion erstellen“ sein. Die Vorgangssteuerung
würde in diesem Fall ein neues Transaktionsobjekt erzeugen und mit eventuell
eingegebenen Daten füllen. Vorgangssteuerungen innerhalb von Komponenten
werden auch als Mikrovorgangssteuerung bezeichnet.
Business- und Fachklassen
Diese Klassen repräsentieren die fachliche Sicht auf die Anwendung und gehören
nach MVC ebenfalls dem Model an. Sie beinhalten und kapseln die Attribute und
Operationen der fachlichen Anwendungswelt. Die Fachobjekte spiegeln die
fachlichen Zusammenhänge wieder und sorgen für ihre eigene innere Konsistenz
und ihren Beziehungen untereinander. Fachobjekte wissen jedoch nichts über die
Darstellung ihrer Daten, bzw. darüber, in welchem Verarbeitungskontext sie sich
befinden.
Eine
Businessklasse
ist
eine
Zusammenfassung
von
mehreren
Fachklassen, um diesen eine gemeinsame Schnittstelle zu geben.
Dialoge
Interaktionssteuerung
Vorgangssteuerung
Businessklassen
Modell
Abbildung 14: Anwendungsarchitektur des Potato-Systems
4.3. Businessklassen identifizieren
Stark abstrahiert beschäftigt sich das PS mit Transaktionen, die von den Nutzern des
Systems ausgeführt werden. Diese Transaktionen drehen sich um virtuelle Waren,
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 46
die in Form von Dateien vorliegen. Wobei für das PS nicht die Datei selbst, sondern
nur
bestimmte
Informationen
über
die
Datei
interessant
sind.
Die
drei
Geschäftsklassen des Systems sind:
•
Transaction
•
User
•
File
Diese drei Geschäftsklassen bilden zusammen mit der jeweils zugehörigen
Mikrovorgangssteuerung die drei grundlegenden Komponenten des Systems.
Abbildung 15 zeigt die drei Geschäftsklassen und ihre Beziehungen zueinander.
führt aus
User
1
für
Transaction
*
*
File
1
Abbildung 15: Die Geschäftsklassen repräsentieren das System mit sehr geringem
Detailierungsgrad
4.4. Fachklassenmodellierung
User
Aus den Anwendungsfällen (siehe 4.1) geht hervor, dass ein Nutzer des PS in
mehreren Rollen auftreten kann. Diese Rollen wurden durch die Akteure mit den
Stereotypen Fred, Harry und Ginny verdeutlicht. Aktive Rollen, sprich Akteure, die in
Interaktion mit dem System treten, sind davon Fred und Harry, also Provider und
Käufer von virtuellen Waren.
Um die Fachklassen der Geschäftsklasse User zu modellieren, werden diese
zunächst identifiziert. Dazu werden alle in den Anwendungsfällen verwendeten
Begriffe als Klassen angenommen und aufgelistet:
•
Nutzer (User)
•
Anbieter virtueller Ware (Provider)
•
Käufer (Buyer)
•
Benutzerdaten (Profile)
•
Konto (Account)
•
Umsatz (Turnover)
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 47
Nun steht als nächster Schritt die Identifizierung der Beziehungen unter den
gefundenen Klassen an. Abbildung 16 soll diese zeigen.
1
1
User
Account
Provider
1
1
Buyer
*
1
Turnover
Profile
Abbildung 16: Klassenbeziehungen im Bereich User
In dieser Struktur ist die Klasse User als Generalisierung [7] der Klassen Buyer und
Provider modelliert. Bei näherer Betrachtung fällt jedoch auf, dass ein Nutzer nicht
nur eine der beiden Rollen einnehmen kann, sondern durchaus ein Provider auch
Dateien kaufen kann und damit die Rolle eines Käufers einnimmt. In der gezeigten
Struktur ist dieser Fall jedoch nicht realisierbar. Abbildung 17 zeigt eine erweiterte
Struktur, die das Rollenprinzip besser umsetzt.
1
1
nimmt ein
User
Account
Role
1
1
1
*
1
Turnover
Profile
1..*
Buyer
Provider
Abbildung 17: Verbesserte Klassenstruktur mit Rollen
Diese Struktur ermöglicht einem Nutzer mehrere Rollen, mindestens aber eine,
gleichzeitig einzunehmen. Dies wird durch die 1-zu-1..* Komposition ausgedrückt.
Die Klasse Role ist eine Generalisierung der Klassen Buyer und Provider. Diese
Struktur ermöglicht im Bedarfsfall auch eine einfachere Erweiterung des Systems für
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 48
weitere Rollen. Weiterhin drückt dieses Klassendiagramm aus, dass jeder Nutzer ein
Nutzerprofil hat und mit einem Konto zu assoziieren ist. Jedes Konto kann wiederum
mehrere Umsätze haben.
Transaction
Für die Modellierung der Fachklassen der Transaction Businessklasse sind die
Anwendungsfälle Datei anmelden (siehe: 4.1.3) und Datei kaufen (siehe 4.1.5) von
Interesse. Es ergeben sich folgende Begriffe und entsprechende Klassen:
•
Transaktion (Transaction)
•
Transaktionstyp (TransactionType)
•
Kauf (Buying)
•
Dateiregistrierung (FileRegistration)
•
Bewertung (Review)
Die Beziehungen stellen sich folgendermaßen dar: Jede Transaktion hat einen
Transaktionstyp. Dabei handelt es sich um eine Dateiregistrierung oder den Kauf
einer Datei. Des Weiteren ist mit jeder Transaktion eine Bewertung zu assoziieren.
File
Für die Businessklasse File ergeben sich lediglich zwei Fachklassen:
•
Datei (File)
•
Preismodell (PriceModel)
Jede Datei hat ein zugehöriges Preismodell, welches Informationen über den Preis
selbst und zur Berechnung der Provisionen enthält.
4.5. Komponentenabgrenzung
Komponenten dienen der Gruppierung und Gliederung einzelner Elemente. Sie
definieren also Grenzen und können über Schnittstellen verfügen [7].
Solche Elemente sind in diesem Fall Klassen. Komponenten dienen hier zur
Gruppierung fachlich zusammenhängender Klassen.
Bei der Integration der drei Teilstrukturen, die sich aus der Fachklassenmodellierung
ergeben haben, ergibt sich die Gesamtstruktur aller Fachklassen des Systems.
Abbildung 18 zeigt die vollständige Struktur mit Abgrenzung der Komponenten.
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 49
File
PriceModel
1
1
1
0..1
1
Buying
*
Transaction
1
FileRegistration
Review
*
1
nimmt ein
Turnover
*
1
User
*
Role
1
1
1..*
1
1
Account
1
Profile
Provider
Buyer
Abbildung 18: Klassendiagramm für das Potato-System
Die drei Komponenten ergeben sich aus den Businessklassen. Während diese
jedoch eine abstrahierte Sicht auf das System bieten, dienen die Komponenten der
physischen Gruppierung von zu implementierenden Klassen. Die drei Komponenten
sind:
•
Nutzerkomponente
•
Transaktionskomponente
•
Dateikomponente
Die Schnittstellen zwischen den Komponenten stellen sich recht einfach dar. Jeder
Benutzer kann mehrere Transaktionen haben. Und auch jeder Datei können
mehrere, mindestens aber eine, Transaktionen zugewiesen sein. Des Weiteren ist
jeder Kontoumsatz (Turnover) mit einer Transaktion zu assoziieren.
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 50
Die Klassenstruktur ist die Basis für das Design der Datenbank, in der die
persistenten Objekte gespeichert werden. Das aus der statischen Struktur
resultierende Datenbankschema ist in Anhang A zu sehen.
4.6. Aktivitäten modellieren
Die Aktivitäten, die innerhalb der gefundenen Anwendungsfälle ausgeführt werden,
beschreiben
die
Funktionalitäten
der
Vorgangssteuerung
und
der
Mikrovorgangssteuerungen innerhalb der Komponenten. Um diese zu entwerfen,
müssen die ablaufenden Aktivitäten identifiziert und modelliert werden. Die
abgeleiteten
Aktivitätsdiagramme
stellen
eine
weitere
Konkretisierung
der
Anwendungsfälle dar. Außerdem werden in diesem Schritt die Möglichkeiten
gestaltet, wie das System die Anforderungen erfüllen soll. Als Beispiel für das
Vorgehen werden im Folgenden die Aktivitäten für den Anwendungsfall Datei kaufen
(siehe: 4.1.5) modelliert. Aus der Beschreibung der Vorgänge resultiert das
Aktivitätsdiagramm in Abbildung 19.
[Fehler]
[File nicht gefunden]
TransaktionsNr aufnehmen
Fileinfo suchen und prüfen
[OK]
Neue Transaktion anlegen
Zahlung annehmen
Kaufbetrag gutschreiben
Quittung senden
[OK]
Nutzer identifizieren
Nutzerdaten prüfen
Provisionen gutschreiben
[Nutzer unbekannt]
Als Käufer Registrieren
Abbildung 19: Aktivitätsdiagramm für den Vorgang Datei kaufen
Von einem Startpunkt aus werden zunächst zwei Vorgänge parallel durchgeführt.
Einerseits werden zu der eingegebenen Nummer die entsprechenden Informationen
gesucht. Wird kein passender Eintrag gefunden, führt dies zu einem Endpunkt. Die
Aktivität wird ohne Erfolg abgebrochen. Zum Anderen wird geprüft, ob es sich um
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 51
einen registrierten Nutzer handelt, der berechtigt ist, eine Datei zu kaufen. Ist dies
nicht der Fall, so kann sich der Nutzer in einem weiteren Schritt als solcher
registrieren.
Sind beide Bedingungen erfüllt, kann der Nutzer die Bezahlung durchführen. Ist die
Bezahlung erfolgreich durchgeführt, werden parallel eine neue Transaktion für den
Kauf angelegt und die Provisionen sowie der Kaufbetrag gutgeschrieben. Als letztes
wird nun noch die Quittung an den Käufer gesendet.
Aus dem Aktivitätsdiagramm kann man nun für die Vorgangssteuerungen der
beteiligten
Komponenten
die
benötigten
Methoden
ableiten
[7].
Für
die
Nutzerkomponente sind dies die Folgenden:
•
getUserByLogin
Diese Methode sucht nach einem Nutzer mit dem eingegebenen Login
und Passwort. Weiterhin überprüft sie die Daten des Nutzers
dahingehend, ob dieser die Berechtigung hat, den gewünschten Kauf zu
tätigen.
•
createNewUser
Ist ein Benutzer noch nicht registriert, kann er durch diese Funktionalität
im System als solcher registriert werden.
Entsprechend ergibt sich für die Dateikomponente folgende Methode:
•
getFileInfoByNumber
Die Methode sucht Informationen über ein File anhand der vom Benutzer
eingegebenen Nummer.
Für die Transaktionskomponente ergeben sich weitere vier Methoden:
•
checkPayment
Diese Methode dient zur Überprüfung des Zahlungsvorganges.
•
createNewTransaction
Sie legt ein neues Transaction-Objekt an und speichert es in der
Datenbank.
•
doAccountingForTransaction
Diese Methode dient zur Buchung der Kontoumsätze die durch den Kauf
anfallen.
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 52
4.7. Dialoge identifizieren
Aus den Anwendungsfällen und den modellierten Aktivitäten ergeben sich die
benötigten Dialoge, über die der Nutzer mit dem System interagiert. Tabelle 5 zeigt
die Dialoge, die für jeden Anwendungsfall benötigt werden.
Tabelle 5: Für das System benötigte Dialoge
Anwendungsfall
Dialog
Zweck
Als Provider
newProv
• Eingabedialog für die Daten, die
der Provider zur Registrierung
registrieren
angeben muss
• enthält formelle Überprüfung der
Eingabewerte
newProvConfirm
• bestätigt dem Nutzer die
Registrierung
Als Käufer registrieren
newBuyer
• Eingabedialog für die Daten, die
der Käufer zur Registrierung
angeben muss
• enthält formelle Überprüfung der
Eingabewerte
newBuyerConfirm
• bestätigt dem Nutzer die
Registrierung
Datei anmelden
login
• Dialog zur Authentifizierung des
Nutzers
registerFile
• Eingabedialog zum Auswählen und
Beschreiben der anzumeldenden
Datei(en)
transactionConfirm
• Dialog zur Bestätigung der
Anmeldung
• enthält Verweis auf Beleg ()
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 53
Anwendungsfall
Dialog
Zweck
Datei kaufen
login
• Dialog zur Authentifizierung des
Nutzers
buyFile
• Dialog zur Eingabe/auswahl der zu
kaufenden Datei(en)
showBasket
• zeigt die Dateien, die gekauft
werden sollen, in einer Liste
• zeigt den Gesamtpreis
• von diesem Dialog aus gelangt der
Käufer zur Bezahlung
transactionConfirm
• Dialog zur Bestätigung der
Transaktionen
• enthält Verweis auf Quittungen für
die gekauften Dateien
(Transaktionsnummern)
4.8. Transaktionsnummern
Ein wesentlicher Bestandteil des Potato-Konzeptes sind die Transaktionsnummern.
Eine Transaktionsnummer ist der Verweis auf den elektronischen Beleg für den Kauf
oder die Registrierung einer Datei beim PS. Der eigentliche Beleg ist als Datensatz
auf dem AS gespeichert. Er ist durch die Transaktionsnummer eindeutig
identifizierbar und enthält alle Details der Transaktion. Das gesamte funktionale
Prinzip des Potato-Systems basiert auf diesen Nummern.
Eine Transaktionsnummer besteht aus drei Teilen: Der erste Teil ist ein Präfix, der
die Nummer als Potato-Nummer identifiziert. Der zweite Teil ist die Benutzernummer
des Nutzers, der die Transaktion ausgeführt hat. Der letzte Teil ist eine Nummer, die
die Transaktion in Abhängigkeit vom Nutzer eindeutig identifiziert. Die Eindeutigkeit
der gesamten Transaktionsnummer ergibt sich somit aus der Kombination der
Nutzernummer und der nutzerspezifischen Transaktionsnummer. Diese beiden Teile
enthalten ausschließlich numerische Zeichen. Hier drei Beispiele von Nummern:
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 54
Tabelle 6: Beispiele für Transaktionsnummern mit ihren Bestandteilen
Transaktionsnummer
Präfix
Nutzernummer
nutzerspezifische
Transaktionsnummer
4fo512344523
4fo
51234
4523
4fo512343224
4fo
51234
3224
4fo568683224
4fo
56868
3224
Bei
den
ersten
beiden
Nummern
ist
die
Nutzernummer
identisch,
die
nutzerspezifischen Transaktionsnummern müssen damit unterschiedlich sein. Wenn
wie bei den letzten beiden Nummern der nutzerspezifische Teil gleich ist, so muss
die Transaktion von unterschiedlichen Nutzern ausgeführt worden sein, sprich die
Nutzerkennungen sind verschieden.
Eine Transaktionsnummer kann ohne Präfix maximal 16 Stellen haben. Dabei sind
die beiden Bestandteile in ihrer Länge variabel. Die Länge der Benutzernummer
kann zwischen zwei und zehn Stellen variieren, wobei die erste Stelle immer die
Anzahl der restlichen Stellen angibt:
TN =
( [x] [k ..k ] ),
1
x
x ∈ {1..9}, k ∈ {0..9}
Daraus ergeben sich neun Nummernklassen für Benutzernummern. Hier drei davon
mit entsprechenden Beispielen:
Tabelle 7: Nummernklassen für Benutzernummern
Nummernklasse
Schema
Beispiel
1
[1][k1]
17
5
[5][k1k2k3k4k5]
587634
9
[9][k1k2k3k4k5k6k7k8k9]
9873542918
Aus der maximalen Gesamtlänge von 16 Stellen abzüglich der Länge der
Nutzernummer ergibt sich eine mögliche Restlänge für die nutzerspezifische
Transaktionsnummer. Diese ist eine für jeden Nutzer fortlaufende Nummer ohne
Inv-Nr. 2002-09-04/040/IN95/2231
4. Konzeption
Seite 55
führende Nullen. Für die 27. Transaktion des Nutzers mit der Nutzernummer 587634
ergäbe sich somit zum Beispiel die Transaktionsnummer 4fo58763427. Aus der
maximalen Anzahl der Stellen der fortlaufenden Nummer ergibt sich die Zahl der
Transaktionen, die der Nutzer beim PS durchführen kann. Sie berechnet sich wie
folgt:
n = 10 15− x − 1
x ∈ {1..9}
Die Unterteilung der Nutzernummern durch variable Längen erlaubt eine
Klassifizierung der Nutzer. So ist es möglich, Nutzern, die sehr viele Transaktionen
durchführen, eine kurze Benutzernummer anzubieten. Dies wäre zum Beispiel bei
Produktionsgesellschaften sinnvoll, die den Vertrieb für viele Musiker abwickeln.
Nutzer, die nur wenige Transaktionen abwickeln können hingegen eine lange
Nutzernummer erhalten. Die Klassifizierung der Nutzer ergibt sich aus der Annahme,
dass es weitaus mehr Nutzer geben wird, die eher wenige, als solche, die sehr viele
Transaktionen tätigen. Somit steht für durchschnittliche Nutzer eine ausreichende
Menge an Benutzernummern zur Verfügung. Solche mit überdurchschnittlich vielen
Transaktionen
haben
den
Vorteil
einer
anwenderfreundlichen,
kurzen
Benutzernummer und einen großen Vorrat an Transaktionsnummern. Jeder Nutzer
der Klasse 3 könnte so jeweils 1012-1 Transaktionen durchführen.
Die Assoziation zwischen einer Datei und der zugehörigen Transaktion wird
hergestellt, indem die vom PS erstellte Transaktionsnummer in den Dateinamen
eingefügt wird. Dies erfolgt auf dem lokalen Dateisystem des Clients. Die
Transaktionsnummer wird zwischen dem eigentlichen Namen und dem Punkt
eingefügt, auf dem die Dateinamenserweiterung folgt. Sollte ein Dateiname mehrere
Punkte enthalten, so wird die Transaktionsnummer vor dem ersten Punkt eingefügt.
Dies hat den Vorteil, dass die Dateinamenserweiterung erhalten bleiben und die
Dateien so kein neues Dateiformat erhalten. Die Datei MySong.mp3 würde nach dem
Einfügen
der
Nummer
4fo6349234002035
folgendermaßen
heißen:
MySong4fo6349234002035.mp3. Das Einfügen der Nummer in den Dateinamen hat
unter anderem den Vorteil, dass Nutzer in Suchmaschinen oder in Tauschbörsen
nach „Potato-Dateien“ suchen können, indem sie den String 4fo in ihre Suche
einbeziehen. Wird noch eine Nutzernummer der Anfrage hinzugefügt, so kann zum
Beispiel nach Dateien eines bestimmten Nutzers gesucht werden.
Inv-Nr. 2002-09-04/040/IN95/2231
5. Implementierung eines Prototyps
Seite 56
5. Implementierung eines Prototyps
Ein Prototyp ist ein vorläufiges oder temporäres Produkt, mit dem künftige Anwender
ausgewählte Eigenschaften und Funktionen des zu entwickelnden endgültigen
Systems erproben können. Dabei muss der Prototyp nicht alle Funktionen des
endgültigen Produktes anbieten, sollte aber einfach erweiterbar und zu verändern
sein. Prototypen können explorativ sein, d.h. zur Erforschung eines Sachverhaltes
dienen. Sie können experimentell, d.h. zur Überprüfung der Machbarkeit oder
Funktionsfähigkeit dienen, oder evolutionär sein, d.h. vorab ein Teilprodukt
bereitstellen [15].
Für das Potato-System wird ein evolutionärer Prototyp erstellt. Er soll die
konzipierten Funktionen und Eigenschaften zum Test anbieten. Diese könnnen dann
in weiteren Evolutionsschritten nach Bedarf geändert und erweitert werden.
Inv-Nr. 2002-09-04/040/IN95/2231
5. Implementierung eines Prototyps
Seite 57
5.1. Überblick über verwendete Technologien
Die Realisierung des Prototyps erfolgt mit Komponenten der Java 2 Platform,
Enterprise Edition (J2EE) Version 1.4 [17]. Als Implementierung der benötigten
J2EE-Komponenten Java Servlets und JavaServer Pages wird Apache Tomcat
Version 4.0 der Jakarta Projektgruppe [19] verwendet. Zur Speicherung der
persistenten Daten dient ein MySQL Datenbank Server [18]. Der AS residiert auf
einem Linux-Server mit Apache Webserver. Im Folgenden wird ein Überblick über die
verwendeten Technologien geboten. Weiterführende Informationen sind unter [17],
[18] und [19] zu finden.
5.1.1. MySQL Datenbank Server
MySQL ist ein RDBMS (relational database management system) der Firma MySQL
AB. Eine relationale Datenbank (RD) speichert Daten in mehreren Tabellen, anstatt
alles in einem großen Speicherraum zu packen, was zu größerer Geschwindigkeit
und Flexibilität führt. Die Tabellen einer RD sind durch definierte Beziehungen
miteinander verbunden, die Anfragen auf kombinierte Daten unterschiedlicher
Tabellen ermöglichen. MySQL ist ein sehr schneller Open Source Datenbankserver,
der Schnittstellen zu vielen Programmiersprachen besitzt und für verschiedenste
Plattformen existiert.
5.1.2. JavaBeans
JavaBeans ist ein von der Firma Sun Microsystems entwickeltes, auf Java
basierendes Komponentenmodell zur Softwareentwicklung, d.h. eine Architektur für
die Definition und Wiederverwendung von Softwarekomponenten. Einzelne Beans
dienen als Basisbausteine, aus denen man durch Zusammensetzen größere
Softwareteile erstellen kann. Die Verwendung von Komponenten dient der
Modularität und Kapselung von Klassen und trägt außerdem zur besseren
Wiederverwendbarkeit und Überschaubarkeit bei größeren Softwareprojekten bei.
Inv-Nr. 2002-09-04/040/IN95/2231
5. Implementierung eines Prototyps
Seite 58
5.1.3. Java Servlets
Java Servlets sind plattform- und protokollunabhängige, serverseitige Komponenten,
geschrieben in Java, welche auf einem javafähigen Server (z.B. Tomcat) ausgeführt
werden. Sie bilden den Rahmen für nahezu alle Anfrage/Antwort-basierten Dienste.
Ihre ursprüngliche Aufgabe besteht in dem sicheren, webbasierten Zugriff auf Daten,
welche in HTML Form dem Benutzer dargestellt werden. Diese Daten sollten
dynamisch veränderbar sein. Java Servlets sind Java Anwendungen mit einer
speziellen Schnittstelle, dem Java Servlet API. Java Servlets steht somit nahezu das
gesamte JDK zur Verfügung, was sie zu einem sehr mächtigen Werkzeug werden
lässt. Da Servlets ausschließlich Daten transportieren, diese jedoch nie selbst
darstellen, haben sie keine grafische Benutzerschnittstelle [20].
Die Laufzeitumgebung für Servlets wird von einem sogenannten Servlet-Container
zur Verfügung gestellt. Er ist dafür verantwortlich, dass Anfragen an den Server dem
entsprechenden Servlet zugeordnet werden und dieses geladen und ausgeführt wird.
Nach Bearbeitung der Anfrage durch das Servlet wandelt der Container das AntwortObjekt in eine Antwortnachricht für den Client um. Als Servlet Container dient beim
AS Apache Tomcat 4.0 [19]. Tomcat 4.0 implementiert die Version 2.3 der Servlet
Spezifikation.
5.1.4. JavaServer Pages (JSP)
Java Server Pages sind HTML-Seiten, welche spezielle Tags enthalten. Sie
bestehen i.d.R. aus folgenden Komponenten:
•
Statische HTML / XML Komponenten
•
Spezielle JSP Tags
•
Kleine Java Codefragmente, genannt „Scriptlets“
Java Server Pages können mit konventionellen HTML/XML-Tools bearbeitet werden.
Sie werden dann von einem JSP-fähigen Webserver (z.B. durch Tomcat)
interpretiert. Dieser empfängt Anfragen an eine JSP-Seite und generiert eine Antwort
von der JSP-Seite an den Client. Wenn eine JSP-Seite zum ersten Mal aufgerufen
wird, wird sie von der Engine in ein Java Servlet kompiliert und in den Speicher des
Webservers geladen. Dies erhöht die Effizienz bei weiteren Zugriffen auf die Seite.
Die Umgebung für JSP wird ebenfalls durch Tomcat zur Verfügung gestellt.
Inv-Nr. 2002-09-04/040/IN95/2231
5. Implementierung eines Prototyps
Seite 59
http://www.
Webserver
html
JSP Engine
jsp
Browser
Abbildung 20: Funktionsweise eines Webservers mit JSP
5.1.5. Java Applets
Unter einem Java-Applet versteht man eine Java-Anwendung, die aus dem Internet
auf dem eigenen Rechner geladen und im Browser ausgeführt wird. Um dies zu
ermöglichen, werden Referenzen von Applets in HTML-Seiten eingebettet. In einem
Applet stehen fast alle Möglichkeiten von Java zur Verfügung, so dass sich beliebig
komplexe Anwendungen entwickeln lassen. Da Applets aber auf dem Rechner der
Nutzer laufen, sind sie prinzipiell an Sicherheitseinschränkungen gebunden, um dort
keinen Schaden anrichten zu können. Solche Einschränkungen können durch
signierte Applets aufgehoben werden. Mehr zu Applets ist unter [22] zu erfahren.
5.2. Umsetzung der Anwendungsarchitektur
Für die Umsetzung der an MVC orientierten Architektur kommt eine Kombination aus
JSP, Java Servlets und JavaBeans zum Einsatz (siehe Abbildung 21). Der Kern der
Anwendung, das Modell, besteht aus JavaBeans, welche die Fachklassen sowie die
Vorgangssteuerungen innerhalb der Komponenten realisieren. Die Darstellung der
Modelldaten
in
den
Dialogen
erfolgt
mit
JSP
und
Java
Applets.
Die
Interaktionssteuerung (Controller) wird durch ein Java Servlet realisiert. Persistente
Daten werden im MySQL Datenbank Server abgelegt. Der Zugriff auf die Daten
durch die Beans erfolgt über JDBC (Java Database Connectivity). Das ist eine
Schnittstellendefinition
für
die
Kommunikation
von
Java-Anwendungen
mit
Datenbanken. Alle namhaften Datenbankfirmen arbeiten mit an diesem Standard.
Die Programmierschnittstelle definiert Java-Klassen für Datenbankverbindungen,
Inv-Nr. 2002-09-04/040/IN95/2231
5. Implementierung eines Prototyps
Seite 60
SQL-Befehle, et cetera. Der Programmierer kann über JDBC herstellerunabhängige
Datenbankbefehle absetzen und die Ergebnisse bearbeiten.
Tomcat
(Servlet Container)
6
Browser
MySQL
JSP
(RDBMS)
(View)
Response
4
5
1
Java
Applet
Request
Java Servlets
(Controller)
a
2
3
JavaBeans
(Model)
JDBC
Abbildung 21: Anwendungsarchitektur mit Ablauf einer Anfragebearbeitung
Wird von einem Browser eine Anfrage (Request) an die Anwendung gerichtet, wird
diese vom Servlet entgegengenommen und ausgewertet (1). Entsprechend der
Anfrage wird mit Hilfe der Java Beans eine Antwort erzeugt (2). Die Beans ihrerseits
können dabei auf das RDBMS zugreifen (3). Das Servlet ruft eine JSP-Seite auf (4),
welche die vom Servlet erzeugte Antwort sowie die Modelldaten der Beans darstellt
und gegebenenfalls formatiert (5). Die daraus erzeugte Antwortnachricht wird vom
Servlet Container an den Browser zurückgesendet (6).
Die Kombination aus JSP, Servlet und Beans ist ein leistungsfähiges Werkzeug zur
Entwicklung gut strukturierter Anwendungen. Da ein Servlet eine reguläre JavaKlasse ist, kann in Verbindung mit Beans die ganze Macht der Sprache zur
Bearbeitung der Anfragen eingesetzt werden. Eine Anwendung mit einem Servlet als
zentralen Eingangspunkt bietet eine weitaus höhere Übersichtlichkeit als eine reine
JSP-Lösung.
Die in Tabelle 5 aufgeführten Dialoge sind somit zwar als JSP-Seiten umgesetzt,
werden aber stets über das Servlet aufgerufen. Dazu wird die Bezeichnung des
Inv-Nr. 2002-09-04/040/IN95/2231
5. Implementierung eines Prototyps
Seite 61
aufzurufenden Dialoges als Parameter an das Servlet übergeben. Für die URL ergibt
sich dann folgendes Muster:
http://[SERVER]/[SERVLETNAME]?do=[DIALOGNAME]
Zur Anzeige des Warenkorbes ergäbe sich zum Beispiel diese URL:
http://www.potatosystem.com/action?do=showBasket
Ein wesentlicher Vorteil dieser Vorgehensweise ist die Möglichkeit, vor dem
Anzeigen des Dialogs die Berechtigung des Nutzers dafür überprüfen zu können.
Die JSP können dann für das benutzt werden, wofür sie am besten geeignet sind:
zur Darstellung der von Servlet und Beans generierten Antworten. Ein weiterer
Vorteil ist, dass standardmäßige Java-Entwicklungs- und Debugging-Umgebungen
eingesetzt werden können.
5.3. Kommunikation zwischen Applets und dem Server
Neben der bloßen Darstellung von Transaktionsergebnissen soll die in Kapitel 4.8
beschriebene Umbenennung der Dateien auf den Client-Systemen automatisiert
werden. Dazu ist es notwendig, eine Technologie anzuwenden, die auf dem ClientSystem Operationen ausführen kann. Da die PS-Anwendung im Browser ausgeführt
und serverseitig schon Java-Technologie verwendet wird, fiel die Entscheidung auf
den Einsatz von Java Applets. Für den Schreibzugriff auf das lokale Dateisystem des
Client-Systems werden jedoch signierte Applets benötigt. Diese haben mit
Zustimmung des Nutzers die entsprechenden Berechtigungen.
Die Kommunikation zwischen den Applets und dem Servlet findet in erster Linie mit
Hilfe von Objekt-Serialisierung statt (siehe Abbildung 21 (a)). Darunter versteht man
die Umwandlung eines Objektes in einen Byte-Streams und zurück. ObjektSerialisierung ermöglicht die Übertragung auf byteorientierten Übertragungsstrecken
oder die Speicherung von Objekten in einem Dateisystem. Ein weiteres Mittel zur
Kommunikation ist der parametrisierte Aufruf der Applets. Dabei werden dem Applet
von der JSP-Seite Werte übergeben, die es benötigt um die gewünschten Aktionen
auszuführen.
Inv-Nr. 2002-09-04/040/IN95/2231
5. Implementierung eines Prototyps
Seite 62
So läuft der Anwendungsfall Datei anmelden wie folgt ab: Der Nutzer kann im Applet
Creator die Dateien von seinem lokalen System auswählen, die er beim PS
anmelden möchte. Für jede dieser Dateien kann er dann die Attribute festlegen. Das
Creator-Applet erzeugt aus den Angaben eine Beschreibung der Dateien im XMLFormat [21], welche auch die Hashes über die Dateien enthält. Weiterhin erstellt es
für jede Datei eine Vorschau und einen Fingerprint in Form von Dateien. Diese
werden dann zusammen mit der XML-Beschreibung in ein ZIP-Archiv gepackt,
welches als Java-File-Objekt an das Servlet geschickt wird. Das Servlet extrahiert die
Daten aus der ZIP-Datei und ruft die entsprechenden JavaBeans auf, welche die
Anmeldung durchführen. Für die Anmeldung der Dateien legen die Beans die
Dateibeschreibungen in der Datenbank und die zugehörigen Vorschau- und
Fingerprint-Dateien im Dateisystem des Servers ab. Nach erfolgreicher Anmeldung
schickt das Servlet ein String-Objekt an das Creator-Applet zurück. Der String enthält
die URL für den Aufruf des Applets Renamer, welches die Umbenennung der
Dateien auf dem System des Nutzers vornimmt. Das Creator-Applet ruft die
erhaltene URL im Browser auf. Die alten und neuen Namen der Dateien werden dem
Renamer-Applet als Parameter von der JSP-Seite übergeben. Nach der Bestätigung
des Nutzers erfolgt die Umbenennung. Der Ablauf von Datei kaufen läuft
technologisch im Wesentlichen gleich ab. Jedoch kommt ein weiterer Schritt hinzu,
der Bezahlvorgang. Näheres zu den verwendeten Applets ist in [22] zu finden.
Inv-Nr. 2002-09-04/040/IN95/2231
6. Zusammenfassung und Ausblick
Seite 63
6. Zusammenfassung und Ausblick
Ob das Potato-System die gestellten Anforderungen und auch Hoffnungen zu
erfüllen vermag wird sicherlich erst nach einer ausführlichen Testphase mit realen
Nutzern und realem Content absehbar sein. Jedoch wurden im Laufe dieser Arbeit
Erkenntnisse gewonnen, die schon jetzt einige Aussagen über das PS zulassen.
Durch die Verwendung einer P2P-Netzwerkstruktur bietet das PS optimale
Vorraussetzungen für die schnelle und effiziente Verbreitung von virtuellen Waren.
Dies belegen die unzähligen Tauschbörsen im Internet, die auf P2P-Netzwerken
basieren. Auch beim Multilevel Marketing hat sich der Vertrieb der Waren über ein
logisches P2P-Netzwerk in vielen Fällen bewährt, wo wie beim PS ebenfalls
Provisionen der wichtigste Antrieb für das Funktionieren dieses Prinzips ist.
Das Potato-System verfügt also über die prinzipiellen Vorraussetzungen, eine
sinnvolle Alternative für den Vertrieb von virtuellen Waren über das Netz zu werden.
Es versucht nicht den Konsumenten zum Wahren der Interessen der Provider zu
zwingen. Vielmehr bringt es ihn in eine Position, in der er die Bedürfnisse des
Providers teilt: Beide wollen möglichst viele Käufer für die Ware finden, um einen
Profit zu erwirtschaften. Das Potato-System könnte durch die Schaffung dieses
gemeinsamen Interesses die derzeitige Verfeindung von Providern und Nutzern
abbauen.
Ein Erfolg kann jedoch keineswegs garantiert werden, da dieser von vielen Faktoren
abhängig ist. Der wahrscheinlich wichtigste ist nach meiner Ansicht die Qualität der
Waren, die über das System vertrieben werden sollen. Nur bei gefragtem Content
Inv-Nr. 2002-09-04/040/IN95/2231
6. Zusammenfassung und Ausblick
Seite 64
werden sich die Nutzer Chancen auf Provisionen ausrechnen und eventuell dafür
bezahlen. Des Weiteren gibt es in jedem Vertriebsnetz Randknoten, die keine
Provisionen erwirtschaften können oder wollen. Während diese beispielsweise bei
realen MLM-Systemen die Waren kaufen müssen um sie zu konsumieren, ist dies
beim PS nicht zwingend nötig. Kauft jedoch der Letzte in einer Kette nicht, so erhält
der vor ihm keine Provision und verliert somit ebenfalls seine Motivation zum Kauf.
Es sollte daher vielleicht weiterführend betrachtet werden, ob neben den finanziellen
auch noch andere Anreize für den Kauf der Waren geschaffen werden können.
Solche wären zum Beispiel limitierte Fanartikel oder Konzertkarten, die für den
Nutzer einen hohen ideellen Wert haben. Weiterhin sollte untersucht werden, wie die
im Accoounting-Server gesammelten Informationen über die Nutzer und deren
Beziehungen zueinander für weitere Dienste des Potato-Systems verwertbar sind.
Inv-Nr. 2002-09-04/040/IN95/2231
Literatur- und Quellenverzeichnis
Seite 65
Literatur- und Quellenverzeichnis
[1]
Peer-To-Peer Harnessing the Benefits of a Disruptive Technology; Andy Oram;
O’Reilly & Associates 2001
[2]
Gnutella and Freenet; Represent True Technological Inovation; Andy Oram;
http://www.oreillynet.com/lpt/a//network/2000/05/12/magazine/gnutella.html
[3]
What is ICQ?; About the Web’s Largest Community;
http://www.icq.com/products/whatisicq.html
[4]
Einführung ins Affiliate Marketing;
http://www.contentmanager.de/magazin/artikel_127.html
[5]
Forrester Research
http://www.forrester.com/
[6]
The Superdistribution Resource Page
http://sda.k.tsukuba-tech.ac.jp/SdA/
[7]
Objektorientierte Softwareentwicklung; Analyse und Design mit der Unified
Modeling Language; Bernd Oestereich; R.Oldenbourg Verlag München Wien
1998
[8]
UML; Objektorientierte Modellierung für die Praxis, 2. Auflage; Rainer
Burkhardt; Addison-Wesley 2000
[9]
AudioID; Fraunhofer Institut Integrierte Schaltungen;
http://www.emt.iis.fhg.de/produkte/audioid/
[10] Pattern-orientierte Software-Architektur; F.Buschmann, Regine Meunier, Hans
Rohnert, Peter Sommerlad, Michael Stal; Addison-Wesley 1998
[11] Der Einsatz Offener Systeme in der Praxis - Technologien, Standards,
Probleme; Hugo Stempfle;
http://www.fh-augsburg.de/informatik/diplomarbeiten/langfassungen/stempflestork-1996/OpenSystems/open_sys.htm
Inv-Nr. 2002-09-04/040/IN95/2231
Literatur- und Quellenverzeichnis
Seite 66
[12] Virtuelle Communities und Markenmanagement; Caspar Clemens Mierau;
http://www.medienkultur.org/sm1/tdm/ha/index.html
[13] Small World Research Project; Department of Sociology, Columbia University
http://smallworld.sociology.columbia.edu/
[14] An Experimental Study of the Small World Problem; J. Travers and S. Milgram,
1969
http://citeseer.nj.nec.com/context/493214/0
[15] Erfolgreich mit Objektorientierung; Vorgehensmodell und Managementpraktiken
für die objektorientierte Softwareentwicklung, 2. Auflage; Bernd Oestereich;
R.Oldenbourg Verlag München Wien 2001
[16] Was ist Open Source?; Informatik Support Gruppe; ETH Zürich;
http://www.ch-open.ch/html/events/Event_19.11.1999/opensource.html
[17] JavaTM 2 Platform, Enterprise Edition (J2EETM); J2EE Technologies;
http://java.sun.com/j2ee/
[18] MySQL Reference Manual; Michael Widenius, David Axmark; O’Reilly &
Associates 2002
[19] The Jakarta Project - Apache Tomcat
http://jakarta.apache.org/tomcat/
[20] Java Servlet Programming; Jason Hunter, William Crawford; O’Reilly &
Associates 1998
[21] XML kompakt; Eine praktische Einführung; Thomas Michel; Hanser Verlag
München Wien 1999
[22] Konzeption und Realisierung der Client-Komponenten für ein P2P-File-SharingSystem mit Umsatzbeteiligung für die Benutzer; Jens Hasselbach; Diplomarbeit,
Technische Universität Ilmenau 2002
Inv-Nr. 2002-09-04/040/IN95/2231
Abbildungsverzeichnis
Seite 67
Abbildungsverzeichnis
Abbildung 1:
Client/Server-Modell.......................................................................... 4
Abbildung 2:
Ausschnitt aus Gnutella-Netzwerk..................................................... 6
Abbildung 3:
Modell eines reinen P2P-Netzes ....................................................... 9
Abbildung 4:
Hyprides P2P .................................................................................. 15
Abbildung 5:
Webseite mit Bannerwerbung ......................................................... 17
Abbildung 6:
Affiliate-Netzwerk ............................................................................ 19
Abbildung 7:
Strukturvertrieb................................................................................ 21
Abbildung 8:
Einbettung eines Baumes in ein P2P-Netzwerk .............................. 24
Abbildung 9:
Waren- und Geldfluss bei dezentralem Lösungsansatz .................. 26
Abbildung 10: Waren- und Geldfluss bei dezentralem Lösungsansatz mit zentraler
Provisionsauszahlung ..................................................................... 27
Abbildung 11: Waren- und Geldfluss mit zentraler Instanz .................................... 28
Abbildung 12: Prinzipieller Ablauf beim Potato-System ......................................... 33
Abbildung 13: Entwurfsmuster Model-View-Controller ........................................... 44
Abbildung 14: Anwendungsarchitektur des Potato-Systems.................................. 45
Abbildung 15: Die Geschäftsklassen repräsentieren das System mit sehr geringem
Detailierungsgrad ............................................................................ 46
Abbildung 16: Klassenbeziehungen im Bereich User............................................. 47
Abbildung 17: Verbesserte Klassenstruktur mit Rollen .......................................... 47
Abbildung 18: Klassendiagramm für das Potato-System ....................................... 49
Abbildung 19: Aktivitätsdiagramm für den Vorgang Datei kaufen .......................... 50
Abbildung 20: Funktionsweise eines Webservers mit JSP..................................... 59
Abbildung 21: Anwendungsarchitektur mit Ablauf einer Anfragebearbeitung......... 60
Inv-Nr. 2002-09-04/040/IN95/2231
Tabellenverzeichnis
Seite 68
Tabellenverzeichnis
Tabelle 1: Anwendungsfall: Als Provider registrieren ............................................... 38
Tabelle 2: Anwendungsfall: Datei anmelden............................................................. 39
Tabelle 3: Anwendungsfall: Als Käufer registrieren .................................................. 41
Tabelle 4: Anwendungsfall: Datei kaufen.................................................................. 42
Tabelle 5: Für das System benötigte Dialoge ........................................................... 52
Tabelle 6: Beispiele für Transaktionsnummern mit ihren Bestandteilen ................... 54
Tabelle 7: Nummernklassen für Benutzernummern ................................................. 54
Inv-Nr. 2002-09-04/040/IN95/2231
Anhang A
Seite 69
Anhang A – Datenbankschema des Potato-Systems
File
PK
Review
PriceModel
ID
PK
ID
Name
Size
ContentType
FileType
Hash
Description
FK1
FileID
Price
PriceReduction
Commission
CommissionReduction
PayPercentage
Comments
Transaction
PK
ID
PK
ID
FK1
TransactionID
Rating
Text
FK1
FileID
TransactionNo
Type
SellerID
BuyerID
Date
Generation
FK2
FK3
Turnover
PK
ID
FK2
FK1
AccountID
TransactionID
Date
Amount
Roles
PK
Name
Description
User
Account
PK
ID
FK1
UserID
Amount
PK
ID
FK1
Login
Password
Email
UserNo
RolesID
Inv-Nr. 2002-09-04/040/IN95/2231
ID
Profile
PK
ID
FK1
UserID
Lastname
FirstName
Address
Address2
ZipCode
City
State
Country
URL
PhoneNumber
CellPhone