05.02.2013 Aufrufe

On-line Profile Replication for Hierarchical Mobility Management

On-line Profile Replication for Hierarchical Mobility Management

On-line Profile Replication for Hierarchical Mobility Management

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!