-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft allgemein das Gebiet von Datenübertragungen und insbesondere das Übertragen von Mehrfachzielpaketen in Overlay-Netzwerken.
-
HINTERGRUND
-
Eine Datenverarbeitungsumgebung weist eine Vielfalt an Hardware-, Software- und Firmware-Vernetzungskomponenten auf. Bei einem auch als Underlay bezeichneten physischen Netzwerk handelt es sich um ein Netzwerk, das unter Verwendung solcher Komponenten definiert wird.
-
Gegenwärtig stehen Techniken zur Verfügung, um ein logisches Netzwerk, das auch als Software-Defined-Network- (SDN-) Overlay (im Folgenden „Overlay“, „Overlay-Netzwerk“ oder „OVN“) bekannt ist, aus solchen Vernetzungskomponenten zu konstruieren. Im Wesentlichen werden Vernetzungskomponenten zu entsprechenden logischen oder virtuellen Darstellungen abstrahiert, und die Abstraktionen werden zum Definieren des Overlay verwendet. Mit anderen Worten, bei einem Overlay handelt es sich um ein logisches Netzwerk, das unter Verwendung von logischen Darstellungen zugrundeliegender Vernetzungskomponenten gebildet und betrieben wird.
-
Physische Netzwerke bestehen normalerweise innerhalb der demarkierten Grenze der Datenverarbeitungsumgebung, deren Vernetzungskomponenten im physischen Netzwerk verwendet werden. Im Gegensatz zu einem physischen Netzwerk kann ein Overlay so gestaltet sein, dass es sich über eine oder mehrere Datenverarbeitungsumgebungen erstreckt. Während ein physisches Netzwerk in einem Datenzentrum enthalten sein kann, kann sich ein Overlay beispielsweise über ein oder mehrere Datenzentren erstrecken.
-
Zum Beispiel kann eine logische Darstellung eines Netzwerk-Gateways an einem Overlay beteiligt sein, so dass eine der logischen Darstellung des Netzwerk-Gateways zugeschriebene Funktion im Overlay tatsächlich von der zugrundeliegenden Netzwerk-Gateway-Komponente im Underlay ausgeführt wird.
-
Da die eigentlichen Vernetzungskomponenten, die die Vernetzungsfunktionen ausführen, in einem Overlay zu logischen Einheiten abstrahiert werden, die die von diesen Komponenten angebotene Vernetzungsfunktionalität und nicht die tatsächlichen Implementierungen jener Funktionalitäten darstellen, ist es erforderlich, diese Vernetzungsfunktionalität in ein funktionierendes logisches Netzwerk zu lenken. Eine SDN-Steuereinheit ist eine Komponente, die die logischen Vernetzungskomponenten in einem Overlay verwaltet und steuert.
-
Eine virtuelle Maschine (VM) weist virtualisierte Darstellungen realer Hardware-, Software- und Firmware-Komponenten auf, die in einem Datenverarbeitungssystem verfügbar sind. Das Datenverarbeitungssystem kann eine beliebige Anzahl von darin konfigurierten VMs aufweisen und eine beliebige Anzahl von virtualisierten Komponenten darin verwenden. Das Datenverarbeitungssystem wird auch als Datenverarbeitungsknoten, Rechenknoten, Knoten oder Host bezeichnet.
-
In Großrechner-Datenverarbeitungsumgebungen, beispielsweise in einem Datenzentrum, können zu jedem beliebigen Zeitpunkt tausende von VMs in einem Host betrieben werden, und hunderte, wenn nicht tausende solcher Hosts können im Datenzentrum gleichzeitig betrieben werden. Eine virtualisierte Datenverarbeitungsumgebung wie das beschriebene Datenzentrum wird oftmals als „Cloud“ bezeichnet, die Datenverarbeitungs-Ressourcen und Datenverarbeitungsdienste für mehrere Clients bedarfsorientiert bereitstellt.
-
Bei einem virtuellen Switch, hierin manchmal als vSwitch bezeichnet, handelt es sich um eine Software-Anwendung, die eine Datenübertragung zwischen VMs ermöglicht. Ein virtueller Switch ist komplett virtuell und kann mit einer Netzwerkschnittstellenkarte (NIC) verbunden werden. Ein virtueller Switch verbindet physische Switches zu einem einzigen logischen Switch. Dies ist hilfreich, um die Bandbreite zu erhöhen und ein aktives Netz zwischen Servern und Switches zu erzeugen. Ein virtueller Switch kann in die auf einem Server installierte Software eingebettet oder als Teil seiner Firmware in die Hardware eines Servers integriert werden.
-
Eine Netzwerkvirtualisierung durch das Definieren von Overlay-Netzwerken ist ein aufkommender Trend bei der Verwaltung und beim Betrieb von Datenzentren und Cloud Computing-Umgebungen. Eines der Ziele einer Netzwerkvirtualisierung ist das Vereinfachen der Netzwerkbereitstellung in Multi-Tenant-Datenverarbeitungsumgebungen sowie speziellen Kundendatenverarbeitungsumgebungen.
-
Unicast ist ein Verfahren zum Übertragen von Daten von Punkt zu Punkt, das heißt, von einem einzelnen Sender an einen einzelnen Empfänger. Beim Broadcast-Verfahren werden dieselben Daten an alle möglichen Ziele übertragen. In einem weiteren Verfahren zur Verteilung an Mehrfachziele, Multicast, werden dieselben Daten nur an interessierte, als Empfänger bezeichnete Ziele übertragen, indem spezielle Adresszuweisungen verwendet werden. Bei Internet Protocol- (IP-) Multicast handelt es sich um den Prozess des Multicast-Übertragens von IP-Paketen an mehrere Empfänger in einem einzigen Übertragungsvorgang des IP-Pakets. IP-Multicast ist eine weitverbreitete Technik, die verwendet wird, um Bandbreite im Datenzentrum zu sparen und die Server-Last zu verringern.
-
Das Betreiben von IP-Multicast in einem Overlay-Netzwerk wird als Overlay-Multicast bezeichnet. Overlay-Multicast kann in Abhängigkeit von der im Underlay-Netzwerk bereitgestellten Unterstützung für Multicast-Verfahren auf verschiedene Arten erreicht werden. Ein auf Overlay-Multicast beruhendes Multicast-Verfahren macht es erforderlich, dass das Underlay-Netzwerk eine Unterstützung für Multicast bereitstellt. Multicast in Underlay-Netzwerken ist gegenwärtig in Datenverarbeitungsumgebungen nicht weitverbreitet. Beim auf Multi-Unicast beruhenden Overlay-Multicast handelt es sich um ein Verfahren zum Übertragen von Multicast-Paketen im Overlay-Netzwerk, wobei das Underlay Unicast, jedoch kein Multicast unterstützt.
-
Die Druckschrift
WO 2013/184 846 A1 ein Verfahren. Das Verfahren umfasst: Empfangen von Informationen, die Paketeigenschaften von zu analysierenden Paketen und einen Zeitabschnitt, in dem die Paketeigenschaften anzuwenden sind, angeben, von einem Controller eines virtuellen Netzes durch ein Netzgerät mit einem Agenten eines virtuellen Netzes und einem Switch eines virtuellen Netzes aus einer Vielzahl von untereinander verbundenen Switches eines virtuellen Netzes, die durch ein Overlay-Netz mit dem Controller eines virtuellen Netzes verbunden sind; in Ansprechen auf Bestimmen, dass die Informationen nach dem Ablauf des Zeitabschnitts, in dem die Paketeigenschaften anzuwenden sind, empfangen werden, Ignorieren der empfangenen Informationen durch den Agenten eines virtuellen Netzes; und in Ansprechen auf Bestimmen, dass der Zeitabschnitt, in dem die Paketeigenschaften anzuwenden sind, noch nicht verstrichen ist: Installieren eines Paketklassifizierers im Switch eines virtuellen Netzes durch den Agenten eines virtuellen Netzes basierend auf den Informationen; ansprechend auf Bestimmen, dass ein empfangenes Paket mit den angegebenen Eigenschaften übereinstimmt, durch den Agenten eines virtuellen Netzes Bestimmen eines Hash eines unveränderlichen Teils des Pakets, der das Paket eindeutig identifiziert, um eine Paketsignatur zu erhalten; und Weiterleiten einer Nachricht an den Controller eines virtuellen Netzes, wobei die Nachricht Folgendes angibt: die Paketsignatur, eine Kennung des Netzgeräts und einen Zeitstempel, der anzeigt, wann das Paket durch das Netzgerät verarbeitet wurde.
-
Die Druckschrift US 2013 / 0 329 605 A1 betrifft ein Verfahren. Das Verfahren umfasst: Erzeugen eines Multicast-Baums für Endpunktgeräte einer Multicast-Gruppe in dem virtuellen Netzwerk mit einer virtuellen Netzwerksteuerung; Speichern des Multicast-Baums in einem Speicher innerhalb der virtuellen Netzwerksteuerung; und Übermitteln des Multicast-Baums mit der virtuellen Netzwerksteuerung an eine oder mehrere der Endpunktgeräte der Multicast-Gruppe, um virtuelle Schalter, die auf den Endpunktgeräte ausgeführt werden, anzuweisen, Multicast-Pakete gemäß dem Multicast-Baum zu replizieren und weiterzuleiten.
-
Die Druckschrift US 2015 / 0 055 651 A1 betrifft ein Verfahren zum Durchführen von Gruppensenden bzw. Multicast in einem Netzwerk. Das Verfahren umfasst: Empfangen einer Nachricht an einem bestimmten Endpunkt eines Netzwerks, wobei die Nachricht eine bestimmte Gruppensende-Gruppe spezifiziert; Replizieren der Nachricht an einen ersten Satz von Endpunkten, der zu einer bestimmten Gruppensende-Gruppe gehört, wobei sich der erste Satz von Endpunkten in einem lokalen Segment des Netzwerks befindet, das den bestimmten Endpunkt beinhaltet; und Replizieren der Nachricht an einen zweiten Satz von Endpunkten, der zu der bestimmten Gruppensende-Gruppe gehört, durch Replizieren der Nachricht an die bestimmte Gruppensende-Gruppe in einem jeweiligen Fernsegment des Netzwerks und durch Replizieren der Nachricht an einen Satz von Proxies, der für die bestimmte Gruppensende-Gruppe ausgewählt wurde, wobei jeder Proxy zum Weiterleiten der Nachricht an einen Satz von Endpunkten zu der bestimmten Gruppensende-Gruppe in einem jeweiligen Fernsegment des Netzwerks gehört, wobei jede Gruppensende-Gruppe in einer Vielzahl von Gruppensende-Gruppen einen designierten Proxy in dem jeweiligen Fernsegment aufweist, wobei mindestens zwei der Gruppensende-Gruppen verschiedene designierte Proxies in dem jeweiligen Fernsegment aufweisen.
-
KURZDARSTELLUNG
-
Der Erfindung liegt die die Aufgabe zugrunde ein Verfahren zur Mehrfachzielpaketübertragung mit verringerter Latenzzeit zu schafften. Diese Aufgabe wurde durch die Merkmale des Anspruchs 1 gelöst. Der Erfindung liegt eine weitere Aufgabe zugrunde einen Speicher zu schaffen, der Programmbefehle speichert, die durch einen Prozessor eines Netzwerkadapters ausführbar sind, um ein Verfahren zur Mehrfachzielpaketübertragung mit verringerter Latenzzeit zu implementieren. Diese Aufgabe wurde wiederum durch die Merkmale des Anspruchs 8 gelöst. Der Erfindung liegt auch eine weitere Aufgabe zugrunde einen Netzwerkadapter zu schaffen, der einen Prozessor, einen Speicher und im Speicher gespeicherte Programmbefehle zum Ausführen durch den Prozessor aufweist, um ein Verfahren zur Mehrfachzielpaketübertragung mit verringerter Latenzzeit zu implementieren. Diese Aufgabe wurde wiederum durch die Merkmale des Anspruchs 9 gelöst. Bevorzugte Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Insbesondere weist ein Verfahren einen Netzwerkadapter auf, der von einem ersten virtuellen Switch eines Overlay-Netzwerks eine Anforderung zum Übertragen eines Mehrfachzielpakets an jeden von einem oder mehreren Switches des Overlay-Netzwerks empfängt, die in einer im Netzwerkadapter gespeicherten Liste gekennzeichnet sind. Das Verfahren weist außerdem für jeden der ein oder mehreren in der Liste gekennzeichneten virtuellen Switches auf: Erzeugen einer Kopfstellenreplikation (head-end replication) des Mehrfachzielpakets durch den Netzwerkadapter; Erhalten von Tunnelendpunktdaten für den gekennzeichneten virtuellen Switch durch den Netzwerkadapter; Kapseln der erzeugten Kopfstellenreplikation des Mehrfachzielpakets durch den Netzwerkadapter mit einem Vorsatz, der für ein in den erhaltenen Tunnelendpunktdaten gekennzeichnetes Tunnelungsprotokoll spezifisch ist; und Übertragen des gekapselten Pakets an einen im gekennzeichneten virtuellen Switch untergebrachten Empfänger durch den Netzwerkadapter.
-
Insbesondere speichert ein Speicher Programmbefehle, die von einem Prozessor eines Netzwerkadapters ausgeführt werden können, um ein Verfahren zu implementieren. Das Verfahren beinhaltet Empfangen einer Anforderung von einem ersten virtuellen Switch eines Overlay-Netzwerks zum Übertragen eines Mehrfachzielpakets an jeden von einem oder mehreren virtuellen Switches des Overlay-Netzwerks, die in einer im Netzwerkadapter gespeicherten Liste gekennzeichnet sind, durch den Netzwerkadapter. Außerdem beinhaltet das Verfahren für jeden der ein oder mehreren in der Liste gekennzeichneten virtuellen Switches: Erzeugen einer Kopfstellenreplikation des Mehrfachzielpakets durch den Netzwerkadapter; Erhalten von Tunnelendpunktdaten für den gekennzeichneten virtuellen Switch durch den Netzwerkadapter; Kapseln der erzeugten Kopfstellenreplikation des Mehrfachzielpakets durch den Netzwerkadapter mit einem Vorsatz, der für ein in den erhaltenen Tunnelendpunktdaten gekennzeichnetes Tunnelungsprotokoll spezifisch ist; und Übertragen des gekapselten Pakets an einen im gekennzeichneten virtuellen Switch untergebrachten Empfänger durch den Netzwerkadapter.
-
Insbesondere weist der Netzwerkadapter einen Prozessor, einen Speicher und Programmbefehle auf, die zur Ausführung durch den Prozessor im Speicher gespeichert sind, um ein Verfahren zu implementieren. Das Verfahren beinhaltet Empfangen einer Anforderung von einem ersten virtuellen Switch eines Overlay-Netzwerks zum Übertragen eines Mehrfachzielpakets an jeden von einem oder mehreren virtuellen Switches des Overlay-Netzwerks, die in einer im Netzwerkadapter gespeicherten Liste gekennzeichnet sind, durch den Netzwerkadapter. Außerdem beinhaltet das Verfahren für jeden der ein oder mehreren in der Liste gekennzeichneten virtuellen Switches: Erzeugen einer Kopfstellenreplikation des Mehrfachzielpakets durch den Netzwerkadapter; Erhalten von Tunnelendpunktdaten für den gekennzeichneten virtuellen Switch durch den Netzwerkadapter; Kapseln der erzeugten Kopfstellenreplikation des Mehrfachzielpakets durch den Netzwerkadapter mit einem Vorsatz, der für ein in den erhaltenen Tunnelendpunktdaten gekennzeichnetes Tunnelungsprotokoll spezifisch ist; und Übertragen des gekapselten Pakets an einen im gekennzeichneten virtuellen Switch untergebrachten Empfänger durch den Netzwerkadapter.
-
Figurenliste
-
- 1 ist ein Funktionsblockschaltbild, das eine Verarbeitungsumgebung für Mehrfachzielpakete in einer Ausführungsform gemäß der vorlegenden Erfindung veranschaulicht.
- 2 ist ein Funktionsblockschaltbild, das einen Netzwerkadapter in einer Ausführungsform gemäß der vorliegenden Erfindung darstellt.
- 3 ist ein Ablaufplan, der Verfahrensschritte des Hinzufügens bzw. Entfernens von virtuellen Switches zu bzw. von einer Mehrfachzielgruppen-Empfängerliste in der Verarbeitungsumgebung für Mehrfachzielpakete von 1 in einer Ausführungsform gemäß der vorliegenden Erfindung darstellt.
- 4 ist ein Ablaufplan, der Verfahrensschritte zum Übertragen eines Mehrfachzielpakets an eine Mehrfachzielgruppe in der Verarbeitungsumgebung für Mehrfachzielpakete von 1 in einer Ausführungsform gemäß der vorliegenden Erfindung darstellt.
- 5 zeigt ein Blockschaltbild eines Server-Computers in einer Ausführungsform gemäß der vorliegenden Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen gemäß der vorliegenden Erfindung lassen deutliche Vorteile von Netzwerkadaptern erkennen, die Pläne von Mehrfachzielgruppen und Tunnelendpunkten (TEPs) verwalten, Anwendungsprogrammschnittstellen (APIs) zum Bearbeiten solcher Pläne bereitstellen und Kopfstellenreplikationen für Mehrfachzielpakete auf der Grundlage von Auslagerungsbefehlen (offload instructions) verarbeiten, die von einem softwaredefinierten Datenpfad bereitgestellt werden. Hierin beschriebene Ausführungsformen entlasten einen virtuellen Switch vom Erzeugen von Eins-zu-Viele-Unicast-Paketen (one-to-many unicast packets) für Mehrfachzielpakete und vom Ausführen von Kontrollsummen und Kapselungen für jedes der neu erzeugten Pakete. Hierin beschriebene Ausführungsformen machen die Beschränkungen bestehender Lösungsansätze zum Verarbeiten von Mehrfachzielpaketen in einem softwaredefinierten Datenpfad eines virtuellen Switches entbehrlich.
-
Hierin beschriebene Ausführungsformen lassen erkennen, dass ein Verarbeiten von Mehrfachziel-Datenverkehr in OVN-TEPs ein Vorgang ist, der mit hohem Aufwand für die Zentraleinheit (CPU) verbunden ist. Einige Implementierungen einer Verarbeitung von Mehrfachzielpaketen in OVN-TEPs sind beim Verarbeiten von Mehrfachzielpaketen von der Unterstützung des Underlay-Netzwerks abhängig, was erhebliche Einschränkungen der Einsatzfähigkeit solcher OVN-Lösungen zur Folge hat, da die erforderliche Unterstützung des Underlay-Netzwerks zum Verarbeiten von Mehrfachzielpaketen an einem Kundenstandort nicht immer gegeben ist. Bei einer Kundenstandortausrüstung (customer premises equipment, CPE) handelt es sich um eine Ausrüstung von Telefon- oder anderen Dienstanbietern, die sich am Kundenstandort (physischer Standort) und nicht am Standort des Anbieters oder dazwischen befindet. Zu Beispielen für CPE gehören Telefonhandapparate, Kabel-TV-Set-Top-Boxen und Digital-Subscriber-Line- (DSL-) Router. Alternativ verwenden OVN-TEPs die Vorgehensweise eines wiederholten Unicast zum Verarbeiten einer Zustellung von Mehrfachzielpaketen. Hierin beschriebene Ausführungsformen lassen erkennen, dass eine solche Vorgehensweise CPUintensiv sowie latenzbehaftet ist und erhebliche Skalierungsprobleme mit sich bringt, da die Arbeitsgänge der Paketbildung, Kontrollsummenbildung und Kapselung in einem softwaredefinierten Datenpfad ausgeführt werden. Hierin beschriebene Ausführungsformen lassen außerdem erkennen, dass eine solche Implementierung auch unter einer unbeständigen Verarbeitungsleistung bezüglich der Mehrfachzielpakete leidet und sich auf das Verarbeiten von normalen Unicast-Paketen auswirkt, da eine typische Verarbeitung eines wiederholten Unicast von Mehrfachzielpaketen bedeutet, dass vor anderen für entfernt angeordnete TEPs bestimmten Unicast-Paketen für jedes Mehrfachzielpaket Eins-zu-Viele-Unicast-Pakete erzeugt werden. Dieses Problem wird sogar noch akuter, wenn ein OVN-TEP eine einzige physische Verbindung zu einem Underlay-Netzwerk hat.
-
Ausführungsformen gemäß der vorliegenden Erfindung werden nun unter Bezugnahme auf die Figuren ausführlich beschrieben. 1 ist ein Funktionsblockschaltbild, das eine Verarbeitungsumgebung für Mehrfachzielpakete in einer Ausführungsform gemäß der vorliegenden Erfindung veranschaulicht.
-
Eine Verarbeitungsumgebung 100 für Mehrfachzielpakete weist einen Server 102, eine Netzwerksteuereinheit 122, einen Server 124 und einen Server 142 auf, die allesamt über ein Netzwerk 120 miteinander verbunden sind. Bei den Servern 102, 124 und 142 kann es sich jeweils um eine beliebige elektronische Einheit oder eine Kombination aus elektronischen Einheiten handeln, die Programmbefehle verarbeiten und beispielsweise über das Netzwerk 120 Daten empfangen und übertragen können. In einigen Ausführungsformen kann es sich bei den Servern 102, 124 und 142 um einen Laptop-Computer, einen Tablet-Computer, einen Netbook-Computer, einen Personal Computer (PC), einen Desktop-Computer, einen Server-Computer, einen Personal Digital Assistant (PDA) oder ein Smartphone handeln. In anderen Ausführungsformen können die Server 102, 124 und 142 jeweils Server-Datenverarbeitungssysteme darstellen, die mehrere Computer als ein Server-System verwenden, beispielsweise in einer verteilten Datenverarbeitungsumgebung.
-
Der Server 102 weist einen RAM 104, eine CPU 106, einen dauerhaften Speicher 108, eine VM 112, eine VM 114, einen virtuellen Switch 116 und einen Netzwerkadapter 118 auf. Beim dauerhaften Speicher 108 kann es sich zum Beispiel um ein Festplattenlaufwerk handeln. Alternativ oder zusätzlich zu einem magnetischen Festplattenlaufwerk kommen als dauerhafter Speicher 108 ein Halbleiterdatenträger (solid state hard drive), eine Halbleiter-Speichereinheit, ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbaren Nur-Lese-Speicher (EPROM), ein Flash-Speicher oder ein beliebiges computerlesbares Speichermedium infrage, das Programmbefehle oder digitale Daten speichern kann. Der dauerhafte Speicher 108 speichert Betriebssystem-Software sowie Software, die es dem Server 102 ermöglicht, mit der Netzwerksteuereinheit 122, dem Server 124 und dem Server 142 über eine Datenverbindung im Netzwerk 120 Daten auszutauschen. Eine Mehrfachziel-Software 110 (manchmal als „Mdest-Software 110“ abgekürzt) ist ebenfalls im dauerhaften Speicher 108 gespeichert. Bei der Mehrfachziel-Software handelt es sich um Software, die es dem virtuellen Switch 116 ermöglicht, mit der Netzwerksteuereinheit 122, der VM 112 und der VM 114 im Server 102; einer VM 134, einer VM 136 und einem virtuellen Switch 138 im Server 124; und einer VM 152, einer VM 154 und einem virtuellen Switch 156 im Server 142 über das Netzwerk 120 Daten auszutauschen. Die Mehrfachziel-Software 110 ermöglicht außerdem der Netzwerksteuereinheit 122, virtuelle Switches 116, 138 und 156 mit Mehrfachzielgruppen-Empfängerlisten für eine gegebene Mehrfachzielgruppe bereitzustellen.
-
Die VM 112 tauscht über den virtuellen Switch 116, den virtuellen Switch 138 und den virtuellen Switch 156 Daten mit der VM 134 und der VM 152 aus, wobei ein virtuelles Overlay-Netzwerk auf dem Netzwerk 120 verwendet wird. Die VM 114 tauscht über den virtuellen Switch 116, den virtuellen Switch 138 und den virtuellen Switch 156 Daten mit der VM 136 und der VM 154 aus, wobei ein gesondertes virtuelles Overlay-Netzwerk auf dem Netzwerk 120 verwendet wird. Der virtuelle Switch 116 wird von der VM 112 und der VM 114 verwendet, um mit Knoten in ihrem jeweiligen Overlay-Netzwerk auf dem Netzwerk 120 Daten auszutauschen. In einer Ausführungsform können viele virtuelle Maschinen und virtuelle Overlay-Netzwerke in der Verarbeitungsumgebung 100 für Mehrfachzielpakete vorhanden sein. In anderen Ausführungsformen kann sich die Netzwerksteuereinheit 122 in einem Server in der Verarbeitungsumgebung 100 für Mehrfachzielpakete befinden oder als eigenständiger Computer mit dem Netzwerk 120 verbunden sein.
-
Der Netzwerkadapter 118 ist eine Computer-Hardware-Komponente, die den Server 102 mit dem Netzwerk 120 verbindet. Der Netzwerkadapter 118 ermöglicht dem Server 102, mit der Netzwerksteuereinheit 122, dem Server 124 und dem Server 142 Daten auszutauschen. Der Netzwerkadapter 118 weist außerdem Auslagerungsfunktionen (offload capabilities) auf, wodurch dem Netzwerkadapter 118 ein Verwalten von Plänen von Mehrfachzielgruppen und TEPs ermöglicht wird, stellt Anwendungsprogrammschnittstellen (APIs) zum Bearbeiten solcher Pläne bereit und verarbeitet eine Kopfstellenreplikation für Mehrfachzielpakete auf der Grundlage von Auslagerungsbefehlen, die von einem softwaredefinierten Datenpfad bereitgestellt werden. Außerdem ermöglicht der Netzwerkadapter 118 der VM 112, über den virtuellen Switch 116, den virtuellen Switch 138 und den virtuellen Switch 156 Daten mit der VM 134 und der VM 152 auszutauschen, wobei ein virtuelles Overlay-Netzwerk auf dem Netzwerk 120 verwendet wird. Außerdem ermöglicht der Netzwerkadapter 118 der VM 114, über den virtuellen Switch 116, den virtuellen Switch 138 und den virtuellen Switch 156 Daten mit der VM 136 und der VM 154 auszutauschen, wobei ein gesondertes virtuelles Overlay-Netzwerk auf dem Netzwerk 120 verwendet wird.
-
In 1 wird das Netzwerk 120 als die Verbindungsstruktur zwischen dem Server 102, der Netzwerksteuereinheit 122, dem Server 124 und dem Server 142 gezeigt. In der Praxis kann das Netzwerk 120 ein beliebiges realisierbares Datentransportnetz sein. Beim Netzwerk 120 kann es sich beispielsweise um ein lokales Netz (LAN), ein Weitverkehrsnetz (WAN) wie das Internet oder eine Kombination aus den beiden handeln, und es kann leitungsgebunden oder kabellos sein oder Lichtwellenleiterverbindungen aufweisen. Im Allgemeinen kann es sich beim Netzwerk 120 um eine beliebige Kombination aus Verbindungen und Protokollen handeln, die Datenaustauschvorgänge zwischen dem Server 102, der Netzwerksteuereinheit 122, dem Server 124 und dem Server 142 gemäß einer Ausführungsform der Erfindung unterstützt.
-
Bei der Netzwerksteuereinheit 122 handelt es sich um eine SDN-Steuereinheit für eine Endpunkt-zu-Endpunkt-Bereitstellung von virtuellen Netzwerken, virtuellen Switches, virtuellen Endpunkten (Mehrfachzielsendern und -empfängern). Die Netzwerksteuereinheit 122 ist zuständig für ein Erzeugen und Bereitstellen der Liste der Mehrfachzielgruppenempfänger in einer gegebenen Mehrfachzielgruppe, z.B. der VM 112, der VM 134 und der VM 152, für den virtuellen Switch, z. B. den virtuellen Switch 156, der den Mehrfachzielsender für die gegebene Mehrfachzielgruppe hat. In einer Ausführungsform kann es sich bei der Netzwerksteuereinheit 122 um ein gesondertes Computersystem, einen Server oder Hardware in einer Verarbeitungsumgebung 100 für Mehrfachzielpakete handeln. In einer anderen Ausführungsform kann die Netzwerksteuereinheit 122 Teil des Servers 102, des Servers 124 oder des Servers 142 sein. Einige Ausführungsformen weisen möglicherweise mehr als eine Netzwerksteuereinheit in der Verarbeitungsumgebung 100 für Mehrfachzielpakete auf, die beispielsweise als Unterstützung für die Netzwerksteuereinheit 122 dienen.
-
Der Server 124 enthält einen RAM 126, eine CPU 128, einen dauerhaften Speicher 130, eine VM 134, eine VM 136, einen virtuellen Switch und einen Netzwerkadapter 140. Im dauerhaften Speicher 130 ist eine Mdest-Software 132 gespeichert, die analog zur Mdest-Software 110 ist. Der Netzwerkadapter 140 ist eine Computer-Hardware-Komponente, die den Server 124 mit dem Netzwerk 120 verbindet. Der Netzwerkadapter 140 ermöglicht dem Server 124, mit der Netzwerksteuereinheit 122, dem Server 102 und dem Server 142 Daten auszutauschen. Der Netzwerkadapter 140 beinhaltet außerdem Auslagerungsfunktionen, die ihm ein Verwalten von Plänen von Mehrfachzielgruppen und TEPs ermöglichen, stellt Anwendungsprogrammschnittstellen (APIs) zum Bearbeiten solcher Pläne bereit und verarbeitet eine Kopfstellenreplikation für Mehrfachzielpakete auf der Grundlage von Auslagerungsbefehlen, die von einem softwaredefinierten Datenpfad bereitgestellt werden. Außerdem ermöglicht der Netzwerkadapter 140 der VM 134, durch den virtuellen Switch 138, den virtuellen Switch 116 und den virtuellen Switch 156 Daten mit der VM 112 und der VM 152 auszutauschen, wobei ein virtuelles Overlay-Netzwerk auf dem Netzwerk 120 verwendet wird. Außerdem ermöglicht der Netzwerkadapter 140 der VM 136, durch den virtuellen Switch 138, den virtuellen Switch 116 und den virtuellen Switch 156 Daten mit der VM 114 und der VM 154 auszutauschen, wobei ein gesondertes virtuelles Overlay-Netzwerk auf dem Netzwerk 120 verwendet wird.
-
Der Server 142 enthält einen RAM 144, eine CPU 146, einen dauerhaften Speicher 148, eine VM 152, eine VM 154, einen virtuellen Switch 156 und einen Netzwerkadapter 158. Im dauerhaften Speicher 148 ist eine Mdest-Software 150 gespeichert, die analog zur Mdest-Software 110 ist. Der Netzwerkadapter 158 ist eine Computer-Hardware-Komponente, die den Server 142 mit dem Netzwerk 120 verbindet. Der Netzwerkadapter 158 ermöglicht dem Server 142, mit der Netzwerksteuereinheit 122, dem Server 102 und dem Server 124 Daten auszutauschen. Der Netzwerkadapter 158 beinhaltet außerdem Auslagerungsfunktionen, die ihm ein Verwalten von Plänen von Mehrfachzielgruppen und TEPs ermöglichen, stellt Anwendungsprogrammschnittstellen (APIs) zum Bearbeiten solcher Pläne bereit und verarbeitet eine Kopfstellenreplikation für Mehrfachzielpakete auf der Grundlage von Auslagerungsbefehlen, die von einem softwaredefinierten Datenpfad bereitgestellt werden. Außerdem ermöglicht der Netzwerkadapter 158 der VM 152, durch den virtuellen Switch 156, den virtuellen Switch 116 und den virtuellen Switch 138 Daten mit der VM 112 und der VM 134 auszutauschen, wobei ein virtuelles Overlay-Netzwerk auf dem Netzwerk 120 verwendet wird. Außerdem ermöglicht der Netzwerkadapter 158 der VM 154, durch den virtuellen Switch 156, den virtuellen Switch 116 und den virtuellen Switch 138 Daten mit der VM 114 und der VM 136 auszutauschen, wobei ein gesondertes virtuelles Overlay-Netzwerk auf dem Netzwerk 120 verwendet wird.
-
In der beispielhaften Ausführungsform von 1 dient der Server 142 als der Mehrfachzielsender für eine als „MDG-1“ bezeichnete Mehrfachzielgruppe, die im virtuellen Switch 156 untergebracht ist, und verarbeitet Netzwerkdaten für die VM 112, die VM 134, die VM 152, den virtuellen Switch 138 und den virtuellen Switch 116. Der Server 142 dient außerdem als der Mehrfachzielsender für eine als „MDG-2“ (nicht gezeigt) bezeichnete Mehrfachzielgruppe, die im virtuellen Switch 156 untergebracht ist, und verarbeitet Netzwerkdaten für die VM 114, die VM 136, die VM 154, den virtuellen Switch 138 und den virtuellen Switch 116. In anderen Ausführungsformen können die Mehrfachzielgruppen in einem oder mehreren virtuellen Switches in der Verarbeitungsumgebung 100 für Mehrfachzielpakete untergebracht sein.
-
2 ist ein Funktionsblockschaltbild, das einen Netzwerkadapter in einer Ausführungsform gemäß der vorliegenden Erfindung veranschaulicht. Der Netzwerkadapter 200 ist eine Ausführungsform von jedem der Netzwerkadapter 118, 140 und 158 und enthält einen Prozessor 202, einen Speicher 204, eine Peripheral-Component-Interconnect- (PCI-) Schnittstelle 206, eine Datenträgerzugriffssteuerung (medium access control) 208 und eine Mehrfachziel-Anwendungsprogrammschnittstelle (APIs) 210. Es sollte klar sein, dass 2 lediglich eine Veranschaulichung einer Implementierung bereitstellt und keinerlei Beschränkungen hinsichtlich der Umgebungen mit sich bringt, in denen verschiedene Ausführungsformen implementiert werden können. Es können viele Modifikationen an der dargestellten Umgebung vorgenommen werden. In einer Ausführungsform können sich die Mehrfachziel-APIs 210 im Speicher 204 oder in einem gesonderten Nur-Lese-Speicher (ROM), einem löschbaren programmierbaren Nur-Lese-Speicher (EPROM) oder einem Flash-Speicher befinden. In einer anderen Ausführungsform können sich die Mehrfachziel-APIs 210 in einem Host-Server befinden und in den Netzwerkadapter 118 heruntergeladen werden.
-
Die Mehrfachziel-APIs 210 ermöglichen dem Netzwerkadapter 200, Listen von Mehrfachzielgruppen auf der Grundlage der Liste von Mehrfachzielgruppenempfängern, die in einem Mehrfachzielsender, z.B. dem virtuellen Switch 156, untergebracht ist, zu erzeugen und zu speichern. Ein Auslagern von Mehrfachziel-Vorgängen aus einem virtuellen Switch, z. B. dem virtuellen Switch 156, in den Netzwerkadapter 200 stellt eine deutliche Verringerung der Host-CPU-Nutzung für Verarbeitungsvorgänge von Mehrfachzielpaketen bereit. Ein weiterer Vorteil des Auslagerns von Mehrfachziel-Vorgängen in den Netzwerkadapter 200 besteht in verbesserten Paketübertragungs-Latenzzeiten, da die Verarbeitung auf der Hardware-Ebene erfolgt. Das Auslagern von Mehrfachziel-Vorgängen in den Netzwerkadapter 200 löst darüber hinaus Probleme der Skalierbarkeit bei wachsenden Mitgliederlisten von Mehrfachzielgruppen. Die Skalierbarkeit ist eine Fähigkeit eines Systems, eines Netzwerks oder eines Prozesses zum Verarbeiten eines wachsenden Arbeitsumfangs auf leistungsfähige Weise oder dessen Fähigkeit zur Erweiterung, um diesem Zuwachs gerecht werden zu können. Wenn die Mitgliederliste von Mehrfachzielgruppen größer wird, müssen bei einer durch Software implementierten Paketreplikation und einer Kopfstellenreplikation für jedes Mitglied einer Mehrfachzielgruppe für jedes übertragene Paket Kontrollsummenberechnungen ausgeführt werden, wodurch eine hohe Belastung der CPU entsteht, die mit wachsender Mitgliederliste einer Mehrfachzielgruppe zunimmt. Mit dem Auslagern dieser Arbeitsgänge in den Netzwerkadapter 200 sind CPUs, beispielsweise die CPUs 106, 128 und 146, in der Lage, mehr Verarbeitungszyklen für andere Aufgaben bereitzustellen.
-
3 ist ein allgemein mit 300 bezeichneter Ablaufplan, der Arbeitsschritte des Hinzufügens bzw. Entfernens von virtuellen Switches zu bzw. aus einer Empfängerliste von Mehrfachzielgruppen in der Verarbeitungsumgebung für Mehrfachzielpakete von 1 in einer Ausführungsform gemäß der vorliegenden Erfindung zeigt. In dieser beispielhaften Ausführungsform ist der virtuelle Switch 156 im Server 142 der Mehrfachzielsender für die MDG-1. Die Netzwerksteuereinheit 122 sendet eine Anforderung zum Hinzufügen des virtuellen Switches 116 zu einer Empfängerliste der MDG-1 im Netzwerkadapter 158 an den virtuellen Switch 156, wie im Schritt 302 gezeigt wird. Die Empfängerliste der MDG-1 kann im Speicher 204 des Netzwerkadapters 158 gespeichert sein. Im Schritt 304 ruft der virtuelle Switch 156 auf das Empfangen der Anforderung hin eine oder mehrere der Mehrfachziel-APIs 210 des Netzwerkadapters 158 auf, um die MDG-1 durch Hinzufügen des virtuellen Switches 116 zur Empfängerliste der MDG-1 im Netzwerkadapter 158 zu aktualisieren. Auf das Empfangen des Aufrufs an die eine oder mehrere der Mehrfachziel-APIs 210 des Netzwerkadapters 158 hin aktualisiert der Netzwerkadapter 158 die MDG-1 durch Hinzufügen des virtuellen Switches 116 zur Empfängerliste der MDG-1 im Netzwerkadapter 158.
-
Die Netzwerksteuereinheit 122 sendet eine Anforderung zum Hinzufügen des virtuellen Switches 138 zur Empfängerliste der MDG-1 im virtuellen Switch 156 an den virtuellen Switch 156, wie im Schritt 306 gezeigt wird. Im Schritt 308 ruft der virtuelle Switch 156 auf das Empfangen der Anforderung hin eine oder mehrere der Mehrfachziel-APIs 210 des Netzwerkadapters 158 auf, um die MDG-1 durch Hinzufügen des virtuellen Switches 138 zur Empfängerliste der MDG-1 im Netzwerkadapter 158 zu aktualisieren. Auf das Empfangen des Aufrufs an die eine oder mehrere der Mehrfachziel-APIs 210 des Netzwerkadapters 158 hin aktualisiert der Netzwerkadapter 158 die MDG-1 durch Hinzufügen des virtuellen Switches 138 zur Empfängerliste der MDG-1 im Netzwerkadapter 158.
-
Auf eine ähnliche Weise wird ein virtueller Switch aus der Mehrfachzielgruppe entfernt. Im Schritt 310 sendet die Netzwerksteuereinheit 122 eine Anforderung zum Löschen des virtuellen Switches 116 aus der Empfängerliste der MDG-1 an den virtuellen Switch 156. Im Schritt 312 ruft der virtuelle Switch 156 auf das Empfangen der Anforderung hin eine oder mehrere der Mehrfachziel-APIs 210 des Netzwerkadapters 158 auf, um die MDG-1 durch Löschen des virtuellen Switches 116 aus der Empfängerliste der MDG-1 im Netzwerkadapter 158 zu aktualisieren. Auf das Empfangen des Aufrufs an die eine oder mehrere der Mehrfachziel-APIs 210 des Netzwerkadapters 158 hin aktualisiert der Netzwerkadapter 158 die MDG-1 durch Löschen des virtuellen Switches 116 aus der Empfängerliste der MDG-1 im Netzwerkadapter 158.
-
Die Netzwerksteuereinheit 122 sendet eine weitere Anforderung zum Hinzufügen des virtuellen Switches 116 zur Empfängerliste der MDG-1 im Netzwerkadapter 158, wie im Schritt 314 gezeigt wird. Im Schritt 316 ruft der virtuelle Switch 156 auf das Empfangen der Anforderung hin eine oder mehrere der Mehrfachziel-APIs 210 des Netzwerkadapters 158 auf, um die MDG-1 durch Hinzufügen des virtuellen Switches 116 zur Empfängerliste der MDG-1 im Netzwerkadapter 158 zu aktualisieren. Auf das Empfangen des Aufrufs an die eine oder mehrere der Mehrfachziel-APIs 210 des Netzwerkadapters 158 hin aktualisiert der Netzwerkadapter 158 die MDG-1 durch Hinzufügen des virtuellen Switches 116 zur Empfängerliste der MDG-1 im Netzwerkadapter 158. Ein Verwalten von Listen von Mehrfachzielgruppen, beispielsweise der Empfängerliste der MDG-1, im Netzwerkadapter 158 stellt die Fähigkeit zum lückenlosen Skalieren der Listen innerhalb der Verarbeitungsumgebung 100 für Mehrfachzielpakete bereit.
-
4 ist ein allgemein mit 400 bezeichneter Ablaufplan, der die Arbeitsschritte zum Übertragen eines Mehrfachzielpakets an eine Mehrfachzielgruppe in der Verarbeitungsumgebung für Mehrfachzielpakete von 1 in einer Ausführungsform gemäß der vorliegenden Erfindung zeigt. Im Schritt 402 überträgt der Server 142 ein Mehrfachzielpaket für die MDG-1 an den virtuellen Switch 156. In einer Ausführungsform kann das Mehrfachzielpaket von der virtuellen Maschine 152 oder der virtuellen Maschine 154 stammen. In einer anderen Ausführungsform kann das Mehrfachzielpaket von der im dauerhaften Speicher 148 gespeicherten Mdest-Software 150 stammen. Der virtuelle Switch 156 ruft eine oder mehrere der Mehrfachziel-APIs 210 des Netzwerkadapters 158 auf, damit der Netzwerkadapter 158 das Mehrfachzielpaket an die virtuellen Switches in der Empfängerliste der MDG-1 überträgt, wie im Schritt 404 gezeigt wird. In Reaktion auf das Empfangen des Aufrufs an die eine oder mehreren der Mehrfachziel-APIs 210 des Netzwerkadapters 158, damit der Netzwerkadapter 158 das Mehrfachzielpaket an die virtuellen Switches in der Empfängerliste der MDG-1 überträgt, führt der Netzwerkadapter 158 im Schritt 406 einen Kopfstellenreplikationsprozess für das Mehrfachzielpaket aus, indem er für jeden virtuellen Switch in der Empfängerliste der MDG-1 eine Replik des Pakets erzeugt. Für jeden virtuellen Switch in der Empfängerliste der MDG-1 erhält der Netzwerkadapter 158 die Tunnelendpunktdaten des virtuellen Switches. Die Tunnelendpunktdaten können das erforderliche Tunnelungsprotokoll für den virtuellen Ziel-Switch und die Anschlussgruppe des virtuellen lokalen Netzes (VLAN) enthalten. Die VLAN-Anschlussgruppe wird während des anfänglichen Konfigurationsprozesses von einem Administrator konfiguriert. Zur VLAN-Anschlussgruppe gehören physische Netzwerkschnittstellenkarten (NICs), VLAN-Daten und Gruppierungsrichtlinien. Diese Anschlussgruppen geben vor, wie der VLAN-Datenverkehr in den und aus dem Host-TEP durch die physischen NICs erfolgt. Der Netzwerkadapter 158 kapselt das replizierte Mehrfachzielpaket für den virtuellen Ziel-Switch mit für das Tunnelungsprotokoll spezifischen Vorsätzen. Bei der Vernetzung von Computern ist die Kapselung ein Verfahren zum Entwickeln modularer Datenübertragungsprotokolle, in denen logisch separate Funktionen im Netzwerk durch Aufnahme oder Verbergen von Informationen in übergeordneten Objekten aus ihren zugrundeliegenden Strukturen abstrahiert werden. Ein Tunnelungsprotokoll ermöglicht einem Netzbenutzer, auf einen Netzwerkdienst, den das zugrundeliegende Netzwerk nicht direkt unterstützt oder bereitstellt, zuzugreifen oder einen solchen bereitzustellen. Ein wichtiger Verwendungszweck eines Tunnelungsprotokolls besteht darin, ein Ausführen eines fremden Protokolls über ein Netzwerk zu ermöglichen, das dieses bestimmte Protokoll nicht unterstützt, z.B. Ausführen von IPv6 über IPv4.
-
Der Netzwerkadapter 158 überträgt jedes gekapselte Paket an seine MDG-1-Zielempfänger in der Empfängerliste der MDG-1. Im Schritt 408 überträgt der Netzwerkadapter 158 ein erstes gekapseltes Paket an den virtuellen Switch 116. Im Schritt 410 empfängt und entkapselt der virtuelle Switch 116 das Paket, identifiziert die im Paket enthaltene Mehrfachzielgruppe „MDG-1“ und sucht sodann die Mehrfachzielgruppe in einer Anschlussliste. Bei der Vernetzung von Computern ist unter dem Entkapseln eines Pakets ein Entfernen der zuvor gekapselten Daten zu verstehen. Ein virtueller Switch dient als Behälter für Anschlusskonfigurationen, die einen gemeinsamen Satz von Netzwerkadaptern verwenden, darunter Sätze, die überhaupt keine Netzwerkadapter enthalten. In einer Ausführungsform kann die Anschlussliste im virtuellen Switch oder im lokalen Server gespeichert sein. Jeder virtuelle Switch stellt eine endliche Anzahl von Anschlüssen bereit, durch die virtuelle Maschinen, z.B. die VM 152 und die VM 154, sowie Netzwerkdienste ein oder mehrere Netzwerke erreichen können. Der virtuelle Switch 116 leitet das Paket an den Zielanschluss „X“ im Netzwerkadapter 118 im Server 102 weiter, wie im Schritt 412 gezeigt wird.
-
Im Schritt 414 überträgt der Netzwerkadapter 158 ein zweites gekapseltes Paket an den virtuellen Switch 138. Im Schritt 416 empfängt und entkapselt der virtuelle Switch 138 das Paket und sucht die Mehrfachzielgruppe „MDG-1“ in einer Anschlussliste. Der virtuelle Switch 138 leitet das Paket an den Zielanschluss „Y“ im Netzwerkadapter 140 im Server 124 weiter, wie im Schritt 418 gezeigt wird.
-
5 zeigt ein Blockschaltbild von Komponenten eines Server-Computers in einer Ausführungsform gemäß der vorliegenden Erfindung. Es sollte klar sein, dass 5 lediglich eine Veranschaulichung einer Implementierung bereitstellt und keinerlei Beschränkungen hinsichtlich der Umgebungen, in denen verschiedene Ausführungsformen implementiert werden können, mit sich bringt. Es können viele Modifikationen an der gezeigten Umgebung vorgenommen werden.
-
Ein Server-Computer 500 ist eine Ausführungsform von jedem der Server-Computer 102, 124 und 142 und beinhaltet eine Datenübertragungsstruktur 502, die Datenübertragungsvorgänge zwischen dem Prozessor bzw. den Prozessoren 504 eines Computers, einem Speicher 506, einem dauerhaften Speicher 508, einer Datenübertragungseinheit 510 und einer oder mehreren Ein/Ausgabe- (E/A-) Schnittstellen 512 bereitstellt. Die Datenübertragungsstruktur 502 kann mit einer beliebigen Architektur implementiert werden, die für ein Weiterleiten von Daten und/oder Steuerdaten zwischen Prozessoren (zum Beispiel Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.), Systemspeichern, peripheren Einheiten und beliebigen anderen Hardware-Komponenten in einem System entwickelt wurde. Die Datenübertragungsstruktur 502 kann zum Beispiel mit einem oder mehreren Bussen implementiert werden.
-
Beim Speicher 506 und beim dauerhaften Speicher 508 handelt es sich um computerlesbare Speichermedien. In dieser Ausführungsform beinhaltet der Speicher 506 einen Direktzugriffsspeicher (RAM) 514 und einen Cachespeicher 516. Im Allgemeinen kann der Speicher 506 ein beliebiges flüchtiges oder nichtflüchtiges computerlesbares Speichermedium beinhalten.
-
Eine Mehrfachziel-Software 524, die analog zu jeder Mehrfachziel-Software 110, 132 und 150 ist, ist zur Ausführung durch einen oder mehrere der jeweiligen Computerprozessoren 504 über einen oder mehrere Speicher des Speichers 506 im dauerhaften Speicher 508 gespeichert. In dieser Ausführungsform beinhaltet der dauerhafte Speicher 508 ein Magnetplattenlaufwerk. Alternativ oder zusätzlich zu einem Magnetplattenlaufwerk kann der dauerhafte Speicher 508 einen Halbleiterdatenträger, eine Halbleiterspeichereinheit, einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM), einen Flash-Speicher oder ein beliebiges anderes computerlesbares Speichermedium beinhalten, das Programmbefehle oder digitale Daten speichern kann.
-
Die für den dauerhaften Speicher 508 verwendeten Medien können auch austauschbar sein. Beispielsweise kann ein austauschbares Festplattenlaufwerk für den dauerhaften Speicher 508 verwendet werden. Zu anderen Beispielen gehören optische und magnetische Festplatten, Speichersticks und Chipkarten, die zur Übertragung auf ein anderes computerlesbares Speichermedium, das ebenfalls Teil des dauerhaften Speichers 508 ist, in ein Laufwerk eingesetzt werden.
-
Die Datenübertragungseinheit 510 schafft in diesen Beispielen die Voraussetzungen für Datenaustauschvorgänge mit anderen Datenübertragungssystemen oder - einheiten, unter anderem mit Ressourcen des Netzwerks 120, beispielsweise der Netzwerksteuereinheit 122. In diesen Beispielen enthält die Datenübertragungseinheit 510 eine oder mehrere Netzwerkschnittstellenkarten. Die Datenübertragungseinheit 510 kann Datenübertragungsvorgänge durch die Verwendung physischer und/oder drahtloser Datenübertragungsverbindungen bereitstellen. Die Mehrfachziel-Software 524 kann über die Datenübertragungseinheit 510 in den dauerhaften Speicher 508 geladen werden.
-
Die E/A-Schnittstelle(n) 512 ermöglicht bzw. ermöglichen eine Ein- und Ausgabe von Daten mit anderen Einheiten, die mit dem Server 102 verbunden sein können. Die E/A-Schnittstelle 512 kann zum Beispiel eine Verbindung mit externen Einheiten 518 wie einer Tastatur, einem Tastenfeld, einem berührungsempfindlichen Bildschirm und/oder einer anderen geeigneten Eingabeeinheit bereitstellen. Zu den externen Einheiten 518 können auch tragbare computerlesbare Speichermedien gehören wie beispielsweise Speichersticks, tragbare optische Platten oder Magnetplatten und Speicherkarten. Die Software und die Daten, die zum Realisieren von Ausführungsformen der vorliegenden Erfindung verwendet werden, z.B. die Mehrfachziel-Software 524, können auf solchen tragbaren computerlesbaren Speichermedien gespeichert sein und über die E/A-Schnittstelle(n) 512 in den dauerhaften Speicher 508 geladen werden. Die E/A-Schnittstelle(n) 512 ist bzw. sind außerdem mit einer Anzeige 520 verbunden. Die Anzeige 520 stellt einen Mechanismus bereit, um Daten für einen Benutzer anzuzeigen, und bei ihr kann es sich beispielsweise um einen Computermonitor handeln.
-
Die hierin beschriebenen Programme werden auf der Grundlage der Anwendung gekennzeichnet, für die sie in einer spezifischen Ausführungsform der Erfindung implementiert wurden. Es sollte jedoch klar sein, dass jegliche besondere Programmnomenklatur hierin lediglich der Einfachheit halber verwendet wird und die Erfindung folglich nicht auf die ausschließliche Verwendung in einer spezifischen Anwendung beschränkt sein soll, die durch eine solche Nomenklatur bezeichnet und/oder impliziert wird.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Zum Computerprogrammprodukt können ein oder mehrere computerlesbare Speichermedien mit darin gespeicherten computerlesbaren Programmbefehlen handeln, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Beim computerlesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Befehle zum Verwenden durch eine Befehlsausführungseinheit speichern kann. Beim computerlesbaren Speichermedium kann es sich beispielsweise, ohne jedoch auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine Magnetspeichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder eine beliebige geeignete Kombination aus den vorgenannten handeln. Zu einer nichterschöpfenden Liste von spezifischeren Beispielen für das computerlesbare Speichermedium gehören die folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktdisk-Nur-Lese-Speicher (CD-ROM), eine DVD, ein Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie Lochkarten oder erhabene Strukturen in einer Spur mit darauf aufzeichneten Befehlen und eine beliebige geeignete Kombination aus den vorgenannten. Ein computerlesbares Speichermedium, wie es hierin verwendet wird, ist nicht so auszulegen, als handele es sich dabei um transitorische Signale an sich wie Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, durch einen Hohlleiter oder andere Übertragungsmedien sich ausbreitende elektromagnetische Wellen (z.B. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch eine Leitung übertragene elektrische Signale.
-
Die hierin beschriebenen computerlesbaren Programmbefehle können aus einem computerlesbaren Speichermedium über ein Netzwerk, zum Beispiel das Internet, ein lokales Netz, ein Weitverkehrsnetz und/oder ein drahtloses Netz in entsprechende Datenverarbeitungseinheiten oder in einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Zu dem Netzwerk können Kupferübertragungskabel, Lichtwellenleiter, eine drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server gehören. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle in jeder Datenverarbeitungsumgebung empfängt computerlesbare Programmbefehle aus dem Netzwerk und leitet die computerlesbaren Programmbefehle zum Speichern in einem computerlesbaren Speichermedium in der jeweiligen Datenverarbeitungseinheit weiter.
-
Bei computerlesbaren Programmbefehlen zum Ausführen von Arbeitsgängen der vorliegenden Erfindung kann es sich um Assembler-Befehle, Befehlssatzarchitektur-(ISA-) Befehle, Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Daten zur Zustandseinrichtung oder einen Quellencode oder Objektcode handeln, der in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, unter anderem in einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen und herkömmlichen prozeduralen Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen geschrieben sein kann. Die computerlesbaren Programmbefehle können vollständig im Computer des Benutzers, teilweise im Computer des Benutzers, als eigenständiges Software-Paket, teilweise im Computer des Benutzers und teilweise in einem entfernt angeordneten Computer oder vollständig im entfernt angeordneten Computer oder Server ausgeführt werden. Im letzteren Szenario kann der entfernt angeordnete Computer durch einen beliebigen Typ von Netzwerk mit dem Computer des Benutzers verbunden sein, unter anderem durch ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters) eingerichtet werden. In einigen Ausführungsformen können elektronische Schaltungsanordnungen, zum Beispiel eine programmierbare Logikschaltungsanordnung, Field Programmable Gate Arrays (FPGA) oder programmierbare logische Schaltungsanordnungen (PLA) die computerlesbaren Programmbefehle ausführen, indem sie Zustandsinformationen der computerlesbaren Programmbefehle zum Personalisieren der elektronischen Schaltungsanordnung verwenden, um Aspekte der vorliegenden Erfindung auszuführen.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufplandarstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich von selbst, dass jeder Block der Ablaufplandarstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder Blockschaltbildern durch computerlesbare Programmbefehle implementiert werden können.
-
Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zugeführt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Implementieren der im Block oder in den Blöcken des Ablaufplans und/oder der Blockschaltbilder angegebenen Funktionen/Vorgänge erzeugen. Diese computerlesbaren Programmbefehle können auch in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass diese auf eine bestimmte Weise funktionieren, so dass das computerlesbare Speichermedium mit darin gespeicherten Befehlen einen Herstellungsgegenstand aufweist, der Befehle enthält, die Aspekte der Funktion/des Vorgangs implementieren, die/der im Block oder in den Blöcken des Ablaufplans und/oder der Blockschaltbilder angegeben sind
-
Die computerlesbaren Programmbefehle können auch in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von im Computer, in der anderen programmierbaren Datenverarbeitungsvorrichtung oder der anderen Einheit auszuführenden Verarbeitungsschritten zu veranlassen, um einen in einem Computer implementierten Prozess zu erzeugen, so dass die Befehle, die im Computer oder in der anderen programmierbaren Datenverarbeitungsvorrichtung oder der anderen Einheit ausgeführt werden, die im Block oder in den Blöcken des Ablaufplans und/oder der Blockschaltbilder angegebenen Funktionen/Vorgänge implementieren.
-
Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Funktionsweise von möglichen Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan oder in den Blockschaltbildern ein Modul, ein Segment oder einen Teil von Befehlen darstellen, der einen oder mehrere ausführbare Befehle zum Implementieren der angegebenen logischen Funktion(en) aufweist. In einigen alternativen Implementierungen können die im Block angegebenen Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten. Beispielsweise können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können manchmal in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Außerdem sei darauf hingewiesen, dass jeder Block der Blockschaltbilder und/oder der Ablaufplandarstellung und Kombinationen von Blöcken in den Blockschaltbildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme, welche die angegebenen Funktionen oder Vorgänge ausführen oder Kombinationen aus spezieller Hardware und Computerbefehlen ausführen, implementiert werden können.