-
Diese
Erfindung bezieht sich auf das Gebiet des Netzmanagements und insbesondere
auf das Management komplexer Datenkommunikationsnetze.
-
Kommunikationsnetze,
wie z. B. das Internet, sind wahrscheinlich die komplexesten Maschinen,
die durch die Menschheit gebaut worden sind. Die Anzahl möglicher
Ausfallzustände
in einem Hauptnetz ist so groß,
dass es sogar unmöglich
ist, sie zu zählen.
Die Bestimmung des Zustands, in dem sich das Netz zu irgendeinem
Zeitpunkt befindet, mit großer
Genauigkeit ist deshalb nicht möglich.
Außerdem
sind die Datennetze, wie z. B. das Internet, einer Mischung aus
einer deterministischen und einer stochastischen Last unterworfen
(siehe V. Paxson und S. Floyd, "Wide
Area Traffic: The Failure of Poisson Modelling", IEEE/ACM Transactions on Networking 3,
(3), S. 226-244, 1995, u. S. Gribble und E. Brower, "System Design Issues
for Internet Middleware Services: Deductions from a Large Client
Trace", Proceedings
of the USENIX Symposium on Internet Technologies and Systems (USITS '87), Dezember 1997).
Die Reaktion des Netzes auf diesen Verkehrstyp ist chaotisch (siehe
M. Abrams u. a., "Caching Proxies:
Limitations and Potentials ",
Proc. 4th Inter. World-Wide Web Conference, Boston, MA, Dez. 1995),
wobei folglich die Variation des Netzzustandes im hohen Grade divergent
ist und genauere Vorhersagen der Netzleistung eine Kenntnis des
aktuellen Netzzustandes erfordern, die genauer ist, als sie erhalten
werden kann. Künftige
Netze, die eine vergrößerte Intelligenz
besitzen werden, werden noch komplexer sein und ein weniger gefügiges Management besitzen.
Es ist ein Netzmanagement-Paradigma erforderlich, das die Netzleistung
angesichts fraktaler Anforderungen ohne ausführliche Kenntnis des Zustands
des Netzes aufrechterhalten kann und das den nicht erwarteten künftigen
Anforderungen gerecht werden kann.
-
Goldszmidt,
G. S.,: 'Load Management
for scaling up Internet services',
NOMS '98, 1998 IEEE Network
Operations and Management Symposium, New Orleans, LA, 15.-20. Feb.
1998, IEEE Network Operations and Management Symposium, New York, NY:IEEE,
USA, Bd. 3 CONF. 10, 15. Februar 1998 (1998-02-15), Seiten 828-835,
XP000793430, ISBN: 0-7803-4352-2, beschreibt ein Netz, in dem das
Management der Last mit einer Anwendung ausgeführt wird, die als NetDispatcher
bezeichnet wird. Die Anforderungen, die mit virtuellen IP-Adressen
adressiert sind, werden zum NetDispatcher-Host weitergeleitet, der
sie dann entsprechend den Informationen, die er über die aktuellen Lasten der
Server besitzt, einem von mehreren ähnlichen Servern zuordnet.
-
EP-A-0
384 339 beschreibt ein Computer-Netz, das einen Makler-Mechanismus besitzt,
der Dienstanforderungen von Client-Vorrichtungen empfängt und
diese anhand einer Netzstrategie, die durch einen Netzingenieur
bestimmt und periodisch gewartet wird, einer geeigneten Server-Vorrichtung zuordnet.
Ein Server, dem eine Anforderung von einer Client-Vorrichtung zugeordnet
wird, prüft
seinen eignen aktuellen Status und vergleicht diesen mit einer lokalen
Strategie, die durch einen Netzingenieur bestimmt und periodisch
gewartet wird, wobei er, falls der Vergleich günstig ist, den angeforderten
Dienst ausführt.
-
Biologisch
angeregte Algorithmen (z. B. genetische Algorithmen [GAs] und neuronale
Netze) sind in vielen Fällen
erfolgreich verwendet worden, in denen gute Lösungen für schwierige (hier wird der Begriff 'schwierig' verwendet, um ein
Problem darzustellen, das unter Verwendung von Brechstangenverfahren
rechnerisch unmöglich
ist) Probleme dieses Typs erforderlich sind (siehe C. M. Roedknight
u. a., "Modelling
of complex environmental data",
IEEE Transactions on Neural Networks, Bd. 8, Nr. 4, S. 852-862,
1887, u. D. Goldberg, "Genetic
Algorithms in Search, Optimization and Machine Learning", Addison-Wesley,
1989). Sie simulieren evolutionäre Verfahren
oder neuronale Aktivierungswege in Software, wobei diese dann als
Problemlösungswerkzeuge
wirken. Sie können
dies tun, weil sie den Zugang eines unbeschriebenen Blattes zur
Problemlösung verwenden,
sie können
aus Erfolgen und Misserfolgen lernen, wobei sie aufgrund mehrerer
adaptiver Rückkopplungsschleifen
die Optima in einem fraktalen Suchraum schnell finden können.
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung wird ein Knoten geschaffen,
wie er im Anspruch 1 dargelegt ist. Es ist bevorzugt, dass, wenn
der Aktivitätsindikator
einen ersten oberen Schwellenwert erreicht, dann der Knoten eine
oder mehrere Knotenstrategien exportieren kann. Dies schafft den
Vorteil, dass die Strategien erfolgreicher Knoten für die mögliche Verwendung
durch andere Knoten exportiert werden können. Außerdem kann, wenn der Aktivitätsindikator
einen zweiten oberen Schwellenwert erreicht, dann der Knoten alle
Knotenstrategien kopieren, um einen Klon des Knotens zu erzeugen.
Der zweite obere Schwellenwert kann ein Wert des Aktivitätsindikators
sein, der größer als
der erste obere Schwellenwert ist, oder er kann während einer
gegebenen Zeitdauer den ersten oberen Schwellenwert halten. Der
Vorteil dessen besteht darin, dass die Knoten, die während längerer Perioden fortgesetzt
erfolgreich sind, kopiert werden, was das Überleben der Angepasstesten
sicherstellt.
-
Es
ist außerdem
bevorzugt, dass, wenn der Aktivitätsindikator einen ersten unteren
Schwellenwert erreicht, dann der Knoten eine weitere Knotenstrategie
importieren kann. Dies schafft den Vorteil, dass erfolglose Knoten
Strategien von erfolgreichen Knoten erwerben können, um die erfolglosen Knoten zu
verbessern. Wenn der Aktivitätsindikator
einen zweiten unteren Schwellenwert erreicht, dann kann außerdem der
Knoten eine freigegebene Knotenstrategie unterdrücken und eine inaktive Knotenstrategie freigeben.
Der zweite untere Schwellenwert kann ein Wert des Aktivitätsindikators
sein, der niedriger als der erste untere Schwellenwert ist, oder
er kann während
einer gegebenen Zeitdauer den ersten unteren Schwellenwert halten.
Dies schafft den Vorteil, dass unproduktive Strategien aufgegeben
werden können, damit
andere Strategien verwendet werden können. Wenn außerdem der
Aktivitätsindikator
einen zweiten unteren Schwellenwert erreicht und der Knoten keine inaktiven
Knotenstrategien besitzt, dann kann der Knoten sich selbst löschen. Der
Vorteil dessen besteht darin, dass die Knoten, die während längerer Perioden
fortgesetzt erfolglos sind, aus dem Netz entfernt werden, so dass
die Verarbeitung der Dienstanforderungen in den erfolgreichen Knoten konzentriert
werden kann.
-
Außerdem können eine
oder mehrere der Variable innerhalb einer Knotenstrategie zufällig verändert: werden,
was erlaubt, dass die Heterogenität der Knotenstrategien im Netz
vorteilhaft vergrößert wird.
Das Mehrfachdienst-Kommunikationsnetz kann unter Verwendung eines
Datenträgers,
der Computerknotenmittel umfasst, implementiert sein, wie oben beschrieben
worden ist.
-
Gemäß einem
zweiten Aspekt der Erfindung wird ein Mehrfachdienst-Kommunikationsnetz
geschaffen, wie es im Anspruch 17 dargelegt ist. Vorzugsweise ist
das Kommunikationsnetz so konfiguriert, dass es einen zusätzlichen
Dienst durch das Einfügen
einer zusätzlichen Knotenstrategie
in das Netz verarbeitet. Die zusätzliche
Knotenstrategie kann so in das Mehrfachdienst-Kommunikationsnetz eingefügt werden,
dass ein Knoten die zusätzliche Knotenstrategie
importieren kann oder alternativ die zusätzliche Knotenstrategie direkt
in einen vorhandenen Knoten eingefügt werden kann. Als eine weitere Alternative
kann die zusätzliche
Knotenstrategie direkt in einen neu erzeugten Knoten eingefügt werden.
-
Dies
schafft den Vorteil, dass das Netz hochgerüstet werden kann, indem einfach
eine neue Strategie hinzugefügt
wird, die einem oder mehreren der Netzknoten erlaubt, den neuen
Diensttyp zu verarbeiten. Dies beseitigt jede Notwendigkeit, das
Netz oder irgendeinen Teil von ihm abzubauen, damit Hardware und/oder
Software ersetzt oder neu konfiguriert wird, wie es gegenwärtig erforderlich
ist.
-
Das
Mehrfachdienst-Kommunikationsnetz kann unter Verwendung eines Datenträgers, der Computerknotenmittel
umfasst, implementiert sein, wie oben beschrieben worden ist.
-
Gemäß einem
dritten Aspekt der Erfindung wird ein Verfahren zum Betreiben eines
Knotens geschaffen, wie es im Anspruch 22 dargelegt ist.
-
Gemäß einem
vierten Aspekt der Erfindung wird ein Verfahren zum Hochrüsten eines
Mehrfachdienst-Kommunikationsnetzes geschaffen, wie es im Anspruch
24 dargelegt ist. Dies schafft den Vorteil, dass das Netz hochgerüstet werden
kann, indem einfach eine neue Strategie hinzugefügt wird, die einem oder mehreren
der Netzknoten erlaubt, den neuen Diensttyp zu verarbeiten. Dies
beseitigt jede Notwendigkeit, das Netz oder irgendeinen Teil von
ihm abzubauen, damit Hardware und/oder Software ersetzt oder neu
konfiguriert wird, wie es gegenwärtig
erforderlich ist.
-
Ein
Typ der Dienstanforderungen kann in Übereinstimmung mit einer angepassten
Knotenstrategie vorzugsweise verarbeitet werden. Es ist bevorzugt,
dass die bevorzugte Verarbeitung der Dienstanforderung durch eine
Dienstanforderungsfunktion bestimmt wird, in der die Dienstanforderungsfunktion die
Lebensdauer oder alternativ der aus der Verarbeitung der Dienstanforderung
abgeleitete Wert sein kann.
-
Gemäß einem
fünften
und einem sechsten Aspekt der Erfindung werden Befehle, die in einem Prozessor
implementierbar sind, wie sie im Anspruch 29 dargelegt sind, bzw.
ein Trägermedium,
wie es im Anspruch 30 dargelegt ist, geschaffen.
-
Die
Erfindung wird nun lediglich beispielhaft unter Bezugnahme auf die
folgenden Figuren beschrieben, worin:
-
1 eine
schematische Darstellung eines Mehrfachdienst-Kommunikationsnetzes
gemäß der vorliegenden
Erfindung zeigt;
-
2 eine
schematische Darstellung der Reaktion eines Mehrfachdienst-Kommunikationsnetzes
gemäß der vorliegenden
Erfindung auf verschiedene Niveaus des Netzverkehrs zeigt;
-
3 eine graphische Darstellung der Reaktion
eines Mehrfachdienst-Kommunikationsnetzes gemäß der vorliegenden Erfindung
auf die Einführung
von neuen Diensttypen in das Netz zeigt;
-
4 eine graphische Darstellung der Reaktion
eines Mehrfachdienst-Kommunikationsnetzes gemäß der vorliegenden Erfindung
zeigt, wenn verschiedenen Typen der Dienstanforderung verschiedene
Verarbeitungswerte zugeordnet sind; und
-
5 eine graphische Darstellung der Reaktion
eines Mehrfachdienst-Kommunikationsnetzes gemäß der vorliegenden Erfindung
zeigt, wenn verschiedenen Typen der Dienstanforderung verschiedene
Lebensdauerwerte zugeordnet sind.
-
1 zeigt
ein Mehrfachdienst-Kommunikationsnetz 10, das eine Anzahl
untereinander verbundener Knoten 20 umfasst. Diese Knoten
können
einen oder mehrere von einer Anzahl von Prozessen ausführen, die
notwendig sind, um das Mehrfachdienstnetz 10 zu unterstützen, z.
B. eine ATM-Vermittlung, einen WWW-Server, einen IP-Router, einen SMTP-Mail-Server,
einen Domänennamenserver (DNS)
usw. Die Anwender des Mehrfachdienstnetzes 10 sind in eine
Anzahl von Gemeinschaften 30 unterteilt. Diese Gemeinschaften
sind geographisch verteilt und besitzen verschiedene Anforderungen
an das Mehrfachdienstnetz hinsichtlich des Typs der Anforderung
und der Anzahl der gemachten Anforderungen (in 1 sind
verschiedene Typen der Anforderungen durch die Buchstaben a, b,
c u. d angegeben, wobei jeder Buchstabe eine Anforderung für einen
anderen Dienst darstellt und die Häufigkeit jedes Buchstabens
die Anzahl der für
diesen Dienst gemachten Anforderungen darstellt). Während der
Zeit verändert
sich die Anzahl der Gemeinschaften 30, die das Netz 10 verwenden,
wobei sich die Art und der Umfang der Netznutzung jeder Gemeinschaft
in einer selbstähnlichen
deterministischen Weise ändern
(siehe I. Marshall u. a., "Performance
Implications of WWW traffic statistics", http: //www.wtc2000.org vorgelegt).
Außerdem
ver ändert sich
die Anzahl der durch das Netz bereitgestellten Dienste während der
Zeit, wie neue Dienstes eingeführt
und einige Dienste veraltet werden und aus dem Netz entfernt werden.
-
Ein
Zugang zum Management eines derartigen Netzes würde darin bestehen, zu bewirken,
dass alle Knoten alle Typen von Anforderungen verarbeiten können, wobei
jeder Knoten eine ausreichende Kapazität besitzt, damit er alle an
diesem Knoten empfangenen Anforderungen verarbeiten kann. Dies würde jedoch
zu einer sehr ineffizienten Verwendung der Betriebsmittel führen, da
praktisch jeder Knoten überdimensioniert
sein würde
und einen Überschuss an
Kapazität
besitzen würde,
sowohl hinsichtlich des Typs der Dienstanforderungen als auch der
Anzahl der Dienstanforderungen, die jeder Knoten verarbeiten können würde.
-
Ein
weiterer Zugang würde
darin bestehen, jeden Knoten auf die Verarbeitung einer festen Teilmenge
der verschiedenen Dienste, die durch das Netz unterstützt werden,
einzuschränken
und eine feste Kapazität
der Verarbeitungsfähigkeit
für jeden Diensttyp
bei jedem Knoten bereitzustellen. Indem innerhalb des Netzes in
Bezug auf den Typ und die Anzahl von durch die Gemeinschaften in
der Nähe erzeugten
Dienstanforderungen Knoten festgelegt werden, die verschiedene Verkehrstypen
optimal verarbeiten können,
wird es möglich,
die meisten Dienstanforderungen zu erfüllen. Es muss irgendeine Managementschicht
innerhalb des Netzes geben, so dass die Dienstanforderungen über das
Netz "ausgeglichen" werden können, indem
die Dienstanforderungen, die durch die lokalen Knoten nicht abgewickelt
werden können,
zu entfernteren Knoten gesendet werden, wie sich die Dienstanforderungen über das
Netz verändern.
Der Nachteil dieses Zugangs besteht darin, dass, wie sich die Gemeinschaften ändern und
wie sich die Dienstanforderungen der Gemeinschaften ändern, der
Ort und/oder die Verarbeitungsfähigkeiten
der Knoten weniger optimal werden, was eine Zunahme des Zwischenknotenverkehrs verursacht,
wie die Dienstanforderungen zu einem geeigneten Knoten weitergeleitet
werden, was den Management-Zusatzaufwand des Netzes vergrößert. Für ein Netz
mit N untereinander verbundenen Knoten gibt es N2 Zwischenknotenbeziehungen,
deren Management ausgeführt
werden muss, was ein derartiges Managementschema schwer beeinflussbar macht,
wenn N groß wird
(z. B. viel größer als
1000).
-
Gemäß der vorliegenden
Erfindung sind die in 1 gezeigten Knoten in der Hauptsache
autonom, wobei ihr Verhalten durch eine Menge von Strategien gesteuert
wird, die eine Analogie in der genetischen Struktur von Bakterien
findet. Diese Analogie ist mit der metabolischen Diversität und den
evolutionären
Reaktionen der Bakterien konsistent. Der Darwinsche Mechanismus
der Evolution umfasst einen einfachen Algorithmus des 'Überlebens des Angepasstesten' (C. Darwin, "The Origin of the
Species by Means of Natural Selection", New American Library, New York). Während ein
Darwinsches Modell unzweifelhaft auf sich langsam ändernde
Arten innerhalb einer sich langsam ändernden Umgebung anwendbar
ist, verursacht das Fehlen eines Mechanismus zum Austausch von Informationen
innerhalb einer Generation Probleme, wenn es auf Umgebungen angewendet
wird, die sehr schnelle Änderungen
erfahren.
-
Die
Bakterien sind eine Menge metabolisch verschiedener, einfacher,
einzelliger Organismen. Ihre interne Struktur ist einfacher als
die vieler anderer Typen lebender Zellen, wobei sie keine membranbegrenzten
Kerne oder Organellen und eine kurze kreisförmige DNS aufweist. Dies ist
so, weil die genetische Struktur der Bakterien relativ einfach ist.
Es ist demonstriert worden, dass nur etwa 250 Gene erforderlich
sind, um ein unabhängiges,
sich selbst erhaltendes Bakterium zu codieren, wobei im hohen Grade
kompetente Bakterien, von denen das ganze Genom bekannt ist, nur
2000-3000 Gene besitzen. Im Ergebnis können sich Bakterien innerhalb
von 30 Minuten nach der 'Geburt' reproduzieren. Es
ist gesagt worden, dass die bakterielle Evolution den 'Darwinismus übertrifft' (D. Caldwell u.
a., "Do Bacterial
Communities transcend Darwinism?",
Advances in Microbial Ecology, Bd. 15. S. 105-191, 1997), wobei
eine geschlechtslose Reproduktion, die das Überleben des Angepasstesten
sicherstellt, und ein mehr Lamarkscher Mechanismus der Evolution
parallel auftreten (Lamark war ein französischer Wissenschaftler des
18. Jahrhunderts, der argumentierte, dass die Evolution auftritt,
weil die Organismen Merkmale erben können, die durch ihre Vorfahren
während
der Lebenszeit erworben worden sind), wobei die Individuen während ihrer
Lebenszeit in Reaktion auf Umweltbelastungen Elemente ihres genetischen
Materials, die als Plasmide bekannt sind, austauschen und die erworbenen
charakteristischen Merkmale an ihre Nachkommen weitergeben können.
-
Die
Plasmid-Migration erlaubt eine schnellere Reaktion auf plötzliche Änderungen
in maßgeblichen
Umweltfaktoren, wobei sie als ein Lernmechanismus modelliert werden
kann. Es ist gezeigt worden, dass das Aufrechterhalten der Angepasstheit
in einer komplexen sich ändernden
Landschaft der Angepasstheit eine Evolution zusammen mit einem schnellen
Lernmechanismus erfordert. Es ist lebenswichtig, dass das Lernen
kontinuierlich stattfindet, wobei es kein Off-line-Training wie bei
vielen auf neuronalen Netzen basierenden Zugängen erfordert. Wenn eine Population
von E.coli (ein gewöhnliches Bakte rium)
in eine neue Umgebung eingeführt
wird, beginnt die Anpassung sofort (siehe R. E. Lenski und M. Travisano, "Dynamics of Adaptation
and Diversification",
Proc. Nat. Acad. Sci. 91: 6808-6814, 1994), wobei signifikante Ergebnisse
innerhalb weniger Tage offensichtlich sind (d. h. O(1000) Generationen).
Ungeachtet der schnellen Anpassung sind bakterielle Gemeinschaften
außerdem
bemerkenswert stabil. Fossilien von Gemeinschaften (Stromatoliten), die
vor 3,5 Milliarden Jahren in Australien lebten, erscheinen zu den
heutigen Gemeinschaften völlig gleich,
die in der Shark Bay an Australiens Westküste leben. Die Bakterien besitzen
folglich viele der Eigenschaften (Einfachheit, Elastizität, schnelle
Reaktion auf Änderungen),
die für
Netzentitäten
erwünscht sind.
-
In ähnlichen
biologischen Systemen, wie z. B. Protocyten, wo die Wahrscheinlichkeit
des Auftretens einer Mutation während
des Kopierens eines Gens etwa 1 in einer Milliarde beträgt, kann
die adaptive Evolution innerhalb von 1 m Generationen (O(1000) Jahren)
auftreten. Die GAs entwickeln sich typischerweise viel schneller,
weil die Generationenzeit O(100) ms beträgt und die Mutationsrate auf
1 in einer Million erhöht
ist, wobei jedoch die Anpassung immer noch nur mit Änderungen
in einer Zeitskala von O(10) s umgehen kann. Unter Verwendung des bakteriellen
Lernens (des Plasmid-Austauschs) in einem GA verbessert sich dies
zu O(10) ms, wobei sich seine Leistung beträchtlich verbessert, wenn er
einer schnellen Änderung
gegenübersteht.
-
Die
Menge der Strategien spezifiziert, welchen Typ der Dienstanforderung
der Knoten verarbeiten kann (z. B. a, b, c oder d aus 1),
und eine Regel oder Regeln, die bestimmen, ob der Knoten die Dienstanforderung
annimmt. Jeder Knoten besitzt eine bestimmte Anzahl von Strategien,
wobei diese Strategien bestimmen, wie der Knoten auf die sich ändernde
Umgebung des Netzes reagiert (in derselben Weise wie das genetische
Material eines Bakteriums bestimmt, wie das Bakterium auf seine Umgebung
reagiert). Die Strategien nehmen die Form {x, y, z} an, wobei:
- x
eine Funktion ist, die den Typ des angeforderten Dienstes darstellt;
- y eine Funktion ist, die in Abhängigkeit von der Anzahl der
Dienstanforderungen, die sich in dem Knoten in der Warteschlange
befinden, bestimmt, ob eine Dienstanforderung angenommen wird; und
- z eine Funktion ist, die in Abhängigkeit vom Aktivitätsniveau
des Knotens bestimmt, ob eine Dienstanforderung angenommen wird.
-
Der 'Wert', den ein Knoten
aus der Verarbeitung einer Dienstanforderung ableiten kann, würde das
Empfangen von Einnahmen von einem Anwender oder einem Netz- oder
Dienstanbieter sein (dies ist analog zu einem Bakterium, das Energie
aus dem Umwandeln von Ressourcen gewinnt, so dass das Bakterium überleben
und sich potentiell reproduzieren kann). Die Menge der Einnahmen
hängt vom
Typ der Dienstanforderung ab, die durch den Knoten verarbeitet wird,
wobei einige Dienstanforderungen wichtiger sind und folglich eine
größere Vergütung liefern,
wenn sie verarbeitet werden.
-
Jeder
Knoten kann irgendeine Anzahl von Strategien besitzen. Freigegebene
Knoten (d. h. ein Knoten, der Dienstanforderungen verarbeitet) besitzen
eine oder mehrere freigegebene Strategien (d. h. Strategien, die
sich in Gebrauch befinden, um die Reaktion des Knotens zu bestimmen),
wobei sie außerdem
eine Anzahl inaktiver Strategien besitzen können (d. h. einmal freigegebene
Strategien, die nicht länger
verwendet werden, um die Reaktion des Knotens zu bestimmen). Die
inaktiven Strategien können erneut
freigegeben werden, während
freigegebene Strategien unterdrückt
werden können,
wobei sie inaktiv werden.
-
Die
Anwenderanforderungen für
einen Dienst werden durch den (die) Knoten empfangen, der (die)
sich von der Anwendergemeinschaft, die die Dienstanforderung erzeugt,
am nächsten
beim Eintrittspunkt in das Netz befindet (befinden). Wenn der Knoten
die Anforderung verarbeiten kann, dann tritt die Anforderung in
eine Warteschlange ein, wobei jeder Knoten die Elemente, die in
seiner Eingangswarteschlange ankommen, nach einem 'FIFO-Prinzip' bewertet. Falls
die Dienstanforderung an der Spitze der Warteschlange einer verfügbaren Strategie
entspricht, wird die Dienstanforderung verarbeitet, wobei der Knoten 'belohnt' wird (d. h. die
Einnahmen für den
Netz- oder Dienstbetreiber erzeugt werden), wobei dann die Anforderung
aus der Warteschlange gelöscht
wird. Wenn die Dienstanforderung keiner der freigegebenen Strategien
des Knotens entspricht, dann wird die Anforderung zu einem benachbarten Knoten
weitergeleitet, wobei kein Entgelt gegeben wird. Je mehr Zeit ein
Knoten bei der Verarbeitung von Dienstanforderungen verbraucht,
desto beschäftigter
ist er, wobei die durch den Knoten erzeugten Entgelte (oder Einnahmen)
zunehmen. Wenn umgekehrt ein Knoten nicht viele Dienstanforderungen empfängt, für die er
eine freigegebene Strategie besitzt, dann ist der Knoten nicht beschäftigt, wobei durch
diesen Knoten wenig Entgelte (oder Einnahmen) erzeugt werden. Wenn
ein Knoten, der Dienstanforderungen, für die er eine freigegebene Strategie
besitzt, mit einer größeren Rate
empfängt, als
er diese Anforderungen verarbeiten kann, dann wächst die Länge der Warteschlange der Dienst anforderungen.
Dies führt
zu einer Zunahme der Zeit, die es dauert, um eine Dienstanforderung
zu verarbeiten, wobei folglich ein schlechter Dienst an die Anwendergemeinschaften
geliefert wird.
-
Um
diese unerwünschten
Wirkungen zu verringern, würde
es erwünscht
sein, dass die Knoten, die nicht beschäftigt sind und/oder die kleine
Warteschlangenlängen
besitzen, die Merkmale der Knoten erwerben können, die beschäftigt sind
und/oder große
Warteschlangenlängen
besitzen. Ein Verfahren, durch das dies erreicht werden kann, besteht
im Übernehmen
eines Schemas, das ein Analogon der Plasmid-Migration in Bakterien
ist. Die Plasmid-Migration umfasst Gene von gesunden Individuen,
die in die Umgebung verbreitet oder kopiert und anschließend in
das genetische Material von weniger gesunden Individuen absorbiert
werden. Falls die Plasmid-Migration schwache Stämme nicht unterstützt, ihre
Angepasstheit zu vergrößern, sterben
diese schließlich.
Wenn folglich ein Knoten eine Warteschlangenlänge oder einen Aktivitätsindikator
besitzt, die bzw. der einen oberen Schwellenwert erreicht, dann
wird eine der Strategien des Knotens zufällig in einen 'Strategiepool' kopiert, der für alle Knoten
zugänglich
ist. Alternativ kann der Knoten die erfolgreichste Strategie (hinsichtlich
des Erzeugens von Einnahmen während
einer gegebenen jüngeren
Periode) oder irgendeine andere Strategie in den 'Strategiepool' kopieren. Wenn ein
Knoten einen Aktivitätsindikator
und/oder eine Warteschlangenlänge
besitzt, der bzw. die einen unteren Schwellenwert erreicht, dann
wird aus dem Strategiepool eine Strategie zufällig ausgewählt und durch den Knoten erworben. Wenn
der Strategiepool leer ist, dann muss der Knoten warten, bis ein 'erfolgreicher' Knoten eine Strategie
zum Strategiepool hinzufügt.
Die Schwellenwerte (sowohl der obere als auch der untere) müssen für die Warteschlangenlänge nicht
die gleichen wie für den
Aktivitätsindikator
sein.
-
Wenn
ein Knoten den oberen Schwellenwert für die Warteschlangenlänge oder
für den
Aktivitätsindikator
während
einer gegebenen Zeitdauer aufrechterhält (d. h. der Knoten seinen
Erfolg aufrechterhält),
dann kann der Knoten sich selbst klonen, indem er einen weiteren
Knoten erzeugt, der die gleiche Menge von Strategien wie der Elternknoten
besitzt. Dies ist das Analogon zu einem gesunden Bakterium mit einer
reichlichen Nahrungsversorgung, das sich durch binäre Spaltung
reproduziert, um völlig
gleiche Nachkommen zu erzeugen. Alternativ kann dieser Prozess des
Klonens durch die Warteschlangenlänge oder den Aktivitätsindikator
des Knotens eingeleitet werden, die bzw. der einen zweiten oberen Schwellenwert
erreicht, wobei dieser zweite obere Schwellenwert größer als
der erste obere Schwellenwert ist. Wenn umgekehrt ein Knoten den
unteren Schwellenwert für
die Warteschlangenlänge
oder für den
Aktivitätsindikator
während
einer gegebenen Zeitdauer aufrechterhält (d. h. die Untätigkeit
des Knotens wird aufrechterhalten), dann werden einige oder alle
der freigegebenen Strategien des Knotens gelöscht, wobei irgendwelche inaktiven
Strategien aktiviert werden. Wenn der Knoten keine inaktiven Strategien
besitzt, dann wird der Knoten ausgeschaltet, sobald alle freigegebenen
Strategien gelöscht worden
sind. Dies ist das Analogon zum bakteriellen Tod aufgrund von Nahrungsentzug.
-
Der
Analogie mit der bakteriellen Evolution folgend wird geglaubt, dass
eine niedrigere Rate der Anpassung an die Umweltänderungen gegenüber einer
schnelleren Rate der Anpassung bevorzugt ist, weil eine schnellere
Rate bedeuten kann, dass die Netzknoten in einer evolutionären "Sackgasse" ohne die genetische
Diversität
enden, um mit den nachfolgenden Umweltänderungen fertigzuwerden. Dies kann
erreicht werden, indem zufällige Änderungen der
Knotenstrategien bevorzugt werden, anstatt die Übernahme erfolgreicher Strategien
oder die Verwerfung erfolgloser Strategien zu bevorzugen.
-
Das
andere Verfahren, durch das die Knotenstrategien verändert werden
können,
ist zu zufälligen
genetischen Mutationen analog, die in einem Bakterium auftreten.
Die Strategiemutationen kann z. B. die zufällige Änderung eines einzigen Wertes
in einer Strategie umfassen. Wenn eine Strategie die Form:
Nimm
die Anforderung für
den Dienst a an, falls der Aktivitätsindikator < 80 % ist,
besitzen
würde,
dann könnten
zulässige
Mutationen
Nimm die Anforderung für den Dienst c an, falls der Aktivitätsindikator < 80 % ist, oder
Nimm
die Anforderung für
den Dienst a an, falls der Aktivitätsindikator < 60 % ist, oder
Nimm
die Anforderung für
den Dienst a an, falls die Warteschlangenlänge < 80 % ist,
enthalten (die Mutation
ist fettgedruckt angegeben).
-
Simulationen
haben gezeigt, dass die Mutationen einzelner Werte stabile Systeme
mit ziemlich niedrigen Mutationsraten verursachen. Während es möglich sein
würde,
Mutationen mehrerer Werte zu besitzen (z. B. 'Nimm die Anforderung für den Dienst a
an, falls der Aktivitätsindikator < 80 % ist' mutiert zu 'Nimm die Anforderung
für den
Dienst b an, falls die Warteschlangenlänge < 20 % ist'), kann dies zu einem instabilen System
führen.
Die Ergebnisse der Simula tionen zeigen, dass infolge der langfristigen selbststabilisierenden
adaptiven Art der Bakteriengemeinschaften, die durch die Knotenstrategien
nachgeahmt wird, ein Netzmanagementalgorithmus, der auf der bakteriellen
genetischen Struktur und den Umweltreaktionen basiert, einen geeigneten
Zugang schafft, um ein stabiles Netz autonomer Knoten zu erzeugen.
Der obige Zugang macht jeden Knoten innerhalb des Netzes für sein eigenes
Verhalten verantwortlich, so dass das Netz als eine Gemeinschaft von
zellularen Automaten modelliert wird. Jedes Mitglied dieser Gemeinschaft
optimiert egoistisch seinen eigenen lokalen Zustand, dieser 'Egoismus' ist aber als ein
stabiles Gemeinschaftsmodell für Sammlungen
lebender Organisten nachgewiesen worden (R. Dawkins, "The Selfish Gene", Oxford University
Press, 1976), wobei gezeigt worden ist, dass die Partitionierung
eines Systems in sich egoistisch anpassende Teilsysteme ein lebensfähiger Zugang zum
Lösen komplexer
und nichtlinearer Probleme ist (S. Kauffman u. a., "Divide and Coordinate;
Coevolutionary Problem Solving",
ftp://flp.santafe.edu/pub/wgm/patch.ps). Folglich wird durch eine Menge
von Zellen, die für
ihren eigenen Nutzen und nicht für
den Gesamtnutzen des Netzes wirken, eine Stabilität des Gesamtnetzes
geschaffen, wobei dieses Selbstmanagement der Knoten die meisten
der Netzmanagementprobleme auf hoher Ebene beseitigt.
-
Die
Erfinder haben eine Simulation eines Netzes gemäß der vorliegenden Erfindung
(und der oben beschriebenen Art) implementiert. Das Simulationssystem
unterstützt
bis zu zehn verschiedene Diensttypen, aber im Interesse der Einfachheit
bezieht sich die folgende Erörterung
auf eine Teilmenge von vier von diesen Diensttypen; A, B, C, D,
wobei sie auf einem rechtwinkligen Gitter mit 400 Vertizes basiert
(was lediglich ein Beispielwert und für das Arbeiten der Erfindung
nicht entscheidend ist). Das System wird initialisiert, indem eine
Zufallsauswahl der Vertizes mit freigegebenen Knoten bevölkert wird. Diese
anfänglichen
Knoten besitzen eine Zufallsauswahl von Strategien, die definieren,
wie jeder Knoten die Dienstanforderungen abwickelt. Diese Strategien besitzen
eine Anzahl von Variablen und werden in der Form {x, y, z} dargestellt,
wobei:
- x eine Funktion ist, die den angeforderten Diensttyp darstellt;
- y eine Funktion zwischen 0 und 200 ist, die als der Wert in
einer Anweisung der Form
Nimm die Anforderung für den Dienst
[Val(x)] an, falls die Warteschlangenlänge < Val(y) ist,
interpretiert wird;
und
- z eine ganze Zahl zwischen 0 und 100 ist, die als der Wert in
einer Anweisung der Form
Nimm die Anforderung für den Dienst
[Val(x)] an, falls die Beschäftigtkeit < Val(z%) ist,
interpretiert
wird.
-
Ein
Knoten, der eine Anzahl von Strategien besitzt, ist als {x1, y1, z1,
x2, y2, z2: ... :xi, yi, zi} dargestellt.
-
Die
Anforderungen werden in das System eingegeben, indem Folgen von
Zeichen, die die Dienstanforderungen darstellen, bei jedem Vertex
in dem Feld eingespeist werden. Falls der Vertex mit einem Knoten
bevölkert
ist, treten die Elemente in eine Eingangswarteschlange des Knotens
ein. Wenn es bei dem Vertex keinen Knoten gibt, dann werden die Anforderungen
zu einem benachbarten Vertex weitergeleitet. Jeder Knoten bewertet
die Dienstanforderungen, die in seiner Eingangswarteschlange ankommen,
nach einem 'FIFO-Prinzip'. Wenn die Anforderung
an der Spitze einer Knotenwarteschlange einer verfügbaren Regel
entspricht, dann wird die Anforderung ver arbeitet, wird der Knoten
für das
Ausführen der
Anforderung belohnt und wird die Anforderung aus der Eingangswarteschlange
gelöscht.
Wenn es keine Übereinstimmung
zwischen der Dienstanforderung und den Strategien des Knotens gibt,
dann wird die Anforderung zu einem weiteren Vertex weitergeleitet,
wobei durch den Knoten kein Entgelt erhalten wird. Jeder Knoten
kann nur vier Anforderungen pro Messperiode (die künftig als
eine Epoche bezeichnet wird) verarbeiten. Je mehr Zeit ein Knoten
beim Verarbeiten der Anforderungen verbraucht, als desto beschäftigter
wird er gesehen und desto größer ist
der Wert seines Aktivitätsindikators.
Der Aktivitätsindikator
kann bestimmt werden, indem die Aktivität in der gegenwärtigen Epoche
berechnet wird, wenn z. B. der Knoten in der gegenwärtigen Epoche
drei Anforderungen verarbeitet hat und 25 'Punkte' des Entgelts für jede verarbeitete Anforderung
erzeugt werden, dann würde
der Aktivitätsindikator
75 sein. Um jedoch alle plötzlichen Änderungen
im Verhalten, die auf eine im hohen Grade dynamische Umgebung zurückzuführen sind,
zu dämpfen,
ist es bevorzugt, den Aktivitätsindikator
in der vorhergehenden Epoche mit dem Aktivitätsindikator für die gegenwärtige Epoche zu
kombinieren. Es ist für
das simulierte Netz festgestellt worden, dass ein geeignetes Verhältnis des
vorhergehenden Indikators zum gegenwärtigen Indikator 0,8:0,2 beträgt. Wenn
z. B. in dieser Epoche der Knoten drei Anforderungen verarbeitet
hat, wobei jede 25 Punkte erzeugt, und der Knoten einen Aktivitätsindikator
von 65 für
die vorhergehende Epoche besessen hat, dann ist der Aktivitätsindikator
für die gegenwärtige Epoche
67. Es ist zu sehen, dass sich das Verhältnis zwischen den zwei Indikatoren
bei jedem System verändert
und davon abhängt,
wie dynamisch das System ist. Es sollte außerdem angegeben werden, dass
die Auswahl von vier Verarbeitungsschritten pro Epoche eine beliebige
Wahl ist und dass andere Werte für
diesen Parameter über nommen
werden können.
Der Plasmid-Austausch, wie er oben beschrieben worden ist, wurde
in der Simulation modelliert, wobei, wenn ein Knoten durch den Austausch
von Strategien mehr als vier freigegebenen Strategien besitzt, dann
die neueste Strategie, die zu erwerben ist, unterdrückt wird
(d. h. als gegenwärtig
inaktiv registriert wird), so dass zu jedem Zeitpunkt nicht mehr
als vier Strategien in einem Knoten freigegeben sind (obwohl diese
Grenze von vier freigegebenen Strategien eine beliebige Grenze ist
und verändert
werden kann). Wenn ein Knoten 4 freigegebene Strategien besitzt
und eine aus dem Strategiepool erwirbt, dann wird die aus dem Pool
erworbene Strategie nicht unterdrückt, sondern es wird eine der
vorher vorhandenen Strategien unterdrückt. Es können andere Auswahlkriterien
angewendet werden, wenn Strategien unterdrückt werden, z. B. das Unterdrücken der
am wenigsten erfolgreichen Strategie oder der Strategie, die am
längsten
freigegeben gewesen ist, usw.
-
Gegenwärtig werden
die Werte für
die Warteschlangenlänge
und den zeitlich gemittelten Aktivitätsindikator als die Grundlage
für die
Austauschhandlungen verwendet, wobei die Bewertung alle fünf Epochen
ausgeführt
wird. Wenn die Warteschlangenlänge
oder der Aktivitätsindikator über einem Schwellenwert
liegt, dann wird eine der Strategien des Knotens in einen 'Strategiepool' kopiert, der für alle Knoten
zugänglich
ist. In diesem Beispiel betrugen beide Schwellenwerte 50, wobei
es offensichtlich ist, dass dieser Wert nur ein Beispiel ist, wobei
andere Schwellenwerte ausgewählt
werden können
und es keine Notwendigkeit gibt, dass der Schwellenwert für die Warteschlangenlänge gleich
dem Schwellenwert des Aktivitätsindikators
ist. Die Schwellenwerte bestimmen die Anzahl der Knoten, die sich
reproduzieren können,
um das System zu besetzen, wobei sie geeignet gewählt werden
sollten, um den Leistungsanforderungen des Systems zu entsprechen. Falls
der Knoten während
vier Bewertungsperioden fortgesetzt den Schwellenwert überschreitet,
werden seine freigegebenen Strategien gelöscht. Falls irgendwelche inaktiven
Strategien vorhanden sind, werden diese freigegeben, wenn es jedoch
keine inaktiven Strategien gibt, dann wird der Knoten ausgeschaltet.
Dies ist das Analogon zum bakteriellen Tod aufgrund von Nahrungsentzug.
Wenn z. B. ein Knoten, der die Strategie {a, 40, 50: c, 10, 5} besitzt,
einen Aktivitätsindikator
besitzt, der größer als
50 ist, wenn er bewertet wird, legt er eine zufällige Strategie (z. B. {c,
10, 5} in den Strategiepool. Wenn ein Knoten mit dem Genom {b, 2,
30: d, 30, 25} später
als untätig betrachtet
wird, kann er diese Strategie importieren, wobei er zu {b, 2, 30:
d, 30, 25: c, 10, 5} wird. Wenn die importierte Strategie den Aktivitätsindikator
des Knotens nicht vergrößert, so
dass der Knoten nicht länger
untätig
ist, dann kann eine weitere Strategie importiert werden; wenn es
keine weitere zu importierende Strategie gibt, dann kann der Knoten
gelöscht werden.
-
Für diese
implementierte Simulation wurde eine Visualisierungsumgebung erzeugt.
Die Visualisierungsumgebung schafft eine Schnittstelle, wo die Netzlast
und andere Parameter in vielen Arten verändert werden können, wobei
dadurch erlaubt wird, dass in einer flexiblen Weise Belastungen
in das System eingeführt
werden. Es kann z. B. bewirkt werden, dass sich das Verhältnis der
Anforderungen für
die vier Dienste während
der Zeit verändert,
wie bewirkt werden kann, dass sich die Gesamtzahl der Anforderungen
pro Einheitszeit während
der Zeit verändert. Es
wurde eine 'Petrischale', die bis zu 400
Knoten aufnehmen kann, verwendet, um den Systemzustand anzuzeigen.
In die Simulation wurden in einem Versuch, die Knoten zu zwingen,
das Verhalten des Bakteriums in einer sich ändernden Umgebung zu modellieren,
Regeln eingeführt,
die die Re produktion und die Evolution einschließlich der Plasmid-Migration
(wie oben beschrieben worden ist) steuern. 2 zeigt,
was geschieht, wenn eine anfängliche
niedrige Last vergrößert und
dann verringert wird. Jeder Stamm der Knoten, der einen einzigen
Anforderungstyp verarbeiten kann, ist in 2a durch
einen Code dargestellt, der die Farbe darstellt, die verwendet wird,
um den Stamm durch den Simulator anzuzeigen, z. B. R [Rot], G [Grau],
B [Blau] usw. Wenn die Last zunimmt (2b), nimmt
die Größe der vorhandenen
Kolonien zu, wobei Kolonien neuer Stämme der Knoten aufgrund der
Mutation und der Plasmid-Migration erscheinen. Komplexere Stämme mit der
Fähigkeit,
mehr als einen Dienstanforderungstyp abzuwickeln, wurden durch eine
Kombination dieser Farben dargestellt, ein Knoten, der z. B. die
durch Rot und Blau angezeigten Stämme verarbeiten konnte, wird
durch P [Purpur] angezeigt (siehe die 2a u. 2b). 2c zeigt
die Reaktion auf eine Abnahme der Last. Wie in echten bakteriellen
Gemeinschaften verursacht eine Abnahme der Nahrung eine große Menge
des Zelltods, aber außerdem
eine Zunahme der Diversität
(die durch die Zunahme der Anzahl verschiedener Knotenstämme gezeigt
ist), da mehr Plasmid-Migration und Mutation auftreten.
-
Es
ist sofort offensichtlich, dass die oben angegebenen Steuerparameter
lediglich beispielhaft sind und vorgesehen sind, um die vorliegende
Erfindung zu veranschaulichen. Die optimalen Werte der verschiedenen
Parameter verändern
sich von System zu System in Abhängigkeit
von ihrer Größe, ihrem
dynamischen Konstanten, ihren Wachstumsraten usw.
-
Das
obenbeschriebene System besitzt sehr signifikante Vorteile, wenn
neue Dienste zu einem Mehrfachdienstnetz hinzugefügt wer den.
Traditionell ist es notwendig, das Netz abzubauen und die erforderliche
Hardware hinzuzufügen,
die Software zu aktualisieren usw., so dass das Netz den (die) neuen Dienst(e)
tragen kann. Unter Verwendung eines Netzes gemäß der vorliegenden Erfindung
ist es möglich,
einen neuen Dienst durch das Hinzufügen neuer Funktionalität zu vorhandenen
Knoten bereitzustellen, so dass sie mit verschiedenen Dienstanforderungen
umgehen können,
die dem neuen Dienst zugeordnet sind.
-
Das
einfachste Verfahren, um dies auszuführen, besteht darin, den Knotenstrategien
zu erlauben, zu mutieren, so dass eine Strategie den neuen Typ der
Dienstanforderung(en) verarbeiten kann. Wenn eine Strategie mutiert,
so dass sie einen neuen Dienstanforderungstyp verarbeiten kann,
dann besitzt der Knoten eine reichliche Nahrungsquelle, wobei er
die Verteilung der neu mutierten Strategie durch die Knotenpopulation
durch Plasmid-Migration und/oder durch Reproduktion unterstützt. Wenn
die Mutation zu einem Knoten führt,
der einen Diensttyp verarbeiten kann, der noch nicht in das Netz
eingeführt
worden ist, dann kann der Knoten leicht aussterben, was zur Unterdrückung der
weniger nützlichen Mutation
führt.
Es kann bevorzugt sein, irgendeine Form der Einschränkung an
das Ausmaß der
Mutation zu besitzen, die zu versuchen erlaubt ist, und ein derartiges
Vorkommen zu minimieren. Der Mutationsbereich für die Strategien muss offensichtlich
erlauben, dass alle in Gebrauch befindlichen Dienstanforderungstypen
dafür auszuwählen sind.
-
Ein
weiteres Verfahren zum Freigeben von Knoten, um neue Typen von Dienstanforderungen
zu verarbeiten, besteht darin, die Strategiemenge eines vorhandenen
Knoten so zu modifizieren, dass er den neuen Diensttyp abwickeln
kann. Um dies zu tun, ist es notwendig, den Knoten während einer
kurzen Zeitdauer zu sperren, aber die verteilte Art des Netzes bedeutet,
dass die anderen Knoten reagieren, um den fehlenden Knoten aufzunehmen.
Es ist möglich, die
Strategie entweder als eine freigegebene Strategie oder als eine
inaktive Strategie in die Strategiemenge einzuführen, obwohl es wahrscheinlicher
ist, dass eine freigegebene Strategie schnell durch das Netz verbreitet
wird. Weitere Verfahren, um dem Netz zu ermöglichen, neue Diensttypen zu
bewältigen, enthalten
die Einfügung
von einem oder mehreren neuen Knoten, die eine Anzahl von Strategien
besitzen, von denen einige ermöglichen,
dass der neue Typ der Dienstanforderung verarbeitet wird, oder die Einfügung geeigneter
Strategien in den Strategiepool, von wo die erfolglosen Knoten diese
Strategien erwerben können.
-
3a zeigt
die Reaktion der Simulation auf das Einfügen eines neuen Typs von Dienstanforderungen
zum gleichen Zeitpunkt, zu dem den Knotenstrategien erlaubt wird,
zu mutieren, um den neuen Diensttyp zu verarbeiten (die vertikale
Linie in der graphischen Darstellung bei etwa 500 Epochen zeigt das
Einfügen
des neuen Typs von Anforderungen an). Der neue Typ der Dienstanforderung
wird durch die massiven Kreise in 3a angezeigt,
wobei die anderen Typen der Dienstanforderungen durch die offenen
Quadrate dargestellt sind. Die mittlere Zeit, um den neuen Typ der
Dienstanforderung zu verarbeiten, steigt scharf an, da zuerst nur
wenige Knoten geeignete Knotenstrategien besitzen, die mittlere Verarbeitungszeit
fällt aber,
wie diese Strategien durch Migration und Reproduktionen verbreitet
werden. Die graphische Darstellung fällt dann auf null, was darstellt,
dass die Strategie infolge des Fehlens von Dienstanforderungen,
die gemacht werden, inaktiv gemacht wird. Die mittlere Ver arbeitungszeit
für den
neuen Typ der Dienstanforderung steigt dann abermals an, wie die
Strategie erneut freigegeben wird, wobei die mittlere Verarbeitungszeit
bald einen stationären
Zustand erreicht, der mit denen der anderen Typen der Dienstanforderung
vergleichbar ist. 3b zeigt eine ähnliche
graphische Darstellung, die die Reaktion der Simulation auf die
gleichzeitige Einführung
eines neuen Typs der Dienstanforderung und die Einspeisung einer
geeigneten Knotenstrategie in den Strategiepool darstellt. Wie vorher
steigt die mittlere Verarbeitungszeit für den neuen Typ der Dienstanforderung
steil an, wie die Dienstanforderungen gemacht werden, sie fällt aber
auf einen stationären
Wert, wie die Knotenstrategien für
den neuen Typ der Dienstanforderung durch das Netz verbreitet werden.
-
Zurückzuführen auf
die evolutionäre
Art des Netzes nimmt, wenn ein gegebener Diensttyp nicht umfassend
verwendet wird, dann die Anzahl der Knoten, die für diesen
Diensttyp geeignete Strategien besitzen, ab, da die Knoten aussterben
oder sich anpassen, um andere Diensttypen zu verarbeiten. Wenn das
Entfernen eines in Gebrauch befindlichen Diensttyps aus dem Netz
erforderlich ist, dann können
die oben umrissenen Verfahren umgekehrt angewendet werden, so dass
die Knotenstrategien nicht mutieren können, so dass der Diensttyp
verarbeitet werden kann, anwendbare Strategien aus den Knoten oder
dem Strategiepool gelöscht
werden können
usw.
-
Die
Erfinder haben außerdem
eine zweite Simulation eines Netzes gemäß der vorliegenden Erfindung
(und der oben beschriebenen Art) implementiert. Dieses zweite Simulationssystem
kann bis zu zehn verschiedene Diensttypen unterstützen, aber die
folgende Erörterung
bezieht sich auf eine Simulation unter Verwendung einer Teilmenge von
fünf von diesen
Diensttypen; A, B, C, D u. E, wobei sie auf einem rechtwinkligen
Gitter mit 400 Vertizes basiert.
-
Die
Einzelheiten der Simulation sind die gleichen wie für die oben
beschriebene erste Simulation, mit Ausnahme, dass der aus der Verarbeitung
einer Dienstanforderung abgeleitete Wert für jede verschiedene Dienstanforderung
verschieden ist: Hier erzeugt die Verarbeitung der Dienstanforderung
A ein Entgelt von 40, erzeugt die Verarbeitung der Dienstanforderung
B ein Entgelt von 35, erzeugt die Verarbeitung der Dienstanforderung
C ein Entgelt von 30, erzeugt die Verarbeitung der Dienstanforderung
D ein Entgelt von 25 und erzeugt die Verarbeitung der Dienstanforderung
E ein Entgelt von 20. Es dauert 25 ms, dass ein Knoten irgendeine
der Dienstanforderungen verarbeitet, ungeachtet des Typs der Anforderung,
wobei eine Umleitung einer Dienstanforderung von einem Knoten zu
einem weiteren 4 ms dauert. Wenn eine Dienstanforderung für irgendeinen
Typ durch einen Knoten nicht innerhalb von 15 Epochen (d. h. 1500
ms) für
die Verarbeitung angenommen wird, dann wird die Dienstanforderung aus
der Warteschlange gelöscht,
weil sie ihren Wert der Lebensdauer überschritten hat.
-
4a zeigt
die mittlere Anzahl von Anforderungen, die während einer Simulation, die
ausgeführt wurde,
wie oben beschrieben worden ist, von den Knoteneingangswarteschlangen
fallengelassen werden. Um der Klarheit willen sind die Linien, die
die Diensttypen B und D anzeigen, aus der graphischen Darstellung
weggelassen worden. Alle Diensttypen erfahren anfangs beim Beginn
der Simulation eine große
Spitze fallengelassener Anforderungen, die auf die Anzahl von Knoten
im simulierten Netz zurückzuführen ist,
die nicht ausreichend ist, um alle Dienstanforderungen zu verarbeiten.
Da durch die Knotenkopie zusätzliche
Knoten erzeugt werden, nimmt die Anzahl der fallengelassenen Dienstanforderungen
ab, bis ein stationärer
Wert erreicht wird, obwohl es mit der vereinzelten Spitze, die in
der graphischen Darstellung auftritt, eine gewisse Störung um
diesen stationären
Wert gibt. Es wird angegeben, dass im Allgemeinen die Anzahl der
Anforderungen, die fallengelassen wird, um so geringer ist, je größer der
aus der Verarbeitung einer Dienstanforderung abgeleitete Wert ist,
d. h., die Anzahl der fallengelassenen Anforderungen des Typs A
ist typischerweise keiner als die Anzahl der fallengelassenen Anforderungen
des Typs C, während
die Anforderungen des Typs E öfter
als die anderen Typen der Anforderung fallengelassen werden (diesem
Trend folgen die Diensttypen B u. D, obwohl dies in 4a nicht
gezeigt ist).
-
4b zeigt
das mittlere Alter in Epochen der Dienstanforderungen, wenn sie
durch einen Knoten im simulierten Netz verarbeitet werden. Die graphische
Darstellung zeigt, dass ein stationärer Wert relativ schnell erreicht
wird (obgleich einige zufällige Fluktuationen
um den stationären
Wert enthalten sind). Der durch 4b angezeigte
allgemeine Trend ist, dass, je größer der aus der Verarbeitung
einer Dienstanforderung abgeleitete Wert ist, das Alter der Anforderung
um so niedriger ist, wenn sie verarbeitet wird, d. h., die Diensttypen
mit höherem
Wert werden gegenüber
den Diensttypen mit niedrigerem Wert bevorzugt verarbeitet. Folglich
ist aus 4b ersichtlich, dass im Durchschnitt
die Dienstanforderungen des Typs A schneller als die Dienstanforderungen
des Typs C verarbeitet wurden und dass die Dienstanforderungen des
Typs C schneller als die Dienstanforderungen des Typs E verarbeitet
wurden (diesem Trend folgen die Diensttypen B u. D, obwohl dies
in 4b nicht gezeigt ist).
-
Die 5a und 5b zeigen
die Ergebnisse aus einer dritten experimentellen Simulation, in der
es 5 verschiedene Diensttypen A-E gibt, wobei die verschiedenen
Diensttypen in gleichen Verhältnissen
angefordert werden. Der aus der Verarbeitung einer Dienstanforderung
abgeleitete Wert beträgt
25 Punkte für
alle verschiedenen Diensttypen, wobei wie in der obenbeschriebenen
zweiten Simulation jede Verarbeitung einer Dienstanforderung in
einem Knoten 25 ms dauert, während
eine Umleitung einer Dienstanforderung zu einem anderen Knoten 4
ms dauert.
-
In
dieser zweiten Simulation besitzt jedoch der Diensttyp A einen Wert
der Lebensdauer von 10 Epochen, besitzt der Diensttyp B einen Wert
der Lebensdauer von 20 Epochen, besitzt der Diensttyp C einen Wert
der Lebensdauer von 30 Epochen, besitzt der Diensttyp D einen Wert
der Lebensdauer von 40 Epochen und besitzt der Diensttyp E einen
Wert der Lebensdauer von 50 Epochen. Alle anderen Aspekte der Simulation,
wie z. B. die Regeln und die Schwellenwerte bezüglich der Plasmid-Migration,
der Strategie-Export/Import-Ereignisse usw., sind so wie sie oben
für die
zweite Simulation beschrieben worden sind.
-
5a zeigt
die mittlere Anzahl der Dienstanforderungen, die jede Epoche für die Diensttypen
A, C u. E fallengelassen werden (die Daten für die Diensttypen B u. D sind
um der Klarheit willen aus der graphischen Darstellung ausgeschlossen
worden). 5a zeigt am Anfang der Simulation
eine relativ große
Spitze in der mittleren Anzahl der fallengelassenen Dienstanforderungen
für alle
Diensttypen, die auf die Anzahl der Knoten im simulierten Netz zurückzuführen ist,
die nicht ausreichend sind, um alle Dienstanforderungen zu verarbeiten.
Da durch die Knotenkopie zusätzliche
Knoten erzeugt werden, nimmt die Anzahl der fallengelassenen Dienstanforderungen
ab, bis ein stationärer
Wert erreicht wird. Die mittlere Anzahl der Anforderungen des Typs
A ist sowohl während
der anfänglichen 'Netzwachstums'-Phase als auch während der
stationären
Phase der Simulation signifikant größer als die für die anderen
Diensttypen. Obwohl während
der 'Netzwachstums'-Phase die mittlere
Anzahl der fallengelassenen Dienstanforderungen des Typs E größer als
die Anzahl der fallengelassenen Dienstanforderungen des Typs C ist,
ist im Allgemeinen während
der stationären
Phase das Gegenteil wahr.
-
5b zeigt
das mittlere Alter der Dienstanforderungen, wenn sie für die oben
erörterte
Simulation verarbeitet werden. 5b zeigt
eine anfängliche
Spitze im mittleren Alter der Dienstanforderungen, die in der Linie
für den
Diensttyp E am ausgeprägtesten
ist, bevor ein approximierter stationärer Wert schnell erreicht wird.
Der approximierte stationäre
Wert für
den Diensttyp A ist kleiner als der für die beiden Typen C u. E,
wobei der mittlere Wert für
die Dienstanforderungen des Typs C geringfügig kleiner als der für die Dienstanforderungen
des Typs E ist. 5b zeigt, dass sich die simulierten
Netzknoten angepasst haben, um vorzugsweise die Dienstanforderungen
zu verarbeiten, die eine niedrigere Lebensdauer besitzen.
-
Aus
den Simulationsergebnissen ist ersichtlich, dass es möglich ist,
verschiedene Dienstqualitäten
innerhalb eines derartigen Netzes zu erzeugen, indem der aus der
Verarbeitung einer Dienstanforderung und/oder der Lebensdauer für eine Dienstanforderung
abgeleitete Wert definiert wird. Die durch das Netz bereitgestellte
Dienstqualität
(QoS) kann durch die Netzbetreiber oder den Diensteanbieter gesteuert werden,
der konstante Werte für
diese Variable für verschiedene
Typen der Dienstanforderungen definiert oder für den gleichen Dienst verschiedene
Klassen der QoS verfügbar
hat, wobei der Anwender eine gewünschte
Klasse der QoS auswählt.
Alternativ können
die Anwender ein geeignetes Niveau der QoS oder ein Kostenniveau,
für dessen
Bezahlung sie vorbereitet sind, wählen, wobei diese Wahl dann in
eine geeignete Kombination des Dienstanforderungswertes und/oder
der Lebensdauer übersetzt wird.
Außerdem
kann der QoS-Prozeß transparenter sein,
wobei die Anwender direkt den Dienstanforderungswert und/oder die
Lebensdauer für
einige oder alle ihrer Netztransaktionen auswählen.
-
Ein
Beispiel eines derartigen Mehrfachdienstnetzes ist, wie es durch
M. Fry u. A. Ghosh, "Application
Level Active Networking",
verfügbar
von http://dmir.socs.uts.edu.au/projects/alan/papers/cnis.ps beschrieben
ist. Das Netz würde
eine Anzahl ausgedehnter aktiver Netzknoten (ANNs) enthalten, wobei
jeder ANN einen großen
Prozessor-Cluster, z. B. bis zu 200 Prozessoren, umfasst, wobei
jeder Prozessor einen dynamischen Proxylet-Server (DPS) und etwa
10 virtuelle Java-Maschinen (JVMs) ausführt, von denen jede ein oder
mehrere Proxylets enthält
(ein Proxylet ist ein kleines Programm, das einen aktiven Netzdienst,
wie z. B. die Umcodierung eines Datenbetriebsmittels von einem Format
in ein weiteres, z. B. von einem QuickTime-Videostrom in einen RealTime-Videostrom
oder vom CD-Format-Audio
in MP3-Format-Audio, implementiert).
-
Jeder
DPS steuert und implementiert die oben erörterten algorithmischen Regeln,
die die Aktivitätsindikatorniveaus
bestimmen, bei denen die Knoten sich reproduzieren, Knotenstrategien
exportieren, Knotenstrategien importieren usw. können. Die JVMs sind die Knoten
(d. h. analog zum Bakterium), wobei die Proxylets (oder die Strategien,
die auf die Proxylets zeigen und die Ausführung autorisierten) die Knotenstrategien
(d. h. die Gene der Bakterien) schaffen.
-
In
Gebrauch sind die Proxylets hauptsächlich Mehranwendervorrichtungen,
aber sie können durch
einen einzelnen Anwender installiert und verwendet werden. Ein Proxylet
kann durch einen Anwender installiert werden, der dann fortfährt, das
Proxylet zu belasten, indem er geeignete Dienstanforderungen macht
(dies ist zum Setzen einer Knotenstrategie in einen Knoten und dann
dem Einspeisen einiger Anforderungen für den Dienst, den sie repräsentiert,
analog). Nur bei sehr niedrigen Verkehrslasten ist ein gegebenes
Proxylet nicht in allen ANNs vorhanden, dies verursacht aber eine
effiziente Verwendung der Netzbetriebsmittel, da die Proxylets nur
in Reaktion auf eine Anwenderanforderung ausgeführt werden und an einem zweckmäßigen Ort
im Netz ausgeführt
werden.
-
Die
Knoten des simulierten Netzes besitzen keine Kenntnis des Konzepts
eines ANN oder der Grenzen zwischen den verschiedenen ANNs, die
ein Netz umfassen. Die Hauptgründe
dafür bestehen
darin, die Komplexität
der Knotenoperationen zu minimieren, und in der Fuzzy-Natur der
Grenzen in einem Cluster-Modell.
-
Die
Simulation zeigt, dass ein derartiges aktives Netz implementierbar
sein sollte und dass vernünftige
Leistungsniveaus erreicht werden. Die Fähigkeit zum Management der
Verteilung der neuen Dienste über
derartige Netze ist außerdem
erfolgreich simuliert worden.