-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft im Allgemeinen Datenverarbeitungssysteme und insbesondere verschiedene Ausführungsformen für den Plattenerhalt und die Fehlervermeidung in einer redundanten Anordnung unabhängiger Festplatten (RAID-Array).
-
HINTERGRUND
-
In der heutigen Gesellschaft sind Computersysteme etwas ganz Alltägliches. Computersysteme sind mitunter am Arbeitsplatz, zuhause oder in der Schule anzutreffen. Computersysteme können Datenspeichersysteme oder Plattenspeichersysteme enthalten, um Daten zu verarbeiten und zu speichern. Ein Speichersystem kann ein oder mehrere Plattenlaufwerke enthalten, die in einer bestimmten Anordnung wie beispielsweise einer Redundant-Array-of-Independent-Disks-(RAID-)Topologie konfiguriert sein können. In einem RAID-System werden Daten über mehrere Platten hinweg in verschiedenen Konfigurationen redundant gespeichert, um im Falle eines Hardware- oder Softwarefehlers Datensicherheit zu gewährleisten.
-
Da der Technologiebereich jedes Jahr exponentiell wächst und immer größer werdende Mengen von kritischen Daten auf Speichersystemen wie beispielsweise RAIDs gespeichert werden, wird die Notwendigkeit für den Erhalt und den Schutz solcher Daten immer vordringlicher. Folglich ist es unbedingt erforderlich, dass Fortschritte auf dem Gebiet der Datenspeicher erzielt werden.
-
KURZDARSTELLUNG
-
Verschiedene Ausführungsformen, die dazu dienen, eine redundante Anordnung unabhängiger Festplatten (RAID-Array) mittels einer Prozessoreinheit zu konfigurieren, werden bereitgestellt. In einem RAID-Array werden Reserveplatten zur Funktionsübernahme (Failover) so konfiguriert, dass sie als inaktivierte Reserveplatten (Cold Spares) laufen, so dass die Cold-Spare-Platten in einem ausgeschalteten Bereitschaftsmodus (Standby) bleiben. Jede Cold-Spare-Platte wird in vorher festgelegten Intervallen einzeln eingeschaltet, getestet und wieder ausgeschaltet und in den Bereitschaftsmodus versetzt. Indem Reserve-Failover-Platten als Cold Spares und beispielsweise nicht so konfiguriert werden, dass sie sich als aktivierte Reserveplatten (Hot Spares) drehen, bleiben die Standby-Reserveplatten unverbraucht mit einer entsprechenden vollen verfügbaren Nutzungsdauer, statt dass ihnen nur die begrenze Lebensdauer eines in Benutzung befindlichen Laufwerks verbleibt.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Damit sich die Vorteile der Erfindung ohne Weiteres verstehen lassen, folgt eine detailliertere Beschreibung der vorstehend kurz beschriebenen Erfindung, indem auf bestimmte Ausführungsformen Bezug genommen wird, die in den beigefügten Zeichnungen veranschaulicht sind. In dem Verständnis, dass diese Zeichnungen Ausführungsformen der Erfindung zeigen und deshalb nicht als Einschränkung ihres Umfangs zu betrachten sind, wird die Erfindung durch die Verwendung der beigefügten Zeichnungen mit zusätzlicher Spezifität und Detailliertheit beschrieben und erklärt, bei denen:
-
1 ein Blockschaubild einer beispielhaften Hardware-Struktur zur Durchführung der Verwaltung einer Mehrpfad-E/A darstellt, in der Aspekte der vorliegenden Erfindung realisiert werden können;
-
2 ein weiteres Blockschaubild einer weiteren beispielhaften Hardware-Struktur, insbesondere von Teilen eines RAID-Arrays, darstellt, in der ebenfalls Aspekte der vorliegenden Erfindung realisiert werden können; und
-
3 einen Ablaufplan gemäß einem Aspekt der vorliegenden Erfindung zeigt.
-
AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
-
Massenspeichersysteme stellen weiterhin erweiterte Speicherfunktionen bereit, um den Bedürfnissen der Benutzer gerecht zu werden. Einzelpersonen ebenso wie Unternehmen haben sich im Laufe der Zeit vorbehaltlos auf diese Speichersysteme als Träger von riesigen Mengen unverzichtbarer Daten verlassen. Eine weit verbreitete Lösung für die Speicherung und den Erhalt von Daten besteht in der Verwendung von Anordnungen von mehreren unabhängigen Platten, die so konfiguriert werden können, dass sie Daten redundant speichern, beziehungsweise in der Verwendung einer redundanten Anordnung unabhängiger Festplatten (Redundant Array of Independent Disks (RAID)). In der 1987 erfolgten Veröffentlichung mit dem Titel "A Case for Redundant Arrays of Inexpensive Disks (RAID)" von David A. Patterson u.a. von der University of California in Berkeley werden die grundlegenden Konzepte und Varianten (Stufen) der RAID-Technologie erörtert.
-
Bei einer redundanten Anordnung unabhängiger Festplatten (RAID) handelt es sich um ein Speichersystem, das Daten zwischen mehreren Festplatten aufteilt und repliziert. Ein RAID-Array kann so konfiguriert werden, dass es Daten in Abhängigkeit von der Implementierung auf unterschiedliche Arten speichert. Verschiedene Arten von RAID-Topologien werden mit dem Wort RAID, gefolgt von einer Zahl, wie zum Beispiel RAID 0, RAID 1, RAID 5 usw., bezeichnet. In einem RAID-Array werden Daten über mehrere Platten verteilt, der Benutzer oder der Host sieht das Array jedoch als einen einzigen logischen Datenträger.
-
Es ist bekannt, dass es bei der Konzeption eines zuverlässigen Systems Fehler in dem System geben wird. In einem RAID-System wird davon ausgegangen, dass die Speichereinheiten oder die Platten, die in dem Array betrieben werden, an irgendeinem Punkt ausfallen werden. Eine gängige und weit verbreitete Lösung für Datenträgerfehler in RAID-Arrays ist die Einbindung von Hot-Spare-Platten. In einem RAID-Array gibt es mehrere Reserveplatten, die eingeschaltet und in Betrieb sind, um zum Zweck des Datenerhalts eine Instanz einer fehlerhaften oder ausgefallenen Platte zu ersetzen. Diese Platten sind in der Technik als Hot Spares bekannt, da sie eingeschaltet sind und sich ständig mit den anderen Platten in dem Array drehen, und wenn eine Platte in dem RAID-Array ausfällt oder bereits ausgefallen ist, werden deren Funktionen von einer der Hot Spares übernommen. Anders ausgedrückt, wenn eine Platte in dem RAID-Array ausfällt, wird sie durch eine Reserveplatte, die laufend eingeschaltet wurde und zusammen mit den anderen Platten in dem Array läuft, ersetzt.
-
Während eines Failovers ersetzt eine Hot Spare sofort die ausgefallene Platte, das Array muss jedoch ohne den Nutzen der Daten auf der Platte weiterhin betrieben werden, bis sie unter Verwendung der Daten von anderen Platten in dem Array wiederhergestellt wurden. Da die Hot-Spare-Platte, die die ausgefallene Platte ersetzt, häufig eingeschaltet und genau so lange in Betrieb war wie die ausgefallene Platte, fällt die Hot-Spare-Platte oft gleichzeitig aus. RAID-Arrays werden so konzipiert und konfiguriert, dass sie normal weiterlaufen, wenn eine Platte ausfällt, doch können gleichzeitige Ausfälle von Platten zu einem tatsächlichen Verlust von Daten führen.
-
In Anbetracht des Vorstehenden sehen die Mechanismen der veranschaulichten Ausführungsformen verschiedene Lösungen für die bisherigen Herausforderungen in Form des Plattenerhalts und der Fehlervermeidung in einem RAID-Array vor. Diese Mechanismen beinhalten das Verwenden einer Prozessoreinheit, um solche Funktionen wie das Konfigurieren von Reserve-Failover-Platten in der Weise, dass sie als Cold Spares laufen, so dass die Cold-Spare-Platten in einem ausgeschalteten Bereitschaftsmodus bleiben, sowie das in vorher festgelegten Intervallen erfolgende einzelne Einschalten einer jeden Cold-Spare-Platte, das Testen der Platte und das erneute Ausschalten und Versetzen der Platte in den Bereitschaftsmodus auszuführen.
-
Die Mechanismen können auf eine Vielzahl von Netztopologien und Netzkomponenten angewendet werden, wie weiter ausgeführt werden wird. Ungeachtet der Darstellung von einigen der zu den verschiedenen Ausführungsformen gehörenden Funktionen erkennt der Fachmann als vorteilhaft, dass die hier aufgezeigten methodischen Vorgehensweisen an viele verschiedene Implementierungen und Szenarien angepasst werden können.
-
Wenden wir uns nun 1 zu, in der eine beispielhafte Architektur 10 der Datenverarbeitungssystem-Umgebung einer Speichersteuereinheit gezeigt ist. Die Architektur 10 kann in einer Ausführungsform mindestens als Teil eines Systems zur Durchführung von Mechanismen der vorliegenden Erfindung realisiert werden. Die Speichersteuereinheit 10 enthält eine zentrale Verarbeitungseinheit (CPU) 12, die mit einem Übertragungsanschluss 18 und einer Hauptspeichereinheit 16 verbunden ist. Der Übertragungsanschluss 18 tauscht mit einem Übertragungsnetzwerk 20 Daten aus. Das Übertragungsnetzwerk 20 und das Speichernetzwerk können so konfiguriert werden, dass sie mit einem Server (Hosts) 24 und Speichersystemen, zu denen die Speichereinheiten 14 gehören können, Daten austauschen. Zu den Speichersystemen können Festplattenlaufwerk-(HDD-)Einheiten, Halbleitereinheiten (SSD), Flashspeicher usw. gehören, die in einer redundanten Anordnung unabhängiger Festplatten (RAID) konfiguriert sein können. Der Übertragungsanschluss 18, das Übertragungsnetzwerk 20 und andere Komponenten, die der knappen Darstellung halber nicht gezeigt, dem Fachmann aber bekannt sind, können Hardware-Komponenten wie beispielsweise Fibre Channel-Verkabelung, Fibre Channel-Anschlüsse, Host-Bus-Adapter (HBAs), konvergierende Netzwerkadapter (Converged Network Adapters (CNAs)), Netzwerk-Vermittlungsstellen und Vermittlungskomponenten sowie ähnliche Übertragungsmechanismen, die dem Fachmann bekannt sind, enthalten. Verschiedene Aspekte der veranschaulichten Ausführungsformen können mit Hilfe von einer oder mehreren dieser Komponenten realisiert werden, wie weiter ausgeführt werden wird.
-
Die Operationen, die nachstehend beschrieben sind, können auf einer oder mehreren Speichereinheiten 14, die sich in dem System 10 befinden, oder anderswo ausgeführt werden und sie können mehrere Hauptspeichereinheiten 16 aufweisen, die unabhängig und/oder in Verbindung mit anderen CPU-Einheiten 12 arbeiten. Die Hauptspeichereinheit 16 kann einen Hauptspeicher wie zum Beispiel einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM) oder sehr viele zugehörige Einheiten enthalten. Die Hauptspeichereinheit 16 und die Speichereinheiten 14 sind über ein Signal tragendes Medium mit der CPU 12 verbunden. Ferner ist die CPU 12 über den Übertragungsanschluss 18 mit einem Übertragungsnetzwerk 20 verbunden, das über eine angeschlossene Vielzahl von zusätzlichen Computer-Hostsystemen 24 verfügt. Darüber hinaus können die Hauptspeichereinheit 16 und die CPU 12 in jeder Komponente des Datenverarbeitungssystems 10 eingebettet und enthalten sein. Jedes Speichersystem kann auch getrennte und/oder eigene Hauptspeichereinheiten 16 und eine CPU 12 enthalten, die in Verbindung miteinander oder als eine getrennte Hauptspeichereinheit 16 und/oder CPU 12 arbeiten.
-
2 zeigt ein Beispiel eines RAID-Systems 200, in dem eine Ausführungsform der vorliegenden Erfindung umgesetzt werden kann. Das RAID-System 200 enthält ein Speicherarray 210 und eine oder mehrere RAID-Steuereinheiten 220. Das RAID-System 200 enthält vorzugsweise eine Vielzahl von RAID-Steuereinheiten 220, um durch Redundanz eine höhere Zuverlässigkeit zu erreichen. Das Speicherarray 210 ist vorzugsweise ebenfalls redundant, indem mehrere Speichereinheiten, wie zum Beispiel die Festplatten 230, aufgenommen werden. Die Speichereinheiten 230 sind mit einer Array-Schleife 240 verbundenen. Die Array-Schleife 240 verbindet auch die RAID-Steuereinheiten 220 mit dem Speicherarray 210. In der dargestellten Ausführungsform ist die Array-Schleife 240 eine Punkt-zu-Punkt-Schleife wie die von der Fibre Channel-Norm definierte Schleife.
-
In der dargestellten Ausführungsform unterstützen die RAID-Steuereinheiten 220 jeweils eine Host-Verbindung 250. Die RAID-Steuereinheiten 220 empfangen über die Host-Verbindung 250 Zugriffsanforderungen und bedienen diese Anforderungen, indem sie Blöcke von Daten an die und von dem Speicherarray übertragen. Die Blöcke von Daten, die an das Speicherarray übertragen werden, sind redundant codiert, um eine Fehlererkennung und Datenwiederherstellung zu ermöglichen, falls eine der Speichereinheiten 230 ausfällt.
-
Die vorliegende Erfindung berücksichtigt eine Technik, um die Zeit bis zum Ende des Lebenszyklus (end-of-life (EOL)) für Reserve-Speichereinheiten oder Platten, wie zum Beispiel diejenige, die in den Speichereinheiten 230 des Speicherarrays 210 konfiguriert ist, zu erhalten. Wie zuvor erwähnt wurde, gibt es in einem RAID-System mehrere Speichereinheiten 230, wie zum Beispiel Platten, bei denen es sich um Reserveeinheiten handelt. Sie dienen ausschließlich dem Zweck, den Platz einer fehlerhaften oder ausgefallenen Einheit in dem Speicherarray 210 einzunehmen. Speichereinheiten 230, bei denen es sich um Reserveeinheiten in der Array 210 handelt, wurden in der Vergangenheit so konfiguriert, dass sie aktiviert laufen- beziehungsweise laufend eingeschaltet und betriebsbereit sind. Diese Hot Spares werden dann veranlasst, die Datenlast einer fehlerhaften Speichereinheit 230 in dem Speicherarray 210 zu übernehmen, da RAIDs nicht nur in der Lage, sondern dafür vorgesehen sind, Daten selbst nach dem Ausfall einer Einheit sicher zu speichern.
-
Weil Daten, die auf eine fehlerhafte Speichereinheit 230 geschrieben wurden, nach dem Ausfall einer Einheit anhand von anderen Speichereinheiten 230 in dem Speicherarray 210 wiederhergestellt werden müssen, ist das System in den Momenten, die unmittelbar auf den Ausfall folgen, am verwundbarsten, da ein gleichzeitig eintretender Ausfall einer weiteren Speichereinheit 230 wahrscheinlich zu einem Datenverlust führen würde. Während eines Failovers, wenn versucht wird, eine fehlerhafte Speichereinheit 230 durch eine Hot-Spare-Einheit zu ersetzen, ist ein gleichzeitig eintretender Ausfall einer weiteren Speichereinheit 230 nichts Ungewöhnliches. Oftmals waren Reserve-Speichereinheiten 230, die in dem Speicherarray 210 betrieben werden und so konfiguriert sind, dass sie als Hot Spares laufen, einige Zeit lang eingeschaltet und betriebsbereit. In vielen Fällen waren Hot Spares dauernd so lange betriebsbereit, oder sogar noch länger, wie die Platten, denen sie Failover-Schutz gewährten.
-
Das Verfahren der vorliegenden Erfindung besteht darin, Reserve-Speichereinheiten 230 in dem Speicherarray 210, die andernfalls so konfiguriert würden, dass sie aktiviert laufen, so zu konfigurieren, dass sie inaktiviert, oder ausgeschaltet, in einem Bereitschaftsmodus laufen. Ein Argument dafür, Reserve-Speichereinheiten 230 aktiviert laufen zu lassen, ist, dass die Einheiten, wenn sie laufen, offenkundig sofort betriebsbereit sind. Dieses methodische Vorgehen lässt sich erheblich effizienter gestalten, indem man Cold-Spare-Speichereinheiten 230 zu vorher festgelegten Zeitpunkten oder in vorher festgelegten Intervallen einfach einschaltet und sie testet. Im Anschluss an diesen Testvorgang können die Reserve-Speichereinheiten 230 wieder ausgeschaltet und in einen Bereitschaftsmodus versetzt werden. Im Falle eines Ausfalls einer Speichereinheit 230 in dem Speicherarray 210 würde eine Cold-Spare-Speichereinheit 230 eingeschaltet und als Ersatz für die fehlerhafte oder ausgefallene Einheit bereitgestellt werden. Da die Cold-Spare-Speichereinheiten 230 zu vorher festgelegten Zeitpunkten oder in vorher festgelegten Intervallen eingeschaltet und getestet werden, kann realistischerweise davon ausgegangen werden, dass sich die Einheit während eines Failovers einschaltet und ordnungsgemäß funktioniert.
-
3 zeigt einen Ablaufplan eines Beispiels einer Ausführungsform der vorliegenden Erfindung 300. Beginnend bei 302 werden Reserve-Speichereinheiten in einem RAID-System, die andernfalls so konfiguriert würden, dass sie als Hot Spares laufen, so konfiguriert, dass sie als Cold Spares beziehungsweise ausgeschaltet in einem Bereitschaftsmodus in dem RAID-System 304 laufen. Jede Cold Spare wird zu einem vorher festgelegten Zeitpunkt oder in vorher festgelegten Intervallen eingeschaltet, um die Einheit zu testen, woraufhin die Einheit wieder ausgeschaltet und in einen Cold-Spare-Bereitschaftszustand 306 versetzt wird. Während eines Failovers, bei dem eine Cold Spare eine fehlerhafte Platte ersetzen muss, schaltet sich die Speichersteuereinheit oder die steuernde Entität ein und stellt die Platte als Ersatz für die fehlerhafte Platte 308 bereit. Das Verfahren endet bei 310.
-
Das Konfigurieren von Reserve-Speichereinheiten 230 in der Weise, dass sie als Cold Spares laufen, steigert die Effizienz des RAID-Systems 200 in jeder Hinsicht beträchtlich. Da die Reserve-Speichereinheiten 230 nur bei Bedarf eingeschaltet werden, reduzieren sich die Betriebskosten. Die Betriebskosten sind auch angesichts der Tatsache rückläufig, dass eine fehlerhafte Speichereinheit 230, wenn sie durch eine Reserve-Speichereinheit 230 ersetzt wird, die so konfiguriert ist, dass sie als Cold Spare läuft, tatsächlich durch eine neue Einheit mit minimaler Betriebszeit ersetzt wird und nicht durch eine Einheit, die wahrscheinlich schon das Ende ihres Lebenszyklus erreicht hat, ohne je optimal genutzt worden zu sein.
-
Die steuernde Entität der Array, wie zum Beispiel die RAID-Steuereinheit 220, verfügt über vorhandene Funktionen, um Reserve-Speichereinheiten 230 in dem Speicherarray 210 und deren Status zu erkennen. In einer Ausführungsform konfiguriert die RAID-Steuereinheit 220 das Ein- und Ausschalten der Reserve-Speichereinheiten 230, die so konfiguriert sind, dass sie als Cold Spares laufen. Ebenso kann eine steuernde Entität die vorher festgelegten Intervalle steuern, in denen die Cold Spares eingeschaltet, getestet und wieder ausgeschaltet und in den Bereitschaftsmodus versetzt werden. In einem Beispiel werden die Intervalle in der vorhandenen Matrix, die von der steuernden Entität verwendet wird, um die Reserve-Speichereinheiten 230 zu erkennen, in Form von einer Terminierungsmatrix aufgeführt.
-
In einer Ausführungsform kann eine steuernde Entität, wie zum Beispiel die RAID-Steuereinheit 220, die Platten konfigurieren und testen, da sie zu diesem Zweck einzeln eingeschaltet werden. In einem weiteren Beispiel können die Cold-Spare-Platten von einer getrennten steuernden Entität wie zum Beispiel einem Administrator getestet werden.
-
Obgleich die vorliegende Erfindung vorstehend anhand der Ausführungsform beschrieben wurde, ist der technische Umfang der vorliegenden Erfindung nicht auf die vorstehende Ausführungsform beschränkt. Für den Fachmann ist es offensichtlich, dass die vorstehende Ausführungsform um verschiedene Änderungen oder Verbesserungen ergänzt werden kann.
-
Es sei angemerkt, dass die Ausführungsreihenfolgen von Prozessen wie zum Beispiel Operationen, Prozeduren, Schritten und Phasen in den Einheiten, Systemen, Programmen und Verfahren, die in dem Umfang der Ansprüche, der Beschreibung und den Zeichnungen gezeigt sind, im Einzelnen nicht durch die Verwendung von Ausdrücken wie "vorher" und "vor"/"bevor" klar benannt sind. Daher können diese Prozesse in beliebigen Reihenfolgen ausgeführt werden, sofern eine Ausgabe von einem vorausgehenden Prozess nicht in einem darauf folgenden Prozess verwendet wird. Selbst wenn irgendein Betriebsablauf im Umfang der Ansprüche, in der Beschreibung oder in den Zeichnungen der Einfachheit halber mittels Ausdrücken wie "zunächst" und "anschließend" beschrieben wurde, bedeutet dies nicht unbedingt, dass der Betriebsablauf in einer Reihenfolge ausgeführt werden muss, die von diesen Ausdrücken vorgegeben ist.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein von einem Computer lesbares Speichermedium (oder Speichermedien) beinhalten, auf dem sich von einem Computer lesbare Programminstruktionen befinden, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung umzusetzen.
-
Das von einem Computer lesbare Speichermedium kann eine physisch greifbare Einheit sein, die Instruktionen zur Verwendung durch eine Instruktionsausführungseinheit aufnehmen und speichern kann. Das von einem Computer lesbare Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden sein. Eine Liste mit genaueren Beispielen für das von einem Computer lesbare Speichermedium, die keinen Anspruch auf Vollständigkeit erhebt, beinhaltet die folgenden Beispiele: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flashspeicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine digitale vielseitig verwendbare Disk (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Instruktionen sowie jede beliebige geeignete Kombination des Vorstehenden. Ein von einem Computer lesbares Speichermedium in der hier verwendeten Weise ist nicht so auszulegen, dass es sich dabei um kurzzeitige Signale an sich, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich über einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die durch ein Lichtwellenleiterkabel geleitet werden), oder elektrische Signale, die über ein Kabel übertragen werden, handelt.
-
Von einem Computer lesbare Programminstruktionen, die hier beschrieben sind, können von einem Speichermedium, das von einem Computer gelesen werden kann, auf entsprechende Rechen-/Verarbeitungseinheiten oder über ein Netzwerk, zum Beispiel das Internet, ein lokales Netz, ein Weitverkehrsnetz und/oder ein drahtloses Netz, auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungsstellen (Switches), Gateway-Rechner und/oder Edge-Server aufweisen. Eine Netzadapterkarte oder Netzschnittstelle in jeder Rechen-/Verarbeitungseinheit empfängt von einem Computer lesbare Programminstruktionen von dem Netzwerk und leitet die von einem Computer lesbaren Programminstruktionen weiter, um sie in einem von einem Computer lesbaren Speichermedium in der jeweiligen Rechen-/Verarbeitungseinheit zu speichern.
-
Bei den von einem Computer lesbaren Programminstruktionen zur Durchführung von Operationen der vorliegenden Erfindung kann es sich um Assembler-Instruktionen, Instruktionen der Instruktionssatzarchitektur (ISA), Maschineninstruktionen, maschinenabhängige Instruktionen, Mikrocode, Firmware-Instruktionen, Zustandseinstellungsdaten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache "C" oder in ähnlichen Programmiersprachen geschrieben sind. Die von einem Computer lesbaren Programminstruktionen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzes (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden sein oder die Verbindung kann zu einem externen Computer (zum Beispiel über das Internet mittels eines Internet-Dienstanbieters) hergestellt werden. In manchen Ausführungsformen können elektronische Schaltungen, zu denen beispielsweise programmierbare Logikschaltkreise, kundenprogrammierbare Universalschaltkreise (FPGA) oder programmierbare logische Anordnungen (PLA) gehören, die von einem Computer lesbaren Programminstruktionen ausführen, indem sie Zustandsinformationen der von einem Computer lesbaren Programminstruktionen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung umzusetzen.
-
Aspekte der vorliegenden Erfindung werden hier mit Bezug auf Darstellungen in Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern von Programminstruktionen, die von einem Computer gelesen werden können, realisiert werden können.
-
Diese von einem Computer lesbaren Programminstruktionen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Instruktionen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind. Diese von einem Computer lesbaren Programminstruktionen können auch in einem von einem Computer lesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass das von dem Computer lesbare Speichermedium, das über darin gespeicherte Instruktionen verfügt, einen Herstellungsgegenstand aufweist, der Instruktionen enthält, die Aspekte der Funktion/des Vorgangs umsetzen, welche beziehungsweise welcher in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.
-
Die von einem Computer lesbaren Programminstruktionen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf eine andere Einheit geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf einer anderen Einheit zu bewirken, um einen von einem Computer ausgeführten Prozess zu erzeugen, so dass die Instruktionen, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführt werden, die Funktionen/Vorgänge ausführen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
-
Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den Ablaufplänen oder in den Blockschaubildern ein Modul, ein Segment oder einen Teil von Instruktionen darstellen, das beziehungsweise der einen oder mehrere ausführbare Instruktionen zur Ausführung der angegebenen logischen Funktion(en) aufweist. In manchen alternativen Ausführungsarten treten die in dem Block angegebenen Funktionen gegebenenfalls nicht in der in den Figuren angegebenen Reihenfolge auf. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können zuweilen in der umgekehrten Reihenfolge ausgeführt werden. Man wird auch feststellen, dass jeder Block der Blockschaubilder und/oder der Darstellung in den Ablaufplänen sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Darstellung in den Ablaufplänen von Systemen, die auf Spezial-Hardware beruhen und die angegebenen Funktionen oder Vorgänge oder Kombinationen aus Instruktionen von Spezial-Hardware und Computer-Instruktionen durchführen, realisiert werden können.
-
Während eine oder mehrere Ausführungsformen der vorliegenden Erfindung ausführlich veranschaulicht wurden, erkennt der Fachmann als vorteilhaft, dass Änderungen und Anpassungen an diesen Ausführungsformen vorgenommen werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen, die in den folgenden Ansprüchen dargelegt ist.