-
TECHNISCHES GEBIET
-
Diese Offenbarung betrifft Verfahren zum Identifizieren eines Austrittspunkts zu einem Netzwerkstandort.
-
HINTERGRUND
-
Im Allgemeinen können autonome Systeme (AS) mit Netzwerken unter einem gemeinsamen Administrator eine gemeinsame Routing-Richtlinie zur Kommunikation untereinander nutzen, wie das Border Gateway Protokoll (BGP). Innerhalb jedes autonomen Systems bedingt das Routingprotokoll üblicherweise ein Interior Gateway Protocol (IGP), wie etwa ein Link-State-Protokoll.
-
Das Link-State-Protokoll beruht im Allgemeinen auf einem Routingalgorithmus, der an jedem Netzwerkknoten ausgeführt wird. Jeder Knoten im Netzwerk gibt durch das gesamte Netzwerk Links zu benachbarten Knoten bekannt und stellt mit jedem Link verbundene Kosten bereit, die auf einer beliebigen geeigneten Metrik wie einer Link-Bandbreite oder einer Verzögerung beruhen können und üblicherweise als ein ganzzahliger Wert ausgedrückt werden. Ein Link kann asymmetrische Kosten aufweisen, das heißt, die Kosten in einer ersten Richtung entlang eines Links können sich von den Kosten in einer zweiten, umgekehrten Richtung unterscheiden. Auf Basis der bekanntgegebenen Informationen in Form eines Link-State-Pakets (LSP) konstruiert jeder Knoten eine Link-State-Datenbank (LSDB), die eine Abbildung der gesamten Netzwerktopologie ist, und konstruiert daraus im Allgemeinen eine einzige Route zu jedem verfügbaren Knoten auf Basis eines geeigneten Algorithmus wie beispielsweise eines SPF-Algorithmus (kürzester Pfad zuerst). Als Ergebnis wird ein Spannbaum konstruiert, der am Knoten verwurzelt ist und einen Kommunikationspfad zeigt, der Zwischenknoten zu jedem verfügbaren Zielknoten beinhaltet.
-
Die Ergebnisse des Spannbaums können in einer Routing-Informationsbasis (RIB) gespeichert werden und auf Basis dieser Ergebnisse wird die Forwarding Information Base (FIB) oder Weiterleitungstabelle aktualisiert, um die Weiterleitung von Paketen angemessen zu steuern. Bei einer Netzwerkänderung wird ein die Änderung repräsentierendes Link-State-Paket von allen an die Änderung grenzenden Knoten durch das Netzwerk geleitet, wobei jeder Knoten, der das Link-State-Paket empfängt, dieses an alle benachbarten Knoten sendet. Als Ergebnis identifiziert der Knoten, wenn ein Datenpaket für einen Zielknoten an einem Knoten eintrifft, identifiziert der Knoten eine Route zu diesem Ziel und leitet das Paket an den nächsten Knoten entlang dieser Route weiter. Der nächste Knoten wiederholt diesen Schritt und so weiter.
-
ZUSAMMENFASSUNG
-
In Computernetzen wie dem Internet sendet ein Netzwerk von Links (d. h. Kommunikationspfaden) und Knoten, wie Router, die Pakete von Daten entlang eines oder mehrerer verbundener Links lenken, Pakete von Daten nach einem oder mehreren Routingprotokollen von einer Quelle zu einem Ziel. Üblicherweise identifiziert eine eindeutige Internetprotokoll(IP)-Adresse Elemente im Netzwerk. In einem relativ großen Anbieternetzwerk können mehrere Austrittspunkte eine Route zu einem bestimmten Ziel bekanntgeben. Eine Standard-Routingrichtlinie aus dem Anbieternetzwerk zu diesem Ziel kann ein Auswählen nur eines Austrittspunkts beinhalten (kein Lastausgleich angenommen), auf Basis von Netzwerkrichtlinien für das Routing von ausgehendem Verkehr. Da viele Netzwerke keine Bekanntgaben mit weniger als 256 IP-Adressen in einem Block akzeptieren, kann ein Austrittspunkt ausgewählt werden, der weniger effizient ist als ein anderer Austrittspunkt zum gleichen Ziel. Die vorliegende Offenbarung stellt ein Netzwerksystem bereit, das ausgehenden Verkehr zu einem Teil eines Präfixes leiten kann, einschließlich einzelner IP-Adressen dieses Präfixes. Dies ermöglicht eine Auswahl eines effizienten Austrittspunkts zum Anbinden einer bestimmten Client-Verbindung.
-
Ein Aspekt der Offenbarung stellt ein Verfahren zum Identifizieren eines Austrittspunkts zu einem Netzwerkstandort bereit. Das Verfahren beinhaltet das Empfangen einer Client-Verbindung von einem externen Netzwerk (z. B. dem Internet) und ein Abrufen einer Austrittspunktkennung von einer Austrittsdatenquelle (z. B. einer Datenbank, Nachschlagetabelle, Hashtabelle, einem Datenobjekt usw.) für die empfangene Client-Verbindung. Die Austrittsdatenquelle speichert Austrittspunktkennungen, die mindestens einer Internetprotokolladresse oder einem Subnetzwerk zugewiesen sind. Das Verfahren beinhaltet ferner ein Binden der Client-Verbindung an einen Austrittspunkt, der der abgerufenen Austrittspunktkennung entspricht, ein Verkapseln von Paketen von Daten, die von der Client-Verbindung empfangen wurden, und ein Senden der verkapselten Datenpakete durch einen instanziierten Netzwerktunnel an den gebundenen Austrittspunkt. Das Verfahren beinhaltet ein Entkapseln der verkapselten Datenpakete zumindest in der Nähe des gebundenen Austrittspunkts. Eine Standard-Routingrichtlinie kann dann die Datenpakete zum Austrittspunkt lenken.
-
Implementierungen der Offenbarung können eines oder mehrere der folgenden Merkmale beinhalten. In manchen Implementierungen beinhaltet das Verfahren ein Instanziieren von Netzwerktunneln eines Anbieternetzwerks für jeden Austrittspunkt, der eine entsprechende, von der Austrittsdatenquelle gespeicherte Austrittspunktkennung aufweist. Dies kann ein Empfangen eines bekanntgegebenen Tunnelendpunkts von einer mit jedem Austrittspunkt (der beispielsweise von der Austrittsdatenquelle gespeichert ist) assoziierten Entkapselungseinrichtung und für jede empfangene Bekanntgabe eines Tunnelendpunkts ein Instanziieren eines Netzwerktunnels zum zugewiesenen Austrittspunkt bedingen. In manchen Beispielen können Austrittspunkte, die Austrittspunktkennungen aufweisen, die in der Austrittsdatenquelle fehlen, keinen instanziierten Netzwerktunnel empfangen. Zusätzlich oder alternativ kann das Verfahren das Empfangen eines bekanntgegebenen Tunnelendpunkts von einer jedem Austrittspunkt zugewiesenen Entkapselungseinrichtung sowie für jede empfangene Bekanntgabe eines Tunnelendpunkts das Konfigurieren der zugewiesenen Entkapselungseinrichtung beinhalten, um verkapselte Datenpakete, die über einen Netzwerktunnel empfangen wurden, abschließend anzuhalten. In manchen Implementierungen speichert die Austrittsdatenquelle Austrittspunkte, die üblicherweise von der Standard-Routingrichtlinie zur Kommunikation von Datenpaketen an ein bestimmtes Ziel überstellt wurden, auch wenn diese Austrittspunkte bestimmte Vorteile aufweisen können (z. B. Leistungsvorteile).
-
Das Verfahren kann das Abfragen der Austrittsdatenquelle nach einer Austrittspunktkennung beinhalten, die einem Ziel der empfangenen Client-Verbindung zugewiesen ist. Das Ziel beinhaltet mindestens eine Internetprotokolladresse oder ein Subnetzwerk. In manchen Beispielen beinhaltet das Verfahren ein Abfragen der Austrittsdatenquelle nach einer Austrittspunktkennung, die einem Austrittspunkt entspricht, der ein Leistungskriterium erfüllt, wie eine Schwellenlatenzzeit, eine Schwellenbandbreite, Schwellenkosten und/oder eine Schwellennutzung.
-
In manchen Implementierungen beinhaltet das Verfahren ein Verkapseln der Datenpakete mit empfangenen Tunnelbezeichnungsinformationen, wie einer Netzwerktunnelkennung, einem Tunneltyp und/oder einer Austrittspunktkennung. Die verkapselten Datenpakete können in das Anbieternetzwerk hinaus gesendet werden, das die Datenpakete über einen Netzwerktunnel auf Basis der Tunnelbezeichnungsinformationen zu einem bestimmten Austrittspunkt leitet.
-
Wenn die Austrittsdatenquelle versagt, eine Austrittspunktkennung für die empfangene Client-Verbindung bereitzustellen, kann das Verfahren ein Senden der von der Client-Verbindung empfangenen Datenpakete nach dem Standard-Netzwerk-Routingprotokoll beinhalten. Das Standardnetzwerk-Routingprotokoll kann die Datenpakete zur Lieferung an das Ziel an einen Austrittspunkt lenken.
-
Ein weiterer Aspekt der Offenbarung stellt ein Netzwerksystem bereit, das eine Austrittsdatenquelle beinhaltet, die Austrittspunktkeimungen speichert, die zumindest entweder einer Internetprotokolladresse oder einem Subnetzwerk zugewiesen sind. Das Netzwerksystem beinhaltet auch einen Tunnelmanager, der für jeden Austrittspunkt, der eine entsprechende, von der Austrittsdatenquelle gespeicherte Austrittspunktkennung aufweist, Netzwerktunnel eines Anbieternetzwerks instanziiert. Ein Verbindungsmanager kommuniziert mit der Austrittsdatenquelle und dem Tunnelmanager. Der Verbindungsmanager empfängt eine Client-Verbindung von einem externen Netzwerk, ruft eine Austrittspunktkennung von der Austrittsdatenquelle für die empfangene Client-Verbindung ab und bindet die Client-Verbindung an einen Austrittspunkt, der der abgerufenen Austrittspunktkennung entspricht. Der Verbindungsmanager verkapselt auch Pakete von Daten, die von der Client-Verbindung empfangen wurden, und sendet die verkapselten Datenpakete durch einen instanziierten Netzwerktunnel an den gebundenen Austrittspunkt. Eine Entkapselungseinrichtung entkapselt die verkapselten Datenpakete zumindest in der Nähe des Austrittspunkts.
-
In manchen Implementierungen empfängt der Tunnelmanager eine Bekanntgabe eines Tunnelendpunkts von einer Entkapselungseinrichtung, die dem jeweiligen Austrittspunkt zugewiesen ist, und instanziiert für jede Bekanntgabe eines Tunnelendpunkts einen Netzwerktunnel zum zugewiesenen Austrittspunkt. Zusätzlich oder alternativ empfängt der Tunnelmanager eine Bekanntgabe von Tunnelendpunkten von einer jedem Austrittspunkt zugewiesenen Entkapselungseinrichtung und konfiguriert für jede empfangene Bekanntgabe eines Tunnelendpunkts die zugewiesene Entkapselungseinrichtung, um verkapselte Datenpakete, die über einen Netzwerktunnel empfangen wurden, abschließend anzuhalten. Der Tunnelmanager kann dem Verbindungsmanager Tunnelbezeichnungsinformationen wie eine Netzwerktunnelkennung, einen Tunneltyp und/oder eine Austrittspunktkennung bereitstellen und der Verbindungsmanager kann die Datenpakete mit den Tunnelbezeichnungsinformationen verkapseln.
-
Die Austrittsdatenquelle kann mindestens einen Leistungsfaktor wie Latenzzeit, Bandbreite, Kosten und/oder Nutzung zur Assoziation mit mindestens einem Austrittspunkt speichern. Wenn die Austrittsdatenquelle versagt, eine Austrittspunktkennung für die empfangene Client-Verbindung bereitzustellen, kann der Verbindungsmanager die von der Client-Verbindung empfangenen Datenpakete nach einem Standard-Netzwerk-Routingprotokoll senden. Die Datenpakete können durch das Anbieternetzwerk nach dem Standard-Netzwerk-Routingprotokoll zu einem Austrittspunkt geleitet werden, der ein Austrittsrouter sein kann.
-
In noch einem anderen Aspekt der Offenbarung beinhaltet ein Computerprogrammprodukt, das auf einem computerlesbaren Speichermedium kodiert ist, Anweisungen, die, wenn sie von einer Datenverarbeitungseinrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungseinrichtung Vorgänge durchführt, die das Empfangen einer Client-Verbindung von einem externen Netzwerk und das Abrufen einer Austrittspunktkennung von einer Austrittsdatenquelle für die empfangene Client-Verbindung beinhalten. Die Austrittsdatenquelle speichert Austrittspunktkennungen, die mindestens einer Internetprotokolladresse oder einem Subnetzwerk zugewiesen sind. Die Vorgänge beinhalten ferner ein Binden der Client-Verbindung an einen Austrittspunkt, der der abgerufenen Austrittspunktkennung entspricht, ein Verkapseln von Paketen von Daten, die von der Client-Verbindung empfangen wurden, und ein Senden der verkapselten Datenpakete durch einen instanziierten Netzwerktunnel an den gebundenen Austrittspunkt. Die Vorgänge beinhalten auch ein Entkapseln der verkapselten Datenpakete zumindest in der Nähe des gebundenen Austrittspunkts.
-
In manchen Implementierungen beinhalten die Vorgänge das Instanziieren von Netzwerktunneln eines Anbieternetzwerks für jeden Austrittspunkt, der eine entsprechende, von der Austrittsdatenquelle gespeicherte Austrittspunktkennung aufweist. Dementsprechend haben Austrittspunkte, die Austrittspunktkennungen aufweisen, die in der Austrittsdatenquelle fehlen, möglicherweise keine dezidierten Netzwerktunnel instanziiert. In manchen Beispielen beinhalten die Vorgänge das Empfangen eines bekanntgegebenen Tunnelendpunkts von einer Entkapselungseinrichtung, die dem jeweiligen Austrittspunkt zugewiesen ist, und das Instanziieren eines Netzwerktunnels zum zugewiesenen Austrittspunkt für jede Bekanntgabe eines Tunnelendpunkts. Zusätzlich oder alternativ können die Vorgänge das Empfangen eines bekanntgegebenen Tunnelendpunkts von einer jedem Austrittspunkt zugewiesenen Entkapselungseinrichtung sowie für jede empfangene Bekanntgabe eines Tunnelendpunkts das Konfigurieren der zugewiesenen Entkapselungseinrichtung beinhalten, um verkapselte Datenpakete, die über einen Netzwerktunnel empfangen wurden, abschließend anzuhalten.
-
Die Vorgänge können das Abfragen der Austrittsdatenquelle nach einer Austrittspunktkennung beinhalten, die einem Ziel der empfangenen Client-Verbindung zugewiesen ist. Das Ziel kann mindestens eine Internetprotokolladresse oder ein Subnetzwerk beinhalten. Zusätzlich oder alternativ können die Vorgänge das Abfragen der Austrittsdatenquelle nach einer Austrittspunktkennung beinhalten, die einem Austrittspunkt entspricht, der ein Leistungskriterium erfüllt, wie eine Schwellenlatenzzeit, eine Schwellenbandbreite, Schwellenkosten und/oder eine Schwellennutzung. Wenn die Austrittsdatenquelle versagt, eine Austrittspunktkennung für die empfangene Client-Verbindung bereitzustellen, können die Vorgänge das Senden der von der Client-Verbindung empfangenen Datenpakete nach einem Standard-Netzwerk-Routingprotokoll beinhalten.
-
In manchen Implementierungen beinhalten die Vorgänge das Verkapseln der Datenpakete mit empfangenen Tunnelbezeichnungsinformationen, wie einer Netzwerktunnelkennung, einem Tunneltyp und/oder einer Austrittspunktkennung. Ein Tunnelmanager des Anbieternetzwerks kann die Tunnelbezeichnungsinformationen verwenden, um einen Status oder einen Standort der verkapselten Datenpakete zu überwachen.
-
Die Details einer oder mehrerer Ausführungsformen sind in den begleitenden Zeichnungen und der nachfolgenden Beschreibung dargelegt. Andere Merkmale, Objekte und Vorteile sind aus der Beschreibung und den Zeichnungen sowie aus den Patentansprüchen ersichtlich.
-
BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine schematische Ansicht eines beispielhaften Netzwerksystems.
-
2 ist eine schematische Ansicht eines beispielhaften Netzwerksystems, das fähig ist, Datenverkehr zu einer Internetprotokolladresse und/oder einem Subnetzwerk zu lenken.
-
3 ist eine schematische Ansicht einer Internetprotokolladresse.
-
4 ist eine schematische Ansicht einer beispielhaften Austrittsdatenquelle.
-
5 ist eine schematische Ansicht eines beispielhaften Netzwerksystems.
-
6 stellt eine beispielhafte Anordnung von Vorgängen für ein Verfahren zum Identifizieren eines Austrittspunkts zu einem Netzwerkstandort bereit.
-
Gleiche Verweissymbole in den verschiedenen Zeichnungen zeigen gleich Elemente an.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Auf 1 Bezug nehmend, kann in manchen Implementierungen ein Netzwerksystem 10 ein externes Netzwerk 100 wie das Internet oder einen Teil davon in Kommunikation mit einem Anbieternetzwerk 200 beinhalten. Das Netzwerksystem 10 kann ein Netzwerk von Kommunikationspfaden 20 (auch als Links oder Verbindungen bezeichnet) und Knoten 30 (z. B. Router, die Pakete von Daten entlang eines oder mehrerer verbundener Links lenken) beinhalten, die Pakete 40 von Daten nach einem oder mehreren Routingprotokollen von einer Quelle 50a zu einem Ziel 50b senden. Eine eindeutige Internetprotokolladresse (IP-Adresse) identifiziert üblicherweise einen Link 20 oder einen Knoten 30 im Netzwerksystem 10. Das Anbieternetzwerk 200 kann Zugriff auf das externe Netzwerk 100 bereitstellen und/oder Verkehr um dieses herum lenken.
-
Ein mögliches Routingprotokoll für das Netzwerksystem 10 und/oder das externe Netzwerk 100 ist das Border Gateway Protocol (BGP). Das Border Gateway Protocol leitet Daten zwischen autonomen Systemen (AS), die Netzwerke unter einem gemeinsamen Administrator aufweisen und eine gemeinsame Routingrichtlinie nutzen. Router, die das Border Gateway Protocol befolgen, tauschen im Allgemeinen vollständige Routinginformationen während einer Verbindungssitzung aus, zum Beispiel unter Verwendung von Transmission Control-Protokoll (TCP), was ein Routing zwischen autonomen Systemen erlaubt. Die ausgetauschten Informationen können verschiedene Attribute einschließlich eines Attributs für eine nächste Teilstrecke beinhalten. Wo zum Beispiel ein BGP-Router eine Verbindung zu einem Netzwerk in Form eines IP-Adresspräfixes bekannt gibt, beinhaltet das Attribut für die nächste Teilstrecke die IP-Adresse, die verwendet wurde, um den BGP-Router zu erreichen. Innerhalb jedes autonomen Systems beinhaltet das Routingprotokoll üblicherweise ein Interior Gateway Protocol (IGP), das ein Link-State-Protokoll wie Open Shortest Path First (OSPF) oder Intermediate System-Intermediate System (IS-IS) beinhalten kann.
-
Das Anbieternetzwerk 200 beinhaltet einen Verbindungsmanager 210, der von den Quellen 50a empfangene Datenpakete 40 an entsprechende Ziele 50b leiten kann. Der Verbindungsmanager 210 kann auf mindestens einer Rechenvorrichtung 212 wie einem Server in Kommunikation mit dem externen Netzwerk 100 ausgeführt werden. Darüber hinaus kann der Verbindungsmanager 210 auf dem Anbieternetzwerk 200 residieren. Wenn der Verbindungsmanager 210 eine Client-Verbindung 22 von einer Quelle 50a (z. B. einem Client des externen Netzwerks 100) empfängt, kann der Verbindungsmanager 210 einen Austrittspunkt 202 des Anbieternetzwerks 200 zum Binden mit der Client-Verbindung 22 ermitteln, um von der Quelle 50a empfangene Datenpakete 40 an das entsprechende Ziel 50b zu senden. In manchen Implementierungen kann der Verbindungsmanager 210, anstatt sich auf das Standard-Netzwerk-Routingprotokoll zu verlassen, um einen Austrittspunkt 202 für Datenpakete 40 der Client-Verbindung 22 zu ermitteln, einen spezifischen Kommunikationspfad 20 zum Ziel 50b wählen. Dies erlaubt dem Verbindungsmanager 210, einen vorab ausgewählten Kommunikationspfad 20 zu verwenden, der sich von einem vom Standard-Netzwerk-Routingprotokoll gewählten Kommunikationspfad 20 unterscheidet. Als Ergebnis kann bestimmter hochwertiger Verkehr entlang bestimmter Kommunikationspfade 20 unter Verwendung der in der Austrittsdatenquelle 220 gespeicherten Austrittspunkte gelenkt werden. Darüber hinaus, anstatt sich für den gesamten oder beliebigen Datenverkehr auf eine Link-State-Datenbank (LSDB) zu verlassen, die an einem Austrittspunktrouter (für Link-State-Protokoll-Szenarien) gespeichert ist, kann der Verbindungsmanager 210 auf einer separaten Rechenvorrichtung wie einem Server ausgeführt werden, der relativ größere Computer-Verarbeitungs- und Speicherfähigkeiten aufweist.
-
Der Austrittspunkt 202 kann einen oder mehrere Austrittsrouter 204 beinhalten. Die Router 204 stellen im Allgemeinen logische oder physische Grenzen zwischen Subnetzen 306 bereit und verwalten Verkehr zwischen den Subnetzen 306. Jedes Subnetz 306 kann von einem eigenen Standardrouter bedient werden, kann jedoch mehrere physische Ethernet-Segmente beinhalten, die durch Netzwerk-Switches oder Netzwerkbrücken untereinander verbunden sind,
-
3 stellt eine beispielhafte IP-Adresse 300 dar. IP-Netzwerke können sowohl in IPv4 als auch IPv6 in Subnetzwerke aufgeteilt werden. Zu diesem Zweck weist eine IP-Adresse 300 im Allgemeinen zwei Teile auf: ein Netzwerkpräfix 302 und eine Host-Kennung 304 oder Schnittstellenkennung (IPv6). Für IPv4 kann eine Subnetzmaske verwendet werden, um die IP-Adresse 300 in einen Teil eines Subnetzwerks 306 und die Host-Kennung 304 aufzuteilen.
-
Ein Subnetzwerk 306 oder Subnetz ist im Allgemeinen eine Unterteilung eines IP-Netzwerks. Die Unterteilung in Subnetze kann der Prozess eines Bestimmens einiger Bits hoher Ordnung von der Host-Kennung 304 der IP-Adresse 300 und eines Gruppierens dieser mit einer Netzwerkmaske sein, um eine Subnetzmaske zu bilden. Dies teilt das IP-Netzwerk in kleinere Subnetzwerke 306 auf. Alle Rechenvorrichtungen, die zu einem Subnetzwerk 306 gehören, können mit einer gemeinsamen, identischen, höchstwertigen Bitgruppe in ihren IP-Adressen 300 adressiert werden.
-
Wiederum bezugnehmend auf 2, können mehrere Austrittspunkte 202 einen Kommunikationspfad 20 (z. B. einen Link) zu einem bestimmten Ziel 50b bekanntgeben. Darüber hinaus kann der Verbindungsmanager 210 in manchen Fällen Bekanntgaben nur in Blöcken von IP-Adressen 300 akzeptieren. Eine Routingrichtlinie zum Routing von Austrittsverkehr kann verursachen, dass der Verbindungsmanager 210 nur einen Austrittspunkt 202 (kein Lastausgleich angenommen) zum Lenken von Datenpaketen 40 aus dem Anbieternetzwerk 200 zu einem Präfix 302 dieses Ziels 50b wählt, auch wenn mehrere gültige Austrittspunkte 202 existieren können. Ein Austrittspunkt 202 kann zum Beispiel eine relativ niedrige Latenzzeit zum Senden von Datenpaketen 40 an einen ersten Satz von IP-Adressen 300 aufweisen, während ein anderer Austrittspunkt 202 eine relativ niedrige Latenzzeit zum Senden von Datenpaketen 40 an einen zweiten Satz von IP-Adressen 300 aufweisen kann.
-
Unter Bezugnahme auf 2–4 leitet das Anbieternetzwerk 200 in manchen Implementierungen Austrittsverkehr an einen Teil eines Präfixes 302, d. h. ein Subnetzwerk 306, das individuelle IP-Adressen 300 dieses Präfixes 302 beinhaltet. Dies ermöglicht eine Auswahl eines effizienten Austrittspunkts 202 zum Anbinden einer bestimmten Client-Verbindung 22.
-
In manchen Implementierungen kommuniziert der Verbindungsmanager 210 mit einer Austrittsdatenquelle 220, um einen Austrittspunkt 202 zum Binden mit einer empfangenen Client-Verbindung 22 auszuwählen, anstatt sich nur auf natürliches Netzwerk-Routing zu verlassen. Die Austrittsdatenquelle 220 speichert Austrittspunktkennungen 402 der entsprechenden Austrittspunkte 202, die Internetprotokoll-Adressen 300 (IP-Adressen) und/oder Subnetzwerken 306 zugewiesen sind. Jeder Austrittspunkt 202 kann (über seine Austrittspunktkennung) einer oder mehreren IP-Adressen 300 und/oder Subnetzwerken 306 zugewiesen sein. Die Assoziationen können auf Basis von mindestens einem Leistungsfaktor 404, wie Latenzzeit PCm-1, Bandbreite PCm-2, Kosten PCm-3 und/oder Nutzung PCm-4 ermittelt werden. Darüber hinaus kann die Austrittsdatenquelle 220 mindestens einen Leistungsfaktor 404 zur Assoziation mit mindestens einem Austrittspunkt 202 speichern. Der Verbindungsmanager 210 kann die Austrittsdatenquelle 220 nach IP-Adresse 300, Subnetzwerk 306 und/oder Leistungsfaktor 404 abfragen. Der Verbindungsmanager 210 kann zum Beispiel die Austrittsdatenquelle 220 nach einer Austrittspunktkennung 402 abfragen, der einem Austrittspunkt 202 entspricht, der ein Leistungskriterium 404 erfüllt, das eine Schwellenlatenzzeit PCm-1, eine Schwellenbandbreite PCm-2, Schwellenkosten PCm-3 und/oder eine Schwellennutzung PCm-4 beinhaltet.
-
4 stellt ein beispielhaftes Beziehungsmodell 400 dar, das eine mögliche 1:n-Beziehung zwischen Austrittspunkten 202 bereitstellt, von denen jeder eine Austrittspunktkennung 402 (z. B. eindeutigen Kennung) und IP-Adressen 300, Subnetzwerke 306 und/oder Leistungsfaktoren 404 aufweist. Die Austrittsdatenquelle 220 kann eine relationale Datenbank sein, was eine flexible Verwaltung und Speicherung von Informationen erlaubt, die den Austrittspunkten 202 zugewiesen sind.
-
Wiederum bezugnehmend auf 2 kommuniziert der Verbindungsmanager 210 mit einem Tunnelmanager 230 zum Routing von Datenpaketen 40 von der Client-Verbindung 22 zum Ziel 50b. Der Tunnelmanager 230 kann beispielsweise für jeden Austrittspunkt 202, der eine entsprechende, von der Austrittsdatenquelle 220 gespeicherte Austrittspunktkennung 402 aufweist, Netzwerktunnel 232 des Anbieternetzwerks 200 instanziieren. In manchen Implementierungen instanziiert der Tunnelmanager 230 Netzwerktunnel 232 nur für Austrittspunkte 202, die nicht auf natürliche Weise vom Standard-Netzwerk-Routingprotokoll ausgewählt würden. Natürliche Austrittspunkte 202a, die normalerweise vom Netzwerk-Routingprotokoll ausgewählt werden, benötigen möglicherweise keine Netzwerktunnel 232, da sich die Datenpakete 40 unter dem normalen (standardmäßigen) Routingprotokoll zu diesen Austrittspunkten 220a bewegen können. Andererseits benötigen vorab ausgewählte Austrittspunkte 202b, wie die in der Austrittsdatenquelle 220 gespeicherten, Netzwerktunnel 232, um Datenpakete 40 zu diesen Standorten gegen das normale Routingprotokoll zu lenken. Als solcher kann der Tunnelmanager 230 in manchen Beispielen Netzwerktunnel 232 nur für Austrittspunkte 202, 202b einrichten, die von der Austrittsdatenquelle 220 angegeben wurden.
-
Wenn der Verbindungsmanager 210 eine Client-Verbindung 22 vom externen Netzwerk 100 empfängt, kann der Verbindungsmanager 210 eine Austrittspunktkennung 402 von der Austrittsdatenquelle 220 auf Basis der IP-Adresse 300 und/oder des Subnetzwerks 306 des entsprechenden Ziels 50b der Client-Verbindung 22 abrufen. Der Verbindungsmanager 210 bindet die Client-Verbindung 22 an einen Austrittspunkt 202, der der abgerufenen Austrittspunktkennung 402 entspricht. Der Verbindungsmanager 210 verkapselt auch Pakete 40 von Daten, die von der Client-Verbindung 22 empfangen wurden, und sendet die verkapselten Datenpakete 40a durch einen instanziierten Netzwerktunnel 232 zum gebundenen Austrittspunkt 202. Der Verbindungsmanager 210 kann beispielsweise Multiprotocol Label Switching (MPLS), Generic Routing Encapsulation (GRE) oder ein virtuelles lokales Netzwerk (VLAN) verwenden, um die Datenpakete 40 zu verkapseln und die verkapselten Datenpakete 40a über das Anbieternetzwerk 200 an den gebundenen Austrittspunkt 202 zu senden. MPLS lenkt Daten auf Basis von kurzen Pfadbezeichnungen anstatt langer Netzwerkadressen von einem Netzwerkknoten 30 zum nächsten, wodurch komplexes Nachschlagen in einer Routingtabelle vermieden wird.
-
Wenn einzelne Datenpakete 40 an einen bestimmten Austrittspunkt 202 gebunden werden müssen, kann der Verbindungsmanager 210 eine verzögerte Bindung und eine Migration von in Bearbeitung befindlichen Abläufen zwischen den Austrittspunkten 202 unterstützen. In manchen Beispielen führt der Verbindungsmanager 210 eine Eingabe/Ausgabe-Steuerungsanforderung an einem bestehenden Socket aus, um einen Kernel zu veranlassen, die durch diesen Socket zum gebundenen Austrittspunkt 202 gesendeten Datenpakete 40 zu verkapseln.
-
In manchen Implementierungen hält eine Entkapselungseinrichtung 240 den Tunnelverkehr am Austrittspunkt 202 abschließend an. Die Entkapselungseinrichtung 240 entkapselt verkapselte Datenpakete 40a, die vom Verbindungsmanager 210 durch einen Netzwerktunnel 232 an den gebundenen Austrittspunkt 202 gesendet wurden. Die entkapselten Datenpakete 40 werden im Anbieternetzwerk 200 einem natürlichen Netzwerkrouting folgend zum Austrittspunkt 202 weitergeleitet. Jede Entkapselungseinrichtung 240 kann einen Tunnelendpunkt 234 bekanntgeben (der z. B. einem Austrittspunkt 202 zugewiesen ist). Der Tunnelmanager 230 kann die jeder empfangenen Bekanntgabe von Tunnelendpunkten 234 zugewiesene Entkapselungseinrichtung 240 konfigurieren, um verkapselte Datenpakete 40a abschließend anzuhalten, die durch einen Netzwerktunnel 232 empfangen wurden. In manchen Beispielen ist die Entkapselungseinrichtung 240 ein Teil eines Netzwerkknotens 30 (z. B. ein Router), während die Entkapselungseinrichtung 240 in anderen Beispielen eine spezialisierte Komponente ist, die mit dem Tunnelmanager 230 und/oder dem Austrittspunkt 202 kommuniziert. Das Anbieternetzwerk 200 kann mehrere Entkapselungseinrichtungen 240 beinhalten, von denen jede mehreren Netzwerktunneln 232 zugewiesen sein kann, die durch Gruppen von Servern an einem bestimmten Standort aggregiert wurden. Ein einziger Netzwerktunnel 232 kann von mehreren Servern verwendet werden, um mit vielen Clients in verschiedenen externen Netzwerken 100 zu kommunizieren.
-
In einigen Beispielen muss das Anbieternetzwerk 200 die verkapselten Datenpakete 40a nicht vollständig an den gebundenen Austrittspunkt 202 senden. Stattdessen können die verkapselten Datenpakete 40a einfach eine Schwellendistanz in der Nähe des Austrittspunkts 202 erreichen, wo ein natürliches Netzwerkrouting die verkapselten Datenpakete 40a zu einem bestimmten Austrittspunkt 202 oder einen bestimmten Router 204 am Austrittspunkt 202 lenkt.
-
Der Tunnelmanager 230 kann Bekanntgaben von Tunnelendpunkten von Entkapselungseinrichtungen 240 empfangen, die den Austrittspunkten 202 zugewiesen sind, und instanziiert Netzwerktunnel 232 für jeden Austrittspunkt 202. Darüber hinaus kann der Tunnelmanager 230 dem Verbindungsmanager 210 Tunnelinformationen bereitstellen, die die Tunnelinformationen zum Verkapseln der Datenpakete 40 verwenden können. In manchen Beispielen beinhalten die Tunnelinformationen eine Tunnelkennung, einen Tunneltyp und/oder eine Austrittspunktkennung für einen zugewiesenen Netzwerktunnel 232. Wenn der Verbindungsmanager 210 verkapselte Datenpakete 40a durch einen Netzwerktunnel 232 sendet, kann der Tunnelmanager 230 oder der Verbindungsmanager 210 den Netzwerktunnel 232 überwachen, um eine Lieferung der verkapselten Datenpakete 40a zu verifizieren. Ein innerer Header der verkapselten Datenpakete 40a kann eine Ziel-IP-Adresse 300 für ein überwachendes Objekt aufweisen, wie eine IP-Adresse 300 für den Tunnelmanager 230 oder den Verbindungsmanager 210, was dem überwachenden Objekt erlaubt, die Bewegung der verkapselten Datenpakete 40a zu prüfen und die Lieferung der verkapselten Datenpakete 40a durch den Netzwerktunnel 232 zum Austrittspunkt 202 zu verifizieren.
-
Unter Bezugnahme auf 2 und 5, fragt der Tunnelmanager 230 in manchen Implementierungen die Austrittsdatenquelle 220 nach IP-Subnetzen 306 und/oder IP-Adressen 300 und deren zugewiesenen Austrittspunkten 202 ab. Der Tunnelmanager 230 kann Bekanntgaben von den abgefragten Austrittspunkten 202 (z. B. von entsprechenden Netzwerktunnel-Endpunkten 234) einholen und dann einen Netzwerktunnel 232 zu jedem Austrittspunkt 202 instanziieren. Der Tunnelmanager 230 kann Tunnelinformationen 236 an den Verbindungsmanager 210 kommunizieren, wie eine Netzwerktunnelkennung 236a, einen Tunneltyp 236b, eine entsprechende Austrittspunktkennung 402, Verkapselung und/oder Bezeichnungsinformationen usw.
-
Wenn der Verbindungsmanager 210 eine Client-Verbindung 22 von einer Quelle 50a (z. B. einem Client) in einem externen Netzwerk 100 empfängt, fragt der Verbindungsmanager 210 die Austrittsdatenquelle 220 nach einem Austrittspunkt 202 ab, der einem Ziel 50b der Client-Verbindung 22 entspricht. Falls die Austrittsdatenquelle 220 keine Austrittspunkte 202 aufweist, die dem Ziel 50b zugewiesen sind (z. B. einen leeren Datensatz für die Abfrage zurückgibt), kann der Verbindungsmanager 210 der Quelle 50a unter Verwendung von natürlichem Netzwerkrouting antworten. In diesem Fall bewegen sich die Datenpakete 40 durch das Anbieternetzwerk 200 unter Verwendung von natürlichem Netzwerkrouting zu einem natürlichen Austrittspunkt 202a, was weniger effizient sein kann als ein vorab ausgewählter Austrittspunkt 202b, der in der Austrittsdatenquelle 220 gespeichert ist und diesem Ziel 50b zugewiesen ist.
-
Falls die Austrittsdatenquelle 220 eine Austrittspunktkennung 402 u einem vorab ausgewählten Austrittspunkt 202b zurückgibt, kann der Verbindungsmanager 210 die Austrittspunktkennung 402 mit den vom Tunnelmanager 230 empfangenen Tunnelinformationen zum Identifizieren der entsprechenden Verkapselungs-/Bezeichnungsinformationen querverweisen. Der Verbindungsmanager 210 verkapselt die von der Quelle 50a empfangenen Datenpakete 40 und sendet die verkapselten Datenpakete 40a über einen instanziierten Netzwerktunnel 232 in das Anbieternetzwerk 200 zur dem Austrittspunkt 202 zugewiesenen Entkapselungseinrichtung 240. Die Entkapselungseinrichtung 240 entkapselt die verkapselten Datenpakete 40a und leitet die Datenpakete 40 in das Anbieternetzwerk 200 zumindest in die Nähe des vorab ausgewählten Austrittspunkts 202b weiter, wo das natürliche Netzwerkrouting die Datenpakete zum vorab ausgewählten Austrittspunkt 202b lenken kann.
-
In manchen Implementierungen wird ein erster Prozentsatz von Datenflüssen zu verschiedenen Zielen 50b nicht verkapselt und diesem wird erlaubt, auf natürliche Weise nach dem Standard-Netzwerk-Routingprotokoll auszutreten. Diese Ziele 50b weisen keine zugewiesenen, in der Austrittsdatenquelle 220 gespeicherten Austrittspunkte 202 auf. Während ein zweiter Prozentsatz von Datenflüssen im Anbieternetzwerk 200 (wie hochwertige Flüsse), die Ziele 50b aufweisen, die in der Austrittsdatenquelle 220 ausgewiesen sind, zur Bewegung durch einen Netzwerktunnel 232 zu einem vorab ausgewählten Austrittspunkt 202b verkapselt werden kann. Falls ein vorab ausgewählter Austrittspunkt 202b nicht mehr existiert, können die Daten unter Verwendung des Standard-Netzwerk-Routingprotokolls fließen.
-
6 stellt eine beispielhafte Anordnung 600 von Vorgängen für ein Verfahren zum Identifizieren eines Austrittspunkts 202 zu einem Netzwerkstandort bereit. Das Verfahren beinhaltet ein Empfangen 602 einer Client-Verbindung 22 von einem externen Netzwerk 100 und ein Empfangen 604 einer Austrittspunktkennung 402 von der Austrittsdatenquelle 220 für die empfangene Client-Verbindung 22. Die Austrittsdatenquelle 220 kann Austrittspunktkennungen 402 speichern, die mindestens einer IP-Adresse 300 oder einem Subnetzwerk 306 zugewiesen sind. Das Verfahren beinhaltet ferner ein Binden 606 der Client-Verbindung 22 an einen Austrittspunkt 202, der der abgerufenen Austrittspunktkennung 402 entspricht. Das Verfahren beinhaltet ein Verkapseln 608 von von der Client-Verbindung 22 empfangenen Datenpaketen 40, ein Senden der verkapselten Datenpakete 40a durch einen instanziierten Netzwerktunnel 232 zum gebundenen Austrittspunkt 202 und ein Entkapseln der verkapselten Datenpakete 40a zumindest in der Nähe des gebundenen Austrittspunkts 202.
-
In manchen Implementierungen beinhaltet das Verfahren ein Instanziieren von Netzwerktunneln 232 des Anbieternetzwerks 200 (z. B. über den Tunnelmanager 230) für jeden Austrittspunkt 202, der eine entsprechende, von der Austrittsdatenquelle 220 gespeicherte Austrittspunktkennung 402 aufweist. In manchen Beispielen beinhaltet dies ein Empfangen eines bekanntgegebenen Tunnelendpunkts 234 von einer Entkapselungseinrichtung 240, die dem jeweiligen Austrittspunkt 202 zugewiesen ist, und ein Instanziieren eines Netzwerktunnels 232 zum zugewiesenen Austrittspunkt 202 für jede Bekanntgabe eines Tunnelendpunkts 234.
-
Das Verfahren kann ein Abfragen der Austrittsdatenquelle 220 nach einer Austrittspunktkennung 402 beinhalten, der einem Ziel 50b der empfangenen Client-Verbindung 22 zugewiesen ist. Das Ziel 50b kann eine Internetprotokolladresse 300 und/oder ein Subnetzwerk 306 sein. In zusätzlichen Implementierungen beinhaltet das Verfahren ein Abfragen der Austrittsdatenquelle 220 nach einer Austrittspunktkennung 402, die einem Austrittspunkt 202 entspricht, der ein Leistungskriterium erfüllt, wie eine Schwellenlatenzzeit, eine Schwellenbandbreite, Schwellenkosten und/oder eine Schwellennutzung. Darüber hinaus kann das Verfahren ein Entkapseln der Datenpakete 40 mit Tunnelbezeichnungsinformationen beinhalten, die vom Tunnelmanager 230 empfangen wurden, wie einer Netzwerktunnelkennung, einem Tunneltyp und/oder einer Austrittspunktkennung 402.
-
Wenn die Austrittsdatenquelle 220 versagt, eine Austrittspunktkennung 402 für die empfangene Client-Verbindung 22 bereitzustellen, kann das Verfahren ein Senden der von der Client-Verbindung 22 empfangenen Datenpakete 40 nach dem Standard-Netzwerk-Routingprotokoll beinhalten. Das Standardnetzwerk-Routingprotokoll kann die Datenpakete 40 zur Lieferung an das Ziel 50b an einen anderen Austrittspunkt 202 weiterleiten.
-
Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können in digitaler elektronischer Verschaltung, integrierter Verschaltung, speziell konzipierten ASICs (anwendungsspezifischen integrierten Schaltkreisen), Computerhardware, Firmware, Software und/oder Kombinationen davon realisiert sein. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen beinhalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor beinhaltet, der ein spezieller Prozessor oder ein Prozessor für allgemeine Zwecke sein kann, und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Anweisungen an ein Speichersystem, mindestens eine Eingabevorrichtung und mindestens eine Ausgabevorrichtung gekoppelt ist.
-
Diese Computerprogramme (auch bekannt als Programme, Software, Softwareanwendungen oder Code) beinhalten Maschinenanweisungen für einen programmierbaren Prozessor und können in einer höheren prozeduralen und/oder objektorientierter Programmiersprache und/oder in Assembler-/Maschinensprache implementiert werden. Wie hier verwendet, bezeichnen die Begriffe „maschinenlesbares Medium”, „computerlesbares Medium” ein beliebiges Computerprogrammprodukt, eine beliebige Vorrichtung und/oder ein beliebiges Gerät (z. B. Magnetplatten, optische Platten, Speicher, programmierbare Logikbausteine (PLDs)), die verwendet werden, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen, einschließlich eines maschinenlesbaren Mediums, das Maschinenanweisungen als ein maschinenlesbares Signal empfängt. Der Begriff „maschinenlesbares Signal” bezeichnet ein beliebiges Signal, das verwendet wird, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen.
-
Ausführungsformen des Gegenstands und die in dieser Beschreibung beschriebenen Tätigkeiten können in digitalen elektronischen Schaltungen oder in Computer-Software, Firmware oder Hardware implementiert werden, einschließlich der in dieser Beschreibung offenbarten Strukturen und ihrer strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer davon. Aspekte des in dieser Beschreibung beschriebenen Gegenstands können als ein oder mehrere Computerprogrammprodukte, d. h. als ein oder mehrere Module von Computerprogrammanweisungen implementiert werden, die auf einem computerlesbaren Medium für die Ausführung durch oder die Steuerung des Betriebs der datenverarbeitenden Einrichtung kodiert werden. Das computerlesbare Medium kann eine maschinenlesbare Speichervorrichtung, ein maschinenlesbares Speichersubstrat, eine Speichervorrichtung, eine Stoffzusammensetzung, die ein maschinenlesbares verbreitetes Signal bewirkt, oder eine Kombination aus einem oder mehreren davon sein. Der Begriff „datenverarbeitende Einrichtung” umfasst jegliche Einrichtungen, Vorrichtungen oder Maschinen zur Verarbeitung von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers bzw. mehrerer Prozessoren oder Computer. Der Apparat kann neben der Hardware auch einen Code einschließen, der eine Ausführungsumgebung für das betreffende Computerprogramm erstellt, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbank-Managementsystem, ein Betriebssystem oder eine Kombination einer oder mehrerer der genannten darstellt. Ein propagiertes Signal ist ein künstlich erzeugtes Signal, z. B. ein maschinell erzeugtes elektrisches, optisches oder elektromagnetisches Signal, das erzeugt wird, um Informationen für die Übertragung an eine geeignete Empfängereinrichtung zu kodieren.
-
Ein Computerprogramm (auch als Programm, Software, Softwareanwendung, Script oder Code bezeichnet) kann in einer beliebigen Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, und das Programm kann in jeder beliebigen Form eingesetzt sein, darunter als eigenständiges Programm oder als ein Modul, eine Komponente, eine Subroutine oder eine andere Einheit, die zur Benutzung in einer Rechenumgebung geeignet ist. Ein Computerprogramm entspricht nicht unbedingt einer Datei in einem Dateisystem. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten beinhaltet (z. B. ein oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern). Ein Computerprogramm kann auf einem Computer oder mehreren Computer eingerichtet sein oder ausgeführt werden, die an einem Standort angeordnet sind oder über mehrere Standorte verteilt sind und über ein Kommunikationsnetz verbunden sind.
-
Die in dieser Beschreibung dargestellten Prozesse und Logik-Abläufe können durch einen oder mehrere programmierbare Prozessoren durchgeführt werden, der bzw. die ein oder mehrere Computerprogramme ausführt bzw. ausführen, um Funktionen durch das Einwirken auf Eingabedaten und das Erzeugen einer Ausgabe durchzuführen. Die Prozesse und die logischen Abläufe können auch durch logische Sonderzweckschaltungen durchgeführt werden, und der Apparat kann als Sonderzweckschaltungen implementiert werden, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung).
-
Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, schließen beispielsweise sowohl allgemeine und als auch Spezial-Mikroprozessoren sowie alle Arten eines oder mehrerer Prozessoren jeglicher Art Digitalrechner ein. Ganz allgemein nimmt ein Prozessor Befehle und Daten von einem Festwertspeicher oder einem Arbeitsspeicher oder von beiden entgegen. Die wesentlichen Elemente eines Computers sind ein Prozessor für das Ausführen von Befehlen und ein oder mehrere Speichergeräte für das Speichern von Befehlen und Daten. In der Regel beinhaltet ein Computer auch eine oder mehrere Massenspeichergeräte zum Speichern von Daten, wie z. B: magnetische, magneto-optische oder optische Festplatten bzw. wird operativ an diese gekoppelt, um Daten von denselben zu empfangen oder auf dieselben zu übertragen. Jedoch muss ein Computer solche Geräte nicht haben. Außerdem kann ein Computer in einem anderen Gerät eingebettet sein, z. B. in einem Mobiltelefon, einem Organizer (PDA), einem mobilen Audioplayer oder einem GPS-Empfänger (globales Positionierungssystem), um nur einige zu nennen. Computerlesbare Medien, die für das Speichern von Computerprogrammbefehlen und -daten geeignet sind, schließen alle Formen von nichtflüchtigen Speichern, Medien und Speichergeräten ein, einschließlich beispielsweise Halbleiter-Speichergeräte, z. B. EPROM, EEPROM und Flash-Speicher; Magnetplatten, z. B. interne Festplatten oder Wechselplatten; magneto-optische Platten; und CD-ROM- und DVD-ROM-Platten. Der Prozessor und der Speicher können durch logische Sonderzweckschaltungen ergänzt werden oder darin eingebaut sein.
-
Implementierungen des in dieser Beschreibung betrachteten Gegenstands können in einem Rechensystem implementiert werden, das eine Backend-Komponente (z. B. als einen Datenserver) oder eine Middleware-Komponente (z. B. einen Anwendungsserver) oder eine Frontend-Komponente (z. B. eine Client-Recheneinheit mit grafischer BenutZeroberfläche oder Webbrowser) beinhaltet, worüber der Benutzer mit einer Implementierung des in dieser Beschreibung betrachteten Gegenstands interagieren kann, oder eine beliebige Kombination aus diesen Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk miteinander verbunden werden. Zu Kommunikationsnetzwerken zählen beispielsweise lokale Netzwerke („LAN”) und Großraumnetzwerke („WAN”), wie z. B. das Internet.
-
Das Computersystem kann Clients und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computer laufen und die eine Client-Server-Beziehung zueinander haben.
-
Zwar beinhaltet diese Beschreibung viele spezifische Implementierungsdetails, jedoch sollten diese nicht als Beschränkungen des Umfangs der Erfindung oder der möglichen Ansprüche ausgelegt werden, sondern vielmehr als Beschreibungen spezifischer Merkmale bestimmter Ausführungsformen der Erfindung. Bestimmte Eigenschaften, die in dieser Spezifikation im Kontext gesonderter Implementierungen beschrieben sind, können auch in Kombination in einer einzelnen Implementierung implementiert werden. Umgekehrt können verschiedene, im Kontext einer einzelnen Implementierung beschriebene Merkmale auch in mehreren Implementierungen separat oder in einer beliebigen geeigneten Unterkombination implementiert werden. Auch wenn die Merkmale vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar anfänglich als solche beansprucht werden, können außerdem ein oder mehrere Merkmale einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst werden und die beanspruchte Kombination kann an eine Unterkombination oder eine Variation einer Unterkombination verwiesen werden.
-
Ebenso werden Tätigkeiten in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, aber dies sollte nicht als Erfordernis verstanden werden, dass diese Tätigkeiten in der bestimmten gezeigten Reihenfolge oder in einer aufeinanderfolgenden Reihenfolge durchgeführt werden müssen oder dass alle dargestellten Tätigkeiten durchgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsformen nicht als eine solche Trennung in allen Ausführungsformen erfordernd aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in einem einzigen Softwareprodukt integriert oder zu mehreren Softwareprodukten verkapselt werden können.
-
Einige Implementierungen sind beschrieben worden. Trotzdem versteht sich, dass verschiedene Modifikationen durchgeführt werden können, ohne vom Geist und Umfang der Offenbarung abzuweichen. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche. Die in den Patentansprüchen angegebenen Aktionen können beispielsweise in einer anderen Reihenfolge durchgeführt werden und dennoch die erwünschten Ergebnisse erzielen.