DE60315030T2 - Vermeiden von datenverlusten beim aktualisieren eines data warehouse - Google Patents

Vermeiden von datenverlusten beim aktualisieren eines data warehouse Download PDF

Info

Publication number
DE60315030T2
DE60315030T2 DE60315030T DE60315030T DE60315030T2 DE 60315030 T2 DE60315030 T2 DE 60315030T2 DE 60315030 T DE60315030 T DE 60315030T DE 60315030 T DE60315030 T DE 60315030T DE 60315030 T2 DE60315030 T2 DE 60315030T2
Authority
DE
Germany
Prior art keywords
state
data
data element
electronic data
electronic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60315030T
Other languages
English (en)
Other versions
DE60315030D1 (de
Inventor
Michael Conrad
Dirk Henrich
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAP SE
Original Assignee
SAP SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SAP SE filed Critical SAP SE
Application granted granted Critical
Publication of DE60315030D1 publication Critical patent/DE60315030D1/de
Publication of DE60315030T2 publication Critical patent/DE60315030T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Checking Fares Or Tickets At Control Points (AREA)
  • Debugging And Monitoring (AREA)

Description

  • 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. 16th 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.

Claims (30)

  1. Computerimplementiertes Verfahren zum Verarbeiten eines oder mehrerer Datenobjekte in einem Quellencomputersystem (108) und zum Replizieren des einen oder der mehreren Datenobjekte zu einem Zielcomputersystem (107), umfassend Online-Transaktionsprozesse (110), die Operationen des Abänderns, Löschens, Änderns oder Einfügens an dem einen oder den mehreren Datenobjekten ausführen, und Replikationsprozesse (109), die die so operierten einen oder mehreren Datenobjekte replizieren, gekennzeichnet durch – Verwenden eines oder mehrerer Datenelemente (106, 200), 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 (110) auf ein Datenelement (106, 200) zugreifen können und in dem dieses Datenelement (106, 200) einem oder mehreren der Datenobjekte zuweisbar ist, einen zweiten Zustand, in dem die Online-Transaktionsprozesse (110) nicht auf ein Datenelement (106, 200) zugreifen können, es aber immer noch durch den einen oder die mehreren Online-Transaktionsprozesse (110), die bereits zu einem Zeitpunkt, zu dem es sich in dem ersten Zustand befand, auf das Datenelement (106, 200) zugegriffen haben, einem oder mehreren Datenobjekten zuweisbar ist und einen dritten Zustand, in dem die Online-Transaktionsprozesse (110) nicht auf ein Datenelement (106, 200) zugreifen können und es nicht dem einen oder den mehreren Datenobjekten zuweisbar ist, wobei eines der einen oder mehreren Datenelemente (106, 200) als ein Vorgabe-Datenelement (207) definierbar ist, – Definieren eines Datenelements (106, 200) als das Vorgabe-Datenelement und – a) Versetzen des Vorgabe-Datenelements in den ersten Zustand (207), – Durchführen der Operationen des Abänderns, Löschens, Änderns oder Einfügens an dem einen oder den mehreren Datenobjekten mittels der Online-Transaktionsprozesse (110), – b) Prüfen eines oder mehrerer der Datenelemente (106, 200), ob ein Vorgabe-Datenelement zugänglich ist, und wenn ja, Zuweisen dieses Datenelements (106, 200) zu dem einen oder den mehreren Datenobjekten mittels der Online-Transaktionsprozesse (110), – Speichern des einen oder der mehreren Datenobjekte, denen dieses Datenelement zugewiesen ist, auf dem Quellencomputersystem (108) mittels der Online-Transaktionsprozesse (110), – c) nach der Übergabe der Speicherprozesse aller Datenobjekte, denen dieses Datenelement zugewiesen ist (106, 200), Verwandeln des Zustands des Datenelements in den dritten Zustand, – Replizieren derjenigen (109) Datenobjekte zu dem Zielcomputersystem (107), denen ein Datenelement (106, 200) des dritten Zustands zugewiesen ist, mittels der Replikationsprozesse und – Verwandeln des Zustands des Datenelements (106, 200) von dem ersten Zustand in den zweiten Zustand, wenn ein anderes Datenelement (106, 200) als das Vorgabe-Datenelement definiert ist.
  2. Verfahren nach Anspruch 1, ferner umfassend: abhängig oder unabhängig von den Schritten a) bis c), d) Erzeugen eines weiteren elektronischen Datenelements (106, 200) und Versetzen dieses in den ersten Zustand.
  3. Verfahren nach Anspruch 2, ferner umfassend: e) Definieren des weiteren elektronischen Datenelements (106, 200) als das Vorgabeelement und Verwandeln des Zustands des vorherigen elektronischen Datenelements, das als ein Vorgabeelement definiert wurde, in den zweiten Zustand.
  4. Verfahren nach einem oder mehreren der Ansprüche 1 bis 3, ferner umfassend: im Schritt b): Setzen eines Blocks mit einer Referenz auf den Prozeß, der den Block setzt, an dem elektronischen Datenelement (106, 200), 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.
  5. Verfahren nach Anspruch 4, ferner umfassend für einen Prozeß, der einen Block gesetzt hat: 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 das Speichern übergeben ist.
  6. Verfahren nach einem oder mehreren der Ansprüche 1 bis 5, ferner umfassend: irreversibles Blockieren der Änderung des Zustands des elektronischen Datenelements (106, 200), wenn der Zustand der dritte Zustand ist.
  7. Verfahren nach einem der Ansprüche 4 bis 6, wobei das Blockieren durch Setzen einer gemeinsam benutzten Verriegelung an dem ausgewählten elektronischen Datenelement implementiert wird.
  8. Verfahren nach Anspruch 7, wobei das elektronische Datenelement (106, 200) als eine erste Tabelle mit einem oder mehreren ersten Feldern, die eine Kennung enthalten, implementiert wird und wobei die gemeinsam benutzte Verriegelung an einem oder mehreren der ersten Felder gesetzt wird.
  9. Verfahren nach Anspruch 8, wobei die erste Tabelle ein zweites Feld aufweist, das Zustandsinformationen enthält.
  10. Verfahren nach Anspruch 8, wobei eine zweite Tabelle mit einem Feld, das die Zustandsinformationen enthält, mit der ersten Tabelle verknüpft ist.
  11. Verfahren nach einem der Ansprüche 4 bis 10, wobei das Blockieren im Schritt b) implementiert wird, indem vor der Zuweisung des elektronischen Datenelements zu diesem Datenobjekt eine gemeinsam benutzte Verriegelung an dem elektronischen Datenelement gesetzt wird.
  12. Verfahren nach einem der Ansprüche 5 bis 11, wobei die Endblockierung im Schritt b) implementiert wird, indem die gemeinsam benutzte Verriegelung gelöscht wird, sobald das Speichern übergeben ist.
  13. Verfahren nach einem der Ansprüche 5 bis 12, ferner umfassend: vor Schritt c) 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).
  14. Verfahren nach Anspruch 13, ferner umfassend: g) falls Schritt c) erfolglos geblieben ist, Warten für eine vordefinierbare Zeit und Zurückkehren zu f).
  15. Verfahren nach Anspruch 14, ferner umfassend: Wiederholen von Schritt g) eine vorwählbare Anzahl von Malen.
  16. Verfahren nach einem der Ansprüche 13 bis 15, wobei das Prüfen implementiert wird, indem versucht wird, eine exklusive Verriegelung an dem elektronischen Datenelement zu setzen, und falls die exklusive Verriegelung gesetzt wurde, Zurückgegeben, daß keine gemeinsam benutzte Verriegelung an dem elektronischen Datenelement gesetzt ist.
  17. Verfahren nach einem oder mehreren der Ansprüche 1 bis 16, ferner umfassend: die Schritte a und/oder b und/oder c) werden unabhängig durch unabhängige Prozesse ausgeführt.
  18. Verfahren nach einem oder mehreren der Ansprüche 1 bis 17, ferner umfassend: 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 b) für jedes Datenobjekt in dem entsprechenden Subprozeß, j) in dem Prozeß, der den Subprozeß 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.
  19. Verfahren nach einem oder mehreren der Ansprüche 1 bis 18, wobei das elektronische Datenelement eine GUID oder einen Zeitstempel umfaßt.
  20. Verfahren nach einem oder mehreren der Ansprüche 1 bis 19, wobei die elektronischen Datenelemente in dem dritten Zustand aufeinanderfolgend numeriert werden.
  21. Verfahren nach einem oder mehreren der Ansprüche 7 bis 20, wobei die gemeinsam benutzten Verriegelungen logische Leseverriegelungen sind.
  22. Verfahren nach einem der Ansprüche 1 bis 21 zur Verwendung in einer Software für Unternehmensressourcenplanung.
  23. Verfahren nach einem der Ansprüche 1 bis 7, wobei das elektronische 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.
  24. Verfahren nach einem der Ansprüche 1 bis 7, wobei das elektronische Datenelement als eines oder mehrere erste Felder in einer ersten Tabelle und ein zweites Feld in 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.
  25. Verfahren nach einem der Ansprüche 1 bis 7, wobei das elektronische Datenelement bei objektorientierter Programmierung als Instanz einer Klasse implementiert wird.
  26. Verfahren nach einem der Ansprüche 1 bis 25, wobei eine Verwandlung des Zustands des elektronischen Datenelements von dem dritten Zustand in den zweiten oder ersten Zustand verboten ist.
  27. Codemittel umfassendes Computersystem, das dafür ausgelegt ist, jeden der Schritte der Verfahren nach einem oder mehreren der Ansprüche 1 bis 26 auszuführen.
  28. Codemittel umfassendes Computersystem, das dafür ausgelegt ist, jeden der Schritte der Verfahren nach einem oder mehreren der Ansprüche 1 bis 26 auszuführen, wenn das Programm auf einem Computersystem ausgeführt wird.
  29. Computerprogramm nach Anspruch 28, das auf einem computerlesbaren Medium realisiert ist.
  30. Computerprogramm nach Anspruch 28, das als ein Computerdatensignal realisiert ist.
