DE69832140T2 - Verkehrswegesucher in einem Kommunikationsnetz - Google Patents

Verkehrswegesucher in einem Kommunikationsnetz Download PDF

Info

Publication number
DE69832140T2
DE69832140T2 DE69832140T DE69832140T DE69832140T2 DE 69832140 T2 DE69832140 T2 DE 69832140T2 DE 69832140 T DE69832140 T DE 69832140T DE 69832140 T DE69832140 T DE 69832140T DE 69832140 T2 DE69832140 T2 DE 69832140T2
Authority
DE
Germany
Prior art keywords
route
link
network
node
elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69832140T
Other languages
English (en)
Other versions
DE69832140D1 (de
Inventor
Jason Warren Borehamwood Mann
Anthony Richard Phillip Ottawa White
John Ian Royston Turner
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nortel Networks Ltd
Original Assignee
Nortel Networks Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nortel Networks Ltd filed Critical Nortel Networks Ltd
Publication of DE69832140D1 publication Critical patent/DE69832140D1/de
Application granted granted Critical
Publication of DE69832140T2 publication Critical patent/DE69832140T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J2203/00Aspects of optical multiplex systems other than those covered by H04J14/05 and H04J14/07
    • H04J2203/0001Provisions for broadband connections in integrated services digital network using frames of the Optical Transport Network [OTN] or using synchronous transfer mode [STM], e.g. SONET, SDH
    • H04J2203/0051Network Node Interface, e.g. tandem connections, transit switching
    • H04J2203/0053Routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J2203/00Aspects of optical multiplex systems other than those covered by H04J14/05 and H04J14/07
    • H04J2203/0001Provisions for broadband connections in integrated services digital network using frames of the Optical Transport Network [OTN] or using synchronous transfer mode [STM], e.g. SONET, SDH
    • H04J2203/0064Admission Control
    • H04J2203/0067Resource management and allocation
    • H04J2203/0069Channel allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5619Network Node Interface, e.g. tandem connections, transit switching
    • H04L2012/562Routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/564Connection-oriented
    • H04L2012/5642Multicast/broadcast/point-multipoint, e.g. VOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes

Description

  • 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:
    Figure 00420001
    Figure 00430001
    Figure 00440001
    Figure 00450001
  • 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.

Claims (28)

  1. Verfahren zum Suchen von Routen von Verbindungsstrecken für eine Vielzahl von Kommunikations-Verbindungen über ein Netzwerk, das eine Vielzahl von Knoten-Elementen (101; 301) und Verbindungsstrecken-Elementen (102; 302) umfasst, wobei jede Verbindung ein Quellen-Knoten-Element und eine Vielzahl von Ziel-Knoten-Elementen hat, wobei das Verfahren die folgenden maschinenausführbaren Schritte umfasst: Zuordnen von zumindest einem Verbindungsstrecken-Kosten-Wert (C1-C12) zu jedem Verbindungsstrecken-Element (102; 301); für jede Verbindung, deren Route zu führen ist, Auswerten eines Routen-Kosten-Wertes des Durchquerens einer Vielzahl von Verbindungsstrecken-Elementen zwischen dem Quellen-Knoten-Element und der Vielzahl von Ziel-Knoten-Elementen; und für alle die Verbindungen, deren Route zu führen ist, Auswerten der Gesamtkosten der Routen-Kosten-Werte; wobei das Verfahren dadurch gekennzeichnet ist, dass es für jede genannte Verbindung, deren Route zu führen ist, die folgenden Schritte einschließt: Auswählen eines Satzes von Knoten-Elementen (101; 301) des Netzwerkes, die nicht in einem Quellen-Knoten-Element oder einer Vielzahl von Ziel-Knoten-Elementen der Verbindung enthalten sind; und Feststellen, welches der Knoten-Elemente in dem Satz Steiner-Vertizes sind.
  2. Verfahren nach Anspruch 1, bei dem der Satz von Knoten-Elementen (102; 302) durch eine Folge von Bits (1902) dargestellt ist, wobei ein Bit in der Folge einen Wert von 1 hat, wenn das durch dieses Bit dargestellte Knoten-Element als ein Steiner-Vertex markiert ist, und ein Bit in der Folge einen Wert von 0 hat , wenn das durch dieses Bit dargestellte Knoten-Element nicht als ein Steiner-Vertex markiert ist.
  3. Verfahren nach Anspruch 1 oder 2, bei dem der Schritt der Auswertung eines Routen-Kosten-Wertes die folgenden Schritte umfasst: Schaffen eines Steiner-Baumes (610), der Knoten in jeder genannten Verbindung, deren Route zu führen ist, und Knoten in den Satz einschließt, die als Steiner-Vertizes markiert sind; und Addieren der Kosten-Werte (609) des Durchquerens jeder Verbindungsstrecke in dem Steiner-Baum.
  4. Verfahren nach Anspruch 2 oder 3, bei der die Folge von Bits unter Verwendung von genetischen Algorithmus-Operationen (606), manipuliert wird, die die Reproduktion, die Mutation, die Kreuzung und die Vereinigung einschließen.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem der Kosten-Wert oder die Kosten-Werte, die dem Verbindungsstrecken-Element oder den Verbindungsstrecken-Elementen zugeordnet sind, einem Daten-Typ zugeordnet werden, und wobei das Verfahren den Schritt der: Zuordnung eines Daten-Typs zu allen oder einigen der Verbindungen umfasst, deren Route zu führen ist.
  6. Verfahren nach einem Ansprüche 1 bis 5, das den Schritt der: Auswahl von einem oder mehreren Knoten-Elementen (101; 301) und/oder eines oder mehrerer der Verbindungsstrecken-Elemente (102; 302) umfasst, die in die für eine oder mehrere der Verbindungen, deren Route zu führen ist, gefundene Route einzufügen oder aus dieser auszuschließen sind.
  7. Verfahren nach einem der Ansprüche 1 bis 6, das den Schritt der: Ausgabe der Routen mit minimalen Gesamtkosten (605) umfasst.
  8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem eine Vielzahl von Routen für jede genannte Verbindung, deren Route zu führen ist, gefunden wird, wobei die Routen-Kosten für jede der Vielzahl von Routen nicht die Verbindungs-Kosten der Verbindung überschreiten, deren Route zu führen ist.
  9. Verfahren nach einem der Ansprüche 1 bis 8, bei dem die für alle die genannten Verbindungen gefundenen Routen bestrebt sind, so viele der Knoten-Elemente (101; 301) und Verbindungsstrecken-Elemente (102; 302) des Netzwerkes wie möglich zu verwenden.
  10. Verfahren nach einem der Ansprüche 1 bis 9, bei dem die Gesamtkosten der Routen-Kosten-Werte aller der Verbindungen, deren Route zu führen ist, als ein Fitness-Kriterium (609) in einem genetischen Algorithmus verwendet werden.
  11. Routen-Suchvorrichtung (207) zum Suchen von Routen von Verbindungsstrecken für eine Vielzahl von Kommunikationsverbindungen über ein Netzwerk, das eine Vielzahl von Knoten-Elementen (101; 301) und Verbindungsstrecken-Elementen (102; 302) umfasst, wobei jede Verbindung ein Quellen-Knoten-Element und eine Vielzahl von Ziel-Knoten-Elementen aufweist, wobei die Vorrichtung folgendes umfasst: Einrichtungen zum Zuordnen von zumindest einem Verbindungsstrecken-Kosten-Wert (C1-C12) zu jedem Verbindungsstrecken-Element (102; 302); Einrichtungen zum Auswerten eines Routen-Kosten-Wertes des Durchquerens einer Vielzahl von Verbindungsstrecken-Elementen zwischen den Quellen-Knoten-Elementen und der Vielzahl von Ziel-Knoten-Elementen für jede Verbindung, deren Route zu führen ist; und Einrichtungen zum Auswerten der Gesamtkosten der Routen-Kosten-Werte für alle Verbindungen, deren Route zu führen ist; wobei die Vorrichtung dadurch gekennzeichnet ist, dass sie folgendes einschließt: Einrichtungen zur Auswahl eines Satzes von Knoten-Elementen (101; 301) des Netzwerkes, die nicht in einem Quellen-Knoten-Element oder einer Vielzahl von Ziel-Knoten-Elementen der Verbindung enthalten sind; und Einrichtungen zur Feststellung, welche der Knoten-Elemente in dem Satz Steiner-Vertizes für jede genannte Verbindung sind, deren Route zu führen ist.
  12. Netzwerk-Steuerung (104), die die Routen-Suchvorrichtung nach Anspruch 11 einschließt.
  13. Telekommunikationsnetzwerk, das die Netzwerk-Steuerung (104) nach Anspruch 12 einschließt.
  14. Maschinenlesbares Medium, das Computer-Code-Einrichtungen umfasst, die auf einem Prozessor (202) der Netzwerk-Steuerung (104) nach Anspruch 12 ausführbar sind, um das Verfahren nach einem der Ansprüche 1 bis 10 zu realisieren.
  15. Verfahren zum Suchen von Routen von Verbindungsstrecken für eine Vielzahl von Kommunikations-Verbindungen über ein Netzwerk, das eine Vielzahl von Knoten-Elementen (101; 301) und Verbindungsstrecken-Elementen (102; 302) umfasst, wobei jede Verbindung ein Quellen-Knoten-Element und eine Vielzahl von Ziel-Knoten-Elementen hat, wobei das Verfahren die folgenden maschinenausführbaren Schritte umfasst: Zuordnen von zumindest einem Verbindungsstrecken-Kosten-Wert (C1-C12) zu jedem Verbindungsstrecken-Element (102; 301); für jede Verbindung, deren Route zu führen ist, Auswerten eines Routen-Kosten-Wertes des Durchquerens einer Vielzahl von Verbindungsstrecken-Elementen zwischen dem Quellen-Knoten-Element und der Vielzahl von Ziel-Knoten-Elementen; und für alle die Verbindungen, deren Route zu führen ist, Auswerten der Gesamtkosten der Routen-Kosten-Werte; wobei das Verfahren dadurch gekennzeichnet ist, dass es für jede genannte Verbindung, deren Route zu führen ist, die folgenden Schritte einschließt: Auswählen eines Satzes von Knoten-Elementen (101; 301) des Netzwerkes, die nicht in einem Quellen-Knoten-Element oder einer Vielzahl von Ziel-Knoten-Elementen der Verbindung enthalten sind; und Feststellen, welches der Knoten-Elemente in dem Satz Steiner-Vertizes sind.
  16. Verfahren nach Anspruch 1, bei dem der Satz von Knoten-Elementen (102; 302) durch eine Folge von Bits (1902) dargestellt ist, wobei ein Bit in der Folge einen Wert von 1 hat, wenn das durch dieses Bit dargestellte Knoten-Element als ein Steiner-Vertex markiert ist, und ein Bit in der Folge einen Wert von 0 hat , wenn das durch dieses Bit dargestellte Knoten-Element nicht als ein Steiner-Vertex markiert ist.
  17. Verfahren nach Anspruch 1 oder 2, bei dem der Schritt der Auswertung eines Routen-Kosten-Wertes die folgenden Schritte umfasst: Schaffen eines Steiner-Baumes (610), der Knoten in jeder genannten Verbindung, deren Route zu führen ist, und Knoten in den Satz einschließt, die als Steiner-Vertizes markiert sind; und Addieren der Kosten-Werte (609) des Durchquerens jeder Verbindungsstrecke in dem Steiner-Baum.
  18. Verfahren nach Anspruch 2 oder 3, bei der die Folge von Bits unter Verwendung von genetischen Algorithmus-Operationen (606), manipuliert wird, die die Reproduktion, die Mutation, die Kreuzung und die Vereinigung einschließen.
  19. Verfahren nach einem der Ansprüche 1 bis 4, bei dem der Kosten-Wert oder die Kosten-Werte, die dem Verbindungsstrecken-Element oder den Verbindungsstrecken-Elementen zugeordnet sind, einem Daten-Typ zugeordnet werden, und wobei das Verfahren den Schritt der: Zuordnung eines Daten-Typs zu allen oder einigen der Verbindungen umfasst, deren Route zu führen ist.
  20. Verfahren nach einem Ansprüche 1 bis 5, das den Schritt der: Auswahl von einem oder mehreren Knoten-Elementen (101; 301) und/oder eines oder mehrerer der Verbindungsstrecken-Elemente (102; 302) umfasst, die in die für eine oder mehrere der Verbindungen, deren Route zu führen ist, gefundene Route einzufügen oder aus dieser auszuschließen sind.
  21. Verfahren nach einem der Ansprüche 1 bis 6, das den Schritt der: Ausgabe der Routen mit minimalen Gesamtkosten (605) umfasst.
  22. Verfahren nach einem der Ansprüche 1 bis 7, bei dem eine Vielzahl von Routen für jede genannte Verbindung, deren Route zu führen ist, gefunden wird, wobei die Routen-Kosten für jede der Vielzahl von Routen nicht die Verbindungs-Kosten der Verbindung überschreiten, deren Route zu führen ist.
  23. Verfahren nach einem der Ansprüche 1 bis 8, bei dem die für alle die genannten Verbindungen gefundenen Routen bestrebt sind, so viele der Knoten-Elemente (101; 301) und Verbindungsstrecken-Elemente (102; 302) des Netzwerkes wie möglich zu verwenden.
  24. Verfahren nach einem der Ansprüche 1 bis 9, bei dem die Gesamtkosten der Routen-Kosten-Werte aller der Verbindungen, deren Route zu führen ist, als ein Fitness-Kriterium (609) in einem genetischen Algorithmus verwendet werden.
  25. Routen-Suchvorrichtung (207) zum Suchen von Routen von Verbindungsstrecken für eine Vielzahl von Kommunikationsverbindungen über ein Netzwerk, das eine Vielzahl von Knoten-Elementen (101; 301) und Verbindungsstrecken-Elementen (102; 302) umfasst, wobei jede Verbindung ein Quellen-Knoten-Element und eine Vielzahl von Ziel-Knoten-Elementen aufweist, wobei die Vorrichtung folgendes umfasst: Einrichtungen zum Zuordnen von zumindest einem Verbindungsstrecken-Kosten-Wert (C1-C12) zu jedem Verbindungsstrecken-Element (102; 302); Einrichtungen zum Auswerten eines Routen-Kosten-Wertes des Durchquerens einer Vielzahl von Verbindungsstrecken-Elementen zwischen den Quellen-Knoten-Elementen und der Vielzahl von Ziel-Knoten-Elementen für jede Verbindung, deren Route zu führen ist; und Einrichtungen zum Auswerten der Gesamtkosten der Routen-Kosten-Werte für alle Verbindungen, deren Route zu führen ist; wobei die Vorrichtung dadurch gekennzeichnet ist, dass sie folgendes einschließt: Einrichtungen zur Auswahl eines Satzes von Knoten-Elementen (101; 301) des Netzwerkes, die nicht in einem Quellen-Knoten-Element oder einer Vielzahl von Ziel-Knoten-Elementen der Verbindung enthalten sind; und Einrichtungen zur Feststellung, welche der Knoten-Elemente in dem Satz Steiner-Vertizes für jede genannte Verbindung sind, deren Route zu führen ist.
  26. Netzwerk-Steuerung (104), die die Routen-Suchvorrichtung nach Anspruch 11 einschließt.
  27. Telekommunikationsnetzwerk, das die Netzwerk-Steuerung (104) nach Anspruch 12 einschließt.
  28. Maschinenlesbares Medium, das Computer-Code-Einrichtungen umfasst, die auf einem Prozessor (202) der Netzwerk-Steuerung (104) nach Anspruch 12 ausführbar sind, um das Verfahren nach einem der Ansprüche 1 bis 10 zu realisieren.
DE69832140T 1997-12-24 1998-11-27 Verkehrswegesucher in einem Kommunikationsnetz Expired - Lifetime DE69832140T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9727163A GB2332809A (en) 1997-12-24 1997-12-24 Least cost routing
GB9727163 1997-12-24

Publications (2)

Publication Number Publication Date
DE69832140D1 DE69832140D1 (de) 2005-12-08
DE69832140T2 true DE69832140T2 (de) 2006-04-20

Family

ID=10824110

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69832140T Expired - Lifetime DE69832140T2 (de) 1997-12-24 1998-11-27 Verkehrswegesucher in einem Kommunikationsnetz

Country Status (5)

Country Link
US (2) US6310883B1 (de)
EP (1) EP0926860B1 (de)
CA (1) CA2256223C (de)
DE (1) DE69832140T2 (de)
GB (1) GB2332809A (de)

Families Citing this family (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPQ504100A0 (en) * 2000-01-11 2000-02-03 Notron (No. 325) Pty Limited A method for distribution of streamed data packets on a switched network utilising an intelligent distribution network
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US6016307A (en) * 1996-10-31 2000-01-18 Connect One, Inc. Multi-protocol telecommunications routing optimization
JP3665460B2 (ja) * 1997-12-05 2005-06-29 富士通株式会社 分散自律協調型の応答時間チューニングによる経路選択システム、方法、及び記録媒体
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6298381B1 (en) * 1998-10-20 2001-10-02 Cisco Technology, Inc. System and method for information retrieval regarding services
US9239763B2 (en) 2012-09-28 2016-01-19 Oracle International Corporation Container database
US6873616B1 (en) * 1998-12-28 2005-03-29 Nortel Networks Limited Quasi-deterministic gateway selection algorithm for multi-domain source routed networks
JP2000222382A (ja) * 1999-02-03 2000-08-11 Fujitsu Ltd 一般の距離空間における適切なネットワーク形状を探索する処理装置
JP3766223B2 (ja) * 1999-02-18 2006-04-12 富士通株式会社 境界装置及びそのコネクション設定方法
JP2000242574A (ja) * 1999-02-22 2000-09-08 Mitsubishi Electric Corp データ転送方法および予定転送先データベース作成方法
US6643699B1 (en) * 1999-03-10 2003-11-04 International Business Machines Corporation Computerized method for computing the overall splitting cost of a data structure using blocking island contour map of a network-level graph
US6631128B1 (en) * 1999-05-27 2003-10-07 Telefonaktiebolaget L M Ericcson (Publ) Core network optimization of topology and technology for traffic handling
US6721414B1 (en) * 1999-08-17 2004-04-13 Nec America, Inc. Cable management system
US6757306B1 (en) * 1999-09-07 2004-06-29 Nortel Networks Limited Method and system for intermediate system level 2 transparency using the SONET LDCC
US6766349B1 (en) 1999-09-24 2004-07-20 Sun Microsystems, Inc. Mechanism for obtaining a thread from, and returning a thread to, a thread pool without attaching and detaching
US6895584B1 (en) * 1999-09-24 2005-05-17 Sun Microsystems, Inc. Mechanism for evaluating requests prior to disposition in a multi-threaded environment
WO2001022273A1 (en) 1999-09-24 2001-03-29 Sun Microsystems, Inc. Mechanism for enabling session information to be shared across multiple processes
US6701367B1 (en) 1999-09-24 2004-03-02 Sun Microsystems, Inc. Mechanism for enabling customized session managers to interact with a network server
US6744775B1 (en) * 1999-09-27 2004-06-01 Nortel Networks Limited State information and routing table updates in large scale data networks
US6822942B1 (en) * 1999-11-19 2004-11-23 At&T Corp. Protocol extensions for telecommunications network systems and method
US6738758B1 (en) * 1999-11-24 2004-05-18 Cisco Technology, Inc. Adaptive bucket indexing mechanism to effectively manage service activation requests
US7478162B2 (en) * 2000-02-08 2009-01-13 British Telecommunications Public Limited Company Communications network
US6842425B1 (en) * 2000-02-14 2005-01-11 Lucent Technologies Inc. Method and apparatus for optimizing routing through network nodes
US6816910B1 (en) * 2000-02-17 2004-11-09 Netzentry, Inc. Method and apparatus for limiting network connection resources
JP4153207B2 (ja) * 2000-02-23 2008-09-24 ティンプリント ゲーエムベーハー ネットワーク内でデータ回線を介してデータを送信する方法
US6977937B1 (en) * 2000-04-10 2005-12-20 Bbnt Solutions Llc Radio network routing apparatus
US6721800B1 (en) * 2000-04-10 2004-04-13 International Business Machines Corporation System using weighted next hop option in routing table to include probability of routing a packet for providing equal cost multipath forwarding packets
US6681248B1 (en) * 2000-04-12 2004-01-20 Sycamore Networks, Inc. Method for port connectivity discovery in transparent high bandwidth networks
US6873619B1 (en) * 2000-05-16 2005-03-29 Tavve Software Co. Methods, systems and computer program products for finding network segment paths
US7555542B1 (en) 2000-05-22 2009-06-30 Internap Network Services Corporation Method and system for directing requests for content to a content server based on network performance
US20020004843A1 (en) * 2000-07-05 2002-01-10 Loa Andersson System, device, and method for bypassing network changes in a routed communication network
US6839749B1 (en) * 2000-07-10 2005-01-04 International Business Machines Corporation Network representation and manipulation thereof
US6854091B1 (en) * 2000-07-28 2005-02-08 Nortel Networks Limited Method of displaying nodes and links
US6981055B1 (en) * 2000-08-22 2005-12-27 Internap Network Services Corporation Method and system for optimizing routing through multiple available internet route providers
GB0022561D0 (en) * 2000-09-14 2000-11-01 British Telecomm Communications network
US6631449B1 (en) * 2000-10-05 2003-10-07 Veritas Operating Corporation Dynamic distributed data system and method
US7003559B1 (en) * 2000-10-23 2006-02-21 Hewlett-Packard Development Company, L.P. System and method for determining probable network paths between nodes in a network topology
KR100657120B1 (ko) * 2000-11-04 2006-12-12 주식회사 케이티 패킷 망에서 트래픽부하 분산을 위한 라우팅방법
WO2002046947A1 (en) * 2000-12-04 2002-06-13 Rensselaer Polytechnic Institute System for proactive management of network routing
US20020112196A1 (en) * 2001-01-11 2002-08-15 Utpal Datta Distributed processing and criteria-based dynamic modification of data-flow map
US20030031167A1 (en) * 2001-02-28 2003-02-13 Singh Abhishek Ranjan Methods and system for efficient route lookup
US20020122388A1 (en) * 2001-03-05 2002-09-05 Taher Behbehani Dynamically reconfigurable intelligent content-based network
US20040071147A1 (en) * 2001-03-13 2004-04-15 Roadknight Christopher M. Communications network
US20020131409A1 (en) * 2001-03-13 2002-09-19 Frank David L. Self-healing multi-level telecommunications network
US7024662B2 (en) * 2001-03-14 2006-04-04 Microsoft Corporation Executing dynamically assigned functions while providing services
US7302634B2 (en) 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7539747B2 (en) 2001-03-14 2009-05-26 Microsoft Corporation Schema-based context service
JP4451027B2 (ja) * 2001-07-11 2010-04-14 富士通株式会社 複数経路探索方法及びこれを適用するネットワーク装置
US7111074B2 (en) * 2001-07-24 2006-09-19 Pluris, Inc. Control method for data path load-balancing on a data packet network
EP2268095A1 (de) * 2001-08-14 2010-12-29 Sony Corporation Verfahren und Vorrichtungen zum Unterbrechen einer Verbindung zwischen einer Vorrichtung zur Informationsverarbeitung und einer externen Vorrichtung
US6678876B2 (en) * 2001-08-24 2004-01-13 Formfactor, Inc. Process and apparatus for finding paths through a routing space
US6862727B2 (en) 2001-08-24 2005-03-01 Formfactor, Inc. Process and apparatus for adjusting traces
US7331060B1 (en) 2001-09-10 2008-02-12 Xangati, Inc. Dynamic DoS flooding protection
US20040049595A1 (en) * 2001-12-04 2004-03-11 Mingzhou Sun System for proactive management of network routing
US7092378B1 (en) * 2001-12-10 2006-08-15 At & T Corp. System for utilizing a genetic algorithm to provide constraint-based routing of packets in a communication network
US7251221B2 (en) 2002-01-25 2007-07-31 Level 3 Communications, Llc Automated installation of network service in a telecommunications network
US7146000B2 (en) 2002-01-25 2006-12-05 Level (3) Communications Routing engine for telecommunications network
JP2003223322A (ja) * 2002-01-30 2003-08-08 Mitsubishi Electric Corp 組合せ最適化問題の解析装置
US7099277B2 (en) * 2002-02-20 2006-08-29 Mitsubishi Electric Research Laboratories, Inc. Dynamic optimal path selection in multiple communications networks
US6816886B2 (en) * 2002-03-14 2004-11-09 Microsoft Corporation Measuring performance metrics of networked computing entities
US7209656B2 (en) * 2002-04-12 2007-04-24 Fujitsu Limited Management of optical links using power level information
US7212742B2 (en) * 2002-04-12 2007-05-01 Fujitsu Limited Power level management in optical networks
US7209655B2 (en) * 2002-04-12 2007-04-24 Fujitsu Limited Sharing of power level information to support optical communications
US8351339B2 (en) * 2002-04-25 2013-01-08 Samsung Electronics Co., Ltd. Method for bluetooth on-demand routing and network formation, and communication method in bluetooth group ad hoc network
US9886309B2 (en) 2002-06-28 2018-02-06 Microsoft Technology Licensing, Llc Identity-based distributed computing for device resources
US7941514B2 (en) 2002-07-31 2011-05-10 Level 3 Communications, Llc Order entry system for telecommunications network service
US7305464B2 (en) * 2002-09-03 2007-12-04 End Ii End Communications, Inc. Systems and methods for broadband network optimization
US6957263B2 (en) * 2002-11-19 2005-10-18 Fujitsu Limited Connection management system and graphical user interface for large-scale optical networks
US7983239B1 (en) 2003-01-07 2011-07-19 Raytheon Bbn Technologies Corp. Systems and methods for constructing a virtual model of a multi-hop, multi-access network
US7457286B2 (en) * 2003-03-31 2008-11-25 Applied Micro Circuits Corporation Accelerating the shortest path problem
GB2418800B (en) * 2003-04-02 2006-06-21 Cisco Tech Inc Path optimization in communications and data networks
US7356578B1 (en) * 2003-05-28 2008-04-08 Landesk Software Limited System for constructing a network spanning tree using communication metrics discovered by multicast alias domains
US20040246902A1 (en) * 2003-06-02 2004-12-09 Weinstein Joseph J. Systems and methods for synchronizing multple copies of a database using datablase digest
US7577107B2 (en) * 2003-06-03 2009-08-18 Palo Alto Research Center Incorporated Protocol specification for message-initiated constraint-based routing
US7577108B2 (en) * 2003-06-03 2009-08-18 Palo Alto Research Center Incorporated Learning-based strategies for message-initiated constraint-based routing
US7246172B2 (en) * 2003-06-06 2007-07-17 Matsushita Electric Industrial Co., Ltd. Static dense multicast path and bandwidth management
US7881229B2 (en) 2003-08-08 2011-02-01 Raytheon Bbn Technologies Corp. Systems and methods for forming an adjacency graph for exchanging network routing data
US7953860B2 (en) * 2003-08-14 2011-05-31 Oracle International Corporation Fast reorganization of connections in response to an event in a clustered computing system
US7937493B2 (en) * 2003-08-14 2011-05-03 Oracle International Corporation Connection pool use of runtime load balancing service performance advisories
US7606927B2 (en) * 2003-08-27 2009-10-20 Bbn Technologies Corp Systems and methods for forwarding data units in a communications network
US20080089347A1 (en) * 2003-08-29 2008-04-17 End Ii End Communications Inc. Systems and methods for broadband network optimization
US7668083B1 (en) 2003-10-28 2010-02-23 Bbn Technologies Corp. Systems and methods for forwarding data in a communications network
US7369765B2 (en) * 2004-02-26 2008-05-06 Fujitsu Limited Optical network with selective mode switching
US7969863B2 (en) * 2004-03-29 2011-06-28 Hewlett-Packard Development Company, L.P. Directed cost protocol
US7957266B2 (en) * 2004-05-28 2011-06-07 Alcatel-Lucent Usa Inc. Efficient and robust routing independent of traffic pattern variability
US7733812B2 (en) * 2004-06-07 2010-06-08 Alcatel Method for enabling multipoint network services over a ring topology network
US7620986B1 (en) 2004-06-14 2009-11-17 Xangati, Inc. Defenses against software attacks in distributed computing environments
CA2571654A1 (en) * 2004-06-22 2005-12-29 British Telecommunications Public Limited Company Wireless ad hoc network
US9262490B2 (en) 2004-08-12 2016-02-16 Oracle International Corporation Adaptively routing transactions to servers
GB0424032D0 (en) * 2004-10-28 2004-12-01 British Telecomm Resource allocation
US7564458B2 (en) * 2004-12-15 2009-07-21 Microsoft Corporation System and method for interactively linking data to shapes in a diagram
US9497109B2 (en) * 2005-02-11 2016-11-15 Hewlett Packard Enterprise Development Lp Switching mesh with user-configurable paths
US8010644B1 (en) * 2005-02-23 2011-08-30 Sprint Communications Company L.P. Method and system for deploying a network monitoring service within a communication network
US7940699B2 (en) * 2005-03-11 2011-05-10 Alcatel-Lucent Usa Inc. Spanning tree generation for supporting performance-guaranteed services over circuit-switched network
JP4073923B2 (ja) * 2005-03-30 2008-04-09 富士通株式会社 ネットワーク機器管理装置、ネットワーク機器管理プログラム、及びネットワーク機器管理方法
EP1917631A1 (de) * 2005-08-25 2008-05-07 International Business Machines Corporation Verfahren und system zum anzeigen von leistungseinschränkungen in einem fluss-design-werkzeug
US7978611B2 (en) * 2005-09-06 2011-07-12 At&T Intellectual Property I, L.P. Systems and methods to determine network routes based on transmission medium length
US20070064612A1 (en) * 2005-09-19 2007-03-22 Sbc Knowledge Ventures L.P. Method and apparatus for selecting an optimal path from a path-starting node of a network to a path-ending node of the network
GB2431067B (en) 2005-10-07 2008-05-07 Cramer Systems Ltd Telecommunications service management
US8352632B2 (en) 2005-10-26 2013-01-08 Level 3 Communications, Llc Systems and methods for discovering network topology
US7461035B2 (en) * 2005-10-26 2008-12-02 Motorola, Inc. Path determination facilitation method
GB2432992B (en) 2005-11-18 2008-09-10 Cramer Systems Ltd Network planning
US9686183B2 (en) 2005-12-06 2017-06-20 Zarbaña Digital Fund Llc Digital object routing based on a service request
US20070130046A1 (en) * 2005-12-06 2007-06-07 Shabbir Khan Quality of service for transmission of digital content
US8055897B2 (en) 2005-12-06 2011-11-08 Lippershy Celestial Llc Digital object title and transmission information
US8014389B2 (en) * 2005-12-06 2011-09-06 Lippershy Celestial Llc Bidding network
US7894447B2 (en) * 2005-12-06 2011-02-22 Lippershy Celestial Llc Digital object routing
US7720073B2 (en) * 2005-12-06 2010-05-18 Shabbir Khan System and/or method for bidding
US8194701B2 (en) * 2005-12-06 2012-06-05 Lippershy Celestial Llc System and/or method for downstream bidding
US20070136209A1 (en) * 2005-12-06 2007-06-14 Shabbir Khan Digital object title authentication
GB2433675B (en) 2005-12-22 2008-05-07 Cramer Systems Ltd Communications circuit design
GB2435362B (en) * 2006-02-20 2008-11-26 Cramer Systems Ltd Method of configuring devices in a telecommunications network
US7593342B2 (en) * 2006-03-16 2009-09-22 Mitsubishi Electric Research Laboraties, Inc. Route selection in cooperative relay networks
US20070300173A1 (en) * 2006-06-26 2007-12-27 Sun Microsystems, Inc. Apparatus and method for coordinated views of clustered data
US7672919B2 (en) * 2006-08-02 2010-03-02 Unisys Corporation Determination of graph connectivity metrics using bit-vectors
US7894370B2 (en) * 2007-03-09 2011-02-22 Nbc Universal, Inc. Media content distribution system and method
US8713186B2 (en) * 2007-03-13 2014-04-29 Oracle International Corporation Server-side connection resource pooling
US8069127B2 (en) * 2007-04-26 2011-11-29 21 Ct, Inc. Method and system for solving an optimization problem with dynamic constraints
US8717933B2 (en) * 2007-05-25 2014-05-06 Tellabs Operations, Inc. Method and apparatus for interactive routing
US7778202B2 (en) * 2007-06-01 2010-08-17 Tellabs Operations, Inc. Method and apparatus to provision network routes
US8451731B1 (en) 2007-07-25 2013-05-28 Xangati, Inc. Network monitoring using virtual packets
US9961094B1 (en) 2007-07-25 2018-05-01 Xangati, Inc Symptom detection using behavior probability density, network monitoring of multiple observation value types, and network monitoring using orthogonal profiling dimensions
US8639797B1 (en) 2007-08-03 2014-01-28 Xangati, Inc. Network monitoring of behavior probability density
US20090080345A1 (en) * 2007-09-21 2009-03-26 Ericsson, Inc. Efficient multipoint distribution tree construction for shortest path bridging
US7851298B2 (en) * 2007-10-29 2010-12-14 Hynix Semiconductor Inc. Method for fabricating transistor in a semiconductor device utilizing an etch stop layer pattern as a dummy pattern for the gate electrode formation
US7911944B2 (en) * 2007-12-26 2011-03-22 Nortel Networks Limited Tie-breaking in shortest path determination
US8761022B2 (en) 2007-12-26 2014-06-24 Rockstar Consortium Us Lp Tie-breaking in shortest path determination
JP4586854B2 (ja) * 2008-02-05 2010-11-24 ソニー株式会社 表示生成装置、表示生成方法、プログラム、および無線通信システム
US7885269B2 (en) * 2008-03-03 2011-02-08 Microsoft Corporation Network analysis with Steiner trees
US8139504B2 (en) 2009-04-07 2012-03-20 Raytheon Bbn Technologies Corp. System, device, and method for unifying differently-routed networks using virtual topology representations
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US10992555B2 (en) 2009-05-29 2021-04-27 Virtual Instruments Worldwide, Inc. Recording, replay, and sharing of live network monitoring views
US8549038B2 (en) * 2009-06-15 2013-10-01 Oracle International Corporation Pluggable session context
GB2474227B (en) * 2009-09-08 2012-02-08 Nds Ltd Delivering an audio video asset
US8909786B2 (en) * 2010-08-26 2014-12-09 Futurewei Technologies, Inc. Method and system for cross-stratum optimization in application-transport networks
US8532008B2 (en) * 2011-01-03 2013-09-10 Arnab Das Systems, devices, and methods of managing power consumption in wireless sensor networks
US8364717B2 (en) 2011-01-10 2013-01-29 Microsoft Corporation Hardware accelerated shortest path computation
US9160630B2 (en) * 2011-06-07 2015-10-13 Vmware, Inc. Network connectivity and security visualization
CN103477612B (zh) 2011-06-17 2016-10-05 华为技术有限公司 经扩展以连接网络层级的云服务控制和管理架构
US8830821B2 (en) * 2011-06-22 2014-09-09 Orckit-Corrigent Ltd. Method for supporting MPLS transport path recovery with multiple protection entities
US8443105B1 (en) * 2011-12-12 2013-05-14 The United States Of America As Represented By The Director, National Security Agency Device for and method of network routing
US8861506B2 (en) 2011-12-27 2014-10-14 Apple Inc. Shortest path determination for large graphs
US9001668B2 (en) * 2012-11-02 2015-04-07 Ixia Endpoint selection in a network test system
US9830369B1 (en) * 2013-05-14 2017-11-28 Jsonar, Inc. Processor for database analytics processing
US9525638B2 (en) 2013-10-15 2016-12-20 Internap Corporation Routing system for internet traffic
US10225786B2 (en) * 2014-01-09 2019-03-05 Nec Corporation Delay tolerant network (DTN) and ad-hoc node device
US9444714B2 (en) * 2014-08-07 2016-09-13 Microsoft Technology Licensing, Llc Estimating bandwidth in a network
US10135854B2 (en) * 2015-04-07 2018-11-20 Informatica Llc Method, apparatus, and computer-readable medium for generating a data proliferation graph
US9842148B2 (en) 2015-05-05 2017-12-12 Oracle International Corporation Method for failure-resilient data placement in a distributed query processing system
US9755737B2 (en) * 2015-10-08 2017-09-05 Ciena Corporation Multi-layer network resiliency systems and methods
US10387387B2 (en) 2015-12-17 2019-08-20 Oracle International Corporation Enabling multi-tenant access to respective isolated data sets organized using different application schemas
US10289617B2 (en) 2015-12-17 2019-05-14 Oracle International Corporation Accessing on-premise and off-premise datastores that are organized using different application schemas
IL244937A (en) * 2016-04-05 2017-07-31 Musman Lior Global optimization and network load balancing
US10303894B2 (en) 2016-08-31 2019-05-28 Oracle International Corporation Fine-grained access control for data manipulation language (DML) operations on relational data
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
US11165863B1 (en) 2017-08-04 2021-11-02 128 Technology, Inc. Network neighborhoods for establishing communication relationships between communication interfaces in an administrative domain
US11954117B2 (en) 2017-09-29 2024-04-09 Oracle International Corporation Routing requests in shared-storage database systems
US20190253341A1 (en) * 2018-02-15 2019-08-15 128 Technology, Inc. Service Related Routing Method and Apparatus
CN108924673B (zh) * 2018-06-12 2021-12-03 中国电力科学研究院有限公司 一种对光通道多点故障进行自愈的方法及系统
US11563670B2 (en) 2018-10-12 2023-01-24 At&T Intellectual Property I, L.P. Methods, devices and systems for determining a target path
US10812371B2 (en) * 2018-10-12 2020-10-20 At&T Intellectual Property I, L.P. Methods, devices and systems for determining a target path in a network
CN115428411A (zh) 2020-04-23 2022-12-02 瞻博网络公司 使用会话建立度量的会话监测
US20220006697A1 (en) * 2020-07-02 2022-01-06 Level 3 Communications, Llc Path computation tool for a communications network
EP4196877A1 (de) * 2020-08-12 2023-06-21 ECI Telecom Ltd. Erfüllung eines satzes von diensten über vorgegebene netzwerkressourcen
US11582135B2 (en) 2020-08-28 2023-02-14 Ciena Corporation Systems and methods for constrained path computation in networks with connectivity and resource availability rules
US11743169B2 (en) 2021-01-20 2023-08-29 Ciena Corporation Path computation systems and methods for concurrent bi-directional k-optimal paths

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4704724A (en) 1985-12-05 1987-11-03 Bell Communications Research, Inc. Routing of network traffic
US5309370A (en) * 1990-12-13 1994-05-03 Vlsi Technology, Inc. Method for placement of connectors used interconnecting circuit components in an integrated circuit
GB9112898D0 (en) * 1991-06-14 1991-07-31 Digital Equipment Int Communication networks
US5317566A (en) * 1993-08-18 1994-05-31 Ascom Timeplex Trading Ag Least cost route selection in distributed digital communication networks
JPH07245626A (ja) 1994-03-04 1995-09-19 Nippon Telegr & Teleph Corp <Ntt> 可変帯域適応型経路制御方法
GB2299729B (en) * 1995-04-01 1999-11-17 Northern Telecom Ltd Traffic routing in a telecommunications network
US5712907A (en) * 1995-09-18 1998-01-27 Open Port Technology, Inc. Pro-active message delivery system and method
GB2305811A (en) * 1995-09-26 1997-04-16 Northern Telecom Ltd Traffic routing in a telecommunications network
US5831975A (en) * 1996-04-04 1998-11-03 Lucent Technologies Inc. System and method for hierarchical multicast routing in ATM networks
US5754543A (en) * 1996-07-03 1998-05-19 Alcatel Data Networks, Inc. Connectivity matrix-based multi-cost routing
US5881243A (en) * 1997-05-07 1999-03-09 Zaumen; William T. System for maintaining multiple loop free paths between source node and destination node in computer network
US6151304A (en) * 1997-10-29 2000-11-21 Lucent Technologies Inc. Distributed precomputation of network signal paths with improved performance through parallelization

Also Published As

Publication number Publication date
EP0926860B1 (de) 2005-11-02
DE69832140D1 (de) 2005-12-08
CA2256223A1 (en) 1999-06-24
EP0926860A3 (de) 2001-06-27
US6310883B1 (en) 2001-10-30
GB2332809A (en) 1999-06-30
CA2256223C (en) 2004-05-11
US6314093B1 (en) 2001-11-06
EP0926860A2 (de) 1999-06-30
GB9727163D0 (en) 1998-02-25

Similar Documents

Publication Publication Date Title
DE69832140T2 (de) Verkehrswegesucher in einem Kommunikationsnetz
DE60129480T2 (de) Technik zur bestimmung von konnektivitätslösungen für netzwerkelemente
DE60318471T2 (de) Extraktion von wissen mittels eines objektbasierten semantischen netzes
DE69635648T2 (de) System und Verfahren zur Filterung eines Hochleistungsnetzwerk-Verwaltungsplans
DE19746904B4 (de) Verkehrsdaten-Bewertungsgerät und zugeordnetes Verfahren für ein Netzwerk mit dynamischer Vermittlung
DE60301202T2 (de) Verfahren und vorrichtung zur verkehrssteuerung einer web-farm
DE19528563C2 (de) Verfahren zur Bewertung von mindestens zwei mehrteiligen Kommunikationsverbindungen zwischen zwei Kommunikationspartnern in einem Mehrknotennetzwerk
DE10393053B4 (de) Bereichsbasierte Mehrfeldkorrelation - Paketklassifizierung mit logorithmischem Zeitverhalten
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
DE69829830T2 (de) Weglenkungsverfahren unter Anwendung eines genetischen Algorithmus
DE69432746T2 (de) Ereignisverarbeitungssystem und Verfahren zur Herstellen eines solchen Systems
DE69533535T2 (de) Verfahren zur effizienten aggregation von verbindungsmetriken
DE60036718T2 (de) System und verfahren zum analysieren von kommunikationspfaden in einem telekommunikationsnetzwerk
DE60314031T2 (de) Erkundung mehrschichtiger Pfade
DE102004045716A1 (de) Verfahren und maschinenlesbares Medium zur Verwendung von Matrizen zur automatischen Analyse von Netzereignissen und -objekten
EP1128602B1 (de) Vorrichtung zum Aufbau eines Protokoll-Stacks und zugehöriges Verfahren
DE60312610T2 (de) Vorrichtung und Verfahren zur Bestimmung der Weglenkung in einem Kommunikationsnetzwerk, mit Auswahl von Attributen
DE102004035514A1 (de) Telekommunikationsgraphikdienstprogramm
EP0977416B1 (de) Verfahren, Endgerät, Knoten, Programmodul und Bedienoberfläche zur Ermittlung von für eine Kommunikationsbeziehung erforderlichen Merkmalen
EP1624614B1 (de) Automatische Planung von Netzwerkkonfigurationen
DE19911957A1 (de) Fernkonfigurierbares optisches Kommunikationsnetz
DE19831651C1 (de) Verfahren zum Erzeugen eines regel- und anpassbaren Netzwerkes von Modellen von Verhaltensmustern einschließlich Software-Systemen
DE69826995T2 (de) Planungssystem für breitbandverbindungen mit mehreren diensten
WO2020193294A1 (de) Verfahren und vorrichtung zum kompatiblen ansteuern eines geräts mit einem neuen programmcode
EP1402687B1 (de) Verfahren und computersystem zum ermitteln einer datenflusshierarchie in einem computernetzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 926860

Country of ref document: EP

Representative=s name: PATENTANWAELTE WALLACH, KOCH & PARTNER, 80339 MUEN