On-line Profile Replication for Hierarchical Mobility Management
On-line Profile Replication for Hierarchical Mobility Management
On-line Profile Replication for Hierarchical Mobility Management
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Rheinisch-Westfälische Technische Hochschule Aachen<br />
Lehrstuhl für In<strong>for</strong>matik IV<br />
Prof. Dr. rer. nat. Otto Spaniol<br />
<strong>On</strong>-<strong>line</strong> <strong>Profile</strong> <strong>Replication</strong> <strong>for</strong><br />
Hierachical <strong>Mobility</strong> <strong>Management</strong> in<br />
PCS Networks<br />
Seminar: Datenkommunikation und Verteilte<br />
Systeme<br />
Wintersemester 2002/2003<br />
Yong Cheng<br />
Matrikelnummer: 228247<br />
Betreuung: Stefan Diepolder<br />
Lehrstuhl für In<strong>for</strong>matik IV, RWTH Aachen
1. Einführung.......................................................................................................3<br />
2. Kanten-Algorithmus...........................................................................................4<br />
2.1 Systemmodell ................................................................................................................. 4<br />
2.2 Off<strong>line</strong>- und <strong>On</strong><strong>line</strong>-Algorithmen................................................................................... 6<br />
2.3 Approximationsalgorithmen........................................................................................... 6<br />
2.4 Kanten-Algorithmus ....................................................................................................... 7<br />
2.4.1 Kostenfunktion................................................................................................... 7<br />
2.4.2 Der Kanten-Algorithmus und seine Übergangsdiagramme................................ 9<br />
2.4.3 Beweis............................................................................................................... 11<br />
3. <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus ................................................................... 12<br />
3.1 Faktorisieren................................................................................................................. 12<br />
3.2 Verbreitungskosten....................................................................................................... 15<br />
3.2.1 Intelligente Verbreitung.................................................................................... 15<br />
3.2.2 Verzögerte Verbreitung .................................................................................... 16<br />
3.3 Beispiel......................................................................................................................... 17<br />
4. Simulation und Bewertung................................................................................. 19<br />
4.1 Simulationseinsatz........................................................................................................ 19<br />
4.2 Simulationsergebnis...................................................................................................... 21<br />
5. Zusammenfassung........................................................................................... 23<br />
Literatur................................................................................................................. 24<br />
Zusammenfassung<br />
Inhaltverzeichnis<br />
Zukünftige Personal Communication Service (PCS) wird die orts-, technologie- und geräteunabhängige<br />
Kommunikation von Person zu Person mit einer einzigen Rufnummer, nämlich der Universal Personal<br />
Identification (UPI) unterstützen. UPI ist im hierarchischen Mobilitätsmanagement realisierbar. Das<br />
Duplizieren des Benutzerprofils ist eine wichtige Methode, um die Netzwerkkosten im hierarchischen<br />
Mobilitätsmanagement zu reduzieren. Im Gegensatz zum Off<strong>line</strong>-Algorithmus basiert der <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus<br />
nur auf der bisher bekannten Eingabesequenz und findet deswegen eine Anwendung<br />
in der Praxis. In dieser Arbeit werden der <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus und dafür relevante Themen<br />
studiert.<br />
2
1. Einführung<br />
Personal Communication Service (PCS) ist ein Oberbegriff für künftige und teilweise bereits implementierte<br />
personenbezogene Kommunikationsdienste mit hoher Mobilität der Teilnehmer (internationales Roaming)<br />
im privaten und geschäftlichen Bereich. Zukünftige PCS-Dienste werden die orts-, technologie- und geräteunabhängige<br />
Erreichbarkeit einer Person mit einer einzigen Rufnummer unterstützen.<br />
Diese zukünftige für jeden Benutzer eindeutige Teilnehmerrufnummer wird als Universal Personal Identification<br />
(UPI) bezeichnet. UPI ist orts- und geräteunabhängig und kann lebenslang genutzt werden, egal wohin<br />
der Benutzer umzieht, egal bei welchem Service-Anbieter sich der Benutzer anmeldet.<br />
Erste Bemühungen der International Telecommunication Union (ITU) um universelle und netzunabhängige<br />
Telekommunikationssysteme konzentrieren sich auf eine Spezifikation mit der Bezeichnung International<br />
Mobile Telecommunication System 2000 (IMT2000). Die vergleichbare europäische Spezifikation wird mit<br />
Universal Mobile Telecommunication System (UMTS) bezeichnet. UMTS wird neben herkömmlichen<br />
Funkanwendungen auch ISDN- und breitbandige (2 Mbit/s) Verbindungen ermöglichen und damit erstmals<br />
eine ernst zu nehmende Alternative zu Festnetzdiensten darstellen. Die UPI ist ein Schlüsselmerkmal für<br />
Netzwerk der nächsten Generation.<br />
Wegen der Netzwerkstruktur unterstützt der Standard von Global System <strong>for</strong> Mobile Communication (GSM)<br />
UPI nicht. Im weiteren werden die Grundkenntnisse im Bereich Telekommunikationsnetz und GSM-<br />
Architektur vermittelt.<br />
Im traditionellen mobilen Kommunikationssystem sucht das Netzwerk nach einem Benutzer mittels des in<br />
der Datenbank gespeicherten aktuellen Profils. Ein Benutzerprofil besteht aus allen permanenten Benutzerdaten<br />
wie abonnierten Diensten, Berechtigungen, und den relevanten temporären Daten, vor allem einem<br />
Verweis auf den aktuellen Aufenthaltsort. Die abzudeckenden geographischen Gebiete werden in Zonen oder<br />
Lokalisierungsgebiete (Register Areas) geteilt.<br />
Zwei Basisoperationen sind Location-Update und Location-Lookup. Wenn ein Benutzer von einem Gebiet in<br />
einem anderen Gebiet wechselt oder die Benutzerdaten geändert wurden, aktualisiert das Netzwerk sein Profil<br />
in entsprechenden Datenbanken. Das nennt man Location-Update. Wenn ein Benutzer angerufen wird,<br />
sucht das System in den relevanten Datenbanken nach seinem Aufenthaltsort. Diese Operation wird als Location-Lookup<br />
bezeichnet.<br />
Das GSM-Netz [9] wird von einem verteilten, zweistufigen hierarchischen Datenbanksystem gebildet. Das<br />
Home Location Register (HLR) bildet funktional die obere Ebene des zweistufigen Datenbanksystems. Es<br />
speichert die <strong>Profile</strong> der mobilen Benutzer, wobei jeder Teilnehmer genau einem HLR zugeordnet ist. Das<br />
Visitor Location Register (VLR) entspricht der unteren Ebene der zweistufigen Datenbank. Es führt für alle<br />
Benutzer, die in seinem Bereich registriert sind, eine Kopie der relevanten Teilnehmerdaten aus den jeweiligen<br />
HLRs. Bewegt sich der Benutzer aus der Zone heraus, so veranlasst er eine sogenannte Location-<br />
Update-Anfrage, die dafür sorgt, dass die Datenbankeinträge in VLR und HLR auf den neuen Stand gebracht<br />
werden. Bei einem eingehenden Anruf wird das lokale VLR des Anrufers zuerst gefragt. Wenn sich der Benutzer<br />
nicht in diesem Gebiet befindet, wird diese Abfrage direkt zu dem zentralisierten HLR geschickt. Mit<br />
den zurückgelieferten In<strong>for</strong>mationen kann die Verbindung durchgeschaltet werden. Der GSM-Standard benutzt<br />
eine geographische Kennung, die direkt zu einer HLR-Datanbank gehört. Diese Kennung ist auf eine<br />
bestimmte Datenbank beschränkt und unterstützt deshalb nicht UPI.<br />
Um das UPI-Konzept realisieren zu können, muss eine neue passende Netzwerkstruktur gesucht werden. Ein<br />
Kandidat dafür ist die hierarchische <strong>Mobility</strong> <strong>Management</strong> Techniques (MMT). Bei MMT sind die Benutzerprofile<br />
nicht mit einem HLR assoziiert und alle Datenbanken sind in einer baumartigen Struktur angeordnet.<br />
MMT hat einen großen Vorteil gegenüber dem GSM-Netz, weil die Daten der Benutzer verteilt sind. Da<br />
die meisten Benutzer sehr viel Zeit in einer Zone verbringen, werden die Datenbanken der oberen Ebenen<br />
nur seltenen für Location-Lookups und Location-Updates befragt, damit kann die Lokalisierung von Benutzern<br />
schnell und reibungslos erfolgen.<br />
3
Die Leistung des hierarchischen Mobilitätsmanagements kann noch verbessert werden, wenn man Duplikate<br />
der Benutzerprofile im System erlaubt. D.h. die Daten eines Benutzers dürfen in mehreren Datenbanken<br />
gespeichert werden. Die Location-Lookup-Kosten werden wegen der verbesserten Erreichbarkeit des Benutzers<br />
stark reduziert. Da mehrere Kopien konsistent gehalten werden müssen, steigen die Location-<br />
Update-Kosten an.<br />
Diese Arbeit stellt einen <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus vor, der versucht, diese zwei Kosten zu balancieren,<br />
damit die gesamten Netzwerkkosten möglichst gering bleiben.<br />
In dieser Arbeit wird auch durch Beweis und Simulation gezeigt, dass der <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus<br />
nicht nur effizient, sondern auch in der Praxis anwendbar ist.<br />
2. Kanten-Algorithmus<br />
2.1 Systemmodell<br />
In der hierarchischen MMT werden die Datenbanken, welche die Benutzerprofile speichern, in einer Baustruktur<br />
gegliedert. Ein Beispiel ist in der Abbildung 1 dargestellt.<br />
Abbildung 1: Datenbanken in Baumstruktur<br />
Das gesamte abzudeckende Gebiet wird in Zonen aufgeteilt. Zur Ortsermittlung stehen die lokalen Datenbanken<br />
zur Verfügung, die den in Grau markierten Blättern in der Abbildung 1 entsprechen. In diesen Datenbanken<br />
sind die <strong>Profile</strong> derjenigen Benutzer gespeichert, die momentan in dieser Zone registriert sind.<br />
Die inneren Knoten im Beispiel entsprechen den Datenbanken, die einen Verweis auf einen Benutzer speichern.<br />
Da die Daten des Benutzers im Unterbaum vorhanden sind, braucht diese Date nbank nur die UPI und<br />
einen Verweis auf die Datenbank auf einer tieferen Ebene zu speichern,.<br />
Sei DB( i ) eine lokale Datenbank, in der das Profil des Benutzers i gespeichert ist. Analog DB( j ) für Benutzer<br />
j. Bei einem Ruf vom j zu i wird immer zuerst die lokale Datenbank, nämlich DB( j ) nach den Aufenthaltsin<strong>for</strong>mationen<br />
von i gefragt. Falls das Profil vom Benutzer i in DB( j ) nicht gefunden wird, sendet<br />
DB( j ) diese Location-Lookup-Anfrage hierarchisch im Baum nach oben, bis die erste Datenbank gefunden<br />
wird, die einen Zeiger auf Benutzer i enthält. Diese Datenbank wird als Least Common Ancestor (LCA)<br />
bezeichnet, notiert als LCA( DB ( i ) , DB ( j ) ) . Diese Anfrage folgt dem Zeiger, bis die lokale Datenbank<br />
erreicht wird, in der das Profil gespeichert ist.<br />
Wenn sich der Benutzer von einer Zone X nach Y bewegt, muss das Netzwerk nicht nur das Benutzerprofil<br />
vom DB( X ) nach DB( Y ) verlegen, sondern auch die Zeiger aktualisieren, indem es neue Zeiger entlang<br />
des Pfads DB ( Y ) bis LCA ( DB ( X ) , DB ( Y ) ) erzeugt und alle Zeiger entlang des Pfads<br />
4
Pfads DB ( Y ) bis LCA ( DB ( X ) , DB ( Y ) ) erzeugt und alle Zeiger entlang des Pfads<br />
Y bis DB( X ) löscht.<br />
LCA( DB ( X ) , DB ( ) )<br />
Diese hierarchische Struktur hat einen Vorteil gegenüber der traditionellen zweistufigen Struktur vom GSM,<br />
wenn die Benutzer in einem Gebiet bleiben und Anrufe aus nahe liegenden Gebieten bekommen. Dabei sind<br />
immer nur wenige Datenbanken auf tieferer Ebenen an der Kommunikation beteiligt.<br />
Wenn die Benutzer sich oft zwischen verschiedenen Zonen bewegen oder viele Anrufe von weit entfernten<br />
Gebieten bekommen, wird das ganze Netzwerk wegen häufiger Verlegungen des Benutzerprofils oder wegen<br />
häufiger Anfragen an die Datenbank auf den oberen Ebenen belastet.<br />
Um das Problem zu lösen, ist Kopieren des Benutzerprofils zugelassen, d.h. die <strong>Profile</strong> der Benutzer dürfen<br />
in mehrere Datenbanken kopiert werden. In diesem Fall darf das Profil nicht nur in Blättern sondern auch bei<br />
inneren Knoten gespeichert werden.<br />
Abbildung 2: Location-Lookup und Location-Update<br />
Ein Beispiel ist in der Abbildung 2 dargestellt. Der Benutzer i erhält oft Anrufe vom Benutzer j aus einer<br />
anderen Zone. Die Pfadlänge für eine Location-Lookup-Anfrage beträgt sechs und verursacht damit hohe<br />
Netzwerkkosten. Mit einem Duplikat des Benutzerprofils i in Datenbank B lassen sich die Location-Lookup-<br />
Anfragekosten stark reduzieren. Es verursacht keine zusätzlichen Netzwerkkosten, wenn das Profil in alle<br />
Datenbanken entlang des Pfads statt nur in die Datenbank B kopiert wird. In der grafischen Ansicht sind alle<br />
Knoten, die das Profil eines Benutzers enthalten, verbunden. Anderes gesagt bleiben diese Knoten, die in der<br />
Abbildung 2 markiert sind, in einem Teilbaum.<br />
Nicht zu vergessen ist, dass das Profilduplikat des Benutzers zwar die Location-Lookup-Kosten reduzieren<br />
kann, aber auch die Location-Update-Kosten verursachen wird. Um die Benutzerdaten konsistent zu bleiben,<br />
sind diese Kosten nicht vermeidbar, wenn mehrere Duplikate vorhanden sind.<br />
Um die gesamten Netzwerkkosten zu reduzieren, müssen die Kosten für beide Anfragen berücksichtigt werden.<br />
Die Duplikate des Benutzerprofils sind deswegen begrenzt zugelassen. Für das Profilduplikationsproblem<br />
wird eine Lösung gesucht, wo und wann ein Benutzerprofil kopiert werden soll. Im Algorithmus dieser<br />
Arbeit wird nur eine zusätzliche Kopie gestattet, wenn sie die gesamten Netzwerkkosten günstig beeinflusst.<br />
Für das System wird zuerst ein mathematisches Modell entworfen:<br />
Sei T= ( V, E ) ein Baum für die Datenbankhierarchie, gebildet von der Knotenmenge V und der<br />
Kantenmenge E. Ein Knoten v∈ V entspreche einer Datenbank und eine Kante e=( u, v ) ∈ E entspreche einer<br />
direkten Kommunikationsverbindung zwischen zwei benachbarten Datenbanken. Hier wird die Pfadlänge als<br />
die Kosten einer Kommunikationsverbindung zwischen u und v, nämlich c( u, v ) definiert. Da ein Baum<br />
keine Kreise enthält, existiert ein einziger kürzester Pfad zwischen zwei beliebigen Knoten. Weiter wird<br />
R( i ) ⊆ V als die Menge von Datenbanken definiert, die ein Profil vom Benutzer i besitzen. Es wird vorausgesetzt,<br />
dass am Anfang mindestens eine Datenbank das Profil für einen Benutzer enthält.<br />
5
2.2 Off<strong>line</strong>- und <strong>On</strong><strong>line</strong>-Algorithmen<br />
Ein Off<strong>line</strong>-Algorithmus ist ein Algorithmus, der eine Entscheidung mit dem Wissen über die gesamte Sequenz<br />
von Anfragen trifft. Der Off<strong>line</strong>-Profilduplikationsalgorithmus im [1] bietet eine Möglichkeit, im hierarchischen<br />
Netzwerk zu bestimmen, wo und wann ein Benutzerprofil kopiert werden soll. Dieser Algorithmus<br />
kann zwar eine optimale Lösung angeben, basiert aber auf den vollständigen Kenntnissen über den<br />
Netzwerkverkehr, nämlich alle Anrufe und Bewegungen des Benutzers. Da a priori nicht bekannt ist, wohin<br />
sich der Benutzer bewegt und aus welchen Zonen er angerufen wird, ist er in der Praxis kaum anwendbar.<br />
Ein <strong>On</strong><strong>line</strong>-Algorithmus funktioniert dagegen ohne die Kenntnis der zukünftigen Anfragen.<br />
Ein Beispiel [4] soll helfen, die unterschiedlichen Arbeitsweise der Off<strong>line</strong>- und <strong>On</strong><strong>line</strong>algorithmen zu verstehen.<br />
Ein Skiläufer muss jeden Tag entscheiden, ob er einen Ski ausleiht oder kauft. Er weiß nicht, wie viele Tage<br />
er noch Ski fahren wird. Es wird angenommen, dass er insgesamt T Tage Ski fährt. Und die Kosten für Ausleihen<br />
betragen eine Geldeinheit (GE) pro Tag. Ein Ski kostet H GE. Für den Off<strong>line</strong>-Algorithmus ist die<br />
Entscheidung leicht zu treffen, weil man T schon kennt. Wenn T>H, sollte er den Ski kaufen. Anderenfalls<br />
braucht er ihn nur auszuleihen.<br />
Nach dem <strong>On</strong><strong>line</strong>-Algorithmus wird der Skiläufer den Ski für die ersten H-1 Tage ausleihen, und den Ski<br />
erst kaufen, wenn T>H ist. Dieser <strong>On</strong><strong>line</strong>-Algorithmus ist natürlich nicht ganz optimal, aber ist in der Praxis<br />
realisierbar und hat im schlimmsten Fall doppelt so hohe Kosten wie der Off<strong>line</strong>-Algorithmus.<br />
Das Prinzip ist, dass die Operationen mit kleinen Kosten, in diesem Fall das Ausleihen, bevorzugt sind. Diese<br />
kleinen Kosten werden immer kassiert, bis die Summe der kleinen Kosten die großen Kosten, in diesem<br />
Fall das Kaufen, überschreitet. Dann wird die Operation mit großen Kosten durchgeführt.<br />
In dieser Arbeit wird versucht, einen <strong>On</strong><strong>line</strong>-Algorithmus zu entwerfen, der eine möglichst optimale Lösung<br />
sucht. Die Fragen sind, wie man den vorgeschlagenen <strong>On</strong><strong>line</strong>-Algorithmus bewerten kann, und wie gut der<br />
Algorithmus sich an die optimale Lösung annähert. Dies lässt sich mit Hilfe der Theorie von Approximationsalgorithmen<br />
lösen.<br />
2.3 Approximationsalgorithmen<br />
Das <strong>On</strong><strong>line</strong>-Profilduplikationsproblem gehört zur Familie des File-Allocation-Problems. Im [10] wurde bewiesen,<br />
dass es zu den NP-vollständigen Problemen gehört. Solche Probleme lassen sich für die Praxis nicht<br />
hinreichend schnell exakt lösen. Daher besteht der Wunsch, das optimale Ergebnis mit effizienten Algorithmen<br />
möglichst gut anzunähern.<br />
Ein Approximationsalgorithmus [2] ist ein Algorithmus, der eine praktische Lösung anbietet und dessen<br />
Ergebnis nicht stark von der optimalen Lösung abweicht.<br />
Im folgenden werden die wichtigsten Definitionen aus der Theorie der Approximationsalgorithmen vorgestellt.<br />
Definition 1 (Approximationsfaktor):<br />
Sei P ein Optimierungsproblem, A ein Algorithmus, der zu jeder Eingabe x eine zulässige Lösung von P<br />
berechnet, und U ein Algorithmus, der immer das Optimum liefert. Weiterhin wird cost ( A ( x ) ) als das Maß<br />
der Güte des Algorithmus A und opt ( x )<br />
U<br />
als das Maß der Güte des Algorithmus U für eine beliebige Ein-<br />
gabe x definiert. Der Approximationsfaktor von A ist definiert durch:<br />
6
RA ( x ) : =<br />
⎧ cost ( A( x)<br />
)<br />
⎪<br />
⎨<br />
⎩<br />
⎪<br />
opt ( x)<br />
U<br />
opt ( x)<br />
U<br />
cost ( A( x)<br />
)<br />
Definition 2 (e -Approximationsalgorithmus):<br />
für Minimierungsprobleme<br />
für Maximierungsprobleme<br />
Ein Algorithmus A für ein Optimierungsproblem P heißt ε -Approximationsalgorithmus, wenn A für jede<br />
Eingabe x eine zulässige Lösung von P mit<br />
RA ( x ) ≤ ε mit ε > 1 (2)<br />
liefert. ε wird als Güte bezeichnet.<br />
In dieser Arbeit wird die Güte des Algorithmus durch die verursachten Netzwerkkosten bewertet. Dabei<br />
werden die Netzwerkkosten, die durch den Off<strong>line</strong>-Algorithmus bestimmt sind, als Optimum angesehen. Ein<br />
<strong>On</strong><strong>line</strong>-Algorithmus wird gesucht, dessen Ergebnis nicht stark vom Optimum abweicht.<br />
2.4 Kanten-Algorithmus<br />
2.4.1 Kostenfunktion<br />
Man reduziert das <strong>On</strong><strong>line</strong>-Profilduplikationsproblem auf eine Kante ( a, b ) . Es gibt insgesamt drei mögliche<br />
Zustände: entweder haben Knoten a oder Knoten b oder beide Knoten eine Kopie des Benutzerprofils. Sei<br />
S={ a, b, ab } die Menge aller Möglichkeiten der Duplikatzustände. Eine Anfrage σ initiiert von a oder b ist<br />
entweder ein Location-Lookup (λ) oder ein Location-Update (δ). Wir notieren a λ als eine Location-Lookup-<br />
Anfrage aus dem Knoten a, a δ als eine Location-Update-Anfrage aus a.<br />
Wir definieren weiterhin serv( s, σi ) als Maß der Kosten für das Erledigen der i-ten Anfrage σi beim<br />
Zustand s. Für ein Location-Lookup σi ist serv( s, σi ) = 0, wenn eine Kopie in dem lokalen Knoten<br />
vorhanden ist, sonst ist serv( s, σi ) = 1. Sei tran( s', s ) die Kosten für die Änderung vom Zustand s’ zu s. Wir<br />
vereinbaren, dass die Kosten für eine neue Kopie D (D ≥ 1) betragen, und die Kosten des Löschens null sind.<br />
Die beiden Funktionen sind in Tabelle 1 vorgegeben.<br />
serv( s', σi )<br />
σi<br />
a λ a δ b λ b δ<br />
a 0 0 1 1<br />
s’ b 1 1 0 0<br />
ab 0 1 0 1<br />
7<br />
(1)<br />
tran( s', s )<br />
a<br />
s<br />
b ab<br />
s’ a 0 D D<br />
b D 0 D<br />
ab 0 0 0<br />
Tabelle 1: Kosten für Zustandsänderung bei Location-Lookup und Location-Update<br />
Nachdem die neue Anfrage bearbeitet wurde, muss eine Entscheidung getroffen werden, ob eine Kopie neu<br />
hinzugefügt oder gelöscht werden soll.
Wie im früheren Absatz erwähnt, basiert der <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus auf den bisher bekannten<br />
Anfragen und bestimmt den optimalen Zustand. Weil man die zukünftigen Anfragen nicht kennt, kann es<br />
passieren, dass ein zur Zeit optimaler Zustand viel mehr Kosten als andere zur Zeit nicht optimalen Zustände<br />
verursacht. D.h. eine momentan optimale Entscheidung kann langfristig suboptimal sein. Aus dieser Überlegung<br />
werden die Kosten bei allen möglichen Zuständen betrachtet.<br />
Um die Kosten auszurechnen, werden die Kostenfunktion (work function) und die Kostendifferenzfunktion<br />
(offset function), die von Chrobak und Larmore [3] eingeführt worden sind, eingesetzt. Die Kostenfunktion<br />
Wi ( s ) steht für die minimalen Kosten für das Erledigen der i-ten Anfrage beim Endzustand s. Wi ( s ) ergibt<br />
sich rekursiv aus Wi-1( s ) :<br />
W i ( )<br />
s = min s'∈S ⎩ ⎨ ⎧<br />
Wi-1( s' ) + serv ( )<br />
s', σi + tran ( )<br />
8<br />
⎫<br />
⎬<br />
⎭<br />
s', s (3)<br />
Weiterhin wird opt i als die minimalen Kosten für das Erledigen der insgesamt i Anfragen definiert. opt i<br />
wird wie folgt ermittelt:<br />
opti = min s'∈S Wi ( s )<br />
(4)<br />
Für jede Entscheidung werden die Kosten bei allen möglichen Zuständen mit den optimalen Kosten verglichen.<br />
Die Kostendifferenzfunktion, definiert als<br />
wi ( s ) = Wi ( s ) - opti (5)<br />
misst die Differenz zwischen dem Zustand s und dem optimalen Zustand, den der Off<strong>line</strong>-Algorithmus bestimmt.<br />
Weil das Löschen eines Benutzerprofils keine Netzwerkkosten verursacht, gilt damit die Behauptung:<br />
wi ( ab ) ≥ wi ( a ) und wi ( ab ) ≥ wi ( b ) . (6)<br />
Das bedeutet, dass der optimale Zustand durch eine Kopie bei entweder a oder b ausgedrückt. Anders gesagt,<br />
muss entweder wi ( a ) oder wi ( b ) gleich Null sein.<br />
Falls w i ( s ) =0, (s=a oder s=b), dann wird s als zero-offset-state (ZOS) bezeichnet. Analog heißt<br />
wi ( a ) , wi ( b ) , wi ( ab ) Offsetvektor. Durch Vergleich der drei Kostendifferenzfunktionen im Offset-<br />
( )<br />
vektor kann man schell den optimalen Zustand oder die optimalen Zuständen bestimmen. Je kleiner der Wert<br />
der Differenzfunktion des Zustand ist, desto näher liegt dieser Zustand an Optimum. In diesem Sinne spielt<br />
der Offsetvektor eine entscheidende Rolle.<br />
Daher kann man allgemein einen Offsetvektor ( )<br />
≤ k ≤ l ≤ D ist.<br />
0, k, l definieren, wobei s( a ) = 0, s( )<br />
b = k, s( )<br />
ab = l, und 0<br />
Der Startwert des Vektors wird durch den Anfangzustand der Kante bestimmt. Zum Beispiel bestimmt der<br />
Anfangszustand a den Vektor ( 0, D, D ) , d.h. nur der Knoten a hat eine Kopie, und der Vektor ( 0, 0, 0 ) bedeutet,<br />
wenn beide Knoten eine Kopie haben.<br />
Mit den Formeln (3) (4) (5) können alle Offsetvektoren für alle möglichen Location-Lookup- oder Location-<br />
Update-Anfragen ausgerechnet werden. Die Ergebnisse sind in Tabelle 2 aufgelistet.
Fall 1 (k ‡ 1):<br />
Fall 2 (k = 0):<br />
wi+1( a ) wi+1( b ) wi+1( ab ) opti+1 a λ 0 min( k+1, l ) l 0<br />
a δ 0 min( k+1, D ) min( l+1, D ) 0<br />
σi+1<br />
b λ 0 k -1 l -1 1<br />
b δ 0 k -1 l 1<br />
wi+1( a ) wi+1( b ) wi+1( ab ) opti+1 a λ 0 min( 1, l ) l 0<br />
a δ 0 1 min( l+1, D ) 0<br />
b λ min( 1, l ) 0 l 0<br />
b δ 1 0 min( l+1, D ) 0<br />
σi+1<br />
Tabelle 2: Kostenfunktion<br />
2.4.2 Der Kanten-Algorithmus und seine Übergangsdiagramme<br />
Wie im früheren Absatz erwähnt, spielen die Offsetvektoren bei der Bestimmung des optimalen Zustands<br />
eine wichtige Rolle. Ausgehend vom jetzigen Offsetvektor und der neu angekommenen Anfrage kann man<br />
den nachfolgenden Offsetvektor ausrechnen. Diese In<strong>for</strong>mationen lassen sich in einem Übergangsdiagramm<br />
in der Abbildung 3 darstellen. Hier wird angenommen, dass D gleich zwei ist.<br />
Abbildung 3: Übergangsdiagramm (a)<br />
Die Offsetvektoren werden hier ohne Komma in Ellipsen dargestellt. Mit diesem Übergangsdiagramm können<br />
die folgenden Offsetvektoren schnell vermittelt werden.<br />
Wenn das Prinzip des <strong>On</strong><strong>line</strong>-Algorithmus auf das Profilduplikationsproblem übertragen wird, entspricht das<br />
Duplizieren den großen Kosten. Ein Offsetvektor stellt die Kostendifferenz zwischen allen möglichen Zuständen<br />
und dem optimalen Zustand dar und protokolliert die kleinen Kosten für Location-Lookup- und Location-Update-Operationen.<br />
Wenn die gesammelten Kosten für die Location-Lookup- oder Location-Update-<br />
Operationen größer oder gleich den Kosten für ein Kopieren sind, wird der Kopier- oder Löschvorgang<br />
durchgeführt.<br />
9
Mit diesem Prinzip ist der Kanten-Algorithmus in der Lage, eine Entscheidung über das Duplizieren oder<br />
Löschen des Benutzerprofils zu treffen. Die Entscheidungen sind in der Abbildung 4 dargestellt.<br />
Abbildung 4: Übergangsdiagramm (b)<br />
Nach der Betrachtung der Übergangsdiagramme kommt man zu folgendem Schluss:<br />
1. Die Übergangsdiagramme sind symmetrisch und jeder Offsetvektor ist erreichbar.<br />
2. Nur bei bestimmten Übergängen ist ein Kopier- oder Löschvorgang notwendig. In der Abbildung 4<br />
sind diese Übergänge mit dem Pfeil gekennzeichnet. Nur wenn die Summe der kleinen Kosten die<br />
großen Kosten für Duplizieren überschreitet, nämlich wi ( a ) = wi ( ab ) , wird das Benutzerprofil in<br />
den Knoten a kopiert. Außerdem wird beim Zustand s = ab eine Kopie im Knoten a gelöscht, wenn<br />
wi ( a ) = wi ( ab ) = D ist. In diesem Fall hat die Kopie im Knoten a die Netzwerkkosten ungünstig<br />
beeinflusst.<br />
Alle Zustandsänderungen können wie in Tabelle 3 zusammengefasst werden.<br />
wi si-1 si<br />
1 ( 0, D, D )<br />
b<br />
ab<br />
a<br />
a<br />
2 ( 0, 0, 0 )<br />
a<br />
b<br />
ab<br />
ab<br />
0, l, l 0 < l < D b ab<br />
3 ( )<br />
Tabelle 3: Zustandsänderung<br />
Nachdem die Idee der Übergangsdiagramme erläutert wurde, kann der Kanten-Algorithmus [5] für ein allgemeines<br />
D wie folgend <strong>for</strong>muliert werden:<br />
Kanten-Algorithmus:<br />
1. Wenn s ≠ ab und wi+1( s ) = wi+1( ab ) , wird das Profil kopiert, d.h. s’= ab;<br />
2. Wenn s=ab und w i+1( b ) = D, wird die Kopie im Knoten b gelöscht, d.h. s’ = a.<br />
10
2.4.3 Beweis<br />
Es ist noch zu beweisen, dass der Kanten-Algorithmus K ein effizienter Algorithmus ist. Tatsächlich ist er<br />
ein 3-Approximationsalgorithmus.<br />
Nach der Definition des Approximationsalgorithmus reicht es zu beweisen, dass für eine Folge von Anfragen<br />
σ gilt:<br />
cost ⎝ ⎛<br />
K( )<br />
σ<br />
opt ( σ )<br />
⎞<br />
⎠<br />
≤ 3 ⇔ cost ⎝ ⎛<br />
K( )<br />
11<br />
σ ⎞<br />
⎠ ≤ 3 ∗ opt ( σ ) . (7)<br />
Da nur die Differenz der Kosten in dieser Arbeit betrachtet wird, wird für den Beweis eine Hilfefunktion,<br />
nämlich die Potenzialfunktion [6], verwendet. Die Potenzialfunktion Φ ist eine häufig verwendete Methode<br />
zum Auffinden einer passenden Güte für einen Approximationsalgorithmus. Die Formel (7) muss gelten,<br />
wenn für eine bestimmte Potenzialfunktion Φ ≥ 0 gilt:<br />
cost ⎝ ⎛<br />
K( )<br />
Es ist dann äquivalent zu beweisen:<br />
σ ⎞<br />
⎠ + Φ ≤ 3 ∗ opt( σ ) . (8)<br />
K( )<br />
Δ cost ⎛<br />
⎝<br />
σj ⎞ + Δ Φ<br />
⎠ j ≤ 3 ∗ Δopt ( σj )<br />
(9)<br />
i<br />
i<br />
i<br />
weil ∑ Δcost ⎛K(<br />
σ ⎞<br />
⎝ j ) +<br />
⎠ ∑ Δ Φj = cost ⎛<br />
⎝K( σ ) ⎞<br />
⎠ + Φ ≤ 3 ∗ opt ( σ ) = 3 ∗ ∑ Δopt ( σj ) .<br />
j=1<br />
j=1<br />
j=1<br />
Eine passende Potenzialfunktion wurde im [5] vorgestellt.<br />
2*D - 2*k<br />
⎧<br />
Φ ( s, k ) = ⎨ 2*D - k<br />
für s=a<br />
für s=b<br />
⎩ D - k für s=ab<br />
Sei a ein zero-offset-state, wi ( s ) = ( 0, k, l ) mit 0 ≤ k ≤ l ≤ D, und Φ = 0 beim Anfang. Wir beweisen hier (9)<br />
durch Fallunterscheidung nur für k ≥ 1. Man kann analog beweisen für k = 0.<br />
Fall 1 (si+1 = a l ):<br />
Aus Tabelle 2 ergibt sich: Δ opt ( σj ) = 0 und wi+1( )<br />
(10)<br />
s =( 0, min ( k+1, l ) , l )<br />
1) Der Zustand vor der ( i+1 ) -te Eingabe ist a: (s = a) Nach dem Algorithmus ist keine Änderung er<br />
<strong>for</strong>derlich. D.h. s’=a. Da die Anfrage vom Knoten a so<strong>for</strong>t erfüllt werden kann, werden keine Netzwerkkosten<br />
verursacht. D.h. Δ cost ⎛<br />
⎝<br />
σi+1 ⎞ = 0 .<br />
ΔΦi+1 = Φ( a, min( l, k+1 ) ) - Φ( a, k )<br />
= ( 2D - 2min( ) )<br />
K( )<br />
k+1,l – ( 2D - 2k )<br />
= 2k - 2 min( k+1, l )<br />
≤ 0<br />
Die Behauptung Δ cost ⎝ ⎛<br />
2) Für s = b:<br />
K( )<br />
σj ⎞ + Δ Φ<br />
⎠ j ≤ 3 ∗ Δopt ( σj ) gilt.<br />
⎠
Wenn l ≤ k+1, wird das Benutzerprofil beim Knoten a kopiert: s’ = ab.<br />
Δ cost ⎛K(<br />
σ ⎞<br />
⎝ i+1 ) = D und ΔΦ<br />
⎠<br />
i+1 = Φ( ab, l ) - Φ ( b, k ) ≤ - D.<br />
Wenn l > k+1, ist keine Änderung notwendig: s’ = b.<br />
Δ cost ⎛K(<br />
σ ⎞<br />
⎝ i+1 ) = 1 und ΔΦ<br />
⎠<br />
i+1 =Φ( b, k+1 ) - Φ ( b, k ) ≤ - 1.<br />
3) Für s = ab :<br />
Wenn min( l, k+1 ) = D, wird das Benutzerprofil im Knoten b gelöscht: s’ = a.<br />
Δ cost ⎛K(<br />
σ ⎞<br />
⎝ i+1 ) = 0 und ΔΦ<br />
⎠<br />
i+1 ≤ - 1.<br />
Sonst ist keine Änderung er<strong>for</strong>derlich: s’ = ab.<br />
Δ cost ⎛K(<br />
σ ⎞<br />
⎝ i+1 ) = 0 und ΔΦ<br />
⎠<br />
i+1 ≤ -1.<br />
Insgesamt gilt die Behauptung für σi+1 = a λ .<br />
Der Rest des Beweises verläuft analog. Zusammengefasst ist der Kanten-Algorithmus ein 3-<br />
Approximationsalgorithmus.<br />
3. <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus<br />
3.1 Faktorisieren<br />
Der Kanten-Algorithmus ist nicht nur effizient für eine einzelne Kante, kann auch durch das Faktorisieren<br />
auf den gesamten Baum des MMTs eingesetzt werden.<br />
a, b aus dem Baum T erhält man zwei Teilbäume mit neuen Wurzeln a<br />
und b, nämlich Ta( a, b ) und Tb( a, b ) . Eine Anfrage aus Teilbaum Ta( a, b ) kann als eine Anfrage vom<br />
Knoten a angesehen. Wenn die Duplikatmenge R nur die Knoten aus Teilbaum Ta( a, b ) enthält, ist es äquivalent<br />
zu dem Zustand s=a in dem eben betrachteten reduzierten Kanten-Problem. s=ab ist für den Fall, dass<br />
Kopien des Benutzerprofils in beiden Teilbäumen vorhanden sind.<br />
Durch Entfernen irgendeiner Kante ( )<br />
Die Anfragen in der Baumstruktur werden nicht separat zu jedem Knoten geschickt, sondern entlang des<br />
Pfads verbreitet, bis die durch Anfragen verursachten Operationen durchgeführt werden. Wegen der Baumstruktur<br />
gehen alle Anfragen aus dem Teilbaum Ta( a, b ) , die im Tb( a, b ) angekommen sind, durch den<br />
Knoten a. Anders gesagt, sind alle Abfragen, die über a im Tb( a, b ) angekommen sind, aus Ta( a, b ) . Deswegen<br />
können alle Anfragen aus dem Teilbaum Ta( a, b ) auf die Anfragen aus dem Knoten a faktorisiert<br />
werden.<br />
Ausgehend von diesen Überlegungen kann ein <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus entwickelt werden.<br />
<strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus:<br />
1. Alle Kanten werden systematisch bearbeitet. Auf jeder Kante wird die erste Regel des Kanten-Algorithmus<br />
angewendet. Wenn eine Duplikation nach dem Kanten-Algorithmus er<strong>for</strong>derlich<br />
ist, wird das Benutzerprofil kopiert.<br />
2. Dann wird die zweite Regel des Kanten-Algorithmus für alle Kanten simuliert. Die Knoten,<br />
bei denen das Benutzerprofil nach dem Algorithmus gelöscht werden muss, werden markiert.<br />
12
3. Das Benutzerprofil in den markierten Knoten wird gelöscht.<br />
Offensichtlich, dass sich die Kosten des <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus für eine Anfragenfolge aus der<br />
Summe der Kosten des Kanten-Algorithmus für alle Kanten ergeben. Mit dem folgenden Lemma kann man<br />
zeigen, dass der <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus auch ein 3-Approximationsalgorithmus ist.<br />
Lemma 1:<br />
Gegeben sei ein Algorithmus A für das Profilduplikationsproblem und eine Anfragenfolge σ. Sei A ( a, b ) der<br />
auf eine Kante reduzierte Algorithmus und σab die auf diese Kante reduzierte Anfragenfolge. Es gilt:<br />
cost ⎝ ⎛<br />
A( )<br />
σ ⎞<br />
⎠ = ∑ cost ⎛A<br />
⎝ ( a, b ) ( σab ) ⎞<br />
⎠<br />
(11)<br />
( a, b) ∈ E<br />
Es sei opt ( σab ) die Kosten, die der optimale Algorithmus für eine Kante ( a, b ) und eine Anfragefolge σab bestimmt, dann erhält man<br />
∑ opt( σab ) ≤ opt ( σ ) .<br />
( a, b) ∈ E<br />
(12)<br />
Um die Richtigkeit des Einsatzes vom Kanten-Algorithmus in einem Baum zu beweisen, sollen zwei Behauptungen<br />
eingeführt werden:<br />
(H1) Egal nach wie vielen Kopier- oder Löschvorgängen bleiben alle Knoten, die das Profil des Benutzers<br />
enthalten, verbunden.<br />
(H2) Der Konflikt zwischen Duplizieren und Löschen im Algorithmus kann ausgeschlossen werden. D.h.<br />
es wird nicht passieren, dass ein Benutzerprofil, das gerade nach der ersten Regel kopiert wurde,<br />
nach der zweiten Regel des Algorithmus gelöscht wird.<br />
Bevor auf diese zwei Behauptungen eingegangen wird, sollen die wichtigsten Eigenschaften der baumartigen<br />
Struktur zunächst geklärt werden.<br />
Lemma 2:<br />
Es existiert immer ein Knoten r im Baum, der sich im zero-offset-state in dem betrachteten reduzierten Kanten-Problem<br />
befindet. Der Knoten wird Offsetwurzel genannt. Am Anfang liegt r bei dem Knoten, wo das<br />
einzige Benutzerprofil gespeichert ist.<br />
Mit dieser Offsetwurzel r kann man eine Ordnung „←“ für zwei verbundene Knoten definieren: a ← b bedeutet,<br />
dass a einen kürzeren Pfad zur Wurzel r als b hat. In diesem Fall wird der Knoten a near-end (NE)<br />
genannt, der Knoten b far-end (FE). Für einen gegebenen Knoten v ≠ r existiert garantiert ein Knoten u, so<br />
dass u ← v. Mit Hilfe dieser Ordnung kann der Pfad vom v zur Offsetwurzel r gefunden werden.<br />
Wenn die Offsetwurzel vorgegeben ist, kann man die Ordnung für den ganzen Baum eindeutig bestimmen.<br />
Aber zu beachten ist, dass die Lage der Offsetwurzel nicht unverändert bleibt. Die ändert sich ständig wegen<br />
Anfragen und Bewegungen der Benutzer.<br />
13
Lemma 3:<br />
Sei ( a, b ) eine Kante aus dem Baum T. Das Benutzerprofil befindet sich im Teilbaum Ta . Sei c ≠ a ein<br />
Nachbar von b. Die Offsetvektoren für ( a, b ) und ( b, c ) sind ( 0, kab , lab ) und ( 0, kbc , lbc ) . Und es<br />
folgt:<br />
1) lab ≤ lbc 2) kab ≤ kbc 3) Wenn kbc =0, dann gilt: kab =0 und lab = lbc 4) l ab - k ab ≥ l bc - k bc<br />
Wenn das Benutzerprofil im Teilbaum Tb gespeichert ist, sind die Offsetvektoren von ( a, b ) und ( b, c ) jeweils<br />
( kab , 0, lab ) und ( 0, kbc , lbc ) . Es gilt: lab ≥ lbc - kbc .<br />
Im folgenden wird gezeigt, dass die zwei Behauptungen (H1) und (H2) wahr sind.<br />
Beweis:<br />
Der Beweis verwendet die induktive Methode über die Anzahl der Anfragen. Es wird angenommen, dass am<br />
Anfang nur ein Knoten im Baum das Profil des Benutzer besitzt.<br />
Induktionsanfang: Es ist klar, dass die Behauptungen für i=0 gelten.<br />
Induktionsvoraussetzung: Es wird angenommen, dass die Behauptung gilt, nach dem die ersten i Anfragen<br />
bearbeitet wurden.<br />
Induktionsschluss: Man betrachtet die Operationen für die i+1-te Anfrage. Die Operationen für Duplizieren<br />
und Löschen werden hier getrennt beobachtet.<br />
Für eine Kante ( a, b ) entscheidet der Algorithmus für ein Duplikat im Knoten a. Das bedeutet, dass das Benutzerprofil<br />
vor dem Eintritt der i+1-ten Anfrage im Knoten b gespeichert ist (s=b). Nach dem Übergangsdiagramm<br />
besteht nur die Möglichkeit: wi+1( s ) = ( 0, l, l ) mit 0 ≤ l ≤ D. Entsprechend im Beispiel mit D=2<br />
kann wi ( s ) nur ein Element aus { ( 0, 0, 1 ) , ( 1, 0, 1 ) , ( 0, 1, 2 ) } sein. Sei Q der Pfad von a zu dem ersten<br />
gefunden Knoten, der das Benutzerprofil enthält. Wenn b das Benutzerprofil nicht enthält, kann man nach<br />
Lemma 3 schließen, dass der Offsetvektor beliebiger Kante auf dem Pfad Q vor der i+1-ten Anfrage entwe-<br />
der ( 0 ,0 ,1 ) , ( 1, 0, 1 ) oder ( )<br />
0, 1, 2 ist. Das heißt, dass alle Knoten auf dem Pfad eine Kopie des<br />
Benutzerprofils verlangen. Daraus folgt, dass alle Knoten, die über eine Kopie verfügen, verbunden bleiben.<br />
Weil jede Kante auf dem Pfad Q die Kostendifferenzfunktion mit der Form wi+1 (s) = ( 0, l, l ) mit l < D hat,<br />
werden die neu hinzugefügten Duplikate nicht nach (R2) gelöscht.<br />
Analog wird der Beweis für eine Löschoperation des Duplikates gezeigt. Angenommen, dass der Algorithmus<br />
den Knoten b markiert. Nach dem Übergangsdiagramm kann man folgendes feststellen: s=ab und<br />
wi+1( s ) = ( 0, D, D ) , weil es nur einen Übergang gibt, nämlich von ( 0, D-1, D ) nach ( 0, D, D ) . Man betrachtet<br />
die Pfadmenge P , die alle Pfade von b zu allen gefunden Knoten im Teilbaum Tb( a, b ) enthält, in<br />
denen das Benutzerprofil gespeichert ist. Wenn das Pfad aus P nicht nur aus b besteht, sind alle Kanten<br />
( x, y ) entlang des Pfades im Zustand s=xy. Aus Lemma 3 ergibt sich, dass wi+1( s ) = ( 0, D, D ) für alle Kanten<br />
( x, y ) entlang des Pfades in P gilt. Nach dem Algorithmus muss man alle Kopien des Benutzerprofils<br />
entlang aller Pfaden aus P markieren und danach löschen.<br />
Nach diesem Beweis kann der <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus so <strong>for</strong>muliert werden:<br />
14
Wenn eine Kopie im Knoten a verlangt wird, wird das Benutzerprofil in die Knoten auf dem Pfad von a bis<br />
zu den ersten gefunden Knoten mit dem Duplikat kopiert. Wenn ein Löschen bei Knoten b erwünscht wird,<br />
werden alle Duplikate im Teilbaum Tb( a, b ) gelöscht.<br />
3.2 Verbreitungskosten<br />
Im <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus spielen die Offsetvektoren eine entscheidende Rolle. Der Offsetvektor<br />
für eine Kante muss in den beiden Knoten dieser Kante gespeichert. Da die Vektoren konsistent und<br />
aktuell gehalten werden müssen, entstehen die Kosten für die Verbreitung.<br />
Abbildung 5: Verbreitungsbeispiel<br />
Ein Beispiel mit einer Kante ( a, b ) wird in der Abbildung 5 dargestellt. Wenn eine Location-Lookup-<br />
Anfrage aus a lokal bearbeitet und der Offsetvektor geändert wurde, muss die Änderung dem Knoten b auch<br />
mitgeteilt werden. Diese Kosten werden Verbreitungskosten genannt. Wenn der Knoten a kein Duplikat des<br />
Benutzerprofils besitzt, entstehen auch keine Verbreitungskosten, weil die Anfrage erst beim Knoten b bearbeitet<br />
wird. Analog gilt es auch für eine Location-Update-Anfrage. Eine Mitteilung vom Knoten a nach b ist<br />
erst nötig, wenn der Offsetvektor im Knoten a geändert wurde und der Knoten b kein Duplikat des Benutzerprofils<br />
besitzt.<br />
Nun stellt sich die Frage, ob diese Verbreitungskosten die Effizienz des Algorithmus ändern? Glücklicherweise<br />
ist die obere Grenze der Laufzeit des <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus so groß, dass die Laufzeit<br />
des Verbreitungsalgorithmus darin untergeht [7]. Trotzdem werden die Verbreitungskosten studiert, um eine<br />
Möglichkeit für eine Reduktion der Verbreitungskosten zu finden.<br />
3.2.1 Intelligente Verbreitung<br />
Die erste Überlegung ist, ob es wirklich nötig ist, die Mitteilung durch das ganze Netzwerk zu verbreiten.<br />
Aus dem Lemma 2 und Lemma 3 folgt:<br />
Lemma 4:<br />
Wenn der Offsetvektor der Kante ( a, b ) nach einer Anfrage aus Knoten a nicht geändert wurde, bleiben alle<br />
Offsetvektoren im Teilbaum Tb( a, b ) unverändert.<br />
Beweis:<br />
Der Offsetvektor der Kante ( a, b ) sei ( 0, kab , lab ) . Nach dem Übergangsdiagramm ist es nur für drei Offsetvektoren<br />
möglich, nach einer bestimmten Anfrage unverändert zu bleiben. Es sind ( 0, D, D ) , ( 0, l, l ) und<br />
0, 0, 0 mit ( 0 < l < D).<br />
( )<br />
1) ( 0, kab , lab ) = ( 0, D, D ) : Der Vektor ändert sich nicht nach den Anfragen a λ und a δ .<br />
Sei ( )<br />
u, v eine beliebige Kante im Teilbaum T b( )<br />
a, b und der Offsetvektor ( )<br />
0, k uv , l uv . Nach<br />
dem Lemma 3 folgt aus:<br />
15
Da k ab = l ab = D, muss k uv = l uv =D sein.<br />
Der Offsetvektor der Kante ( )<br />
a λ und a δ unverändert.<br />
l ab ≤ l uv und k ab ≤ k uv<br />
u, v ist auch ( 0, D, D ) und bleibt deswegen auch nach den Anfragen<br />
2) ( 0, kab , lab ) = ( 0, l, l ) : Der Vektor ändert sich nicht nach der Anfrage a λ .<br />
Eine beliebige Kante im Teilbaum Tb( a, b ) hat den Offsetvektor ( 0, l, l ) .<br />
3) ( 0, kab , lab ) = ( 0, 0, 0 ) : Der Vektor ändert sich nicht nach den Anfragen a λ und b λ .<br />
Nach der Anfrage a λ ist der Offsetvektor einer beliebigen Kante im Teilbaum ( 0, l, l ) mit 0
Lookup-Anfrage aus NE oder FE kommt, was die einzige nötige In<strong>for</strong>mation für die Änderung des<br />
Offsetvektors ist.<br />
Angenommen, dass der Knoten v eine Location-Lookup-Anfrage veranlasst. Für jede Kante auf dem<br />
Pfad von v bis zur Offsetwurzel r ist die Anfrage aus v eine Anfrage aus FE, während die Anfrage<br />
für alle anderen Kanten eine Anfrage aus NE ist.<br />
Zusammengefasst müssen folgende In<strong>for</strong>mationen für eine verzögerte Verbreitung gespeichert werden:<br />
a. Der Knoten im zero-offset-state notiert die Anzahl aller Location-Lookup-Anfragen seit den<br />
letzten Location-Update-Anfragen: L.<br />
b. Jede Kante ( )<br />
tion-Update-Anfragen, die sie weitergeleitet hat, nämlich alle Anfragen aus FE: l( )<br />
a,b speichert die Anzahl der Location-Lookup-Anfragen seit den letzten Loca-<br />
a,b .<br />
Die Differenz zwischen L und l( a,b ) ist die Anzahl der Anfragen aus NE.<br />
• Wann und wie soll die Verbreitung stattfinden?<br />
Zum letzten ist nur die Frage geblieben, wann und wie die gespeicherten Anfragen der anderen Knoten<br />
mitgeteilt werden sollen. Eine gute Lösung wäre, dass die Location-Update-Anfrage die Verbreitung<br />
auslöst, da die Location-Update-Anfrage garantiert zur Offsetwurzel geschickt wird.<br />
Die Offsetwurzel teilt allen anderen Knoten die Zähler L mit. Für jede Kante ( a,b ) soll eine<br />
nachträgliche Änderung für L – l ( a,b ) Anfragen aus NE vorgenommen werden, da die Offsetvektoren<br />
für die Anfragen aus FE während der Weiterleitung der Anfragen angepasst werden.<br />
3.3 Beispiel<br />
In diesem Abschnitt wird ein Vergleich der beiden Verbreitungsverfahren durch ein Beispiel dargestellt.<br />
Angenommen, dass das Benutzerprofil am Anfang (Abbildung 6) in den Knoten b, d, e, h, j gespeichert ist.<br />
Der Benutzer befindet sich zur Zeit entweder in der Zone h oder j. Die vom Anfangszustand bestimmten<br />
Offsetvektoren sind an den Kanten abgebildet, aber sie ändern sich ständig nach dem Kommunikationsverhalten<br />
des Benutzers.<br />
1. Anfrage ( o d ):<br />
Abbildung 6: Beispiel -Anfangszustand<br />
Der Benutzer dringt in die Zone o ein und veranlasst eine Location-Update-Operation. In diesem Fall verhalten<br />
sich die beiden Verbreitungsverfahren vollkommen gleich. Die Mitteilung erreicht die Kante ( c, f ) und<br />
17
wird dann abgebrochen, da sich der Offsetvektor der Kante ( c, f ) nicht geändert hat. Da diese Mitteilung mit<br />
der Location-Update-Anfrage mitgeschickt werden kann, werden keine zusätzlichen Netzwerkkosten verursacht.<br />
2. Anfrage ( h d ):<br />
Abbildung 7: Beispiel (a) –Location-Update-Anfrage aus Knoten o<br />
Der Benutzer bewegt sich in die Zone h. Analog gilt es auch für die zweite Anfrage.<br />
3. Anfrage ( k l ):<br />
Abbildung 8: Beispiel (b) –Location-Update-Anfrage aus Knoten h<br />
Der Benutzer wird von der Zone k angerufen, d.h. eine Location-Lookup-Anfrage wird vom Knoten k initiiert.<br />
Das durch intelligente Verbreitung erzeugte Ergebnis wird in der Abbildung 9 dargestellt. Nach dem<br />
Verfahren der intelligenten Verbreitung wird die Mitteilung nur bis zur Kante ( a, b ) geschickt. Nach dem<br />
Verfahren der verzögerten Verbreitung findet aber noch keine Mitteilung statt. Deswegen bleiben alle Offsetvektoren<br />
unverändert, wie die Abbildung 8 dargestellt. Der Knoten h kann hier als Offsetwurzel betrachtet<br />
werden. Es wird dann protokolliert: L=1; l ( e, k ) =1.<br />
Abbildung 9: Beispiel (c) –Location-Lookup-Anfrage aus Knoten k<br />
18
4. Anfrage ( j l ):<br />
Weiterhin wird der Benutzer von der Zone j angerufen. Analog zur dritten Anfrage wird nach dem Verfahren<br />
der verzögerten Verbreitung protokolliert: L=2; l ( e, k ) =1; l ( e, j ) =1.<br />
Angenommen, dass die fünfte Anfrage ein Location-Update ist. Nach der verzögerten Verbreitung sollen die<br />
gespeicherten In<strong>for</strong>mationen über die dritte und vierte Anfragen weitergegeben werden. Für die Kanten<br />
( e, k ) und ( e, j ) ist nur die durch eine Anfrage aus NE verursachte Änderung des Offsetvektors nötig. Für die<br />
anderen Kanten dagegen sind die durch zwei Anfragen aus NE verursachte Änderung er<strong>for</strong>derlich. Das Ergebnis<br />
(Abbildung 10) stimmt mit dem der intelligenten Verbreitung überein.<br />
Abbildung 10: Beispiel (d) –Location-Lookup-Anfrage aus Knoten j<br />
Wenn die Verbreitungskosten von einer zur nächsten Kante als eine Einheit betrachtet werden, können die<br />
Kosten in diesem Beispiel wie in Tabelle 4 dargestellt werden. Offensichtlich kann die verzögerte Verbreitung<br />
bessere Werte erreichen.<br />
Intelligente Verbreitung Verzögerte Verbreitung<br />
o d 0 0<br />
h d 0 0<br />
k l 4 0<br />
j l 4 0<br />
l 0 5<br />
Gesamt 8 5<br />
Tabelle 4: Kosten für intelligente Verbreitung und verzögerte Verbreitung<br />
4. Simulation und Bewertung<br />
Um die Leistung des <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus zu bewerten und einen Vergleich mit anderen<br />
Algorithmen zu machen, wurde im [7] eine Simulation vorgestellt.<br />
4.1 Simulationseinsatz<br />
Der Versuch modelliert das Telekommunikationsnetz der zehn größten Städte in Amerika (Abbildung 11).<br />
Jede Stadt wird in mehrere Zonen aufgeteilt. Die Benutzer können sich in diesen Zonen und zwischen diesen<br />
Städten frei bewegen. Alle Datenbanken, in denen die Benutzerprofile gespeichert sind, werden hierarchisch<br />
nach der vorgestellten MMT verwaltet.<br />
19
Abbildung 11: Simulationsnetzwerk<br />
Dieses Modell basiert auf realistischen Verkehrsdaten und berücksichtigt das menschliche Verhalten, insbesondere<br />
wird der Unterschied zwischen Tag und Nacht betrachtet. In der Simulation studiert man das Kommunikationsverhalten<br />
von etwa 100.000 Benutzern.<br />
In der Simulation werden insgesamt folgende fünf Methoden zur Lokalisierungsverwaltung eingesetzt:<br />
1) HLR/VLR<br />
Wie im ersten Kapitel vorgestellt, wird diese Methode in GSM eingesetzt.<br />
2) Hierarchische MMT ohne Duplikate (Hier)<br />
Die Datenbanken sind ebenfalls in einer Baumstruktur angeordnet. Aber es sind keine Duplikate<br />
erlaubt.<br />
3) <strong>Hierarchical</strong> <strong>On</strong><strong>line</strong> Parametric ProfilE <strong>Replication</strong> (HOPPER) [8]<br />
Diese Methode erstellt eine Statistik von Anrufen und Bewegungen der Benutzer und berechnet<br />
local call to mobility ratio (LCMR) durch<br />
LCMRi,j = Ci j<br />
, (13)<br />
Mi wobei Ci,j für die Anzahl der Anrufe für Benutzer i aus Zone j steht und Mi für die Anzahl der<br />
Bewegungen des Benutzers i in einem Zeitraum.<br />
Dieser Algorithmus entscheidet das Hinzufügen oder das Löschen der Duplikate durch drei weitere<br />
Parameter: N max , R repl , R del . N max bestimmt die maximale Anzahl von erlaubten Dup-<br />
likaten eines Benutzers. Wenn LCMR i,j den Schwellenwert von R repl überschritt, wird ein<br />
Duplikat vom Benutzerprofil i in die Datenbank j hinzugefügt. Ist LCMR i,j kleiner als R del ,<br />
wird das Profil vom Benutzer i in der Datenbank j gelöscht.<br />
In der Simulation wird es angenommen: N max =30 , R repl = 1, R del =1.<br />
4) Off<strong>line</strong>-Algorithmus [1]<br />
(a) Off-<strong>line</strong> Die Entscheidung basiert auf den aktuellen Verkehrsdaten.<br />
20
(b) Off-<strong>line</strong>:IT Die Entscheidung basiert auf den Verkehrsdaten des vorherigen Tages.<br />
5) <strong>On</strong><strong>line</strong>-Algorithmus<br />
Weil mehrere Möglichkeiten über die Reduzierung der Verbreitungskosten in dieser Arbeit besprochen<br />
sind, werden sie auch getrennt ausgewertet.<br />
(a) <strong>On</strong>-<strong>line</strong>:NR Die Kosten für Verbreitung werden nicht reduziert.<br />
(b) <strong>On</strong>-<strong>line</strong>:SM mit intelligenter Verbreitung<br />
(c) <strong>On</strong>-<strong>line</strong>:DL mit verzögerter Verbreitung<br />
Es wird angenommen, dass die Kosten für das Erstellen eines Duplikates (D) gleich zwei sind.<br />
4.2 Simulationsergebnis<br />
Die gesamten Netzwerkkosten ergeben sich aus der Summe von Location-Lookup-Kosten, Location-Update-<br />
Kosten und den mit dem Duplizieren verbundenen Kosten, nämlich den Verbreitungskosten.<br />
Abbildung 12: Netzwerkkosten der Verfahren im Vergleich<br />
In der Abbildung 12 werden die gesamten Kosten pro Sekunde innerhalb von einem Tag dargestellt. Die drei<br />
besten Algorithmen sind Off<strong>line</strong>, <strong>On</strong><strong>line</strong> und Hier. HLR/VLR verursacht die größten Kosten, weil das System<br />
zentralisiert arbeitet. Die hierarchische MMT basiert auf einem verteilten System und skaliert besser.<br />
Der Off<strong>line</strong>-Algorithmus ist der beste, weil er perfekte Kenntnisse über den Netzwerkverkehr hat. Die meisten<br />
Location-Lookup-Anfragen können lokal erfüllt, ohne das Netzwerk zu belasten. Aber wenn der Netzverkehr<br />
von Tag zu Tag stark ändert, hat der Off<strong>line</strong>-Algorithmus mit den Daten des vorherigen Tages keinen<br />
Vorteil mehr. In diesem Fall trifft der <strong>On</strong><strong>line</strong>-Algorithmus bessere Entscheidungen. Die Abbildung 12<br />
zeigt deutlich, dass die Verbreitungskosten eine wichtige Rolle in den Gesamtkosten spielen und durch inte lligente<br />
Verbreitung und verzögerte Verbreitung stark reduziert werden.<br />
21
Abbildung 13: Netzwerkkosten bei verteilten Ansätzen<br />
In der Abbildung 13 sind die Ergebnisse der unterschiedlichen verteilten Ansätze für das MMT dargestellt.<br />
Der <strong>On</strong><strong>line</strong>-Algorithmus mit intelligenter Verbreitungskosten und verzögerten Verbreitungskosten ist besser<br />
als HOPPER.<br />
Abbildung 14: Location-Lookup-Kosten<br />
In der Abbildung 14 werden die Location-Lookup-Kosten vom drei Algorithmen verglichen. Wieder zeigt<br />
der <strong>On</strong><strong>line</strong>-Algorithmus ein besseres Ergebnis als HOPPER.<br />
22
5. Zusammenfassung<br />
In dieser Arbeit wurde ein <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus vorgestellt, der die gesamten Telekommunikationsnetzwerkkosten<br />
in einer hierarchischen Baumstruktur reduziert.<br />
Durch Simulation wird gezeigt, dass die meisten Location-Lookup-Anfragen lokal erfüllt werden können. In<br />
diesem Fall hat ein verteiltes System immer einen Vorteil als das zentralisierte System. Nicht zu vergessen<br />
ist, dass die Location-Lookup-Kosten durch Duplikate des Benutzerprofils stark reduziert werden, dafür aber<br />
höhere Location-Update-Kosten und höhere Speicherbedarf mit sich bringen. Der Schwerpunkt des <strong>On</strong><strong>line</strong>-<br />
Profilduplikations-algorithmus ist, beide Kosten zu balancieren, damit die gesamten Netzwerkkosten minimal<br />
bleiben.<br />
Da der Algorithmus den Offsetvektor als Schlüssel zu der Entscheidung benutzt, ist es wichtig, die Offsetvektoren<br />
aller Kanten konsistent zu halten. Dadurch entstehen noch die Verbreitungskosten. Um diese Kosten<br />
zu minimieren, werden zwei wichtige Verfahren, intelligente und verzögerte Verbreitung verwendet.<br />
Möchte man den <strong>On</strong><strong>line</strong>-Profilduplikationsalgorithmus in die Praxis einsetzen, sollte man sich weitere Verbesserungsmöglichkeiten<br />
überlegen. Zum Beispiel können mehrere verteilte Datenbanken auf der Wurzelebene<br />
bessere Flexibilität und niedrigere Kosten gewährleisten als eine einzige Datenbank für alle Benutzerprofile.<br />
23
Literatur:<br />
[1] Q.Tian, D.C.Cox: Optimal replication algorithmus <strong>for</strong> hierarchical mobility management in PCS<br />
networks, Computer Networks 38 (2002) S 447-459.<br />
[2] J.Hromkovic: Algorithmics <strong>for</strong> hard Problems, Springer-Verlag, 2001.<br />
[3] M.Chrobak, L.L.Larmore: The server problem and on-<strong>line</strong> games, in Proc. of the DIMACS Workshop<br />
on <strong>On</strong>-Line Algorithms, AMS, Providence, RI, 1991, S 11-64.<br />
[4] Y. Bartal, <strong>On</strong>-<strong>line</strong> Computation & Network Algorithms,<br />
http://www.icsi.berkeley.edu/~yairb/courses/on-<strong>line</strong>/on-<strong>line</strong>-course.html, 1997.<br />
[5] C.Lund, N.Reingold, J. Westbrook, D. Yan: Competitive on-<strong>line</strong> algorithms <strong>for</strong> distributed data<br />
management, SIAM Journal on Computing, vol. 38, no. 3, S 1086-1111, Mar 1999.<br />
[6] Dorit S.Hochbaum: Approximation Algorithmus <strong>for</strong> NP-Hard Problems, PWS Publishing Company,<br />
Boston, MA, 1997, S 533.<br />
[7] Q.Tian, D.C.Cox: <strong>On</strong>-<strong>line</strong> profile replication <strong>for</strong> hierarchical mobility management in PCS networks,<br />
http://citeseer.nj.nec.com/tian02<strong>line</strong>.html, 2002.<br />
[8] D.Lam, Y.W.Wei, D.C.Dox, J.Widom: A location management technique to support lifelong numbering<br />
in personal communications servies, in Proceedings of GLOBECOM’97, Phoenix, AZ, USA,<br />
Nov 1997, vol. 2, S704-710.<br />
[9] F.Bergmann, H.J.Gerhardt: Handbuch der Telekommunikation, Juni 2002.<br />
[10] K.P.Eswaran: Placement of records in a file and file allocation in a computer network, In Proceedings<br />
of the IFIP Congress on In<strong>for</strong>mation Processing, North Holland, S 304-307, 1974.<br />
24