-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich allgemein auf Datenverarbeitungssysteme und insbesondere auf Verfahren und Systeme zum Verhindern von Datenverlust in Speicher-Teilsystemen.
-
Beschreibung des Standes der Technik
-
Die RAID-Technologie wird bei Hochleistungsspeicher-Teilsystemen weitverbreitet verwendet. Jeder RAID-Typ kann eine begrenzte Anzahl von Plattenlaufwerkfehlern tolerieren. Bei einem RAID-5-Array darf beispielsweise höchstens ein Plattenlaufwerkfehler zu einem beliebigen Zeitpunkt auftreten, damit kein Datenverlust auftritt. Wenn während der Wiederherstellungsperiode ein weiteres Plattenlaufwerk einen Fehler aufweist, tritt ein Datenverlust auf.
-
Bestimmte RAID-Architekturen setzen prioritätsbehaftete Wiederherstellungs-Algorithmen um, so dass dann, wenn eine E/A-Aktivität auf Daten in dem RAID gerichtet ist, das nicht durch Redundanz geschützt ist, die E/A-Aktivität in Warteschlangen eingestellt oder blockiert wird, bis die Redundanz der Daten durch den anwendbaren RAID-Algorithmus wiederhergestellt ist. Wenn die Daten beispielsweise durch ein RAID-5-Paritäts-Redundanzschema geschützt sind und ein Host oder Client eine Leseoperation an das RAID-Array richtet, kann der RAID-5-Algorithmus zuerst angewendet werden, bevor die Host- oder Client-Leseanforderung bedient wird.
-
Auf der RAID-Ebene gibt es verschiedene Komponenten, und es gibt außerdem redundante Komponenten. Bei einer RAID-5-Konfiguration wird eine Paritätskomponente verwendet, so dass ein Datenverlustfehler von einer anderen Platte wiederhergestellt werden kann, was als behebbarer Fehler bezeichnet wird, der zum Verfolgen der Wiederherstellung einen Schwellenwert verwenden kann. Wenn weitere Fehler (d. h. nicht behebbare Fehler) auftreten, sollte die fehlerbehaftete Platte möglichst bald ersetzt werden.
-
Gegenwärtige Verfahren zum vorausschauenden Entfernen eines verdächtigen Elements einer Array-Komponente beruhen auf einem Zurückweisen des Plattenlaufwerks des Elements aus dem RAID-Array, als ob es ausgefallen wäre, um das Wiederherstellen des RAID aus der Parität auszulösen. Durch das lange ablaufende Wiederherstellen des Array ist die Array-Redundanz in Bezug auf einen sekundären Fehler ungeschützt, der zum Datenverlust führen kann. Anschließend erhöht die Array-Wiederherstellung die Wahrscheinlichkeit des Auftretens eines sekundären Fehlers, der einen einheitenübergreifenden Datenverlust bewirken kann. Obwohl RAID eine Redundanz bereitstellt, werden bei der Architektur vor einem Fehler keine gefährdeten Elemente vorhergesagt oder so aus dem System entfernt, dass eine Array-Wiederherstellung vermieden wird.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Verschiedene Ausführungsformen stellen Systeme bereit, um einen Verlust von Daten in einem Speichersystem zu verhindern. Ein System weist eine Vielzahl von Speichereinheiten, die so eingerichtet sind, dass sie Daten an einer Vielzahl von Datenadressen speichern, und einen Prozessor auf, der mit der Vielzahl von Speichereinheiten verbunden ist. Der Prozessor ist so eingerichtet, dass er erkennt, dass eine Speichereinheit unter der Vielzahl von Speichereinheiten eine Fehlfunktion aufweist, und den Typ der Fehlfunktion ermittelt. Der Prozessor ist ferner so eingerichtet, dass er eine SMART-Wiederherstellungstechnik, eine normale Wiederherstellungstechnik, eine Daten-Migrationstechnik oder eine Benutzerdaten-Sicherungstechnik auswählt, um die Daten in der Speichereinheit auf der Grundlage des ermittelten Typs der Fehlfunktion zu erhalten und die ausgewählte SMART-Wiederherstellungstechnik, normale Wiederherstellungstechnik, Daten-Migrationstechnik oder Benutzerdaten-Sicherungstechnik an der Speichereinheit auszuführen.
-
Weitere Ausführungsformen stellen Verfahren bereit, um einen Verlust von Daten in einem Speichersystem zu verhindern, das eine Vielzahl von Speichereinheiten enthält, von denen jede Daten an einer Vielzahl von Datenadressen speichert. Ein Verfahren weist ein Erkennen auf, dass eine Speichereinheit aus der Vielzahl von Speichereinheiten eine Fehlfunktion aufweist, und ein Ermitteln des Typs der Fehlfunktion. Das Verfahren weist des Weiteren ein Auswählen einer SMART-Wiederherstellungstechnik, einer normale Wiederherstellungstechnik, einer Daten-Migrationstechnik oder einer Benutzerdaten-Sicherungstechnik auf, um die Daten in der Speichereinheit auf der Grundlage des ermittelten Typs der Fehlfunktion zu erhalten und die ausgewählte SMART-Wiederherstellungstechnik, normale Wiederherstellungstechnik, Daten-Migrationstechnik oder Benutzerdaten-Sicherungstechnik an der Speichereinheit auszuführen.
-
Verschiedene weitere Ausführungsformen stellen physische Computerspeichermedien bereit (z. B. eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisc-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Vorhergehenden), die ein Verfahren in Form eines Computerprogrammprodukts zum Verhindern eines Verlusts von Daten in einem Speichersystem aufweisen, das eine Vielzahl von Speichereinheiten enthält, von denen jede Daten an einer Vielzahl von Datenadressen speichert. Ein physisches Computer-Speichermedium weist Computercode zum Erkennen, dass eine Speichereinheit von der Vielzahl von Speichereinheiten eine Fehlfunktion ausführt, und Computercode zum Ermitteln des Typs der Fehlfunktion auf. Das physische Computer-Speichermedium weist des Weiteren Computercode zum Auswählen einer SMART-Wiederherstellungstechnik, einer normale Wiederherstellungstechnik, einer Daten-Migrationstechnik oder einer Benutzerdaten-Sicherungstechnik, um die Daten in der Speichereinheit auf der Grundlage des ermittelten Typs der Fehlfunktion zu erhalten, und Computercode zum Ausführen der ausgewählten SMART-Wiederherstellungstechnik, der normalen Wiederherstellungstechnik, der Daten-Migrationstechnik oder der Benutzerdaten-Sicherungstechnik an der Speichereinheit auf.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Damit die Vorteile der Erfindung leicht verständlich sind, wird eine speziellere Beschreibung der Erfindung, die oben kurz dargelegt wurde, unter Bezugnahme auf spezifische Ausführungsformen wiedergegeben, die in den beigefügten Zeichnungen veranschaulicht sind. Es ist klar, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung darstellen und deshalb ihren Umfang nicht einschränken sollen, wobei die Erfindung durch die Verwendung der beigefügten Zeichnungen mit zusätzlicher Spezifität und Ausführlichkeit beschrieben und erläutert wird, in denen:
-
1 ein Blockschaltplan einer Ausführungsform eines Systems zum Verhindern von Datenverlust in einem Speicher-Teilsystem ist; und
-
2 ein Ablaufplan einer Ausführungsform eines Verfahrens zum Verhindern von Datenverlust in einem Speichersystem ist.
-
GENAUE BESCHREIBUNG DER ZEICHNUNGEN
-
Verschiedene Ausführungsformen stellen Systeme und Verfahren zum Verhindern von Datenverlust in Speicher-Teilsystemen bereit. Außerdem werden physische Computerspeichermedien bereitgestellt (z. B. eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisc-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Vorhergehenden), die ein Verfahren in Form eines Computerprogrammprodukts zum Verhindern eines Verlusts von Daten in einem Speichersystem aufweisen.
-
In den Figuren handelt es sich bei 1 um einen Blockschaltplan einer Ausführungsform eines Systems 100 zum Verhindern von Datenverlust in einem Speicher-Teilsystem. Zumindest in der dargestellten Ausführungsform weist das System 100 ein Speicher-Teilsystem 110 eines redundanten Array unabhängiger Platten (RAID-Speicher-Teilsystem) auf, das mit einem Verwaltungsknoten 120 verbunden ist, der mit einem Netzwerk 130 (z. B. ein Weitverkehrsnetzwerk (WAN), ein lokales Netzwerk (LAN), ein Speicherbereich-Netzwerk (SAN), ein konvergentes Netzwerk, ein Intranet, das Internet und/oder ähnliche Netzwerke) Daten austauscht.
-
Das RAID-Speicher-Teilsystem 110 weist eine Vielzahl von Speichereinheiten auf (z. B. Platten 1110 bis 111n). Die Platten 1110 bis 111n können in einer beliebigen RAID-Konfiguration (z. B. RAID-0, RAID-1, RAID-2, RAID-3, RAID-4, RAID-5, RAID-6, RAID-10, usw.) angeordnet sein. Jede der Platten 1110 bis 111n ist so eingerichtet, dass sie Daten an einer Vielzahl von Datenadressen in den Platten 1110 bis 111n speichert. Zum Verhindern eines Verlusts von Daten in den Platten 1110 bis 111n weist das System 100 einen Verwaltungsknoten 120 auf.
-
Der Verwaltungsknoten 120 weist in einer Ausführungsform ein Datensicherungsmodul 1210 auf, das so eingerichtet ist, dass es einen Verlust von Daten in den Platten 1110 bis 111n verhindert. Bei dem Verwaltungsknoten 120 kann es sich um einen beliebigen Prozessor, eine Steuereinheit und/oder eine andere Einheit handeln, die in der Lage ist, den Computercode auszuführen, der das Datensicherungsmodul 1210 bildet.
-
Das Datensicherungsmodul 1210 ist so eingerichtet, dass es ermittelt, ob eine oder mehrere der Platten 1110 bis 111n einen Fehlerzustand aufweisen, und den Typ des Fehlerzustands ermittelt. Zu Beispielen von Fehlerzuständen gehören einfache oder Schwellenwertfehler (z. B. ein Medienfehler, ein Key-Code-Qualifier-(KCQ-)Fehler und ähnliche Fehler), eine oder mehrere fehlerbehaftete Platten, ein oder mehrere fehlerbehaftete RAID-Arrays und ähnliche Fehlerzustände, ohne darauf beschränkt zu sein.
-
Bei einer Ausführungsform ist das Datensicherungsmodul 1210 so eingerichtet, dass es eine SMART-Wiederherstellungstechnik einleitet, wenn das Datensicherungsmodul 1210 feststellt, dass eine oder mehrere der Platten 1110 bis 111n einen einfachen oder Schwellenwertfehler aufweisen. Der Ausdruck „SMART-Wiederherstellung” („SMART rebuild”) gilt für die Verwendung eines gespiegelten RAID-Paars als eine Komponente einer anderen RAID-Architektur.
-
Ein 3 + P RAID-5-Array enthält beispielsweise die Komponenten D1, D2, D3, P. Wenn bei diesem Array die Komponente D2 als Quelle einer SMART-Wiederherstellung verwendet wird, wird ein Spiegel-Array (RAID 1) über D2 eingerichtet, und ein RAID-Spiegel wird verwendet, um eine konsistente Spiegelung von D2 auszuführen. Dabei können die RAID-1-Spiegelkomponenten als D2s und D2t bezeichnet werden, wobei es sich bei D2s um die Komponente 2 des RAID-5-Array und bei D2t um das Ziel für den RAID-1-Spiegel handelt. Beim Wiederherstellen können Daten, die zu D2t geschrieben werden, aus D1, D3, P rekonstruiert oder von D2s gelesen werden.
-
Unter Fortsetzen des Beispiels kann die Komponente D2 als Quelle einer SMART-Wiederherstellung ausgewählt werden, ein flüchtiger RAID-1-Spiegel wird eingerichtet, und wenn D2t mit D2s konsistent wird, kann D2s aus dem RAID-5-Array logisch entfernt werden. Dabei wird D2T die Komponente 2 des RAID-5-Array.
-
Bei einer Ausführungsform ist das Datensicherungsmodul 1210 so eingerichtet, dass es erkennt, ob bei einer bestimmten Datenadresse und/oder einem Bereich von Adressen ein höheres Verlustrisiko besteht, und die SMART-Wiederherstellung priorisiert. Das heißt, das Datensicherungsmodul 1210 ist so eingerichtet, dass es die SMART-Wiederherstellung an der Datenadresse oder dem Bereich von Adressen ausführt, bevor die SMART-Wiederherstellung an anderen Adressen ausgeführt wird, bei denen kein Risiko des Datenverlusts ermittelt wurde.
-
Beispielsweise korreliert eine Komponente D3, bei der behebbare oder nichtbehebbare Fehler im LBA-Bereich Ma–Mb nach außen verlagert wurden, mit einem LBA-Bereich eines RAID-5-Array Xa–Xb. Eine andere Komponente D2, bei der behebbare oder nichtbehebbare Fehler im LBA-Bereich Na–Nb nach außen verlagert wurden, korreliert mit einem LBA-Bereich eines RAID-5-Array Ya–Yb. Eine SMART-Wiederherstellung wird gleichzeitig an den Komponenten D2 und D3 eingeleitet. Die RAID-5- und RAID-1-Topologie lautet D1 (D2s, D2t), (D3s, D3t) und P.
-
Die Client/Host-„Lesevorgänge” werden ausgelöst oder mit den RAID-LBAs Xa–Xb und den RAID-LBAs Na–Nb simuliert, die mit der Komponente D2s korrelieren. Gleichfalls werden „Lesevorgänge” ausgelöst und mit den RAID-LBAs Ya–Yb simuliert, die mit der Komponente D3s Ma–Mb korrelieren. Die RAID-Algorithmen wirken an D2t, indem von D2s gelesen wird oder mit RAID 5 von D1, D3s und P rekonstruiert wird, um LBAs Xa–Xb an D2t zu rekonstruieren. Die RAID-Algorithmen wirken an D3t, indem von D3s gelesen wird oder indem aus D1, D2s und P rekonstruiert wird, um LBAs Ma–Mb an D3t zu rekonstruieren. Das Ergebnis der Leseoperation besteht darin, dass in dem RAID-System zu einem frühen Zeitpunkt in dem Wiederherstellungszyklus für die LBA-Bereiche Xa–Xb und Ya–Yb des risikobehafteten Array Redundanz eingerichtet wird.
-
Die SMART-Wiederherstellung an D2t und D3t läuft normalerweise ab, bis für das Paar RAID 1-Redundanz eingerichtet wurde. Des Weiteren werden D2t und D3t die primären Komponenten des RAID-5-Array, und die flüchtigen RAID-1-Array-Beziehungen werden beendet. Durch Priorisieren von Lesevorgängen in dem RAID-Array auf der Grundlage der Vorgeschichte von ausfallenden oder fehlerbehafteten Array-Komponenten wird zu einem früheren Zeitpunkt in dem Wiederherstellungszyklus eine höhere Daten-Redundanz erreicht, und das Risiko eines einheitenübergreifenden Datenverlusts wird bei sich ausweitenden Fehlern geringer.
-
Der Ausdruck „einheitenübergreifender Datenverlust” („strip data loss”) gilt, wenn eine Array-Datenredundanz infolge des Fehlers von einer oder mehreren Komponenten ungeschützt ist und der RAID-Wiederherstellungs-Algorithmus auf einen nicht behebbaren Lesefehler während einer RAID-Wiederherstellungsoperation tritt, der eine korrekte Datenrekonstruktion verhindert. Diese Situation kann in einer Vielzahl von RAID-Algorithmen vorkommen: RAID 1 (Spiegeln), RAID 5 (Parität), RAID 6 und dergleichen.
-
Bei einer weiteren Ausführungsform ist das Datensicherungsmodul 1210 so eingerichtet, dass es eine „normale” Wiederherstellungstechnik ausführt, wenn das Datensicherungsmodul 1210 feststellt, dass eine oder mehrere der Platten 1110 bis 111n fehlerhaft oder ausgefallen sind. Die normale Wiederherstellungstechnik beinhaltet bei einer Ausführungsform Ersetzen der fehlerhaften oder ausgefallenen Platte(n) durch eine oder mehrere neue Platten und Wiederherstellen des RAID-Array aus der bzw. den nicht fehlerhaften oder korrekt funktionierenden Platte(n).
-
Das Datensicherungsmodul 1210 ist bei einer noch weiteren Ausführungsform so eingerichtet, dass es Daten von einem Array in der RAID-Architektur zu einem anderen Array in der RAID-Architektur verschiebt, wenn das Datensicherungsmodul 1210 feststellt, dass ein oder mehrere Arrays in der RAID-Architektur fehlerhaft ist bzw. sind und mehr als eine im Voraus festgelegte Zeitspanne verbleibt, bevor das Array oder die Arrays ausfallen. Bei der im Voraus festgelegten Zeitspanne handelt es sich um eine Zeitspanne, die ermöglicht, dass die Daten in dem bzw. den fehlerbehafteten Arrays zu einem oder mehreren anderen Arrays in der RAID-Architektur verschoben werden. Zu Beispielen der im Voraus festgelegten Zeitspanne gehören u. a. ein Tag, eine Woche, ein Monat oder jede andere Zeitspanne, die ermöglicht, dass die Daten in dem bzw. den fehlerbehafteten Arrays zu einem oder mehreren anderen Arrays in der RAID-Architektur verschoben werden. Wenn weniger Zeit als die im Voraus festgelegte Zeitspanne verbleibt, ist das Datensicherungsmodul 1210 so eingerichtet, dass es eine andere Datensicherungstechnik ausführt.
-
Wenn das Datensicherungsmodul 1210 feststellt, dass ein oder mehrere Arrays in der RAID-Architektur fehlerbehaftet sind und die Zeitspanne, die bis zum Ausfallen des Array oder der Arrays verbleibt, kleiner als die im Voraus festgelegte Zeitspanne oder gleich dieser ist, ist das Datensicherungsmodul 1210 so eingerichtet, dass es die Daten über ein Netzwerk 130 zu einer fernen Stelle zum Sichern überträgt. Bei einer Ausführungsform handelt es sich bei der fernen Stelle um ein anderes Speicher-Teilsystem in Bezug auf das System 100. Bei einer weiteren Ausführungsform handelt es sich bei der fernen Stelle um ein anderes Speicher-Teilsystem, das z. B. das Speicher-Teilsystem eines Kunden und/oder Client enthält.
-
Bei 2 handelt es sich um einen Ablaufplan einer Ausführungsform eines Verfahrens 200 zum Verhindern von Datenverlust in einem Speichersystem, das eine Vielzahl von Speichereinheiten (z. B. Platten 1110 bis 111n) aufweist, von denen jede Daten an einer Vielzahl von Datenadressen speichert. Das Verfahren 200 beginnt zumindest in der dargestellten Ausführungsform durch Feststellen und/oder Erkennen, dass eine oder mehrere Speichereinheiten einen Fehlerzustand aufweisen (Block 210) und Ermitteln des Typs des Fehlerzustands (Block 220).
-
Wenn es sich bei dem ermittelten Fehlerzustand um einen einfachen oder Schwellenwertfehler handelt (z. B. einen Medienfehler) (Block 225), beinhaltet das Verfahren Einleiten einer SMART-Wiederherstellung in der Speichereinheit bzw. den Speichereinheiten (Block 230). Nach dem Einleiten der SMART-Wiederherstellung beinhaltet das Verfahren Ermitteln, ob bei einer oder mehreren Datenadressen oder einem Bereich von Adressen ein größeres Risiko des Datenverlustes besteht (Block 235).
-
Wenn bei einer oder mehreren Datenadressen oder einem Bereich von Adressen ein größeres Risiko des Datenverlusts besteht als bei anderen Datenadressen, wird die SMART-Wiederherstellung zuerst an dieser bzw. diesen Datenadressen ausgeführt (Block 240), und die SMART-Wiederherstellung wird nacheinander an den Datenadressen ausgeführt (Block 245). Wenn bei einer oder mehreren Datenadressen oder einem Bereich von Adressen kein größeres Risiko des Datenverlusts besteht als bei anderen Datenadressen, wird die SMART-Wiederherstellung nacheinander an den Datenadressen ausgeführt (Block 145).
-
Wenn der ermittelte Fehlerzustand darin besteht, dass eine oder mehrere Speichereinheiten fehlerhaft oder ausgefallen sind (Block 250), beinhaltet das Verfahren 200 Ausführen einer normalen Wiederherstellung an der bzw. den Speichereinheiten (Block 255). Bei einer Ausführungsform beinhaltet das Ausführen der normalen Wiederherstellung Ersetzen der fehlerhaften oder ausgefallenen Speichereinheiten durch eine oder mehrere neue Speichereinheiten und Wiederherstellen des RAID-Array mittels der anderen nicht fehlerhaften oder korrekt funktionierenden Speichereinheiten.
-
Wenn der ermittelte Fehlerzustand darin besteht, dass ein oder mehrere RAID-Arrays fehlerhaft sind (Block 260), beinhaltet das Verfahren 200 Ermitteln, ob bis zum Ausfallen des RAID-Array eine Zeit verbleibt, die größer als eine im Voraus festgelegte Zeitspanne ist. Wenn bis zum Ausfallen des RAID-Array eine Zeit verbleibt, die größer als die im Voraus festgelegte Zeitspanne ist, beinhaltet das Verfahren 200 Verschieben von Daten von dem fehlerhaften Array in der RAID-Architektur zu einem anderen Array in der RAID-Architektur (Block 280). Bei der im Voraus festgelegten Zeitspanne handelt es sich um eine Zeitspanne, die ermöglicht, dass die Daten in den fehlerbehafteten Arrays zu einem oder mehreren anderen Arrays in der RAID-Architektur verschoben werden. Zu Beispielen der im Voraus festgelegten Zeitspanne gehören u. a. ein Tag, eine Woche, ein Monat oder jede andere Zeitspanne, die ermöglicht, dass die Daten in den fehlerbehafteten Arrays zu einem oder mehreren anderen Arrays in der RAID-Architektur verschoben werden.
-
Wenn bis zum Ausfallen des RAID-Array eine Zeit verbleibt, die kleiner als die im Voraus festgelegte Zeitspanne oder gleich dieser ist, beinhaltet das Verfahren 200 Übertragen der Daten in dem fehlerbehafteten RAID-Array zu einer fernen Stelle zum Sichern (Block 290). Bei einer Ausführungsform handelt es sich bei der fernen Stelle um ein anderes RAID-System. Bei einer weiteren Ausführungsform handelt es sich bei der fernen Stelle um ein anderes Speicher-Teilsystem, das z. B. das Speicher-Teilsystem eines Kunden und/oder Client enthält.
-
Zwar wurde wenigstens eine beispielhafte Ausführungsform in der vorhergehenden genauen Beschreibung der Erfindung dargestellt, jedoch sollte klar sein, dass es eine riesige Anzahl von Variationen gibt. Es sollte außerdem klar sein, dass es sich bei der beispielhaften Ausführungsform oder beispielhaften Ausführungsformen lediglich um Beispiele handelt, die nicht vorgesehen sind, um den Umfang, die Anwendbarkeit oder Konfiguration der Erfindung in irgendeiner Weise einzuschränken. Die vorhergehende genaue Beschreibung stellt stattdessen für einen Fachmann einen bequemen Fahrplan zum Umsetzen einer beispielhaften Ausführungsform der Erfindung bereit, wobei klar ist, dass an der Funktion und Anordnung der in einer beispielhaften Ausführungsform beschriebenen Elemente zahlreiche Änderungen ausgeführt werden können, ohne vom Umfang der Erfindung abzuweichen, der in den angefügten Ansprüchen und ihren rechtlichen Entsprechungen dargestellt ist.
-
Einem Fachmann ist klar, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt verkörpert werden können. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardware-Aspekte kombiniert, annehmen, die hier alle als ”Schaltung”, ”Modul” oder ”System” bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert wird, die computerlesbaren Programmcode aufweisen, der darin ausgeführt wird.
-
Jede Kombination aus einem oder mehreren computerlesbaren Medien kann genutzt werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein physisches computerlesbares Speichermedium handeln. Ein physisches computerlesbares Speichermedium kann z. B. ein elektronisches, magnetisches, optisches, kristallines, polymeres, elektromagnetisches, Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede geeignete Kombination des Vorhergehenden sein, ist jedoch nicht darauf beschränkt. Zu Beispielen des physischen computerlesbaren Speichermediums gehören eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein RAM, ein ROM, ein EPROM, ein Flash-Speicher, ein Lichtwellenleiter, ein CD-ROM, eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Vorhergehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm oder Daten zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten oder speichern kann.
-
Computercode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung jedes geeigneten Mediums übertragen werden, darunter drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, Hochfrequenz-(HF-)Medien usw. oder jede geeignete Kombination aus dem Vorhergehenden, ohne darauf beschränkt zu sein. Computercode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen statischen Sprache geschrieben sein wie z. B. die Programmiersprache ”C” oder eine ähnliche Programmiersprache. Der Computercode kann nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), ein konvergentes Netzwerk, ohne darauf beschränkt zu sein, oder die Verbindung kann zu einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
-
Aspekte der vorliegenden Erfindung wurden oben unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen.
-
Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, der Befehle enthält, die die Funktion/Wirkung umsetzen, die in dem Block/den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind. Computerprogrammbefehle können außerdem in einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, bereitstellen.
-
Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder Blockschaltbildern ein Modul, Segment oder Abschnitt von Code repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Es sollte außerdem angemerkt werden, dass bei einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockschaltbildern und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockschaltbildern und/oder Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
-
Zwar wurden eine oder mehrere Ausführungsformen der vorliegenden Erfindung genau erläutert, jedoch ist es für einen Fachmann klar, dass Modifikationen und Anpassungen an diese Ausführungsformen ausgeführt werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen, der in den nachfolgenden Ansprüchen dargestellt ist.