DE60022767T2 - Mehrpunkten dateibank synchronisierungsprotokoll um datenverfalschung zu vermeiden. - Google Patents

Mehrpunkten dateibank synchronisierungsprotokoll um datenverfalschung zu vermeiden. Download PDF

Info

Publication number
DE60022767T2
DE60022767T2 DE60022767T DE60022767T DE60022767T2 DE 60022767 T2 DE60022767 T2 DE 60022767T2 DE 60022767 T DE60022767 T DE 60022767T DE 60022767 T DE60022767 T DE 60022767T DE 60022767 T2 DE60022767 T2 DE 60022767T2
Authority
DE
Germany
Prior art keywords
client
database
record
manager
modifications
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
DE60022767T
Other languages
English (en)
Other versions
DE60022767D1 (de
Inventor
Lars Novak
Jörgen BIRKLER
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of DE60022767D1 publication Critical patent/DE60022767D1/de
Publication of DE60022767T2 publication Critical patent/DE60022767T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • 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/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)
  • Telephonic Communication Services (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Diese Erfindung betrifft allgemein Computeranwendungen, auf die gleichzeitig durch viele Clients zugegriffen wird. Insbesondere bezieht sich die vorliegende Erfindung auf ein Verfahren und ein System, was vielen Clients erlaubt, gleichzeitig auf eine Datenbank zuzugreifen und sie zu editieren.
  • Stand der Technik
  • Eine Datenbank ist eine logisch strukturierte Sammlung von Daten, organisiert für einen Zugriff durch einen menschlichen Benutzer, eine Softwareanwendung oder eine maschinenbasierte logische Funktion und dafür von Nutzen zu sein. Eine Datenbank wird allgemein in der Form eines Computerprogramms oder einer Softwareanwendung verkörpert, die sich innerhalb einer Speichereinrichtung befindet, kann aber auch einfach eine Menge von Regeln zum Organisieren von und Zugreifen auf Daten auf eine nützliche Art und Weise sein. Ein Datenbanksystem inkludiert einen Computer zum Speichern und Manipulieren der Datenbank, Eingabe-/Ausgabe- (E/A) Einrichtungen zum Eingeben von Daten und Anzeigen, oder anderweitig Ausgeben, der Ergebnisse, und Kommunikations- oder Netzverknüpfungen, um die verschiedenen Teile des Datenbanksystems miteinander zu verbinden. Das Datenbanksystem kann man sich als das physische System (z.B. Computerendgeräte, Datenverknüpfungen, E/A-Einrichtungen, Speicher etc.) vorstellen, während die Datenbank selbst die Information darstellt, die zu speichern und manipulieren ist. In der Praxis werden jedoch der Begriff Datenbank und der Begriff Datenbanksystem häufig austauschbar verwendet.
  • Ein Datenbanksystem mit einer Datenbank ermöglicht, dass Daten zweckdienlich gespeichert, abgefragt, manipuliert, mathematisch transformiert, kopiert oder verknüpft mit Daten innerhalb der gleichen Datenbank oder unterschiedlicher Datenbanken oder Dateien werden. Dies wird durch Speichern von Datenindizes und/oder Verweisinformation zusammen mit den Daten einer Datenbank erreicht. Datenbanken werden typischerweise in permanenten oder semi-permanenten Speichersystemen, die häufig nicht-flüchtiger Speicher genannt werden, gespeichert, was Datenspeicherung ohne eine nicht-unterbrochene Zuführung von Energie ermöglicht. Im Gegensatz dazu müssen Daten in einem flüchtigen Speicher eine kontinuierlich nicht-unterbrochene Zuführung von Energie aufweisen, um Verlust von Daten zu vermeiden. US-Patent Nr. 5,745,905, erteilt für Larsson et al, welches Datenbankspeicherung in einem Speicher betrifft, ist hierin durch Verweis in seiner Gesamtheit einbezogen.
  • Ein Datenbanksystem kann für eine Verwendung durch viele Benutzer konfiguriert sein. Z.B. kann es ein Einzelhandelsgeschäft nützlich finden, eine Inventardatenbank zu unterhalten, die mit den Registrierkassen, dem Lager und der Buchhaltung verknüpft ist. Eine Inventardatenbank dieser Konfiguration kann ermöglichen, dass verschiedene Aktivitäten innerhalb des Geschäfts gleichzeitig aktualisiert werden. Z.B. kann beim Auftreten eines Verkaufs die Registrierkasse, die die Verkäufe aufzeichnet, die Einzelhandelsinventardatenbank aktualisieren, um die Tatsache widerzuspiegeln, dass der Warenbestand in dem Geschäft um den Verkauf reduziert wurde. Wenn die Datenbank anzeigt, dass der Warenbestand in dem Geschäft unter ein gewisses Niveau abgefallen ist, wird das La ger, das auch mit der Datenbank verknüpft ist, aufgefordert, mehr Ware zu dem Geschäft zu liefern. Des weiteren kann auch die Buchhaltung mit der Datenbank verknüpft sein, um ihren Bargeldumlauf und Steuerschuldinformation basierend auf der Information der Datenbank zu aktualisieren. Entsprechend kann die Datenbank durch entweder die Registrierkasse, auf Durchführung eines Verkaufs hin, das Lager, auf Empfang/Transfer von Gütern hin, oder die Buchhaltung, auf das Auftreten einer Transaktion hin, aktualisiert werden.
  • Die Benutzer eines Datenbanksystems werden häufig als Clients bezeichnet. Ein Datenbank-Client kann ein menschlicher Benutzer sein, der Datenbankdaten über eine Computertastatur, einen digitalen Stift, einen Barcode-Lesestift, ein Spracherkennungssystem oder dergleichen einträgt oder modifiziert. Ein Datenbank-Client kann auch ein Sensor, Zähler, Detektor, Überwachungseinrichtung, Computerprogramm oder Logik oder ein anderes ähnliches System sein, was zum Generieren oder Modifizieren von Datenbankdaten fähig ist.
  • Ein Datenbankmanager führt Datenoperationen durch, wie etwa Transformieren des Wertes der Daten, und Manipulieren der Daten durch Kopieren, Verschieben, Verknüpfen oder anderweitiges Ändern des Zustands der Daten. Eine andere wichtige Funktion des Datenbankmanagers ist die Steuerung vom Zugriff zu der Datenbank. D.h. der Datenbankmanager steuert den Client-Zugriff zu Daten innerhalb einer Datenbank, inkludierend Steuerung vom gleichzeitigen Client-Zugriff auf Daten in einer Mehrbenutzer-Datenbank. Ein Datenbankmanager ist typischerweise ein Computerprogramm/Teilprogramm oder eine Softwareanwendung, die eine Menge von Regeln oder Logik praktiziert, die Daten organisieren und Zugriff zu den Daten innerhalb einer Datenbank begrenzen. In dem vorliegenden Kontext wird der Begriff Datenbankmanager beim Verweis auf den Computer oder eine physische Verarbeitungseinrichtung verwendet, innerhalb dessen/derer sich die Datenbankmanagerfunktion oder Logik befindet.
  • 1A–D veranschaulichen einen Datenbankmanager 101 und Clients 102106. Der Datenbankmanager 101 wird in den Figuren in der Form eines Dateiservers widergespiegelt. In der Praxis kann der Datenbankmanager 101 in beliebigen von verschiedenen Typen von Computern oder Verarbeitungseinrichtungen verkörpert sein. Die Datenmanagerfunktion kann in dem gleichen Typ eines Computers wie die Clients durchgeführt werden. Die physische Konfiguration des Datenbankmanagers in Bezug auf die Clients kann beliebige Formen annehmen, wie in 1A–D gezeigt. Z.B. kann der Datenbankmanager 101 mit den Clients 102106 in der Buskonfiguration von 1A, der Ringkonfiguration von 1B, der Sternkonfiguration von 1C oder der Kommunikationsnetzkonfiguration von 1D verbunden sein. In 1D kommuniziert der Datenbankmanager 101 mit Datenbankclients 102106 über ein Kommunikationsnetz 90. Das Kommunikationsnetz 90 kann das Internet, ein Intranet, ein Lokalbereichsnetz (LAN), das PSTN, ein drahtloses Netz oder ein anderes ähnliches Netz für Kommunikationen unter Knoten oder Benutzern sein.
  • Im allgemeinen kann der Datenbankmanager entweder zentral angeordnet sein, oder die Funktionen, die mit dem Datenbankmanager in Verbindung stehen, können unter verschiedenen Netzknoten, Ressourcen und/oder Datenbankclients verteilt sein. Z.B. könnte sich in beliebigen von 1A–D der Datenbankmanager entweder nur in einem Computer befinden, wie etwa Computer 101, oder die Funktionen, die mit dem Datenbankmanager in Verbindung stehen, könnten unter den Computern 101106 verteilt sein. In dem Fall eines verteilten Datenbankmanagers ist es wünschenswert, ein etabliertes Schema für Kommunikation unter den unterschiedlichen Abschnitten des Datenbankmanagers zu haben, um Koordination von Datenbankmanageroperati onen zu ermöglichen. Es wird hierin auf US-Patent Nr. 5,761,672 für Samuelson et al verwiesen, das ein verteiltes Datenbanksystem betrifft. WO 98/59305 offenbart Verfahren zum stückweisen Schreiben von Daten in eine und Lesen von Daten aus einer Datenbank unter Verwendung eines Zählers zum Bestimmen, ob die gelesenen Daten fehlerhaft sind.
  • In einer Mehrbenutzer-Datenbank können die Clients Zugriff zu einer Datenbank von einem einzelnen Zugriffspunkt zu unterschiedlichen Zeiten haben, oder mehrere Clients können gleichzeitig auf die Datenbank auf einmal zugreifen. Der gleichzeitige Zugriff auf eine Datenbank durch viele Clients kann zu Datenkorruption führen, d.h. das unbeabsichtigte Überschreiben oder die Modifikation von Daten eines Clients durch einen anderen Client. Z.B. kann ein Client Daten editieren und sie sichern, wobei die Modifikationen eines anderen Clients überschrieben werden. In dem vorliegenden Kontext werden die Begriffe editieren und modifizieren austauschbar verwendet, und inkludieren die Handlungen zum Löschen, Hinzufügen oder Ändern auf eine beliebige Weise der Daten in einer Datenbank. Es ist ein Datenbankintegritätsschema erforderlich, um Datenkorruption (Datenverfälschung) wegen gleichzeitigen Datenbankoperationen durch viele Benutzer zu vermeiden, wobei die vielen Benutzer die Daten der Datenbank editieren.
  • Ein konventionelles Integritätsschema involviert Begrenzung vom Zugriff für den Zweck zum Editieren der Datenbank auf nur einen Client zu einem Zeitpunkt. Unter diesem Schema wird nur einem Client gestattet, auf die Datenbank für die Zwecke zum Durchführen von Änderungen an den Daten einer Datei oder eines Datensatzes der Datenbank zuzugreifen. Anderen Clients kann gestattet werden, auf einen Datenbankdatensatz oder eine Datei auf Nur-Lese-Basis zuzugreifen, ihnen wird aber nicht erlaubt, die Datenbank zu editieren. Mit anderen Worten bleiben alle außer einem Client aus dem Datenbankdatensatz/der Datei für Bearbeitungszwecke ausgesperrt. Während ein derartiges Schema Integrität der Datenbank sicherstellt, belastet es übermäßig die Nützlichkeit, ein Multi-Client-Datenbanksystem zu haben.
  • Gemäß einem anderen konventionellen Datenbankintegritätsschema wird ein neuer eindeutiger Identifikator des Datensatzes, der gerade modifiziert wird, zugewiesen, wenn zwei oder mehr Clients versuchen, den gleichen Datensatz gleichzeitig zu editieren. Somit wird Multi-Benutzer-Editieren erlaubt, führt aber zu vielen Versionen des Datenbankdatensatzes oder der gesamten Datenbankdatei. Dieses Datenbankintegritätsschema ist nachteilig, da es übermäßige Mengen von Speicher wegen der Sicherung und Speicherung von vielen Versionen der Datenbank erfordert. Außerdem ist dieses Schema nicht tatsächlich ein Multi-Benutzer-Datenbanksystem, da neue Iterationen oder Versionen des gleichen Datensatzes oder der Datei jedes Mal gebildet werden, wenn zwei oder mehr Clients danach streben, den gleichen Datensatz zu modifizieren.
  • Deshalb gibt es gegenwärtig einen Bedarf nach einem verbesserten Verfahren zum Sicherstellen von Datenbankintegrität während Multi-Benutzer-Editieren der Datenbank.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung stellt Datenbankintegrität sicher, während gleichzeitiger multipler Clientzugriff zum Editieren der Datenbank erlaubt wird. Im allgemeinen bewerkstelligt die vorliegende Erfindung dies durch Verwenden eines Änderungszählerwertes, der den Modifikationsstatus von verschiedenen Datenbankdatensätzen verfolgt, um eine Datenkorruptionssituation zu vermeiden. Entsprechend ist es ein Ziel der vorliegenden Erfindung, ein Verfahren für viele Clients vorzusehen, um ohne Datenkorruption auf Datensätze einer Datenbank zuzugreifen und sie zu sichern.
  • In Übereinstimmung mit einem Aspekt der vorliegenden Erfindung werden die oben identifizierten und andere Ziele für einen ersten Client erreicht, der auf einen Datenbankdatensatz zugreift. Auf Erlauben dem ersten Client hin, auf den Datenbankdatensatz zuzugreifen, speichert ein Datenbankmanager einen Änderungszählerwert (CCV, change counter value). Der CCV hat einen ersten Wert entsprechend dem Zustand der Datenbank, wenn der erste Client auf den Datenbankdatensatz zugegriffen hat. Falls eine modifizierte Version des Datenbankdatensatzes durch einen zweiten Client gesichert wird, nachdem der erste Client auf den Datensatz zugegriffen hat, wird der CCV inkrementiert. Falls der erste Client danach strebt, den Datenbankdatensatz zu sichern, verweigert von der Datenbankmanager die Anforderung des ersten Clients, da der CCV-Wert geändert ist, was anzeigt, dass der erste Client die Modifikationen des zweiten Clients überschreiben würde.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Andere Ziele und Vorteile der vorliegenden Erfindung werden einem Fachmann beim Lesen der folgenden detaillierten Beschreibung von bevorzugten Ausführungsformen in Verbindung mit den begleitenden Zeichnungen offensichtlich, worin gleiche Bezugszeichen verwendet wurden, um gleiche Elemente zu bezeichnen, und worin:
  • 1A–D Computersystemkonfigurationen mit einem Datenbankmanager sind, der mit vielen Clients verbunden ist;
  • 2 eine Multi-Benutzer-Datenbanksituation darstellt, die zur Korruption (Beschädigung) von Daten eines Clients innerhalb einer Datenbank führen kann;
  • 3 die Schritte darstellt, die mit einem Datenbanksynchronisationsverfahren gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung in Verbindung stehen;
  • 4 eine Zahl von alternativen Operationen darstellt, die für einen Client auf Verweigerung einer Erlaubnis hin verfügbar sind, um einen modifizierten Datensatz zu sichern;
  • 5 eine Ausführungsform darstellt, in der die alternativen Operationen, die für einen Client verfügbar sind, auf vorbestimmter Modifikationsautorisierung basieren; und
  • 6 ein Verfahren darstellt, welches eine Warnung vor einer potenziellen Datenkorruptionssituation gemäß einer alternativen Ausführungsform der vorliegenden Erfindung vorsieht.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 2 stellt eine Multi-Benutzer-Datenbanksituation dar, die zur Korruption von Daten eines Clients innerhalb einer Datenbank führen kann. Zum Zeitpunkt t = 1 greift Client A auf Datenbankdatensatz X zu. In dem vorliegenden Kontext wird der Begriff "Datenbankdatensatz" beim Verweis auf einen Abschnitt einer Datenbank, der gerade editiert wird, verwendet. Ein Datenbankdatensatz kann so viel wie eine gesamte Datenbankdatei, so wenig wie ein einzelnes Bit von Information oder ein beliebiger anderer Abschnitt einer Datenbank sein. Zum Zeitpunkt t = 2 greift Client B auf den gleichen Datenbankdatensatz (d.h. Datensatz X) zu, der durch Client A noch nicht modifiziert und gesichert wurde. Natürlich kann in der Praxis Datenbankkorruption auch auftreten, wenn Client B auf den Da tensatz X vor Client A zugreift (z.B. im Zeitpunkt t = 0). Im Zeitpunkt t = 3 editiert, löscht oder modifiziert anderweitig Client B den Datensatz X, und sichert danach die Modifikation. Weder Client A noch Client B kennen beliebige Modifikationen an dem Datensatz X durch den anderen, da Client A und Client B jeder mit Kopien des Datensatzes X arbeiten, die zu ihnen im Zeitpunkt t = 1 bzw. Zeitpunkt t = 2 heruntergeladen wurden.
  • Falls, wie in 2 gezeigt, Client A Datensatz X im Zeitpunkt t = 4 modifiziert, dann werden Modifikationen von Client B verloren gehen, wenn Client A den modifizierten Datensatz X sichert. Die Handlung von Client A, der den Datenbankdatensatz im Zeitpunkt t = 4 sichert, löscht beliebige Modifikationen aus, die Client B zuvor durchgeführt und gesichert hat, da die Version des Datensatzes X, den Client A nun editiert hat und gerade sichert, von Zeitpunkt t = 1 vor dem Zeitpunkt t = 3 ist, als die Modifikationen von Client B gesichert wurden.
  • Ohne ein etabliertes ausreichendes Datenbanksynchronisationsschema kommt es zu Datenkorruption im Zeitpunkt t = 4, wenn Client A die neu modifizierte Version vom Datensatz X sichert, wobei dadurch zuvor gesicherte Modifikationen von Client B überschrieben werden. Es ist wahrscheinlich, dass eine Datenbankkorruptionssituation auftritt, wann immer viele Datenbank-Clients gleichzeitig Abschnitte der gleichen Datenbankdaten editieren und sichern, was zu einander unbekannt ist.
  • Überall in dieser Beschreibung werden die Aktivitäten von Client A und Client B im Sinne eines Zugriffs auf Datensatz X, und dann Editieren und Sichern eines modifizierten Datensatzes X beschrieben. In der Tat erstellt, wenn ein Client Editieren durchführt, der Client eine modifizierte Version des Datensatzes X, auf die nur dieser Client Zugriff hat, bis sie gesichert wurde. Wenn sie gesichert wurde, wird die modifizierte Version des Datensatzes X der Datensatz X. Ein beliebiger Client, der danach auf den Datensatz X zugreift, wird die zuvor modifizierte gesicherte Version des Datensatzes X abrufen.
  • 3 stellt die Schritte dar, die mit dem Datenbanksynchronisationsverfahren gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung in Verbindung stehen. In Schritt S10 strebt Client A danach, auf einen Datensatz einer Datenbank zuzugreifen, z.B. Datensatz X. Der Client A kann danach streben, auf Datensatz X zuzugreifen, durch Kontaktieren oder Anfordern von Erlaubnis von einem Datenbankmanager, der Zugriff zu den Datenbankdatensätzen unter verschiedenen vielen Clients steuert, die die Datenbank verwenden. Z.B. kann der Client A eine Registrierkasse in einem Einzelhandelsgeschäft sein, die auf die Inventardatenbank zugreift und sie aktualisiert, um den Verkauf eines Gegenstandes widerzuspiegeln. Als ein alternativer Schritt dafür oder andere Ausführungsformen muss der Client A nicht Erlaubnis anfordern, um auf den Datensatz X zuzugreifen, in welchem Fall der Datenbankmanager einfach den Zugriff des Clients überwacht, während Operationen durchgeführt werden, um Datenintegrität sicherzustellen.
  • In Schritt S12 gemäß einer beispielhaften Ausführungsform gewährt der Datenbankmanager Zugriff und beschafft oder lädt eine Kopie des Datensatzes X zu Client A herunter, zusammen mit einem Änderungszählerwert (CCV) für den Datensatz X. Die Verwendung von CCV's sieht einen Mechanismus zum Verfolgen des Modifikationsstatus von verschiedenen Datenbankdatensätzen vor. Der CCV muss nicht eine tatsächliche Zahl sein, sondern kann stattdessen ein beliebiger Wert sein, der aufwärts oder abwärts inkrementiert, oder zu einem anderen Wert geän dert werden kann. Z.B. kann der CCV ein Buchstabe des Alphabets, die Tageszeit oder Datum, die Größe der Datei oder des Datensatzes, die Zahl von Worten oder Buchstaben in dem Datensatz, eine Paritätsprüfung oder ein anderes ähnliches Maß des Datenbankdatensatzes sein. Der Veranschaulichung halber wird der CCV als ein numerischer Wert in der vorliegenden Offenbarung beschrieben. Jedes Mal, wenn ein Datensatz durch einen Client modifiziert und gesichert wird, wird der Wert des CCV für diesen Datensatz um eins inkrementiert. In dem in 3 veranschaulichten Beispiel ist in dem Zeitpunkt, in dem Client A Zugriff auf den Datensatz X gewährt wird, der CCV = δc. Das erste Mal, wenn eine Modifikation an dem Datensatz X gesichert wird, wird der Änderungszählerwert um eins zu einem Wert von CCV = δc + 1 inkrementiert. Kurz gesagt dient der CCV = δc als ein Bezugspunkt, der den Zustand vom Datenbankdatensatz X in dem Zeitpunkt anzeigt, als Client A auf Datensatz X zugegriffen hat.
  • Schritt S14 repräsentiert eine Zeitperiode, während der Multi-Client-Datenbank-Editieren in dem Datensatz X stattfinden kann. In Schritt S14 können andere Clients als Client A den Datensatz X editieren und versuchen, ihn zu sichern, nachdem der Datenbankmanager Datensatz X für Client A in Schritt S12 beschafft hat. Für die Zwecke einer Bestimmung einer potenziellen Datenkorruptionssituation gemäß der vorliegenden Erfindung spielt es keine Rolle, ob die anderen Clients auf Datensatz X vor Client A oder nach Client A zugegriffen haben. Es ist nur von Bedeutung, dass die anderen Clients Modifikationen an dem Datensatz X folgend Zugriff von Client A auf den Datensatz gesichert haben, wie durch CCV = δc angezeigt, wie in der Situation vom Multi-Client-Datenbank-Editieren von 2 dargestellt wird.
  • Gemäß der vorliegenden Erfindung wird Client A in der Lage sein, den Datensatz X zu editieren und dann die Änderungen zu der Datenbank zu sichern, solange wie kein anderer Client Modifikationen an dem Datensatz X nach dem Zeitpunkt gesichert hat, in dem Client A auf den Datensatz X zugegriffen hat. Da der Zustand des Datensatzes X durch Verweis auf den CCV bestimmt wird, kann der Datenbankmanager Client A Erlaubnis gewähren, den modifizierten Datensatz X für solange wie CCV = δc ohne Verursachung von Datenkorruption zu sichern. Da der CCV den gleichen Wert hat wie dann, als Client A auf ihn für den Zweck zum Durchführen von Modifikationen zugegriffen hat, hat es keine anschließenden Modifikationen gegeben, die zu Datensatz X gesichert wurden, was unbeabsichtigt durch Modifikationen von Client A überschrieben würde. Mit anderen Worten wird Client A Erlaubnis nur gewährt, den modifizierten Datensatz X zu sichern, falls der entsprechende CCV für Datensatz X im Wert nicht geändert wurde, seit der Client A auf den Datensatz X zugegriffen hat.
  • In Schritt S16 strebt Client A, nachdem Modifikationen an dem Datensatz X durchgeführt wurden, nun danach, den modifizierten Datensatz X zu sichern. Vor einer Sicherung des modifizierten Datensatzes X fordert Client A Erlaubnis von dem Datenbankmanager an, den Datensatz zu sichern. Falls Client A gestattet wird, den modifizierten Datensatz X zu diesem Zeitpunkt zu sichern, und ein anderer Client Modifikationen von Datensatz X anschließend zu CCV = δc gesichert hat (als Client A auf den Datensatz X zugegriffen hat), wird es dann zu Datenkorruption kommen, da die Modifikationen des anderen Clients durch Client A überschrieben würden.
  • Um Datenkorruption zu vermeiden, vergleicht der Datenbankmanager den gegenwärtigen Wert von CCV mit δc in Verbindung mit Schritt S18, um zu ermitteln, ob Datensatz X anschließend zum Zugriff von Client A auf den Datensatz X in Schritt S12 modifiziert wurde. Falls in Übereinstimmung mit dem Pfad "JA" aus Schritt S18 heraus der Datenbankmanager bestimmt, dass CCV = δc ist, fährt das Verfahren zu Schritt S20 fort und Client A wird Erlaubnis gewährt, den modifizierten Datensatz X zu sichern. Falls andererseits in Übereinstimmung mit dem Pfad "NEIN" aus Schritt S18 heraus der Datenbankmanager bestimmt, dass CCV > δc ist, fährt das Verfahren zum Schritt S22 fort und Client A wird keine Erlaubnis gewährt, den modifizierten Datensatz X zu sichern. In Schritt S22 führt die Bestimmung, dass CCV > δc ist, zu einer Verweigerung der Option, den modifizierten Datensatz X durch Client A zu sichern.
  • In Schritt S24 wird eine Fehlermeldung zu Client A gesendet, die den Client A informiert, dass seine Anforderung, den modifizierten Datensatz X zu sichern, verweigert wurde. Falls der Client eine Anzeige verwendet, z.B. einen Computerbildschirm, eine Anzeige eines zellularen Telefons, einen Fernsehmonitor etc., kann eine beispielhafte Form der Fehlermeldung von Schritt S24 wie folgt sein:
    FEHLER: ERLAUBNIS ZUM SICHERN VON DATENSATZ X WIRD VERWEIGERT.
    DATENSATZ X WURDE NACH ZUGRIFF DURCH CLIENT A MODIFIZIERT.
  • Alternativ könnte die Fehlermeldung auf eine beliebige äquivalente Art und Weise übermittelt werden, die einem Fachmann bekannt ist. Derartige Entsprechungen inkludieren einen Ausdruck, ein hörbares System oder ein anderes ähnliches Signalisierungsverfahren oder eine Vorrichtung. Beim Informieren des Clients A durch Anzeige der Fehlermeldung oder ein anderes Signalisierungsmittel fährt das Verfahren dann zu Schritt S28 fort, wo eine Nachricht zu dem Client A übermittelt wird, die den Client A auffordert, eine oder mehr alternative Operationen auszuwählen, die für Client A verfügbar sind. In Schritt S30 kann Client A dann eine alternative Operation folgend der Verweigerung zum Sichern des modifizierten Datensatzes X durchführen.
  • 4 stellt eine Zahl von alternativen Operationen dar, die für Client A verfügbar sind, falls Client A Erlaubnis verweigert wird, den modifizierten Datensatz X zu sichern. Dem Schritt S24 folgend, in dem eine Fehlermeldung zu dem Client A gesendet wird, wird der Schritt S28 durchgeführt. In dem Schritt S28 wird eine Nachricht zu dem Client A übermittelt, die den Client A auffordert, eine oder mehr der alternativen Operationen auszuwählen, die für Client A verfügbar sind. Die alternativen Operationen können z.B. eine beliebige Kombination von einer oder mehr der Operationen inkludieren, die in Verbindung mit jedem der Schritte S34–S39 beschrieben werden. Es können andere alternative Operationen, die einem Fachmann bekannt sind, für Client A bei Verweigerung von Erlaubnis zum Sichern eines modifizierten Datensatzes zur Verfügung stehen.
  • In Schritt S34 kann der Client A wählen, den Datensatz X, auf den er zugreift, aktualisiert zu haben, um beliebige zuvor gesicherte Modifikationen des anderen Clients einzubeziehen, d.h. von Schritt S14 von 3. Dies stellt sicher, dass der Datensatz X von Client A die Modifikationen vom anderen Client widerspiegelt, bevor Client A den Datensatz X sichert. Die alternative Operation von Schritt S34 kann auf unterschiedliche Art und Weise implementiert werden. Z.B. können die zuvor gesicherten Modifikationen vom anderen Client nur solange aktualisiert werden, wie die Modifikationen des anderen Clients und von Client A nicht in Konflikt stehen. Alternativ können die zuvor gesicherten Modifikationen des anderen Clients ungeachtet dessen aktualisiert werden, ob ein beliebiger Konflikt zwischen den Änderungen von Client A und den zuvor gesicherten Änderungen existiert. Oder anderenfalls können die zuvor gesicherten Modifikationen des anderen Clients vollständig oder teilweise basierend darauf aktualisiert werden, welcher Client zuerst auf den Datensatz zugegriffen hat, welcher Client eine höhere Priorität hat oder einem anderen ähnlichen Kriterium.
  • Schritt S35 erlaubt dem Client A, den modifizierten Datensatz als einen neuen Datensatz oder unter einem neuen Dateinamen zu sichern. Um unnötige Erstellung vieler Dateiversionen des gleichen Datensatzes zu vermeiden, ist es wünschenswert, eine Sicherung von modifizierten Datensätzen unter einem neuen Dateinamen zu vermeiden, bis eine Datenkorruptionssituation entsteht. Mit anderen Worten würde die Option, die in Schritt S35 geboten wird, vorzugsweise nur in der Situation verfügbar sein, wo der modifizierte Datensatz X durch einen anderen Client gesicherten wurde, was zu CCV > δc führt und zu einem Konflikt von Daten wegen den Modifikationen führt, anstatt dann, wenn zwei Clients lediglich auf den gleichen Datensatz zugegriffen haben.
  • In Schritt S36 wird dem Client A die Option gegeben, dem anderen Client, dessen Datensatz X potenziell beschädigt werden könnte, zu erlauben, Modifikationen von Client A zu überprüfen, bevor Client A erlaubt wird, sie zu sichern. Typischerweise entsteht die Situation, in der ein Datensatz X eines anderen Clients potenziell beschädigt werden könnte, wenn ein anderer Client Datensatz X dem Zugriff von Client A auf den Datensatz X folgend gesichert hat. Eine derartige Situation entsteht z.B. in dem Schritt S14 von 3. Schritt S36 ist besonders nützlich, wenn ein anderer Client, z.B. Client B, auf Datensatz X zugegriffen hat, aber eine wesentliche Modifikation am Datensatz X nicht durchgeführt hat. Z.B. kann Client B auf Datensatz X zugegriffen haben und unbeabsichtigt ein Leerzeichen durch Drücken der Leertaste der Tastatur hinzugefügt haben, während er in dem Datensatz X geblättert hat. In dieser Situation würde Client B zweifellos Client A erlauben, den modifizierten Datensatz X von Client A zu sichern, da Client B keine wesentlichen Modifikationen an dem Datensatz X durchgeführt hat, die beschädigt würden. Schritt S36 kann implementiert werden, indem dem anderen Client, dessen Modifikationen beschädigt würden, d.h. Client B, die Option gegeben wird, Client A zu erlauben, den Datensatz X zu sichern, entweder nach Anzeigen von Modifikationen von Client A, die zu sichern sind, zu Client B, oder nach Befragung von Client B um eine Erlaubnis, den modifizierten Datensatz X von Client A zu sichern, aber ohne Anzeigen von Modifikationen von Client A, die zu sichern sind, zu Client B.
  • In Schritt S37 wird Client A die Option zum Kopieren der modifizierten Abschnitte von Datensatz X zu einem zeitweiligen Speicher geboten, wie etwa einer "Zwischenablage" in einem Computer oder einer Computeranwendung. Nach zeitweiliger Sicherung der Modifikationen ist der Client A dann in der Lage, die jüngste Version vom Datensatz X abzurufen, wofür CCV > δc ist. Client A kann dann die jüngste Version von Datensatz X durch "Einfügen" der Modifikationen des Datensatzes X, die zeitweilig in der Zwischenablage gesichert sind, modifizieren. Auf diese Weise würden Modifikationen von Client B nicht unbeabsichtigt durch Client A zerstört werden.
  • In Schritt S38 wird dem Client A erlaubt, eine Kopie der zuvor gesicherten Modifikationen am Datensatz X des anderen Clients zu ziehen, um sie zu betrachten, bevor der Client A die vorliegenden Modifikationen sichert. Dies erlaubt Client A die Möglichkeit, z.B. zu bestimmen, ob die zuvor gesicherten Modifikationen wesentlich genug sind, um Schritte zum Vermeiden von Beschädigung vom Überschreiben der zuvor gesicherten Modifikationen des anderen Clients zu gewähren, oder die Modifikationen für andere Zwecke zum Editieren zu betrachten.
  • Schließlich wird in Schritt S39 dem Client A erlaubt, Modifikationen an dem Datensatz X ohne Beachtung beliebiger anderer zuvor gesicherter Modifikationen zu sichern. Diese Alternative wurde natürlich zu der Korruption beliebiger zuvor gesicherter Modifikationen an dem Datensatz X führen, eine Alter native, die z.B. akzeptabel sein kann, falls die verschiedenen Clients vorbestimmte Autorisierungen zum Durchführen von Modifikationen haben, wie in Verbindung mit 5 erörtert.
  • 5 stellt eine Ausführungsform dar, in der die alternativen Operationen, die für einen Client verfügbar sind, auf vorbestimmter Modifikationsautorisierung basieren. Gemäß dieser Ausführungsform wird vor einem Zugriff auf den Datensatz X in Schritt S10 von 3 dem Client A ein Grad vorbestimmter Modifikationsautorisierung zum Durchführen von Modifikationen an dem Datenbankdatensatz oder Datensätzen zugewiesen. Die vorbestimmte Modifikationsautorisierung eines bestimmten Clients kann entweder die Gleiche für alle Datensätze einer Datenbank sein, oder kann alternativ auf einer Basis von Datensatz zu Datensatz für jeden Datensatz der Datenbank zugewiesen werden.
  • In Schritt S26, der vorzugsweise vor Schritt S30 von 3 durchgeführt wird, ruft der Datenbankmanager die vorbestimmte Modifikationsautorisierung von Client A ab, um zu bestimmen, ob der Erlaubnis von Client A, Modifikationen zu sichern, irgendwelche Begrenzungen auferlegt sind. Die alternativen Operationen, die dem Client A in Schritt S28 übermittelt werden, d.h. Zugriff zu Schritten S34–S39 von 4, werden durch die vorbestimmte Modifikationsautorisierung bestimmt, die für diesen Client spezifisch ist.
  • Zum Beispiel kann ein Client, dem eine vorbestimmte Modifikationsautorisierung entsprechend einem beträchtlichen Grad von Zugriff gewährt ist, in der Lage sein, eine beliebige der alternativen Operationen von Schritten S34–S39 auszuüben. Andererseits kann ein Client mit einer vorbestimmten Modifikationsautorisierung entsprechend einem begrenzten Grad von Zugriff in der Lage sein, nur auf eine Teilmenge der alternativen Operationen von S34–S39 zuzugreifen, oder möglicherweise keine der alternativen Operationen S34–S39. Die vorbestimmte Modifikationsautorisierung kann selbst auf Betrachtungen von Datensicherheit, Datenschutz, der Wahrscheinlichkeit von Datenkorruption oder ähnlichen Datenintegritätsbetrachtungen basieren.
  • Beim Übermitteln der alternativen Operationen zu dem Client A in Schritt S28 fährt das Verfahren zu Schritt S30 fort. In dem Schritt S30 wird dem Client A erlaubt, eine oder mehr autorisierte alternative Operationen durchzuführen, nachdem die Option zum Sichern des modifizierten Datensatzes X über Modifikationen eines anderen Clients verweigert wird.
  • 6 stellt ein Verfahren dar, das eine Warnung vorsieht, wenn es eine potenzielle Datenkorruptionssituation gibt, in Übereinstimmung mit einer alternativen Ausführungsform der vorliegenden Erfindung. Dies hilft, eine Datenkorruptionssituation zu vermeiden, durch Warnen eines Clients, dass die Datenbank anschließend zum Abrufen des Datenbankdatensatzes, auf den der Client zugreift, geändert wurde. Mit anderen Worten würde, falls dem Client nicht erlaubt wurde, den Datensatz zu sichern, auf den gerade zugegriffen wird, die Datenbank selbst nicht beschädigt werden. Stattdessen würden diese Modifikationen des Clients zu dem Ausmaß beschädigt, dass dem Client nicht erlaubt würde, sie zu sichern.
  • In Schritt S10 von 6 strebt der Client A danach, auf Datensatz X einer Datenbank zuzugreifen, durch Kontaktieren oder Anfordern von Erlaubnis von dem Datenbankmanager, der Zugriff auf die Datenbankdatensätze steuert. Es kann ein Entscheidungsschritt S11 optional in dieser Ausführungsform oder anderen Ausführungsformen des Verfahrens inkludiert sein, um zu bestimmen, ob Client A nach Nur-Lese-Zugriff oder Zugriff für Zwecke zum Editieren strebt. Falls nach Nur-Lese-Zugriff ersucht wird, fährt in Übereinstimmung mit dem Pfad "JA" vom Entscheidungsschritt S11 das Verfahren zu Schritt S13 fort und dem Client wird verboten, den Datensatz X auf Gewährung von Zugriff hin zu modifizieren. In Schritt S12 gewährt der Datenbankmanager Zugriff und beschafft, oder lädt eine Kopie herunter, des Datensatzes X, inkludierend ein CCV = δc, zu Client A. In Schritt S14 kann Multi-Client-Datenbank-Editieren stattfinden, worin andere Clients den Datensatz X editieren können, nachdem er zu Client A in Schritt S12 mit CCV = δc beschafft wurde.
  • In Schritt S15 editiert oder modifiziert ein anderer Client, z.B. Client B, den Datensatz X, wobei eine modifizierte Version des Datensatzes X erstellt wird. Da der Datensatz X gerade modifiziert wird, inkrementiert der Datenbankmanager den CCV, sodass er nun CCV = δc + 1 ist. Dann sendet in Schritt S23 der Datenbankmanager eine Warnung, um den Client A zu benachrichtigen, dass der Datensatz X durch einen anderen Client modifiziert wurde, wobei dadurch eine potenzielle Datenkorruptionssituation geschaffen wird. Die warnende Benachrichtigung könnte als Reaktion auf den Client B, der die modifizierte Version des Datensatzes X sichert, gesendet werden, oder könnte als Reaktion auf die Erstellung der modifizierten Version des Datensatzes X gesendet werden. Für den letzteren Fall würde das System derart arbeiten, dass der Client B den Datenbankmanager auf Modifizieren des Datensatzes X hin kontaktieren würde, bevor der Datensatz X schon gesichert wurde. Dies würde die Situation vermeiden, in der zwei Clients ausgedehnte Modifikationen an einem Datenbankdatensatz erstellt haben, was es schwierig macht, Änderungen von beiden Clients einzubeziehen.
  • Zusätzlich zu der warnenden Nachricht, die in Schritt S23 gesendet wird, kann das Verfahren auch alternative Operationen für Client A inkludieren, um als ein Ergebnis der Datenbank korruptionssituation zu folgen, in Übereinstimmung mit dem Schritt S30. Die alternativen Operationen können mit jenen konsistent sein, die oben in Verbindung mit 4 ausgeführt werden, oder ähnlichen alternativen Operationen, die einem Fachmann bekannt sind.
  • Durch einen Fachmann würde erkannt, dass die vorliegende Erfindung in anderen spezifischen Formen verkörpert werden kann, ohne von den wesentlichen Charakteristika davon abzuweichen, wie in den angefügten Ansprüchen definiert.

Claims (23)

  1. Multiclient-Datenbanksynchronisationsverfahren zum Vermeiden von Datenkorruption, das Verfahren die Schritte umfassend: Kontaktieren eines Datenbankmanagers durch einen ersten Client, der danach strebt, auf einen Datenbanksatz zuzugreifen (S10); dem ersten Client durch den Datenbankmanager erlauben, auf den Datenbanksatz zuzugreifen (S12); Speichern eines Änderungszählerwertes durch den Datenbankmanager auf einen Zugriff auf den Datenbanksatz durch den ersten Client hin, wobei der Änderungszählerwert ein erster Wert ist, der dem Zustand der Datenbank entspricht, wenn der erste Client auf den Datenbanksatz zugegriffen hat; Sichern einer modifizierten Version des Datenbanksatzes mit Modifikationen, die durch einen zweiten Client durchgeführt werden, nachdem der erste Client auf den Datenbanksatz zugegriffen hat; Ändern des Änderungszählerwertes als Reaktion darauf, dass der zweite Client die modifizierte Version des Datenbanksatzes sichert; Streben durch den ersten Client, seine Modifikationen an dem Datenbanksatz zu sichern (S16); und dem ersten Client durch den Datenbankmanager verweigern, den Datenbanksatz zu sichern (S22), auf eine Bestimmung hin, dass der Änderungszählerwert von dem ersten Wert geändert wurde.
  2. Verfahren nach Anspruch 1, wobei der Schritt zum Erlauben durch den Datenbankmanager, dass der erste Client auf den Datenbanksatz zugreift, umfasst, dass der Datenbankmanager dem ersten Client Erlaubnis gewährt, auf den Datenbanksatz zuzugreifen.
  3. Verfahren nach Anspruch 1, wobei der Schritt zum Erlauben durch den Datenbankmanager, dass der erste Client auf den Datenbanksatz zugreift, umfasst, dass der Datenbankmanager den Datenbanksatz überwacht um zu bestimmen, dass auf den Datenbanksatz zugegriffen wurde.
  4. Verfahren nach Anspruch 1, wobei der Schritt zum Streben, den Datenbanksatz zu sichern, Streben nach Erlaubnis von dem Datenbankmanager durch den ersten Client umfasst, den Datenbanksatz zu sichern.
  5. Verfahren nach Anspruch 2, ferner umfassend den Schritt: Vorsehen alternativer Operationen zu dem ersten Client auf Verweigern dem ersten Client hin, den Datenbanksatz zu sichern.
  6. Verfahren nach Anspruch 5, wobei die alternativen Operationen, die dem ersten Client vorgesehen werden, auf einer vorbestimmten Modifikationsautorisierung für den ersten Client basieren.
  7. Verfahren nach Anspruch 6, ferner den Schritt umfassend: Selektieren mindestens einer der alternativen Operationen durch den ersten Client.
  8. Verfahren nach Anspruch 1, ferner den Schritt umfassend: Übermitteln einer Liste von alternativen Operationen auf Verweigern dem ersten Client hin, den Datenbanksatz zu sichern; wobei die alternativen Operationen einen oder mehr Schritte umfassen zum: Aktualisieren des Datenbanksatzes, um beliebige Modifikationen widerzuspiegeln, die zuvor durch einen zweiten Client gesichert wurden (S34); Sichern des Datenbanksatzes unter einem neuen Dateinamen (S35); Streben nach Erlaubnis von dem zweiten Client durch den ersten Client, mindestens einen Abschnitt des Datenbanksatzes zu sichern (S36); Kopieren und Einfügen von Modifikationen des Datenbanksatzes, falls vorhanden, zu einer Zwischenablage (S37); Nachprüfen der Modifikationen des zweiten Clients, falls vorhanden, durch den ersten Client, bevor der erste Client den Datenbanksatz sichert (S38); oder Sichern des Datenbanksatzes über einen entsprechenden Datenbanksatz, der zuvor durch einen zweiten Client gesichert wurde (S39).
  9. Verfahren nach Anspruch 1, umfassend den Schritt zum Benachrichtigen des ersten Clients als Reaktion auf den zweiten Client, der die modifizierte Version des Datenbanksatzes sichert.
  10. Verfahren nach Anspruch 1, umfassend den Schritt zum Benachrichtigen des ersten Clients als Reaktion auf den zweiten Client, der die modifizierte Version des Datenbanksatzes erstellt.
  11. Multiclient-Datenbanksynchronisationssystem zum Vermeiden von Datenkorruption, wobei das System angepasst ist: einen Datenbankmanager zu kontaktieren durch einen ersten Client, der danach strebt, auf einen Datenbanksatz zuzugreifen (S10); dem ersten Client Zugriff auf den Datenbanksatz durch den Datenbankmanager zu erlauben (S12); einen Änderungszählerwert durch den Datenbankmanager auf den ersten Client hin, der auf den Datenbanksatz zugreift, zu speichern, wobei der Änderungszählerwert ein erster Wert ist, der dem Zustand der Datenbank entspricht, wenn der erste Client auf den Datenbanksatz zugegriffen hat; eine modifizierte Version des Datenbanksatzes mit Modifikationen zu sichern, die durch einen zweiten Client durchgeführt werden, nachdem der erste Client auf den Datenbanksatz zugegriffen hat; den Änderungszählerwert als Reaktion auf den zweiten Client zu ändern, der die modifizierte Version des Datenbanksatzes sichert; der erste Client danach strebt, seine Modifikationen an dem Datenbanksatz zu sichern (S16); und dem ersten Client durch den Datenbankmanager zu verweigern, den Datenbanksatz zu sichern (S22), auf eine Bestimmung hin, dass der Änderungszählerwert von dem ersten Wert geändert wurde.
  12. System nach Anspruch 11, wobei das System, das angepasst ist, dem ersten Client Zugriff zu dem Datenbanksatz durch den Datenbankmanager zu erlauben, umfasst, dass der Datenbankmanager angepasst ist, dem ersten Client Erlaubnis zu gewähren, auf den Datenbanksatz zuzugreifen.
  13. System nach Anspruch 11, wobei das System, das angepasst ist, dem ersten Client Zugriff zu dem Datenbanksatz durch den Datenbankmanager zu erlauben, umfasst, dass der Datenbankmanager angepasst ist, den Datenbanksatz zu überwachen um zu bestimmen, dass auf den Datenbanksatz zugegriffen wurde.
  14. System nach Anspruch 11, wobei das System, das angepasst ist, den Datenbanksatz zu sichern, angepasst ist, nach Erlaubnis von dem Datenbankmanager durch den ersten Client zu streben, um den Datenbanksatz zu sichern.
  15. System nach Anspruch 12, wobei das System ferner angepasst ist: dem ersten Client alternative Operationen auf Verweigern dem ersten Client hin, den Datenbanksatz zu sichern, vorzusehen.
  16. System nach Anspruch 15, worin die alternativen Operationen, die dem ersten Client vorgesehen werden, auf einer vorbestimmten Modifikationsautorisierung für den ersten Client basieren.
  17. System nach Anspruch 16, wobei das System ferner angepasst ist: mindestens eine der alternativen Operationen durch den ersten Client zu selektieren.
  18. System nach Anspruch 11, wobei das System ferner angepasst ist: eine Liste von alternativen Operationen auf eine Verweigerung dem ersten Client hin, den Datenbanksatz zu sichern, zu übermitteln; wobei die alternativen Operationen umfassen eine oder mehr von: Aktualisieren des Datenbanksatzes, um beliebige Modifikationen widerzuspiegeln, die zuvor durch einen zweiten Client gesichert wurden (S34); Sichern des Datenbanksatzes unter einem neuen Dateinamen (S35); Streben nach Erlaubnis von dem zweiten Client durch den ersten Client, mindestens einen Abschnitt des Datenbanksatzes zu sichern (S36); Kopieren und Einfügen von Modifikationen des Datenbanksatzes, falls vorhanden, zu einer Zwischenablage (S37); Nachprüfen der Modifikationen des zweiten Clients, falls vorhanden, durch den ersten Client, bevor der erste Client den Datenbanksatz sichert (S38); oder Sichern des Datenbanksatzes über einen entsprechenden Datenbanksatz, der zuvor durch einen zweiten Client gesichert wurde (S39).
  19. System nach Anspruch 11, wobei das System angepasst ist, den ersten Client als Reaktion auf den zweiten Client zu benachrichtigen, der die modifizierte Version des Datenbanksatzes sichert.
  20. System nach Anspruch 11, wobei das System angepasst ist, den ersten Client als Reaktion auf den zweiten Client zu benachrichtigen, der die modifizierte Version des Datenbanksatzes erstellt.
  21. Eine erste Einrichtung in einem Multiclient-Datenbanksynchronisationssystem zum Vermeiden von Datenkorruption, wobei die erste Einrichtung angepasst ist: einen Datenbankmanager zu kontaktieren und nach Zugriff zu einem Datenbanksatz zu streben (S10), wobei Zugriff zu dem Datenbanksatz durch den ersten Client durch den Datenbankmanager erlaubt wird (S12) und wobei ein Änderungszählerwert durch den Datenbankmanager auf den ersten Client hin, der auf den Datenbanksatz zugreift, gespeichert wird, wobei der Änderungszählerwert ein erster Wert ist, der dem Zustand der Datenbank entspricht, wenn der erste Client auf den Datenbanksatz zugegriffen hat; und wenn der erste Client danach strebt, seine Modifikationen an dem Datenbanksatz zu sichern (S16), dem ersten Client Sichern des Datenbanksatzes durch den Datenbankmanager verweigert wird (S22) auf eine Bestimmung hin, dass der Änderungszählerwert von dem ersten Wert geändert wurde, wobei der Änderungszählerwert als Reaktion auf einen zweiten Client geändert wird, der eine modifizierte Version des Datenbanksatzes mit Modifikationen sichert, die durch den zweiten Client durchgeführt werden, nachdem der erste Client auf den Datenbanksatz zugegriffen hat.
  22. Ein zweiter Client in einem Multiclient-Datenbanksynchronisationssystem zum Vermeiden von Datenkorruption, wobei einem ersten Client, der einen Datenbankmanager kontaktiert und danach strebt, auf einen Datenbanksatz zuzugreifen (S10), Zugriff zu dem Datenbanksatz durch den Datenbankmanager erlaubt wird (S12) und wobei ein Änderungszählerwert durch den Datenbankmanager auf den ersten Client hin, der auf den Datenbanksatz zugreift, gespeichert wird, wobei der Änderungszählerwert ein erster Wert ist, der dem Zustand der Datenbank entspricht, wenn der erste Client auf den Datenbanksatz zugegriffen hat; wobei der zweite Client angepasst ist: eine modifizierte Version des Datenbanksatzes mit Modifikationen, die durch den zweiten Client durchgeführt werden, nachdem der erste Client auf den Datenbanksatz zugegriffen hat, zu sichern, wobei der Änderungszählerwert als Reaktion auf den zweiten Client, der die modifizierte Version des Datenbanksatzes sichert, geändert wird, und wobei dem ersten Client, der danach strebt, seine Modifikationen an dem Datenbanksatz zu sichern (S16) durch den Datenbankmanager verweigert wird, den Datenbanksatz zu sichern (S22), auf eine Bestimmung hin, dass der Änderungszählerwert von dem ersten Wert geändert wurde.
  23. Datenbankmanager zum Vermeiden von Datenkorruption in einem Multiclient-Datenbanksynchronisationssystem, wobei der Datenbankmanager angepasst ist: durch einen ersten Client kontaktiert zu werden, der danach strebt, auf einen Datenbanksatz zuzugreifen (S10); dem ersten Client Zugriff auf den Datenbanksatz zu erlauben (S12); einen Änderungszählerwert auf den ersten Client hin, der auf den Datenbanksatz zugreift, zu speichern, wobei der Änderungszählerwert ein erster Wert ist, der dem Zustand der Datenbank entspricht, wenn der erste Client auf den Datenbanksatz zugegriffen hat; und dem ersten Client zu verweigern, den Datenbanksatz zu sichern (S22), wenn der erste Client danach strebt, seine Modifikationen an dem Datenbanksatz zu sichern (S16), auf eine Bestimmung hin, dass der Änderungszählerwert von dem ersten Wert geändert wurde, wobei der Änderungszählerwert als Reaktion auf einen zweiten Client geändert wird, der eine modifizierte Version des Datenbanksatzes mit Modifikationen sichert, die durch den zweiten Client durchgeführt werden, nachdem der erste Client auf den Datenbanksatz zugegriffen hat.
DE60022767T 1999-02-08 2000-02-07 Mehrpunkten dateibank synchronisierungsprotokoll um datenverfalschung zu vermeiden. Expired - Lifetime DE60022767T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11902899P 1999-02-08 1999-02-08
US119028P 1999-02-08
US09/457,371 US6393419B1 (en) 1999-02-08 1999-12-09 Multipoint database synchronization protocol to avoid data corruption
US457371 1999-12-09
PCT/SE2000/000230 WO2000046698A1 (en) 1999-02-08 2000-02-07 Multipoint database synchronization protocol to avoid data corruption

Publications (2)

Publication Number Publication Date
DE60022767D1 DE60022767D1 (de) 2005-10-27
DE60022767T2 true DE60022767T2 (de) 2006-03-23

Family

ID=26816977

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60022767T Expired - Lifetime DE60022767T2 (de) 1999-02-08 2000-02-07 Mehrpunkten dateibank synchronisierungsprotokoll um datenverfalschung zu vermeiden.

Country Status (11)

Country Link
US (1) US6393419B1 (de)
EP (1) EP1206744B1 (de)
JP (1) JP2002536747A (de)
CN (1) CN1173286C (de)
AT (1) ATE305155T1 (de)
AU (1) AU2953700A (de)
CA (1) CA2361461C (de)
DE (1) DE60022767T2 (de)
HK (1) HK1045899B (de)
TR (1) TR200102286T2 (de)
WO (1) WO2000046698A1 (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516314B1 (en) * 1998-11-17 2003-02-04 Telefonaktiebolaget L M Ericsson (Publ) Optimization of change log handling
US6654908B1 (en) * 2000-04-29 2003-11-25 Hewlett-Packard Development Company, L.P. Method for and system producing shared usage of intercommunication fabric error logging registers in a multiprocessor environment
US6665815B1 (en) * 2000-06-22 2003-12-16 Hewlett-Packard Development Company, L.P. Physical incremental backup using snapshots
US6718348B1 (en) * 2000-08-25 2004-04-06 Telefonaktiebolaget Lm Ericsson (Publ) Non-time dependent synchronization of databases
US6978281B1 (en) * 2000-11-21 2005-12-20 Microsoft Corporation Versioned project data
DE10059103B4 (de) * 2000-11-28 2005-04-21 Siemens Ag Einheit zur Verwaltung von in einer Datenverarbeitungseinrichtung gespeicherten Daten
US6718349B2 (en) * 2000-12-14 2004-04-06 Borland Software Corporation Intelligent, optimistic concurrency database access scheme
US7080144B2 (en) * 2000-12-22 2006-07-18 Bell South Intellectual Property Corp. System enabling access to obtain real-time information from a cell site when an emergency event occurs at the site
US7295829B2 (en) * 2000-12-22 2007-11-13 At&T Bls Intellectual Property, Inc. System, apparatus and method for managing telephone call records
US6975705B2 (en) * 2000-12-22 2005-12-13 Bellsouth Intellectual Property Corp. System, method and apparatus for capturing and processing call processing failures occurring at a telephone switch control processor
US6792269B2 (en) 2000-12-22 2004-09-14 Bellsouth Intellectual Property Corporation System, method and apparatus for tracking deployment of cellular telephone network sites
US7099660B2 (en) 2000-12-22 2006-08-29 Bellsouth Intellectual Property Corp. System, method and apparatus for a network-organized repository of data
US6985915B2 (en) 2001-02-28 2006-01-10 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of files
US6847983B2 (en) 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
US7058663B2 (en) * 2001-03-13 2006-06-06 Koninklijke Philips Electronics, N.V. Automatic data update
US6901455B2 (en) * 2001-06-29 2005-05-31 Intel Corporation Peripheral sharing device with unified clipboard memory
US7076736B2 (en) * 2001-07-31 2006-07-11 Thebrain Technologies Corp. Method and apparatus for sharing many thought databases among many clients
US20030061349A1 (en) 2001-09-24 2003-03-27 George Lo Method and system for collaboratively developing programming code for programmable controllers
US7065746B2 (en) 2002-01-11 2006-06-20 Stone Bond Technologies, L.P. Integration integrity manager
US7346616B2 (en) * 2002-03-20 2008-03-18 Extended System, Inc. Synchronizing data shared between two devices independent of any other devices that may also share the data
US6947927B2 (en) * 2002-07-09 2005-09-20 Microsoft Corporation Method and apparatus for exploiting statistics on query expressions for optimization
US7865578B1 (en) * 2002-08-19 2011-01-04 Juniper Networks, Inc. Generation of a configuration patch for network devices
US7558835B1 (en) 2002-08-19 2009-07-07 Juniper Networks, Inc. Application of a configuration patch to a network device
US7483965B1 (en) * 2002-08-19 2009-01-27 Juniper Networks, Inc. Generation of a configuration patch for network devices
US7248230B2 (en) * 2002-10-15 2007-07-24 Piccionelli Gregory A Ornament apparatus, system and method
US8706760B2 (en) 2003-02-28 2014-04-22 Microsoft Corporation Method to delay locking of server files on edit
US7523391B1 (en) * 2003-03-25 2009-04-21 Microsoft Corporation Indicating change to data form
US7209920B2 (en) * 2003-06-20 2007-04-24 International Business Machines Corporation Low-overhead consistency check for shared resource using flux indicator
US20040267714A1 (en) * 2003-06-27 2004-12-30 Yuri Frid Method and system for computerized creating, maintaining, updating, and querying inventory database over the internet for the locations and the obiects with time-dependent and time-independent attributes
US7523097B1 (en) 2004-01-13 2009-04-21 Juniper Networks, Inc. Restoration of archived configurations for a network device
US7199579B2 (en) * 2004-03-08 2007-04-03 Allegro Microsystems, Inc. Proximity detector
US8239598B1 (en) * 2005-12-13 2012-08-07 Teradata Us, Inc. Techniques for tracking status within object chains
US7644308B2 (en) * 2006-03-06 2010-01-05 Hewlett-Packard Development Company, L.P. Hierarchical timestamps
EP2059881B1 (de) 2006-09-04 2011-08-10 Extreme Technologies Ltd. Verfahren zur verwaltung der gleichzeitigen modifikation von datenbankobjekten während der entwicklung
WO2008040068A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Advanced synchronization and contention resolution
US20080120478A1 (en) * 2006-10-05 2008-05-22 Holt John M Advanced synchronization and contention resolution
US7822792B2 (en) * 2006-12-15 2010-10-26 Sap Ag Administration of planning file entries in planning systems with concurrent transactions
US7788360B2 (en) * 2007-09-10 2010-08-31 Routesync, Llc Configurable distributed information sharing system
US9401957B2 (en) * 2007-09-14 2016-07-26 International Business Machines Corporation System and method for synchronization between servers
CN100501744C (zh) * 2007-09-29 2009-06-17 腾讯科技(深圳)有限公司 一种文档同步方法及系统
MX2011009172A (es) 2009-03-03 2011-12-16 Gregory A Piccionelli Aparato, sistema y metodo de ornamento.
US8805924B2 (en) * 2010-05-26 2014-08-12 Microsoft Corporation Optimistic concurrency utilizing distributed constraint enforcement
US20140149463A1 (en) * 2010-12-29 2014-05-29 Nokia Corporation Method, apparatus, system and computer program product for managing data in database
US9367298B1 (en) 2012-03-28 2016-06-14 Juniper Networks, Inc. Batch configuration mode for configuring network devices
US10678775B2 (en) * 2016-12-20 2020-06-09 International Business Machines Corporation Determining integrity of database workload transactions
US10127019B2 (en) * 2017-03-08 2018-11-13 Hartford Fire Insurance Company System to coordinate source code module changes

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799320A (en) 1989-08-23 1998-08-25 John R. Klug Remote multiple-user editing system and method
US5247684A (en) 1991-10-03 1993-09-21 The United States Of America As Represented By The Secretary Of The Navy Light update notification mechanism for shared data structures
US5307487A (en) 1991-10-03 1994-04-26 The United States Of America As Represented By The Secretary Of The Navy Method of database synchronization with consistency determined by entry and exit counters used on both update and retrieval
US5499367A (en) 1991-11-15 1996-03-12 Oracle Corporation System for database integrity with multiple logs assigned to client subsets
US5555388A (en) 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5666530A (en) 1992-12-02 1997-09-09 Compaq Computer Corporation System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between
SE500599C2 (sv) 1992-12-08 1994-07-25 Ellemtel Utvecklings Ab Sätt att optimera minnesutrymme i en databas
US5710922A (en) 1993-06-02 1998-01-20 Apple Computer, Inc. Method for synchronizing and archiving information between computer systems
SE515344C2 (sv) 1994-02-08 2001-07-16 Ericsson Telefon Ab L M Distribuerat databassystem
US5706509A (en) 1995-04-28 1998-01-06 Intel Corporation Application independent record level synchronization
US5893115A (en) 1995-11-29 1999-04-06 Lucent Technologies, Inc. Isochronal updating of data records
EP0864129B1 (de) * 1995-12-01 2000-08-16 BRITISH TELECOMMUNICATIONS public limited company Datenbasiszugriff
US5873096A (en) 1997-10-08 1999-02-16 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
US5926816A (en) * 1996-10-09 1999-07-20 Oracle Corporation Database Synchronizer
US5870759A (en) * 1996-10-09 1999-02-09 Oracle Corporation System for synchronizing data between computers using a before-image of data
US5870765A (en) 1996-10-09 1999-02-09 Oracle Corporation Database synchronizer
US5845292A (en) 1996-12-16 1998-12-01 Lucent Technologies Inc. System and method for restoring a distributed checkpointed database
US5829001A (en) 1997-01-21 1998-10-27 Netiq Corporation Database updates over a network
DE19708021C1 (de) * 1997-02-27 1998-08-13 Siemens Ag Verfahren zur Regelung eines Zugriffs von Rechnern auf Daten eines zentralen Rechners
FI106989B (fi) 1997-06-12 2001-05-15 Nokia Networks Oy Menetelmä tietojen kirjoittamiseksi ja lukemiseksi
US6026401A (en) * 1997-10-14 2000-02-15 International Business Machines Corporation Locking tool data objects in a framework environment
US6189007B1 (en) * 1998-08-28 2001-02-13 International Business Machines Corporation Method and apparatus for conducting a high performance locking facility in a loosely coupled environment

Also Published As

Publication number Publication date
EP1206744A1 (de) 2002-05-22
ATE305155T1 (de) 2005-10-15
CA2361461C (en) 2008-04-22
JP2002536747A (ja) 2002-10-29
AU2953700A (en) 2000-08-25
TR200102286T2 (tr) 2002-01-21
CN1346472A (zh) 2002-04-24
CA2361461A1 (en) 2000-08-10
HK1045899B (zh) 2005-07-15
US6393419B1 (en) 2002-05-21
CN1173286C (zh) 2004-10-27
WO2000046698A1 (en) 2000-08-10
HK1045899A1 (en) 2002-12-13
EP1206744B1 (de) 2005-09-21
DE60022767D1 (de) 2005-10-27

Similar Documents

Publication Publication Date Title
DE60022767T2 (de) Mehrpunkten dateibank synchronisierungsprotokoll um datenverfalschung zu vermeiden.
DE69736748T2 (de) Editierumgebung für objektmodelle und verfahren zu deren anwendung
DE69835845T2 (de) Umgebung mit zwischen Mehreren geteilten Daten in der jede Datei unabhängige Sicherheitseigenschaften hat
DE60018803T2 (de) Verfahren und apparat zur verwaltung von information der speicheraktivitäten von datenspeichersystemen
DE60306674T2 (de) Verfahren und systeme zur regelung des zugriffs auf ein datenobjekt mittels sperren
DE60006065T2 (de) Verfahren und system zur entwicklung, anwendung, fernladung, und ausfuhrung, von datenbank gesteuerten webseiten
DE69729926T2 (de) Netzwerkbrowser
DE69929095T2 (de) Verwaltung eines durch eine Mehrzahl von Knoten benutzten Betriebsmittels
DE102008015662B4 (de) Beseitigung von Daten
US6820082B1 (en) Rule based database security system and method
DE102014215621A1 (de) Vorlagensystem zum Generieren von benutzerangepassten Dokumenten
DE202011110895U1 (de) Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen
DE10039537A1 (de) Verbesserung der mehrdimensionalen Umstrukturierung beim Hinzufügen oder Entfernen von Dimensionen und Dimensionsmitgliedern
DE19844071A1 (de) Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld
DE10348371A1 (de) Mehrfachorganisationsdatenzugriffsüberwachungs- und -managementsystem
DE19963673A1 (de) Verfahren, Systeme und Computerprogrammprodukte zur Dokumentenverwaltung für Software-Entwicklungssysteme
DE112012004036T5 (de) Definieren des Geltungsbereichs und Verwalten der Rollenentwicklung
DE69725899T2 (de) Verfahren zur Instandhaltung eines Netzwerks von teilweise replizierten Datenbanken
DE60307527T2 (de) Tupleraumoperationen für eine feinkörnige Systemsteuerung
EP1637956A1 (de) Erzeugung anonymisierter Datensätze zum Testen und Entwickeln von Anwendungen
DE202014005278U1 (de) Einbetten von archivierten Daten in eine Datenquelle
DE102004047146A1 (de) Rechteverwaltung
DE10063514A1 (de) Verwendung einer gespeicherten Prozedur zum Zugriff auf Indexkonfigurationsdaten in einem fernen Datenbankverwaltungssystem
DE112022003063T5 (de) Data-governance-systeme und -verfahren
DE112007002327T5 (de) Persistente Sperren auf Ressourcen zur Steuerung der Nebenläufigkeit

Legal Events

Date Code Title Description
8364 No opposition during term of opposition