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