-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren zum Suchen
von Routen für
Verbindungen über
Kommunikationsnetzwerke hinweg, die eine Vielzahl von Knotenelementen
umfassen, die durch eine Vielzahl von Verbindungsstrecken-Elementen verbunden
sind, und insbesondere, jedoch nicht ausschließlich, auf ein Verfahren zum
Suchen einer optimierten Routenführung
für eine
Vielzahl von Punkt-zu-Mehrpunkt-Verbindungen.
-
Hintergrund der Erfindung
-
Ein übliches
leitungsvermitteltes Breitbrand-Kommunikationsnetzwerk, beispielsweise
ein Telefon-Netzwerk oder ein Mobiltelefon-Netzwerk, umfasst eine
Vielzahl von Knoten, an denen Knotengeräte oder Knotenausrüstungen
vorgesehen sind, wobei die Knoten über eine Vielzahl von Kommunikations-Verbindungsstrecken
verbunden sind, wobei die Verbindungsstrecken Verbindungsstrecken-Geräte oder
Verbindungsstrecken-Ausrüstungen
umfassen. Die Knotenausrüstungen
können
beispielsweise eine Telekommunikations-Vermittlungseinrichtung umfassen,
und die Verbindungsstrecken können
eine terrestrische Verbindungsstrecke, beispielsweise eine Lichtleitfaser-Verbindungsstrecke
oder Koaxialkabel, oder eine drahtlose Verbindungsstrecke umfassen.
-
Es
wird ein zunehmender Bereich von Diensten über derartige Netzwerke geliefert,
unter Einschluss von beispielsweise Video auf Abruf, Videokonferenzen,
Fernunterricht und Internet-Dienste. Derartige Dienste beinhalten
die Lieferung unterschiedlicher Verkehrs-Datentypen, beispielsweise
Sprachverkehr, Video- oder Computer-Datenverkehr, die unterschiedliche
Charakteristiken aufweisen, wobei einige Arten von Verkehr stärker gegenüber Verzögerungen
empfindlich sind, als andere, und die unterschiedlichen Verkehrstypen
unterschiedliche Bereiche von Bitraten-Anforderungen haben. Diese
Dienste können
die Lieferung von Daten von einer einzigen Quelle zu einem einzigen
Ziel (Punkt-zu-Punkt), von einer einzigen Quelle zu vielen Zielen (Punkt-zu-Mehrpunkt)
oder von einer Vielzahl von Quellen zu einer Vielzahl von Zielen
(Mehrpunkt-zu-Mehrpunkt) beinhalten. Derartige Dienste stellen hohe
Anforderungen an die Routenführung
(routing) von Verbindungen, die diese Dienste über ein Netzwerk unterstützen.
-
Übliche Routen-Suchverfahren,
wie zum Beispiel der Dijkstra-Algorithmus des kürzesten Pfades, sind in der
Lage, eine einzelne Route für
eine einzelne Verbindung zu finden (E. W. Dijkstra, „A Note
on Two Problems in Connection with Graphs" Numerische Mathematik 1, Seite 269,
1959). Die Verwendung eines Algorithmus mit einer Routenführung über den
kürzesten
Pfad auf einer Grundlage von Verbindung für Verbindung kann jedoch zu
einer weniger als optimalen Lösung
oder sogar zu Routenführungs-Lösungen mit
einer starken Überlastung
des Netzwerks führen.
Zusätzlich
gibt es in einem Telekommunikations-Netzwerk andere Zwangsbedingungen
als das Auffinden der kürzesten
Route, die zu berücksichtigen
sind. Beispielsweise kann es nützlich
sein, den Verkehr, der durch das Netzwerk aufgrund anderer Verbindungen
fließt,
und Verbindungsstrecken- und Knoten-Bandbreitenkapazitäten zu berücksichtigen.
-
In
der WO 96/31969 ist ein Verfahren zur Routenführung von Verkehr von einem
Kommunikationsnetzwerk beschrieben, das eine genetische Algorithmus-Suchroutine verwendet,
um optimale Sätze
von Pfaden zwischen Knoten in einem Netzwerk zur Routenführung von
Verkehr auf einer Punkt-zu-Punkt-Verbindungsbasis
mit dem Ziel einer weitestgehenden Verringerung der Anzahl von verwendeten
Kommunikationskanälen und
einer Verringerung der Gefahr zu finden, dass ein Kommunikationssystem
nicht in der Lage ist, ein hohes Volumen an Verkehr zu verarbeiten.
-
In
der WO 96/31969 bildet ein Satz von kürzesten Pfaden die Grundlage
für eine
anfängliche
Folgenpopulation des genetischen Algorithmus. Routen werden entsprechend
einem Fitness-Kriterium ausgewählt, das
eine von einem Benutzer spezifizierte Bewertung einschließt, die
auf einer Anzahl von Kanälen,
die zur Unterstützung
des Verkehrs erforderlich sind, der Nutzung von Verbindungsstrecken,
die als eine Anzahl von Verbindungsstrecken dargestellt sind, deren
Kapazität überschritten
werden könnte,
und auf vom Benutzer spezifizierten „Pfadkosten" beruht die eine
Summe von Kosten einer Vielzahl von Verbindungsstrecken eines Pfades
zwischen Knoten umfassen. Der Benutzer kann die Fitness-Kriterien
durch Ändern
der jeweiligen Bewertung ändern,
die den Pfadkosten, der Nutzung und der Anzahl der Kanäle gegeben
wird, um den genetischen Algorithmus-Prozess kundenspezifisch anzupassen,
um diese Kriterien entsprechend einer Bedeutung auszuwählen, wie
sie in den von dem Benutzer spezifizierten Bewertungen wiedergegeben
ist.
-
Die
Routenführung
des kürzesten
Pfades kann, selbst wenn sie durch die genetische Algorithmus-Technik
optimiert wird, keine Lösungen
für eine
Punkt-zu-Mehrpunkt-Routenführung geben.
Weiterhin kann die Routenführung
des kürzesten
Pfades keine Diensteanforderungen für gemischte Verkehrsdatentypen behandeln.
-
Eine
Veröffentlichung
mit dem Titel „A
New Approach to the Degree-Constrained Minimum Spanning Tree Problem
Using Gentic Algorithm" mit
der Veröffentlichungsnummer
XP10206541 beschreibt ein Verfahren zum Suchen von Routen von Verbindungsstrecken
für eine
Vielzahl von Kommunikationsverbindungen über ein Netzwerk, das eine
Vielzahl von Knotenelementen und Verbindungsstrecken-Elementen umfasst,
wobei jede derartige Verbindung ein Quellen-Knotenelement und eine
Vielzahl von Ziel-Knotenelementen hat, wobei das Verfahren die folgenden
maschinenausführbaren
Schritte umfasst: Zuordnen von zumindest einem Verbindungsstrecken-Kostenwert
zu jedem Verbindungsstrecken-Element; für jede Verbindung, deren Route zu
führen
ist; Auswerten der Routen-Kosten des Durchquerens einer Vielzahl
von Verbindungsstrecken-Elementen zwischen dem Quellen-Knotenelement
und der Vielzahl von Ziel-Knotenelementen; und für alle Verbindungen, deren
Route zu führen
ist, Auswerten der Gesamtkosten der Routen-Kosten.
-
Zusammenfassung der Erfindung
-
Nutzer
von Diensten, die über
ein derartiges Kommunikationsnetzwerk geliefert werden, können Anforderungen
für Dienste
machen, die über
das Netzwerk zu übertragen
sind, wobei eine Vielzahl von Verbindungen jeweils zwischen einem
Quellen-Knoten und einem oder mehreren Zielknoten spezifiziert wird.
Derartige Diensteanforderungen spezifizieren üblicherweise keine Route von
Knoten und Verbindungsstrecken in dem Netzwerk, die zwischen den
Quellen-und Zielknoten gewählt
werden sollte.
-
Ein
Ziel der vorliegenden Erfindung besteht in dem Suchen oder Auffinden
von Routen für
Verbindungen, die in einer Diensteanforderung spezifiziert sind,
in einer Weise, die eine Vielzahl von Diensteanforderungen gleichzeitig
statt eine Diensteanforderung zu einer Zeit berücksichtigt.
-
Ein
weiteres Ziel besteht in einem Ausgleich von Verbindungen über das
Netzwerk hinweg. Wenn beispielsweise zwei Verbindungen in idealer
Weise die gleiche Verbindungsstrecke in einem kürzesten Pfad einschließen würden, dies
jedoch entweder dazu führen
würde,
dass die Verbindungsstrecke überlastet
wird, oder dass eine der Verbindungen eine wesentlich längere Route
nehmen müsste,
so kann es nützlich
sein, wenn eine oder beide Verbindungen über geringfügig längere Routen geführt werden,
um eine Netzwerk-Überlastung
zu vermeiden, wodurch sich eine gleichförmigere Verteilung der Netzwerk-Verbindungsstrecken-
und Knoten-Nutzung
ergibt.
-
Ein
weiteres Ziel der vorliegenden Erfindung besteht in der Schaffung
einer Fähigkeit,
bestimmte Knoten oder Verbindungsstrecken in für eine bestimmte Verbindung
gefundene Routen einzuschließen
oder hiervon auszuschließen,
beispielsweise wenn es bekannt ist, dass eine bestimmte Netzwerk-Knotenausrüstung nicht
richtig arbeitet, oder aus Sicherheitsgründen.
-
Ein
weiteres Ziel besteht in der Schaffung einer generischen Routen-Sucheinrichtung,
die für
leitungsvermittelte Kommunikationssnetzwerke wiederverwendbar ist,
die unterschiedliche Transportprotokoll-Typen verwenden.
-
In
geeigneter Weise weist die Routen-Sucheinrichtung eine modularisierte
Ausführungsform
auf, die in einer Netzwerk-Steuerung oder einer Netzwerk-Verwaltung installiert
werden kann und als ein Server für eine
Vielzahl von anderen Netzwerk-Verwaltungsanwendungen wirkt.
-
Ein
weiteres Ziel der vorliegenden Erfindung besteht in der Routenführung von
Verbindungen in einem Kommunikationsnetzwerk entsprechend einem
Typ des Verkehrs, der zu übertragen
ist.
-
Ein
weiteres Ziel der vorliegenden Erfindung besteht in der Verteilung
des Verkehrs einer Dienste-Verbindung über eine Vielzahl von Routen.
-
Ein
weiteres Ziel der vorliegenden Erfindung besteht in der Verteilung
von Punkt-zu-Mehrpunkt-Verkehr über ein
Netzwerk.
-
Ein
Verfahren gemäß einem
ersten Gesichtspunkt der vorliegenden Erfindung ist gegenüber der
Veröffentlichung
XP10206541 dadurch gekennzeichnet, dass für jede Verbindung, deren Route
zu führen
ist, das Verfahren die folgenden Schritte einschließt: Auswählen eines
Satzes von Knotenelementen des Netzwerkes, die nicht in einem Quellen-Knotenelement
oder einer Vielzahl von Ziel-Knotenelementen
der Verbindung enthalten sind; und Bestimmen, welche der Knotenelemente
in dem genannten Satz Steiner-Vertizes sind.
-
Vorzugsweise
ist der Satz von Knotenelementen durch eine Bitfolge dargestellt,
wobei
ein Bit in der Folge einen Wert von 1 hat, wenn das Knotenelement,
das es darstellt, als ein Steiner-Vertex markiert ist; und
ein
Bit in der Folge einen Wert von 0 hat, wenn das Knotenelement, das
es darstellt, nicht als ein Steiner-Vertex markiert ist.
-
Vorzugsweise
umfasst der Schritt der Auswertung eines Routen-Kostenwertes die folgenden Schritte:
Erzeugen
eines Steiner-Baumes, der Knoten in jeder der Verbindungen, deren
Route zu führen
ist, und Knoten in dem Satz einschließt, die als Steiner-Vertizes markiert
sind; und
Addieren der Kosten des Durchquerens jeder Verbindungsstrecke
in dem Steiner-Baum;
Vorzugsweise wird die Bitfolge unter Verwendung
genetischer Algorithmus-Operationen
unter Einschluss der Reproduktion, Mutation, Kreuzung und Vereinigung
manipuliert.
-
Der
Kostenwert oder die Kostenwerte, die dem Verbindungsstrecken-Element
zugeordnet wird (werden), wird (werden) einem Datentyp zugeordnet,
und das Verfahren kann den Schritt der Zuordnung eines Datentyps
zu allen oder einigen der Verbindungen umfassen, deren Route zu
führen
ist.
-
Gemäß einem
zweiten Gesichtspunkt der vorliegenden Erfindung wird eine Routen-Suchvorrichtung geschaffen,
die Einrichtungen zur gerätemäßigen Ausgestaltung
des Verfahrens gemäß dem ersten
Gesichtspunkt der Erfindung umfasst.
-
Gemäß einem
dritten Gesichtspunkt der vorliegenden Erfindung wird eine Netzwerk-Steuerung
geschaffen, die die Routen-Suchvorrichtung gemäß dem zweiten Gesichtspunkt
der Erfindung einschließt.
-
Gemäß einem
vierten Gesichtspunkt der vorliegenden Erfindung wird ein Telekommunikations-Netzwerk
geschaffen, das eine Netzwerk-Steuerung gemäß dem dritten Gesichtspunkt
der Erfindung einschließt.
-
Gemäß einem
fünften
Gesichtspunkt der vorliegenden Erfindung wird ein maschinenlesbares
Medium geschaffen, das Computer-Codeeinrichtungen umfasst, die auf
einem Prozessor der Netzwerk-Steuerung gemäß dem dritten Gesichtspunkt
der Erfindung ausführbar
sind, um das Verfahren gemäß dem ersten
Gesichtspunkt der Erfindung zu realisieren.
-
Verfahren
zur Routenführung
von Verbindungen gemäß der vorliegenden
Erfindung können
Anwendungen bei der Netzwerk-Konstruktion haben. Die Simulation
einer Anzahl von Verbindungen kann irgendwelche unnötigen Verbindungsstrecken
in dem Netzwerk identifizieren, beispielsweise Verbindungsstrecken,
die nur geringfügig
oder überhaupt
nicht genutzt werden. Wichtige Verbindungsstrecken in dem Netzwerk
können ebenfalls
durch Anwendung üblicher
Routenführungs-Algorithmen und Techniken
identifiziert werden, beispielsweise stark belastete Verbindungsstrecken
oder Verbindungsstrecken, die mögliche
Engpässe
darstellen.
-
Kurze Beschreibung
der Zeichnungen
-
Für ein besseres
Verständnis
der Erfindung, und um zu zeigen, wie diese praktisch ausgeführt werden kann,
werden nunmehr lediglich als Beispiel spezielle Ausführungsformen,
Verfahren und Prozesse gemäß der vorliegenden
Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben,
in denen:
-
1 schematisch
ein Breitband-Kommunkationsnetzwerk zeigt, das eine Vielzahl von
Knotenausrüstungen,
eine Vielzahl von Verbindungsstrecken-Ausrüstungen
und eine Netzwerk-Steuerung einschließt;
-
2 schematisch
eine Architektur der Netzwerksteuerung gemäß 1 unter
Einschluss einer Routen-Suchkomponente zeigt;
-
3 schematisch
eine allgemeine Darstellung einer Topologie des in 1 gezeigten
Netzwerkes, reduziert auf eine Vielzahl von Knoten und Verbindungsstrecken,
zeigt;
-
4 eine
Architektur der Routen-Suchkomponente gemäß 3 zeigt,
die einen Diensteanforderungs-Vorprozessor, einen Netzwerkdaten-Vor-prozessor,
eine Routen-Suchmaschine, einen Auswertungsfunktions-Prozessor,
eine graphische Benutzer-Schnittstelle, einen Routendaten-Nachprozessor
und Dateneingänge
und Ausgänge
einschließt,
die der Routen-Suchkomponente zugeordnet sind;
-
5 schematisch
die Wechselwirkung einer Routen-Suchmaschine mit einer Netzwerk-Verwaltungsanwendung
zeigt;
-
6 ein
Datenflussdiagramm zeigt, das schematisch Datenflüsse und
Datenverarbeitungsoperationen in der Routen-Suchmaschine zeigt;
-
7 schematisch
Schritte zeigt, die von der Routen-Suchkomponente ausgeführt werden,
die in 3 gezeigt ist;
-
8 die
generische Darstellung eines Netzwerkes, wie es in 3 gezeigt
ist, kombiniert mit den Elementen zeigt, die von der Routen-Sucheinrichtung
verwendet werden;
-
9 die
generische Darstellung eines Netzwerkes, wie es in 3 gezeigt
ist, in Kombination mit den Elementen zeigt, die von der Routen-Sucheinrichtung verwendet
werden, unter Einschluss von mehrfachen Kosten;
-
10 schematisch
eine Bildschirmdarstellung zeigt, die von der graphischen Benutzer-Schnittstelle gemäß 4 erzeugt
wird und die ein Benutzer verwenden kann, um Netzwerkdaten zu schaffen
oder zu editieren;
-
11 schematisch
eine Bildschirmdarstellung zeigt, die von der graphischen Benutzer-Schnittstelle gemäß 4 erzeugt
wird und die ein Benutzer verwenden kann, um Netzwerk-Verbindungsstrecken
beschreibende Daten zu editieren;
-
12 schematisch
die Inhalte einer Textdatei zeigt, die in die Routen-Suchmaschine eingegeben werden
kann, möglicherweise
von den Daten- Editiereinrichtungen,
die in den 10 und 11 gezeigt
sind;
-
13 schematisch
eine Bildschirmdarstellung zeigt, die von der graphischen Benutzer-Schnittstelle nach 4 erzeugt
wird und die zur Erzeugung von Diensteanforderungs-Daten verwendet
werden kann;
-
14 schematisch
eine Bildschirmdarstellung zeigt, die von der graphischen Benutzer-Schnittstelle nach 4 erzeugt
wird und die zur Betrachtung oder Erzeugung von Punkt-zu-Mehrpunkt-Verbindungen
verwendet werden kann;
-
15 schematisch
eine Bildschirmdarstellung zeigt, die von der graphischen Benutzer-Schnittstelle nach 4 erzeugt
wird, und die dazu verwendet werden kann, Daten, die Zwangsbedingungen
hinsichtlich von Routen darstellen, die für eine spezielle Diensteanforderung
gefunden wurden, zu erzeugen oder zu editieren;
-
16 ein
Beispiel einer Datei zeigt, die in die Routen-Sucheinrichtung eingegeben
werden kann, und die möglicherweise
von den Daten-Editiereinrichtungen
nach den 13 und 14 erzeugt
werden kann;
-
17 ein
Beispiel einer Datei zeigt, die in die Routen-Sucheinrichtung eingegeben
werden kann und Auswertungsfunktions-bezogene Parameter definiert;
-
18 schematisch
Schritte zeigt, die von der Routen-Suchmaschine ausgeführt werden,
unter Einschluss eines Schrittes der Erzeugung einer Darstellung
und eines Schrittes der Suche nach einer Lösung;
-
19 Bitfolgen
zeigt, die von dem Schritt der Erzeugung einer Darstellung gemäß 18 erzeugt werden
können;
-
20 schematisch
Schritte zeigt, die von dem Schritt der Suche nach einer Lösung gemäß 18 ausgeführt werden,
unter Einschluss eines Schrittes der Erzeugung einer anfänglichen
Population, einer Auswertung der Fitness und eines Schrittes der
genetischen Manipulation;
-
21 schematisch
Schritte zeigt, die während
des in 20 gezeigten Schrittes der genetischen Manipulation
auftreten;
-
22 ein
Beispiel einer Ausgangsdatei zeigt, die von der Routen-Suchmaschine erzeugt
wird;
-
23 schematisch
eine Bildschirmdarstellung zeigt, die von der graphischen Benutzer-Schnittstelle nach 4 erzeugt
wird und eine Routenführungs-Tabelle
zeigt; und
-
24 schematisch
eine Bildschirmdarstellung zeigt die von der graphischen Benutzer-Schnittstelle nach 4 erzeugt
wird und ein Verbindungsstrecken-Nutzungsdiagramm zeigt.
-
Ausführliche
Beschreibung der besten Art der Ausführung der Erfindung
-
Es
wird nunmehr in Form eines Beispiels die beste Art beschrieben,
die von den Erfindern zur Durchführung
der Erfindung in Betracht gezogen wird. In der folgenden Beschreibung
werden vielfältige
spezielle Einzelheiten angegeben, um ein gründliches Verständnis der
vorliegenden Erfindung zu schaffen. Es ist jedoch für den Fachmann
ersichtlich, dass die vorliegende Erfindung ohne die Verwendung
dieser speziellen Einzelheiten ausgeführt werden kann. In anderen
Fällen
wurden gut bekannte Verfahren und Strukturen nicht ausführlich beschrieben,
um nicht unnötig
die vorliegende Erfindung zu Verdecken.
-
In 1 ist
schematisch ein leitungsvermitteltes Kommunikationsnetzwerk gezeigt,
das eine Vielzahl von Knotenelementen 101 umfasst, die
jeweils eine Einheit einer Knoten-Ausrüstung umfassen, beispielsweise
eine Vermittlung, sowie eine Vielzahl von Verbindungsstrecken-Elementen 102,
die Knotenelemente verbinden, wobei jedes Verbindungsstrecken-Element 102 eine
Einheit einer Verbindungsstrecken-Ausrüstung umfasst,
beispielsweise erdgebundene oder drahtlose Kommunikations-Verbindungsstrecken.
Jede Einheit der Knoten-Ausrüstung
kann eine Vielzahl von einzelnen physikalischen Komponenten umfassen.
Jede Einheit der Verbindungsstrecken-Ausrüstung kann einen oder eine
Vielzahl von physikalischen Komponenten umfassen. Jede Verbindungsstrecken-Ausrüstung kann
eine Vielzahl von Kommunikations-Kanälen unterstützen.
-
In
dieser Beschreibung ist eine „Verbindungsstrecke" dadurch charakterisiert,
dass sie ein Kommunikationspfad zwischen zwei Knoten ohne dazwischen
liegende Knoten ist.
-
Das
Kommunikations-Netzwerk kann Mobil-Telefon-Kommunikationseinrichtungen
einschließen,
die sich an einem oder mehreren Knoten des Netzwerkes befinden,
und ein Knotenelement kann eine Überleiteinrichtung
zu einem anderen Netzwerk bilden, beispielsweise eine Überleiteinrichtung
für das
weltweite Datennetz.
-
Allgemein
wird das Kommunikations-Netzwerk eine Vielzahl von unterschiedlichen
Arten von Knoten-Ausrüstungen
und eine Vielzahl von unterschiedlichen Arten von Verbindungsstrecken-Ausrüstungen
umfassen, die von unterschiedlichen Herstellern hergestellt sind
und unterschiedliche Betriebsleistungs-Spezifikationen haben. In 1 werden
Verkehrsdaten-Signale entlang der Verbindungsstrecken-Ausrüstung und durch
die Knoten-Ausrüstung über einen
leitungsvermittelten Pfad zwischen einem Quellen-Knotenelement und
einem Ziel-Knotenelement übertragen.
Die Verkehrsdaten werden zwischen Quellen und Zielen über eine Vielzahl
von Routen über
das Netzwerk hinweg übertragen.
-
Eine
Netzwerk-Steuerung 104 kann an einer Knoten-Ausrüstung 101 angebracht
sein, wobei die Netzwerk-Steuerung eine Verwaltungs-Funktionalität zur Verwaltung
von Routen oder Verbindungen über
das Netzwerk hinweg umfasst. In der besten Ausführungsform umfasst die Netzwerk-Steuerung
eine modulate Routen-Suchkomponente,
die als ein Server zum Suchen und Auffinden von Routen für Verbindungen
als Antwort auf Diensteanforderungen wirkt, die von einer Vielzahl
von unterschiedlichen Netzwerk-Verwaltungsanwendungen erzeugt werden.
Die Routen-Suchkomponente kann andere Netzwerk-Verwaltungsanwendungen unterstützen, die
sich auf der Netzwerk-Steuerung befinden, beispielsweise kann die
Routen-Suchkomponente die Netzwerk-Topologie-Konstruktion für Ringe
der synchronen digitalen Hierarchie (SDH)/des synchronen optischen
Netzwerkes (SONET), oder die Netzwerk-Konstruktion und die Bandbreiten-Bereitstellung
unterstützen.
-
2 der
beigefügten
Zeichnungen zeigt eine schematische Darstellung einer Ausführungsform
einer Netzwerk-Steuerung. Die Netzwerk-Steuerung umfasst einen Allzweck-Rechner
wie zum Beispiel eine Arbeitsstation der Serie 9000 der
Firma Hewlett Packard, die einen Speicher 201, einen Prozessor 202,
ein Betriebssytem 203, eine Vielzahl von Kommunikations-Ports 204, über die
Daten zu oder von der Knoten-Ausrüstungs-Hardware 205 übertragen
werden, eine Verwaltungs-Informations-Datenbank (MIB) 206,
die Daten enthält,
die die physikalischen Ressourcen eines Netzwerkes beschreiben,
beispielsweise Knoten-Ausrüstungstyp,
Verbindungsstrecken-Bitraten-Kapazität. Die Netzwerk-Steuerung umfasst
weiterhin eine Routen-Suchkomponente 207 zum Lenken von
Diensteanforderungen über
das Netzwerk, wobei die Routen-Suchkomponente eine Routen-Such-Verwaltung 208 und
eine Routen-Suchmaschine 209 umfasst, wobei die Routen-Such-Verwaltung
eine oder eine Vielzahl von Vorverarbeitungskomponenten zur Vorverarbeitung von
Daten vor der Eingabe in die Routen-Suchmaschine 209 und eine oder
eine Vielzahl von Nachverarbeitungseinrichtungen zur Verarbeitung
von Daten nach der Ausgabe von der Routen-Suchmaschine; eine Vielzahl von Netzwerk-Verwaltungsanwendungen 210 zum
Verwalten von Diensten über
die Netzwerke, und eine graphische Benutzer-Schnittstelle 211 umfasst,
die es einem Betreiber ermöglicht,
die Betriebsweise der Routen-Suchkomponente zu überwachen und Daten in die
Netzwerk-Steuerung einzugeben.
-
Es
gibt Unterschiede zwischen unterschiedlichen Telekommunikationssystemen.
Unterschiedliche Arten von Kommunikationsnetzwerken, beispielsweise
Netzwerke mit der asynchronen Übertragungs-Betriebsart
(ATM) oder der synchronen Digitalhierarchie (SDH) haben unterschiedliche
technische Eigenschaften, können
jedoch auf einer einfachen Ebene als eine graphische Darstellung
von Knoten und Verbindungsstrecken dargestellt werden. Entsprechend
der besten Ausführungsform
können
derartige Unterschiede aufgelöst
werden, um die Verwendung eines generischen Routenführungs-Moduls
zu ermöglichen,
das für
einen Bereich von Telekommunikationssystemen geeignet ist, indem:
- – explizit
Instanzen innerhalb einer generischen Routen-Sucheinrichtung berücksichtigt
werden und spezielle Routenführungs-Strategien über die
Verwendung von Parametern aufgerufen werden;
- – eine „Umsetzung" zu und von einem
generischen Routenführungs-Modell
auf die Anforderungen, Zwangsbedingungen und Beschränkungen
eines bestimmten Netzwerk-Systems vorgesehen wird.
-
Die
Routen-Suchkomponente 207 stellt möglicherweise keinen Echtzeit-Routenführungs-Mechanismus
bereit, arbeitet jedoch, um Routenführungs-Strategien über das Netzwerk als Antwort
auf eine Vielzahl von Diensteanforderungen zu entwickeln und zu
optimieren, die von den anderen Netzwerk-Diensteanwendungen 210 erzeugt
werden. Die Routenführungs-Strategien, die von
der Routen-Suchkomponente 207 erzeugt werden, werden zur
Erzeugung von Routenführungs-Tabellen
zur Verwendung durch übliche
Echtzeit-Routenführungs-Anwendungen
innerhalb des Netzwerkes verwendet.
-
Ein Überblick über ein
generisches Routenführungs-System,
mit dem sich die Routen-Suchkomponente befasst, wird nunmehr anhand
der 3 beschrieben, die ein Beispiel einer generischen
Darstellung eines Kommunikationsnetzwerkes zeigt, wie es beispielsweise
in 1 gezeigt ist. Die generische Netzwerk-Darstellung wird
als eine Topologie-Darstellung betrachtet, die eine Vielzahl von
Knoten 301 umfasst, die durch eine Vielzahl von Verbindungsstrecken 302 miteinander
verbunden sind. Irgendeine Knotenelement-Ausrüstung 101 kann durch
einen Knoten 301 dargestellt werden. Irgendeine Verbindungsstrecken-Ausrüstung 102 kann
durch eine Verbindungsstrecke 302 zwischen zwei Knoten
dargestellt werden. Die Verbindungsstrecken können einseitig gerichtet oder
zweiseitig gerichtet sein, in Abhängigkeit davon, ob Mitteilungen über die
Verbindungsstrecke in einer beziehungsweise zwei Richtungen zu einer
vorgegebenen Zeit übertragen
werden können.
Jeder Knoten und jede Verbindungsstrecke haben eine vorgegebene
endliche Bitraten-Übertragungskapazität.
-
Netzwerk-Diensteanwendungen,
die auf der Netzwerk-Steuerung oder auf anderen Arbeitsstationen laufen,
die mit dem Netzwerk verbunden sind, können eine Anzahl von Diensteanforderungen
bilden, die als Verbindungen zwischen bestimmten Knoten realisiert
werden müssen.
Eine Diensteanforderung kann zum Entstehen einer oder einer Vielzahl
von Verbindungsanforderungen führen.
Jede Verbindungsanforderung führt
zu Anforderungen für
Quellen- und Zielverbindungen, die über das Netzwerk gelenkt werden
müssen,
um Datenverkehr zu übertragen,
der den angeforderten Dienst umfasst. Die Diensteanforderungen können die
Art von Datenverkehr angeben, der zu übertragen ist, beispielsweise
Daten oder Sprache, einen Quellen-Knoten und einen oder mehrere
Ziel-Knoten.
-
In
dieser Beschreibung bedeutet der Ausdruck „Verbindung" eine leitungsvermittelte
Zuteilung von physikalischen Ressourcen zwischen einem Quellen-Knoten
und einem oder mehreren Ziel-Knoten.
-
Der
Ausdruck „Punkt-zu-Mehrpunkt-Verbindung" bezeichnet eine
leitungsvermittelte Verbindung zwischen einem Quellen-Knoten und
einer Vielzahl von Ziel-Knoten, und der Ausdruck „Punkt-zu-Mehrpunkt" ist entsprechend
zu betrachten.
-
Der
Ausdruck „Mehrpunkt-zu-Mehrpunkt-Verbindung" bezeichnet eine
leitungsvermittelte Verbindung zwischen einer Vielzahl von Quellen-Knoten
und einer Vielzahl von Ziel-Knoten, und der Ausdruck „Mehrpunkt-zu-Mehrpunkt" soll entsprechend
betrachtet werden.
-
In
dieser Beschreibung umfasst eine „Route" einen Pfad über eine Verbindungsstrecke
oder eine Vielzahl von Verbindungsstrecken zwischen einem Quellen-Knoten
und zumindest einem Ziel-Knoten. Eine Route kann eine Sammlung von
Verbindungsstrecken umfassen, die für Mehrpunkt-Verbindungsanforderungen
verwendet werden (einen „Baum"). Ein Pfad umfasst
eine Sammlung von Verbindungsstrecken von einem einzigen Quellen-Knoten
zu einem einzigen Ziel-Knoten.
Ein Baum umfasst eine Verbindung von Verbindungsstrecken zwischen
mehrfachen Quellen und/oder mehrfachen Zielen. Eine „Route" kann entweder ein
Pfad oder ein Baum sein, in Abhängigkeit
von der Verbindungsanforderung. In jedem Fall umfasst die Route
eine Sammlung von Verbindungsstrecken. Es können verschiedene Routen zwischen
einem Quellen-Knoten und einem Ziel-Knoten oder einem Satz von Ziel-Knoten
verfügbar
sein. Eine einzelne Verbindung kann eine einer Vielzahl von Routen
nehmen.
-
Bei
einer bevorzugten Ausführungsform
werden Diensteanforderungen von der Routen-Suchkomponente 207 empfangen,
die Routen zu angeforderten Verbindungen entsprechend spezieller
Kriterien zuordnen kann, wie zum Beispiel die Vermeidung einer Überlastung
irgendeiner speziellen Verbindungsstrecke oder eines Knotens, oder
sie kann versuchen, so viele Knoten/Verbindungsstrecken in dem Netzwerk
zu verwenden, wie dies zu einer vorgegebenen Zeit möglich ist.
Jeder Verbindungsstrecke werden zugehörige Kostenwerte zugeordnet,
die durch die Bezugsziffern C1-C12 in der Nähe der Mitte der Verbindungsstrecken-Leitungen 302 in
der allgemeinen Topologie-Ansicht nach 3 bezeichnet
sind. Die Zuordnung von Kosten zu Verbindungsstrecken für ein Netzwerk
ist von dem Benutzer spezifizierbar. Alle Kosten können über das
Netzwerk hinweg gleichförmig
sein, oder komplexere Kosten oder Kostenwerte können den Verbindungsstrecken
zugeordnet werden, die sich beispielsweise auf die Verbindungsstrecken-Nutzung
durch Verbindungen beziehen. Die Kosten können auch für unterschiedliche Verkehrstypen
veränderlich
sein, die sich beispielsweise aus Sprache- oder Datenverbindungen
ergeben. Die Routen-Suchkomponente arbeitet derart, dass sie Routen
findet, die minimale Gesamtkosten für Verbindungen aufweisen, deren
Route zwischen Knoten in dem Netzwerk zu führen ist, so dass Routen gefunden
werden, die beispielsweise eine geringere Verzögerung erfahren oder eine schnellere
und zuverlässigere Übertragung
haben.
-
4 der
beigefügten
Zeichnungen zeigt eine schematische Darstellung einer Architektur
der hohen Ebene der Routen-Suchkomponente 207 und zugehörige Eingangs-
und Ausgangsdaten, die von der Routen-Suchkomponente verarbeitet
werden. Die Routen-Suchmaschine 209 umfasst vorzugsweise
einen Speicher und einen Prozessor, der einen oder mehrere Routen-Such-Algorithmen
ausführt.
Die Routen-Such-Verwaltung 208 umfasst eine Diensteanforderungs-Vorverarbeitungseinrichtung 400;
eine Netzwerkdaten-Vorverarbeitungseinrichtung 401; einen
Auswertungsfunktions-Prozessor 402; und eine Routendaten-Nachverarbeitungseinrichtung 303.
Jede der Diensteanforderungs-Vorverarbeitungseinrichtungen, Netzwerkdaten-Vorverarbeitungseinrichtungen;
Auswertungsfunktions-Prozessoren und Routendaten-Nachverarbeitungseinrichtungen
kann ein Prozessorelement und einen Bereich einer Datenspeicher-Einrichtung
umfassen, die mit Hilfe eines Algorithmus zur Durchführung der
Datenverkehrs-Vorverarbeitung, der Netzwerkdaten-Vorverarbeitung, von
Auswertungsfunktionen beziehungsweise der Routendaten-Nachverarbeitung
konfiguriert sind.
-
Externe
Netzwerkverwaltungs-Anwendungen unter Einschluss von Dienste-Verwaltungsfunktionen senden
Diensteanforderungen an die Routen-Such-Verwaltung 208, und die Routen-Such-Verwaltung
antwortet durch Zurückliefern
einer Routenführungs-Strategie
zur Realisierung dieser Dienste. Die Routenführungs-Strategie wird in Form
von Routenführungs-Tabellendaten 410 erzeugt,
die eine Vielzahl von Routen beschreiben, die einer Vielzahl von
Verbindungen zugeteilt sind. Die Routen-Suchmaschine 209 empfängt Eingangsdaten
von einem Diensteanforderungs-Vorprozessor 400, einem Netzwerkdaten-Vorprozessor 401 und einem
Auswertungsfunktions-Prozessor 402, und gibt Daten an den
Routendaten-Nachprozessor 403 ab. Die Vorprozessoren 400, 401 und 402 sind
so konfiguriert, dass sie Daten von externen Verwaltungsanwendungen in
eine generische Form umwandeln, die für eine Eingabe in die Routen-Suchmaschine 209 geeignet
ist. Die Routen-Suchmaschine kann weiterhin Daten zu und von einer
graphischen Benutzer-Schnittstelle (GUI) 211 übertragen,
die es einem Benutzer ermöglicht,
eine visuelle Darstellungs-Ansicht
von Verbindungen und Routen zu erhalten, die von den Verbindungen
verwendet werden, die von der Routen-Suchmaschine zugeordnet werden
oder von dieser zuzuordnen sind.
-
Der
Diensteanforderungs-Vorprozessor und der Netzwerkdaten-Vorprozessor
geben als Eingänge Diensteanforderungs-Daten,
Netzwerktopologie-Daten und Vermittlungsdefinitions-Daten in einem
realisierungsspezifischen Format ein und wandeln diese Daten in
ein Format um, das generisch und nicht spezifisch für irgendwelche
proprietären
Ausrüstungstypen
oder Transportprotokolle ist. Die Routen-Suchmaschine 209 verarbeitet
die generischen Daten, die von den Vorprozessoren erzeugt werden,
um generische Ausgangsdaten zu erzeugen, die von dem Routendaten-Nachprozessor 403 vor
der Speicherung auf der MIB verarbeitet werden.
-
Der
Diensteanforderungs-Vorprozessor, der Netzwerk-Vorprozessor und
der Routendaten-Nachprozessor werden als produktspezifische Komponenten
realisiert, das heißt
sie sind auf eine Art der Knotenausrüstung, beispielsweise Vermittlung
MIB, und so weiter konfiguriert, die proprietär ist, und die kundenspezifisch bei
jeder Installation angepasst werden kann. Die Routen-Suchmaschine 401 und
der Auswertungs-Prozessor 404 sind jedoch generisch und
von Installation zu Installation wiederverwendbar.
-
Die
Diensteanforderungen 407, die Netzwerk-Topologiedaten 408,
die Vermittlungs-Definitionsdaten 412,
die Routenführungs-Zieldaten 409,
die Routenführungs-Tabellen 410 und
die Routenführungs-Statistiken 411 können auf
einer Verwaltungs-Informations-Datenbank 206 gespeichert
werden und sind für
eine Vielzahl von anderen Netzwerk-Verwaltungs-Anwendungen zugänglich,
die sich auf der Netzwerk-Steuerung oder an irgendeiner anderen
Stelle in dem Netzwerk befinden. Auf der Verwaltungs-Informations-Datenbank
gespeicherte Daten können
für bestimmte
proprietäre
Netzwerk-Elemente spezifisch sein, oder sie können für bestimmte Transportmechanismen
spezifisch sein, z.B. ATM, SDH, SONET.
-
Der
Diensteanforderungs-Vorprozessor 400 empfängt Eingangs-Diensteanforderungs-Daten
in der Form einer Liste von Diensteanforderungen 407 von
einer externen Anwendung. Typischerweise kann eine Diensteanforderung
folgendes angeben:
- – einen Verkehrsdatentyp, beispielsweise
Sprache, Video, Computererzeugte Daten
- – einen
Quellen-Knoten und einen oder eine Vielzahl von Ziel-Knoten, die
zu verbinden sind
- – eine
erforderliche Bitraten-Kapazität
(entweder Spitzenwert oder Mittelwert) zwischen den Quellen-Knoten
und jedem Ziel-Knoten
- – annehmbare
Zellenverluste und Verzögerungs-Schwellenwerte
- – eine
Zeit und Dauer, zu der eine Übertragung
der Verkehrsdaten erforderlich ist
- – eine
Anzahl von Routen und die Aufteilung von Verkehr zwischen diesen
Routen.
-
Der
Diensteanforderungs-Vorprozessor 400 wandelt die Diensteanforderungen 407 in
ein generisches Datenformat um, das für die Eingabe in die Routen-Suchmaschine 209 geeignet
ist. Die Eingangs-Diensteanforderungs-Daten 407 können für einzelne
Vermittlungsarten oder Transportprotokoll-Typen spezifisch sein. Der
Diensteanforderungs-Vorprozessor 400 wandelt die Diensteanforderungs-Daten um, um Verkehrsmatrix-Daten
für jeden
Verkehrstyp zu erzeugen. Diese Matrizen werden durch den Diensteanforderungs-Vorprozessor 400 in
generische Diensteanforderungen umgewandelt, die in die Routen-Suchkomponente 207 eingegeben
werden, um die Routenführung über das
Netzwerk zu bewirken.
-
Der
Netzwerkdaten-Vorprozessor 401 empfängt Eingangsdaten, die das
Netzwerk 408 beschreiben, von der Verwaltungs-Informations-Datenbank 206.
Die Netzwerkdaten beschreiben die Verbindungsmöglichkeiten und die Topologie
von Knoten und Verbindungsstrecken des Netzwerkes. Die Netzwerkdaten
können Vermittlungs-Definitionsdaten 412 enthalten,
die die Charakteristiken von Netzwerk-Knotenelementen beschreiben, wie zum
Beispiel die Bandbreiten-Kapazität.
Die Netzwerk-Topologie kann folgendes einschließen:
- – Knoten-Namen,
deren Bitraten-Kapazitäten
(Spitzenwert oder Mittelwert) und deren Zellen-Verarbeitungszeiten
- – Verbindungsstrecken-Namen,
deren Bitraten-Kapazitäten
(Spitzenwert oder Mittelwert) und Kostenwerte für jeden Verkehrstyp, dessen
Route zu führen
ist
- – Verbindungsstrecken-Statusdaten,
die die Menge an Bitraten-Kapazität beschreiben, die bereits
von vorhandenen Diensteanforderungen verbraucht ist
- – Knoten-Statusdaten,
die die Menge an Bitraten-Kapazität beschreiben, die bereits
von vorhandenen Diensteanforderungen verbraucht ist.
-
Der
Netzwerkdaten-Vorprozessor 403 wandelt die Eingangs-Netzwerkdaten
in ein generisches Format um, das für die Routen-Suchkomponente 207 geeignet
ist. Der Netzwerkdaten-Vorprozessor 403 empfängt die
Netzwerkdaten 408 unter Einschluss von Vermittlungs-Definitionsdaten 412,
die eine Form aufweisen können,
die für
einzelne proprietäre
Vermittlungen und Verbindungsstrecken-Ausrüstungen spezifisch ist, und er
erzeugt generische Netzwerk-Graph-Daten, die in die generische Routen-Suchmaschine 209 eingegeben werden.
Weil die Netzwerkdaten 408 vermittlungsspezifische Informationen
einschließen,
wird diese vermittlungsspezifische Information durch den Netzwerkdaten-Vorprozessor 401 in
ein generisches Format umgewandelt. Ein Beispiel einer vermittlungsspezifischen
Information ist ein Bitraten-Kapazität einer Vermittlung.
-
Der
Auswertungsfunktions-Prozessor 402 empfängt eine Darstellung der Routenführungs-Zieldaten 409,
die von einem Benutzer eingegeben werden. Der Auswertungsfunktions-Prozessor 402 wird
von den genetischen Algorithmen der Routen-Suchmaschine dazu verwendet,
die Effizienz/Fitness eines bestimmen Satzes von Routen zu quantifizieren,
die für
die Diensteanforderungen gefunden werden, die er empfängt. Der Auswertungsfunktions-Vorprozessor 402 empfängt Routen-Zieldaten 409,
die Routenführungs-Ziele
höherer Ebene
beschreiben, die von einem Netzwerk-Betreiber spezifiziert werden.
Derartige Routenführungs-Ziele höherer Ebene
können
Daten umfassen, die Zwangsbedingungen für die Routenführung beschreiben.
Der Auswertungsfunktions-Vorprozessor 402 ordnet Fitness-Daten
möglichen
Routenführungs-Strategien
zu, die in den Routenführungs-Zieldaten 409 spezifiziert
sind. Die zugeordneten Fitness-Daten werden von der Routen-Suchmaschine
beim Aufsuchen möglicher
Routen über
das Netzwerk verwendet.
-
Die
Routen-Suchmaschine 209 erzeugt Routendaten, die eine Liste
von Routen für
die Diensteanforderungen beschreiben. Die Routen-Ausgangsdaten werden
zu einem Routendaten-Nachprozessor 403 übertragen, der die Routendaten
in eine Routenführungs-Tabelle 410 umwandelt.
Die Routen-Such-Maschine 209 erzeugt Routendaten in einem
generischen Format für
jeden Knoten in dem Netzwerk. Der Routendaten-Nachprozessor 403 wandelt
die ein generisches Format aufweisenden Routendaten in eine produktspezifische Routenführungstabelle
um, die von dem Netzwerk-Vermittlungen verwendet werden kann. Die
Routenführungstabellen-Daten sind für eine Verbindungs-Steuerkomponente
der Knotenausrüstungs-Vermittlungen zugänglich,
um die Verbindungen zu realisieren. Die Routen-Suchmaschine 209 gibt weiterhin
Routen-Statistikdaten 411 ab. Ein Benutzer kann die von
der Routen-Suchkomponente gefundenen Routen durch Inspizieren der Routen-Statistikdaten 411 betrachten
und auswerten, die auf der MIB 206 gespeichert sind.
-
Die
Routen-Statistikdaten 411 können Daten einschließen, die
folgendes beschreiben:
- – Nutzung des Netzwerkes sowohl
hinsichtlich der Nutzung von Verbindungsstrecken, Vermittlungen
und als auch der Gesamtnutzung nach der Erfüllung der Diensteanforderungen
- – Unterschied
in einem Zustand des Netzwerkes von einem Zustand unter den vorhergehenden
Routenführungs-Strategien
- – Verteilung
von Verkehr über
berechnete Routen.
-
Die
Routen-Suchmaschine 209 ist so konfiguriert, dass sie auf
der Grundlage von generischen Netzwerkdaten arbeitet, die von den
Diensteanforderungs-Vorprozessor 404,
dem Netzwerk-Daten-Vorprozessor 401 und dem Auswertungsfunktions-Prozessor 402 erzeugt
werden. Die Routen-Suchmaschine 209 arbeitet entsprechend
einem Algorithmus, der eine Künstliche-Intelligenz-Suchtechnik
ausführt.
Bei der besten vorliegenden Ausführungsform
arbeitet die Routen-Suchmaschine
entsprechend einem genetischen Algorithmus, obwohl als eine alternative
ein simulierter Verstärkungs-Algorithmus
oder eine Kombination eines genetischen Algorithmus und eines simulierten
Temperungs-Algorithmus von der Suchmaschine angewandt werden kann. In
der besten hier beschriebenen Ausführungsform wird eine Realisierung
des genetischen Algorithmus beschrieben, wobei das bekannte GAmeter
Tool Kit verwendet wird („The
GAmeter Tool Kit" J
Mann, A Kapsalis und G D Smith; in Applications in Modern Heuristic
Techniques, V J Rayward-Smith (Herausgeber) Kapitel 12, Seiten 195–209, Alfred
Waller 1995).
-
Durch
Strukturieren der Routen-Suchkomponente 207 in die Verwaltungs-Komponente 208 und
die generische Routen-Suchmaschine 209 können die
Such-Algorithmen
der Routen-Suchmaschinen-Komponente ohne die Verwendung irgendeiner
problemspezifischen Kenntnis arbeiten. Der Such-Algorithmus optimiert
seine Suche nach Routen entsprechend den Fitness-Daten, die von
dem Auswertungsfunktions-Prozessor 402 erzeugt werden.
Durch Trennen der Suchmaschine von den Auswertungskriterien, die
von dem Auswertungsfunktions-Prozessor 402 erzeugt
werden, kann eine Modularisierung und Verallgemeinerung erzielt werden,
wodurch Verbesserungen an dem Such-Algorithmus unabhängig von
dem Diensteanforderungs-Vorprozessor 400, dem Netzwerkdaten-Vorprozessor 403 oder
dem Auswertungsfunktions-Prozessor 402 durchgeführt werden
können.
-
Die
vorliegende 5 beschreibt schematisch die
Routen-Suchkomponente 207 und Beispiele von Wechselwirkungen
mit einer Netzwerk-Verwaltungs-Anwendung 500. Die Netzwerk-Verwaltungs-Anwendung 500 kommuniziert
mit der Routen-Suchkomponente 207 über eine
Serie von Setze-, Hole- und Befehlssignalen (Setze Anforderung,
Setze Antwort, Hole Anforderung, Hole Antwort, Befehlsanforderung,
Befehlsantwort), wie dies in 5 gezeigt
ist. Netzwerkdaten werden von der Verwaltungsanwendung zu der Routen-Suchkomponente
geleitet, was es der Routen-Suchkomponente ermöglicht, Kenntnisse über das
Netzwerk zu erhalten, über
das die Netzwerk-Verwaltungs-Anforderung Anforderungen für den Einsatz
eines Dienstes stellt. Die Routen-Suchkomponente 207 findet
einen optimierten Satz von Routen zur Ausführung des Dienstes und liefert
diese Routen beschreibende Daten an die Verwaltungsanwendung 500 in
Form von Routenführungs-Tabellen-Daten 410 zurück. Die
Routen-Suchkomponente 207 bestimmt die optimalen Routen
gemäß einem Satz
von Vorgabeparametern. Die Vorgabeparameter werden in der Routen-Suchkomponente 207 und
der Verwaltungsanwendung 500 gespeichert, oder ein Benutzer
kann die Vorgabeparameter mit Hilfe der Befehls-Anforderungssignale
aktualisieren, abfragen oder ändern.
-
In
der folgenden Beschreibung wird die Realisierung eines genetischen
Algorithmus der Routen-Suchkomponente 207 beschrieben.
Es ist verständlich,
dass in anderen Ausführungsformen
der Erfindung die genetische Algorithmus-Suchmaschine durch andere
eine Künstliche-Intelligenz-Technik
anwendende Suchmaschinen ersetzt werden kann, beispielsweise eine
simulierte Temperungs-Suchmaschine oder eine Kombination aus einer
Suchmaschine mit einem genetischen Algorithmus und einer Suchmaschine
mit einer simulierten Temperung.
-
In
der vorliegenden 6 ist ein Datenfluss-Diagramm
von Daten innerhalb der Routen-Suchkomponente 207 gezeigt.
Die Routen-Suchkomponente 207 umfasst eine Vielzahl von
Datenverarbeitungs-Elementen, die jeweils einen Prozessor und einen
zugehörigen
Bereich einer Speichereinrichtung umfassen, die jeweils die spezifischen
Prozesse ausführen,
wie sie schematisch in 6 gezeigt sind. Daten werden
zwischen Prozessoren übertragen,
wie dies in 6 gezeigt ist. Das Symbol *,
das mehreren der Prozesse in 6 zugeordnet
ist, zeigt an, dass es einen Datenfluss von Steuerparameter-Daten 612 zu
dem Berechnungsprozess 603 für den kürzesten Pfad, zu dem Prozess 604 zur
Erzeugung einer anfänglichen
Population, zu dem Prozess 605 zur Routenerzeugung, zu
dem genetischen Manipulationsprozess 606, zu dem Populations-Reproduktionsprozess 607,
zu dem Populations-Vereinigungsprozess 608, zu dem Fitness-Auswertungsprozess 402 und
dem Steiner-Baum-Produktionsprozess 610 gibt. Die Funktionen
jedes der Prozesse sind wie folgt. Der Maschinen-Steuerprozessor 600 steuert
den Aufruf aller anderen Prozesse innerhalb der generischen Routen-Suchmaschine 209.
Der Profil-Erzeugungsprozess 601 liest eine Datei, die
Daten enthält,
die die Netzwerk-Topologie
und die Verkehrs-Anforderungs-Information beschreibt, und verarbeitet
sie zu einer internen Darstellung des Netzwerkes und der Verkehrsanforderungen,
sowohl für
Punkt-zu-Punkt als auch für Punkt-zu-Mehrpunkt-Verbindungen,
die von einer Anwendung an das Netzwerk gestellt werden. Ein Netzwerk-Datei-Ausgang
von dem Netzwerk-Daten-Vorprozessor 401 wird in den Profil-Erzeugungsprozess 601 eingegeben.
Steuerparameter-Daten 611, die Parameter beschreiben, wie
zum Beispiel Bewertungs-Koeffizienten, die einen Fitness-Auswertungsprozess 609 zugeordnet
sind, der auf dem Auswertungsfunktions-Prozessor 402 abläuft, werden
ebenfalls in dem Profil-Erzeugungsprozess 601 eingegeben.
Der Darstellungs-Erzeugungsprozess 602 verarbeitet
Verkehrsanforderungs-Darstellungsdaten 612, Netzwerk-Darstellungsdaten 613,
die von dem Profil-Erzeugungsprozess 601 abgegeben werden,
und ausgewählte
Steuerparameter-Daten 611, um eine Anzahl von Bits zu berechnen,
die von dem genetischen Algorithmus benötigt werden, um einen Routenführungs-Entscheidungsraum
darzustellen, aus dem generische Routenführungs-Lösungen gefunden werden.
-
Die
Netzwerk-Darstellungsdaten 603 speichern zwei „Ansichten" des Netzwerkes.
Erstens kann eine Graph-Ansicht des Netzwerkes, auf der Algorithmen,
beispielsweise der Algorithmus des kürzesten Pfades oder Algorithmen
des minimalen Spannbaumes ablaufen können, in den Netzwerk-Darstellungsdaten 613 gespeichert.
Zweitens wird eine Ansicht des Netzwerkes, die eine Umsetzung auf
externe Knoten- und Verbindungsstrecken-Namen ermöglicht,
gespeichert. Diese Ansicht wird während der Netzwerk-Daten-Analyse
erzeugt, und sie wird hauptsächlich
während
der Erzeugung von Routen verwendet. Die für die Netzwerk-Darstellungsdaten 613 gespeicherte
Information schließt
folgendes ein:
- • Orte
- • Verbindungsstrecken
- • Verbindungsstrecken-Kosten
- • Graphen.
-
Orte
können
die folgenden Attribute haben:
- • Geographische
Position
- • Name
- • Kapazität, das heißt Verkehrsmenge,
die durch einen Knoten fließen
kann.
-
Verbindungsstrecken
haben die folgenden Attribute:
- • Verbindungsstrecken-Identifikation
- • Quellen-Knoten
und Port-Nummer
- • Ziel-Knoten
und Port-Nummer
- • derzeitige
Belastung, das heißt
eine Last vor der Routenführung
der Verkehrsanforderungen
- • Gesamtbelastung,
das heißt
eine Last nach der Routenführung
der Verkehrsanforderungen
-
Verbindungsstrecken-Kosten
haben die folgenden Attribute:
- • Verbindungsstrecken-Identifikation
- • Routenführungs-Kosten.
-
Die
Verbindungsstrecken-Kosteninformation wird für alle Verkehrstypen in den
Verkehrsanforderungen gespeichert, die eine Routenführung benötigen.
-
Graphen
haben die folgenden Attribute:
- • Anzahl
der Knoten
- • Grad
jedes Vertex oder Scheitelpunktes.
-
Der
Prozess 603 zur Berechnung des kürzesten Pfades verarbeitet
einen bekannten Yen-Lawler-Algorithmus anhand der Netzwerk-Darstellungsdaten 603 und
der Verkehrsanforderungs-Darstellungsdaten 612 und gibt
Daten 616 für
den kürzesten
Pfad aus, die eine ganzzahlige Anzahl k von kürzesten Pfaden für jede Diensteanforderung 407 umfassen,
die in die Routen-Suchkomponente 207 eingegeben wird. Eine
den genetischen Algorithmus verwendende Suchroutine wird durch den
Prozessor 604 zur Erzeugung der anfänglichen Population, den Prozessor 606 zur
genetischen Manipulation, den Prozessor 607 zur Populations-Reproduktion, den
Populations-Vereinigungsprozessor 608 und den Fitness-Auswertungsprozessor 609 realisiert.
Im allgemeinen sind Prozesse für
einen genetischen Algorithmus im Stand der Technik gut bekannt und
beinhalten die Darstellung eines Problems als eine Serie von Bits
oder Bytes von Daten in eine feste Länge aufweisenden Bitfolgen.
Populationen von einer feste Länge
aufweisenden Bitfolge werden geändert,
kombiniert, mutatiert und miteinander überkreuzt, und optimierte Bitfolgen
werden entsprechend eines Fitness-Kriteriums ausgewählt. In
der besten Ausführungsform
werden Routen über
ein Netzwerk von Knoten und Verbindungsstrecken durch Bitfolgen
von Eins- und Null-Werten dargestellt, die mutiert und kombiniert
werden, um optimale Routen entsprechend den Routenführungs-Zielen 409 zu
finden, die in eine Fitness-Auswertungsfunktion eingegeben werden,
die von den Auswertungsfunktions-Prozessor 402 betrieben
wird. Der Prozessor 604 für die Erzeugung der anfänglichen
Population verarbeitet einen Teil des genetischen Algorithmus, berechnet
eine Größe eines
Routenführungs-Entscheidungsraumes,
aus dem Routen zu finden sind, und erzeugt eine anfängliche
Population von Bitfolgendaten, die Routen über das Netzwerk hinweg darstellen.
Unter der Größe eines
Entscheidungsraumes wird eine Anzahl von möglichen unterschiedlichen Routen
verstanden (die jeweils durch eine entsprechende jeweilige Bitfolge
dargestellt sind). Die Bitfolgen in der anfänglichen Population beschreiben
zufällig
zugeordnete Routen über
das Netzwerk. Wahlweise kann eine anfängliche Bitfolgen-Population,
in der alle kürzesten
Pfade über
das Netzwerk zugeordnet sind, erzeugt werden. Bei der Erzeugung
der anfänglichen
Population von Bitfolgen gibt der Prozess 604 für die Erzeugung
der anfänglichen
Population Darstellungs-Definitionsdaten 614 ein, die von
dem Darstellungs-Erzeugungsprozess 602 erzeugt
wurden, und er wird entsprechend verschiedener Steuerparameter betrieben,
die in den Steuerparameter-Daten 611 spezifiziert sind.
Eine derzeitige Population von Bitfolgen, die durch derzeitige Populationsdaten 615 dargestellt
ist, wird in den Populations-Reproduktions-Prozess 607 eingegeben.
Der Populations-Reproduktions-Prozess 607 nimmt die derzeitige
Population an und reproduziert die Population von Bitfolgen auf
der Grundlage der Werte von verschiedenen Steuerparametern, die
in den Steuerparameter-Daten 611 spezifiziert sind, sowie
proportional zu einer „Fitness" der einzelnen Bitfolgen
der Population von Bitfolgen, um eine Zwischen-Population von Bitfolgen
zu erzeugen, die durch Zwischen-Populationsdaten 618 dargestellt
sind. Die Fitness-Kriterien sind in Fitness-Daten 619 spezifiziert,
die in den Populations-Reproduktions-Prozess 607 eingegeben werden.
Der genetische Manipulations-Prozess 606 gibt die Zwischen-Populationsdaten,
die eine Zwischen-Population von Bitfolgen umfassen, ein, wendet
einen bekannten Mutations- und Kreuzungsprozess an und erzeugt damit
eine manipulierte Population von Bitfolgen. Dieser Prozess mischt
die Bitfolgen, die in der Zwischen-Population enthalten sind. Die
derzeitige Population, die Zwischen-Population und die manipulierte
Population werden durch den Populations-Vereinigungsprozess 608 entsprechend
der Parameter vereinigt, die in den Steuerparameter-Daten 611 spezifiziert
sind, sowie entsprechend Fitness-Werten
jedes Mitgliedes der Population, wie dies durch den Fitness-Auswertungsprozess 609 bestimmt
wird, der Fitness-Daten 619 abgibt. Der Fitness-Auswertungsprozess 609 gibt
Daten-Bitfolgen ein, die Populations-Mitglieder von den derzeitigen,
Zwischen- und Manipulierten Populations-Daten umfassen, dekodiert
sie durch die Verwendung der Information für den kürzesten Pfad und den Steiner-Baum,
und simuliert die Routenführung
von Verkehr unter Verwendung der Netzwerk-Darstellungsdaten auf
der Grundlage Mitglieder der derzeitigen Population, der Zwischen-Population
und der manipulierten Population. Eine Fitness-Funktion wird entsprechend
von Steuerparametern ausgewertet, die in den Steuerparameter-Daten
spezifiziert sind, wie dies weiter unten beschrieben wird. Ein Fitness-Wert
für jedes
Populations-Mitglied wird erzeugt. Der Steiner-Baum-Erzeugungsprozessor 610 gibt
Bitfolgen ein, die Routen darstellen, die eine derzeitige Population
umfassen, die in Form von derzeitigen Populations-Daten 615 dargestellt
sind, und berechnet Steiner-Bäume
für jede
einzelne Bitfolge. Dieser Prozess dekodiert die einzelnen Bitfolgen,
die Populations-Mitglieder umfassen, die anzeigen, welche der Graph-Knoten
in den Steiner-Baum einzuschließen
sind. Der Prim-Algorithmus wird dazu verwendet, einen minimalen
Spannbaum für
die Graph-Knoten
zu berechnen, die in dem Steiner-Baum für jedes Bitfolgen-Populations-Mitglied enthalten
sind. Ein bekannter Spannbaum umfasst einen Teil-Graphen eines verbundenen
Graphen. Dieser Teil-Graph ist ein Baum und beinhaltet alle die
Knoten des Graphs. Ein minimaler Spannbaum ist ein bewerteter Spannbaum,
der aus einem bewerteten Graph derart gebildet ist, dass die reelen
Zahlen, die jedem Rand beim Summieren zugeordnet sind, insgesamt
nicht größer als
die entsprechende Summe für
irgendeinen anderen Spannbaum sind, der für den Teil-Graphen definiert ist. Der Routen-Erzeugungsprozess 605 wählt periodisch
optimale Populations-Mitgliedsfolgen aus der derzeitigen Population
aus, mit einer Periode, die durch den Benutzer in den Steuerparameter-Daten 611 spezifiziert
werden kann, und er dekodiert die Bitfolgen in Routen-Informationen
für Punkt-zu-Punkt- und Punkt-zu-Mehrpunkt-Diensteanforderungen.
Diese Information wird als Textinformation gedruckt und steht einem
Benutzer über
eine graphische Benutzerschnittstelle 211 zur Verfügung.
-
Es
werden nunmehr weitere Einzelheiten beschrieben, wie die Routen-Suchkomponente 207 durch eine
externe Netzwerk-Verwaltungsanwendung 500 gesteuert wird.
Wie dies anhand der 5 beschrieben wurde sendet eine
externe Netzwerk-Verwaltungsanwendung Befehle an die Routensuch-Komponente 207, wie
zum Beispiel Holen, Setzen, Ausführen
oder Befehl, und Argumente dieser Befehle steuern die Ausführung der
Routen-Suchkomponente 207. Die Holen- und Setzen-Befehle
ermöglichen
eine allgemeine Wechselwirkung mit Steuerparameter-Daten 611 unter
der Steuerung des Maschinen-Steuerprozesses 600. Die Befehls-Anweisung bewirkt,
dass die Suchmaschine eine Suche nach optimalen Routen beginnt.
Die genetische Algorithmus-Suchmaschine steht mit dem Darstellungs-Erzeugungsprozess 602 und
dem Prozess 603 zum Berechnen des kürzesten Pfades in Wechselwirkung,
um:
- • die
erforderliche Größe der Bitfolgen-Darstellung
(in Bits) zu berechnen, und
- • Pfade
für jede
Punkt-zu-Punkt-Verkehrsanforderung zu berechnen, aus denen Routen
gewählt
werden.
-
Der
Darstellungs-Erzeugungsprozess und der Prozess zur Berechnung des
kürzesten
Pfades sind Vorverarbeitungs-Schritte bei dem Routen-Auswahlprozess.
Jedesmal wenn die Verwaltungsanwendung 500 einen Satz von
neuen Routenführungs-Lösungen anfordert,
werden der Darstellungs-Erzeugungsprozess und der Prozess der Berechnung
des kürzesten
Pfades in einer Initialisierungsphase vor der Operation der Suche nach
Routen betrieben.
-
An
jeder von der genetischen Algorithmus-Suchmaschine ausgeführte Suche
ist nach der Initialisierungsphase ein Zyklus von Prozessen beteiligt.
Das folgende Beispiel bezieht sich auf die genetische Algorithmus-Realisierung,
die hier als die beste Ausführungsform
dargeboten wird. Eine derzeitige Population von Datenfolgen, die
durch den anfänglichen
Populations-Erzeugungsprozess 604 erzeugt wurden, wird
als derzeitige Populations-Daten 615 in den Fitness-Auswertungsprozess 609 eingegeben.
Der Fitness-Auswertungsprozess 609 erzeugt Fitness-Daten 619,
die der laufenden oder derzeitigen Population von Bitfolgen entsprechen. Die
Fitness-Daten und die derzeitigen Populationsdaten werden von den
Populations-Reproduktionsprozess verwendet, um eine Zwischen-Population von Bitfolgen
zu erzeugen, die als Zwischen-Populations-Daten 618 abgegeben
werden. Die Fitness jeder Bitfolge der Zwischen-Population wird
durch den Fitness-Auswertungs-Prozess 609 ausgewertet,
was zu Fitness-Daten 619 führt, die einen Fitness-Wert
für jede
Folgen beschreiben, die die Zwischen-Population von Folgen bildet. Die Fitness
der manipulierten Population von Folgen, die durch die manipulierten
Populations-Daten 617 dargestellt sind, wird durch den
Fitness-Auswertungsprozess 609 ausgewertet, was zu Fitness-Daten 619 führt, die
eine Fitness jeder Folge der manipulierten Population darstellen.
Daten, die die drei Populationen von Folgen beschreiben, das heißt die derzeitige
Population, die Zwischen-Population und die manipulierte Population,
werden zusammen mit Fitness-Wert-Daten, die jeder Folge der derzeitigen
Zwischen- und manipulierten Populationen entsprechen, in den Populations-Vereinigungsprozess 608 eingegeben,
der eine neue derzeitige Population von Folgen erzeugt, die durch
die derzeitigen Populations-Daten 615 dargestellt sind,
auf der Grundlage einer Auswahl der fittesten Folgen von jeder der
derzeitigen, Zwischen- und manipulierten Population. Der Zyklus
wird durch den Routen-Erzeugungsprozess 605 abgeschlossen,
der eine Vielzahl von Routen auf der Grundlage von einem oder mehreren
der fittesten Folgen der derzeitigen Population berechnet und diese
berechneten Routen an die Netzwerk-Verwaltungsanwendung 500 als
Routen-Tabellen 400 zurückliefert,
nachdem zunächst
die Ausgangs-Routendaten in dem Routendaten-Nachprozessor 403 auf
eine Form umgewandelt wurden, die für die Eingabe in die Verwaltungsanwendung 500 geeignet
ist. Die Erzeugung neuer Routen unterliegt den Bedingungen von Steuerparametern,
die in den Steuerparameter-Daten 611 gespeichert sind,
die von der Netzwerk-Verwaltungsanwendung 500 spezifiziert
sind. Die Erzeugung neuer Routen-Daten endet, wenn der Populations-Reproduktionsprozessor 607 feststellt,
dass eine vorgegebene Anzahl von Auswertungen, die in den Steuerparameter-Daten 611 spezifiziert
ist, ausgeführt
wurden. Die Routen-Suchkomponente 207 wartet dann auf weitere
Befehle von der Netzwerk-Verwaltungsanwendung 500, bevor
weitere Routen-Tabellendaten
erzeugt werden.
-
In
dem vorstehenden Prozess verwendet der Fitness-Auswertungsprozess 609 Daten
für den
kürzesten
Pfad und Steiner-Baum-Daten um Fitness-Parameter den Folgen-Mitgliedern
der Populationen zuzuordnen. Während
die Information des kürzesten
Pfades lediglich einmal als Antwort auf eine Anforderung für eine Routenermittlung
von der Netzwerk-Verwaltungsanwendung 500 erzeugt wird,
werden Steiner-Baum-Daten für
jedes Mitglied jeder Population erzeugt. Somit wird die Steiner-Baum-Erzeugung
für eine
Punkt-zu-Mehrpunkt-Diensteanforderung aufgerufen.
-
Unter
erneuter Bezugnahme auf die vorliegende 4 erfolgt
die Schnittstellenbildung zwischen dem Diensteanforderungs-Vorprozessor 400,
dem Netzwerkdaten-Vorprozessor 401, dem Auswertungsfunktions-Vorprozessor 402,
dem Routendaten-Nachprozessor 403 und der Routen-Suchmaschine 209 durch
Lesen und Schreiben von Daten von einer Vielzahl von Ergebnis-Dateien,
die in einem einfachen ASCII-Protokoll geschrieben werden.
-
Die
vorliegende 7 erläutert Schritte, die von der
Routen-Suchkomponente 207 ausgeführt werden. Im Schritt 701 werden
Diensteanforderungen 407 beschreibende Daten in den Diensteanforderungs-Vorprozessor 400 eingegeben, der
eine einfache ASCII-Protokoll- (SAP-)Datei erzeugt, die die Diensteanforderungen beschreibt,
die in die Routen-Suchmaschine 209 eingegeben werden. Im
Schritt 702 werden Netzwerk-Topologie-Daten 408 in
den Netzwerkdaten-Vorprozessor 401 eingegeben,
der eine SAP-Datei abgibt, die die Beziehungen zwischen den Knoten
und Verbindungsstrecken in dem Netzwerk beschreibt. Die SAP-Datei
wird in die Routen-Suchmaschine 209 eingegeben. Im Schritt 703 wird
eine SAP-Textdatei, die Daten enthält, die Routenführungs-Ziele 409 darstellen,
von einem Benutzer in die Routen-Suchmaschine 209 eingegeben.
Im Schritt 704 verwendet die Routen-Suchmaschine 209 vorzugsweise
genetische Algorithmen, um die Diensteanforderungen, die sie empfängt, entsprechend
der Auswertungsfunktion für
die eingegeben Routenführungs-Zieldaten
als Eingang an das in ihrem Eingang beschriebene Netzwerk zu lenken.
Im Schritt 705 gibt die Routen-Suchmaschine 209 eine
SAP-Datei ab, die eine Liste von Routen für die Verbindungsanforderungen
enthält.
Die SAP-Datei kann in den Routendaten-Nachprozessor 405 im Schritt 705 eingegeben
werden, um die Routendaten-SAP-Datei
in eine Form umzuwandeln, die zur Verwendung durch die externe Anwendungen
geeignet ist, die die Diensteanforderung gemacht hat.
-
Ein
Satz von Routenführungs-Strategien,
die von der Routen-Suchkomponente 207 ausgeführt werden,
wird nunmehr beschrieben. Um das Verständnis zu erleichtern, werden
die Operationen als Operationen auf Darstellungen auf Einzel-Knoten
und Verbindungsstrecken-Netzwerk-Graphen beschrieben, wie sie schematisch
in den vorliegenden 8 und 9 gezeigt
sind. Es ist verständlich,
dass die gezeigten Graphen und die ausgewählten Routen als auf Maschinen
ausführbare
Datenverarbeitungs-Operationen an Daten realisiert werden, die Knoten
und Verbindungsstrecken eines Netzwerkes darstellen.
-
8 der
beigefügten
Zeichnungen zeigt den generische Netzwerk-Graphen von Knoten und
Verbindungsstrecken, wie sie in 3 gezeigt
sind. Ein Gitter von Koordinaten 803 ist dem Netzwerk-Graphen überlagert,
derart, dass jedem Knoten eine eindeutige XY-Koordinaten-Position
zugeordnet ist. Verbindungsstrecken zwischen Knoten werden zugehörige Kostenwerte
zugeordnet (die in 8 durch Zahlen in der Nähe des Mittelpunktes
der Verbindungsstrecken-Linien bezeichnet sind). Ein Beispiel einer
Route, die von der Routen-Suchmaschine für eine Verbindung zwischen
einem Quellen-Knoten 801, der mit n_1 bezeichnet ist, und einem
Ziel-Knoten 802 gewählt
wird der mit n_8 bezeichnet ist, ist durch Verbindungsstrecken mit
Richtungspfeilen angezeigt. Konfiguriert für die Routenführung über den
kürzesten
Pfad findet die Routen-Suchmaschine vorzugsweise Routen minimaler
Kosten für
eine Vielzahl von Verbindungen zwischenderartigen Paaren von Quellen-
und Ziel-Knoten in dem Netzwerk.
-
Alternativ
kann die Route-Sucheinrichtung so konfiguriert werden, dass sie
Verbindungen über
das Netzwerk hinweg „ausgleicht". Der Ausgleich von
Verbindungen kann dadurch erzielt werden, dass eine ganzzahlige
Zahl K von kürzesten
Pfaden zwischen den Quellen- und Ziel-Knoten jeder Verbindung berücksichtigt wird
und der kürzeste
Pfad für
jede Verbindung ausgewählt
wird, der eine gleichförmige
Verteilung der Netzwerkknoten- und Netzwerkverbindungsstrecken-Nutzungen
ergibt.
-
Es
wird erneut auf 8 Bezug genommen, in der ein
generischer Netzwerk-Graph
von Knoten und Verbindungsstrecken gezeigt ist, und die zeigt, wie
ein Ausgleich des Verkehrs über
das Netzwerk hinweg erzielt wird. Während eine Routenführung über den
kürzesten
Pfad Verkehr zwischen der Quelle 801, Knoten n_1 und dem
Ziel 802, Knoten n_7 sowie Verkehr zwischen dem Quellen-Knoten
S, n_1 und dem zweiten Ziel-Knoten n_8 über die Knoten n_2 und n_6
erzwingen würde,
was eine Überlastung
auf dem Knoten n_2 und n_6 hervorrufen würde, kann unter Berücksichtigung
einer ganzzahligen Zahl k von kürzesten
Pfaden der Verkehr von der Quelle n_1 zu dem ersten Ziel n_7 über alternative
Knoten n_3 und n_5 geführt
werden, während
Verkehr zwischen n_1 und dem zweiten Ziel n_8 weiterhin über die
Knoten n_2 und n_6 geführt
wird, wodurch der Verkehr über
unterschiedliche Routen des Netzwerkes ausgeglichen wird und eine
gleichförmigere Belastung
der Knoten und Verbindungsstrecken mit Verkehrsdaten erzielt wird.
-
Die
Routen-Suchkomponente 207 kann eine einzelne Verbindung über mehrere
unterschiedliche Routen führen.
Diese „Aufteilung" einer Verbindung über Routen
kann erforderlich sein, wenn die Verbindung eine hohe Bandbreiten-Kapazität erfordert.
Die Anzahl von Routen, über
die eine derartige Verbindungsanforderung aufgeteilt werden kann,
kann von einem Benutzer eingegeben werden, oder die Routen-Sucheinrichtung kann
selbst die Anzahl von Routen entscheiden, über die die Verbindungsanforderung
bis zu einer von Benutzer festgelegten oberen Begrenzung aufzuteilen
ist. Der prozentuale Anteil der Bandbreiten-Kapazität einer Verbindungsanforderung,
die über
die Anzahl von ausgewählten
Routen aufzuteilen ist, kann ebenfalls von dem Benutzer gewählt werden.
Wenn beispielsweise die Bandbreiten-Kapazität der Verbindungsanforderung über eine
erste und eine zweite Route aufzuteilen ist, so können 30%
der Bandbreiten-Kapazität
der Verbindungsanforderung über
die erste Route übertragen
werden, und 70% der Bandbreiten-Kapazität der Verbindungsanforderung
können über die
zweite Route übertragen
werden.
-
Eine
einzelne Verbindung kann über
mehrere Pfade über
das Netzwerk hinweg verteilt werden. Der Verkehr zwischen dem Quellen-Knoten
n_1 und dem Ziel-Knoten
n_7 als Antwort auf eine Diensteanforderung kann über eine
ganzzahlige Anzahl von mehrfachen Pfaden übertragen werden. Beispielsweise
kann eine erste Route die Knoten n_2 und n_6 durchqueren und 70%
der Daten des Dienstes übertragen.
Die verbleibenden 30% der Daten des Dienstes können über die Knoten n_3 und n_5
geführt
werden. Die Verteilung der Routen kann von dem Benutzer spezifiziert
werden, oder sie kann alternativ durch genetische Algorithmen optimiert werden.
Eine Vorgabebedingung, bei der eine einzige Route den gesamten Verkehr überträgt, der
sich auf eine Quellen-Ziel-Diensteanforderung bezieht, kann von
einem Benutzer eingestellt werden.
-
9 der
beigefügten
Zeichnungen stellt die graphischen Netzwerk-Knoten und Verbindungsstrecken nach 8 dar,
wobei jedoch die Netzwerk-Verbindungsstrecken
mehrfache Kosten haben, die durch Zahlenwerte bezeichnet sind, die
durch eine (/) getrennt sind. Die mehrfachen Kosten können unterschiedlichen
Verkehrstypen, beispielsweise Sprache oder Daten zugeordnet werden.
Die Routen-Sucheinrichtung kann dann Pfade für Verbindungen unter Berücksichtigung
des Verkehrstyps auswählen,
der von der Verbindung verwendet wird.
-
Ein
Punkt-zu-Mehrpunkt-Verkehr kann nicht durch die Routenführung des
kürzesten
Pfades behandelt werden. Bei den speziellen hier beschriebenen Verfahren
kann die Routen-Suchkomponente 207 Punkt-zu-Mehrpunkt-Verkehr
so abwickeln, wie dies in der beiliegenden 9 gezeigt
ist, und zwar wie folgt: für
Verkehr, der von dem Knoten n_1 ausgeht und an mehrfachen Ziel-Knoten
n_8 und n_7 endet, können
die Routen n_1, n_2, n_6, n_8 und die Routen n_1, n_3, n_5, n_7
ausgewählt
werden, oder es können
n_1, n_2, n_6, n_7 und die Route n_1, n_2, n_6, n_8 ausgewählt werden.
Andere Kombinationen sind selbst in dem einfachen unter Bezugnahme
auf 9 erläuterten
Beispiel möglich.
Weiterhin kann für
Punkt-zu-Punkt- oder Punkt-zu-Mehrpunkt-Dienste die Routenführung entsprechend
des Typs der Verkehrsdaten ausgewählt werden.
-
Ein
Benutzer kann mit der Routen-Suchkomponente 207 über die
Verwendung der graphischen Benutzer-Schnittstelle 211 in
Wechselwirkung treten, um Daten, die bereits von einer Netzwerk-Anwendung
eingegeben wurden, zu Editieren und zu Ändern, oder um Daten direkt
einzugeben. Die Daten-Editierung und Eingabe wird durch Manipulation
eines Cursor-Piktogramms unter Verwendung eines Computer-Peripherie-Zeigergerätes, beispielsweise
einer Maus, eines Trackball-Gerätes
oder ähnlicher
Geräte über eine
Serie von Bildschirm-Darstellungen erzielt werden, von denen einige
nachfolgend beschrieben werden.
-
10 der
beigefügten
Zeichnungen erläutert
eine Netzwerkdaten-Editor-Bildschirmanzeige,
die ein Benutzer verwenden kann, um Netzwerk-Topologiedaten zu erzeugen
oder zu editieren. Der Netzwerkdaten-Editor, der Teil der GUI 211 ist,
kann zur Erzeugung von Netzwerkdaten für die Routen-Suchmaschine 209 als
eine Alternative dazu verwendet werden, dass der Netzwerkdaten-Vorprozessor 401 Netzwerk-Topologiedaten 408 empfängt und
sie in eine SAP-Datei umwandelt. Knoten 1001 erscheinen
auf dem Anzeigefenster eines Bildschirmes als Piktogramme und werden
mit Etiketten 1002 versehen. Verbindungsstrecken zwischen Knoten
können
ebenfalls gezeichnet werden und sind durch Linien 1003 dargestellt.
Die Anzeige schließt
einen horizontalen Rollbalken 1005 und einen vertikalen
Rollbalken 1004 ein, die der Benutzer verwenden kann, um
eine Netzwerk-Topologie mit einer größeren Fläche zu zeichnen, als die, die
derzeit in dem Anzeigefenster gezeigt ist. Die Netzwerk-Topologiedaten,
die gezeichnet werden, werden unter Verwendung eines Dateinamens 1006 gespeichert.
Die Datei wird vorzugsweise als eine Datei gespeichert, die mit
dem SAP-Format überein
stimmt.
-
11 der
beigefügten
Zeichnungen zeigt eine Verbindungsstrecken-Daten-Editor-Bildschirmanzeige, die ein Benutzer
verwenden kann, um Daten zu editieren, die Netzwerk-Verbindungsstrecken-
beschreiben. Der Verbindungsstrecken-Daten-Editor-Teil der GUI 211 kann
zur Erzeugung von Netzwerkdaten für die Routen-Suchmaschine 209 als
Alternative dazu verwendet werden, dass der Netzwerkdaten-Vorprozessor 401 Netzwerk-Topologiedaten 408 empfängt und
sie in eine SAP-Datei umwandelt. Die Bildschirmanzeige umfasst ein
Dialog-Feld, das einen Namen einer Verbindungsstrecke zeigt, das
heißt
die zwei Endpunkte der Verbindungsstrecke (jeder Endpunkt hat ein
Knoten-Etikett und eine Port-Nummer). Die Anzeige umfasst weiterhin
zwei Piktogramme 1102, die dazu verwendet werden können, anzugeben,
ob die Verbindungsstrecke für Vollduplex-
oder Halbduplex-Verkehr
(das heißt
bidirektional beziehungsweise unidirektional) ist. Eine Bandbreiten-Kapazität der Verbindungsstrecke
kann ebenfalls durch Auswahl eines numerischen Wertes editiert werden,
der in einer Rollbalken-Menüanzeige 1103 dargestellt
wird. Mit einer Verbindungsstrecke verbundene Kosten können ebenfalls
eingegeben und editiert werden, beispielsweise können die Kosten für Sprachdaten für die Verbindungsstrecke
dadurch editiert werden, dass ein numerischer Wert 1104 in
einem Kosten-Daten-Eingabeteil des Anzeigefensters 1104 eingegeben
wird. In gleicherweise gilt dies für Datenverkehr 1105.
-
12 der
beigefügten
Zeichnungen zeigt ein Beispiel einer Textdatei, die ein SAP-Format
hat, und die in die Routen-Suchmaschine von dem Netzwerkdaten-Vorprozessor 403 eingegeben
werden kann oder die sich von dem Netzwerk-Topologie-Daten-Editor ergibt, der in 10 gezeigt
ist, oder von dem Verbindungsstrecken-Daten-Editor, der in 11 gezeigt
ist. Eine Datei im SAP-Format
kann eine Vielzahl von Zeilen umfassen, die ASCII-Zeichen enthalten,
wobei jede Zeile durch ein ASCII-Zeilenumbruch-Zeichen beendet ist. Für die Eingabe
in die Routen-Sucheinrichtung umfasst die SAP-Datei eine Vielzahl
von Abschnitten, wobei jeder Abschnitt eine Kopfzeile gefolgt von
einer oder mehreren Datenbeschreibungs-Zeilen aufweist.
-
Netzwerk-Knoten
werden in einem Knoten-Abschnitt beschrieben. Eine Kopfzeile 1201 für eine Knoten-Abschnitt
umfasst folgendes:
-
[Knoten]
-
Eine
Knotenbeschreibungs-Zeile 1202 umfasst einen Knoten-Etikett,
das als eine Identifikation für
den Knoten dient, XY-Koordinaten, die einem Koordinatengitter eines
Knotens entsprechen, und einen numerischen Wert, der die Kapazität angibt.
Ein Beispiel einer Knotenbeschreibungs-Zeile umfasst folgendes:
n_1
{0 3 1}
-
Dies
bezeichnet eine Knoten n_1 an den XY-Koordinaten 0,3 mit einer Kapazität von 1.
-
Ein
Verbindungsstrecken-Abschnitt, der Netzwerk-Verbindungsstrecken
aufweist, hat eine Kopfzeile 1203 die folgendes umfasst:
-
[Verbindungsstrecken]
-
Eine
Verbindungsstrecken-Beschreibungszeile 1204 definiert eine
einzige Verbindungsstrecke zwischen einem Paar von Knoten. Eine
Verbindungsstrecken-Beschreibungszeile
kann zwei Endpunkte (wobei jeder Endpunkt durch ein Knoten-Etikett und eine
Zahl beschrieben ist, die einen Knoten-Port darstellt), einen Wert,
der die Gesamtkapazität
der Verbindungsstrecke bezeichnet und eine Identifikation umfassen,
die anzeigt, ob die Verbindungsstrecke eine Simplex- oder Duplex-Verbindungsstrecke
ist (das heißt
ob Verkehr auf der Verbindungsstrecke uni- oder bidirektional sein
kann). Ein Beispiel einer Verbindungsstrecken-Beschreibung umfasst
folgendes:
{n_1 1} {n_2 1} 622 NetworkLinkDuplex
-
Dies
bezeichnet eine Verbindungsstrecke von Port 1 des Knotens n_1 mit
einem Knoten-Port 1 und einen Knoten 1 des Knotens n_2 mit einer
Kapazität
von 622, wobei dies eine Duplex-Einheit ist.
-
Daten,
die eine Menge an Kapazität
einer Verbindungsstrecke beschreiben, die bereits in Gebrauch ist,
werden in einem Verbindungsstrecken-Zustands-Abschnitt angegeben.
Eine Kopfzeile 1205 für
einen Verbindungsstrecken-Zustands-Abschnitt umfasst:
-
[Verbindungszustand]
-
Eine
Beschreibungszeile die die Verbindungsstrecken-Zustands-Kapazitätsnutzung 1206 beschreibt, kann
zwei Endpunkte und einen numerischen Wert umfassen, der die verwendete
Verbindungsstrecken-Kapazität
bezeichnet, beispielsweise:
{n_1 1} {n_2 1} 402
-
Dieses
Beispiel stellt eine Verbindungsstrecke zwischen dem Port 1 eines
Knotens n_1 und einem Port 1 eines Knotens n_2 mit 402 Einheiten
an Kapazität
dar, die bereits zugeteilt wurden. Die Routen-Suchmaschine legt
keine Messeinheit auf die Zahl von 402 Einheiten. Somit
können,
solange die Kapazität
und die Last-Nutzung in den gleichen Einheiten gemessen werden,
die numerischen Werte, die die Kapazität und Last bezeichnen, beide
an die generische Routen-Suchmaschine 209 gesandt werden.
-
Daten,
die die derzeitige Nutzung einer Knoten-Kapazität angeben, werden in einem
Knotenzustands-Abschnitt angegeben. Eine Kopfzeile 1207 eines
Knotenzustands-Abschnittes
umfasst folgendes:
-
[Knotenzustand]
-
Eine
Knotenzustands-Beschreibungszeile 1208 kann ein Knoten-Etikett
(das bereits in einem Knoten-Beschreibungsabschnitt definiert sein
sollte, wobei irgendwelche Zeilen, die nicht definierte Knoten-Etiketten
enthalten, ignoriert werden) und einen Wert umfassen, der die derzeitige
Kapazitätsnutzung
des Knoten bezeichnet, beispielsweise:
n_1 1
-
In
diesem Beispiel hat der Knoten n_1 eine derzeit zugeteilte Kapazität von 1.
Es wird keine Messeinheit der Datei durch die generische Routen-Suchmaschine
zugeteilt, weil die Routen-Such-Verwaltung 208 alle Daten
an die generische Routen-Suchmaschine in den gleichen Einheiten
sendet.
-
Daten,
die die Zuverlässigkeit
einer Verbindungsstrecke beschreiben, sind in einem Verbindungsstrecken-Zuverlässigkeits-Abschnitt
angegeben. Eine Kopfzeile 1209 für einen Verbindungsstrecken-Zuverlässigkeits-Abschnitt
umfasst folgendes:
-
[Verbindungsstrecken-Zuverlässigkeit]
-
Eine
Verbindungsstrecken-Zuverlässigkeits-Beschreibungs-Zeile 1210,
die die Zuverlässigkeit
einer einzigen Verbindungsstrecke definiert, kann zwei Endpunkte
(die jeweils ein Knoten-Etikett und eine Port-Nummer haben) und
eine reelle Zahl umfassen, die einen Wert zwischen 0 und 1,0 hat
(wobei 1,0 eine Verbindungsstrecken-Zuverlässigkeit von 100% bezeichnet)
beispielsweise:
{n_1 1} {n_2 1} 0.999
-
Dieses
Beispiel stellt eine Verbindungsstrecke zwischen dem Port 1 des
Knoten n_1 und dem Port 1 des Knotens n_2 dar, der einen Verbindungsstrecken-Zuverlässigkeits-Faktor
von 0.999 hat.
-
Daten,
die die Zuverlässigkeit
eines Knoten beschreiben, sind in einem Knoten-Zuverlässigkeits-Abschnitt angegeben.
Eine Kopfzeile 1211 für
einen Knoten-Zuverlässigkeits-Abschnitt
umfasst folgendes:
-
[Knoten-Zuverlässigkeit]
-
Eine
Beschreibungs-Zeile 1212, die die Zuverlässigkeit
eines einzigen Knoten definiert, umfasst ein Knoten-Etikett und
eine reelle Zahl, die einen Wert zwischen 0 und 1,0 hat (wobei 1,0
eine Knoten-Zuverlässigkeit
von 100% bezeichnet):
n_1 0995
-
Dies
bezeichnet einen Knoten n_1 mit einem Zuverlässigkeitsfaktor von 0.995.
-
Daten,
die die den Verbindungsstrecken zugeordneten Kosten beschreiben,
sind in einem Kosten-Abschnitt angegeben. Eine Kopfzeile 1213 für einen
Kosten-Abschnitt umfasst folgendes:
-
[Kosten]
-
Eine
Beschreibungs-Zeile 1214, die die Kosten einer einzigen
Verbindungsstrecke definiert, umfasst zwei Endpunkte (wobei jeder
Endpunkt ein Knoten-Etikett und eine Port-Nummer hat) und einen
oder mehrere Datentypen mit einem numerischen Wert, der die Kosten
darstellt, beispielsweise:
{n_ 1 2} {n_2 3} {Daten 1} {Sprache
2}
-
Dieses
Beispiel beschreibt eine Verbindungsstrecke zwischen den Port 2
des Knotens n_1 und dem Port 3n_2, der einen Kosten-Wert von 1 für einen
Daten-Dienst-Verkehr
und einen Wert von 2 für Sprach-Dienst-Verkehr
hat. Dies heißt,
dass die Verbindungsstrecke niedrigere Kosten für Datenverkehr als für Sprachverkehr
hat. Die Messung der Kosten hat keine Einheit. Der Kosten-Wert wird
durch die generische Routen-Suchmaschine verwendet, um die kürzesten
Pfade zu finden, aus denen einen abschließende Auswahl der Pfade getroffen
wird, und er wird bei der Berechnung von minimalen Spannbäumen verwendet.
-
13 der
beigefügten
Zeichnung zeigt eine Bildschirmdarstellung, die zur Erzeugung von
Diensteanforderungen verwendet werden kann. Die Bildschirmdarstellung
wird durch einen Diensteanforderungs-Generator erzeugt, der Teil
der GUI 211 ist, die zur Erzeugung von Diensteanforderungen
für die
Routen-Suchmaschine 401 als
eine Alternative dazu verwendet werden kann, dass der Diensteanforderungs-Vorprozessor 400 Diensteanforderungen
von einer externen Anwendung empfängt und sie in eine SAP-Datei
umwandelt. Die Bildschirmdarstellung umfasst eine zweidimensionale
Tabelle, in der vertikale Einträge 1301 Quellen-Knoten und
horizontale Einträge 1302 Ziel-Knoten
von Verbindungen darstellen. Einträge 1303 in der Tabelle
stellen Diensteanforderungs-Nummern
für Verbindungen
zwischen den Quellen- und Ziel-Knoten des Eintrages dar. Die Darstellung
schließt
weiterhin einen Wähler 1304 ein,
der zur Auswahl des Typs des Verkehrs, beispielsweise Sprache oder
Daten, verwendet wird, die von den Diensteanforderungen benötigt werden.
-
14 der
beigefügten
Zeichnungen zeigt eine Bildschirmdarstellung, die zur Betrachtung
oder Schaffung von Routen für
Punkt-zu-Mehrpunkt-Verbindungen verwendet werden kann. Die Bildschirmdarstellung
kann mit Hilfe der GUI 211 erzeugt werden. Die Bildschirmdarstellung
umfasst ein Bildlauffeld 1401, das zur Auswahl eines Quellen-Knotens
für die
Verbindung verwendet werden kann. Die Bildschirmdarstellung umfasst
weiterhin ein Feld 1402 für ein akzeptiertes Ziel, das
eine Anrufausführungs-Liste 1404,
eine editierte Liste 1405, ein Piktogramm 1406 für einen
rechten Pfeil, ein Piktogramm 1407 für einen linken Pfeil, einen
Anwendungs-Knopf 1408 und einen Aufheben-Knopf 1409 umfasst.
Die Ausführungs-Liste 1404 kann
ein Bildlauffeld umfassen, das eine Liste von allen oder einigen
der Netzwerk-Knoten enthält,
die als Ziel-Knoten in einer Punkt-zu-Mehrpunkt-Verbindung ausgewählt werden
können.
Die Auswahl eines Knotens aus der Liste 1404, beispielsweise
dadurch, dass sie mit einem Maus-Zeiger angeklickt wird, und das
nachfolgende Anklicken des Piktogramms 1406 für den rechten
Pfeil, kann den ausgewählten
Knoten in die editierte Liste 1405 eingeben. Knoten, die
in einem Bildlauffeld erscheinen, das die editierte Liste 1405 bildet,
können
durch Anklicken mit dem Maus-Zeiger ausgewählt werden. Das Anklicken des
Piktogrammes 1407 für
den linken Pfeil nach dem Auswählen
eines oder mehrerer Knoten aus der editierten Liste 1405 kann
dazu führen,
dass der ausgewählte
Knoten aus der editierten Liste entfernt wird. Die Auswahl des Anwendungs-Knopfes 1408 kann zum
Anwenden des ausgewählten
Ziel-Knotens auf eine bestimmte Punkt-zu-Mehrpunkt-Verbindung führen. Die
Auswahl des Aufhebungs-Knopfes 1409 kann
irgendwelche Operationen verwerfen, die an Elementen des Feldes 1402 für akzeptierte
Ziele ausgeführt
wurden.
-
Die
Bildschirmdarstellung umfasst weiterhin ein Verkehrsauwahl-Feld 1403,
das zur Eingabe eines numerischen Wertes verwendet werden kann,
der die erforderliche Bandbreite einer Punkt-zu-Mehrpunkt-Verbindung
bezeichnet. Die Bildschirmdarstellung umfasst weiterhin ein Verkehrstyp-Auswahl-Bildlauffeld 1410,
das zur Auswahl eines Typs von Verkehr verwendet werden kann, der
bei einer bestimmten Verbindung verwendet werden soll, wobei die
Typen Sprache, Daten, Vorgabewerte oder Video umfassen können. Die
Bildschirmdarstellung umfasst weiterhin ein Mehrpunkt-Anforderungs-Bildlauffeld 1411,
das dazu verwendet werden kann, Verbindungen anzuzeigen, die unter
Verwendung der Quellen- und Ziel-Felder 1401, 1402 ausgewählt wurden.
Das Mehrpunkt-Anforderungsfeld 1411 kann eine Verbindung
anzeigen, die einen unter Verwendung des Quellen-Feldes 1401 ausgewählten Quellen-Knoten
und Ziel-Knoten umfasst, die unter Verwendung der Listen in dem
Feld 1402 für
akzeptierte Ziele ausgewählt
und unter Verwendung des Anwendungs-Knopfes 1408 bestätigt wurden.
Die Bildschirmdarstellung umfasst weiterhin ein Schließen-Knopf 1412,
der zum Verlassen der Bildschirmdarstellung verwendet werden kann.
-
15 der
beigefügten
Zeichnungen zeigt eine Bildschirmdarstellung, die zum Erzeugen oder
zum Editieren von Daten verwendet werden kann, die Zwangsbedingungen
für Routen
darstellen, die für
bestimmte Diensteanforderungen gefunden wurden. Die Bildschirmdarstellung
wird durch den Zwangsbedingungs-Daten-Erzeugungsteil
der GUI 211 erzeugt, der als eine Alternative für den Verkehrsdaten-Vorprozessor 400 verwendet
werden kann, der Diensteanforderungen von einer externen Anwendung
unter Einschluss von Routen-Zwangsbedingungen
empfängt
und diese in eine SAP-Datei umwandelt. Die Bildschirmdarstellung
umfasst einen Dialog, der ein Bildlauffeld 1501 umfasst,
das zur Auswahl eines Quellen-Knotens verwendet werden kann. Die
Darstellung umfasst weiterhin einen Bildlauffeld 1502,
das zur Auswahl des Ziel-Knotens oder der Ziel-Knoten verwendet
werden kann. Die Darstellung umfasst weiterhin ein Bildlauffeld 1503,
das zur Auswahl des Verkehrs-Typs zwischen den ausgewählten Quellen-
und Ziel-Knoten verwendet wird, deren Zwangsbedingungen festzulegen
sind. Die Darstellung umfasst zwei Auswahlfelder 1505,
die dazu verwendet werden, auszuwählen, ob Knoten oder Verbindungsstrecken
ausgewählt
werden sollen. Zwei Knöpfe 1504 werden
weiterhin zur Auswahl dafür
verwendet, ob die ausgewählten
Knoten oder Verbindungsstrecken von der Route ausgeschlossen oder
in diese eingeschlossen werden. Eine Liste von Knoten oder Verbindungsstrecken 1506 ist
ebenfalls in der Darstellung gezeigt, in Abhängigkeit davon, ob Knoten oder
Verbindungsstrecken unter Verwendung der Auswahlfelder 1505 ausgewählt wurden.
Knoten oder Verbindungsstrecken können aus der Liste 1506 ausgewählt werden,
um Zwangsbedingungen zu erzeugen, die für Routen eingefügt oder
ausgeschlossen werden, die sich zwischen den ausgewählten Quellen-
und Ziel-Knoten befinden, die unter Verwendung der Bildlauffelder 1501 beziehungsweise 1502 ausgewählt wurden.
-
16 der
beigefügten
Zeichnungen zeigt ein Beispiel einer Textdatei, die ein SAP-Format
hat, die in die Routen-Suchmaschine von einer externen Anwendung über den
Diensteanforderungs-Vorprozessor 400 oder die Verkehrsdaten-Editoren
nach den 13 und 14 eingegeben
werden kann. Das in 16 gezeigte Beispiel zeigt Abschnitte,
die Daten definieren, die sich auf Netzwerk-Verkehr beziehen. Die
SAP-Datei umfasst eine Anzahl von Abschnitten, wobei jeder Abschnitt
eine Kopfzeile und eine oder mehrere Beschreibungszeilen hat.
-
Diensteanforderungen,
die einen Quellen-Knoten und einen Ziel-Knoten aufweisen (die als Punkt-zu-Punkt-Diensteanforderungen
bezeichnet werden) sind in einem Verkehrsabschnitt beschrieben.
Eine Kopfzeile 1501 für
einen Verkehrsabschnitt umfasst:
-
[Verkehr]
-
Eine
Beschreibungszeile 1602 für eine Punkt-zu-Punkt-Diensteanforderung
umfasst eine numerische Identifikation für die Diensteanforderung, ein
Quellen-Knoten-Etikett,
ein Ziel-Knoten-Etikett, einen numerischen Wert, der die für den Dienst
erforderliche Kapazität
bezeichnet, eine Verkehrstyp-Identifikation und einen numerischen
Wert, der die Anzahl von Routen bezeichnet, auf die der Gesamtkapazitätsbedarf
aufzuteilen ist, sowie einen Aufteilungsmechanismus. Der Aufteilungsmechanismus
kann ein Symbol * sein, das anzeigt, das die Routen-Suchmaschine einen
prozentualen aufgeteilten Teil von Verkehr über die angezeigte Anzahl von
Routen bestimmt, statt dass diese Aufteilung in der Diensteausrüstung bestimmt
wird. Ein Beispiel einer Beschreibungszeile für eine Verbindungsanforderung
ist wie folgt:
983 n_1 n_8 165 Daten {5*}
-
Dieses
Beispiel gibt an, dass eine Diensteanforderung, die als Diensteanforderung
Nummer 983 identifiziert ist, eine Punkt-zu-Punkt-Anforderung für eine Diensteverbindung
zwischen dem Knoten n_1 und dem Knoten n_8 mit einem Verbrauch von
165 Einheiten an Bandbreite umfasst, die 5 Knoten verwenden soll.
Das Symbol bezeichnet, dass die prozentualen Anteile der Daten,
die jede der 5 Routen durchqueren, durch die generische Routen-Suchmaschine
bestimmt werden sollen.
-
Alternativ
schließt
die Punkt-zu-Punkt-Diensteanforderungs-Beschreibungszeile numerische
Werte anstelle des Symbols * ein, die die prozentuale Aufteilung
bezeichnen, beispielsweise die Aufteilung der Kapazität gleichförmig (50%
zu 50%) über
zwei Routen. Beispielsweise:
984 n_2 n_3 210 Sprache {2 50
50}
-
In
diesem Beispiel überträgt die Diensteanforderung,
die als Nummer 984 zwischen den Knoten n_2 und n_3 mit einem Kapazitätsverbrauch
von 210 Einheiten identifiziert ist, Sprach-Datenverkehr über zwei Routen,
die gleichmäßig mit
50% über
jede Route aufgeteilt sind.
-
Daten,
die Diensteanforderungen mit einem Quellen-Knoten und zwei oder
mehr Ziel-Knoten beschreiben (die als Punkt-zu-Mehrpunkt-Diensteanforderungen
bezeichnet werden) werden in einem Mehr-Punkt-Abschnitt beschrieben.
Eine Kopfzeile für
einen Mehrpunkt-Abschnitt 1604 umfasst:
-
[Mehrpunkt]
-
Eine
Beschreibungszeile 1605, die eine Punkt-zu-Mehrpunkt-Diensteanforderung
definiert, kann eine numerische Diensteanforderungs-Identifikation,
ein Quellen-Knoten-Etikett
eine Vielzahl von Ziel-Knoten-Etiketten und einen numerischen Wert
umfassen, der die Kapazität
bezeichnet, die von der Diensteanforderung benötigt wird. Beispielsweise:
985
n_1 {n_2 n_3} 160 Daten
-
Dieses
Beispiel identifiziert eine Diensteanforderungs-Identifikation 985,
die eine Mehrpunkt-Verbindung zwischen dem Knoten n_1 und dem Knoten
n_2 und n_3 mit einem Bitraten-Verbrauch von 160 Dateneinheiten
ist und Verkehr vom Datentyp überträgt.
-
Daten,
die Zwangsbedingungen für
eine Diensteanforderung beschreiben, das heißt Knoten und/oder Verbindungsstrecken,
die in einer für
die Diensteanforderung gefundenen Route enthalten oder aus dieser ausgeschlossen
sein sollten, werden in einem Zwangsbedingungs-Abschnitt beschrieben.
Eine Kopfzeile 1606 für
einen Zwangsbedingungs-Abschnitt umfasst:
-
[Zwangsbedingungen]
-
Eine
Beschreibungszeile 1607, die Verbindungsstrecken definiert,
die in eine Route für
eine bestimmte Diensteanforderung eingefügt werden sollten, umfasst
einen numerischen Wert, der einer definierten Diensteanforderung
entspricht (Punkt-zu-Punkt
oder Punkt-zu-Mehrpunkt), das Wort „Einfügen", dass Wort „Verbindungsstrecke" und eine Liste von
einer oder mehreren Verbindungsstrecken, wobei jede aufgeführte Verbindungsstrecke
zwei Endpunkte umfasst (wobei jeder Endpunkt ein Paar von Knoten-Etiketten
und Ports umfasst), beispielsweise:
983 {Verbindungsstrecken-Einschluss
{{{n_1 1}{n_2 1}{n_2 2}{n_3 2}}}
-
Dieses
Beispiel bezeichnet eine Diensteanforderung, die als Nummer 983
identifiziert ist und Verbindungsstrecken zwischen dem Port 1 des
Knoten n_1 und dem Port des Knotens n_2 sowie dem Port 2 des Knotens
n_2 und dem Port des Knotens n_3 einschließt.
-
In ähnlicher
Weise könnte
durch die vorstehenden Zwangsbedingungen eine Route oder Routen
ausgeschlossen werden, die für
die Diensteanforderung gefunden wurden, indem das Wort „Einschluss" durch „Ausschluss" ersetzt wird.
-
Eine
Beschreibungszeile 1608, die die aus einer Route oder aus
Routen, die für
eine bestimmte Diensteanforderung gefunden wurden, auszuschließenden Knoten
definiert, umfasst eine numerische Diensteanforderungs-Identifikation,
dass Wort „Ausschluss", dass Wort „Knoten" und eine Liste von
Knoten-Etiketten, beispielsweise:
983 {Knoten-Ausschluss {n_2
n_6}}
-
Hierdurch
werden die Knoten n_2 und n_6 aus Routen ausgeschlossen, die Diensteanforderungen übertragen,
die durch die Identifikation 983 identifiziert sind.
-
In ähnlicher
Weise könnten
die vorstehenden Knoten für
die Route oder die Routen, die für
die Diensteanforderung gefunden wurden, durch Ersetzen des Wortes „Ausschluss" durch „Einschluss" eingeschlossen werden.
-
17 der
beigefügten
Zeichnungen erläutert
ein Beispiel einer SAP-Format-Datei.
Das in 17 gezeigte Beispiel einer Datei
schließt
Abschnitte ein, die auf die Auswertungs-Funktion bezogene Parameter
definieren. Daten, die Parameter beschreiben, die die genetischen
Algorithmen der Routen-Suchmaschine berücksichtigen können, wenn
Routen für
Diensteanforderungen bestimmt werden, werden in einem Problem-Parameter-Abschnitt
beschrieben. Eine Kopfzeile 1701 für einen Problem-Parameter-Abschnitt
umfasst:
-
[Problem-Parameter]
-
Routenführungs-Zieldaten 409,
die die Routen-Suchmaschine berücksichtigt,
wenn Routen für
Diensteanforderungen gesucht werden, kann eine Bewertung gegeben
werden, um zu bestimmen, welche Routenauswahl unter bestimmten Umständen durchzuführen ist.
Wenn beispielsweise die Verwendung einer kürzestmöglichen Route für jede Verbindung
doppelt so wichtig sein würde,
wie der Ausgleich der Nutzung von Knoten und Verbindungsstrecken über das
Netzwerk hinweg, so könnten
die Beschreibungszeilen 1702 bis 1703 für einen
Problem-Parameter-Abschnitt
folgendes einschließen:
Pfadlängen-Wertigkeit
= 10
Ausgleichs-Wertigkeit = 5
-
Daten,
die verschiedene Parameter einstellen, die von den genetischen Algorithmen
der Routen-Suchmaschine verwendet werden, können in einem GA-Parameter-Abschnitt angegeben
werden. Eine Kopfzeile 1704 für einen GA-Parameter-Abschnitt umfasst
folgendes:
-
[GA-Parameter]
-
Die
Beschreibungszeilen des GA-Parameter-Abschnittes umfassen Parameter
und deren Werte, beispielsweise eine Anzahl von Wiederholungen für den Ablauf
der genetischen Algorithmen in der Routen-Suchmaschine für Eingangsdaten,
wobei dies durch folgendes Eingestellt werden kann:
Schritte
= 1000
-
In
der Praxis können
die in den 12, 16 und 17 der
beigefügten
Diagramme gezeigten SAP-Dateien in eine SAP-Datei eingefügt und in
die Routen-Suchmaschine 401 eingegeben
werden.
-
18 der
beigefügten
Zeichnungen zeigt Schritte, die während des Schrittes 504 nach 5 ausgeführt werden,
der die genetischen Algorithmen der Routen-Suchmaschine anwendet, um Routen für die eingegebenen
Diensteanforderungen zu finden.
-
Im
Schritt 1801 werden die Parameter und Befehle in die Routen-Suchmaschine
eingegeben. Die Parameter die eingegeben werden können, umfassen
Variablen, die zur Steuerung der genetischen Algorithmen der Routen-Suchmaschine
verwendet werden können.
Den Variablen können
Werte dadurch gegeben werden, dass ein „Satz" verwendet wird, der einen Befehl der
folgenden Form ausweist:
Satz<variablen-Name><Wert>
worin <Variablen-Name> der Name einer unterstützten Routen-Suchmaschinen-Variablen
ist, und <Wert> ein der Variablen
zuzuordnender Wert ist.
-
Die
von der GA-Messungs-Maschine unterstützte Variablen umfassen folgendes:
-
Wie
dies anhand der vorliegenden 5 erläutert wurde,
schließen
die Befehle, die in die Routen-Suchmaschine eingegeben werden können, eine „Befehls" Anweisung ein. Die
Befehls-Anweisungen werden von dem Maschinen-Steuerprozess 600 der generischen
Routen-Suchmaschine 209 zum Laden oder Speichern von Dateien,
zum Starten eines Optimierungs-Prozesses oder zur Beendigung des
Betriebs der generischen Routen-Suchmaschine interpretiert. Eine
Befehls-Anweisung hat eine Anzahl von unterschiedlichen Formen,
unter Einschluss von:
- • Befehl-Ende – dies bewirkt,
dass die Routen-Suchmaschine normal beendet wird
- • Befehl-Rücksetzen – bewirkt
die Erzeugung einer zufälligen
anfänglichen
Population
- • Befehl-Ablauf – beginnt
die Suche nach Routen für
eingegebene Diensteanforderungen
- • Befehl-Laden/Speichern – ermöglicht es,
dass Routen-Suchmaschinen-Daten
von einem externen Speicher, wie zum Beispiel einem Plattenlaufwerk
geladen oder auf diesem gespeichert werden. Routen-Suchmaschinen-Daten,
die gespeichert oder geladen werden können, schließen die
Parameter-Variablen und Werte ein, die vorstehend beschrieben wurden,
sowie Routen, die von der Routen-Suchmaschine
gefunden wurden.
-
Eine
Batch- oder Stapel-Datei, die „Setzen-" und „Befehls-" Anweisungen umfasst,
kann unter Verwendung eines Dateinamens geschaffen und gespeichert
werden. Eine derartige Batch-Datei kann von der Routen-Suchmaschine
durch einen Befehl ausgeführt
werden:
<Dateiname> ausführen.
-
Im
Schritt 1802 nach 18 wird
eine Verkehrs-Routenführungs-Darstellung
erzeugt. Eine Darstellung von Routen, die von der Routen-Suchmaschine
für eine
Punkt-zu-Mehrpunkt-Verbindung für
eine Diensteanforderung gefunden wurde, umfasst eine Folge von aneinander
angrenzenden Bits.
-
19 der
beigefügten
Zeichnungen zeigt einen Graphen 1901 der Knoten (die mit
n_1 bis n_8 bezeichnet sind) und der Verbindungsstrecken. Für den Graphen 1901 wird
eine Punkt-zu-Mehrpunkt-Verbindungsanforderung empfangen, die den
Quellen-Knoten n_1 und die Ziel-Knoten n_2, n_3 und n_7 spezifiziert. Diese
Quellen- und Ziel-Knoten sind in der graphischen Darstellung schwarz
gezeigt. In der Punkt-zu-Mehrpunkt-Verbindungsanforderung nicht
enthaltene Knoten schließen
die Knoten n_4, n_5, n_6 und n_8 ein, wobei diese Knoten in dem
Graphen 1901 als weiß oder
schraffiert gezeigt sind. Um eine Verkehrs-Routenführungs-Darstellung zu erzeugen,
erfordert jeder Knoten, der nicht in der Punkt-zu-Mehrpunkt-Verbindungsanforderung
enthalten ist, ein Bit an Datenspeicherung. Dies bedeutet, dass
für den
Graphen 1901 und die Punkt-zu-Mehrpunkt-Verbindungsanforderung 4 Bits
erforderlich sind, um Daten über
die Knoten n_4, n_5, n_6 und n_8 in der Reihenfolge zu speichern.
In einer zweidimensionalen Darstellung einer Vielzahl von Knoten,
die durch eine Vielzahl von Verbindungsstrecken verbunden sind,
kann ein einziger Quellen-Knoten mit einer Vielzahl von Ziel-Knoten über eine
Vielzahl von Verbindungsstrecken verbunden werden. Ein Muster von Verbindungsstrecken
kann eine Baumstruktur bilden, wobei Knoten in dem Baum Stellen
bilden, an denen Zweige des Baumes abgehen. Ein Steiner-Baum ist
ein kleinster Baum, der alle Knoten eines bestimmten Satzes von
Knoten verbindet. Unter einem kleinsten Baum wird ein Baum mit einer
minimalen Anzahl von Verbindungsstrecken verstanden. Die Bits, die
Knoten entsprechen, die nicht in der Punkt-zu-Mehrpunkt- Verbindungsanforderung
enthalten sind, werden auf Null gesetzt, wenn sie einen Teil eines
Steiner-Baumes für
die Quellen- und Ziel-Knoten bilden, die in der Punkt-zu-Mehrpunkt-Verbindungsanforderung
enthalten sind, die als Steiner-Vertizes oder Steiner-Scheitelpunkte
bezeichnet werden. Die Bits werden auf Null gesetzt, wenn sie keine
Steiner-Vertizes sind. Für
einen vorgegebenen Satz von Steiner-Vertizes kann ein Steiner-Baum
unter Verwendung eines bekannten minimalen Spannbaum-Algorithmus erzeugt
werden, wie zum Beispiel dem Prim-Kruskal-Algorithmus. Der minimale
Spannbaum Algorithmus verbindet den Quellen-Knoten, die Ziel-Knoten
und die Steiner-Vertizes miteinander. In dem Graphen 1901 ist
lediglich der Knoten n_6 (der in 19 schraffiert
gezeigt ist) ein Steiner-Vertex für die Punkt-zu-Mehrpunkt-Verbindungsanforderung
n_1 zu n_2, n_3, n_7. Eine Bitfolge, die darstellt, ob Knoten, die
nicht in der Punkt-zu-Mehrpunkt-Verbindungsanforderung enthalten
sind, für
diese Verbindungsanforderung Steiner-Vertizes sind oder nicht, hat
Werte für
die Knoten n_4, n_5, n_6, n_8 von 0, 0, 1 beziehungsweise 0. Der
Graph 2503 zeigt einen Steiner-Baum von Steiner-Vertizes
für Knoten,
die in der Punkt-zu-Mehrpunkt-Verbindungsanforderung n_1 zu n_2,
n_3, n_7 enthalten sind und Knoten die den Wert 1 in der Darstellung
für diese
Punkt-zu-Mehrpunkt-Verbindungsanforderung
haben (n_6).
-
Im
Schritt 1803 nach 18 verwendet
die Routen-Suchmaschine die Verkehrs-Routen-Darstellung, um nach Routen für eingegebene
Punkt-zu-Mehrpunkt-Verbindungsanforderungen
entsprechend den Parametern und Befehlen zu suchen, die im Schritt 1801 eingegeben
wurden.
-
20 der
beigefügten
Zeichnungen zeigt die Schritte, die von der Routen-Suchmaschine für die Routenführung von
Punkt-zu-Mehrpunkt-Verbindungsanforderungen im Schritt 1803 nach 18 ausgeführt werden.
Im Schritt 2001 wird eine anfängliche Population, von der
jedes Mitglied eine Bit-Folge umfasst, wie sie in dem Schritt 1802 zur
Erzeugung einer Darstellung definiert ist, erzeugt. Die anfänglich erzeugte
Population umfasst ein oder mehrere Mitglieder, wobei jedes Mitglied
zufällige
Bit-Werte hat. Zufällige
Bit-Werte in den Bit-Folgen für
jede Punkt-zu-Mehrpunkt-Verbindungsanforderung
stellen alle zwischenliegenden Knoten in dem Netzwerk dar, das heißt Knoten,
die nicht in der Punkt-zu-Mehrpunkt-Verbindungsanforderung enthalten sind
und Werte von 1 haben, wenn sie als Steiner-Vertizes betrachtet
werden, wie dies vorstehend beschrieben wurde, oder die andernfalls
den Wert 0 haben. Der Ausgang eines anfänglichen Populations-Erzeugungsschrittes
wird als eine derzeitige Population bezeichnet. Ein Fitness-Auswertungs-Prozess
wird aufgerufen, um eine Fitness für jedes derzeitige Populations-Mitglied
zu berechnen. Der Fitness-Auswertungs-Prozess ordnet einen numerischen
Wert zu jedem Populations-Mitglied zu, damit die Mitglieder in einer
Rangordnung aufgestellt und später
in den Schritten der 20 verwendet werden können. In
der Routen-Suchmaschine zeigt der Fitness-Auswertungs-Prozess eine
zunehmende Erstrebenswertigkeit eines Populations-Mitgliedes durch
einen niedrigeren numerischen Fitness-Wert an, dass heißt, der
genetische Algorithmus der Routen-Suchmaschine sucht nach einem
minimalen numerischen Wert. Der numerische Fitness-Wert für jedes
Populations-Mitglied wird durch Berechnen eines Steiner-Baumes für jede Punkt-zu-Mehrpunkt-Verbindungsanforderung
berechnet, die zu einer Bit-Folge in der vorstehend beschriebenen
Weise führt.
Die Kosten zum Durchqueren der Netzwerk-Verbindungsstrecken, die
in dem Steiner-Baum für
die Punkt-zu-Mehrpunkt-Verbindungsanforderung enthalten sind, werden
berechnet, beispielsweise durch Addieren aller der Verbindungsstrecken-Kosten
für jede
Route in der Verbindung, und es wird ein numerischer Wert erzeugt.
Ein numerischer Wert, der die Fitness-Auswertung für das Populations-Mitglied
bezeichnet, wird dann durch Addieren der numerischen Kosten jeder
Route für
jede Punkt-zu-Mehrpunkt-Verbindungsanforderung
in dem Populations-Mitglied berechnet, um einen numerischen Wert
zu gewinnen.
-
Im
Schritt 2002 erfolgt eine Populations-Reproduktion, um
eine Zwischen-Population
zu erzeugen. Die Zwischen-Population wird durch Abtasten – unter
Ersetzung – der
derzeitigen Population entsprechend einer Verteilung, die Fitnessbezogen
und durch Parameter definiert ist, die in die Routen-Suchmaschine
im Schritt 1801 eingegeben wurden, erzeugt. Die Zwischen-Population
weist die gleiche Größe wie die
derzeitige Population auf, und hat einen verringerten mittleren
numerischen Fitness-Wert, das heißt sie ist wünschenswerter, verglichen
mit dem der derzeitigen Population.
-
Im
Schritt 2003 wird die Zwischen-Population genetisch manipuliert,
um eine manipulierte Population zu erzeugen. Die genetische Manipulation
beinhaltet Kreuzungs- und Mutations-Operationen. 21 der
beigefügten
Diagramme erläutert
ein Beispiel der genetischen Manipulation. Zwei Zwischen-Populations- Mitglieder, die jeweils
eine Folge von neun Bits sind, sind gezeigt. Die Kreuzungs-Operation beinhaltet
ein Vertauschen einer Anzahl von Bits eines Populations-Mitgliedes mit dem
anderen, wobei die Anzahl der Bits durch Parameter bestimmt ist,
die in die Routen-Suchmaschine im Schritt 1801 eingegeben
wurden. In dem in 21 gezeigten Beispiel umfasst
ein erstes Zwischen-Populations-Mitglied die fünf äußersten linken Bits 2101 und
die vier äußersten
rechten Bits 2102. Ein zweites Zwischen-Populations-Mitglied
umfasst die fünf äußersten linken Bits 2103 und die vier äußersten
rechten Bits 2104. In dem dargestellten Beispiel nehmen
wir an, dass der Kreuzungs-Operator so eingestellt ist, dass er
die fünf äußersten
linken Bits der Populations-Mitglieder vertauscht. Nachdem die Kreuzungs-Operation
erfolgt ist, umfasst das erste Zwischen-Populations-Mitglied die
fünf äußersten
linken Bits 2103 und die vier äußersten rechten Bits 2102,
und das zweite Zwischen-Populations-Mitglied umfasst die fünf äußersten
linken Bits 2101 und die vier äußersten linken Bits 2104.
Nachdem die Kreuzung erfolgt ist, wird eine bitweise Mutations-Operation
auf die gekreuzten Populations-Mitglieder angewandt. Der verwendete
Mutations-Operator wird durch Parameter bestimmt, die in die Routen-Suchmaschine
im Schritt 1801 eingegeben wurden. In dem in 21 gezeigten
Beispiel führt
die bitweise Mutations-Operation dazu, dass ein einzelnes Bit von
jedem 9 Bit langen Populations-Mitglied invertiert wird.
-
Nach
der Erzeugung der manipulierten Operation wird der Fitness-Auswertungs-Prozess aufgerufen, um
die Fitness-Werte der manipulierten Population zu berechnen. Schließlich sortiert
der genetische Manipulations-Prozess die manipulierte Population
entsprechend dem Fitness-Wert.
-
Im
Schritt 2004 wird ein Populations-Vereinigungsprozess ausgeführt. Die
Funktion des Populations-Vereinigungsprozesses besteht darin, Mitglieder
der derzeitigen, Zwischen- und manipulierten Population zu verwenden,
um eine neue derzeitige Population zu bilden. Mechanismen, die in
diesem Prozess zur Vereinigung der Populationen verwendet werden,
werden durch einen speziellen Steuerparameter bestimmt, der im Schritt 1801 eingegeben
wird. Im Schritt 2005 wird die Fitness der neuen, im Schritt 2004 erzeugten
derzeitigen Population durch den Fitness-Auswertungsprozess ausgewertet, der
vorstehend beschrieben wurde. In Abhängigkeit von der Anzahl der
Iterationen von genetischen Operationen, die durchzuführen sind,
bestimmt durch die Parameter, die im Schritt 1801 angegeben wurden,
kann die Steuerung zum Schritt 2002 zurückgegeben werden, oder die
genetischen Algorithmen können
im Schritt 2006 enden.
-
Die
Routen-Suchmaschine gibt eine Liste von Routen ab, die Populations-Mitglieder
entsprechen, die den minimalen numerischen Fitness-Wert haben, dass
heißt
den am stärksten
wünschenswerten.
Die Liste von Routen wird durch Auflisten der Knoten erzeugt, die
in dem Anordnungs-Element des kürzesten
Pfades, indiziert durch die Bits für jede Punkt-zu-Punkt-Verbindungsanforderung
in dem fittesten Populations-Mitglied enthalten sind. Die Routen-Suchmaschine
gibt eine Datei im SAP-Format mit einem Abschnitt aus, der die für die eingegebenen
Diensteanforderungen gefundenen Routen beschreibt, wobei ein Beispiel
hierfür
in der vorliegenden 22 angegeben ist. Eine Kopfzeile 2201 für einen
Routen-Abschnitt
umfasst folgendes:
-
[Routen]
-
Eine
Beschreibungs-Zeile für
einen Routen-Abschnitt hat das folgende Format:
{<Nr><Quelle><Ziel><Verkehrs-Typ>{<Routen>}}
worin:
<Nr> einen numerischen
Wert umfasst, der eine Diensteanforderungs-Nummer entspricht.
<Quelle> ein Etikett des Quellen-Knotens
der Punkt-zu-Punkt-Verbindungsanforderung.
<Ziel> ein Etikett eines
Ziel-Knotens der Punkt-zu-Punkt-Verbindungsanforderung
umfasst.
<Verkehrs-Typ> den Typ des routengeführten Verkehrs
umfasst, beispielsweise Daten oder Sprache.
<Route> eine Spezifikation
der Route umfasst, die für
eine Punkt-zu-Punkt-Verbindungsanforderung
gefunden wurde und die wie folgt spezifiziert ist:
{{n1 p1} {n2 p2} ... {nm Pm}}
worin nk ein
Etikett eines Knotens in der gefundenen Route und pk einen
Port darstellt, der auf den Knoten verwendet wird. Ein Beispiel
eines Routen-Abschnittes
der Beschreibungszeile 2202 kann wie folgt sein:
{983
n_1 n_8 Daten} {n_1 1} {n_2 1} {n_6 1} {n_8 1}}
-
Eine
SAP-Datei, die einen Routen-Abschnitt enthält, kann durch einen Routendaten-Nachprozessor 403 in
eine Routenführungs-Tabelle
umgewandelt werden, die für
die externe Anwendung geeignet ist, die die Diensteanforderung gemacht
hat.
-
Die 23 der
beigefügten
Diagramme erläutert
eine Bildschirmdarstellung, die die GUI 211 erzeugen kann,
um graphisch eine Routenführungs-Tabelle
unter Verwendung von Daten zu zeigen, die von der Routen-Suchmaschine 209 erzeugt
werden. Die Bildschirmdarstellung umfasst ein Fenster mit einer
Tabelle 2301 von der jede Zeile eine Diensteanforderung
zwischen einem Quellen-Knoten und einem Ziel-Knoten des Netzwerkes
und jede Spalte einen Sprungabschnitt (hop) darstellt, dass heißt einen
Knoten, der in einer Routen enthalten ist, die für die Diensteanforderung gefunden
wurde. Die Bildschirmdarstellung umfasst weiterhin zwei Auswahl-Knöpfe 2302,
die zum Darstellen von Routenführungs-Tabellen
für den
Verkehr von unterschiedlichen Typen verwendet werden können, beispielsweise
Sprache oder Daten. Die Darstellung umfasst weiterhin ein horizontales
Bildlauf-Piktogramm 2304 und ein vertikales Bildlauf-Piktogramm 2303,
die zur Anzeige von Verbindungsanforderungen und Sprungabschnitten
verwendet können,
die in der derzeitigen Darstellung nicht sichtbar sind.
-
24 der
beigefügten
Zeichnungen zeigt eine Bildschirmdarstellung, die ein Diagramm zeigt,
das von der GUI 211 unter Verwendung von Daten erzeugt
wird, die von der Routen-Suchmaschine 209 erzeugt wurden.
Eine horizontale Achse 2401 des Diagramms zeigt die prozentuale
Nutzung von Verbindungsstrecken in dem Netzwerk, während eine
vertikale Achse 2402 der graphischen Darstellung die Häufigkeit
der prozentualen Nutzung darstellt.