-
ALLGEMEINER STAND DER
TECHNIK
-
Gebiet der Erfindung
-
Das
technische Gebiet dieser Erfindung liegt im Bereich der elektronischen
Datenverarbeitung. Spezieller betrifft die Erfindung Datenstrukturen,
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; R. Schaarschmidt, W. Röder. Wirtschaftsinformatik
39 (1997) 5, S. 469–477;
Schaarschmidt, Bühnert, Herbst
et al, "Konzepte
und Implementierungsaspekte anwendungsorientierten Archivierens
in Datenbanksystemen",
Informatik Forschung und Entwicklung, 1998, 79–89) 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 einer Datenstruktur, 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 Datenstruktur zum Ermöglichen
einer wirksamen Verhinderung der Änderung eines Datenobjektes
während
eines Bewegungs- oder
Archivierungsprozesses bereitzustellen.
-
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 der erfindungsgemäßen Datenstruktur
innerhalb eines Computersystems;
-
2 eine
Prinzipskizze einer beispielhaften Struktur des ersten und zweiten
Sperrobjektes und eines Datenobjektes gemäß den Prinzipien der Erfindung;
-
3 ein
beispielhaftes Flussdiagramm einer Implementierung der Erzeugung
eines ersten und zweiten Sperrobjektes, die in 1 dargestellt sind;
-
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, die in 1 dargestellt
sind;
-
7 ein
beispielhaftes Flussdiagramm, welches darstellt, wie eine Softwareanwendung
das erfindungsgemäße Konzept
des ersten und zweiten Sperrobjektes 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, wobei das flüchtige
Speichermittel seinen Inhalt verliert, wenn die elektrische Stromversorgung ausgeschaltet
wird. Eine Speicherstelle 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. Das erste Sperrobjekt kann vorteilhafterweise
in einem nichtflüchtigen
Speichermittel gespeichert sein, und das zweite 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. Ferner
ist das zweite Sperrobjekt 115 ebenfalls in dem Arbeitsspeicher 112 gespeichert,
während das
erste Sperrobjekt auf einem ersten Speichermittel 107 gespeichert
ist. 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 und zweiten 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 das erste 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 von der erfindungsgemäßen Datenstruktur
Gebrauch zu machen, 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 Datenarray implementiert
sein, zum Beispiel als ein eindimensionales Datenarray, 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 das erste und zweite Sperrobjekt
durch einen Datenbewegungs- oder Datenarchivierungsprozess erzeugt
werden.
-
Um
die erfindungsgemäße Datenstruktur und
ihre Vorteile besser zu verstehen, wird nun die Erzeugung der Sperrobjekte
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 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 erfindungsgemäße 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 (Schritt 704), 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 804, wird geprüft 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 in Schritt 902 eine T-Sperre zu der P-Sperre
gesetzt. 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 des Beendigungsschrittes 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.
-
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.