-
ALLGEMEINER STAND DER
TECHNIK
-
Gebiet der Erfindung
-
Das
technische Gebiet dieser Erfindung liegt im Bereich der elektronischen
Datenverarbeitung. Spezieller betrifft die Erfindung Verfahren,
Computerprogrammprodukte und Systeme zum Zugreifen auf Datenobjekte,
insbesondere im Zusammenhang mit der Datenbewegung.
-
Beschreibung des Standes
der Technik
-
Das
Bewegen von Datenobjekten ist jedem Benutzer eines Computers wohlbekannt
und ist eine Standardprozedur, welche routinemäßig angewendet wird. Eine spezielle
Anwendung des Bewegens von Datenobjekten ist der Archivierungsprozess,
durch welchen Datenobjekte aus Gründen der Sicherheit und/oder
Leistungsfähigkeit
von einer ersten Speicherstelle zu einer zweiten bewegt werden.
In Unternehmen werden Softwareanwendungen der Unternehmensressourcenplanung
(Enterprise Resource Planning, ERP) verwendet, um Geschäftsprozesse und
die Leitung des Unternehmens zu steuern oder zu unterstützen. ERP-Software
wird ferner verwendet, um Firmeninformationen von Unternehmen verschiedener
Arten auf irgendeinem Gebiet der Technik mit Hilfe von automatischen
Datenverarbeitungssystemen wie etwa Computern oder Computersystemen zu
verwalten. Während
der Verwendung einer solchen Software wird gewöhnlich eine riesige Menge von
Daten erzeugt, welche wichtige Geschäftsinformationen enthalten
und welche von Zeit zu Zeit archiviert werden müssen.
-
Gemäß dem Stand
der Technik (siehe Helmut Stefani, Datenarchivierung mit SAP, Galileo Press
GmbH, Bonn 2002, ISBN 3-89842-212-7) kann das Archivieren automatisch
mit Hilfe von Archivierungssoftware-Tools durchgeführt werden,
welche Bestandteil der ERP-Software
sein können.
Solche Tools können
aus einem Schreibmodul bestehen, welches die zu archivierenden Datenobjekte
sequentiell in Archivdateien speichert (schreibt), und aus einem
Löschmodul,
welches die erfolgreich archivierten Daten aus der ursprünglichen
Bank der Datenobjekte löscht.
Das Schreibmodul kann die zu archivierenden Datenobjekte aus der
Datenbank nach spezifischen Kriterien auswählen, z.B. nach dem Zeitpunkt der
Erzeugung der Daten. Es ändert
die ursprünglichen
Datenobjekte oder die ursprüngliche
Datenbank gewöhnlich
nicht. Das Löschmodul
liest zeitlich versetzt die Archivdatei sequentiell und löscht die
in der Archivdatei gefundenen Datenobjekte aus der ursprünglichen
Datenbank. Dies stellt sicher, dass nur solche Datenobjekte aus
der ursprünglichen
Datenbank gelöscht
werden, welche lesbar in der Archivdatei gespeichert sind. Die Zeit
für die
Archivierungsprozedur als Ganzes hängt von der Datenmenge ab und
variiert von ein paar Millisekunden bis zu mehreren Stunden oder
Tagen. Demzufolge ist in vielen Fällen ein beträchtlicher
Zeitabstand zwischen dem Schreiben der Daten in die Archivdatei
und dem Löschen
der Daten aus der ursprünglichen
Datenbank vorhanden. Dieser Zeitabstand kann eine Ursache für die folgenden
Probleme sein:
Solange die Datenobjekte noch in der ursprünglichen Datenbank
verfügbar
sind, können
sie während
des besagten Zeitabstandes noch immer durch irgendeine Softwareanwendung
geändert
werden. Da das Löschprogramm
das archivierte Datenobjekt und das zu löschende Datenobjekt nicht vergleicht,
können solche Änderungen
verloren gehen. Dies hat nicht nur den Verlust der geänderten
Daten zur Folge, sondern es kann außerdem zur Folge haben, dass
bestimmte Geschäftsprozesse
nicht abgeschlossen werden können.
-
Ein
anderes Problem entsteht, wenn mehrere Archivierungsprozesse parallel
ablaufen. Dann kann es geschehen, dass ein Datenobjekt mehrmals archiviert wird
und nicht mehr eindeutig identifizierbar ist. Dies kann zur Folge
haben, dass Berechnungen oder statistische Analysen, welche die
Archivdateien benutzen, falsche Ergebnisse liefern.
-
Es
kann außerdem
geschehen, dass Datenobjekte in der ursprünglichen Datenbank von dem Schreibmodul
gelesen werden und gleichzeitig von einer anderen Softwareanwendung
geändert
werden. In einem solchen Falle können
die Daten aus einem archivierbaren Zustand in einen nicht archivierbaren
Zustand versetzt werden. Als Folge davon werden Datenobjekte, welche
nicht archivierbar sind, in die Archivdatei geschrieben und aus
der ursprünglichen
Datenbank gelöscht.
In der Tat kann dies einen Verlust von Daten zur Folge haben.
-
Somit
besteht Bedarf an einem Verfahren, einer Softwareanwendung und/oder
einem Datenverarbeitungssystem, die eine effizientere Lösung der oben
beschriebenen Probleme gewährleisten;
insbesondere ist es wünschenswert,
eine Softwareanwendung bereitzustellen, die einen Steuermechanismus aufweist,
welcher die Änderung
während
eines Bewegungs- oder Archivierungsprozesses verhindert.
-
Kurzdarstellung der Erfindung
-
Der
Schutzbereich der Erfindung ist durch die beigefügten Ansprüche definiert.
-
Kurzbeschreibung der Zeichnungen
-
Die
beigefügten
Zeichnungen, welche in diese Patentbeschreibung einbezogen sind
und einen Bestandteil derselben darstellen, zeigen Beispiele von
Ausführungsformen
der Erfindung und erklären zusammen
mit der Beschreibung die Prinzipien der Erfindung. In den Zeichnungen
zeigen:
-
1 ein
schematisches Blockschaltbild der Implementierung des erfindungsgemäßen Verfahrens
innerhalb eines Computersystems;
-
2 eine
Prinzipskizze einer beispielhaften Struktur eines Sperrobjektes
und eines Datenobjektes gemäß den Prinzipien
des erfindungsgemäßen Verfahrens;
-
3 ein
beispielhaftes Flussdiagramm einer Implementierung der Erzeugung
eines ersten und zweiten Sperrobjektes, die in 1 dargestellt ist;
-
4 ein
beispielhaftes Flussdiagramm einer anderen Implementierung der Erzeugung
eines ersten und zweiten Sperrobjektes, die in 1 dargestellt
sind;
-
5 ein
beispielhaftes Flussdiagramm einer Implementierung eines Löschprozesses
im Zusammenhang mit der Datenbewegung/Datenarchivierung;
-
6 ein
beispielhaftes Flussdiagramm einer weiteren Implementierung der
Erzeugung eines ersten und zweiten Sperrobjektes;
-
7 ein
beispielhaftes Flussdiagramm, welches darstellt, wie eine Softwareanwendung
das Konzept der P- und T-Sperren verwenden kann;
-
8 einen
Prozess, der anstelle des in 7 dargestellten
angewendet werden kann und eine bedingte Löschung einer P-Sperre enthält;
-
9 ein
Beispiel eines Flussdiagramms für ein
Softwaremodul, mit dessen Hilfe die Sperren gelöscht werden können.
-
Ausführliche Beschreibung
-
Computersysteme
und Programme stehen in engem Zusammenhang. Wendungen, die im weiteren
verwendet werden, wie etwa "der
Computer liefert/stellt bereit" und "das Programm sieht
spezifische Aktionen vor oder führt
spezifische Aktionen durch", "ein Benutzer führt eine
spezifische Aktion durch", sind
eine praktische Abkürzung,
um Aktionen auszudrücken,
die von einem Computersystem durchgeführt werden, welches von einem
Programm gesteuert wird, oder um auszudrücken, dass das Programm oder
Programmmodul dazu bestimmt ist, das Computersystem in die Lage
zu versetzen, die spezifische Aktion durchzuführen, oder einen Benutzer in
die Lage zu versetzen, die spezifische Aktion mittels eines Computersystems
durchzuführen.
-
Nachfolgend
wird ausführlich
auf die Prinzipien der Erfindung eingegangen, indem die Erfindung
anhand des Archivierungsprozesses erläutert wird, für den Beispiele
in den beigefügten
Zeichnungen dargestellt sind. Die hier erwähnten Beispiele sind dazu bestimmt,
die Erfindung zu erläutern,
und nicht dazu, die Erfindung auf irgendeine Weise einzuschränken.
-
Innerhalb
des Konzeptes dieser Beschreibung sollen die verwendeten Begriffe
ihre übliche
Bedeutung im Kontext des Gebietes der Datenverarbeitung haben, sofern
sie nicht in dem folgenden Abschnitt anders definiert sind:
Ein
Computersystem kann ein selbstständiger
Computer sein, wie etwa ein PC oder ein Laptop, oder eine Reihe
von Computern, die zu einem Netzwerk verbunden sind, z.B. einem
Netzwerk innerhalb einer Firma, oder eine Reihe von Computern, die über das Internet
verbunden sind. Bei einem zu archivierenden Datenobjekt kann es
sich um eine beliebige Art oder einen beliebigen Typ von Daten handeln,
z.B. numerische Daten oder Textdaten, Bilddaten, Metadaten, unabhängig davon,
ob die Daten als ganze Dateien oder Teile von Dateien oder Felder
in Tabellen implementiert sind, und unabhängig davon, ob sie in einem
flüchtigen
Speicher oder einem nichtflüchtigen
Speicher gespeichert sind. Beispielsweise können Datenobjekte gemäß der vorliegenden
Erfindung als ein oder mehrere Felder von einer oder mehreren Tabellen
implementiert sein, insbesondere von Tabellen eines relationalen
Datenbanksystems, oder als Objekte in einer objektorientierten Programmsprache.
-
Der
Begriff "ERP-Software" ist in dem Sinne aufzufassen,
dass er eine beliebige Softwareanwendung beinhaltet, welche die
Geschäftsprozesse
eines Unternehmens unterstützt.
-
Eine
Speicherstelle ist ein flüchtiges
oder nichtflüchtiges
(permanentes) Speichermittel, auf das durch das Computersystem zugegriffen
werden kann. Sie kann eine beliebige Art von Computerspeichermittel
sein, die dem Durchschnittsfachmann bekannt ist, z.B. RAM, Magnetspeicher
oder optischer Speicher, wie etwa Diskette, Festplatte, MO-Disk, CD-ROM,
CD RW, DVD ROM, DVD RW usw.
-
Eine
Kennung (ID) ist ein Datentyp, welcher eine eindeutige Identifizierung
des zu archivierenden Datenobjektes ermöglicht; sie kann zum Beispiel
als eine Zahl oder eine Kombination von alphanumerischen Zeichen
implementiert sein, oder als ein charakteristischer Teil des zu
archivierenden Datenobjektes. Aus dieser Definition geht hervor,
dass ein Datenobjekt sehr vielfältige
IDs haben kann. Ein Sperrobjekt ist ein Datenobjekt, in welchem
die Kennungen gespeichert sind. Es kann z.B. als eine Datei auf
einem Speichermittel oder als ein Datenarray in einem Computerspeicher
implementiert sein. Ein erstes Sperrobjekt kann vorteilhafterweise
in einem nichtflüchtigen
Speichermittel gespeichert sein, und ein zweites Sperrobjekt kann
in einem flüchtigen und/oder
nichtflüchtigen
Speichermittel gespeichert sein.
-
Die
Zuweisung einer Speicherstelle zu einer ID kann durch eine Tabelle
implementiert sein, in welcher ein Feld einer Zeile die ID enthält und ein
anderes Feld der betreffenden Zeile eine Verknüpfung zu der zweiten Speicherstelle
enthält,
z.B. einen Dateinamen. Diese Tabelle kann als eine Datei auf einem nichtflüchtigen
Speichermittel gespeichert sein.
-
In 1 ist
ein Beispiel einer Implementierung einer ersten Ausführungsform
der Erfindung dargestellt. 1 zeigt
ein Computersystem 101, das einen Computer 103 aufweist,
der eine Zentraleinheit 105 und einen Arbeitsspeicher 112,
in welchem eine Softwareanwendung 111 für die Verarbeitung durch die
Zentraleinheit 105 gespeichert ist, enthält. Die
Softwareanwendung 111 weist Programmmodule 106, 109, 110 zum
Durchführen
des Lesezugriffs, des Schreibzugriffs und zum Prüfen, ob die IDs der ausgewählten Datenobjekte
in dem ersten Sperrobjekt enthalten sind, auf. Das Computersystem 101 weist
ferner Eingabemittel 113, Ausgabemittel 112 für die Interaktion
mit einem Benutzer und allgemeine Ein-/Ausgabemittel 104, einschließlich eines
Netzanschlusses 114, zum Senden und Empfangen von Daten
auf. Mehrere Computersysteme 101 können über den Netzanschluss 114 in
der Form eines Netzwerkes 113 verbunden sein. In diesem
Falle können
die Netzwerkcomputer 113 als weitere Ein-/Ausgabemittel
verwendet werden, einschließlich
der Verwendung als weitere Speicherstellen. Das Computersystem 103 weist
ferner ein erstes Speichermittel 107 auf, in welchem die
Datenobjekte und das erste Sperrobjekt gespeichert sind. Ein zweites
Speichermittel 108 steht für Zwecke der Archivierung zur
Verfügung.
-
Falls
die Programmmodule 106, 109, 110 von
der Zentraleinheit 105 verarbeitet werden, um den erfindungsgemäßen Prozess
durchzuführen, werden
ein oder mehrere Datenobjekte, die in dem ersten Speichermittel 107 gespeichert
sind, ausgewählt,
und das Prüfmodul 109 prüft, bevor
durch das Lesemodul 110 oder das Schreibmodul 106 auf
die Datenobjekte zugegriffen wird, ob die ID des ausgewählten Datenobjektes
oder der ausgewählten
Datenobjekte in dem ersten Sperrobjekt enthalten ist und ob eine
Verknüpfung
zu der zweiten oder ersten Speicherstelle 107, 108 oder
zu einer Datei auf diesen Speicherstellen der ID in dem ersten Sperrobjekt zugewiesen
ist. Falls die ID in dem ersten Sperrobjekt enthalten ist und/oder
der ID keine Verknüpfung zugewiesen
ist, wird der Aufruf des Lese- oder Schreibmoduls übersprungen.
Die Softwareanwendung 111 kann dann beendet und zu einem
späteren Zeitpunkt
erneut gestartet werden. Stattdessen kann auch das Prüfmodul 109 wiederholt
aufgerufen werden, bis das Datenobjekt frei für einen Zugriff ist.
-
Bei
einer zweiten Implementierung der Erfindung weist ein Datenobjekt
ein oder mehrere Felder einer oder mehrerer Tabellen auf, und die
ID des jeweiligen Objektes weist ein oder mehrere Schlüsselfelder
jenes Datenobjektes auf. Dies ist aus 2 ersichtlich.
In diesem Falle werden verschiedene Mengen von Datenobjekten in
der Form von zweidimensionalen Datenarrays erzeugt, d.h. von zwei
Tabellen, welche Spalten, die mit Feld A bis Feld X bzw. Feld Y
bezeichnet sind, und eine gewisse nicht festgelegte Anzahl von Zeilen
aufweisen. Ein Feld des Arrays oder der Tabelle ist durch den Namen
der Spalte und der jeweiligen Zeile definiert. Ein solches Feld
kann Daten enthalten, die zu archivieren sind. Es kann stattdessen
auch einen Verweis auf eine Zeile einer weiteren Tabelle enthalten.
Zum Beispiel enthält
in Tabelle 1 Feld X in Zeile 2 einen Verweis auf Zeile 3 in Tabelle
2. Ein zu archivierendes Datenobjekt weist Felder einer Zeile der
jeweiligen Tabelle auf. Falls eines der Felder einen Verweis auf
eine Zeile einer anderen Tabelle enthält, gehören die Felder dieser Zeile,
auf die verwiesen wird, ebenfalls zu dem Datenobjekt. In dem Beispiel
in 2 weist ein zu archivierendes Datenobjekt die
Felder von Zeile 2 in Tabelle 1 und die Felder von Zeile 3 in Tabelle
2 auf.
-
Eine
ID eines solchen Datenobjektes kann durch den Inhalt eines oder
mehrerer so genannter Schlüsselfelder
implementiert werden, falls die Kombination dieser Schlüsselfelder
innerhalb der jeweiligen Tabelle einmalig ist. In dem Beispiel können die Felder
von "Feld A" und "Feld B" als Schlüsselfelder für Tabelle
1 verwendet werden, während
Feld A allein Schlüsselfeld
in Tabelle 2 ist. Innerhalb dieses Beispiels hat das Datenobjekt
den Inhalt der Felder der Spalten Feld A und Feld B der jeweiligen
Zeilen als ID. Die ID für
das zu archivierende Datenobjekt ist als eine ID von einem ersten
Typ in einem Sperrobjekt von einem ersten Typ, das in 2 "permanentes Sperrobjekt" genannt wird, und
als eine ID von einem zweiten Typ in einem Sperrobjekt von einem zweiten
Typ, das "transaktionales
Sperrobjekt" genannt
wird, gespeichert. Das permanente Sperrobjekt ist als eine Tabelle
implementiert, die zwei Spalten aufweist, von denen die erste die
ID vom ersten Typ ID 1 enthält.
Die ID vom zweiten Typ, ID 2, kann als ein eindimensionales Datenarray
implementiert sein, das in dem Arbeitsspeicher des Computersystems
gespeichert ist. Es kann jedoch auch als eine Datei auf einem nichtflüchtigen
Speichermittel implementiert sein. Die ID vom ersten Typ, ID 1,
wird in einem Bewegungs- oder Archivierungsprozess gelöscht, nachdem
das ausgewählte
Datenobjekt aus seiner ursprünglichen
Speicherstelle gelöscht
worden ist. Die ID vom zweiten Typ, ID 2, wird gelöscht, unmittelbar
nachdem ein Lese- oder
Schreibzugriff auf ein Datenobjekt beendet worden ist. Stattdessen können IDs
vom Typ ID 1 auch gelöscht
werden, nachdem sämtliche
ausgewählten
Datenobjekte aus der ursprünglichen
Speicherstelle gelöscht
worden sind. Wie man sieht, haben beide ID-Typen einen identischen
Inhalt, die ID der jeweiligen Zeilen der zu bewegenden/archivierenden
Daten. Die permanenten Sperrobjekte enthalten ferner eine Spalte,
durch welche ein Dateiname der ID des Datenobjektes zugewiesen wird, d.h.
jenes Datenobjektes, das zu archivieren ist. In dem Beispiel wird
Zeile 1 in einer Datei mit dem Namen 001 archiviert, die Zeilen
2 und 3 in einer Datei 002 und Zeile 4 in einer Datei 003.
-
Die
Auswahl des Datenobjektes kann durch eine automatische Prozedur
implementiert werden, wie etwa eine einfache Abfrage, welche alle
Zeilen zurückgibt,
die ein bestimmtes Feld aufweisen, welches einer bestimmten Bedingung
genügt.
Zum Beispiel könnte
die Prozedur alle Zeilen zurückgeben,
in welchen der Inhalt eines Datenfeldes von vor oder nach einem
bestimmten Zeitpunkt datiert. Die Auswahl kann auch von einem Benutzer
implementiert werden, welchem über
eine graphische Benutzeroberfläche
eine Auswahltabelle präsentiert
wird.
-
Eine
weitere Ausführungsform
ist dadurch gekennzeichnet, dass die Verknüpfung ein Dateiname oder eine
Verknüpfung
zu einer Datei ist.
-
Eine
weitere Ausführungsform
ist dadurch gekennzeichnet, dass das erste Sperrobjekt durch einen
Datenbewegungsprozess erzeugt wird.
-
In
einer weiteren Ausführungsform
weist die Erfindung vor dem Durchführen der Prüfung das Speichern der ID in
einem zweiten Sperrobjekt auf, welches in einem nichtflüchtigen
Speichermittel gespeichert ist.
-
Außerdem beinhaltet
die Erfindung das Prüfen,
ob die ID erfolgreich in dem zweiten Sperrobjekt gespeichert worden
ist, und falls nicht, das Überspringen
des Zugreifens auf das Datenobjekt.
-
Eine
andere Ausführungsform
ist dadurch gekennzeichnet, dass das zweite Sperrobjekt ein Datenarray
ist. Vorteilhafterweise ist das Datenarray eindimensional.
-
Um
den erfindungsgemäßen Prozess
und seine Vorteile besser zu verstehen, wird nun die Erzeugung eines
Sperrobjektes unter Bezugnahme auf die 3 bis 5 ausführlicher
beschrieben, welche schematische Flussdiagramme beispielhafter Implementierungen
von Prozessen der Datenbewegung bzw. Datenarchivierung sind, wie
in 1 dargestellt. In Verbindung mit dieser Beschreibung
und insbesondere mit den 3 bis 9 wird eine
ID vom ersten Typ eine P-Sperre (permanent) und eine ID vom zweiten
Typ eine T-Sperre (transaktional) genannt. Damit bedeutet das Setzen
einer P- oder T-Sperre für
ein ausgewähltes
Objekt, eine ID dieses Objektes in einem entsprechenden Sperrobjekt
zu speichern. Der Begriff "permanent" resultiert aus der Eigenschaft
der P-Sperre, dass sie dauerhaft existiert, solange das Datenobjekt
noch nicht aus seiner ursprünglichen
Speicherstelle gelöscht
worden ist. Der Begriff "transaktional" resultiert aus der
Eigenschaft der T-Sperre, dass sie nur so lange existiert, wie eine
bestimmte Aktion (z.B. Prüfen
der Archivierbarkeit) an einem ausgewählten Datenobjekt durchgeführt wird,
oder, anders ausgedrückt,
dass sie gelöscht
wird, kurz nachdem die jeweilige Aktion durchgeführt worden ist.
-
In
dem Flussdiagramm des Auswahlmoduls in 3 wird in
einem ersten Schritt 301 ein Datenobjekt ausgewählt. Anschließend wird
in einem zweiten Schritt 302 eine T-Sperre auf dieses Objekt gesetzt. Falls
die T-Sperre erfolgreich gesetzt wurde (Schritt 303), das
heißt,
falls sie noch nicht existierte, wird in Schritt 304 geprüft, ob in
dem ausgewählten Datenobjekt
bereits eine P-Sperre existiert. Wenn nicht, wird in Schritt 309 das
nächste
Datenobjekt ausgewählt.
Das Setzen der T-Sperre (Schritt 302) und die Prüfung (Schritt 303),
ob sie erfolgreich gesetzt wurde, kann vorteilhafterweise als ein "elementarer" Schritt implementiert
werden. Das bedeutet, dass beide Schritte im Wesentlichen zu derselben Zeit
ausgeführt
werden können,
oder, anders ausgedrückt,
dass der Zeitabstand zwischen beiden Schritten im Wesentlichen null
sein kann.
-
Beide
Prüfungen
(Schritte 303 und 304) können auch durch Abfragen der
jeweiligen Sperrobjekte implementiert werden. Falls eine P-Sperre
existiert, wird die T-Sperre gelöscht
(Schritt 308), und es wird das nächste Datenobjekt ausgewählt (Schritt 309). Falls
keine P-Sperre existiert, wird in den Schritten 305 und
306 geprüft,
ob das Datenobjekt archivierbar ist. Eine solche Prüfung umfasst
einen Test, ob die Daten in dem Datenobjekt lesbar, vollständig, nicht mit
offensichtlichen Fehlern behaftet sind usw. Falls der Test erfolgreich
ist, wird in Schritt 307 auf das betreffende Datenobjekt
eine P-Sperre gesetzt, wobei dem Datenobjekt zu diesem Zeitpunkt
keine Archivdatei zugewiesen wird. Danach wird die T-Sperre gelöscht (Schritt 308),
und es wird das nächste
Datenobjekt ausgewählt
(Schritt 309).
-
In
dem Flussdiagramm des Schreibmoduls in 4 wird in
einem ersten Schritt 401 ein Datenobjekt ausgewählt. Anschließend wird
in Schritt 402 eine T-Sperre auf dieses Objekt gesetzt.
Falls die T-Sperre erfolgreich gesetzt wurde (Schritt 403),
wird in Schritt 404 geprüft, ob in dem ausgewählten Datenobjekt
bereits eine P-Sperre existiert, wobei diesem Datenobjekt an dieser
Stelle des Prozesses keine Datei zugewiesen werden darf. Falls die
Bedingung nicht erfüllt
ist, wird in Schritt 407 die T-Sperre gelöscht, und
es wird in Schritt 408 das nächste Datenobjekt ausgewählt. Falls
eine P-Sperre existiert, wird das Datenobjekt in Schritt 405 in
einer Archivdatei gespeichert, und in Schritt 406 wird
die Archivdatei dem Datenobjekt zugewiesen, z.B. durch Hinzufügen des
Dateinamens zu dem Sperrobjekt, wie in 2 dargestellt.
Anschließend
wird die T-Sperre gelöscht (Schritt 407),
und es wird das nächste
Datenobjekt ausgewählt
(Schritt 408).
-
In
dem Flussdiagramm des Löschmoduls
in 5 wird ein Datenobjekt ausgewählt (Schritt 501), welches
bereits archiviert worden ist. Dies kann implementiert werden, indem
die Archivdateien geprüft werden.
wenn ein Datenobjekt ausgewählt
und erfolgreich aus der Archivdatei gelesen worden ist, wird dieses
Datenobjekt aus der ursprünglichen
Speicherstelle gelöscht
(Schritt 502), die P-Sperre wird gelöscht (Schritt 503),
und es wird das nächste
Datenobjekt ausgewählt
(Schritt 504).
-
In
dem beispielhaften Flussdiagramm einer weiteren beispielhaften Implementierung
der Erzeugung eines Sperrobjektes in 6 sind die
Prozesse, welche oben unter Bezugnahme auf die 3 und 4 beschrieben
wurden, zu einem Modul kombiniert. Dementsprechend wird in einem
ersten Schritt 601 ein Datenobjekt ausgewählt. Anschließend wird in
Schritt 602 eine T-Sperre auf dieses Objekt gesetzt. Falls
die T-Sperre erfolgreich gesetzt wurde (Schritt 603), wird
in Schritt 604 geprüft,
ob in dem ausgewählten
Datenobjekt bereits eine P-Sperre existiert. Falls die T-Sperre
nicht erfolgreich gesetzt wurde, wird das nächste Datenobjekt ausgewählt (Schritt 610).
Falls eine P-Sperre auf dem betreffenden Objekt existiert, wird
die T-Sperre gelöscht (Schritt 609),
und es wird das nächste
Datenobjekt ausgewählt
(Schritt 610). Falls keine P-Sperre auf dem betreffenden Objekt existiert,
wird in Schritt 605 geprüft, ob das Datenobjekt archivierbar
ist. Falls diese Prüfung
fehlschlägt
(Schritt 606), wird die T-Sperre gelöscht (Schritt 609),
und es wird das nächste
Datenobjekt ausgewählt
(Schritt 610). Falls die Prüfung erfolgreich ist, wird
das Datenobjekt in einer Archivdatei gespeichert (Schritt 605),
es wird eine P-Sperre mit der zugewiesenen Archivdatei gesetzt (Schritt 608),
die T-Sperre wird gelöscht
(Schritt 609), und es wird das nächste Datenobjekt ausgewählt (Schritt 610).
-
7 zeigt
anhand eines beispielhaften Flussdiagramms, wie eine beliebige Softwareanwendung
gemäß der Erfindung
das Konzept der P- und T-Sperren benutzen kann, um sicherzustellen,
dass die Maßnahmen,
welche die Softwareanwendung auf das Datenobjekt anwenden wird,
den Archivierungsprozess nicht beeinflussen. Eine Softwareanwendung,
welche so programmiert ist, dass sie einen Lese- und/oder Schreibzugriff
auf Datenobjekte hat, welche einem Archivierungsprozess der beschriebenen
Art unterzogen werden können,
weist die folgenden Schritte auf, wie in 7. dargestellt.
In einem ersten Schritt 701 wird das Datenobjekt ausgewählt. Danach
wird in Schritt 702 durch die Anwendung eine T-Sperre auf
dieses Objekt gesetzt. Falls die T-Sperre erfolgreich gesetzt wurde
(Schritt 703), wird in Schritt 704 geprüft, ob eine
P-Sperre auf diesem
Objekt existiert; andernfalls endet die Anwendung in Schritt 707.
Falls eine P-Sperre auf diesem Objekt existiert, wird die T-Sperre
gelöscht
(Schritt 706), and die Anwendung endet (Schritt 707).
Falls keine P-Sperre existiert, d.h. wenn das Datenobjekt keinem Archivierungsprozess
unterzogen wird, kann die Anwendung in einem Arbeitsschritt 705 einen
Lese-/Schreibzugriff auf das Datenobjekt haben. Anschließend löscht die
Anwendung die T-Sperre (Schritt 706) und endet (Schritt 707).
-
8 zeigt
einen Prozess, der anstelle des in 7 dargestellten
angewendet werden kann und eine bedingte Löschung einer P-Sperre enthält. In einem
ersten Schritt 801 wird das Datenobjekt ausgewählt. Danach
wird von der Anwendung eine T-Sperre auf dieses Objekt gesetzt (Schritt 802).
Falls die T-Sperre erfolgreich gesetzt wurde (Schritt 803),
wird geprüft
(Schritt 804), ob eine P-Sperre auf diesem Objekt existiert;
andernfalls endet die Anwendung (Schritt 809). Falls keine
P-Sperre existiert (Schritt 804), d.h. das Datenobjekt
keinem Archivierungsprozess unterzogen wird, kann die Anwendung
in einem Arbeitsschritt 807 einen Lese-/Schreibzugriff
auf das Datenobjekt haben. Anschließend löscht die Anwendung die T-Sperre
(Schritt 808) und endet (Schritt 809). Falls eine
P-Sperre existiert (Schritt 804), wird geprüft (Schritt 805),
ob ihr eine Datei zugewiesen ist. Falls eine Datei zugewiesen ist,
löscht
die Anwendung die T-Sperre (Schritt 808) und endet (Schritt 809).
Falls keine Datei zugewiesen ist, wird die P-Sperre gelöscht (Schritt 806),
und die Anwendung kann einen Lese-/Schreibzugriff auf das Datenobjekt haben
(Schritt 807). Anschließend löscht die Anwendung die T-Sperre
(Schritt 808) und endet (Schritt 809).
-
Diese
Prozedur ist insbesondere insofern von Nutzen, als Datenobjekte,
welche noch nicht in einer Archivdatei gespeichert sind, noch geändert werden
können.
Demzufolge können
sie erst beim nächsten
Archivierungslauf archiviert werden.
-
9 zeigt
ein Beispiel eines Flussdiagramms für ein Softwaremodul, mit dessen
Hilfe die Sperren, die von den oben beschriebenen Modulen gesetzt
wurden, gelöscht
werden können.
Dies kann in Fällen
von Nutzen sein, in denen P-Sperren keine Archivdateien zugewiesen
sind oder in denen P-Sperren für
einen Benutzer gelöscht
worden sind. In solchen Fällen
ist eine P-Sperre nichts anderes als ein Datenobjekt und kann auf
dieselbe Weise wie oben beschrieben behandelt werden. In einem ersten Schritt 901 wird
eine P-Sperre gewählt.
Danach wird eine T-Sperre zu der P-Sperre gesetzt (Schritt 902). Falls
die T-Sperre erfolgreich gesetzt worden ist (Schritt 903),
wird in Schritt 904 geprüft, ob der P-Sperre eine Datei
zugewiesen ist. Falls die T-Sperre nicht erfolgreich gesetzt worden
ist, endet das Modul (Schritt 907). Falls der gewählten P-Sperre
keine Datei zugewiesen ist (Schritt 904), wird die P-Sperre gelöscht (Schritt 905).
Danach wird die T-Sperre gelöscht
(Schritt 906), und das Modul endet (Schritt 907).
Anstelle der Beendigung (Schritt 907) kann auch eine nächste P-Sperre
ausgewählt
werden.
-
Änderungen
und Anpassungen der vorliegenden Erfindung werden für Fachleute
aus dem Studium der Beschreibung und der Anwendung der darin offenbarten
Erfindung offensichtlich. Die obige Beschreibung einer Implementierung
der Erfindung wurde für
Zwecke der Veranschaulichung und Erläuterung gegeben. Sie ist nicht
erschöpfend
und schränkt
die Erfindung nicht auf die konkrete offenbarte Form ein. Änderungen
und Variationen sind angesichts der obigen Lehren möglich oder
können
aus der Anwendung der Erfindung abgeleitet werden. Zum Beispiel
bezieht sich die beschriebene Implementierung auf Software, jedoch
können
Systeme und Verfahren, die mit der vorliegenden Erfindung im Einklang
stehen, als eine Kombination von Hardware und Software oder als
Hardware allein implementiert werden. Außerdem ist, obwohl Aspekte
der vorliegenden Erfindung als in einem Speicher zu speichern beschrieben
sind, für
einen Fachmann leicht einzusehen, dass diese Aspekte auch auf anderen
Typen von computerlesbaren Medien gespeichert werden können, wie
etwa sekundären
Speichereinrichtungen, zum Beispiel Festplatten, Disketten oder CD-ROM;
dem Internet oder einem anderen Übertragungsmedium;
oder anderen Formen von RAM oder ROM. Die Beschreibung und die Beispiele
sind lediglich als beispielhaft zu betrachten, während der tatsächliche
Schutzbereich der Erfindung durch die nachfolgenden Ansprüche angegeben
ist.
-
Ein
erfahrener Softwareentwickler ist in der Lage, Computerprogramme
zu erstellen, die auf der verbalen Beschreibung und den Flussdiagrammen dieser
Erfindung beruhen. Die verschiedenen Programme oder Programmmodule
können
unter Anwendung irgendeines der dem Fachmann bekannten Verfahren
erstellt werden, oder sie können
in Verbindung mit existierender Software entwickelt werden. Zum
Beispiel können
Programme oder Programmmodule in oder mittels® Java,
C++, HTML, XML oder HTML mit enthaltenen Java-Applets entwickelt
werden, oder in SAP R/3 oder ABAP.