-
Hintergrund der Erfindung
-
Technisches Gebiet
-
Das
technische Gebiet der vorliegenden Erfindung ist das Gebiet der
elektronischen Datenverarbeitung. Insbesondere betrifft die Erfindung
Verfahren, Computerprogrammprodukte und Systeme zum Replizieren
von Datenobjekten.
-
Allgemeiner Stand der Technik
-
Die
Replikation von Datenobjekten ist jedem Benutzer eines Computers
wohlbekannt und ist eine Standardprozedur, die routinemäßig angewandt
wird. Eine spezielle Anwendung des Replizierens von Datenobjekten
ist der Vorgang des Kopierens oder Archivierens, bei dem Datenobjekte
aus Sicherheits- und/oder Leistungsgründen aus einem Quellensystem
in ein Zielsystem kopiert werden (z. B. Stefani, H.: "Datenarchivierung
mit SAP", SAP-Info, SAP AG, Corporate
Communications, Walldorf, DE, Mai 2002, XP0022666517 ISSN: 1430.5526).
In diesen speziellen Anwendungen bleiben die Datenobjekte unverändert. Der
allgemeinere Ausdruck "Replikation" umfaßt jedoch
auch solche Prozesse, bei denen die Datenobjekte während des
Replikationsprozesses verändert
werden. Solche Änderungen
können
eine Folge der Notwendigkeit sein, die Menge an Daten zu konzentrieren,
oder des Wunsches des Benutzers des Zielsystems, nur einen bestimmten
Teil des Datenobjekts zu erhalten. In Unternehmen verwendet man
Anwendungen der sogenannten Unternehmen-Ressourcenplanungssoftware
(ERP) zur Steuerung von Unternehmensprozessen und zur Verwaltung
von Firmeninformationen von Unternehmen verschiedener Arten in beliebigen
technologischen Gebieten mittels automatischer Datenverarbeitungssysteme,
wie zum Beispiel Computer oder Computersystemen. Während der
Verwendung solcher Software wird gewöhnlich eine enorme Menge an
Daten erzeugt, die wichtige in Datenobjekten enthaltene Unternehmensinformationen
enthält.
In einer solchen Umgebung kann ein Quellensystem das Computer- und
Softwaresystem der Finanz- oder Kontrollabteilung sein, und das
Zielsystem kann das Computer- und Softwaresystem der Verwaltung
sein. Um die Verwaltung über
die wirtschaftliche Situation in dem Unternehmen informiert zu halten,
können
Finanzdaten, z. B. die Buchhaltungsdaten, von dem Finanzsystem zu
dem Verwaltungssystem repliziert (unter Änderungen wie zum Beispiel
Aggregationen oder Konzentrationen transferiert oder kopiert) werden
(z. B. Chaudhuri, S. et al: "An
overview of data warehousing and OLAP technology", Sigmod Record, Association for Computing
Machinery, New York, USA, Band 26, Nr. 1, März 1997, Seiten 65–74;
US 6 032 158 A ;
US 6 029 178 ). Bei vielen
ERP-Anwendungen werden die Transaktionen des Unternehmens unabhängig und
zu jedem beliebigen Zeitpunkt in dem Computersystem gespeichert.
Gleichzeitig besteht eine Notwendigkeit, einem oder mehreren Zielsystemen
replizierte Daten zuzuführen.
Diese Datenreplikationen finden gewöhnlich weniger häufig statt,
und um die Menge des transferierten Datenvolumens zu reduzieren,
sollten nur Datenobjekte repliziert werden, die seit dem vorherigen
Replikationsprozeß neu oder
abgeändert
sind. Ein Verfahren zum Erreichen dieses Ziels ist der Zeitstempelprozeß (z. B.
Ramp, P. et al: "Extracting
delta for incremental data warehouse maintenance", Data engineering, 2000, Proc. Conf.
16
th international conference an San Diego, CA,
USA, 29.2.–3.3.2000,
Los Alamitos, CA, USA, IEEE Comput. Soc., 29.2.2000, Seiten 220–229, ISBN
0.7695-0506-6).
Bei diesem Verfahren wird dem in dem Quellensystem zu speichernden
Datenobjekt ein Zeitstempel zugewiesen. Der Zeitstempel ist gewöhnlich der
Zeitpunkt, zu dem das Datenobjekt gespeichert wird, oder ein Zeitpunkt
kurz nach dem Beginn des Speicherprozesses. Und die Replikationsanwendung – dies ist
eine Softwareanwendung, die das Datenobjekt aus dem Quellen- in
das Zielsystem repliziert – repliziert
bei einem bestimmten Ablauf nur solche Datenobjekte, deren Zeitstempel
in einem bestimmten vordefinierbaren Zeitintervall liegen.
-
Dieses
Verfahren hat jedoch den Nachteil, daß der Zeitstempel nicht unbedingt
identisch mit der Zeit der tatsächlichen Übergabe
der Datenbank (Anwendung) ist, die das Datenobjekt physisch auf
das physische Speichermittel speichert/schreibt. Diese Diskrepanz
kann in dem Replikationsprozeß Ausfälle, insbesondere
fehlende Datenobjekte, verursachen, wenn der Replikationsprozeß zwischen
einem Zeitpunkt zwischen dem Zeitstempel und der Zeit der Übergabe
und/oder des Speicherns stattfindet und Replikationsprozesse parallel
ablaufen. Man nehme einen Zeitstempel ts,
eine Übergabe
tc und ein Replikationsintervall von t1 bis t2 an, wobei
t1 < ts < t2 < tc ist. In einer solchen Zeitlücke ist
das bestimmte Datenobjekt aufgrund der fehlenden Übergabe
(t2 < tc) für die
Replikationsanwendung noch nicht sichtbar und wird somit nicht repliziert.
Während
des nächsten
Replikationsablaufs mit einem Intervall von t2 bis
t3 liegt der Zeitstempel dieses Datenobjekts
wegen ts < t2 noch nicht in dem Intervall. Dieses Problem
wird gewöhnlich
entschärft,
indem man eine Zeit t2 + Δt als oberen
Wert des Replikationsintervalls verwendet und den nachfolgenden
Replikationsablauf genau bei t2 startet.
Eine übliche
Länge von Δt beträgt etwa
30 min. Dieses Konzept mit Δt
hat einerseits den Nachteil, daß "vorgeschichtliche" Datenobjekte repliziert werden,
wenn Δt
zu groß ist,
und andererseits Datenobjekte verloren gehen, wenn Δt zu klein
ist. Das Zuweisen eines Zeitstempels ist ferner ein Zugriff auf ein
zentrales Betriebsmittel des Computers und stört das parallele Speichern
der Datenobjekte.
-
Somit
werden ein Verfahren, eine Softwareanwendung und/oder ein Datenverarbeitungssystem zur
Bereitstellung einer effizienteren Lesung mindestens von Teilen
der oben beschriebenen Probleme benötigt, insbesondere ist es wünschenswert,
eine Softwareanwendung mit einem Mechanismus zum Identifizieren
der zu replizierenden Datenobjekte bereitzustellen.
-
Kurzfassung der Erfindung
-
Gemäß der Erfindung,
so wie sie hier realisiert und allgemein beschrieben wird, liefern
Verfahren und Systeme im Einklang mit den Prinzipien der Erfindung
ein computerimplementiertes Verfahren zum Verarbeiten eines oder
mehrerer Datenobjekte in einem Quellencomputersystem und zum Replizieren
des einen oder der mehreren Datenobjekte zu einem Zielcomputersystem,
umfassend Online-Transaktionsprozesse, die Operationen des Abänderns, Löschens, Änderns oder
Einfügens
an einem oder mehreren Datenobjekten ausführen, und Replikationsprozesse,
die die so operierten einen oder mehreren Datenobjekte replizieren,
gekennzeichnet durch
- – Verwenden eines oder mehrerer
Datenelemente, die eine Identifikation eines Datenobjekts oder einer
Menge von Datenobjekten, die verarbeitet werden sollen, erlauben,
und die auf drei mögliche
Zustände
gesetzt werden können,
einen ersten Zustand, in dem einer oder mehrere der Online-Transaktionsprozesse
auf ein Datenelement zugreifen können
und in dem dieses Datenelement einem oder mehreren der Datenobjekte
zuweisbar ist,
einen zweiten Zustand, in dem die Online-Transaktionsprozesse
nicht auf ein Datenelement zugreifen können, es aber immer noch einem
oder mehreren der Datenobjekte zuweisbar ist, in dem der eine oder
die mehreren Online-Transaktionsprozesse bereits zu einem Zeitpunkt
auf das Datenelement zugegriffen haben, zu dem es sich in dem ersten
Zustand befand, und
einen dritten Zustand, in dem die Online-Transaktionsprozesse
nicht auf ein Datenelement zugreifen können und es nicht einem oder
mehreren Datenobjekten zuweisbar ist, wobei eines des einen oder
der mehreren Datenelemente als Vorgabe-Datenelement definierbar
ist,
- – Definieren
eines Datenelements als das Vorgabe-Datenelement und
- – a)
Setzen des Vorgabe-Datenelements auf den ersten Zustand,
- – Durchführen der
Operationen des Abänderns, Löschens, Änderns oder
Einfügens
an dem einen oder den mehreren Datenobjekten mittels der Online-Transaktionsprozesse,
- – b)
Prüfen
eines oder mehrerer der Datenelemente, ob ein Vorgabe-Datenelement
zugänglich ist,
und wenn ja, Zuweisen dieses Datenelements zu dem einen oder den
mehreren Datenobjekten mittels der Online-Transaktionsprozesse
- – Speichern
des einen oder der mehreren Datenobjekte, denen dieses Datenelement
zugewiesen ist, auf dem Quellencomputersystem mittels der Online-Transaktionsprozesse,
- – c)
nach der Übergabe
der Speicherprozesse aller Datenobjekte, denen dieses Datenelement
zugewiesen ist, Verwandeln des Zustands des Datenelements in den
dritten Zustand und
- – Replizieren
derjenigen Datenobjekte, denen ein Datenelement (106, 200)
des dritten Zustands zugewiesen ist, zu dem Zielcomputersystem mittels der
replizierenden Prozesse,
- – Verwandeln
des Zustands des Datenelements aus dem ersten Zustand in den zweiten
Zustand, wenn ein anderes Datenelement als das Vorgabe-Datenelement
definiert ist.
-
Durch
Verwendung des oben beschriebenen erfindungsgemäßen elektronischen Datenelements bei
der Datenverarbeitung können
Softwareanwendungen, die Zugang zu Datenobjekten für Datenverarbeitungs-,
Speicher- oder Replikationszwecke benötigen, durch Abfragen des elektronischen
Datenelements und seines Zustands prüfen, welche Operationen an
dem elektronischen Datenelement und/oder den Datenobjekten erlaubt
oder nicht erlaubt sind und insbesondere, ob die Datenobjekte, denen
dieses elektronische Datenelement zugewiesen ist, bereit für den Replikationsprozeß sind.
Wenn sie es sind, können
solche Datenobjekte aus ihrem Quellensystem zu einem Zielsystem
repliziert werden. Ferner wird sichergestellt, daß diesem
bestimmten elektronischen Datenelement keine weiteren Datenobjekte
zugewiesen werden können.
Somit kann der Replikationsprozeß kein Datenobjekt auslassen.
-
Elektronische
Datenelemente, die in den zweiten Zustand versetzt sind, können nicht
mehr durch Datenverarbeitungsprozesse ausgewählt werden, um sie den verarbeiteten
Datenobjekten zuzuweisen. Elektronische Datenelemente, die bereits ausgewählt wurden,
bevor die in den zweiten Zustand versetzt wurden, können jedoch
weiterhin den verarbeiteten Datenobjekten zugewiesen werden.
-
Die
Erfindung betrifft ferner Datenstrukturen mit elektronischen Datenelementen,
Computersysteme, Computerprogramme, computerlesbare Medien und Trägersignale,
die Anweisungen zum Verarbeiten von Daten gemäß dem erfindungsgemäßen Verfahren
bzw. seinen Ausführungsformen
umfassen.
-
Weitere
Ziele und Vorteile der Erfindung werden teilweise in der Beschreibung
dargelegt oder können
durch Ausübung
der Erfindung erlernt werden. Die Ziele und Vorteile der Erfindung
werden mittels der Elemente und Kombinationen, die in den angefügten Ansprüchen im
besonderen dargelegt werden, realisiert und erreicht.
-
In
dem Teil mit der ausführlichen
Beschreibung und in den abhängigen
Ansprüchen
werden Ausführungsformen
der Erfindung offenbart.
-
Es
versteht sich, daß sowohl
die obige allgemeine Beschreibung als auch die folgende ausführliche
Beschreibung lediglich beispielhaft und veranschaulichend sind und
die beanspruchte Erfindung nicht einschränken.
-
Kurze Beschreibung der Zeichnungen
-
Die
beigefügten
Zeichnungen, die in die vorliegende Beschreibung integriert sind
und Teil dieser bilden, veranschaulichen beispielhafte Ausführungsformen
der Erfindung und erläutern
zusammen mit der Beschreibung die Prinzipien der Erfindung. Es zeigen:
-
1 ein
Blockschaltbild zur Veranschaulichung einer Implementierung des
erfindungsgemäßen elektronischen
Datenelements in einem Computersystem.
-
2 ein
beispielhaftes Blockschaltbild zur Veranschaulichung von auf das
elektronische Datenelement anwendbaren Operationen.
-
3 ein
beispielhaftes Flußdiagramm
zur Veranschaulichung einer ersten Implementierung eines Datenverarbeitungsprozesses
unter Verwendung des elektronischen Datenelements.
-
4 ein
beispielhaftes Flußdiagramm
zur Veranschaulichung einer zweiten Implementierung des Datenverarbeitungsprozesses
unter Verwendung des elektronischen Datenelements.
-
5 ein
beispielhaftes Flußdiagramm
zur Veranschaulichung einer dritten Implementierung des Datenverarbeitungsprozesses
unter Verwendung des elektronischen Datenelements.
-
6 ein
beispielhaftes Flußdiagramm
zur Veranschaulichung einer ersten Implementierung eines Datenreplizierungsprozesses,
der das elektronische Datenelement verwendet.
-
7 ein
beispielhaftes Flußdiagramm
zur Veranschaulichung einer zweiten Implementierung eines Datenreplizierungsprozesses,
der das elektronische Datenelement verwendet.
-
7a ein
beispielhaftes Flußdiagramm
zur Veranschaulichung einer weiteren Implementierung des Datenreplizierungsprozesses
unter Verwendung des elektronischen Datenelements.
-
8 eine
Darstellung der chronologischen Sequenz der Zustände des elektronischen Datenelements
und von Schritten gemäß dem erfindungsgemäßen Verfahren,
die durch mehrere unabhängige Prozesse
ausgeführt
werden.
-
Ausführliche Beschreibung
-
Es
wird nun im einzelnen auf die Prinzipien der Erfindung bezug genommen,
indem die Erfindung auf der Grundlage eines Datenverarbeitungprozesses
erläutert
wird, wofür
Beispiele in den beigefügten
Zeichnungen dargestellt sind. Hier erwähnte Beispiele sollen die Erfindung
erläutern
und die Erfindung auf keinerlei Weise einschränken.
-
Innerhalb
des Konzepts der vorliegenden Offenbarung sollen die verwendeten
Begriffe ihre gewöhnliche
Bedeutung im Kontext des Gebiets der Datenverarbeitung besitzen,
sofern es nicht in den folgenden Abschnitten anders definiert wird.
-
Ein
Computersystem bedeutet allgemein einen beliebigen selbständigen Computer,
wie zum Beispiel einen PC oder einen Laptop oder eine Reihe von über ein
Netzwerk verbundenen Computern, z. B. ein Netzwerk in einer Firma
oder eine Reihe von über
das Internet verbundenen Computern.
-
Computersysteme
und Programme können eng
miteinander in Beziehung stehen. Im vorliegenden Gebrauch werden
mit Phrasen wie etwa "der Computer
stellt bereit" und "das Programm stellt
bereit oder führt
spezifische Aktionen aus", "ein Benutzer führt eine
spezifische Aktionen aus" Aktionen durch
ein Computersystem ausgedrückt,
das durch ein Programm gesteuert werden kann, oder daß das Programm
oder Programmmodul dafür
ausgelegt werden kann, das Computersystem in die Lage zu versetzen,
die spezifische Aktion auszuführen,
oder einen Benutzer in die Lage zu versetzen, die spezifische Aktion
mittels eines Computersystems auszuführen.
-
Der
Begriff Datenobjekt bedeutet allgemein eine beliebige Art oder einen
beliebigen Typ von Daten, z. B. numerische oder Textdaten, Bilddaten,
Metadaten, gleichgültig,
ob die Daten als ganze Dateien oder als Teile von Dateien oder Feldern
in Tabellen implementiert sind, und gleichgültig, ob sie im flüchtigen
Speicher oder im nichtflüchtigen
Speicher gespeichert sind. Als ein Beispiel können Datenobjekte als eines
oder mehrere Felder einer oder mehrerer Tabellen, insbesondere von
Tabellen eines relationalen Datenbanksystems, implementiert werden.
Die Verarbeitung solcher Datenobjekte umfaßt übliche Operationen an Daten,
wie zum Beispiel Kalkulation, Abänderung,
Kopieren, Löschen,
Einfügen...
Der Begriff Übergabe
(commit) bedeutet allgemein einen letzten Schritt beim erfolgreichen
Abschluß einer
zuvor begonnenen Datenbankänderung
als Teil der Handhabung einer Transaktion in einem Datenverarbeitungs-
oder Computersystem.
-
Der
Begriff Quellen-/Zielsystem bedeutet allgemein ein beliebiges Computersystem
mit oder ohne Softwarean wendungen, in dem Datenobjekte gespeichert
werden bzw. gespeichert werden können.
Das Quellen- und das Zielsystem können Einrichtungen gemeinsam
benutzen. Das Quellen- und das Zielsystem können folglich auf demselben
Computersystem implementiert werden.
-
Eine
Datenstruktur bedeutet allgemein ein spezialisiertes Format zum
Analysieren und Speichern von Daten. Zu Datenstrukturtypen gehören das Array,
die Datei, der Datensatz, die Tabelle, der Baum usw. Solche Datenstrukturen
können
dafür ausgelegt
werden, Daten für
einen spezifischen Zweck so zu organisieren, daß man auf geeignete Weise auf
sie zugreifen und sie verwenden kann. Bei der Computerprogrammierung
kann eine Datenstruktur dafür
ausgewählt
oder entworfen werden, Daten oder Datenobjekte für den Zweck des Arbeitens daran
mit verschiedenen Algorithmen zu speichern. Ein Datenelement ist
im Rahmen der vorliegenden Offenbarung als in einer Datenstruktur
gespeicherte Daten aufzufassen. Das erfindungsgemäße elektronische Datenelement
kann auch als ein wie zuvor definiertes Datenobjekt interpretiert
werden. Der Begriff elektronisches Datenelement soll gegenüber den
zu verarbeitenden Datenobjekten unterscheiden.
-
In
Computer-Programmiersprachen kann man ein erfindungsgemäßes elektronisches
Datenelement als eine oder mehrere Zeilen einer oder mehrerer Tabellen
implementieren, wobei jede Zeile eines oder mehrere Felder aufweist.
Bei der objektorientierten Programmierung kann man ein elektronisches
Datenelement durch eine Instanz einer Klasse implementieren. Die
Klasse weist dann mindestens eine Variable für eine Kennung (abgekürzt als "ID") und eine Variable
für den
Zustand auf.
-
Eine
erste Ausführungsform
des elektronischen Datenelements ist dadurch gekennzeichnet, daß das Datenelement
als eines oder mehrere erste Felder und ein zweites Feld einer Tabelle
implementiert wird, wobei das eine oder die mehreren ersten Felder
eine Kennung und das zweite Feld Informationen über den Zustand für die Kennung
in dem einen oder den mehreren ersten Feldern enthalten. Eine alternative
Ausführungsform
des elektronischen Datenelements ist dadurch gekennzeichnet, daß das Datenelement
als eines oder mehrere erste Felder in einer ersten Tabelle und
ein zweites Feld einer zweiten Tabelle implementiert wird, wobei
das eine oder die mehreren ersten Felder in der ersten Tabelle eine Kennung
und das zweite Feld in der zweiten Tabelle Informationen über den
Zustand für
die Kennung in dem einen oder den mehreren ersten Feldern der ersten
Tabelle enthalten.
-
Der
Begriff ID bedeutet allgemein einen Typ von Daten, der eine Identifikation
eines Datenobjekts oder einer Menge von Datenobjekten, die verarbeitet werden
sollen, ermöglicht.
Er kann zum Beispiel als eine Zahl oder eine Kombination alphanumerischer Zeichen
implementiert werden. Das erfindungsgemäße elektronischen Datenelement
kann somit als zwei Felder einer Tabelle implementiert werden, wobei
in dem ersten dieser eine ID gespeichert und in dem zweiten Informationen über den
Zustand des elektronischen Datenelements gespeichert werden, z.
B. drei verschiedene Daten, z. B. "I" oder "II" oder "III", womit der erste,
der zweite oder der dritte Zustand des elektronischen Datenelements
definiert wird.
-
Es
kann erlaubt sein, eine oder mehrere der folgenden Operationen an
dem elektronischen Datenelement auszuführen: Erzeugen eines elektronischen
Datenelements mit dem ersten Zustand, Verwandeln des ersten Zustands
in den zweiten oder den dritten Zustand, Verwandeln des zweiten
Zustands in den dritten Zustand, Blockieren oder Entblockieren einer
Zustandsänderung,
Setzen/Löschen einer
Verriegelung (siehe unten), insbesondere einer gemeinsam benutzten
Verriegelung, an der ID, Anfordern des Zustands der ID. Die Änderung
des Zustands kann von vordefinierbaren Bedingungen abhängig gemacht
werden, z. B. ob eine (gemeinsam benutzte) Verriegelung an der ID
gesetzt ist. Umgekehrt kann das Setzen einer Verriegelung von dem Zustand
abhängig
gemacht werden: wenn der Zustand der zweite Zustand ist, darf keine
gemeinsam benutzte Verriegelung an der ID gesetzt werden, was ein
Beispiel für
eine mögliche
Implementierung des zweiten Zustands ist. Eine Zustandsänderung
von III zu I oder II ist verboten. Vorteilhafterweise kann eine weitere
Variable verfügbar
sein, die eine Zustand/Inhalt-"Vorgabe" oder -"Nichtvorgabe" aufweisen kann, womit
das jeweilige elektronische Datenelement als ein Vorgabeelement
definiert wird.
-
Das
Versetzen des elektronischen Datenelements in den zweiten Zustand
kann automatisch durch ein unabhängiges
Programm oder "manuell" durch einen Benutzer
des Computersystems implementiert werden. Es können eines oder mehrere elektronische
Datenelemente auf den zweiten Zustand gesetzt werden.
-
Eine Änderung
des Zustands kann implementiert werden, indem man den Eintrag in
dem Feld für
die Zustandsinformationen von einem Symbol (z. B. Zeichen, Zahl,
Vorzeichen oder Kombinationen davon) für den ersten oder den zweiten
Zustand in ein Symbol für
den dritten Zustand verwandelt.
-
Eine
Verriegelung ist ein Mechanismus einer Datenbank oder Softwareanwendung,
der den Zugriff auf bestimmte Daten durch andere Anwendungen verhindert.
Dies wird nun ausführlicher
erläutert.
-
Wie
aus dem Stand der Technik bekannt ist, setzt ein Computerbanksystem
automatisch Datenbankverriegelungen, wenn es Änderungsanweisungen (INSERT,
UPDATE, MODIFY, DELETE – Einfügen, Aktualisieren,
Modifizieren, Löschen)
von einem Programm erhält.
Datenbankverriegelungen sind physische Verriegelungen an den Datenbankeinträgen, die durch
diese Anweisungen beeinflußt
werden. Es kann nur eine Verriegelung für einen existierenden Datenbankeintrag
gesetzt werden, da der Verriegelungsmechanismus ein Verriegelungs-Flag in
dem Eintrag benutzt. Diese Flags werden bei jeder Datenbank-Übergabe
automatisch gelöscht.
Das heißt,
daß Datenbank-Verriegelungen
niemals länger als
für eine
einzige Datenbank-LUW (logische Arbeitseinheit) gesetzt werden kann.
-
Physische
Verriegelungen in dem Datenbanksystem sind deshalb unter bestimmten
Umständen
für die
Anforderungen des Verriegelns von Daten unzureichend. Bei bestimmten
Anwendungen müssen
Verriegelungen für
die Dauer mehrerer LUW-Schritte gesetzt bleiben. Sie müssen auch durch
verschiedene Arbeitsprozesse und sogar verschiedene Anwendungen
handhabbar sein. Um solchen Anforderungen zu genügen, wurden sogenannte logische
Verriegelungen erzeugt.
-
Im
Gegensatz zu der Datenbankanwendung, die physische Verriegelungen
setzt, bedeutet das Setzen logischer Verriegelungen, daß ein verriegeltes
Datenobjekt nicht physisch in der Datenbanktabelle verriegelt wird.
Eine logische Verriegelung kann einfach als ein Eintrag eines Verriegelungsarguments
in einer zentralen Verriegelungstabelle implementiert werden. Das
Verriegelungsargument kann das primäre Schlüsselfeld des zu verriegelnden
Datenobjekts, z. B. der ID sein. Die logische Verriegelung ist von
Datenbank-LUW unabhängig.
Sie kann entweder implizit freigegeben werden, wenn eine Datenbankaktualisierung
oder eine Transaktion endet, oder explizit, indem man den Eintrag
in der zentralen Verriegelungstabelle löscht. Die Effektivität der logischen
Verriegelungen wird folglich vorteilhafterweise durch kooperative
Anwendungsprogrammierung beeinflußt. Da das Konzept logischer
Verriegelungen keine physischen Verriegelungen in den Datenbanktabellen
selbst verwendet, müssen
alle Programme, die dieselben Anwendungsobjekte benutzen, selbst in
der zentralen Tabelle nach etwaigen logischen Verriegelungen suchen.
Es gibt keinen Mechanismus, der automatisch verhindert, daß ein Programm
die Verriegelungen in der Verriegelungstabelle ignoriert. Es können mindestens
zwei Arten von logischen Verriegelungen implementiert werden:
-
Gemeinsam benutzte Verriegelung
-
Gemeinsam
benutzte Verriegelungen (oder Leseverriegelungen), die von einer
Anwendung (oder einem Programm) gesetzt werden, ermöglichen
es, zu verhindern, daß Daten
durch andere Anwendungen geändert
werden, während
sie von dieser Anwendung gelesen werden. Gemeinsam benutzte Verriegelungen
verhindern, daß andere
Programme eine exklusive Verriegelung (Schreibverriegelung) setzen, um
das Objekt zu ändern.
Es wird jedoch nicht verhindert, daß andere Programme weitere
gemeinsam benutzte Verriegelungen setzen.
-
Exklusive Verriegelung
-
Exklusive
Verriegelungen (oder Schreibverriegelungen), die von einer Anwendung
gesetzt werden, ermöglichen
es, zu verhindern, daß Daten
geändert
werden, während
diese Anwendung die Daten selbst ändert. Wie der Name sagt, verriegelt
eine exklusive Verriegelung ein Datenobjekt für exklusive Verwendung durch
das Programm, das sie setzt. Kein anderes Programm kann dann eine
gemeinsam benutzte Verriegelungen oder eine exklusive Verriegelung
für dasselbe
Anwendungsobjekt setzen.
-
Das
Konzept logischer Verriegelungen ermöglicht das Setzen eines oder
mehrerer Verriegelungen für
ein Datenobjekt wie oben definiert, insbesondere für eine ID,
wobei diese Verriegelung für
die Dauer von mehr als einer LUW existiert und von mehr als einer
Anwendung gehandhabt werden kann.
-
Die
Verwendung beider Konzepte erfolgt durch das erfindungsgemäße elektronische
Datenelement und Verfahren, wie später ausführlicher beschrieben werden
wird.
-
Eine
erste Ausführungsform
des erfindungsgemäßen Verfahrens,
so wie es in dem Kurzfassungsteil beschrieben wird, ist dadurch
gekennzeichnet, daß das
Verfahren ferner einen folgenden Schritt umfaßt: b) Auswählen eines der vorherigen elektronischen
Datenelemente, das einen ersten Zustand aufweist, und Zuweisen dieses
zu einem oder mehreren Datenobjekten und Speichern des einen oder
der mehreren Datenobjekte.
-
Während es
sich in dem ersten Zustand befindet, können Prozesse, die ein Datenobjekt
verarbeiten, auf ein erfindungsgemäßes elektronisches Datenelement
zugreifen, und es kann einem oder mehreren Datenobjekten zugewiesen
werden, die durch beliebige dieser Prozesse verarbeitet werden. Das
Zuweisen eines elektronischen Datenelements zu einem Datenobjekt
kann z. B. durch Speichern einer Kopie davon zusammen mit dem Datenobjekt oder
durch Speichern einer Kopie davon zusammen mit einer zweiten ID,
die das bestimmte Datenobjekt unzweideutig identifiziert, in einer
separaten Tabelle implementiert werden. Als Alternative kann man
eine Verknüpfung
zu dem elektronischen Datenelement hinzufügen und speichern. Als weitere
Alternative kann man eine Verknüpfung
zu dem Datenobjekt oder einer Kennung davon und die ID des elektronischen
Datenelements in einer separaten Tabelle speichern.
-
In
einem ersten Zustand darf der Datenverarbeitungsprozeß eine gemeinsam
benutzte Verriegelung an dem elektronischen Datenelement setzen.
-
Wenn
sich das elektronische Datenelement in dem zweiten Zustand befindet,
kann das elektronische Datenelement immer noch gelesen und den Datenobjekten
zugewiesen werden. Man kann jedoch nicht auf das elektronische Datenelement
zugreifen, d. h. das Setzen einer gemeinsam benutzten Verriegelung
an diesem elektronischen Datenelement ist für diesen Datenverarbeitungsprozeß nicht
erlaubt.
-
Wenn
sich das elektronische Datenelement in dem dritten Zustand befindet,
kann ein Datenverarbeitungsprozeß weder darauf zugreifen, noch
kann es einem Datenobjekt zugewiesen werden. Replizierungsprozesse
können
jedoch mit diesem dritten Zustand alle Datenobjekte auswählen, denen
ein bestimmtes elektronisches Datenelement des dritten Zustands
zugewiesen ist. Aufgrund der oben beschriebenen Eigenschaften der
drei Zustände
können
keine andere Datenverarbeitungsprozesse dieses bestimmte elektronische
Datenelement mit drittem Zustand zuweisen oder darauf zugreifen
bzw. keine andere Datenverarbeitungsprozesse können diese bestimmten elektronischen
Datenelemente mit drittem Zustand zuweisen oder auf diese zugreifen. Durch
Verwendung von Replikationsprozessen, die Datenobjekte auswählen, denen
elektronische Datenelemente mit drittem Zustand zugewiesen sind, wird
somit sichergestellt, daß kein
Datenobjekt aufgrund von Zeitlückenproblemen
wie im Abschnitt über
den allgemeinen Stand der Technik beschrieben ausgelassen werden
kann.
-
Um
dies in die Praxis umzusetzen, müssen die
Datenverarbeitungsprozesse entsprechend programmiert werden.
-
Eine
weitere Ausführungsform
umfaßt
abhängig
oder unabhängig
von den Schritten a) bis c):
- d) Erzeugen eines
weiteren elektronischen Datenelements und Versetzen dieses in den
ersten Zustand.
-
Wenn
keine exklusive Verriegelung gesetzt werden konnte, existierte keine
gemeinsam benutzte Schleife mehr an dieser ID. Das heißt, daß das Verarbeiten
und Speichern der Datenobjekte signalisiert wurde und die dieser
ID zugewiesenen Datenobjekte ohne Gefahr eines Datenverlustes repliziert
werden können.
-
Eine
weitere Ausführungsform
umfaßt
e) Definieren des weiteren elektronischen Datenelements als Vorgabeelement
und Versetzen der vorherigen elektronischen Datenelemente in den
zweiten Zustand.
-
Eine
weitere Ausführungsform
ist gekennzeichnet durch Definieren des weiteren elektronischen
Datenelements als Vorgabe und Verwandeln des Zustands eines vorherigen
elektronischen Datenelements, das als ein Vorgabeelement definiert wurde,
in den zweiten Zustand.
-
Bei
einer weiteren Ausführungsform
umfaßt die
Erfindung im Schritt b): Setzen eines Blocks mit einer Referenz
zu dem Prozeß,
der den Block setzt, an dem elektronischen Datenelement, wobei der Block
die Verwandlung des Zustands des elektronischen Datenelements in
den dritten Zustand verhindert, wenn der Zustand der erste oder
der zweite Zustand ist.
-
Zusätzlich umfaßt eine
weitere Ausführungsform
im Schritt b): Löschen
des Blocks, dessen Referenz auf diesen Prozeß zeigt, wenn der Zustand der erste
oder der zweite Zustand ist und wenn die Speicherung übergeben
wird.
-
Eine
weitere Ausführungsform
ist gekennzeichnet durch irreversibles Blockieren der Änderung des
Zustands des elektronischen Datenelements, wenn der Zustand der
dritte Zustand ist.
-
Vorteilhafterweise
wird das Blockieren durch Setzen einer gemeinsam benutzten Verriegelung
an dem bewegten elektronischen Datenelement implementiert. Die Entblockierung
kann durch Löschen
der gemeinsam benutzten Verriegelung implementiert werden.
-
Bei
einer weiteren Ausführungsform
des erfindungsgemäßen Verfahrens
wird das elektronische Datenelement als eine erste Tabelle mit einem
oder mehreren ersten Feldern implementiert, die eine Kennung enthalten,
und wobei die gemeinsam benutzte Verriegelung an dem einen oder
den mehreren der ersten Felder gesetzt wird. Eine weitere Ausführungsform
ist dadurch gekennzeichnet, daß die
erste Tabelle ein zweites Feld aufweist, das Zustandsinformationen
enthält.
Eine weitere Ausführungsform
ist dadurch gekennzeichnet, daß eine
zweite Tabelle mit einem Feld, das die Zustandsinformationen enthält, mit
der ersten Tabelle verknüpft
ist.
-
Eine
weitere Ausführungsform
ist dadurch gekennzeichnet, daß die
Blockierung im Schritt b) durch Setzen einer gemeinsam benutzten
Verriegelung an dem elektronischen Datenelement vor der Zuweisung
des elektronischen Datenelements zu diesem Datenobjekt implementiert
wird. Eine weitere Ausführungsform
ist dadurch gekennzeichnet, daß die
Endblockierung im Schritt b) durch Löschen der gemeinsam benutzten
Verriegelung, sobald das Speichern übergeben ist, implementiert
wird.
-
Eine
weitere Ausführungsform
des erfindungsgemäßen Verfahrens
ist durch Schritt c) vorausgehendes gekennzeichnet: f) Prüfen, ob
eine gemeinsam benutzte Verriegelung an dem elektronischen Datenelement
gesetzt ist, und falls keine gemeinsam benutzten Verriegelung gesetzt
ist, Durchführen
von Schritt c). Eine weitere Ausführungsform umfaßt g) im
Fall daß Schritt
c) erfolglos geblieben ist, Warten für eine vordefinierbare Zeit
und Zurückkehren
zu f). Eine weitere Ausführungsform
ist dadurch gekennzeichnet, daß Schritt
g) eine vorwählbare
Anzahl von Malen wiederholt wird. Eine weitere Ausführungsform
ist dadurch gekennzeichnet, daß das
Prüfen
implementiert wird durch Versuchen, eine exklusive Verriegelung
an dem elektronischen Datenelement zu setzen, und falls die exklusive
Verriegelung gesetzt wurde, Zurückgeben,
daß keine
gemeinsam benutzte Verriegelung an dem elektronischen Datenelement
gesetzt ist.
-
Eine
weitere Ausführungsform
ist dadurch gekennzeichnet, daß die
Schritte b und/oder c) unabhängig
durch unabhängige
Prozesse ausgeführt
werden.
-
Eine
weitere Ausführungsform
umfaßt
nach dem Erzeugen eines Datenelements in dem ersten Zustand:
- h) Erzeugen einer vordefinierbaren Anzahl von Subprozessen
zur Verarbeitung der entsprechenden Anzahl von Datenobjekten,
- i) Ausführen
von Schritt a) für
jedes Datenobjekt in dem entsprechenden Subprozeß,
- j) in dem Prozeß,
der die Subprozesse erzeugt hat: Warten, bis die entsprechende Anzahl
gemeinsam benutzter Verriegelungen an dem Datenelement gesetzt wurde,
bevor der Zustand des Datenelements in den zweiten Zustand verwandelt
wird,
- k) Verarbeiten und Speichern der Datenobjekte in den jeweiligen
Subprozessen.
-
Eine
weitere Ausführungsform
ist dadurch gekennzeichnet, daß das
elektronische Datenelement eine GUID oder einen Zeitstempel umfaßt. Der Begriff
GUID ist in der Technik bekannt und bedeutet allgemein eine globale
eindeutige Kennung. Er ist ein Begriff, der für eine Zahl verwendet wird,
die Programmierung erzeugt, um eine eindeutige Identität für eine Entität, wie zum
Beispiel ein Word-Dokument, zu erzeugen. GUID werden vielfach in
Produkten zum Identifizieren von Schnittstellen, Duplikatsätzen, Datensätzen und
anderen Objekten verwendet. Verschiedene Arten von Objekten besitzen
verschiedene Arten von GUID – zum
Beispiel verwendet eine Microsoft-Access-Datenbank ein 16-Byte-Feld
zur Einrichtung einer eindeutigen Kennung für die Replikation. Und ein
Zeitstempel enthält
Datum und Uhrzeit einer an dem Datenobjekt ausgeführten spezifischen
Aktion. Datum und/oder Uhrzeit können
in separaten Feldern des ID-Teils des elektronischen Datenelements
gespeichert werden. Eine weitere Ausführungsform ist dadurch gekennzeichnet,
daß die Datenelemente
in dem dritten Zustand aufeinanderfolgend numeriert werden. Eine
weitere Ausführungsform
ist dadurch gekennzeichnet, daß die
gemeinsam benutzten Verriegelungen logische Leseverriegelungen sind.
-
Eine
weitere Ausführungsform
ist das erfindungsgemäße Verfahren
zur Verwendung in einer Software für Unternehmensressourcenplanung.
Eine konkrete Verwendung ist das Verarbeiten, Speichern und Replizieren
von Datenobjekten im finanziellen Bereich, z. B. Objekte für Buchung,
Verrechnung, Berechnungsstellung, Quittungen, Gutscheine...
-
Die
Erfindung wird nun ausführlicher
anhand der Zeichnungen beschrieben.
-
1 zeigt
ein Beispiel für
eine Implementierung einer Ausführungsform
der Erfindung: ein Computersystem mit Programmodulen zur Ausführung des
erfindungsgemäßen Verfahrens. 1 zeigt
ein Computersystem 101 mit einem Computer 103 mit
einer CPU 105, einer Arbeitsspeicherung 102 (Speicher),
worin eine Softwareanwendung 111 zur Verarbeitung durch
die CPU 105 gespeichert wird. Die Softwareanwendung 111 umfaßt Programmodule 109, 110 zum
Ausführen
von Datenreplikation und Datenverarbeitung gemäß dem erfindungsgemäßen Verfahren.
Die erfindungsgemäßen elektronischen Datenelemente
werden in einer Tabelle 106 implementiert, die eine Spalte
für Kennungen
(abgekürzt als "ID" und aufeinanderfolgend
numeriert, z. B. ID1, ID2, ID3, wobei letztere als Vorgabe-ID mit
der Abkürzung "DID" definiert ist),
eine Spalte für
den Zustand und eine Spalte für
die Vorgabequalität
umfaßt. Die
Tabelle 106 wird in dem Speicher 102 gespeichert.
Die Vorgabequalität
kann implementiert werden, indem man – im allgemeinen Sinne – "ja" in einem Feld für den Vorgabestatus
("default?" in 1) hinzufügt). Das
Computersystem 101 umfaßt ferner Eingabemittel 113,
Ausgabemittel 112 zur Interaktion mit einem Benutzer, z.
B. zum Starten der Programmodule und/oder zur Dateneingabe und allgemeine Eingabe-/Ausgabemittel 104,
darunter eine Netzverbindung 114, zum Senden und Empfangen
von Daten. über
die Netzverbindung 114 in Form eines Netzwerks 113 können mehrere
Computersysteme 101 verbunden werden. In diesem Fall können die
Netzwerkcomputer 113 als weitere Eingabe-/Ausgabemittel
benutzt werden, darunter Verwendung als weitere Speicherstellen.
Das Computersystem 103 umfaßt ferner ein erstes Speichermittel 107,
in dem die Datenobjekte des Quellensystems gespeichert werden. Ein
zweites Speichermittel 108 ist das Speichermittel des Zielsystems.
Innerhalb der Begriffe der vorliegenden Beschreibung ist das Quellensystem
in 1 das Computersystem 103 minus dem Speichermittel 107,
und das Zielsystem ist das Computersystem 103 minus dem
Speichermittel 108. Das Ziel- oder das Quellensystem können jedoch
auch ein beliebiger anderer Netzwerkcomputer 114 sein.
-
Falls
die Programmodule 110 durch die CPU 105 verarbeitet
werden, um das erfindungsgemäße Verfahren
auszuführen,
werden jegliche Datenobjekte, die zu den Modulen 110 transferiert
werden, durch diese Module 110 verarbeitet. Die erfindungsgemäße Verarbeitung
umfaßt,
in jedem Modul 110 zu prüfen, ob eine DID verfügbar ist.
In dem Beispiel in 1 ist eine ID "ID3" als DID definiert.
Das Modul 110 prüft dann,
ob sich die DID in dem Zustand I befindet. Dies kann durch Abfragen
in der Tabelle 106 durchgeführt werden. Ein alternatives
Verfahren besteht darin, zu versuchen, eine gemeinsam benutzte Verriegelung an
dieser DID zu setzen. Falls die gemeinsam benutzte Verriegelung
gesetzt wurde, befindet sich die DID im Zustand I. Dann wird die
DID den durch das Modul 110 verarbeiteten Datenobjekten zugewiesen und
die Datenobjekte werden verarbeitet und auf dem Speichermittel 108 gespeichert.
Nach der Übergabe
der Speicherung der der DID zugewiesenen Datenobjekte wird der Zustand
der DID durch Vornehmen eines Eintrags in der Tabelle 106 auf
III gesetzt. Wenn eine gemeinsam benutzte Verriegelung gesetzt wurde,
wird die durch das bestimmte Modul 110 gesetzte gemeinsam
benutzte Verriegelung an der DID gelöscht. Parallel zu diesem Prozeß kann ein Replikationsmodul 109 verarbeitet
werden. Ein solches Modul prüft,
ob eine ID im Zustand III vorliegt. Diese Prüfung kann durch Abfrage in
der Tabelle 106 durchgeführt werden, oder als Alternative,
indem man versucht, eine exklusive Verriegelung an einer oder mehreren
der in der zentralen Verriegelungstabelle 106 enthaltenen
ID zu setzen. Wenn die exklusive Verriegelung an einer der ID gesetzt
wurde, befindet sich die jeweilige ID in dem Zustand III. Dann werden
die dieser ID – ID1
in 1 – zugewiesenen Datenobjekte
zu dem Zielsystem repliziert. Die Datenobjekte können durch den Replikationsprozeß verändert werden
(z. B. komprimiert oder redundanter oder überflüssiger Informationen beraubt).
-
2 zeigt
eine Implementierung von fünf elektronischen
Datenelementen in Form von fünf
Zeilen einer Tabelle 200 mit drei Spalten ID, Zustand und Vorgabe.
Diese Organisation der Tabelle 200 kann als die Struktur
des elektronischen Datenelements interpretiert werden. Die folgenden
Operationen dürfen
an der Tabelle 200 im Prinzip durch unabhängige Prozesse
ausgeführt
werden: Es kann ein neues elektronisches Datenelement im Zustand
I durch einen Prozeß 201 erzeugt
werden, indem eine neue Zeile mit entsprechenden Inhalten der jeweiligen
Felder zu der Tabelle 200 hinzugefügt wird. Ein Prozeß 202 kann
den Zustand von I in II verwandeln. Ein Prozeß 203 kann den Zustand
eines elektronischen Datenelements von II in III verwandeln, wenn
diese Änderung
nicht durch einen oder mehrere Prozesse, wie zum Beispiel dem Prozeß 205,
blockiert wurde. Eine Verwandlung des Zustands von III in II oder
I ist nicht erlaubt. Die blockierte Änderung des Zustands I oder
II kann durch einen Prozeß 206 für den eigenen Block
entblockiert werden. Das Blockieren und Entblockieren kann implementiert
werden, indem man eine gemeinsam benutzte Verriegelung an einem elektronischen
Datenelement setzt und löscht.
Durch einen entsprechenden Eintrag in der Spalte "default?" kann eine spezifische
ID durch einen Prozeß 207 als
Vorgabe-ID definiert werden. Der Prozeß 207 stellt sicher,
daß es
nur eine DID auf einmal gibt. Ein Prozeß 204 kann den Zustand
eines elektronischen Datenelements anfordern und ihn zu einem anderen Prozeß transferieren.
Im Prinzip können
mehrere elektronische Datenelemente in jedem der drei Zustände existieren.
-
Es
wird in diesem Kontext wiederholt, daß das elektronische Datenelement
auch durch drei Tabellen implementiert werden könnte, die nur eine Spalte ID,
Zustand bzw. default? aufweisen, die durch jeweilige Zeilen miteinander
verknüpft
werden, so daß sie
sich als eine Tabelle verhalten. Es ist auch eine entsprechende
Kombination von 2/1 möglich. Zusätzlich kann
die ID zwei oder mehr Felder zweier oder mehrerer Spalten umfassen,
z. B. ein Zahlen- plus ein Datumsfeld plus ein Zeitfeld mit entsprechenden
Alternativen in der Aufteilung.
-
3 zeigt
ein Flußdiagramm
eines Prozesses gemäß den Prinzipien
der Erfindung. In einem Schritt 301 verarbeitet eine Softwareanwendung
(abgekürzt
als "SA") oder ein Programmodul
ein Datenobjekt (abgekürzt
als "DO") in einem Computersystem.
In einem Schritt 302 wird eine ID, die zuvor erzeugt wurde,
aus einer zentralen ID-Tabelle ausgewählt. Im Schritt 303 wird
der Zustand der ID angefordert. Wenn der Zustand nicht gleich I
ist, verzweigt sich der Prozeß im
Schritt 305 zu einem Fehlerprozeß 306, der selbst
zu Schritt 302 zurückgehen
kann. Andernfalls wird die ID im Schritt 307 blockiert.
Dann wird der Zustand der ID im Schritt 308 nochmals angefordert.
Wenn der Zustand I oder II ist, wird die ID im Schritt 311 dem
durch die SA verarbeiteten Datenobjekt zugewiesen. Andernfalls verzweigt
sich der Prozeß zu
einem Fehlerprozeß 310.
Die wiederholte Anforderung des Zustands stellt sicher, daß eine mögliche Änderung
des Zustands der ID, die durch einen unabhängigen, parallel ablaufenden
Prozeß verursacht
werden könnte,
berücksichtigt
wird. In einem solchen Fall wird nicht erlaubt, die gewählte ID dem
Datenobjekt zuzuweisen. Stattdessen muß eine andere ID ausgewählt werden
oder der Prozeß muß beendet
werden.
-
Im
Schritt 312 wird dann das DO gespeichert. Wenn das Speichern
im Schritt 313 übergeben wurde,
wird der im Schritt 307 gesetzte Block an der ID gelöscht. Der
Prozeß 301 endet
dann oder startet mit einem neuen DO.
-
4 zeigt
ein Flußdiagramm
eines Prozesses gemäß den Prinzipien
der Erfindung unter Verwendung von Vorgabe-ID. In einem Schritt 401 verarbeitet
eine Softwareanwendung oder ein Programmodul (abgekürzt als "SA") ein Datenobjekt
in einem Computersystem. In einem Schritt 402 liest die
SA aus einer Tabelle 409 die tatsächliche DID in dem Computersystem.
Die SA versucht dann im Schritt 403, eine gemeinsam benutzte
Verriegelung an der DID zu setzen. Im Schritt 404 wird
geprüft,
ob der Zustand der DID I oder II ist. Wenn nicht, d. h. wenn der Zustand
III ist, kehrt die SA zum Schritt 402 zurück. Diese
Schleife kann eine vordefinierbare Anzahl von Malen durchlaufen
werden und, falls keine Verriegelung gesetzt werden konnte, dann
mit einer Fehlernachricht abgebrochen werden. Das Setzen der gemeinsam
benutzten Verriegelung in 403 und das Prüfen, ob
sie erfolgreich gesetzt wurde, kann vorteilhafterweise als ein "atomischer" Schritt implementiert werden.
Dies heißt,
daß beide
Schritte im wesentlichen zur selben Zeit ausgeführt werden oder anders ausgedrückt die
Zeitlücke
zwischen den beiden Schritten im wesentlichen null beträgt. Wenn
der Zustand I oder II ist, weist die SA im Schritt 405 die
DID dem verar beiteten Datenobjekt zu und speichert das Datenobjekt
im Schritt 406. Nach der Übergabe des Speicherns im Schritt 407 wird
im Schritt 408 die im Schritt 403 gesetzte gemeinsam
benutzte Verriegelung gelöscht.
Im Schritt 407 kann in eine Schleife aufgenommen werden,
dar die SA auf die Übergabe des
Speicherprozesses aus der Systemroutine wartet, die das Datenobjekt
in die Speichereinrichtung schreibt. Wieder kann diese Schleife
eine vordefinierbare Anzahl von Malen durchlaufen werden und dann bei
fehlender Übergabe
mit einer Fehlernachricht abgebrochen werden.
-
Nach
Schritt 408 kann die SA beendet werden, oder es kann im
Schritt 409 ein weiteres Datenobjekt zur Verarbeitung ausgewählt werden.
-
Parallel
zu dieser SA kann eine andere Softwareanwendung 410 eine
weitere ID zu der ID-Tabelle 409 hinzufügen und diese neue ID als die
Vorgabe-ID definieren.
-
5 ist
ein beispielhaftes Flußdiagramm einer
weiteren Implementierung eines Datenverarbeitungsprozesses unter
Verwendung des elektronischen Datenelements zur parallelen Verarbeitung von
mindestens zwei DO. In einem Schritt 501 verarbeitet eine
Softwareanwendung oder ein Programmodul (abgekürzt als "SA")
vier Datenobjekte I bis IV in einem Computersystem. In einem Schritt 502 erzeugt
die SA eine ID als DID und versetzt sie in den Zustand I. In einem
nächsten
Schritt 503 erzeugt die SA 501 vier Subprozesse
I bis IV zur weiteren Verarbeitung der DO I bis IV in einem jeweiligen
Subprozeß.
Die Subprozesse ("SP") I bis IV laufen
unabhängig
voneinander und parallel ab. Der Einfachheit halber wird in dem
folgenden Abschnitt nur der Subprozeß 504 I beschrieben.
SP I setzt in einem Schritt 505 I eine gemeinsam benutzte
Verriegelung an der DID. Dies verhindert, dar die DID in den Zustand
III versetzt wird. Wenn die gemeinsam benutzte Verriegelung gesetzt
wurde, wird eine entsprechende Nachricht zu der SA ge sendet. Das
DO wird dann im Schritt 506 I verarbeitet, die DID wird
im Schritt 507 I dem DO zugewiesen, das DO wird im Schritt 508 I gespeichert,
und nach der Übergabe
des Speicherprozesses wird die durch SP I gesetzte Verriegelung an
der DID gelöscht.
Das SP endet dann im Schritt 510 I. Der Hauptprozeß SA 501 wartet
in der Schleife 511, 512, bis alle Subprozesse
die jeweiligen gemeinsam benutzten Verriegelungen erfolgreich gesetzt
haben. Wenn diese Bedingung erfüllt
ist, verwandelt die SA im Schritt 513 den Zustand der DID von
I in II. Dies heißt,
daß von
dieser Zeit an kein anderer Prozeß auf die DID zugreifen kann,
d. h. kein anderer Prozeß kann
benutzen. Die Zuweisung der DID durch Prozesse, die bereits auf
die DID zugegriffen haben, d. h. SP I bis IV, wird jedoch nicht
eingeschränkt.
Die SA endet dann im Schritt 514.
-
6 zeigt
ein Beispiel für
ein Flußdiagramm
für einen
Prozeß,
der das elektronische Datenelement zur Replikation von Datenobjekten
verwendet. Ein Replikationsprozeß 601 wählt eine
ID im Schritt 602 aus einer ID-Tabelle aus. Im Schritt 603 wird
geprüft,
ob sich die gewählte
ID im Zustand III befindet. Wenn ja, werden alle gespeicherten Datenobjekte,
denen diese ID zugewiesen ist, von ihrem Quellensystem im Schritt 604 zu
einem Zielsystem repliziert. Wenn nicht, verzweigt sich der Replikationsprozeß zu einer
Fehlerroutine 606, die eine Fehlernachricht erzeugen kann
und die zum Schritt 602 oder zum Ende des Prozesses zurückkehrt.
Wenn alle Datenobjekte repliziert worden sind, prüft der Prozeß im Schritt 605,
ob Datenobjekte einer anderen ID zu replizieren sind. Wenn ja, verzweigt
er sich zum Schritt 602, andernfalls endet er im Schritt 607.
-
7 zeigt
ein weiteres Beispiel für
ein Flußdiagramm
für einen
Prozeß,
der das elektronische Datenelement zum Replizieren von Datenobjekten verwendet.
In dem Prozeß von 7 beginnt
eine Softwareanwendung (SA) 701, die parallel zu Prozessen
zum Verarbeiten von Datenobjekten ablaufen kann, in einem Zustand,
in dem eine ID (der Ausdruck "elektronisches
Datenelement" und "ID" werden synonym verwendet) "alt" sich in einem Zustand I
befindet und gemäß Tabelle 702 als
Vorgabe-ID definiert ist, um eines oder mehrere Datenobjekte zu
replizieren. Tabelle 702 umfaßt drei Spalten. Die erste enthält in ihrem
Feld Informationen über
die ID, d. h. die ID, die zweite über den Zustand, d. h. "I" oder "II" oder "III", die dritte über die
Vorgabeeigenschaft, d. h. "ja" oder "nein". In 702a enthält die Tabelle
ein elektronisches Datenelement: bestehend aus den Feldern der Tabelle
mit dem Inhalt "alt", "I", "ja". SA erzeugt im Schritt 703 eine
neue ID "neu" und setzt sie auf
den Zustand I, Tabelle 702b. Im Schritt 704 wird die
neue ID als Vorgabe definiert, was bedeutet, daß "ja" in
das entsprechende Feld der Spalte default? eingegeben wird. Gleichzeitig
wird die alte ID als Nicht-Vorgabe umdefiniert, indem "nein" in das entsprechende
default?-Feld eingegeben wird, 702c. Im Schritt 705 wird
der Zustand der alten ID von I in II verwandelt.
-
Das
Flußdiagramm
von 7a zeigt ein weiteres Beispiel für einen
Replikationsprozeß:
Eine
Replikationsanwendung 7a01 liest im Schritt 7a02 eine
ID, die nicht gleich der DID ist, aus einer ID-Tabelle in dem Computersystem und versucht,
im Schritt 7a03 eine exklusive Verriegelung an der ID zu setzen.
Die Anwendung prüft
dann im Schritt 7a05, ob die exklusive Verriegelung gesetzt
werden konnte. Im Fall nein kehrt die Anwendung nach Warten für eine vordefinierbare
Zeit im Schritt 7a04 zum Schritt 7a03 zurück. Die
Schleife kann nach einer vordefinierbaren Anzahl von erfolglosen
Versuchen abgebrochen werden. Im Fall ja des Schritts 7a05 repliziert
die Anwendung im Schritt 7a06 die Datenobjekte, denen die
ID zugewiesen ist, von ihrem Quellensystem zu einem Zielsystem.
Danach kann die Replikationsanwendung beendet oder eine andere ID ausgewählt werden
(Schritt 7a07).
-
8 zeigt
eine Darstellung der chronologischen Sequenz von Schritten gemäß dem erfindungsgemäßen Verfahren,
wie mit Bezug auf 2 beschrieben, das durch mehrere
unabhängige
Prozesse ausgeführt
wird. Sechs Softwareanwendungen 801 bis 806 bearbeiten
eines oder mehrere verschiedene Datenobjekte (abgekürzt "DO"). Zum Zeitpunkt
des Startens der Prozesse 801 bis 804 ist ID2 die
Vorgabe-ID. Vom Zeitpunkt t1 an ist die neue ID ID3 die Vorgabe-ID,
und der Zustand der ID2 wird von I in II verwandelt. Von nun an
kann kein Prozeß auf
ID2 zugreifen und sie dazu verwenden, sie dem DO zuzuweisen. Das
Prüfen,
ob sich die ID im Zustand I oder II befindet, kann durch Abfragen
des jeweiligen Zustandsfelds des elektronischen Datenelements implementiert
werden, wenn dies wie oben beschrieben als eine Zeile implementiert
ist. Die Änderung
des Zustands kann durch einen unabhängigen Prozeß durchgeführt werden,
der in der Figur nicht gezeigt ist. Jeder der Prozesse liest die
tatsächliche DID
(vgl. 4). Zum Zeitpunkt t2(p), der von dem Prozeß abhängt, blockiert
ein Prozeß 801 bis 806 eine Änderung
des Zustands von I, II in III der tatsächlichen gebildeten DID durch
Setzen einer gemeinsam benutzten Verriegelung (abgekürzt "SL") an der tatsächlichen
gültigen
DID, die für
die Prozesse 801 bis 803 ID2 und für die Prozesse 804 bis 806 ID3 ist.
Nach dem Setzen der SL weisen die Prozesse 801 bis 806 die
jeweilige DID, an der sie die SL gesetzt haben, den Datenobjekten
zu und speichern die Datenobjekte zu dem Quellensystem. Folglich
weist Prozeß 803 ID2
immer noch seinem DO zu, obwohl ID2 zum Zeitpunkt der Zuweisung
nicht die tatsächliche
gültige
DID ist. Die Verarbeitung des DO und das Speichern nimmt abhängig von
dem DO und dem Prozeß einen
gewissen Zeitraum in Anspruch. Diese Zeit endet zum Zeitpunkt t3(p),
zu dem die Übergabe der
Speicherroutine erhalten wird. Nach dieser Quittung löschen die
Prozesse 801 bis 806 die jeweilige SL.
-
Von
der Zeit an, zu der die Löschung
der letzten SL an ID2 übergeben
wurde (Prozeß 802),
kann der Zustand von ID2 auf III gesetzt werden. Ob dies möglich ist,
kann geprüft
werden, indem man versucht, eine exklusive Verriegelung an der ID
zu setzen. Wenn eine exklusive Verriegelung erfolgreich gesetzt
werden kann, kann der Zustand in III verwandelt werden. Von nun
an kann das DO, dem diese ID zugewiesen ist, repliziert werden.
-
Bei
weiteren Ausführungsformen
des erfindungsgemäßen Verfahrens
kann eine Kombination der Prozesse gemäß 3 und 6, 4 bzw. 7/7a installiert
und parallel auf einem Computersystem ausgeführt werden.
-
Die
Verwendung des erfindungsgemäßen Verfahrens
und elektronischen Datenelements, so wie sie in den vorausgehenden
Abschnitten beschrieben wurde, stellt sicher, daß kein Datenobjekt durch replizierende
Anwendungen übersehen
werden kann.
-
Obwohl
hier Ausführungsbeispiele
der Erfindung beschrieben wurden, ist die vorliegende Erfindung
nicht auf die verschiedenen hier beschriebenen bevorzugten Ausführungsformen
beschränkt,
sondern umfaßt
beliebige und alle Ausführungsformen mit äquivalenten
Elementen, Modifikationen, Auslassungen, Kombinationen (z. B. von
Aspekten über
verschiedene Ausführungsformen
hinweg), Anpassungen und/oder Abänderungen,
die Fachleuten auf der Basis der vorliegenden Offenbarung erkennbar
wären.
Die Beschränkungen
in den Ansprüchen
sollen allgemein auf der Basis der in den Ansprüchen verwendeten Sprache interpretiert
werden, und nicht auf Beispiele begrenzt, die in der vorliegenden
Beschreibung oder während
der Verfolgung der Anmeldung beschrieben wurden, wobei diese Beispiele
als nicht ausschließend
aufzufassen sind. Zum Beispiel ist in der vorliegenden Offenbarung
der Begriff "vorzugsweise" nicht ausschließend und
bedeutet "vorzugsweise,
aber nicht begrenzt auf".
Begrenzungen des Typs Mittel plus Funktion oder Schritt plus Funktion werden
nur verwendet, wenn für
eine spezifische Anspruchsbeschränkung
alle folgenden Bedingungen in dieser Beschränkung vorliegen: a) "Mittel zum" oder "Schritt zum" wird ausdrücklich angeführt; b)
eine entsprechende Funktion wird ausdrücklich angeführt; und
c) Struktur, Material oder Handlungen, die diese Struktur unterstützen, sind
nicht angeführt.
-
Um
Interaktion mit einem Benutzer zu gewährleisten, kann die Erfindung
auf einem Computersystem implementiert werden, das eine Anzeigeeinrichtung,
wie etwa einen Monitor des Typs CRT (Kathodenstrahlröhre) oder
LCD (Flüssigkristallanzeige) zum
Anzeigen von Informationen für
den Benutzer und eine Tastatur und eine Zeigeeinrichtung, wie zum Beispiel
eine Maus oder einen Trackball, wodurch der Benutzer Eingaben in
den Computer vornehmen kann, aufweist. Es können auch andere Arten von Einrichtungen
benutzt werden, um Interaktion mit einem Benutzer bereitzustellen;
zum Beispiel kann dem Benutzer gegebene Rückmeldung eine beliebige Form
von Sinnes-Rückmeldung
sein, wie zum Beispiel visuelle Rückmeldung, hörbare Rückmeldung
oder haptische Rückmeldung;
und Eingaben von Benutzer können
in beliebiger Form empfangen werden, einschließlich akustischer, Sprach-
oder haptischer Eingabe.
-
Für die Ausführung eines
Computerprogramms geeignete Prozessoren wären beispielsweise sowohl allgemeine
als auch spezielle Mikroprozessoren und beliebige einzelne oder
mehrere Prozessoren einer beliebigen Art von digitalem Computer.
Im allgemeinen erhält
ein Prozessor Anweisungen und Daten von einem Nur-Lese-Speicher
oder einem Direktzugriffsspeicher oder beiden. Die wesentlichen
Elemente eines Computers sind ein Prozessor zum Ausführen von
Anweisungen und eine oder mehrere Speichereinrichtungen zum Speichern von
Anweisungen und Daten. Im allgemeinen enthält ein Computer außerdem folgendes
oder ist operativ zum Empfangen von Daten oder zum Transferieren von
Daten oder beidem damit gekoppelt: eine oder mehrere Massenspeichereinrichtungen
(Speichermittel) zum Speichern von Daten, z. B. magnetische, magnetooptische
Datenträger
oder optische Datenträger.
Für das
realisieren von Computerprogrammanweisungen und Daten geeignete
Informationsträger
wären alle
Formen von nichtflüchtigem
Speicher, darunter beispielsweise Halbleiter-Speichereinrichtungen,
wie etwa EPROM, EEPROM und Flash-Speichereinrichtungen; magnetische
Datenträger
wie etwa interne Festplatten und wechselbare Datenträger; magnetooptische
Datenträger;
und CD-ROM- und DVD-ROM-Datenträger. Der
Prozessor und der Speicher können
durch ASICs (anwendungsspezifische integrierte Schaltungen) ergänzt oder
in diese integriert werden.
-
Computerprogramme
auf der Basis der geschriebenen Beschreibung und Flußdiagramme
der vorliegenden Erfindung liegen innerhalb der Fähigkeiten
eines erfahrenen Entwicklers. Die verschiedenen Programme oder Programmodule
können
unter Verwendung beliebiger der Fachleuten bekannten Techniken erzeugt
oder in Verbindung mit existierender Software entworfen werden.
Zum Beispiel kann man Programme oder Programmodule in oder mittels Java,
C++, HTML, XML oder HTML mit enthaltenem Java-Applets oder in SAP R/3 oder ABAP entwerfen. Eines
oder mehrere solche Module können
in existierende E-Mail- oder
Browser-Software integriert werden.
-
Fachleuten
werden anhand der hier offenbarten Beschreibung und Ausübung der
Erfindung Modifikationen und Anpassungen der vorliegenden Erfindung
einfallen. Die obige Beschreibung einer Implementierung der Erfindung
wurde zur Veranschaulichung und Beschreibung vorgestellt. Sie ist nicht
erschöpfend
und soll die Erfindung nicht auf die genaue offenbarte Form beschränken. Im
Hinblick auf die obigen Lehren sind Modifikationen und Varianten
möglich
oder können
durch Ausübung
der Erfindung erlangt werden. Zum Beispiel umfaßt die beschriebene Implementierung
Software, Systeme und Ver fahren, die mit der vorliegenden Erfindung
vereinbar sind, können
jedoch als Kombination von Software und Hardware oder in Hardware
alleine implementiert werden. Obwohl Aspekte der vorliegenden Erfindung
zur Speicherung im Speicher beschrieben werden, ist für Fachleute
zusätzlich
erkennbar, daß diese Aspekte
auch auf anderen Arten von computerlesbaren Medien gespeichert werden
können,
wie zum Beispiel sekundäre
Speichereinrichtungen, wie etwa Festplatten, Disketten oder CD-ROM;
dem Internet oder einem anderen Ausbreitungsmedium; oder in anderen
Formen von RAM oder ROM. Es ist beabsichtigt, daß die Beschreibung und Beispiele
lediglich als beispielhaft betrachtet werden, wobei der wahre Schutzumfang
der Erfindung durch die folgenden Ansprüche angegeben wird.