DE60315030T 2002-11-27 2003-11-24 Vermeiden von datenverlusten beim aktualisieren eines data warehouse Expired - Lifetime DE60315030T2 (de)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US42937202P 2002-11-27 2002-11-27
US42937402P 2002-11-27 2002-11-27
US42937302P 2002-11-27 2002-11-27
US42937102P 2002-11-27 2002-11-27
US429374P 2002-11-27
US429371P 2002-11-27
US429373P 2002-11-27
PCT/EP2003/013158 WO2004049202A1 (en) 2002-11-27 2003-11-24 Avoiding data loss when refreshing a data warehouse
US429372P 2011-01-03

Publications (2)

Publication Number Publication Date
DE60315030D1 DE60315030D1 (de) 2007-08-30
DE60315030T2 true DE60315030T2 (de) 2008-04-03

Family

ID=32398270

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60315030T Expired - Lifetime DE60315030T2 (de) 2002-11-27 2003-11-24 Vermeiden von datenverlusten beim aktualisieren eines data warehouse

Country Status (7)

Country Link
EP (4) EP1522032B1 (de)
JP (5) JP4414892B2 (de)
AT (1) ATE367612T1 (de)
AU (4) AU2003302184B2 (de)
CA (4) CA2505275C (de)
DE (1) DE60315030T2 (de)
WO (4) WO2004049202A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW383508B (en) 1996-07-29 2000-03-01 Nichia Kagaku Kogyo Kk Light emitting device and display
EP1811404A1 (de) * 2006-01-20 2007-07-25 Ubs Ag Technik zum Beliefern eines Data Warehouse unter Gewährleistung einer konsistenten Datensicht
US8676772B2 (en) 2011-12-09 2014-03-18 Telduráðgevin Sp/f Systems and methods for improving database performance

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261069A (en) * 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
US6032158A (en) * 1997-05-02 2000-02-29 Informatica Corporation Apparatus and method for capturing and propagating changes from an operational database to data marts
US6029178A (en) * 1998-03-18 2000-02-22 Bmc Software Enterprise data movement system and method which maintains and compares edition levels for consistency of replicated data
US6205449B1 (en) * 1998-03-20 2001-03-20 Lucent Technologies, Inc. System and method for providing hot spare redundancy and recovery for a very large database management system

