-
Allgemeiner Stand der Technik
-
Gebiet der Erfindung
-
Das
technische Gebiet dieser Erfindung fällt in den Bereich der elektronischen
Datenverarbeitung. Insbesondere betrifft die Erfindung Verfahren, Computerprogrammprodukte
und Systeme zur Datenbewegung.
-
Beschreibung des Standes der Technik
-
Das
Bewegen von Datenobjekten ist jedem Benutzer eines Computers vertraut
und ist ein Standardverfahren, das routinemäßig angewendet wird. Eine spezielle
Anwendung des Bewegens von Datenobjekten ist der Archivierungsprozess,
wobei Datenobjekte aus Sicherheits- und/oder Leistungserwägungen von
einem ersten zu einem zweiten Speicherort bewegt werden. In Unternehmen
werden "Enterprise
Resource Planning" (ERP)-Softwareanwendungen
zum Steuern oder Unterstützen
von Geschäftsprozessen
und des Managements des Unternehmens verwendet. ERP-Software dient
des Weiteren dazu, Firmeninformationen unterschiedlicher Art von
Unternehmen in verschiedensten technischen Bereichen mit Hilfe automatischer
Datenverarbeitungssysteme, wie zum Beispiel Computern oder Computersystemen,
zu verwalten. Während
der Nutzung solcher Software fallen in der Regel riesige Datenmengen
an, die wichtige geschäftliche
Informationen enthalten und die von Zeit zu Zeit archiviert werden
müssen.
-
Entsprechend
dem Stand der Technik (siehe Helmut Stefani, Datenarchivierung mit
SAP, Galileo Press GmbH, Bonn 2002, ISBN 3-89842-212-7) kann das
Archivieren automatisch durch Archivierungssoftwaretools ausgeführt werden,
die ein Teil der ERP-Software sein können. Solche Tools können aus
einem Schreibmodul, das die zu archivierenden Datenobjekte sequenziell
in Archivdateien speichert (schreibt), und einem Löschmodul,
das die erfolgreich archivierten Daten aus der ursprünglichen
Datenobjektbank löscht,
bestehen. Das Schreibmodul kann die zu archivierenden Datenobjekte
anhand bestimmter Kriterien, zum Beispiel der Erstellungszeit der
Daten, aus der Datenbank aussuchen. Es modifiziert in der Regel
weder die ursprünglichen
Datenobjekte noch die Datenbank. Das Löschmodul liest die Archivdatei
sequenziell in versetzter Weise und löscht die in der Archivdatei
gefundenen Datenobjekte aus der ursprünglichen Datenbank. Dadurch
wird gewährleistet,
dass nur jene Datenobjekte aus der ursprünglichen Datenbank gelöscht werden,
die lesbar in der Archivdatei gespeichert sind. Die Zeit für den Archivierungsvorgang
als Ganzes hängt
von der Datenmenge ab und schwankt zwischen einigen Millisekunden
und mehreren Stunden oder Tagen. Folglich gibt es in vielen Fällen eine
erhebliche Zeitlücke
zwischen dem Schreiben der Daten in die Archivdatei und dem Löschen der
Daten aus der ursprünglichen Datenbank.
Diese Zeitlücke
kann eine Ursache für die
folgenden Probleme sein:
Solange die Datenobjekte noch in der
ursprünglichen Datenbank
verfügbar
sind, können
sie immer noch während
der Zeitlücke
modifiziert werden. Weil das Löschprogramm
das archivierte Datenobjekt und das zu löschende Datenobjekt nicht miteinander
vergleicht, können
solche Modifikationen 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 zu Ende geführt werden
können.
-
Ein
anderes Problem tritt auf, wenn mehrere Archivierungsprozesse parallel
ablaufen. Dann kann es geschehen, dass ein und dasselbe Datenobjekt mehrere
Male archiviert wird und nicht mehr eindeutig identifizierbar ist.
Das kann zur Folge haben, dass Auswertungen oder statistische Analysen,
die auf die Archivdateien zurückgreifen,
falsche Ergebnisse liefern.
-
Es
kann außerdem
passieren, dass Datenobjekte in der ursprünglichen Datenbank durch das Schreibmodul
gelesen werden und gleichzeitig durch eine andere Software-Anwendung modifiziert
werden. In einem solchen Fall können
die Daten von einem archivierbaren Status zu einem nicht-archivierbaren
Status übergehen.
In der Folge werden Datenobjekte, die nicht archivierbar sind, in
die Archivdatei geschrieben und aus der ursprünglichen Datenbank gelöscht. Dies
kann im Endeffekt zu einem Verlust der Daten führen.
-
Es
besteht somit Bedarf an einem Verfahren und/oder einem Datenverarbeitungssystem,
die eine effizientere Lösung
für die
oben beschriebenen Probleme darstellen.
-
Kurzdarstellung der Erfindung
-
Der
Geltungsbereich der Erfindung wird durch die angehängten Ansprüche definiert.
-
Kurze Beschreibung der Zeichnungen
-
Die
begleitenden Zeichnungen, die in diese Spezifikation aufgenommen
sind und einen Teil von ihr bilden, veranschaulichen Beispiele der
Ausführungsformen
der Erfindung und erläutern
zusammen mit der Beschreibung die Prinzipien der Erfindung. In den
Zeichnungen ist Folgendes dargestellt:
-
1 ist
ein schematisches Blockschaubild der Implementierung des erfindungsgemäßen Verfahrens
in einem Computersystem.
-
2 ist
ein Schaubild einer beispielhaften Struktur eines Datenobjekts gemäß den Prinzipien des
erfindungsgemäßen Verfahrens.
-
3 ist
ein beispielhaftes Flussdiagramm einer Implementierung des in 1 gezeigten
Auswahlmoduls.
-
4 ist
ein beispielhaftes Flussdiagramm einer Implementierung des in 1 gezeigten Schreibmoduls.
-
5 ist
ein beispielhaftes Flussdiagramm einer Implementierung des in 1 gezeigten Löschmoduls.
-
6 ist
ein beispielhaftes Flussdiagramm einer weiteren Implementierung
des in 1 erwähnten
Auswahl- und Schreibmoduls.
-
7 zeigt
in einem beispielhaften Flussdiagramm, wie jede beliebige Software-Anwendung
das Konzept der P- und
T-Sperren.
-
8 zeigt
eine Prozessalternative zu dem in 7 gezeigten
Prozess, die eine bedingte Löschung
einer P-Sperre enthält.
-
9 zeigt
ein Beispiel eines Flussdiagramms für ein Softwaremodul, mit dem
die Sperren gelöscht
werden können.
-
Detaillierte Beschreibung
-
Computersystem
und Programm stehen in einer engen Beziehung zueinander. Im Sinne
des vorliegenden Textes sind Wendungen wie zum Beispiel "der Computer erzeugt", "das Programm erzeugt
oder führt
bestimmte Aktionen aus" und "ein Benutzer führt eine
bestimmte Aktion aus" zweckmäßige Abkürzungen,
um Aktionen eines Computersystems auszudrücken, das durch ein Programm
gesteuert wird, oder um auszudrücken,
dass das Programm oder Programmmodul dafür ausgelegt ist, das Computersystem
in die Lage zu versetzen, die bestimmte Aktion auszuführen, oder
einen Benutzer in die Lage zu versetzen, die bestimmte Aktion mittels
eines Computersystems auszuführen.
-
Es
wird nun im Einzelnen auf die Prinzipien der Erfindung eingegangen,
indem die Erfindung anhand eines Archivierungsprozesses erläutert wird, wovon
Beispiele in den begleitenden Zeichnungen veranschaulicht sind.
Die dort erwähnten
Beispiele sollen die Erfindung erläutern und sie in keiner Weise einschränken.
-
Innerhalb
des Konzepts dieser Beschreibung haben die verwendeten Begriffe
ihre üblichen
Bedeutungen im Kontext des Gebietes der Datenverarbeitung, sofern
im folgenden Abschnitt nichts anderes ausgesagt wird.
-
Ein
Computersystem kann ein allein stehender Computer sein, wie zum
Beispiel ein PC oder ein Laptop, oder kann eine Reihe von Computern
sein, die zu einem Netzwerk verbunden sein, zum Beispiel ein Netzwerk
innerhalb eines Unternehmens, oder eine Reihe von Computern, die über das
Internet verbunden sind. Bei einem zu archivierenden Datenobjekt
kann es sich um jede beliebige Datenart oder um jeden beliebigen
Datentyp handeln, zum Beispiel numerische oder Textdaten, Bilddaten
oder Metadaten, unabhängig
davon, ob die Daten als komplette Dateien oder Teile von Dateien
oder als Tabellenfelder implementiert sind, und unabhängig davon,
ob sie in flüchtigem
Speicher oder nichtflüchtigem
Speicher gespeichert sind. Zum Beispiel können Datenobjekte gemäß der vorliegenden
Erfindung als ein oder mehrere Felder einer oder mehrerer Tabellen
implementiert sein, insbesondere von Tabellen eines relationalen
Datenbanksystems oder als Objekte in einer objektorientierten Programmiersprache.
-
Der
Begriff ERP-Software ist so zu verstehen, dass er jegliche Software-Anwendung
beinhaltet, welche die Geschäftsprozesse
eines Unternehmens unterstützt.
-
Ein
Speicherort ist ein flüchtiges
oder nichtflüchtiges
Speichermittel, auf das das Computersystem zugreifen kann. Es kann
sich um eine beliebige Art von Computerspeichermittel handeln, das
dem Durchschnittsfachmann bekannt ist, zum Beispiel RAM, magnetische
oder optische Speichermedien, wie zum Beispiel Disketten, Festplatten,
MO-Disks, CD-ROM, CD-RW,
DVD-ROM, DVD-RW usw. Der erste und der zweite Speicherort können identisch sein.
In diesem Fall müssen
die archivierten Datenobjekte an einem anderen Ort als dem Ort der
ursprünglichen
zu archivierenden Datenobjekte gespeichert werden. Der zweite Speicherort
kann auch als eine Datei implementiert sein, die sich irgendwo in dem
zugreifbaren nichtflüchtigen
Speichermittel befindet. Eine solche Datei wird anschließend als
Archivdatei bezeichnet.
-
Ein
Identifikator (ID) ist ein Datentyp, der eine unzweideutige Identifizierung
des zu archivierenden Datenobjekts gestattet. Er kann zum Beispiel als
eine Zahl oder eine Kombination von alphanumerischen Zeichen oder
als ein kennzeichnender Teil des zu archivierenden Datenobjekts
implementiert sein. Aus dieser Definition wird deutlich, dass ein
Datenobjekt eine breite Vielfalt unterschiedlicher IDs haben kann.
Ein Sperrobjekt ist ein Datenobjekt, in dem die Identifikatoren
gespeichert sind. Es kann zum Beispiel als eine Datei auf einem
Speichermittel oder als eine Datengruppierung in einem Computerspeicher
implementiert sein. Ein erstes Sperrobjekt ist vorteilhafterweise
in einem nichtflüchtigen
Speichermittel gespeichert, und ein zweites Sperrobjekt ist in einem
flüchtigen
und/oder nichtflüchtigen
Speichermittel gespeichert.
-
Die
Zuweisung des zweiten Speicherorts zu einem ID kann durch eine Tabelle
implementiert werden, wobei ein Feld einer Zeile den ID enthält und ein anderes
Feld dieser Zeile eine Verknüpfung
zu dem zweiten Speicherort enthält,
zum Beispiel einen Dateinamen. Diese Tabelle kann als eine Datei
auf einem nichtflüchtigen
Speichermittel gespeichert werden.
-
1 zeigt
ein Beispiel einer Implementierung einer ersten Ausführungsform
der Erfindung. 1 zeigt ein Computersystem 101 mit
einem Computer 103, der eine CPU 105 und einen
Arbeitsspeicher 112 aufweist, in dem eine ERP-Software 111 gespeichert
ist, um durch die CPU 105 verarbeitet zu werden. Die ERP-Software 111 weist
Programmmodule 106, 109 und 110 zum Ausführen des
erfindungsgemäßen Datenarchivierungsprozesses
auf. Das Computersystem 101 weist des Weiteren ein Eingabemittel 113,
ein Ausgabemittel 112 zur Interaktion mit einem Benutzer
und ein allgemeines Eingabe/Ausgabemittel 104 auf, das
eine Netzverbindung 114 zum Senden und Empfangen von Daten enthält. Mehrere
Computersysteme 101 können über die
Netzverbindung 114 in Form eines Netzwerks 113 verbunden
sein. In diesem Fall können
die Netzwerkcomputer 113 als weitere Eingabe/Ausgabemittel verwendet
werden, einschließlich
als weitere Speicherorte. Das Computersystem 103 hat des
Weiteren ein erstes Speichermittel 107, in dem zu archivierende
Daten und das Sperrobjekt gespeichert sind, und ein zweites Speichermittel 108,
in dem die archivierten Daten gespeichert sind.
-
Falls
die Programmmodule 106, 109 und 110 durch
die CPU 105 verarbeitet werden, um den erfindungsgemäßen Prozess
auszuführen,
so werden ein oder mehrere Datenobjekte, die in dem ersten Speichermittel 107 gespeichert
sind, durch das Auswahlmodul 110 ausgewählt. Das Auswahlmodul 110 weist einen
ID zu jedem der ausgewählten
Datenobjekte zu und speichert den ID in dem Sperrobjekt an dem Speicherort 107.
Das Schreibmodul 106 liest die Datenobjekte und das Sperrobjekt
und speichert diese Datenobjekte, deren ID in dem Sperrobjekt enthalten sind,
an dem zweiten Speicherort 108. Außerdem wird der zweite Speicherort 108 dem
jeweiligen ID des Datenobjekts in dem Sperrobjekt zugewiesen. Das
Löschmodul 109 liest
dann die archivierten Datenobjekte in dem zweiten Speicherort 108 und
löscht die
Datenobjekte, die es erfolgreich aus dem ursprünglichen Satz von Datenobjekten
in dem ersten Speicherort 107 lesen konnte. Nach dem Löschen eines
bestimmten Datenobjekts, dem ein ID zugeordnet war, wird dieser
ID aus dem Sperrobjekt gelöscht.
-
In
einer alternativen Ausführungsform
wird das Sperrobjekt durch das Auswahlmodul und nicht durch das
Schreibmodul erstellt.
-
In
einer zweiten Implementierung der Erfindung enthält ein zu archivierendes Datenobjekt
ein oder mehrere Felder einer oder mehrerer Tabellen, und der ID
des jeweiligen Objekts enthält
ein oder mehrere Schlüsselfelder
dieses Datenobjekts. Das kann man am besten aus 2 erkennen.
In diesem Fall werden verschiedene Sätze von Datenobjekten in Form
zweidimensionaler Datengruppierungen erzeugt, d. h. zwei Tabellen
mit Spalten, die als Feld A bis Feld X bzw. Feld Y bezeichnet sind,
und einer bestimmten nicht-spezifizierten Anzahl von Zeilen. Ein Feld
der Gruppierung oder Tabelle ist durch den Namen der Spalte und
die jeweilige Zeile definiert. Ein solches Feld kann zu archivierende
Daten enthalten. Es kann alternativ einen Verweis auf eine Zeile
einer weiteren Tabelle enthalten. Zum Beispiel enthält in Tabelle
1 das Feld X in Zeile 2 einen Verweis auf Zeile 3 in Tabelle 2.
Ein zu archivierendes Datenobjekt enthält Felder einer einzelnen Zeile
der jeweiligen Tabelle. Wenn eines der Felder einen Verweis auf
eine Zeile einer anderen Tabelle enthält, so gehören die Felder dieser verwiesenen
Zeile auch zu dem Datenobjekt. In dem Beispiel in 2 enthält ein zu
archivierendes Datenobjekt die Felder der Zeile 2 in Tabelle 1 und
die Felder der Zeile 3 in Tabelle 2. Ein ID eines solchen Datenobjekts
kann durch den Inhalt eines oder mehrerer sogenannter Schlüsselfelder
implementiert werden, wenn die Kombination dieser Schlüsselfelder
innerhalb der jeweiligen Tabelle eindeutig 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 das Schlüsselfeld
in Tabelle 2 ist. Innerhalb dieses Beispiels bedeutet das Zuweisen
eines ID zu dem Datenobjekt, den Inhalt der Felder der Spalten Feld
A und B der jeweiligen Zeilen als den ID für diese spezielle Zeile zu
verwenden. Entsprechend dieser Zuweisung werden die IDs für das zu
archivierende Datenobjekt als ein ID des ersten Typs in einem Sperrobjekt
des ersten Typs, das in 2 als permanentes Sperrobjekt
bezeichnet ist, gespeichert und als ein ID vom zweiten Typ in einem
Sperrobjekt vom zweiten Typ mit der Bezeichnung "transaktionales Sperrobjekt" gespeichert. Das
permanente Sperrobjekt ist als eine Tabelle mit zwei Spalten implementiert,
wovon die erste den ID 1 des ersten Typs enthält. Der ID vom zweiten Typ,
ID 2, kann als eine eindimensionale Datengruppierung implementiert
werden, die in dem Arbeitsspeicher des Computersystems gespeichert ist.
Er kann jedoch auch als eine Datei auf einem nichtflüchtigen
Speichermittel implementiert werden. Der ID des ersten Typs, ID
1, wird gelöscht,
nachdem das ausgewählte
Datenobjekt gemäß Schritt
e) des erfindungsgemäßen Prozesses
gelöscht
wurde, und der ID vom zweiten Typ ID 2 wird unmittelbar nach der
Zeit gelöscht,
die in Schritt f) definiert ist. Alternativ können IDs vom Typ ID 1 gelöscht werden,
nachdem alle ausgewählten
Datenobjekte gemäß Schritt e)
gelöscht
wurden. Wie zu sehen ist, haben beide ID-Typen einen identischen
Inhalt: den ID der jeweiligen Zeilen der zu archivierenden Daten.
Dies ist jedoch keine notwendige Bedingung. Aus der Tatsache, dass
der ID 2 von Zeile BB gelöscht
wird, ist zu ersehen, dass diese Zeile bereits archiviert wurde, während Zeile
BC noch nicht in der Archivdatei gespeichert wurde. Die zwei Typen
können
auch zusammen in einem einzigen Sperrobjekt gespeichert werden.
Die permanenten Sperrobjekte enthalten des Weiteren eine Spalte,
mit der ein Dateiname zu dem ID des Datenobjekts, d. h. jenes Datenobjekts, das
zu archivieren ist, zugewiesen wird. In dem Beispiel werden die
Zeile 1 in einer Datei namens 001, die Zeilen 2 und 3 in einer Datei
002 und die Zeile 4 in einer Datei 003 archiviert.
-
Die
Auswahl des Datenobjekts kann durch ein automatisches Verfahren,
wie zum Beispiel durch eine einfache Abfrage, implementiert werden,
das alle Zeilen mit einem bestimmten Feld, das eine bestimmte Bedingung
erfüllt,
zurückmeldet.
Zum Beispiel könnte
das Verfahren alle Zeilen zurückmelden, in
denen der Inhalt eines Datumsfeldes vor dem Datum oder nach dem
Datum eines bestimmten Stichtages liegt. Die Auswahl kann auch durch
einen Benutzer implementiert werden, dem über eine graphische Benutzerschnittstelle
eine Auswahltabelle angeboten wird.
-
Eine
weitere Ausführungsform
ist dadurch gekennzeichnet, dass in Schritt c) die IDs des zweiten
Typs in einem zweiten Sperrobjekt unmittelbar nach dem Ausführen des
Schrittes b) für
das jeweilige Datenobjekt gespeichert werden. Alternativ wird in Schritt
c) der ID des zweiten Typs des ausgewählten Datenobjekts gespeichert,
kurz bevor der Speicherprozess gemäß Schritt d) für das Datenobjekt,
das diesem ID zugewiesen ist, begonnen wird.
-
Eine
weitere Ausführungsform
ist dadurch gekennzeichnet, dass in Schritt c) die IDs des ersten Typs
aller ausgewählten
Datenobjekte gespeichert werden, bevor der erste Speicherprozess
gemäß Schritt
d) begonnen wird.
-
In
einer weiteren Ausführungsform
enthält die
Erfindung g) das Prüfen – vor oder
während
des Ausführens
eines der Schritte a) bis c) – für ein Datenobjekt,
ob ein ID für
dieses Datenobjekt in einem Sperrobjekt gespeichert wurde, und wenn
das der Fall ist, Überspringen
wenigstens des Schrittes d) für dieses
Datenobjekt.
-
Außerdem enthält die Erfindung
h) das Prüfen – vor oder
während
des Ausführens
eines der Schritte a) bis d) – für ein Datenobjekt,
ob das Datenobjekt in dem zweiten Speicherort enthalten ist, und wenn
das der Fall ist, Überspringen
wenigstens des Schrittes d) für
dieses Datenobjekt.
-
Eine
weitere Ausführungsform
ist dadurch gekennzeichnet, dass das Prüfen durch Abfragen eines Sperrobjekts
erfolgt.
-
In
einer weiteren Ausführungsform
enthält der
Schritt d) des Prüfens
das Prüfen,
ob das Datenobjekt, das dem jeweiligen ID zugewiesen wurde, vollständig an
dem zweiten Ort gespeichert wurde, und wenn das nicht der Fall ist, Überspringen
wenigstens der Schritte e) und f) für dieses Datenobjekt und Löschen des
ID aus dem Sperrobjekt.
-
Die
Erfindung wird nun eingehender anhand der 3 bis 5 beschrieben,
die schematische Flussdiagramme beispielhafter Implementierungen des
Auswahl-, des Schreib- bzw. des Löschmoduls darstellen, wie in 1 gezeigt.
Im Kontext dieser Beschreibung und speziell im Kontext der 3 bis 9 heißt ein ID
des ersten Typs eine P-Sperre (permanent), und ein ID vom zweiten
Typ heißt
eine T-Sperre (transaktional). Das Setzen einer P- oder T-Sperre
für ein
ausgewähltes
Objekt bedeutet also das Speichern eines ID dieses Objekts in einem
jeweiligen Sperrobjekt. Der Begriff "permanent" ergibt sich aus der Eigenschaft der
P-Sperre, permanent zu existieren, solange das Datenobjekt noch
nicht von seinem ursprünglichen
Speicherort gelöscht
wurde. Der Begriff "transaktional" ergibt sich aus
der Eigenschaft der T-Sperre, nur so lange zu existieren, wie eine
bestimmte Aktion (zum Beispiel Prüfen der Archivierbarkeit) an
einem ausgewählten
Datenobjekt ausgeführt
wird, oder anders ausgedrückt:
gelöscht zu
werden, kurz nachdem die jeweilige Aktion ausgeführt wurde.
-
In
dem Flussdiagramm des Auswahlmoduls in 3 wird ein
Datenobjekt in einem ersten Schritt 301 ausgewählt. Anschließend wird
in Schritt 302 an diesem Objekt eine T-Sperre gesetzt.
Wenn die T-Sperre erfolgreich gesetzt wurde (Schritt 303),
das heißt,
wenn sie noch nicht existierte, so 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 das Prüfen (Schritt 303),
ob sie erfolgreich gesetzt wurde, können vorteilhafterweise als
ein "atomischer" Schritt implementiert
werden. Das bedeutet, dass beide Schritte im Wesentlichen zur selben
Zeit ausgeführt werden
können,
oder anders ausgedrückt:
die Zeitlücke
zwischen beiden kann im Wesentlichen null sein.
-
Beide
Prüfungen
(Schritte 303 und 304) können auch durch Abfragen der
jeweiligen Sperrobjekte implementiert werden. Wenn eine P-Sperre
existiert, so wird die T-Sperre gelöscht (Schritt 308),
und das nächste
Datenobjekt wird ausgewählt
(Schritt 309). Wenn keine P-Sperre existiert, so wird in
den Schritten 305 und 306 geprüft, ob das Datenobjekt archivierbar
ist. Ein solches Prüfen
enthält
einen Test, ob die Daten in dem Datenobjekt lesbar, vollständig, nicht
voll von offensichtlichen Fehlern usw. sind. Wenn der Test erfolgreich
ist, so wird in Schritt 307 eine P-Sperre an diesem Datenobjekt
gesetzt, wodurch dem Datenobjekt an diesem Punkt keine Archivdatei
zugewiesen wird. Dann wird die T-Sperre gelöscht (Schritt 308),
und das nächste
Datenobjekt wird 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 an diesem Objekt gesetzt.
Wenn die T-Sperre erfolgreich gesetzt wurde (Schritt 403),
so wird in Schritt 404 geprüft, ob in dem ausgewählten Datenobjekt
bereits eine P-Sperre existiert, wodurch diesem Datenobjekt an diesem
Punkt des Prozesses keine Datei zugewiesen werden darf. Wenn die
Bedingung nicht erfüllt
ist, so wird die T-Sperre in Schritt 407 gelöscht, und
das nächste
Datenobjekt wird in Schritt 408 ausgewählt. Wenn eine P-Sperre existiert,
so wird das Datenobjekt in Schritt 405 in einer Archivdatei
gespeichert, und die Archivdatei wird dem Datenobjekt in Schritt 406 zugewiesen,
zum Beispiel durch Hinzufügen
des Dateinamens zu dem Sperrobjekt, wie in 2 gezeigt.
Anschließend
wird die T-Sperre gelöscht
(Schritt 407), und das nächste Datenobjekt wird ausgewählt (Schritt 408).
-
In
dem Flussdiagramm des Löschmoduls
in 5 wird ein Datenobjekt, das bereits archiviert wurde,
ausgewählt
(Schritt 501). Dies kann durch Prüfen der Archivdateien implementiert
werden. Wenn ein Datenobjekt ausgewählt wurde und erfolgreich aus
der Archivdatei gelesen wurde, so wird dieses Datenobjekt aus dem
ursprünglichen
Speicherort gelöscht
(Schritt 502), die P-Sperre wird gelöscht (Schritt 503),
und das nächste
Datenobjekt wird ausgewählt
(Schritt 504).
-
In
dem beispielhaften Flussdiagramm einer weiteren beispielhaften Implementierung
in 6 werden das Auswahl- und das Schreibmodul, die oben
beschrieben sind, zu einem einzigen Modul kombiniert. Dementsprechend
wird in einem ersten Schritt 601 ein Datenobjekt ausgewählt. Anschließend wird
an diesem Objekt in Schritt 602 eine T-Sperre gesetzt.
Wenn die T-Sperre erfolgreich gesetzt wurde (Schritt 603),
so wird in Schritt 604 geprüft, ob in dem ausgewählten Datenobjekt
bereits eine P-Sperre existiert. Wenn die T-Sperre nicht erfolgreich
gesetzt werden konnte, so wird das nächste Datenobjekt ausgewählt (Schritt 610).
Wenn an diesem Objekt eine P-Sperre existiert, so wird die T-Sperre
gelöscht
(Schritt 609), und das nächste Datenobjekt wird ausgewählt (Schritt 610).
Wenn keine P-Sperre an diesem Objekt existiert, so wird in Schritt 605 geprüft, ob das
Datenobjekt archivierbar ist. Wenn diese Prüfung fehlschlägt (Schritt 606),
so wird die T-Sperre
gelöscht
(Schritt 609), und das nächste Datenobjekt wird ausgewählt (Schritt 610).
Wenn die Prüfung
positiv ist, so wird das Datenobjekt in einer Archivdatei gespeichert
(Schritt 605), eine P-Sperre wird bei zugewiesener Archivdatei
gesetzt (Schritt 608), die T-Sperre wird gelöscht (Schritt 609),
und das nächste
Datenobjekt wird ausgewählt
(Schritt 610).
-
7 zeigt
anhand eines beispielhaften Flussdiagramms, wie eine beliebige Software-Anwendung
das Konzept der P- und T-Sperren nutzen kann, um zu gewährleisten,
dass Maßnahmen,
die durch die Software-Anwendung
an dem Datenobjekt vollzogen werden, nicht den Archivierungsprozess beeinflussen.
Eine Software-Anwendung,
die so programmiert ist, dass sie einen Lese- und/oder Schreibzugriff
auf Datenobjekte hat, die einem Archivierungsprozess unterzogen
werden können,
wie oben beschrieben wurde, enthält
die folgenden Schritte, wie in 7 gezeigt.
In einem ersten Schritt 701 wird das Datenobjekt ausgewählt. Dann
wird in Schritt 702 an diesem Objekt durch die Anwendung
eine T-Sperre gesetzt. Wenn die T-Sperre erfolgreich gesetzt wurde
(Schritt 703), so wird in Schritt 704 geprüft, ob eine
P-Sperre an diesem Objekt existiert. Andernfalls bricht die Anwendung
in Schritt 707 ab. Wenn eine P-Sperre an diesem Objekt
existiert (Schritt 704), so wird die T-Sperre gelöscht (Schritt 706),
und die Anwendung bricht ab (Schritt 707). Wenn keine P-Sperre existiert,
d. h. das Datenobjekt keinem Archivierungsprozess unterzogen wird,
so 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 bricht ab (Schritt 707).
-
8 zeigt
eine Prozessalternative zu dem Prozess, der in 7 gezeigt
ist, die eine bedingte Löschung
einer P-Sperre enthält.
In einem ersten Schritt 801 wird das Datenobjekt ausgewählt. Dann wird
durch die Anwendung eine T-Sperre an diesem Objekt gesetzt (Schritt 802).
Wenn die T-Sperre erfolgreich gesetzt wurde (Schritt 803),
so wird geprüft (Schritt 804),
ob an diesem Objekt eine P-Sperre existiert. Andernfalls bricht
die Anwendung ab (Schritt 809). Wenn keine P-Sperre existiert
(Schritt 804), d. h. das Datenobjekt keinem Archivierungsprozess
unterzogen wird, so kann die Anwendung im Arbeitsschritt 807 einen
Lese/Schreibzugriff auf das Datenobjekt haben. Anschließend löscht die
Anwendung die T-Sperre (Schritt 808) und bricht ab (Schritt 809).
Wenn eine P-Sperre existiert (Schritt 804), so wird geprüft (Schritt 805),
ob ihr eine Datei zugewiesen ist. Wenn eine Datei zugewiesen ist,
so löscht
die Anwendung die T-Sperre (Schritt 808) und bricht ab (Schritt 809).
Wenn keine Datei zugewiesen ist, so 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 bricht ab (Schritt 809).
-
Dieses
Verfahren ist insofern besonders nützlich, als Datenobjekte, die
noch nicht in einer Archivdatei gespeichert sind, noch geändert werden können. Folglich
können
sie erst beim nächsten
Archivierungsdurchgang archiviert werden.
-
9 zeigt
ein Beispiel eines Flussdiagramms für ein Softwaremodul, mit dessen
Hilfe die Sperren, die durch die oben beschriebenen Module gesetzt
wurden, gelöscht
werden können.
Dies kann in Fällen
nützlich
sein, in denen keine Archivdateien zu P-Sperren zugewiesen sind
oder in denen P-Sperren für
einen Benutzer gelöscht
wurden. Dabei ist eine P-Sperre nichts anderes als ein Datenobjekt
und kann in der gleichen Weise behandelt werden, wie oben beschrieben
wurde. In einem ersten Schritt 901 wird eine P-Sperre ausgewählt. Dann
wird in Schritt 902 eine T-Sperre zu der P-Sperre gesetzt.
Wenn die T-Sperre erfolgreich gesetzt wurde (Schritt 903),
so wird geprüft
(Schritt 904), ob der P-Sperre eine Datei zugewiesen ist.
Wenn die T-Sperre nicht erfolgreich gesetzt ist, so bricht das Modul
ab (Schritt 907). Wenn der ausgewählten P-Sperre keine Datei
zugewiesen ist (Schritt 904), so wird die P-Sperre gelöscht (Schritt 905).
Dann wird die T-Sperre gelöscht
(Schritt 906), und das Modul bricht ab (Schritt 907).
Alternativ zu dem Schritt 907 des Abbrechens kann eine
nächste
P-Sperre ausgewählt
werden.
-
Für den Fachmann
sind anhand des Studiums der Spezifikation und der Praktizierung
der im vorliegenden Text offenbarten Erfindung Modifikationen und
Adaptionen der vorliegenden Erfindung erkennbar. Die obige Beschreibung
einer Implementierung der Erfindung dient dem Zweck der Veranschaulichung
und Beschreibung. Sie ist nicht erschöpfend und beschränkt die
Erfindung nicht auf genau die Form, die hier offenbart ist. Modifikationen
und Variationen sind im Licht der obigen Lehren möglich oder können sich
aus der Praktizierung der Erfindung ergeben. Zum Beispiel enthält die beschriebene
Implementierung Software; aber Systeme und Verfahren, die der vorliegenden
Erfindung folgen, können
als eine Kombination aus Hardware und Software oder in Hardware
allein implementiert werden. Des Weiteren sind zwar Aspekte der
vorliegenden Erfindung zum Speichern in einem Speicher beschrieben,
doch dem Fachmann leuchtet ein, dass diese Aspekte auch in anderen
Typen computerlesbarer Medien gespeichert werden können, wie
zum Beispiel Sekundärspeichervorrichtungen,
zum Beispiel Festplatten, Disketten oder CD-ROM; dem Internet oder
anderen Verbreitungsmedien; oder sonstigen Formen von RAM oder ROM.
-
Computerprogramme,
die auf der schriftlichen Beschreibung und den Flussdiagrammen dieser
Erfindung basieren, liegen im Rahmen der Fähigkeiten eines erfahrenen
Entwicklers. Die verschiedenem Programme oder Programmmodule können mit Hilfe
jeglicher der Technologien erstellt werden, die dem Fachmann bekannt
sind, oder können
in Verbindung mit vorhandener Software gestaltet werden. Zum Beispiel
können
Programme oder Programmmodule in oder mit Hilfe von Java®,
C++, HTML, XML oder HTML mit eingebundenen Java-Applets oder in SAP R/3 oder ABAP gestaltet
werden.