-
Computernetzwerke
sind heutzutage überall vorhanden.
In einem typischen Computernetzwerk sind verschiedene Geräte unterschiedlichen
Typs über
Schaltelemente, wie z. B. Router, Schalter und Hubs, miteinander
verbunden, um es den Geräten
zu ermöglichen,
gemäß einem
vordefinierten Kommunikationsmodell miteinander zu kommunizieren.
-
Es
gibt verschiedene Möglichkeiten,
wie Netzwerke in Topologien konfiguriert sein können, die durch Anwendungen
benötigt
werden, die diese Netzwerke verwenden. Das einfachste Netzwerk umfaßt tendenziell
das Festverdrahten der verschiedenen Geräte unter Verwendung geeigneter
Schaltelemente und Verbinden der Medien (z. B. leitfähige Kabel,
Faseroptikkabel, das drahtlose Medium, usw.). Obwohl der festverdrahtete
Lösungsansatz
für relativ kleine
statische Netzwerkkonfigurationen gut funktioniert, läßt er sich
nicht gut erweitern und führt
tendenziell zu Netzwerken, die schwierig zu verwalten und zu aktualisieren
sind.
-
In
jüngster
Zeit wurde ein flexiblerer Lösungsansatz
zum Erstellen von Computernetzwerken vorgeschlagen. Anstatt jede
Netzwerktopologie stückchenweise,
durch Festverdrahten der Geräte aufzubauen,
werden die Geräte
so betrachtet, daß sie
zu einem gemeinsamen Pool bzw. einer Ansammlung von Ressourcen gehören, die
in einer hierarchischen Baumtopologie angeordnet sind. Eine hierarchische
Baumtopologie wird gewählt,
da Geräte
in dem Baum untereinander entlang deterministischer Kommunikationswege
kommunizieren und dadurch die Bereitstellung und Aktualisierung
von Aufgaben vereinfachen. Innerhalb der hierarchischen Baumtopologie
sind die Geräte
unter Verwendung eines Pools von Schaltelementen miteinander verbunden.
Abhängig
davon, wie die Schaltele mente konfiguriert sind, können verschiedene
logische Netzwerke von diesem gemeinsamen Pool von Geräten und Schaltelementen
(z. B. Schalter, Router und Hubs) aufgebaut werden, beispielsweise
unter Verwendung einer virtuellen Lokalnetz-(VLAN = Virtual Local
Area Network) Technologie. Eine Erörterung einer beispielhaften
VLAN-Technologie kann von der IEEE 802.1Q Arbeitsgruppe erhalten
werden (http://grouper.ieee.org/groups/802/1/, September 2002).
-
Unter
diesem Lösungsansatz
kann jede Anzahl logischer Netzwerktopologien von dem physikalischen
Netzwerk aufgebaut werden, falls es ausreichend Ressourcen in dem
gemeinsamen Pool von Geräten
und Schaltelementen (z. B. Schalter, Router und Hubs) des Baums
gibt. Beispielsweise möchte eine
Organisation eine Dreilagenanwendungstopologie erzeugen oder zu
derselben erweitern, die zwei Datenbankserver, fünf Anwendungsserver, vier Webserver
und eine Firewall bzw. Brandmauer für Internetzugriffe aufweist.
Von dieser Beschreibung und dem Kommunikationsmodell, das die Kommunikationspolitik
(einschließlich
der erwarteten Bandbreitenverwendung) für jedes Gerät, das für die Anwendung erforderlich
ist, bestimmt, können
die notwendigen Geräte
(z. B. Datenbankserver, Anwendungsserver, Webserver und Brandmauern)
von dem gemeinsamen Pool von Geräten
ausgewählt
werden und unter Verwendung der Schaltelemente in dem Baum miteinander
verbunden werden. Somit wird der Aufbau einer logischen Netzwerktopologie
eine Aufgabe im Auswählen
der erforderlichen Geräte
von dem Pool verfügbarer
Geräte,
die in der Baumhierarchie existieren, und im Konfigurieren der Schaltelemente
auf geeignete Weise zum Verbinden der Geräte, wie es durch das Kommunikationsmodell
und die logische Spezifikation spezifiziert ist. Ein solches Netzwerk (das
eine Vielzahl von Geräten
und Netzwerkelementen enthält,
so daß dieselben
einem gegebenen Kommunikationsmodell entsprechen) wird hierin als eine
Farm bzw. ein Hof bzw. eine Netzanordnung bezeichnet.
-
Um
die Erörterung
zu erleichtern, stellt 1 ein beispielhaftes Datenzentrum 100 dar,
das den großen
gemeinsamen Pool von beinahe 500 vernetzten Geräten von zehn unterschiedlichen
Typen und Schaltelementen darstellt, von denen verschiedene Netzanordnungen
aufgebaut werden können.
Das Datenzentrum 100 umfaßt einen Hub 1101 (der
8 Netzwerktore für
insgesamt 4.096 Mbps enthält)
an der Rootebene des hierarchischen Baums. Der Hub 1101 ist
mit 9 Routern 2001, 2002, 2011, 2012, 2013, 2021, 2022, 2023 und
2024 gekoppelt, die an der Ebene 1 des Baums angeordnet sind (wobei
die Hub die Ebene 0 ist).
-
Der
Router 2001 ist mit 15 N4000 N-Klasse-Servern (Server sind in 1 mit
dem Begriff „cpu" bezeichnet) und
vier Schaltern 8011, 8021, 8031 und 8061 gekoppelt, die an der Ebene
2 des Baums angeordnet sind. Jeder der Schalter 8011, 8021, 8031
und 8061 ist mit 10 J6000-Servern gekoppelt, die an der Ebene 3
des Baums angeordnet sind.
-
Der
Router 2002 ist mit 25 L3000-Servern gekoppelt, die an der Ebene
2 des Baums angeordnet sind. Wie es in 1 gezeigt
ist, ist jeder der Router 2011, 2012 und 2013 mit 10 A500-Servern gekoppelt,
die an der Ebene 2 des Baums angeordnet sind.
-
Der
Router 2021 ist mit 10 Lastausgleichselementen (lb = load balancers)
und 9 Schaltern 8041, 8051, 8045, 8081, 8001, 8135, 8991, 8981 und
8971 gekoppelt, die an der Ebene 2 des Baums angeordnet sind. Jeder
der Schalter 8041, 8051 und 8045 ist mit 12 LP1000R-Servern gekoppelt.
Jeder der Schalter 8081, 8001 und 8135 ist mit 12 LP2000R-Servern gekoppelt.
Jeder der Schalter 8991, 8981 und 8971 ist mit 8 Brandmauern gekoppelt.
Die LP1000R-Server, die LP2000R-Server
und die Brandmauern, die dem Router 2021 zugeordnet sind, sind an
der Ebene 3 des Baums angeordnet.
-
Der
Router 2022 ist mit 10 Lastausgleichselementen (lb) und 9 Schaltern
8042, 8052, 8046, 8082, 8083, 8084, 8992, 8982 und 8972 gekoppelt, die
an der Ebene 2 des Baums angeordnet sind. Jeder der Schalter 8042,
8052 und 8046 ist mit 12 LP1000R-Servern gekoppelt. Jeder der Schalter 8082,
8083 und 8084 ist mit 12 LP2000R-Servern gekoppelt. Jeder der Schalter
8992, 8982 und 8972 ist mit 8 Brandmauern gekoppelt. Die LP1000R-Server, die
LP2000R-Server und die Brandmauern, die dem Router 2022 zugeordnet
sind, sind an der Ebene 3 des Baums angeordnet.
-
Der
Router 2023 ist mit 10 Lastausgleichselementen (lb) und 5 Schaltern
8043, 8053, 8055, 8085 und 8003 gekoppelt, die an der Ebene 2 des Baums
angeordnet sind. Jeder der Schalter 8043, 8053 und 8055 ist mit
12 LP1000R-Servern gekoppelt. Jeder der Schalter 8085 und 8003 ist
mit 12 LP2000R-Servern
gekoppelt. Die LP1000R-Server und die LP2000R-Server, die dem Router 2023 zugeordnet
sind, sind an der Ebene 3 des Baums angeordnet.
-
Der
Router 2024 ist mit 10 Lastausgleichselementen (lb) und 7 Schaltern
8044, 8054, 8004, 8005, 8006, 8100 und 8101 gekoppelt, die an der Ebene
2 des Baums angeordnet sind. Jeder Schalter 8044 und 8054 ist mit
12 LP1000R-Servern gekoppelt. Jeder der Schalter 8004, 8005 und
8006 ist mit 12 LP2000R-Servern gekoppelt. Der Schalter 8100 ist
mit 6 Virtuelles-Privates-Netzwerk-(VPN = Virtual Private Network-)Gateways
(die in 1 als Backhauls bezeichnet werden)
gekoppelt. Der Schalter 8101 ist mit 4 Netzwerkverbundenen-Speicher-(NAS =
Network Attached Storage) Möglichkeiten
und 2 VPN-Gateways gekoppelt. Die LP1000R-Server, die LP2000R-Server und die NAS
und die VPN-Gateways,
die dem Router 2024 zugeordnet sind, sind an der Ebene 3 des Baums
angeordnet.
-
Man
nehme an, daß man
eine Netzanordnung aus einer logischen Spezifikation erstellen möchte, die
eine Dreilagenarchitektur spezifiziert, mit zwei A500 Datenbankservern,
einer NAS, einem Cluster von 13 LP2000R-Anwendungsservern und einem
VPN-Gateway (Backhaul) von dem Datenzentrum 100 von 1.
Ferner kommunizieren die LP2000R-Anwendungsserver
nicht untereinander, noch kommunizieren die A500-Datenbanksever
untereinander. Die logische Spezifikation dieser Netzanordnung ist
in 2A gezeigt. Das Kommunikationsmodell ist in 2B gezeigt.
Angenommen, daß alle
Geräte
in dem Datenzentrum 100 für eine Verwendung verfügbar sind,
gibt es mehr als ausreichend Ressourcen in dem Datenzentrum 100,
um die benötigte
Netzanordnung aufzubauen.
-
Falls
Effizienz kein Thema ist, kann die Netzanordnung durch zufälliges Auswählen der
Geräte
(z. B. der Datenbankserver, der LP2000R-Anwendungsserver und der
Brandmauer) von den verfügbaren Geräten in dem
Datenzentrum 100 und durch geeignetes Konfigurieren der
Schaltelemente, die entlang der möglichen Kommunikationswege
derselben angeordnet sind, aufgebaut werden. Ein solch zufälliger Lösungsansatz
optimiert jedoch die Bandbreitenverwendung in dem Datenzentrum 100 nicht
und kann erfordern, daß Daten
zwischen den Geräten
der Netzanordnung mehr Sprünge
oder Hops als notwendig durchlaufen. Man betrachte beispielsweise die
Kommunikation zwischen einem VPN-Gateway und einem LP2000R-Anwendungsserver.
Falls sowohl der VPN-Gateway als auch der LP2000R-Anwendungsserver
von denjenigen unter dem Router 2024, wie z. B. unter einem VPN-Gateway
unter dem Schalter 8101 und einem LP2000R-Server unter dem Schalter
8004 ausgewählt
werden, erfordert die Kommunikation zwischen diesem VPN-Gateway
und dem LP2000R-Server nur vier Sprünge (über den Schalter 8101, den
Router 2024 und den Schalter 8004). Falls andererseits der VPN-Gateway
von denjenigen unter dem Schalter 8100 des Routers 2024 ausgewählt wird
und der LP2000R-Server von denjenigen unter dem Schalter 8083 des
Routers 2022 ausgewählt
ist, erfordert die Kommunikation zwischen diesem VPN-Gateway und
dem LP2000R-Server sechs Sprünge
(über den
Schalter 8100, Router 2024, Hub 1101, Router 2022, Schalter 8083).
Der Zufallslösungsansatz
berücksichtigt
die Bandbreitenkapazität
oder die Überlastung
nicht, wenn die Bestandteilgeräte
ausgewählt
werden.
-
Ein
weiterer Lösungsansatz,
der als zuerst-kommen-zuerst-bedient-werden
(FCFS = First-Come-First-Served) bekannt ist, gibt vor, daß man den
Baum in einer bestimmten Richtung durchlaufen kann und so viele
Ressourcen wie möglich entlang
dem Weg sammeln kann, bis alle Ressourcenanforderungen erfüllt sind.
Unter diesem Lösungsansatz
kann die vorher erwähnte
Netzanordnung beispielsweise unter Verwendung von Ressourcen aufgebaut
werden, die angetroffen werden, wenn der Router 2001, die Kindknoten
und Enkelknoten desselben und dann der Router 2002, die Kindknoten und
Enkelknoten desselben durchlaufen wird, und durch Anhalten unterwegs,
falls und wenn die erforderlichen Ressourcen alle erhalten wurden.
Wie bei dem Zufallslösungsansatz
gibt es hier wenig Intelligenz bei der Auswahl der Bestandteilgeräte der Netzanordnung
bezüglich
der Bandbreiteneffizienz. Folglich können Netzanordnungen, die unter
Verwendung des zuerst-kommen-zuerst-bedient-werden-Paradigmas für die Geräteauswahl
aufgebaut werden, auch zu einer Bandbreitenineffizienz und Leistungsverschlechterung
führen.
-
Der
effizienteste Satz von Bestandteilgeräten zum Aufbauen einer Netzanordnung
aus einem Baumtopologienetzwerk kann nach dem Bewerten aller möglichen
Permutationen und Auswählen
der am bandbreiteneffizientesten Permutation erhalten werden. Dieser
Lösungsansatz
ist jedoch für
die meisten Baumtopologie-Netzwerke jeder wesentlichen Größe unpraktisch
(z. B. mit mehr als 100 Geräten). Über eine
bestimmte Größe hinaus
ergibt die bloße
Anzahl der Geräte,
die in dem Baumtopologie-Netzwerk vorliegen, Anlaß für einen
riesigen Satz von möglichen
Permutationen, was eine entsprechende riesige Menge an Rechenleistung
und -Zeit zum Auswerten erfordert.
-
Einige
intelligente Geräteauswahlalgorithmen
können
verwendet werden, um die Zeitdauer zu reduzieren, die erforderlich
ist, um einen effizienten Satz von Bestandteilgeräten auszuwählen, um
eine Netzanordnung zu erstellen. Auch wenn diese intelligenten Geräteauswahlalgorithmen
keine erschöpfende
Bewertung aller möglichen
Kombinationen in dem Baumtopologie-Netzwerk erfordern, erhöht sich dennoch
die erforderliche Zeitdauer zum Finden einer Lösung trotzdem mit ansteigender
Komplexität der
Baumnetzwerktopologie. Falls das Baumtopologie-Netzwerk vor der
Geräteauswahl
intelligent vereinfacht werden kann, können diese Geräteauswahlalgorithmen
eventuell effizienter arbeiten, oder es kann sein, daß dieselben überhaupt
nicht benötigt werden,
um eine effiziente Lösung
zu finden.
-
Aus
der
US 6134599 A ist
bereits ein Netzwerk bekannt, welches sich als Baumstruktur organisiert.
Hierbei werden mehrere Iterationen durchgeführt, wobei nur taugliche Geräte in den
Baum aufgenommen werden. Bei dem bekannten Verfahren wird ferner
die Kinderzahl reduziert und entsprechend die Übertragung eingestellt.
-
Die
US 6,105,018 bezieht sich
Computerdatenbanksysteme und insbesondere auf ein effizientes Ausführen einer
Abfrage in einer Datenbank. Dabei wird ein effizienter Satz von
Indizes bestimmt, um eine Mehrzahl von vorweggenommenen Abfragetypen
(anticipated querry types) abzudecken, in dem ein gerichteter azyklischer
Graph gebildet wird (directed acyclic graph), dessen Knoten vorweggenommenen
Abfragetypen entsprechen. Ein Minimal-Blatt-Spannbaum (minimum leaf
spanning tree) für
den äquivalenten
Graphen wird bestimmt durch wiederholtes Finden eines vergrößernden
Pfads (augmenting paths) für
einen aktuellen Spannbaum und Erstellen eines reduzierten Blatt-Spannbaums basierend
auf dem aktu ellen Spannbaum und dem vergrößernden Pfad bis ein vergrößernder
Pfad nicht länger
gefunden werden kann. Die Blätter
des Minimal-Blatt-Spannbaums zeigen an, welche Indizes gebaut werden
sollen.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein computerimplementiertes
Verfahren zum Filtern einer Baumtopologie-Netzwerkspezifikation, einen
Herstellungsartikel mit einem Programmspeichermedium mit eingebauten
computerlesbaren Codes, ein computerimplementiertes Verfahren zum
Filtern einer Baumtopologie-Netzwerkspezifikation und eine Anordnung
zum Erzeugen einer Netzanordnung mit verbesserter Charakteristika
zu schaffen.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1, einen Herstellungsartikel
gemäß Anspruch
8, und Verfahren gemäß Anspruch
14, sowie eine Anordnung gemäß Anspruch
16 gelöst.
-
Diese
und andere Merkmale der vorliegenden Erfindung werden nachfolgend
näher beschrieben.
-
Die
vorliegende Erfindung wird beispielhaft und nicht beschränkend in
den Figuren der beiliegenden Zeichnungen dargestellt, bei denen
sich gleiche Bezugszeichen auf ähnliche
Elemente beziehen.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend bezugnehmend auf beiliegende
Zeichnungen näher
erläutert. Es
zeigen:
-
1 ein
beispielhaftes Datenzentrum, das den großen gemeinsamen Pool von vernetzten
Geräten
unterschiedlichen Typs und Schaltelementen darstellt, von denen
verschiedene Netzanordnungen aufgebaut werden können;
-
2A eine
beispielhafte logische Spezifikation für eine Netzanordnung;
-
2B ein
beispielhaftes Kommunikationsmodell für eine Netzanordnung;
-
3 den
bedarfsbasierten Filteralgorithmus gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung;
-
4 ein
Ausführungsbeispiel
des Filtern-nach-Gerät-Prozesses in näheren Einzelheiten;
-
5 den
beispielhaften OVERLAY-Baum, nachdem der Filterprozeß von 4 an
dem Baumnetzwerk von 1 abgeschlossen ist;
-
6 den
Filtern-nach-Schaltelement-Prozeß gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung;
-
7 den
beispielhaften OVERLAY-Baum nach dem Abschluß des Filtern-nach-Schaltelement-Prozesses
von 6;
-
8A und 8B den
Filtern-nach-Router-Prozeß gemäß einem
Aus führungsbeispiel
der vorliegenden Erfindung;
-
9 den
Kombinierprozeß,
der durch 8B aufgerufen wird, gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
10 den
beispielhaften OVERLAY-Baum nach dem Abschluß des Filtern-nach-Router-Prozesses
von 8A, 8B und 9;
-
11A und 11B den
Filtern-nach-Hub-Prozeß gemäß einem
Ausführ
ungsbeispiel der vorliegenden Erfindung; und
-
12 den
beispielhaften OVERLAY-Baum nach dem Abschluß des Filtern-nach-Hub-Prozesses von 11A und 11B.
-
Die
vorliegende Erfindung wird nun mit Bezugnahme auf einige bevorzugte
Ausführungsbeispiele
derselben, wie sie in den beiliegenden Zeichnungen dargestellt sind,
näher beschrieben.
Bei der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten
aufgeführt,
um ein tiefes Verständnis
der vorliegenden Erfindung zu liefern. Es ist jedoch für einen
Fachmann auf diesem Gebiet klar, daß die vorliegende Erfindung
auch ohne einige oder ohne alle der spezifischen Einzelheiten praktiziert werden
kann. In anderen Fällen
wurden gut bekannte Prozeßschritte
und/oder Strukturen nicht näher
beschrieben, um die vorliegende Erfindung nicht unnötig zu verdecken.
-
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ist eine Filtertechnik zum Reduzieren
der Anzahl von Geräten
und der Anzahl von Schaltelementen (d. h. der Hubs, Router oder
Schalter) in dem Baumtopologie-Netzwerk vor der Geräteauswahl
vorgesehen. Die Filtertechnik berücksichtigt den Bedarf der Netzanordnung,
die Bandbreitenanforderungen der Geräte, die Bandbreite der Schaltelemente,
durch die ein oder mehrere Geräte
kommunizieren, um redundante Geräte
und Schaltelemente von dem Baumtopologie-Netzwerk zu entfernen.
Vorteilhafterweise weist das gefilterte Baumtopologie-Netzwerk (FTTN)
alle Ressourcen auf, die für
die Netzanordnung benötigt
werden, und die beste Lösung,
die mit dem FTTN verfügbar
ist, ist im wesentlichen so effizient wie die beste Lösung, die
mit dem ungefilterten TTN (UTTN) verfügbar ist. Auf diese Weise ist
der Problemsatz reduziert und es müssen weniger Permutationen
bewertet werden, um eine effiziente Lösung zu finden.
-
3 stellt
den bedarfbasierten Filteralgorithmus gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung dar. An einer hohen Ebene umfaßt der Filteralgorithmus
das Filtern des Topologiebaum-Netzwerks oder eine Kopie desselben
von unten nach oben und das Abschneiden, während das Filtern fortschreitet.
Folglich werden die Geräte
in Block 302 gefiltert, um Geräte von einem unbenötigten Typ
zu entfernen. Allgemein gesagt werden für jeden Gerätetyp zwei Parameter gespeichert:
1) SELFTALK, der anzeigt, ob Geräte
eines speziellen Gerättyps
untereinander sprechen können,
und 2) WORSTCASE-Bandbreite, die die Bandbreitenanforderungen im
schlechtesten Fall für
einen speziellen Gerätetyp
darstellt. 4 hierin erörtert ein Ausführungsbeispiel
des Filtern-nach-Geräte-Prozesses
näher.
-
In
Block 304 wird das Filtern an jeder der Schaltelement-(Schalter, Router
und Hub) Ebenen durchgeführt.
Allgemein gesagt wurden an dieser Stufe die nicht benötigten Geräte bereits
früher
in Block 302 entfernt, und der Filtern-nach-Schaltelement-Prozeß von Block 304 umfaßt das Entfernen redundanter
direktverbundener Geräte
von den Schaltelementen. 6 hierin erörtert ein Ausführungsbeispiel
des Filtern-nach-Schaltelement-Prozesses näher.
-
In
Block 306 wird Filtern an der Routerebene durchgeführt. Allgemein
gesagt werden redundante Schalter bei diesem Prozeß eliminiert.
Ferner werden Schalter „kombiniert", um den Bedarf der
Netzanordnung bezüglich
eines speziellen Gerätetyps
zu erfüllen,
falls dies vorteilhaft ist. 8A, 8B und 9 hierin
erörtern
ein Ausführungsbeispiel
des Filtern-nach-Router-Prozesses näher.
-
In
Block 308 wird Filtern an der Hubebene durchgeführt. Allgemein
gesagt werden bei diesem Prozeß redundante
Router eliminiert. 11 hierin erörtert ein
Ausführungsbeispiel
des Filtern-nach-Hub-Prozesses näher.
-
Es
gibt zusätzliche
Komplexitäten,
Nuancen und Optimierungen in jedem der Blöcke von 3, die mit
Bezugnahme auf die nachfolgenden Figuren besser verständlich werden.
-
4 stellt
den Filtern-nach-Gerät-Prozeß von Block 302 in 3 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung dar. In Block 402 wird die Anzahl
jedes Gerätetyps,
der von der Netzanordnung gewünscht
wird, das Kommunikationsmodell und das Hardwaremodell des Baumtopologie-Netzwerks, einschließlich der
verfügbaren
Bandbreite, empfangen. In Block 404 wird das Array SELFTALK,
von dem Elemente verwendet werden, um zu verfolgen, ob Geräte des gleichen
gegebenen Gerätetyps
untereinander kommunizieren können, auf
falsch initialisiert. Das Array WORSTCASE, von dem Elemente verwendet
werden, um die Bandbreite im ungünstigsten
Fall für
jeden Gerätetyp
zu verfolgen, wird auf 0 initialisiert. Ein Überlagerungsbild (z. B. eine
Kopie) des Hubs des Baumtopologie-Netzwerks wird ebenfalls in 404 gemacht,
um die Filteroperation zu ermöglichen,
die auf dem OVERLAY-Baum arbeitet.
-
In
Block 406 wird sichergestellt, ob es zusätzliche
Gerätetypen
zum Verarbeiten gibt. Falls es zusätzliche Gerätetypen zum Verarbeiten gibt, schreitet
das Verfahren zu Block 408 fort, wo die temporäre Variable
D als der nächste
Gerätetyp
eingestellt wird. In Block 410 wird eine einfache Überprüfung mit
dem in Block 402 vorgesehenen Kommunikationsmodell durchgeführt, um
zu bestimmen, ob Geräte
des Typs D miteinander sprechen können. Falls Geräte des Typs
D miteinander sprechen können,
wird das entsprechende Arrayelement des Arrays SELFTALK in Block 412 auf
wahr eingestellt, um diese Charakteristik wiederzuspiegeln.
-
In
Block 414 wird das Arrayelement des Arrays WORSTCASE, das
verwendet wird, um die Bandbreitenanforderung des Gerätetyps D
im ungünstigsten
Fall zu verfolgen, auf die größte Bandbreitenanforderung
eingestellt, die durch das Kommunikationsmodell für den Gerätetyp D
angezeigt wird. In Block 416 werden alle freien Geräte des Typs D,
einschließlich
deren Elternschalter und Router zu OVERLAY hinzugefügt. Die
Wirkung des Blocks 416 ist es, nur die Geräte von dem
Baumnetzwerk hinzuzufügen,
die frei sind und Typen aufweisen, die für die Netzanordnung zu dem
OVERLAY benötigt
werden. Dies eliminiert alle Geräte,
die von der Netzanordnung nicht benötigt werden, oder die Geräte, die bei
der Suche berücksichtigt
werden.
-
Danach
kehrt das Verfahren zu Block 406 zurück, um den nächsten Gerätetyp zu
verarbeiten. Der Prozeß setzt
sich fort, bis alle Gerätetypen
verarbeitet werden, in diesem Fall endet das Verfahren bei Block 420.
-
5 zeigt
den OVERLAY-Baum, nachdem der Filterprozeß von 4 an dem
Baumnetzwerk von 1 abgeschlossen ist. Bei dem
vorliegenden Beispiel wird davon ausgegangen, daß alle in der ursprünglichen 1 gezeigten
Geräte
frei sind und für die
Verwendung beim Aufbauen der Netzanordnung verfügbar sind. Im Vergleich zu
dem ursprünglichen Baumtopologie-Netzwerk
von 1 wurden die unbenötigten Geräte eliminiert. Mit Bezugnahme
auf Router 2001 und Router 2002 weisen diese Router beispielsweise
kein Gerät
auf, das von der Netzanordnung benötigt wird. Da diese nicht benötigten Geräte durch
Block 416 nicht zu dem OVERLAY-Baum hinzugefügt wurden,
und folglich in 5 fehlen, werden ihre Elternschalter
und Router ebenfalls nicht zu dem OVERLAY-Baum hinzugefügt. Die Router 2011, 2012,
2013 weisen alle jeweils 10 a500-Server auf. Bei dem vorliegenden
Beispiel werden diese a500-Server benötigt und werden daher alle
dem OVERLAY-Baum hinzugefügt.
Die Elternschalter und Router derselben werden ebenfalls hinzugefügt, wie es
in 5 ersichtlich ist.
-
Mit
Bezugnahme auf den Router 2021 werden die Lastausgleichselemente,
die LP1000R-Server und die Brandmauern, die in 1 gezeigt
sind, nicht benötigt
und wurden somit dem OVERLAY-Baum nicht hinzugefügt. Die LP2000R-Server werden
jedoch von der Netzanordnung benötigt
und wurden folglich dem OVERLAY-Baum hinzugefügt. Die Elternschalter und
Router derselben sind ebenfalls hinzugefügt, wie es in 5 ersichtlich
ist.
-
6 stellt
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung den Prozeß von Block 304 in 3 dar.
In Block 604 wird sichergestellt, ob es irgendwelche zusätzlichen
Schaltelemente in dem OVERLAY-Baum gibt. Falls es zusätzliche
Schaltelemente zum Verarbeiten gibt, schreitet das Verfahren zu
Block 606 fort, wo die temporäre Variable S auf das nächste Schaltelement
eingestellt ist, und der WORSTCASE für dieses Schaltelement, das
durch S dargestellt ist, auf 0 eingestellt ist. In Block 608 wird
sichergestellt, ob es unter dem Schaltelement S mehr Gerätetypen
zum Verarbeiten gibt. Falls dies der Fall ist, schreitet das Verfahren
zu Block 610 fort, um die temporäre Variable D auf den nächsten Gerätetyp einzustellen
und die temporäre Variable
N auf den Bedarf an dem Gerätetyp
D (wobei dieser Bedarf von der logischen Spezifikation erhalten
wird).
-
In
Block 612 wird geprüft,
ob das Schaltelement S mehr direktverbundene Geräte des Typs D aufweist als
der Bedarf, der durch die temporäre
Variable N dargestellt ist. Falls das Schaltelement S mehr direktverbundene
Geräte
des Typs D aufweist als der Bedarf, der durch die temporäre Variable
N dargestellt ist, werden alle überschüssigen Geräte des Typs
D von dem OVERLAY-Baum in Block 614 abgeschnitten. Die
Wirkung des Blocks 614 ist es daher, redundante direktverbundene
Geräte
von dem Schaltelement zu entfernen.
-
In
Block 615 wird das Element des WORSTCASE-Arrays zum Verfolgen
der Bandbreite im ungünstigsten
Fall für
das Schaltelement S gleich dem aktuell bestehenden Wert dieses Elements
des WORSTCASE-Arrays und der Anzahl dieses Gerätetyps D, die mit dem Schaltelement
S verbunden bleibt, eingestellt, multipliziert mit der Bandbreite
im ungünstigsten
Fall für
diesen Gerätetyp
(die durch den WORSTCASE (Typ) in Block 414 in 4 verfolgt
wurde). Vorzugsweise werden die WORSTCASE-Szenarios für beide
Richtungen für
das Schaltelement S verfolgt (d. h. die Aufwärtsrichtung durch das Schaltelement
S und die Abwärtsrichtung
durch das Schaltelement S getrennt). Dieser Zustand wird verwendet,
um die maximale Bandbreite zu verfolgen, die durch das Schaltelement
fließen
könnte,
von Geräten
des Typs D, die mit demselben verbunden sind. Außerdem wird die Variable FREE,
die dem Elternschaltelement zugeordnet ist (z. B. Router 2022, wenn
der Schalter 8082 in Betracht gezogen wird) durch die Anzahl von
Geräten
des Typs D inkrementiert (bis zu dem Maximum von NEED) in Block 607.
-
Danach
kehrt der Prozeß zu
Block 608 zurück,
um den nächsten
Gerätetyp
unter dem Schaltelement S zu verarbeiten. Falls alle Gerätetypen
unter dem Schaltelement S verarbeitet wurden, schreitet das Verfahren
von Block 608 zu Block 618 fort, um zu prüfen, ob
das Schaltelement S mehr als einen Gerätetyp aufweist (Block 618).
Falls das Schaltelement S nur einen Gerätetyp aufweist, schreitet der
Prozeß zu Block 620 fort,
wo das Schaltelement S mit MONOCHROME bezeichnet ist, und die folgenden
Variablen werden eingestellt.
- UP = availUPBW/WORSTCASEup
(D)
- DOWN = availDOWNBW/WORSTCASEdown (D)
- USABLE = min (NEED, UP, DOWN)
-
Die
Variable UP verfolgt die Anzahl von Geräten des Typs D, die ein MONOCHROME-Schaltelement
S unterstützen
kann, bei der verfügbaren Bandbreite
für das
Schaltelement S und der Bandbreitenanforderung im ungünstigsten
Fall in der Hoch-Richtung
für ein
Gerät des
Typs D. Die Variable DOWN verfolgt die Anzahl von Geräten des
Typs D, die ein MONOCHROME-Schaltelement S unterstützen kann,
bei der verfügbaren
Abwärtsbandbreite
für das
Schaltelement S und der Bandbreitenanforderung im ungünstigsten
Fall in der Abwärtsrichtung
für ein
Gerät des
Typs D. Die Variable USABLE verfolgt die maximale Anzahl von Geräten des
Typs D, die ein MONOCHROME-Schaltelement
unterstützen
kann. Der Prozeß schreitet
dann zu Block 604 fort, um zu prüfen, ob mehr Schaltelemente
vorliegen. Falls es in Block 618 mehr als einen Gerätetyp gibt,
kann der Schalter nicht mit MONOCHROME bezeichnet werden, und der
Prozeß schreitet
direkt zu Block 604 fort.
-
Falls
dagegen in Block 604 sichergestellt wird, daß es keine
weiteren Schaltelemente in dem OVERLAY-Baum gibt, endet der Prozeß bei Block 626.
-
7 zeigt
den OVERLAY-Baum nach dem Abschluß des Filtern-nach-Schaltelement-Prozesses von 6.
Es ist anzumerken, daß redundante
direktverbundene Geräte
von den Schaltelementen eliminiert wurden. Beispielsweise wurde
unter dem Schalter 8101 des Routers 2024 die Anzahl von NAS von
4 in 5 auf 1 in 7 reduziert,
da die logische Spezifikation von 2A nur
1 NAS verlangt. Analog wurde unter dem Schalter 8100 des Routers 2024
die Anzahl von VPN-Gateways (Backhauls) von 6 in 5 auf
1 in 7 reduziert, da die logische Spezifikation von 2A nur
1 VPN-Gateway verlangt. Obwohl es viele offensichtliche redundante Schalter
gibt, von denen einige besser geeignet sind zum Aufbau der Netzanordnung
als andere, werden diese in dem Filtern-nach-Schaltelement-Prozeß von 6 nicht
eliminiert. Diese werden in nachfolgenden Filterprozessen hierin
entfernt. Außerdem
reflektieren die Zahlen in Klammern neben den Routern (und dem Hub)
die FREE-Geräte,
die den Routern (und dem Hub) zugeordnet sind. Beispielsweise kann der
Router 2021 13 LP2000R-Server liefern, während der Router 2024 13 LP2000R-Server,
1 NAS-Gerät
und 1 Backhaul-Gerät liefern
kann.
-
8A und 8B zeigen
den Filtern-nach-Router-Prozeß von
Block 306 von 3 gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung. Allgemein gesagt zielen 8A und 8B darauf
ab, entweder einen oder mehrere Schalter unter einem Router zu entfernen
(8A), oder Schalter unter einer Router zu kombinieren,
um den Bedarf an einem speziellen Gerätetyp zu erfüllen (8B).
In 8A wird in Block 802 sichergestellt, ob
es in dem OVERLAY-Baum mehr Router zum Verarbeiten gibt. Falls es
mehr Router zum Verarbeiten gibt, schreitet das Verfahren zu Block 804 fort,
um das Verarbeiten der Router nacheinander zu beginnen. Somit wird
in Block 804 die temporäre
Variable R auf den nächsten
Router eingestellt, um den Durchlauf 1 über die Kinder des Routers
R einzuleiten. In dem Zusammenhang von 8A und 8B stellt
der Durchlauf 1 die Verarbeitung von 8A zum
Eliminieren redundanter Schalter dar. Der Durchlauf 2 stellt die
Verarbeitung von 8B zum Kombinieren von Schaltern
dar, falls dies benötigt wird.
-
In
Block 806 wird sichergestellt, ob es unter dem Router R
mehr Schaltkinder zu verarbeiten gibt. Falls es unter dem Router
R mehr Schaltkinder zum Verarbeiten gibt, schreitet das Verfahren
zu Block 808 fort, wo die temporäre Variable S auf den nächsten Kindschalter
von R eingestellt wird. In Schritt 810 wird sichergestellt,
ob der Schalter S die Bandbreite aufweist, um die Bandbreitenanforderung
im ungünstigsten
Fall handzuhaben, auf der Basis von WORSTCASE(S), die in Block 616 von 6 berechnet
wurden. Diese Prüfung
stellt sicher, daß ein Schalter,
der nicht in der Lage ist, die Bandbreitenanforderung im ungünstigsten
Fall handzuhaben, in einem Vergleich mit anderen Schaltern zum Zweck
des Eliminierens redundanter Schalter nicht „gewinnen" kann. Falls der Schalter S somit nicht
die Bandbreite zum Handhaben der Bandbreitenanforderung im ungünstigsten
Fall aufweist, kehrt der Prozeß zu
Block 806 zurück,
um den nächsten
Kindschalter des Routers R zu verarbeiten.
-
Falls
andererseits der Schalter S die Bandbreite übrig hat, um die Bandbreitenanforderung
im ungünstigsten
Fall handzuhaben, schreitet das Verfahren zu Block 812 fort,
in dem alle anderen Schaltkinder des Routers R in einer Liste B
gespeichert werden. Danach wird jedes Kind in der Liste B mit dem
Schalter S verglichen, um zu bestimmen, ob das Kind in der Liste
B, das verglichen wird, sicher eliminiert werden kann. Somit wird
in Block 814 sichergestellt, ob es mehr Schalter in der
Liste B zum Verarbeiten gibt. Falls keine weiteren Schalter in der
Liste B zu verarbeiten sind, kehrt das Verfahren zu Block 806 zurück, um das
nächste
Schaltkind des Routers R zu verarbeiten.
-
Falls
andererseits mehr Schalter in der Liste B zu verarbeiten sind, schreitet
das Verfahren zu Block 816 fort, in dem die temporäre Variable
T als nächster
Schalter in der Liste B eingestellt wird. In Block 818 wird
der Test durchgeführt,
um sicherzustellen, ob der Schalter T eliminiert werden kann. Bei einem
Ausführungsbeispiel
kann der Schalter T eliminiert werden, falls beide der beiden folgenden
Bedingungen erfüllt
sind. Die erste Bedingung ist erfüllt, falls der Schalter S oder
der Schalter T alle Bedürfnisse
für alle
Gerätetypen,
die jeder aufweist, erfüllt. Die
zweite Bedingung ist erfüllt,
falls die Anzahl von freien Geräten
unter dem Schalter S größer oder gleich
der Anzahl von freien Geräten
unter dem Schalter T für
alle Gerätetypen
in T ist. Beispielsweise ist der Schalter 8081 iden tisch (bezüglich der
Systeme, die mit demselben verbunden sind) mit dem Schalter 8001
und dem Schalter 8135, keiner derselben kann jedoch die anderen
eliminieren, weil keiner derselben die Anforderung der 13 LP2000R-Server erfüllt.
-
Falls
beide Bedingungen des Blocks 818 nicht erfüllt sind,
kehrt das Verfahren zu Block 814 zurück, um den nächsten Schalter
in der Liste B zu verarbeiten. Falls andererseits beide Bedingungen des
Blocks 818 erfüllt
sind, schreitet das Verfahren zu Block 820 fort, wo der
Schalter T von dem OVERLAY-Baum entfernt wird. Danach kehrt das
Verfahren ebenfalls zu Block 814 zurück, um den nächsten Schalter
in der Liste B zu verarbeiten.
-
Falls
in Block 806 bestimmt wird, daß es keine weiteren Schaltkinder
des Routers R zu verarbeiten gibt, schreitet das Verfahren zu 8 fort, um den Durchlauf 2 zum Verarbeiten
der verbleibenden Kindschalter des Routers R zu beginnen.
-
In 8B ist
es das Ziel, die Schalter unter einem Router zu kombinieren, um
einen Bedarf der Netzanordnung zu erfüllen, falls dies vorteilhaft
ist. Somit wird in Block 852 die Liste ListsbyType auf
Null initialisiert. Jede Liste ListsbyType verfolgt für einen speziellen
Router die MONOCHROME-Schalter, die einen bestimmten Gerätetyp liefern.
Beispielsweise sind unter dem Router 2023 die Schalter 8085 und 8003
beide MONOCHROME-Schalter, die LP2000R-Server versorgen. Ferner
wird die Variable UsablebyType auf Null eingestellt. Die Variable
UsablebyType wird verwendet, um die Anzahl von Geräten eines
speziellen Typs zu verfolgen, die ein bestimmter Schalter tatsächlich bereitstellen
kann. Um die Differenz zwischen frei und benutzbar klarzustellen, betrachte
man das folgende Beispiel. Ein Schalter kann 12 freie LP2000R-Server
unter sich haben, aber kann die Bandbreite aufweisen, um nur 10
bereitzustellen. In diesem Fall ist die Variable UsablebyType für LP2000R
für diesen
Schalter 10, auch wenn es 12 freie LP2000R-Server unter demsel ben
gibt. Die UsablebyType-Anzahl ist eine realistischere Beurteilung
der Fähigkeit
eines Schalters bezüglich
eines speziellen Gerätetyps.
-
In
Block 854 wird sichergestellt, ob mehr MONOCHROME-Schalter, zum Verarbeiten
unter dem Router R übrig
sind. Bezüglich
des Routers 2024 von 7 gibt es beispielsweise 3 MONOCHROME-Schalter:
8004, 8005 und 8006. Falls es welche gibt, wird die Schleife von
Block 854 plus Block 856 alle nutzbaren Geräte nach
Typ unter den MONOCHROME-Schaltern
addieren und dieselben der Variable UsablebyType zuweisen. Somit
ist bei diesem Beispiel die Anzahl von UsablebyType für LP2000R-Server
unter dem Router 2024 30 (weil jeder der Schalter 8004, 8005 und
8006 10 nutzbare LP2000R-Server aufweist). Ferner wird die Liste ListsbyType
für den
Router 2024 die drei Schalter 8004, 8005 und 8006 als MONOCHROME-Schalter verfolgen,
die die LP2000R-Server versorgen. Dies ist in Block 856 gezeigt.
-
Falls
keine MONOCHROME-Schalter zum Verarbeiten übrig sind, wie es durch Block 854 bestimmt
wird, schreitet das Verfahren zu Block 858 fort, der eine
Kennung oder ein Kommentar ist, um anzuzeigen, daß sich die
verbleibenden Schritte hauptsächlich
mit dem Filtern der MONOCHROME-Schalter beschäftigen. In Block 860 wird
festgestellt, ob es mehr nicht-leere ListsbyType zum Verarbeiten
gibt. Falls es mehr nicht-leere ListsbyType zum Verarbeiten gibt,
schreitet das Verfahren zu Block 862 fort.
-
Mit
Bezugnahme auf das Beispiel, das sich mit dem Router 2024 beschäftigt, gibt
es eine nicht-leere ListsbyType (d. h. die eine nicht-leere ListsbyType,
die die drei MONOCHROME-Schalter 8004, 8005 und 8006 verfolgt, die
die LP200R-Server versorgen).
Somit ist in Block 862 die temporäre Variable L als die nächste MONOCHROME-Liste
eingestellt. Bei dem vorliegenden Beispiel ist die temporäre Variable
L auf den einen nicht leeren ListsbyType eingestellt, der die drei
MONOCHROME-Schalter 8004, 8005 und 8006 verfolgt, die die LP200R-Server versorgen.
In Block 864 wird der Prozeß COMBINE aufgerufen, um Geräte zu kombinieren,
falls dies angemessen ist. Der COMBINE-Prozeß von Block 864 wird
in Verbindung mit 9 hierin erörtert. Nachdem der COMBINE-Prozeß von 9 abgeschlossen
ist, kehrt das Verfahren zu Block 860 zurück, um festzustellen,
ob es mehr nicht-leere ListsbyTypes zum Verarbeiten gibt. Falls
es keine weiteren nicht-leeren ListsbyTypes zum Verarbeiten gibt, schreitet
das Verfahren von Block 860 von 8B zu Block 802 von 8A fort,
um den nächsten
Router zu verarbeiten, falls es einen gibt.
-
9 stellt
den COMBINE-Prozeß gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung dar, der durch Block 864 von 8B aufgerufen
wird. In 9 ist es das Ziel in jedem Router,
daß die
MONOCHROME-Schalter, die einen bestimmten Gerätetyp liefern, kombiniert werden,
um einen größeren logischen
Schalter zu erzeugen, der eine größere Anzahl von Geräten dieses
Typs bereitstellt. In Block 902 wird festgestellt, wo der
Gerätetyp
Selbstsprechen erlaubt, d. h. Geräte dieses Typs miteinander
kommunizieren können.
Dieser Parameter wird durch das Kommunikationsmodell geliefert und
wird durch die Variable SELFTALK früher in Block 412 von 4 verfolgt,
falls Selbstsprechen erlaubt ist. Falls Selbstsprechen für diesen
Gerätetyp
nicht erlaubt ist, wie es für
die LP2000R-Server des vorliegenden Beispiels der Fall wäre, sammelt
Block 904 alle Geräte des
Typs, der derzeit betrachtet wird, unter einem größeren logischen
Schalter, bis zu der Anzahl von Geräten dieses Typs, die von der
Netzanordnung benötigt
wird.
-
Bei
einem Ausführungsbeispiel
wird dies erreicht durch Kopieren der Zeiger zu den Geräten und sammeln
derselben unter einem der Schalter (die genaue Auswahl des Schalters
ist beliebig, da davon ausgegangen wird, daß alle ähnlichen Geräte unter dem
gleichen Router ungefähr
die gleichen Kommunikationskosten aufweisen). Außerdem werden in Block 904 alle
anderen Geräte
dieses Typs entfernt, zusammen mit den Elternschaltern derselben.
Bezüglich
des Beispiels von 7 werden beispielsweise die
36 Nicht-Nebensprechen-LP2000Rs
unter dem Router 2024 unter einem logischen Schalter 8004 gesammelt,
bis zu den 13 LP2000R-Servern, die von der Netzanordnung benötigt werden,
und alle anderen LP2000R-Geräte
werden zusammen mit ihren Elternschaltern (d. h. Schalter 8005 und
8006) entfernt. Danach endet der Prozeß von 9, um zu dem
Aufrufprozeß zurückzukehren.
-
Falls
andererseits Selbstsprechen für
Geräte dieses
Gerätetyps
erlaubt ist, schreitet das Verfahren zu Block 906 fort,
bei dem ein minimaler Satz von Schaltern erstellt wird, beginnend
von dem Schalter mit der größten Usableby-Type und rekursives
Hinzufügen
zu dem Satz des nächstgrößten UsableType-Schalters,
bis die Anzahl erforderlicher Geräte nach Typen erfüllt ist.
Anfangs wird eine schnelle Prüfung
durchgeführt
um sicherzustellen, daß die
MONOCHROME-Schalter in dem ListsbyType von 8 abgeschnitten
werden können.
Somit wird in Block 906 festgestellt, ob die Anzahl von
MONOCHROME-Schaltern in der ListsbyType-Liste zumindest drei beträgt. Dies
liegt daran, daß an
diesem Punkt kein einziger MONOCHROME-Schalter alle Geräte des Typs
aufweist, um den Bedarf an diesem Typ zu erfüllen, und falls es nur zwei
oder weniger MONOCHROME-Schalter in der Liste gibt, können die
MONOCHROME-Schalter nicht abgeschnitten werden. Falls es mehr als
zwei MONOCHROME-Schalter
gibt und der UsablebyType-Wert aller MONOCHROME-Schalter, der dem Typ in der Liste zugeordnet
ist (d. h. die Gesamtmenge von UsablebyType-Parametern aller MONOCHROME-Schalter,
die dem Typ zugeordnet sind) größer ist
als die erforderliche Anzahl von Geräten des Typs, ist Abschneiden
zulässig. Falls
Abschneiden nicht zulässig
ist, wie es durch den Test von Block 906 festgestellt wird,
schreitet das Verfahren zu Block 948 fort, um zu dem Aufrufprozeß zurückzukehren.
-
Falls
Abschneiden zulässig
ist, wie es durch den Test von Block 906 festgestellt wird,
schreitet das Verfahren von Block 906 zu Block 908 fort,
wobei die vorübergehende
Liste SET auf Null initialisiert wird und die SUM (Summe) der UsablebyType-Werte
für diese
vorübergehende
SET Null ist. In Block 910 wird festgestellt, ob die aktuelle
SUM von UsablebyType geringer ist als die erforderliche Anzahl von
Geräten des
Typs. Falls die aktuelle SUM von UsablebyType geringer ist als die
erforderliche Anzahl von Geräten, wird
der Schalter G mit dem größten UsablebyType-Wert,
der sich nicht bereits in der vorübergehenden SET befindet, dem
vorübergehenden
SET hinzugefügt,
und die SUM von Usableby-Type
wird aktualisiert durch Hinzufügen
des UsablebyType-Werts des
neuhinzugefügten
Schalters G zu dem aktuellen SUM-Wert. Danach kehrt das Verfahren
zu Block 910 zurück,
um festzustellen, ob die aktuelle SUM von UsablebyType nach wie
vor geringer ist als die erforderliche Anzahl von Geräten des
Typs, und zum Hinzufügen
des Schalters mit dem nächstgrößten UsablebyType-Wert
zu der vorübergehenden
SET, falls in Block 910 festgestellt wird, daß die aktuelle
SUM von UsablebyType nach wie vor geringer ist als die erforderliche
Anzahl von Geräten
des Typs.
-
Auf
diese Weise baut das Verfahren die vorübergehende SET auf, durch Ansammeln
von Schaltern, beginnend mit dem Schalter mit dem größten UsablebyType-Wert
zuerst, bis die Gesamt-SUM von UsablebyType in der vorübergehenden
SET größer oder
gleich der erforderlichen Anzahl von Geräten nach Typ ist. Sobald die
Gesamt-SUM von UsablebyType in der vorübergehenden SET größer oder gleich
der erforderlichen Anzahl von Geräten ist, schreitet das Verfahren
zu Block 912 fort, um für
diesen Router alle MONOCHROME-Schalter zu entfernen, die diesem
Typ zugeordnet sind, die nicht der vorübergehenden SET hinzugefügt wurden.
Somit schneidet Block 912 alle redundanten Schalter ab, sobald
die Kombination eine ausreichende Anzahl von UsablebyType aufweist,
um den Bedarf der Netzanordnung an Geräten dieses Typs zu erfüllen.
-
10 zeigt
den OVERLAY-Baum nach dem Abschluß des Filtern-nach-Router-Prozesses
von 8A und 8B und 9.
Es ist anzumerken, daß viele
Schalter von den Routern eliminiert wurden, durch eine einfache
Elimination von redundanten Schaltern oder über die Kombination von Schaltern
zum Erfüllen
des Bedarfs an dem Typ und Eliminieren der MONOCHROME-Schalter,
die dem Typ zugeordnet sind, die nicht an der Kombination beteiligt
sind. Beispielsweise wurde unter Router 2024 der Schalter 8100 sofort
eliminiert, da der Schalter 8101 bereits alles bieten kann, was
der Schalter 8100 bieten kann (d. h. ein VPN-Gateway) und mehr.
Der Schalter 8101 wird bevorzugt und über den Schalter 8100 gehalten,
da der Schalter 8101 auch eine zusätzliche NAS bietet. Als weiteres
Beispiel wurden MONOCHROME-Schalter 8005 und 8006 eliminiert, da
die LP2000R-Server unter dem Schalter 8004' logisch zusammengelegt werden können. Es
ist in diesem Punkt anzumerken, daß es einige redundante Router
gibt (d. h. jeder der Router 2011, 2012 und 2013 kann die zwei erforderlichen
A500-Server bieten, und es gibt keinen Bedarf an allen drei dieser Router
in dem OVERLAY-Baum). Das Abschneiden redundanter Router wird in
dem Filtern-nach-Hub-Prozeß von 11A und 11B hierin
durchgeführt.
-
11A und 11B zeigen
den Filtern-nach-Hub-Prozeß von
Block 308 von 3 gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung. Allgemein gesagt zielen 11A und 11B darauf
ab, entweder einen oder mehrere Router unter einem Hub zu entfernen
(11A), oder Router unter einem Hub zu kombinieren,
um den Bedarf an einem speziellen Gerätetyp zu erfüllen (11B). In 11A wird
in Block 1102 festgestellt, ob es in dem OVERLAY-Baum mehr
Router zum Verarbeiten gibt. Falls es mehr Router zum Verarbeiten gibt,
schreitet das Verfahren zu Block 1104 fort, um das Verarbeiten
der Router nacheinander zu beginnen. Somit ist in Block 1104 die
vorgegebene Variable R auf den nächsten
Router eingestellt, um das Verarbeiten der Routerkinder des Hubs
einzuleiten, und die Liste Z ist eingestellt, um gleich allen anderen
verbleibenden Routern des Hubs zu sein. Ferner ist das Flag SIMPLE(R)
in dem SIMPLE-Array für
den Router R gesetzt, falls alle Kinder des Routers R nur direkt
verbundene Geräte
und MONOCHROME-Schalter sind. Beispielsweise wäre mit Bezugnahme auf 10 das
SIMPLE-Flag des
Routers 2024 nicht gesetzt, da der Schalter 8101 kein MONOCHROME-Schalter
ist. Alle anderen Router unter dem Hub 1101 sind jedoch
berechtigt, daß ihre
jeweiligen SIMPLE-Flags gesetzt sind. Die SIMPLE-Flags für die Router
werden später
in Verbindung mit 11B verwendet.
-
In
Block 1106 wird festgestellt, ob es mehr Router in der
Liste Z zum Verarbeiten gibt. Falls es in der Liste Z mehr Router
zum Verarbeiten gibt, schreitet das Verfahren zu Block 1108 fort,
wobei die vorübergehende
Variable Y auf den nächsten
Router in der Liste Z eingestellt ist. In Schritt 1110 wird
festgestellt, ob der Router R oder der Router Y allen Bedarf an
allen Gerätetypen
erfüllen
kann, die jeder hat. Falls nicht, kehrt das Verfahren zu Block 1106 zurück, um den
nächsten
Router in der Liste Z zu verarbeiten, da der Router Y in diesem
Fall nicht sicher eliminiert werden kann. Falls andererseits entweder
der Router R oder der Router Y allen Bedarf an allen Gerätetypen
erfüllen
können,
die jeder hat, schreitet das Verfahren zu Block 1112 fort,
um sicherzustellen, ob der Router Y eliminiert werden kann.
-
In
Block 1112 wird festgestellt, daß der Router Y ein Kandidat
für die
Eliminierung von dem OVERLAY-Baum ist, falls beide der folgenden
zwei Bedingungen erfüllt
sind. Die erste Bedingung ist erfüllt, falls die Anzahl von Geräten, die
in dem Router R zum Aufbauen der Netzanordnung frei verfügbar sind,
größer oder
gleich der Anzahl von Geräten
ist, die zum Aufbauen der Netzanordnung in dem Router Y frei verfügbar sind.
Die zweite Bedingung ist erfüllt, falls
der Router R ein Duplikat aller Geräte und Schaltelemente in dem
Router Y enthält.
Falls beide Bedingungen erfüllt
sind, schreitet der Prozeß von
Block 1112 zu Block 1114 fort, indem der Router
Y von dem OVERLAY- Netzwerk
entfernt wird. Danach kehrt der Prozeß zu Block 1106 zurück, um den
nächsten
Router in der Liste Z zu verarbeiten. Falls andererseits beide Bedingungen
nicht erfüllt
sind, kehrt der Prozeß von
Block 1112 zu Block 1106 zurück, um den nächsten Router
in der Liste Z zu verarbeiten, ohne den Router Y zu eliminieren.
-
Falls
alle Router in der Liste Z verarbeitet sind, kehrt das Verfahren
zu Block 1102 zurück,
um den nächsten
Router unter dem Hub zu verarbeiten. Sobald alle Router unter dem
Hub verarbeitet sind, schreitet das Verfahren zu 11B fort, wobei unnötige SIMPLE-Router abgeschnitten
werden, um die Redundanz in dem OVERLAY-Baum zu reduzieren.
-
Somit
bewirkt der Router 2011 mit Bezugnahme auf den beispielhaften OVERLAY-Baum
von 10, daß die
Router 2012 und 2013 von dem OVERLAY-Baum entfernt werden, da die
Tests der Blöcke 1110 und 1112 erfüllt sind.
Ferner bewirkt der Router 2021, daß die Router 2022 und 2023
von dem OVERLAY-Baum
entfernt werden. Außerdem
bewirkt der Router 2024 wiederum, daß der Router 2021, der früher der
Gewinner-Router
war, als der Router 2021 mit den Routern 2022 und 2023 verglichen
wurde, von dem OVERLAY-Baum entfernt wird. Am Schluß verbleiben
nur der Router 2011 und der Router 2024. Dies ist das in 12 gezeigte
Ergebnis, das das gefilterte Baumtopologienetzwerk darstellt.
-
11B stellt den Filtern-nach-Hub-Prozeß gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung dar, bei dem unnötige SIMPLE-Router abgeschnitten
werden, um die Redundanz in dem OVERLAY-Baum zu reduzieren. 11B kann aufgerufen werden, falls nach dem Filtern-nach-Hub-Prozeß von 11A der OVERLAY-Baum beispielsweise nach wie vor
fünf Router aufweist,
von denen jeder einen A500-Server aufweist. Obwohl dies nicht die
Situation des gewählten Beispiels
ist, kann eine solche Situation bei einigen Baumtopologienetzwerken
sehr wohl existieren. Da der Bedarf der Netzanordnung an A500-Servern
zwei ist, und kein einzi ger Router bei diesem speziellen Beispiel
zwei A500-Server liefern kann, gibt es einen Bedarf zum Eliminieren
der redundanten Router.
-
Block 1150 ist
ein Kennungs- oder Kommentarblock zum Anzeigen, daß der in 11B vorgenommene Prozeß das Abschneiden von SIMPLE-Routern
umfaßt.
Es wird daran erinnert, daß ein Router
in Block 1104 von 11A als
SIMPLE angesehen wird, wenn alle Kinder desselben nur direkt verbundene
Geräte
und MONOCHROME-Schalter sind (z. B. keine Nicht-MONOCHROME-Schalter-Kinder). In Block 1152 wird
festgestellt, ob in dem OVERLAY-Baum irgendwelche SIMPLE-Router übrig sind,
nachdem der Filterprozeß von 11A abgeschlossen ist. Falls es keine SIMPLE-Router
gibt, endet der Prozeß von 11B, da bei diesem Ausführungsbeispiel nur SIMPLE-Router
abgeschnitten werden.
-
Falls
festgestellt wird, daß SIMPLE-Router übrig sind,
um möglicherweise
in Block 1152 abgeschnitten zu werden, wird der Satz LOSER
auf Null initialisiert, und die temporäre Listen-Variable W ist auf
alle Router eingestellt, die nach wie vor unter dem Hub sind. Ferner
wird jeder Router oder alle Router, die benötigt werden, um die Lösung zu
erreichen, mit dem Flag VITAL in Block 1154 gekennzeichnet.
Beispielsweise wird der Router 2024 als VITAL markiert, da derselbe
für die
NAS und Backhaul benötigt
wird.
-
Danach
werden die Router in der Liste W nacheinander verarbeitet. In Block 1156 wird
unter Verwendung der Logik in den Blöcken 1158 und 1160 festgestellt,
ob es zusätzliche
Router gibt, die in der Liste W verarbeitet werden sollen. Falls
in Block 1156 festgestellt wird, daß es zusätzliche Router zum Verarbeiten
gibt, schreitet das Verfahren zu Block 1158 fort, in dem
die temporäre
Variable R als der nächste Router
in der Liste W eingestellt wird. In Block 1160 wird der
Router R geprüft,
um festzustellen, ob er sowohl SIMPLE als auch nicht VITAL ist.
Falls nicht festgestellt wird, daß der Router sowohl SIMPLE
als auch nicht VITAL ist (d. h. der Test von Block 1156 versagt),
kehrt das Verfahren zu Block 1156 zurück, um den nächsten Router
in der Liste W zu verarbeiten.
-
Falls
andererseits festgestellt wird, daß der Router R sowohl SIMPLE
als auch nicht VITAL ist, schreitet das Verfahren zu Block 1162 fort,
während der
Parameter LOSSES(R) eingestellt wird, um der Zählwert aller Router in der
Liste W zu sein, die sowohl die Bandbreite haben, die größer ist
als der ungünstigste
Fall und mehr Geräte
als der Router R aufweisen. Die Variable LOSER wird gleich dem Router mit
dem bisher größten Wert
für LÖSSES eingestellt. Während die
Router von Liste W abwechselnd verarbeitet werden, stellen die Blöcke 1160 und 1162 im Wesentlichen
den Router fest, der am wenigsten anzubieten hat, und markieren
diesen Router als den LOSER, der zu einem späteren Zeitpunkt entfernt werden
soll. Danach kehrt das Verfahren zu Block 1156 zurück, um andere
Router in der Liste W zu verarbeiten.
-
Falls
alle Router in der Liste W durch die Blöcke 1158, 1160 und/oder 1162 verarbeitet
wurden, schreitet das Verfahren von Block 1156 zu Block 1166 fort,
um festzustellen, ob es in der Tat einen LOSER gibt. Falls es keinen
LOSER gibt (d. h. LOSER = Null), kann kein Router eliminiert werden,
und somit endet der Prozeß bei
Block 1164. Falls andererseits Block 1566 bestimmt,
daß es
in der Tat einen LOSER gibt, wird der Router, der durch LOSER dargestellt ist,
in Block 1168 von dem OVERLAY-Baum entfernt. Danach kehrt
das Verfahren zu Block 1152 zurück, um den OVERLAY-Baum erneut rekursiv
zu verarbeiten, um zu bestimmen, ob zusätzliches Abschneiden möglich ist.
-
Sobald
alle SIMPLE-Router verarbeitet sind, endet das Verfahren bei Block 1164.
In dem Kontext des vorliegenden Beispiels führt der Prozeß von 11B dazu, daß zwei
Router übrigbleiben,
jeder mit einem A500-Server. Die anderen drei Router mit jeweils
einem A500-Server werden abgeschnitten, wobei nur die erforderlichen
17 Geräte
und vier Schalter übrig
bleiben.
-
Wie
aus dem Vorhergehenden ersichtlich ist, filtert die Erfindung effektiv
das ursprüngliche
Baumtopologienetzwerk und erhält
ein gefiltertes Baumtopologienetzwerk (FTTN), das nach wie vor die
optimale Lösung
oder zumindest eine Lösung,
die im wesentlich gleich der besten Lösung ist, die von dem ungefilterten
Baumtopologienetzwerk erhalten werden kann. Das resultierende OVERLAY-Bild
hat jedoch weit weniger Router, Schalter und Geräte. In vielen Fällen ist
keine weitere Verarbeitung notwendig, da das gefilterte Baumtopologienetzwert
selbst die Lösung
ist (wie in dem Fall von 12 hierin).
-
Bei
einem Ausführungsbeispiel
wird die hierin offenbarte bedarfsbasierte Filtertechnik in Verbindung
mit einer innovativen Technik zum Auswählen von Geräten verwendet.
Eine solche Kombination ermöglicht
es, daß eine
hocheffiziente Netzanordnung von einem gegebenen Baumtopologienetzwerk
ausgewählt
wird, ohne übermäßig viel
Zeit oder unnötige Rechenressourcen
zu verbrauchen. Selbst ohne das Verwenden der Geräteauswahltechnik,
die in der oben erwähnten
mitanhängigen
Patentanmeldung offenbart wurde, macht die bedarfsbasierte Filtertechnik,
die hierin offenbart ist, jede Geräteauswahltechnik effizienter,
da es weniger Router, Schalter und Geräte zu bewerten gibt. Dies liegt
daran, daß die
Geräteauswahlverfahren
normalerweise eine Berechnung erfordern, die in Proportion zum Quadrat oder
der dritten Potenz der Anzahl von Geräten variiert, die betrachtet
werden. Falls somit die Anzahl von Geräten, die betrachtet werden,
durch die Verwendung des bedarfsbasierten Filterverfahrens um einen Faktor
von 10 reduziert werden kann, bevor irgendein Geräteauswahlverfahren
angelegt wird, kann die Berechnung, die für den Geräteauswahlalgorithmus erforderlich
ist, um einen Faktor von 100–1.000
reduziert werden.