Also Published As

Publication number Publication date
AU2003302184B2 (en) 2008-07-17
JP5043913B2 (ja) 2012-10-10
CA2476603C (en) 2009-05-19
WO2004049155A3 (en) 2004-08-19
CA2505276C (en) 2009-01-27
AU2003302184A1 (en) 2004-06-18
EP1522032A1 (de) 2005-04-13
JP2010061674A (ja) 2010-03-18
AU2003288151A1 (en) 2004-06-18
JP4414893B2 (ja) 2010-02-10
AU2003292085A1 (en) 2004-06-18
JP4414890B2 (ja) 2010-02-10
CA2505270C (en) 2011-04-26
JP2006508439A (ja) 2006-03-09
JP4414892B2 (ja) 2010-02-10
WO2004049202A1 (en) 2004-06-10
CA2505276A1 (en) 2004-06-10
EP1567947A1 (de) 2005-08-31
CA2505275C (en) 2009-06-16
JP2006508440A (ja) 2006-03-09
EP1567957A2 (de) 2005-08-31
AU2003292085B2 (en) 2008-01-10
JP2006508442A (ja) 2006-03-09
AU2003293716A1 (en) 2004-06-18
CA2505270A1 (en) 2004-06-10
ATE367612T1 (de) 2007-08-15
EP1567952A1 (de) 2005-08-31
JP2006508441A (ja) 2006-03-09
AU2003293716B2 (en) 2008-07-31
EP1522032B1 (de) 2007-07-18
JP4414891B2 (ja) 2010-02-10
CA2476603A1 (en) 2004-06-10
WO2004049203A1 (en) 2004-06-10
WO2004049155A2 (en) 2004-06-10
WO2004049201A1 (en) 2004-06-10
DE60315030D1 (de) 2007-08-30
CA2505275A1 (en) 2004-06-10
AU2003288151B2 (en) 2007-11-08

Similar Documents

Publication Publication Date Title
DE4216871C2 (de) Ausführungsordnen zum Sicherstellen der Serialisierbarkeit verteilter Transaktionen
DE60306674T2 (de) Verfahren und systeme zur regelung des zugriffs auf ein datenobjekt mittels sperren
EP1088280B1 (de) Verfahren und system zur schnellen speicherresidenten verarbeitung von transaktionsdaten
DE60130475T2 (de) Durchführung von kalkulationen eines tabellenkalkulationstyps in einem datenbanksystem
DE19926115B4 (de) Transaktionshandhabung in einer Konfigurationsdatenbank
DE69736748T2 (de) Editierumgebung für objektmodelle und verfahren zu deren anwendung
DE69910219T2 (de) Transformation der perspektive auf tabellen von relationalen datenbanken
DE60121231T2 (de) Datenverarbeitungsverfahren
DE4420451C2 (de) Sperrmechanismus für ein CHECK-IN/CHECK-OUT-Modell
DE4497149B4 (de) Computerbezogenes Verfahren zur Datenreplikation in Peer-to-Peer-Umgebung
DE69533193T2 (de) Paralleles verarbeitungssystem zum durchlaufen einer datenbank
DE112017005638T5 (de) Systeme und Verfahren zur Bestimmung der Beziehung zwischen Datenelementen
DE19926116A1 (de) Mehr-Teilprozeß-Protokollierung in einer Konfigurationsdatenbank
DE10040987B4 (de) Verfahren und Vorrichtung für übereinstimmende Aktualisierungen von redundanten Daten in relationalen Datenbanken
DE602005002062T2 (de) Optimierung der Sperrgranularität mittels Bereichssperren
DE10003015A1 (de) Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen
DE10039537A1 (de) Verbesserung der mehrdimensionalen Umstrukturierung beim Hinzufügen oder Entfernen von Dimensionen und Dimensionsmitgliedern
DE102016216843A1 (de) Verteiltes Zusammenführen von Dateien
DE112017006106T5 (de) Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
DE10031351A1 (de) Verfahren zur automatischen Recherche
WO2002021327A2 (de) Verfahren und computerprogramm zur erzeugung von dateien für ein datenbanksystem für ein betriebswirtschaftliches anwendungsprogramm
DE102012100113A1 (de) Verfahren, Software und Computersystem zur Handhabung von angesammelten Daten
DE10056763A1 (de) Generieren von Einschränkungsabfragen mit Hilfe von Tensordarstellungen
DE112021003031T5 (de) Archivieren von nur-beschleuniger-datenbanktabellen
EP1798673A1 (de) Computer-implementiertes System zur Erzeugung, Bearbeitung und Verwaltung von strukturierten Datensätzen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition