DE19844071A1 - Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld - Google Patents

Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld

Info

Publication number
DE19844071A1
DE19844071A1 DE19844071A DE19844071A DE19844071A1 DE 19844071 A1 DE19844071 A1 DE 19844071A1 DE 19844071 A DE19844071 A DE 19844071A DE 19844071 A DE19844071 A DE 19844071A DE 19844071 A1 DE19844071 A1 DE 19844071A1
Authority
DE
Germany
Prior art keywords
file
data
conflict
user
master
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.)
Withdrawn
Application number
DE19844071A
Other languages
English (en)
Inventor
Mordechai M Beizer
Daniel Berg
Rand Scullard
Pradeep R Simha
Mark A Solomon
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.)
EISTREAM TECHNOLOGIES, INC., DALLAS, TEX., US
Original Assignee
Eastman Kodak Co
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 Eastman Kodak Co filed Critical Eastman Kodak Co
Publication of DE19844071A1 publication Critical patent/DE19844071A1/de
Withdrawn 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/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1787Details of non-transparently synchronising file systems
    • 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
    • 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

Description

Die vorliegende Erfindung betrifft ein Verfahren und System zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld.
In vielen geschäftlichen Transaktionen ist es häufig erforderlich, einen komplexen Satz von Dokumenten zusammenzustellen, um die Transaktion abzuschließen. Derartige Dokumente werden üblicherweise in Ordnern organisiert. Einige der Dokumente stehen möglicherweise schon zu Beginn der Transaktion zur Verfügung, während andere erst während der laufenden Transaktion eingehen oder erzeugt werden. Bestimmte Dokumente müssen vor Beginn der Arbeit an verschiedenen, transaktionsspezifischen Aufgaben bereitstehen. Zudem muß eine Anzahl von Personen gleichzeitig an der Transaktion arbeiten können, von denen alle einen gleichzeitigen Zugriff auf die Transaktionsinformationen benötigen.
Dokumente und Daten dieser Art können in einem gemeinsamen, strukturierten Datenobjekt gespeichert sein. Diese Objekte umfassen allgemein verschiedene Teile, zu denen zusammen­ gehörige Dokumente zusammengefaßt sind, ein oder mehrere Formulare, in die Daten einge­ tragen werden können, sowie Verweise auf andere Dokumente usw. Das Datenobjekt wird derart gespeichert, daß es nach Bedarf vielen verschiedenen Benutzern zugänglich ist. Dem­ entsprechend ist es erforderlich, Konflikte zu vermeiden, die daraus entstehen, daß zwei oder mehr Personen gleichzeitig auf dasselbe Datenobjekt zugreifen und versuchen, es zu aktuali­ sieren.
Ein herkömmliches Verfahren besteht darin, eine Datei oder ein Datenobjekt nach dem Öff­ nen gegen den Zugriff und die Änderung durch andere Benutzer zu "sperren". Zwar verhindert diese Vorgehensweise Konflikte zwischen den Benutzern, aber sie schränkt auch den Zugang durch andere Benutzer auf einen reinen Lesezugriff ein, und zwar so lange, bis der erste Benutzer seinen Zugang abschließt und die Datei wieder freigibt. Eine gewisse Verbesserung wird durch eine detaillierte Sperrung bestimmter Teile des Datenobjekts erreicht, indem bei­ spielsweise einzelne Sätze einer Datenbank oder eines Datenobjekts gesperrt werden, sobald diese geöffnet werden, während die übrigen Sätze der Datenbank frei bleiben. Diese Art der Sperrung kann noch detaillierter ausgelegt werden, etwa indem man einzelne Felder innerhalb eines Datensatzes sperrt. Ein großer Nachteil jeglicher Sperrkonzepte gleich welcher Detail­ ebene besteht darin, daß die Benutzer bereits vorher implizit oder explizit entscheiden müs­ sen, welche Datenelemente frei bleiben und welche gesperrt werden müssen. Gleichzeitig wird vorausgesetzt, daß die Benutzer zu dem Zeitpunkt, zu dem die Entscheidung getroffen wird, ein bestimmtes Datenelement zu aktualisieren, Zugang zu einem Sperrenverwaltungs­ programm haben. Detaillierte Sperrkonzepte unterliegen der Gefahr einer gegenseitigen Sper­ rung. Diese kann dann auftreten, wenn sich Sperrungen teilweise überlagern. In Umgebungen mit verteilter Verarbeitung und duplizierten Datenobjekten oder in einer Umgebung, in denen mehrere Offline-Benutzer einen Lese-/Schreibzugriff auf dieselben Datenobjekte benötigen, arbeiten Sperrmechanismen nicht zufriedenstellend.
Einige herkömmliche Produkte sehen eine gewisse Unterstützung verteilter Informations­ systeme mit gleichzeitigem Benutzerzugang vor. Diese Produkte umfassen OPEN/workflow von Windows NT, herausgegeben von Eastman Software, Microsoft Exchange, herausge­ geben von Microsoft Corporation, sowie Lotus Notes, herausgegeben von Lotus Corporation. OPEN/workflow sieht einen verteilten Informationsspeicher mit bedarfsweiser Duplizierung vor. Um sicherzustellen, daß nur jeweils ein Benutzer einen Datensatz zwecks Änderung öff­ nen kann, wird ein hierarchisches Sperrenverwaltungsprogramm eingesetzt. Ein übergeord­ netes Sperrenverwaltungsprogramm (Master) protokolliert, welcher Informationsspeicher das Recht hat, einen bestimmten Datensatz zu sperren. Das Master-Sperrenverwaltungsprogramm ist dafür zuständig, die Sperrechte zwischen den Informationsspeichern zu übertragen. Die Informationsspeicher beinhalten jeweils ihr eigenes Sperrenverwaltungsprogramm, um den Zugriff durch einzelne Benutzer zu organisieren, die mit Datensätzen aus diesem Informa­ tionsspeicher arbeiten. Wenn ein Benutzer keine exklusive Sperrung erhalten kann, dann erhält er eine Kopie der Informationen im Lesezugriff. Konflikte werden dadurch vermieden, daß nur jeweils ein Benutzer einen Datensatz ändern kann.
Microsoft Exchange sieht einen verteilten Informationsspeicher mit Duplizierung vor. Eine beliebige Anzahl von Benutzern kann denselben Datensatz öffnen und ändern. Doch nur der erste Benutzer, der einen geänderten Datensatz speichert, kann diesen in dem Originaldaten­ satz speichern. Nachfolgende Benutzer, die versuchen, ihre Kopie des Datensatzes zu spei­ chern, erhalten den Hinweis, daß der Datensatz bereits geändert wurde. Sie erhalten dann die Möglichkeit, entweder ihre eigenen Änderungen zu verwerfen oder ihren bearbeiteten Daten­ satz als separate Datei oder als Datensatz in dem Informationsspeicher abzuspeichern. Die Software versucht weder, die Änderungen, die die Benutzer an dem Datensatz vorgenommen haben, automatisch abzustimmen, noch unterstützt sie einen Benutzer dabei, herauszufinden, welche Elemente des Datensatzes kollidierende Änderungen enthalten. Wenn zwei Benutzer mit verschiedenen Informationsspeichern arbeiten und jeweils ihre eigene Kopie des Daten­ satzes ändern, erkennt Microsoft Exchange diese Situation während des Duplizierens. Die Software erzeugt dann eine Konfliktmeldung, die beide Fassungen des Datensatzes enthält, und sendet den entsprechenden Benutzern einen Hinweis. Die Software versucht weder, den Inhalt der kollidierenden Datensätze automatisch abzustimmen, noch werden die Änderungen analysiert, um die Benutzer bei einer manuellen Abstimmung zu unterstützen.
Lotus Notes unterstützt ebenfalls die gemeinsame Nutzung von Informationen in einem ver­ teilten Umfeld. Die Informationen sind in "Formularen" organisiert, wobei sich jedes For­ mular aus Feldern zusammensetzt, die Daten eines bestimmten Typs enthalten können, etwa Text, Zahlen, Zeit und Rich-Text. Obwohl sowohl der verteilte als auch der Offline-Zugang zu gemeinsamen Daten durch Duplikation unterstützt wird, stimmt das Programm kollidie­ rende Änderungen, die von verschiedenen Benutzern an demselben Formular vorgenommen wurden, nicht automatisch ab. Statt dessen behält Notes beide Kopien des Formulars und macht es erforderlich, daß ein Benutzer, z. B. der Systemverwalter, später entscheidet, welche Änderungen erhalten bleiben sollen, und welche verworfen werden. In einem großen System erzeugt diese Vorgehensweise einen beträchtlichen Arbeitsaufwand und schmälert das Vertrauen der Benutzer eines stark frequentierten Systems, in die Tatsache, daß ein vorhande­ nes Formular pünktlich ausgefüllt wird.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein verbessertes Datenumfeld bereit­ zustellen, das es mehreren Benutzern erlaubt, gleichzeitig auf ein gemeinsames Datenobjekt zuzugreifen und dieses zu bearbeiten, ohne daß es erforderlich ist, daß Objekte, auf die ein Benutzer zugreift, für spätere Benutzer gesperrt werden müssen.
Der Erfindung liegt zudem die Aufgabe zugrunde, ein Verfahren und System zum Analy­ sieren von Änderungen bereitzustellen, welche von mehreren Benutzern an einem Daten­ objekt vorgenommen wurden, und potentielle Datenkonflikte dynamisch zu erkennen, zu vermitteln und zu lösen.
Die zuvor genannten sowie weitere Aufgaben der Erfindung werden durch ein System gelöst, das es mehreren Benutzern ermöglicht, auf dasselbe Datenobjekt, das nachfolgend als Arbeitsordner bezeichnet wird, zuzugreifen und dieses zu aktualisieren, ohne einen Sperr­ mechanismus zu verwenden. Anstatt zur Vermeidung möglicher Konflikte den Zugriff der Benutzer auf Daten zu beschränken, oder anstatt lediglich zu erkennen, daß der Datensatz als ganzes einem Konflikt zu unterliegen scheint, wie dies nach dem Stand der Technik der Fall ist, werden Änderungen an demselben Arbeitsordner, die von unterschiedlichen Benutzern vorgenommen werden, analysiert, um zu ermitteln, ob ein echter Konflikt vorliegt, und um den Konflikt zu lösen. Ein echter Konflikt liegt nur dann vor, wenn zwei Benutzer denselben Datenwert innerhalb des Arbeitsordners ändern. Falls kein echter Konflikt vorliegt, werden die Änderungen gemischt. Wenn die Aktualisierung ein echter Konflikt ist, löst das Programm diesen Konflikt mit oder ohne Benutzereingriff, abhängig von dem Umfeld, in dem der Kon­ flikt festgestellt wird.
Die beaufsichtigte Konfliktlösung wird mit einem Echtzeit-Vermittlungsprozeß durchgeführt, während dessen einem oder mehreren Benutzern ausreichende Informationen zum Lösen des Konfliktes sowie eine Reihe von Vorschlägen zur Konfliktlösung vorgelegt werden. Die unbeaufsichtigte Konfliktlösung wird mit einem Satz vorbestimmter Regeln durchgeführt. Wenn es sich um einen Konflikt handelt, der durch die Regeln nicht lösbar ist, werden die kollidierenden Datenelemente als alternative Unterelemente innerhalb desselben Arbeits­ ordners dargestellt (d. h. ein einzelnes Datenelement, etwa ein anhängendes Dokument, wird durch zwei kollidierende Datenelemente ersetzt, wobei ein zusätzliches Kennzeichen darauf hinweist, daß dies zwei kollidierende Alternativen sind). Wenn später auf den Arbeitsordner zugegriffen wird, werden die Unterelemente als kollidierend ausgewiesen, und der Benutzer erhält die Möglichkeit, den Konflikt zu lösen. Mit Hilfe der unbeaufsichtigten Konfliktlösung ist das Umfeld des Arbeitsordners zuverlässig in einem vernetzten System mit mehreren Ser­ vern implementierbar, von denen jeder duplizierte oder gespiegelte Arbeitsordnerdaten ent­ hält, auf die lokale Benutzer zugreifen können.
Die Erfindung wird im folgenden anhand in der Zeichnung dargestellter Ausführungsbeispiele näher erläutert.
Es zeigen
Fig. 1 eine schematische Übersicht zu der strukturellen Beziehung verschiedener Datenelemente in einem Arbeitsordner;
Fig. 2 ein Systemschaubild eines vernetzten Computerumfelds, in dem gemeinsame Arbeitsordner erfindungsgemäß genutzt werden;
Fig. 3a eine Darstellung der verschiedenen Kopien eines Arbeitsordners, die während der Bearbeitung desselben vorhanden sind, sowie die Lage dieser Kopien;
Fig. 3b u. c Darstellungen des Inhalts eines Arbeitsordners, der von zwei Benutzern bearbeitet wird, deren Änderungen anschließend erfindungsgemäß abgestimmt werden;
Fig. 3d-3f Ablaufdiagramme zur Darstellung eines Verfahrens zum erfindungsgemäßen Abstimmen geänderter Datenelemente eines Arbeitsordners in einem Umfeld mit mehreren Benutzern;
Fig. 4 ein Ablaufdiagramm zur Darstellung eines Beispiels einer unbeaufsichtigten Konfliktabstimmung über mehrere Server hinweg;
Fig. 5 ein Dialogfeld zur erfindungsgemäßen Konfliktvermittlung gemäß einem bevor­ zugten Ausführungsbeispiel der Erfindung; und
Fig. 6 einen Programmbildschirm gemäß einem bevorzugten Ausführungsbeispiel der Erfindung mit Darstellung der kollidierenden Unterelemente, die erzeugt werden, wenn ein einer Vermittlung bedürfender Konflikt auftritt, ohne daß eine Vermitt­ lung erfolgt.
Fig. 1 zeigt eine Darstellung eines neuen Formulars eines gemeinsamen, strukturierten Datenobjekts 10 zum Organisieren elektronischer Dokumente, das nachfolgend als "Arbeitsordner" bezeichnet wird. Der Arbeitsordner ermöglicht es Benutzern, eine Sammlung von Dokumenten sowie verschiedene, zugehörige Metadaten in einem einzigen Datenobjekt zu sammeln und zu organisieren, auf das von mehreren Benutzern gleichzeitig zugegriffen werden kann. Ein Arbeitsordner kann Abschnitte 26 für das Gruppieren zusammengehöriger Dokumente 28 umfassen und, gemäß einem zugehörigen Aspekt der Erfindung, Platzhalter 24, die auf Dokumente hinweisen, die erwartungsgemäß in den Arbeitsordner gestellt werden sollen. Der Arbeitsordner kann zudem eine oder mehrere Aufgabeneinträge 14 enthalten, die dazu benutzt werden, den Fortschritt der mit einem Arbeitsordner zusammenhängenden Arbeiten zu protokollieren, sowie zugehörige Metadaten in Form von Informationsfeldern 20, verbundenen Kommentaren 16 und ein detailliertes History-Protokoll 18 sämtlicher Änderun­ gen, die an dem Arbeitsordner durchgeführt wurden. Der Arbeitsordner sieht eine prozeß­ bezogene Funktionalität derart vor, daß er die Aufgabeneinträge 14 protokolliert, einschließ­ lich der Aufgabenzuweisungen und Aufgabentermine, indem Makros 22 entweder auf Anfor­ derung oder in Ansprechen auf verschiedene Ereignisse ausgeführt werden.
Der Arbeitsordner wird als spezialisiertes Datenobjekt 10 implementiert, das von einem Benutzer organisiert und konfiguriert werden kann, und auf das der Benutzer über eine Benut­ zeroberfläche und auf das Drittanwendungen über eine automatische Schnittstelle Zugang haben. Bei dem Computerumfeld kann es sich um einen einzelnen Computer handeln, oder es kann sich um viele Computer handeln, die über ein oder mehrere Netze miteinander verbun­ den sind, einschließlich lokaler Netze, Intranets und das Internet, wobei die Computer fort­ laufend oder mit Unterbrechungen miteinander verbunden sind. Vorzugsweise ist das Arbeits­ ordnerprogramm unter einem herkömmlichen Betriebssystem implementiert, wie z. B. Microsoft Windows, das über eine Benutzeroberfläche mit herkömmlichen grafischen Ele­ menten verfügt und über eine automatische Schnittstelle, die auf herkömmlichen Standards wie OLE Automatisierung oder COM aufsetzt. Das Arbeitsordner-Datenobjekt ist durch­ gängig derart gespeichert, daß es in einem Netz gespeichert, transportiert und verteilt werden kann, und daß es für den Zugriff und die Änderung von Software bereitsteht, die auf einer Vielzahl verschiedener Plattformen läuft. Eine durchgängige, bevorzugte Darstellung wäre eine derartige, die den gängigen Nachrichtenübermittlungsstandards entspricht.
Fig. 2 ist ein grundlegendes Diagramm eines vernetzten Computerumfelds mit gemeinsamen, strukturierten Datenobjekten, d. h. Arbeitsordnern. Ein Arbeitsordner kann auf einem Einzel­ platzcomputer angelegt werden, aber vorzugsweise werden die Arbeitsordner und das unter­ stützende Arbeitsordnerumfeld (das Arbeitsordnerprogramm) in einem vernetzten System implementiert. Die Arbeitsordner befinden sich auf einer elektronischen Speichereinrichtung 30, die mit einem Netz 31 verbunden ist und darüber mit einer Vielzahl von Benutzern 34-39. Bei einem Endbenutzergerät kann es sich um einen Einzelplatzcomputer handeln (Benutzer 36), ein mit einem lokalen Prozessor 37 verbundenes Terminal (Benutzer 34), ein mit einem entfernten Prozessor 40 verbundenes einfaches Terminal (Benutzer 38), oder um einen mit einem Internet-Server 41 verbundenen "Web-Browser" (Benutzer 39). Das Netz 31 kann zu­ dem den Zugriff auf ein oder mehrere "externe" Dokument-Repositories 42 gewähren. Die Datenverbindungen zwischen den in Fig. 2 dargestellten Elementen umfassen physische Ver­ bindungen und Ferndatenverbindungen, z. B. über schnurlose Techniken, wie Funkmodems.
Zwar wird der Arbeitsordnerspeicher 30 als separates, gemeinsames Hardwareelement darge­ stellt, doch Fachleuten ist selbstverständlich klar, daß es unerheblich ist, ob dieses Speicher­ element eine physisch getrennte Einheit ist, ob es sich in einem mit dem Netz verbundenen lokalen oder entfernten Prozessor befindet, oder ob es sich um ein verteiltes Speichersystem handelt. Es ist lediglich erforderlich, daß der Speicherbereich 30 für jeden Benutzer zugäng­ lich ist. Das Netz 31 kann jede denkbare Konfiguration aufweisen. Insbesondere kann es ein herkömmliches lokales Netz sein, ein Intranet, das Internet oder eine Kombination verschie­ dener Netzkonfigurationen. Das Dokument-Repository 42 kann ein oder mehrere lokale Dokumentverwaltungssysteme umfassen, ein Datenarchiv in Form eines CD-ROM-Wechslers oder einen beliebigen, im Zugriff befindlichen Datenserver, etwa einen Internet-Server, der über eine URL-Adresse zugänglich ist.
In einer Arbeitsumgebung für eine Arbeitsgruppe ist es wichtig, daß mehr als ein Benutzer gleichzeitig Zugang zu einem gegebenen Arbeitsordner hat. Erfindungsgemäß werden Daten­ konflikte nicht durch Dateisperrung verhindert. Statt dessen sieht das System einen Mecha­ nismus zur automatischen Konfliktabstimmung vor. Die Abstimmung nutzt die Tatsache, daß, obwohl zwei oder mehrere Benutzer gleichzeitig auf denselben Arbeitsordner zugreifen, zwei Benutzer normalerweise nicht gleichzeitig die Daten desselben Feldes verändern, insbeson­ dere wenn verschiedene Benutzer verschiedene Zuständigkeitsbereiche haben. Gemäß einem Aspekt der Erfindung werden daher von jedem Benutzer vorgenommene Änderungen analy­ siert, um zu ermitteln, ob tatsächlich eine einen Konflikt verursachende Aktualisierung erfolgte, oder ob die Änderungen in einem einzigen Arbeitsordner gemischt werden können, wobei beide Aktualisierungssätze kombiniert werden.
Die Abstimmung wird mit oder ohne Benutzereingriff durchgeführt, abhängig von der Art der Konflikte und davon, ob der Konflikt während eines Speichervorgangs oder während des Duplizierens öffentlicher Ordner zwischen zwei Servern erkannt wird. Die Abstimmung wird durchgeführt, wenn Konflikte auf einem einzelnen Server auftreten, oder wenn Konflikte zwischen Arbeitsordnern auftreten, die auf mehrere Server-Standorte kopiert werden. Das ermöglicht es mehreren Benutzern, Änderungen an demselben Arbeitsordner gleichzeitig vorzunehmen, gleichgültig, ob sie sich auf verschiedenen Servern befinden. Das Arbeitsord­ nerprogramm erkennt Konflikte und fordert von den Benutzern entweder die zum Lösen der Konflikte erforderlichen Informationen im Dialog an (beaufsichtigte Abstimmung), oder es löst derartige Konflikte automatisch nach einem vorbestimmten Regelsatz (unbeaufsichtigte Abstimmung). Fachleute werden erkennen, daß die erfindungsgemäße Konfliktabstimmung nicht auf den Einsatz in einem Arbeitsordnerumfeld beschränkt ist, sondern daß sie auch be­ nutzt werden kann, um Konflikte zu lösen, die in vielen anderen gemeinsamen Datenum­ feldern entstehen, beispielsweise in einer gemeinsamen Datenbank.
Die beaufsichtigte Abstimmung sieht eine sofortige Vermittlung und Lösung des Konfliktes durch einen oder mehrere Systembenutzer vor. Die beaufsichtigte Abstimmung kommt dann zum Einsatz, wenn mehrere Benutzer an einem einzigen Standort mit demselben Arbeits­ ordner arbeiten. Die unbeaufsichtigte Abstimmung kommt dann zum Einsatz, wenn mehrere Standorte einbezogen sind. Anstatt einen Vermittlungsdialog zwischen den Benutzern aufzu­ rufen, werden Konflikte nach einem Satz heuristischer Regeln gelöst. Konflikte, die nicht ohne Benutzereingriff gelöst werden können, werden in der Datenstruktur erhalten, so daß sie später korrigierbar sind. In beiden Arten der Abstimmung können der erkannte Konflikt und die Lösung desselben in einem History-Protokoll aufgezeichnet werden, das mit dem Arbeits­ ordner derart verbunden ist, daß der Abstimmungsprozeß ggf. rekonstruierbar ist oder rück­ gängig gemacht werden kann.
Allgemein entstehen Konflikte, wenn zwei oder mehr Benutzer gleichzeitig Änderungen an einem gegebenen Arbeitsordner vornehmen. Wenn der zweite Benutzer eine "Kopie" des Arbeitsordners speichert, erkennt das erfindungsgemäß in dem Arbeitsordnerprogramm implementierte Abstimmungsprogramm die potentiellen Konflikte. Der erste Benutzer, der die Änderungen abspeichert, stößt auf keine Konflikte, da die Version des Arbeitsordners auf dem Server seit dem ersten Öffnen nicht geändert worden ist. Wenn jedoch ein weiterer Benutzer versucht, abzuspeichern, erkennt das Arbeitsordnerprogramm, daß die Version des Servers neuer ist als die Version, die der zweite Benutzer ursprünglich öffnete und löst eine beaufsichtigte Abstimmung aus.
Eine typische vernetzte Datenverarbeitungsumgebung wird in Fig. 3a gezeigt. Die Stamm­ kopie eines Datenobjekts, wie etwa Arbeitsordner 52, wird innerhalb des vernetzten gemein­ samen Speicherbereichs 50 gespeichert. Wenn ein Benutzer den Arbeitsordner 52 bearbeitet, wird eine lokale Kopie 54 aus dem gemeinsamen Speicherbereich 50 in einen lokalen Spei­ cherbereich 56 übertragen und steht dort dem Benutzer zur weiteren Bearbeitung zur Ver­ fügung. Häufig bleibt die ursprüngliche lokale Kopie des Arbeitsordners 54 erhalten, wenn der Arbeitsordner bearbeitet wird, und es wird eine separate lokale Bearbeitungskopie 58 erzeugt. Wenn der separate, lokal bearbeitete Arbeitsordner 58 gespeichert wird, kann er mit dem lokalen Originalexemplar 54 verglichen werden, um zu ermitteln, welche Änderungen von dem Benutzer vorgenommen worden sind, und um einen Vergleich mit der Stammkopie 52 zu vollziehen, die möglicherweise ihrerseits in der Zwischenzeit von einem zweiten Benutzer geändert worden ist.
Erfindungsgemäß vergleicht das Abstimmungsprogramm die Version der zuletzt gespeicher­ ten lokalen Kopie 54 mit der Stammversion des Arbeitsordners 52 auf dem Server, wenn ein Benutzer die lokale Kopie 58 bearbeitet und dann den bearbeiteten Arbeitsordner speichert (und dadurch das lokale "Originalexemplar" 54 aktualisiert). Wenn keine der ermittelten Änderungen an dem Arbeitsordner in einem tatsächlichen Konflikt mit Änderungen an der Stammkopie 52 stehen, die von anderen durchgeführt wurden, d. h. Änderungen, die an ande­ ren Datenelementen in dem Arbeitsordner vorgenommen wurden, dann mischt das Abstim­ mungsprogramm die neue Fassung mit der auf dem Server befindlichen Fassung, und der Speichervorgang wird fortgesetzt. Die aktualisierte Stammkopie 52 kann dann ggf. zum loka­ len Server zurück übertragen werden, um die lokale Kopie des Benutzers zu aktualisieren.
Benutzer 1 und 2 öffnen beispielsweise denselben Arbeitsordner. Benutzer 1 hängt ein Doku­ ment an den Arbeitsordner an und nimmt in einem Statusdatenfeld eine Änderung vor, die auf den Zustand "abgeschlossen" hinweist. Benutzer 2 öffnet gleichzeitig ein anderes Dokument in dem Arbeitsordner und gibt gestützt auf dessen Inhalt den Wert verschiedener weiterer Arbeitsordnerfelder ein, z. B. aktuelle Ausgaben und Einnahmen. Weil keiner der Benutzer dieselben Objekte in dem Arbeitsordner geändert hat, kollidieren die Änderungen nicht mit­ einander. Die geänderten und ergänzten Daten können daher in dem Stammarbeitsordner ge­ mischt werden. Wenn beide Benutzer dasselbe Datenfeld geändert hätten, d. h. Benutzer 1 hätte das Statusfeld auf "abgeschlossen" gesetzt, während Benutzer 2 das Statusfeld auf "in Bearbeitung" gesetzt hätte, und wenn beide versucht hätten, den aktualisierten Arbeitsordner in dem Netzspeicherbereich zu speichern, hätte das Abstimmungsprogramm den Konflikt erkannt und eine Routine zur beaufsichtigten Konfliktlösung aufgerufen, wobei einem oder beiden Benutzern eine Liste der kollidierenden Änderungen angezeigt worden wäre, mit der Aufforderung, für jeden erkannten Konflikt zu bestimmen, welcher der kollidierenden Werte in der Stammkopie 52 verbleiben soll.
Fig. 3b zeigt die erfindungsgemäße, beaufsichtigte Konfliktlösung. Der Arbeitsordner 52 ent­ hält mehrere Datenfelder mit einzelnen Werten (oder Einzelwertfelder), die mit A, B und D bezeichnet sind, sowie ein Datenfeld C mit mehreren Werten (oder Mehrwertfelder). Benutzer 1 greift auf den Arbeitsordner 52 zu und bearbeitet die lokale Kopie 58 derart, daß Werte der Einzelwertfelder A und B geändert werden, daß einem Mehrwertelement C ein zusätzliches Element (Zeile 2a) hinzugefügt wird, und daß dem Arbeitsordner ein neues Element E zuge­ fügt wird. Benutzer 2 ändert den Wert des Feldes B und ergänzt das Mehrwertelement C in der lokalen Kopie des Arbeitsordners 58' um Zeile 2b.
Wenn die beiden bearbeiteten Arbeitsordner 58, 58' gespeichert werden, erkennt das Arbeits­ ordnerprogramm die Änderungen und ermittelt, ob ein tatsächlicher Konflikt in den aktuali­ sierten Daten vorliegt, oder ob die Änderungen von Benutzer 1 und von Benutzer 2 gemischt werden können. In diesem Beispiel wurde das Feld A von Benutzer 1 geändert, jedoch nicht von Benutzer 2. Diese Aktualisierung erzeugt daher keinen Konflikt, so daß der neue Wert für das Feld A in der aktualisierten Stammkopie, dem Arbeitsordner 52', gespeichert wird. Des­ gleichen stehen keine Änderungen, die der Benutzer 2 am Arbeitsordner 58' vorgenommen hat, in Konflikt mit dem Element E, das der Benutzer 1 dem Arbeitsordner 58 zugefügt hat. Element E wird also mit dem aktualisierten Stammarbeitsordner 52' gemischt. Element C ist ein Mehrwertfeld. Die zusätzlichen Werte von Benutzer 1 und 2 können übernommen werden, ohne daß ein Konflikt entsteht (vorausgesetzt, daß die verschiedenen Werte in Feld C unab­ hängig voneinander sind). Das aktualisierte Element C umfaßt die ursprünglichen Zeilen 1-3, die neue Zeile 2a von Benutzer 1 und die neuen Zeilen 2b und 3a von Benutzer 2.
Im Unterschied dazu wurde das Feld B sowohl von Benutzer 1 als auch von Benutzer 2 geän­ dert. Gemäß der erfindungsgemäßen, beaufsichtigten Konfliktvermittlung wird der letzte Teilnehmer, der seinen Arbeitsordner speichert, dann über den Konflikt informiert, wenn der Arbeitsordner gespeichert worden ist, und ihm werden die Informationen zur Konfliktlösung dargestellt, einschließlich beispielsweise der beiden kollidierenden Werte von Feld B sowie der Name des anderen Teilnehmers, mit dem ein Konflikt vorliegt. Wenn in dieser Situation der Benutzer 2 der letzte abspeichernde Benutzer ist, würde ein Hinweis gegeben, daß die Änderungen an Feld B mit den von Benutzer 1 eingegebenen Daten kollidieren. Benutzer 2 würde dann gebeten, zwischen den kollidierenden Datenwerten zu wählen. Selbstverständlich könnte Benutzer 1 sowie dritte Benutzer ebenfalls über den Konflikt informiert werden, um in der Lage zu sein, an dem Konfliktvermittlungsprozeß teilzunehmen. Darüber hinaus können den Benutzern Prioritäten zugewiesen werden, so daß z. B. Benutzer 2 in der Lage wäre, die Änderungen von Benutzer 2 zu überschreiben, jedoch nicht die Änderungen von Benutzer 1. Um diesen Austausch zu erleichtern, kann ein Protokoll der an dem Arbeitsordner vorge­ nommenen Änderungen erzeugt werden, das die geänderten Elemente sowie den Namen des Benutzers enthält, der die Änderungen durchgeführt hat. Vorzugsweise wird dieses Protokoll in einem "Metaelement" gespeichert, das dem jeweiligen Arbeitsordner zugeordnet ist. Andere Protokollelemente, wie etwa die Uhrzeit der Änderung, der vorherige Wert des Feldes usw. können ebenfalls aufgezeichnet werden. Fig. 3c zeigt den Zustand des Stammarbeits­ ordners 52 sowie die lokalen und bearbeiteten Kopien 54, 58 von Benutzer 1, und zwar vor und nach der zuvor beschriebenen Abstimmung, wenn die Änderungen von Benutzer 2 zuerst gespeichert worden sind. Zu beachten ist, daß die lokale Kopie 54 des aktualisierten Arbeits­ ordners für Benutzer 1 nicht derart aktualisiert wurde, daß sie die Änderungen von Benutzer 2 enthält.
Eine Implementierung eines Verfahrens zur erfindungsgemäßen, beaufsichtigten Konflikt­ lösung wird in den in Fig. 3d-3f gezeigten Ablaufplänen zusammenfassend dargestellt. Fig. 3d ist ein Ablaufplan zur Abstimmung eines Einzelwert-Datenelements, das von einem Benutzer hinzugefügt oder aktualisiert wurde. Wenn ein aktualisierter Arbeitsordner 58 gespeichert wird, wird jedes Datenelement in dem Arbeitsordner geprüft und mit der aktuellen Stammkopie des Arbeitsordners 52 verglichen. Die Vergleiche können aus Gründen der Effi­ zienz ebenfalls mit der lokalen Kopie des ursprünglichen Arbeitsordners 54 durchgeführt werden. Zuerst wird das Element geprüft, um festzustellen, ob es ein neues Datenelement ist (Block 60). Wenn dies der Fall ist, wird das neue Element zu der Stammkopie 52 hinzugefügt (Block 62), und das nächste Feld wird ausgewertet (Block 64). Falls dies nicht der Fall ist, wird das Element überprüft, um festzustellen, ob irgendwelche Änderungen vorgenommen worden sind (Block 66). Dies kann durch Vergleichen des bearbeiteten Arbeitsordners 58 mit der lokalen, ursprünglichen Kopie 54 erfolgen. Wenn der Wert des Elementes gleich ist (d. h. er hat sich nicht geändert), dann ist es nicht nötig, die Stammkopie 52 zu aktualisieren, und das nächste Datenelement wird ausgewertet.
Wenn ein Datenelement geändert worden ist, wird der Wert dieses Elements in der lokalen (nicht aktualisierten) Kopie des ursprünglichen Arbeitsordners 54 mit dem entsprechenden Element in der Stammkopie 52 verglichen (Block 68). Wenn die Werte gleich sind, weist das darauf hin, daß kein anderer Benutzer das Datenelement in der Stammkopie 52 aktualisiert hat, seit die lokale Kopie 54 angefertigt worden ist. Die Änderung kollidiert daher nicht, und der aktualisierte Wert wird für den Stammarbeitsordner 52 benutzt (Block 70). Wenn sich allerdings das Datenelement in der lokalen Kopie 54 von der Stammkopie 52 unterscheidet, weist dies daraufhin, daß ein anderer Benutzer dieses Element geändert und die Stammkopie 52 aktualisiert hat, nachdem die vorliegende lokale Kopie 54 erzeugt worden ist. Diese Situa­ tion stellt einen echten Konflikt dar, der durch die Vermittlung, wie zuvor besprochen, gelöst wird (Block 72). Wenn das Ergebnis der Vermittlung darin besteht, daß sich der Benutzer entscheidet, den Wert der Stammkopie zu überschreiben (Block 74), dann wird die Stamm­ kopie mit dem aktualisierten Wert beaufschlagt (Block 70), und das nächste Feld wird geprüft. Andernfalls fällt der aktualisierte Wert aus dem Arbeitsordner heraus, und der vorhandene Wert in der Stammkopie 52 bleibt unverändert. Ein Verweis auf den gespeicherten Wert, den gestrichenen kollidierenden Wert und die Namen der betroffenen Benutzer wird vorzugsweise in dem Protokoll für den Arbeitsordner 52 gespeichert.
Fig. 3e ist ein Ablaufplan zum Abstimmungsvorgang für ein Mehrwert-Datenelement, das von dem Benutzer hinzugefügt oder aktualisiert worden ist. Im ersten Schritt wird ermittelt, ob ein Unterelement in dem Mehrwert-Datenelement neu ist (Block 75). Wenn dies der Fall ist, wird es zu dem Stammarbeitsordner hinzugefügt (Block 76), und das nächste Daten­ element wird ausgewertet (Block 77). Wenn das nicht der Fall ist, wird das Datenelement mit dem entsprechenden Element in der gespeicherten lokalen Kopie 54 verglichen, um zu ermit­ teln, ob es von dem Benutzer geändert worden ist (Block 78). Wenn die Werte gleich sind, wurde das Element nicht geändert, und das nächste Datenelement wird ausgewertet. Wenn der Wert geändert wurde, wird er mit dem Mehrwert-Datenelement des Stammarbeitsordners 52 gemischt (Block 79), und das nächste Feld wird ausgewertet. Wenn beispielsweise zwei Benutzer dasselbe Element in einem Mehrwert-Datenelement ändern, werden beide Änderun­ gen beibehalten, d. h. der einzelne Originaleintrag wird durch zwei neue Einträge ersetzt.
Fig. 3f ist ein Ablaufplan zum Abstimmungsvorgang für ein Einzel- oder Mehrwert- Datenelement. Zunächst wird ermittelt, ob das von dem Benutzer gelöschte Datenelement (z. B. ein Feld) auch in dem Stammarbeitsordner 52 gelöscht worden ist (Block 80). Wenn dies der Fall ist, braucht nichts weiter unternommen zu werden, und das nächste Feld wird ausgewertet (Block 81). Wenn dies nicht der Fall ist, wird der Wert des gelöschten Feldes in der lokalen Kopie 54 mit dem Stammarbeitsordner 52 verglichen, um zu ermitteln, ob das Feld von einem anderen Benutzer geändert worden ist, seit die lokale Kopie 54 erzeugt wor­ den ist (Block 82). Wenn die Werte gleich sind, hat niemand das Feld aktualisiert, und es wird aus dem Stammarbeitsordner 52 gelöscht (Block 83). Wenn sich die verglichenen Felder unterscheiden, wurde das Feld durch einen anderen Benutzer aktualisiert, nachdem die lokale Kopie 54 erzeugt worden ist. Dies erzeugt einen tatsächlichen Konflikt, der durch Vermittlung gelöst wird (Block 84). Wenn sich der Benutzer entscheidet, den neuen Wert in der Stamm­ kopie zu ignorieren und das Feld dennoch zu löschen (Block 85), wird das Feld aus dem Stammarbeitsordner 52 gelöscht. Andernfalls wird keine Löschung vorgenommen, und das nächste Datenelement wird ausgewertet (Block 81). Vorzugsweise wird dann ein Hinweis auf die Löschung in dem Protokoll aufgezeichnet, und zwar ggf. unter Einschluß des gelöschten Wertes.
Während der Vermittlung wird dem Benutzer, der durch Speichern des Arbeitsordners einen Konflikt ausgelöst hat, eine Konfliktvermittlungsmeldung angezeigt, die die Details bezüglich der kollidierenden Daten und Informationen darüber enthält, welche anderen Benutzer in den Konflikt einbezogen sind, oder anderweitig davon betroffen sein können, und wann die kolli­ dierenden Änderungen vorgenommen wurden. Die Konfliktvermittlungsmeldungen können auch anderen Benutzern angezeigt werden, z. B. den Eigentümern der zuerst gespeicherten, kollidierenden Daten, oder Dritten, etwa einem Supervisor. Ein oder mehrere Benutzer wer­ den vorzugsweise in Echtzeit aufgefordert, den Konflikt zu lösen, indem sie entscheiden, wel­ ches kollidierende Datenelement erhalten bleiben soll.
In dem bevorzugten Ausführungsbeispiel wird ein Arbeitsordner mit dem vollen Umfang der in Fig. 1 gezeigten Elemente implementiert. Ein Konflikt kann somit durch Änderungen veranlaßt werden, die an beliebigen dieser Felder vorgenommen werden. Nachfolgend ist eine können, wenn Inhalt, Attribute und Struktur eines Arbeitsordners geändert werden, und zwar zusammen mit dem bevorzugten Lösungsverfahren.
(A) Kollidierende Änderungen an Attributen eines Elements, einschließlich Abschnitten, Platzhaltern, Dokumenten, Feldern usw.
Wenn das Speichern eines Arbeitsordners durch einen Benutzer einen Konflikt verursacht, wird dem Benutzer eine Vermittlungsdialogmeldung angezeigt, die auf die kollidierenden Änderungen hinweist und es dem Benutzer ermöglicht, auszuwählen, welche Änderung erhalten bleiben soll. In einigen Fällen, insbesondere was Mehrwertattribute betrifft, kann eine Option vorgesehen sein, um die kollidierenden Änderungen derart zu mischen, daß eine resultierende Attributliste eine Zusammenführung aus den Änderungen aller Benutzer ist. In anderen Fällen können die Attribute und der Inhalt eines Elements, etwa der Name und der Inhalt eines Einzelwert-Datenfeldes, als ein einzelner Wert behandelt werden. Konflikte in bezug auf die Attribute oder Daten dieser Elemente werden als einzelner Konflikt behandelt und müssen daher als Einheit gelöst werden. Beispielsweise könnte Benutzer A das Feld "PLZ" in "12345" ändern, während Benutzer B den Namen des Feldes in "Postfach" ändert. Wenn der letzte Speichervorgang erfolgt, werden ein oder mehrere Benutzer über den Kon­ flikt informiert, und erhalten die Möglichkeit, auszuwählen, welche Version des Feldes erhalten bleiben soll.
B) Kollidierende Änderungen hinsichtlich der Anordnung oder Organisation eines Arbeits­ ordners, etwa eine kollidierende Bewegung von Elementen zwischen oder innerhalb von Ab­ schnitten
In dem bevorzugten Ausführungsbeispiel der Erfindung führt dieser Zustand nicht zu einem benutzerseitig lösbaren Konflikt, und zwar hauptsächlich deshalb, weil eine große Menge von Daten im allgemeinen angezeigt werden müßte, um den Konflikt lösen zu können. Vorzugs­ weise bleibt standardmäßig der jüngste Satz der Änderungen an der Datenanordnung erhalten, und es wird eine Meldung erzeugt, um die betroffenen Benutzer über diese standardmäßige Konfliktlösung zu informieren. Einzelheiten hinsichtlich der nicht verworfenen Datenanord­ nung bleiben vorzugsweise in dem History-Protokoll erhalten, und es wird ein Mechanismus bereitgestellt, um die Standardauswahl außer Kraft zu setzen, und diese durch die zunächst verworfene Anordnung zu ersetzen.
(C) Änderungen an dem Inhalt oder an den Attributen eines Elements, das von einem ande­ ren Benutzer gelöscht wurde, oder Löschen eines Elements, das von einem anderen Benutzer geändert wurde
Vorzugsweise wird den Benutzern eine Dialogmeldung zur Konfliktvermittlung angezeigt, und sie erhalten die Möglichkeit, auszuwählen, ob das Element in seinem geänderten Zustand erhalten bleiben soll, oder ob der Löschvorgang fortgesetzt werden soll.
(D) Kollidierende Änderungen an dem Inhalt einer eingebetteten Datei (d. h. Dokument, Bild, Skript usw.), oder derselbe Platzhalter wurde mit zwei verschiedenen Dokumenten ge­ füllt
Die Auswertung des Inhaltes der anhängenden Dokumente ist im allgemeinen komplex, ins­ besondere, wenn die Dokumente lang sind, oder wenn es eine Vielzahl von Formaten gibt. Das Abstimmungssystem ignoriert normalerweise den Inhalt eines anhängenden Dokuments. In dieser Situation wird zum Zeitpunkt des Speicherns keine tatsächliche Abstimmung durch­ geführt. Erfindungsgemäß werden statt dessen die betroffenen Benutzer darüber informiert, daß ein Konflikt hinsichtlich eines eingebetteten Inhalts vorliegt, doch daß die Lösung des Konflikts aufgeschoben wurde. In dem am meisten bevorzugten Ausführungsbeispiel werden beide kollidierenden Dokumente in dem Arbeitsordner als alternative Unterelemente gespei­ chert, wobei jedes Unterelement eine Version des tatsächlichen Dokumentinhalts ist oder des gefüllten Platzhalters. Wenn der Inhalt eines Arbeitsordners angezeigt wird, können die Unterelemente in Gruppen zusammengefaßt und als kollidierende Alternative dargestellt werden. Dies kann automatisch erfolgen, indem Unterelemente mit einem besonderen Attri­ butmerkmal bereitgestellt werden, das auf einen bestehenden Konflikt hinweist. Vorzugsweise kann jeder Benutzer mit den entsprechenden Änderungsrechten diesen Konflikt lösen, indem er explizit wählt, welches der kollidierenden Dokumente erhalten bleiben soll. Vorzugsweise wird dann das nicht gewählte Unterelement automatisch gelöscht. Der Konflikt ist auch auto­ matisch lösbar, wenn alle kollidierenden Unterelemente bis auf ein Unterelement gelöscht oder an eine andere Position des Inhalts verschoben werden.
In einigen Fällen, etwa wenn die kollidierenden Dokumente dasselbe Format aufweisen, wird eine spezielle Dokumentvergleichsroutine (die entweder in das Abstimmungssystem integriert ist, oder die Teil eines externen Softwarepakets ist, etwa eines Textverarbeitungsprogramms), benutzt, um einen Vergleich der Dokumente durchzuführen und die Dokumentkonflikte zur Lösung durch den Benutzer aufzulisten.
Wenn die Position eines derartigen kollidierenden Objekts innerhalb der Struktur des Arbeits­ ordners verschoben wird, werden die zugehörigen Versionen der Unterelemente ebenfalls ver­ schoben. Wenn das kollidierende Objekt gelöscht wird, werden auch alle Unterelemente, die die tatsächlich kollidierenden Versionen des Inhalts enthalten, ebenfalls gelöscht. Der tat­ sächliche Inhalt einer Version des kollidierenden Dokuments kann geändert werden, entspre­ chende Zugriffsrechte vorausgesetzt. Es ist daher für zwei Benutzer möglich, dasselbe Unter­ element zu ändern und somit zusätzlich Konflikte zu verursachen. Diese zusätzlich kollidie­ renden Versionen können in Form weiterer Unterelemente unterhalb des bereits auf oberer Ebene bestehenden Konflikts angezeigt werden.
Da jede Version eines kollidierenden Dokuments unabhängig von den anderen Versionen be­ arbeitet werden kann, ist es zudem möglich, eine Historie für jede Version des kollidierenden Dokuments einzusehen. Die Historie für eine Version des kollidierenden Dokuments gibt Aufschluß darüber, daß die Historie vor Aufteilen in kollidierende Versionen mit allen Histo­ rien des Dokuments gemischt war. Daher können zwei verschiedene Versionen eines kollidie­ renden Dokuments unterschiedliche jüngere Historien aufweisen, teilen sich aber die gleiche Historie bis zu dem Zeitpunkt, zu dem der Konflikt auftrat.
Ein inhaltlicher Konflikt kann nur mit einem anhängenden Inhalt auftreten. Wenn der Platz­ halter oder das Dokument nur Bezug auf einen externen Inhalt nimmt und keinen Anhang enthält, dann greifen alle Benutzer, die den referenzierten Inhalt bearbeiten, genau auf diesel­ ben Bits in genau derselben Position zu. Vorzugsweise wird der simultane Zugriff auf extern referenzierte Inhalte von einem Dokumentverwaltungssystem, einem Dateisystem oder einer Betrachtungsanwendung verwaltet, nicht aber von dem primären Abstimmungssystem.
In dem bevorzugten Ausführungsbeispiel steht ein kollidierendes, eingebettetes Funktions­ skript solange nicht für die automatische Ausführung zur Verfügung, bis der Konflikt gelöst ist. Wenn ein Arbeitsordner von einem Benutzer geöffnet wird, der kollidierende Skripts ent­ hält, wird eine Meldung bereitgestellt, die auf das Problem hinweist und ein Mittel zu dessen Lösung bereitstellt, beispielsweise indem ausgewählt wird, welches Skript zu behalten ist, wonach die anderen gelöscht werden.
(E) Eingebettete Kommentare
In dem bevorzugten Ausführungsbeispiel enthält ein Arbeitsordner einen Bereich, in dem ein den Arbeitsordner betreffender, verbundener Kommentar gespeichert ist. Einträge in einen verbundenen Kommentar erzeugen keine Konflikte, die von einem Benutzer gelöst werden müssen. Da ein Benutzer lediglich Kommentare zu einem vorhandenen Thema beisteuern oder einen neuen Kommentar oder ein neues Thema eröffnen kann, ist es zwei Benutzern nicht möglich, kollidierende Änderungen an demselben Element in dem Kommentar vorzu­ nehmen. Da es zwei Benutzern möglich ist, den Kommentar gleichzeitig um verschiedene Kommentarsätze zu ergänzen, werden diese Änderungen in zeitlicher Reihenfolge nach dem Speichern von dem Abstimmungsprogramm gemischt, so daß die abgestimmte Version des Arbeitsordners die Ergänzung um Kommentare durch alle Benutzer enthält.
Ein Benutzer kann fortlaufend Änderungen an seinem eigenen Kommentar auf "Blattebene" vornehmen, solange niemand darauf geantwortet hat. Für den Fall, daß ein Benutzer Ände­ rungen an seinem eigenen Kommentar vornimmt, während jemand anders gleichzeitig auf eine frühere Fassung des Kommentars antwortet, fügt das Abstimmungsprogramm dem Dialog beide Fassungen hinzu. Der geänderte Kommentar des Benutzers wird dann ohne Antworten dargestellt, und die frühere Fassung wird mit der Antwort des betreffenden Benut­ zers dargestellt.
(F) Eingebettetes History-Protokoll
Vorzugsweise enthält jeder Arbeitsordner ein eingebettetes History-Protokoll, das ein Proto­ koll der Änderungen umfaßt, die an dem Arbeitsordner vorgenommen worden sind. In dem bevorzugten Ausführungsbeispiel erzeugt das History-Protokoll niemals Konflikte, die von Benutzern gelöst werden müssen, weil Einträge aller Stellen miteinander gemischt werden, und zwar in zeitlicher Reihenfolge. Wenn Benutzer an dem Arbeitsordner kollidierende Ände­ rungen vornehmen, zu deren Lösung ein Benutzereingriff erforderlich ist, enthält das History- Protokoll vorzugsweise Einträge sowohl für die Änderungen, die beibehalten wurden, und für die, die ignoriert wurden. Auf diese Weise gibt das Protokoll alle versuchten Änderungen an dem Arbeitsordner wieder, die jemals erfolgt sind.
In einem bevorzugten Ausführungsbeispiel und in Ergänzung zu der Fähigkeit, Konflikte dynamisch Element für Element lösen zu können, ermöglicht das Abstimmungssystem auch die dynamische Lösung einer Situation mit mehreren Konflikten, etwa wenn mehrere von einem Benutzer geänderte Elemente mit Änderungen eines anderen Benutzers kollidieren. Vorzugsweise versieht der Vermittlungsdialog den Benutzer oder die Benutzer mit der Mög­ lichkeit, alle Änderungen eines bestimmten Benutzers beizubehalten, anstatt die Konflikte nacheinander lösen zu müssen. Darüber hinaus erhält ein Benutzer die Möglichkeit, den Spei­ chervorgang insgesamt rückgängig zu machen. Für einen in dem Vermittlungsdialog darge­ stellten Konflikt erhält der Benutzer vorzugsweise zudem die Möglichkeit, eine Volltext­ erläuterung der kollidierenden Änderungen zu jedem Element einzusehen. In einem Ausfüh­ rungsbeispiel wird diese Möglichkeit als eine Schaltfläche "Details" präsentiert, die neben jedem Konflikt in dem Vermittlungsdialog angeordnet ist.
Gemäß einer anderen Aufgabe der Erfindung ist eine Abstimmung ohne Benutzereingabe durchführbar. Diese Abstimmung wird als unbeaufsichtigte Abstimmung bezeichnet und läßt sich auf der Client-Seite oder auf der Server-Seite durchführen. Die unbeaufsichtigte Ab­ stimmung ist insbesondere in Umfeldern sinnvoll, in denen Arbeitsordner auf zwei oder mehreren getrennten Datenservern gespiegelt werden, von denen jedes Exemplar einen örtlich gemeinsam genutzten Datenspeicherbereich darstellt. Die Grundalgorithmen für die unbeauf­ sichtigte Abstimmung sind denen der beaufsichtigten Abstimmung ähnlich. Statt tatsächliche Konflikte durch Vermittlung zu lösen, wie dies bei der unbeaufsichtigten Abstimmung der Fall ist, werden die Konflikte entweder durch eine Reihe vorbestimmter Regeln gelöst, oder die Lösung wird bis zur Benutzereingabe verschoben.
Wenn mehrere Benutzer an verschiedenen Standorten Arbeitsordner bearbeiten, die in ver­ schiedenen öffentlichen Ordnern gespeichert sind, d. h. daß die Benutzer verschiedene gemeinsame Speicherbereiche bearbeiten, treten Konflikte leicht auf, wenn die Arbeitsordner an jedem Standort dupliziert werden. Herkömmliche Netzumfelder weisen normalerweise eine eigene (native) Routine zur Handhabung von Konflikten auf, um zu verhindern, daß eine kürzlich bearbeitete Datei an einem Standort von einer anderen neu bearbeiteten Datei über­ schrieben wird, die von einem entfernten, gespiegelten Standort dupliziert wurde. Erfindungs­ gemäß ignoriert das Abstimmungsprogramm eigene (native) Routinen zur Handhabung ent­ weder in Teilen oder insgesamt. Dies kann z. B. dadurch erfolgen, daß eine bestimmte Meldungsklasse definiert wird, die benutzt wird, um duplizierte Datenobjekte, z. B. Arbeits­ ordner, die von dem vorhandenen Abstimmungssystem verarbeitet werden sollten, von ande­ ren duplizierten Objekten zu trennen, z. B. Systemdateien, die durch eigene (native) Routinen verarbeitet werden können.
Bei der unbeaufsichtigten Abstimmung auf der Client-Seite wird der empfangene Arbeits­ ordner mit der Kopie des momentan an dem lokalen Client vorhandenen Arbeitsordners ver­ glichen, wenn die definierte Meldungsklasse während der standortübergreifenden Duplizie­ rung erkannt wird, was darauf hinweist, daß ein empfangenes Datenobjekt ein duplizierter Arbeitsordner ist. Wenn ein Konflikt erkannt wird, wird der Arbeitsordner als kollidierend gekennzeichnet, doch die Auflösung wird vorzugsweise verzögert. Statt dessen werden die von dem erkannten Konflikt betroffenen Benutzer identifiziert, und eine Konflikthinweis­ meldung wird z. B. per e-Mail an jeden dieser Benutzer verschickt. Vorzugsweise umfaßt diese Meldung einen Mechanismus, der den Arbeitsordner in einer Weise bezeichnet, die es ermöglicht, diesen sofort zu öffnen. Wenn ein kollidierender Arbeitsordner auf seinem Home- Server oder Stamm-Server geöffnet wird, wird beispielsweise der Server, auf dem er ursprünglich erzeugt wurde, automatisch auf der Client-Seite mit Hilfe der unbeaufsichtigten, nachfolgend besprochenen Abstimmungsalgorithmen abgestimmt, ohne daß ein Benutzerein­ griff erfolgt.
Die Abstimmung kann auch auf der Server-Seite eines Netzumfelds durchgeführt werden. Diese Art des Abstimmungsdienstes löst von der Duplizierung ausgelöste Arbeitsordnerkon­ flikte ohne Benutzereingriff. In dem bevorzugten Umfeld von "Microsoft Exchange" wird der Abstimmungsdienst an jedem Standort auf jedem Server installiert, der für die die Arbeits­ ordner enthaltenden öffentlichen Ordner ein Home-Server ist. Der Abstimmungsdienst wird vorzugsweise derart installiert, daß er dann beginnt, wenn die Software für die Server-Spie­ gelung (d. h. Microsoft Exchange) gestartet wird, und er wird gestoppt, wenn diese Software für die Server-Spiegelung heruntergefahren wird. Eine unbeaufsichtigte Abstimmung kann auf Anforderung durchgeführt werden oder kann durch ein Zeitsteuerungsprogramm durchge­ führt werden, das nach Bedarf eng mit dem Ordner-Duplikationsplan verbunden ist.
Während Arbeitsordner über die verschiedenen Server in einem Netz dupliziert werden, wird in der bevorzugten Ausführungsform eine grundlegende Konfliktprüfung durchgeführt, um zu ermitteln, ob möglicherweise ein tatsächlicher Konflikt vorliegt. Bei dieser Prüfung kann es sich um die einfache Feststellung handeln, ob die Zeitstempel von einer duplizierten Datei und der Datei, die ersetzt werden soll, darauf hinweisen, daß beide Dateien bearbeitet worden sind. Wenn festgestellt wird, daß ein duplizierter Arbeitsordner von mehreren Benutzern ge­ ändert worden ist, wird eine Konfliktmeldung erzeugt, und zwar unabhängig davon, ob ein tatsächlicher Konflikt vorliegt. Vorzugsweise wird diese Konfliktprüfung im ersten Durch­ gang von der zugrundeliegenden Software für das Netzumfeld durchgeführt, z. B. von Microsoft Exchange. Kopien möglicherweise kollidierender Arbeitsordner werden derart ge­ speichert, daß sie von dem Abstimmungssystem später verarbeitet werden können.
Wenn eine unbeaufsichtigte Abstimmung auf einem Server aktiviert ist, wird der Speicher für öffentliche Ordner auf dem Server, in dem Arbeitsordner gespeichert werden, daraufhin durchsucht, ob Konfliktmeldungen bezüglich der Arbeitsordner vorliegen. Wenn arbeitsord­ nergestützte Konflikte festgestellt werden, werden die ermittelten kollidierenden Arbeits­ ordner analysiert, und die "Konflikte" werden gemäß einem vorbestimmten Regelsatz gelöst. Die kollidierenden Arbeitsordnerversionen werden dann zu einer einzigen Version des Arbeitsordners kombiniert, die keine Konflikte mehr aufweist.
Wenn eine Duplizierung erfolgt und festgestellt wird, daß ein Arbeitsordner standortüber­ greifend kollidiert, wird eine Arbeitsordnerkonfliktmeldung an alle Standorte gesendet, an denen der Arbeitsordner dupliziert worden ist. Erfindungsgemäß nimmt der Abstimmungs­ dienst jedoch nur an dem Home-Server für diesen speziellen Arbeitsordner eine Konflikt­ lösung vor. Das verhindert eine Situation, in der eine endlose Folge von Konflikten erzeugt wird, wenn der Arbeitsordner an mehreren Standorten abgestimmt und dann dupliziert wird, was ja zu weiteren Konflikten führen würde.
Eine Folge der alleinigen Abstimmung eines Arbeitsordners auf dessen Home-Server ist die Tatsache, daß die anderen Standorte weiterhin kollidierende Versionen des Arbeitsordners aufweisen, bis die abgestimmten Versionen des Arbeitsordners in der nächsten Duplikations­ runde von den gespiegelten Standorten entfernt werden. Wenn ein Benutzer an einem gespie­ gelten Standort den kürzlich abgestimmten Arbeitsordner öffnet, bevor die abgestimmte Ver­ sion an das lokale Spiegelungsprogramm gesendet worden ist, wird der Arbeitsordner vor­ zugsweise schreibgeschützt geöffnet, und der Benutzer erhält eine Meldung, die ihn darauf hinweist, daß der abgestimmte, konfliktfreie Arbeitsordner auf den lokalen Server kopiert werden muß. Alternativ hierzu kann eine Anforderung abgesetzt werden, um das Duplizieren des abgestimmten Arbeitsordners zu veranlassen, wenn dies erforderlich ist, bevor der nor­ male Duplizierungsprozeß ohnehin ausgeführt wird.
Das Abstimmungsprogramm für Arbeitsordner läuft vorzugsweise auf jedem Server, bei dem es sich um einen öffentlichen Informationsspeicher handelt. Das ist darauf zurückzuführen, daß jeder öffentliche Informationsspeicher die Möglichkeit hat, Arbeitsordner zu speichern, die in öffentlichen Ordnern gespeichert sind, und auf die mehrere Benutzer gleichzeitig Zu­ griff haben, wodurch möglicherweise Konflikte entstehen. Jedoch gibt es zu dieser Regel Ausnahmen. Eine Ausnahme betrifft die Tatsache, daß ein Verwalter einen Server in der Organisation derart konfiguriert hat, daß sich dort nur Postfächer befinden, und daß dort nie­ mals öffentliche Ordner und ihre Inhalte gespeichert werden. Eine anderes Szenario tritt auf, wenn ein Server niemals für öffentliche Ordner als Home-Server benutzt wird.
Da der Abstimmungsdienst vorzugsweise nach einem von einem Verwalter konfigurierten Plan abläuft, ist es möglich, daß die Abstimmung unmittelbar nach einer Duplizierung öffent­ licher Ordner nicht für einen kollidierenden Arbeitsordner durchgeführt wird. Dadurch ver­ bleibt ein Zeitfenster, in dem ein Benutzer (an dem Standort, der den Home-Server beher­ bergt) den Arbeitsordner öffnen kann und davon ausgeht, daß er diesen bearbeiten kann, ohne zu erkennen, daß ein Konflikt in dem Arbeitsordner vorliegt. Um dieser Situation gerecht zu werden, werden die gleichen Regeln zur unbeaufsichtigten Abstimmung, die von dem Arbeitsordner-Abstimmungsprogramm auf der Server-Seite benutzt werden, auch von der Abstimmungsroutine auf der Client-Seite benutzt. Wenn ein Benutzer einen Arbeitsordner öffnet, der sich in einem Konfliktzustand befindet (und zwar nur am Standort des Home- Servers), führt der Client unmittelbar vor dem Öffnen des Arbeitsordners automatisch eine unbeaufsichtigte Abstimmung durch. Zu dem Zeitpunkt, an dem der Arbeitsordner dem Benutzer angezeigt wird, ist die Abstimmung auf der Client-Seite abgeschlossen, und der Arbeitsordner unterliegt weder auf der Client-Seite noch auf dem Home-Server einem Kon­ flikt. Wenn der planmäßige Abstimmungsdienst zum Zuge kommt, wird dieser Arbeitsordner nicht mehr abgestimmt, da er konfliktfrei ist. Das Programm auf der Client-Seite übernimmt somit die gleiche Aufgabe wie das auf der Server-Seite übernommen hätte, wenn es zuerst zum Zuge gekommen wäre.
Fig. 4 zeigt ein Diagramm, das eine bevorzugte Ausführungsform des unbeaufsichtigten Abstimmungsprozesses darstellt, so wie er zuvor in einem Umfeld mit Microsoft Exchange beschrieben worden ist, in dem Arbeitsordner in öffentlichen Ordnern von Microsoft Exchange gespeichert werden. Bei den drei Server-Standorten im Netz handelt es sich um Standort 1, Standort 2 und Standort 3. An Standort 1 ist der Server 1 (S1) ein Home-Server für einen öffentlichen Ordner, der einen Arbeitsordner enthält. Dies wird durch den Stern (*) neben S1 vermerkt. Duplikate dieses öffentlichen Ordners werden auf einem Server an jedem der beiden anderen Standorte gespeichert. Die Duplikate wurden während eines standard­ mäßigen Duplikationsprozesses für öffentliche Ordner erzeugt. Dieser Zustand wird durch Schritt 1 dargestellt.
In Schritt 2 bearbeiten zwei Benutzer unterschiedliche Kopien desselben Arbeitsordners. Benutzer A bearbeitet den Arbeitsordner an Standort 1 und speichert den bearbeiteten Arbeitsordner an seinem Home-Server. Benutzer B bearbeitet und speichert ein Duplikat des­ selben Arbeitsordners. Die von Benutzer A und B durchgeführten Änderungen kollidieren miteinander.
In Schritt 3 erfolgt eine herkömmliche Duplizierung öffentlicher Ordner zu Mitternacht. Weil sowohl das Original als auch das Duplikat des Arbeitsordners bearbeitet worden sind, wird eine erste Konfliktmeldung erzeugt und an jedem der drei Standorte hinterlassen. Der Konflikt wird zu diesem Zeitpunkt noch nicht gelöst. Wenn jedoch ein Benutzer des Home-Servers an Standort 1 den kollidierenden Arbeitsordner öffnen wollte, bevor die Abstimmung durchge­ führt worden ist, würde erfindungsgemäß eine unbeaufsichtigte Abstimmung auf der Client- Seite erfolgen.
In Schritt 4 startet der an Standort 1 installierte Abstimmungsdienst und durchsucht S1 nach relevanten Konfliktmeldungen. Wenn die in Schritt 3 erzeugte Konfliktmeldung entdeckt wird, werden die kollidierenden Arbeitsordner analysiert, und der Konflikt wird gemäß vorbe­ stimmter Regeln zur unbeaufsichtigten Abstimmung gelöst. Zu diesem Zeitpunkt unterliegt der auf dem Home-Server vorhandene Arbeitsordner keinem Konflikt mehr. Der Konflikt in den Duplikaten dieses Arbeitsordners an Standort 2 und 3 wurde jedoch noch nicht gelöst, da der abgestimmte Arbeitsordner noch nicht dupliziert worden ist. Gemäß einem Aspekt der Erfindung werden die momentan vorhandenen Duplikate der Arbeitsordner an den Standorten 2 und 3 als schreibgeschützt (nur lesbar) gekennzeichnet. Ein Benutzer, der versuchen würde, die (älteren) Duplikate zu bearbeiten, würde eine Meldung erhalten, die ihn darauf hinweist, daß der Arbeitsordner so lange schreibgeschützt bleibt, bis eine Duplizierung des öffentlichen Ordners stattgefunden hat. Optional hierzu kann der Benutzer die Erlaubnis erhalten, diese Maßnahme zu veranlassen.
In Schritt 5 wird schließlich das Duplizieren des öffentlichen Ordners durchgeführt. Der abge­ stimmte Arbeitsordner wird dadurch von Standort 1 nach Standort 2 und Standort 3 dupliziert. Ein Benutzer an einem beliebigen dieser Standorte hat jetzt den vollständigen Zugang zu dem abgestimmten Arbeitsordner.
Gemäß diesem Aspekt der Erfindung erfordert das Programm zur unbeaufsichtigten Abstim­ mung keinen Benutzereingriff, weil es auf Regeln basiert. Es gibt eine Vielzahl möglicher Regeln, die implementiert werden können, und zwar nicht nur abhängig von der Analyse des Datenkonflikts selbst, sondern auch von Faktoren, wie etwa der Bedeutung des Bereichs eines Arbeitsordners, in dem der Konflikt aufgetreten ist, der Benutzer, die den Konflikt verursacht haben und deren Rechte usw. Die nachfolgende Erörterung beschreibt einen bestimmten Satz von vorgegebenen Konfliktlösungsregeln, die auf die Konfliktlösung für Arbeitsordner zuge­ schnitten sind. Wie Fachleuten klar sein wird, können selbstverständlich unterschiedliche Regeln und Algorithmen verwendet werden. Diese und andere Regeln können auch auf Datenelemente angewandt werden, bei denen es sich nicht um Arbeitsordner handelt.
Vorzugsweise lautet die erste Standardregel, daß die letzte Aktualisierung maßgeblich ist, obwohl ein Vermerk der "ignorierten" Einträge in der Protokolldatei vorgenommen und ein entsprechender Hinweis an die betroffenen Benutzer gesendet werden kann. Eine Ausnahme besteht bei Konflikten mit Dokumenten. Wenn ein Dokumentkonflikt erkannt wird, werden beide Dokumente als Unterelemente in dem Arbeitsordner gespeichert, und es wird ein Kon­ fliktzustand gemeldet. Wenn als nächstes auf den Arbeitsordner zugegriffen wird, wird der Konflikt erkannt, und es wird eine Lösung veranlaßt, beispielsweise durch Vermittlung. Wenn zwei Benutzer einen Arbeitsordner aktualisiert haben, jedoch keine kollidierenden Änderun­ gen an identischen Datenelementen innerhalb des Arbeitsordners vorliegen, werden die beiden kollidierenden Versionen des Arbeitsordners allgemein gemischt. Nach dem Mischen enthält der abgestimmte Arbeitsordner die Zusammenführung aller vorgenommenen Änderungen. Das History-Protokoll gibt zudem alle Änderungen wieder, die von allen Benutzern vorge­ nommen wurden, die an den kollidierenden Versionen gearbeitet haben.
Ein Objekt innerhalb des Arbeitsordners, das von einem der Benutzer gelöscht worden ist, wird in der abgestimmten Version nicht gelöscht, es sei denn, es wurde von allen betroffenen Benutzern gelöscht. Wenn beispielsweise Benutzer A einen Platzhalter gelöscht hat und Benutzer B Arbeiten an anderen Objekten in dem Arbeitsordner durchgeführt hat, die damit nicht in Beziehung stehen, wird der Platzhalter in der abgestimmten Version nicht gelöscht. Die Historie weist allerdings die Tatsache aus, daß der Benutzer A den Platzhalter gelöscht hat.
In einem Fall, bei dem zwei oder mehrere Benutzer kollidierende Änderungen an demselben Objekt in dem Arbeitsordner vorgenommen haben, erkennt das Arbeitsordnersystem dies als tatsächlichen Konflikt, und die unbeaufsichtigte Abstimmung geht entsprechend folgender Regeln vor:
(A) Kollidierende Änderungen an Attributen eines Inhaltselements, einschließlich Abschnitten, Platzhaltern, Dokumenten, Feldern usw.
Im allgemeinen werden die jüngsten Änderungen beibehalten. In dem bevorzugten Ausfüh­ rungsbeispiel werden Änderungen an bestimmten Attributen, etwa an der Liste der anwend­ baren Statuswerte, kombiniert, so daß die Zusammenführung von Werten beibehalten wird.
(B) Kollidierende Verschiebungen von Elementen zwischen oder innerhalb von Abschnit­ ten
Die jüngste Reihenfolge wird beibehalten.
(C) Jegliche Änderungen an einem Element, das von einem anderen Benutzer gelöscht wor­ den ist, oder das Löschen eines Inhaltselements, das von einem anderen Benutzer geändert worden ist
Unabhängig von der zeitlichen Reihenfolge dieser Änderungen haben diese Änderungen Vor­ rang vor dem Löschen, und das Element bleibt in dem Arbeitsordner in seinem geänderten Zustand erhalten.
(D) Kollidierende Änderungen an dem Inhalt anhängender Dokumente, oder derselbe Platz­ halter wird mit zwei verschiedenen Dokumenten gefüllt
Wie bei der interaktiven Abstimmung auf Client-Seite zeigt das Inhaltsfeld ein kollidierendes Objekt, das die kollidierenden Versionen des tatsächlichen Inhalts als Unterelemente enthält. Vorzugsweise erfolgt die Lösung dieses Konflikts durch den Benutzer manuell, und das unbe­ aufsichtigte Abstimmungssystem versucht nicht, den Inhalt der Dokumente zu interpretieren.
(E) Kommentare
Die Ergänzungen der Kommentare werden gemischt, und zwar vorzugsweise nach Datum/Uhrzeit, und unter dem entsprechenden Thema und dem entsprechenden Verlauf, so daß die Version des Arbeitsordners auf dem Server die Ergänzung aller Kommentare durch alle Benutzer wiedergibt.
(F) Historie
Ergänzungen des History-Protokolls werden nach Datum/Uhrzeit gemischt.
Verteilte Arbeitsumfelder können auch in einem mobilen Datenumfeld errichtet werden. Vor­ zugsweise sollten daher ein oder mehrere Benutzer in der Lage sein, ihre Arbeit auf einen ent­ fernten oder mobilen Computer herunterzuladen. Für Umfelder, die Datenobjekte, wie etwa Arbeitsordner, benutzen, die Verweise auf externe Dokumente enthalten können, sollte der Benutzer vorzugsweise in der Lage sein, sich von dem Netz zu trennen und dennoch nicht nur auf die Daten innerhalb des Arbeitsordners zugreifen zu können, sondern auch auf den Inhalt der entfernten Dateien, auf die sich die Verweise beziehen.
Gemäß einer weiteren Aufgabe der vorliegenden Erfindung wird ein Arbeitsordner zunächst mit Hilfe herkömmlicher Dateiübertragungsprotokolle von einem zentralen Speicherbereich auf einen entfernten Speicherbereich übertragen. Die entfernte Einheit ist derart konfiguriert, daß das Arbeitsordnerprogramm gestartet wird, wenn es erkennt, daß ein Arbeitsordner über­ tragen wird. Das auf der entfernten Einheit ausgeführte Arbeitsordnerprogramm extrahiert dann alle Verweise in dem Arbeitsordner, die sich auf externe Dokumente beziehen, und ver­ anlaßt, daß einige oder alle der Dokumente, auf die verwiesen wird, aus dem Netz übertragen werden. Die übertragenen Dokumente werden in einem bezeichneten Bereich auf dem ent­ fernten System gespeichert. Die Dokumentverweise in der entfernten Kopie des Arbeitsord­ ners werden dann derart geändert, daß sie auf die übertragenen Dateien auf dem entfernten System verweisen und nicht auf die Dateien im Netz. Wenn der entfernte Benutzer einen Arbeitsordner zurück zum Hauptsystem überträgt, wird dieser Prozeß umgekehrt. Es wird zudem eine Konfliktprüfung durchgeführt und ggf. eine Abstimmung vorgenommen.
In einem besonders bevorzugten Ausführungsbeispiel arbeitet ein Arbeitsordnerumfeld mit der Bezeichnung WFX, das ein oder mehrere Arbeitsordner enthält und unterstützt, unter Microsoft Windows 95 oder Windows NT 4.0 in Verbindung mit der Infrastruktur von Microsoft Exchange zur Nachrichtenübermittlung. Die Infrastruktur von Microsoft Exchange sieht eine Unterstützung einer Mehrplatzumgebung vor, einschließlich derartiger Funktionen, wie gemeinsame Nachrichten-Repositories, die als öffentliche Ordner bekannt sind, ein global zugängliches Adreßbuch und die Fähigkeit, Nachrichten, z. B. Konflikthinweise, an jeden Benutzer in dem globalen Adreßbuch zu versenden. Die Infrastruktur von Microsoft Exchange zur Nachrichtenübermittlung ist in dem Microsoft Back Office Software Development Kit (SDK) definiert und insbesondere in dem Microsoft Exchange Software Development Kit und dem MAPI Software Development Kit (Anwendungs-Programmschnittstelle zur Nachrichten­ übermittlung nach dem Industriestandard), die beide von der Microsoft Corporation aus Red­ mond, Washington, USA, beziehbar sind. Eine entsprechende, unterstützende Dokumentation findet sich in technischen Beiträgen in der Bibliothek des Microsoft Developers Network. Allerdings sind alle diese Funktionen bei Bedarf auch direkt in dem WFX-Programm inte­ grierbar.
Vorzugsweise umfaßt das Hardwareumfeld einen leistungsstarken Netz-Server unter Microsoft Exchange Server 5.0 oder neuer sowie einen oder mehrere Client-Arbeitsplätze unter Microsoft Windows 95 oder Microsoft Windows NT 4.0 oder neuer sowie einen Client unter Microsoft Exchange oder Microsoft Outlook. Das WFX-Arbeitsordnerprogramm ist in der Programmiersprache C++ geschrieben, obwohl selbstverständlich auch andere Program­ miersprachen benutzt werden können.
In einer besonders bevorzugten Ausführungsform ist das WFX-Programm ein Formularpro­ gramm nach MAPI (Anwendungs-Programmierschnittstelle zur Nachrichtenübermittlung nach dem Industriestandard), das in dem Umfeld von Microsoft Exchange als Betrachter­ anwendung für einen Satz von MAPI-Nachrichtenklassen registriert ist. Der Registrierungs­ prozeß besteht daraus, daß das WFX-Programm herkömmliche MAPI-Funktionsaufrufe durchführt, die Microsoft Exchange anweisen, von diesem Zeitpunkt an stets das WFX-Pro­ gramm aufzurufen, wenn der Benutzer versucht, eine Nachricht in einem bestimmten Satz von Nachrichtenklassen einzusehen, die von WFX abgeleitet wurden. Nach dem Aufrufen führt das WFX-Programm zusätzliche MAPI-Funktionsaufrufe durch, um die tatsächlichen Arbeitsordnerdaten zu laden, die in einer MAPI-Nachricht auf dem Microsoft-Exchange- Server gespeichert sind. Nachdem der Benutzer verschiedene Datenelemente des Arbeits­ ordners geändert oder darin ergänzt hat und das Programm anweist, den Arbeitsordner zu speichern, führt das WFX-Programm weitere MAPI-Funktionsaufrufe durch, um den Arbeits­ ordner als MAPI-Nachricht zurück auf den Microsoft-Exchange-Server zu schreiben und den Abstimmungsprozeß zu veranlassen und durchzuführen. In allen zuvor und nachfolgend ge­ nannten Fällen benutzt das WFX-Programm herkömmliche MAPI-Funktionsaufrufe und/oder Funktionsaufrufe des Microsoft Exchange Software Development Kits, die den einschlägigen Programmierern bekannt sind.
In diesem besonderen Ausführungsbeispiel formatiert das WFX-Programm jeden Arbeits­ ordner als eine Microsoft-Exchange-Nachricht. Arbeitsordner können daher in einen öffent­ lichen Ordner von Microsoft Exchange derart gestellt werden, daß mehrere Benutzer gleich­ zeitig auf denselben Arbeitsordner zugreifen und damit arbeiten können. WFX benutzt die Nachrichteninfrastruktur von Microsoft Exchange, um Arbeit zu verteilen und zu verarbeiten. Ein Arbeitsordner kann also auch direkt von einem Benutzer zu einem anderen gesandt wer­ den. Die Felddatenelemente werden Drittanwendungen dadurch verfügbar gemacht, indem sie als benannte Eigenschaften von Microsoft Exchange definiert werden. Vorlagen für Arbeits­ ordner sind in dem Formularuntersystem von Microsoft Exchange gespeichert. Jede Arbeits­ ordnervorlage ist mit Anwendungsdaten gekennzeichnet, die Microsoft Exchange anweisen, das WFX-Programm aufzurufen, wenn der Benutzer ein Dokument mit einer Arbeitsordner­ vorlage erzeugt.
In dem bevorzugten Ausführungsbeispiel der Erfindung weist das zuvor beschriebene Abstimmungsmerkmal eine Implementierung auf einer Server-Seite und auf einer Client-Seite auf. Beide Komponenten benutzen eine Kombination von Funktionsaufrufen von Microsoft Exchange und MAPI-Funktionsaufrufen, um (1) zu erkennen, daß eine Arbeitsordnernachricht eine Microsoft-Exchange-Konfliktnachricht erzeugt hat, (2) Konfliktinformationen dem Benutzer darzustellen und (3) den Konflikt zu lösen. Da das Arbeitsordnersystem Konflikte eigenständig abstimmt, ist es erforderlich, die standardmäßige Konfliktbehandlung von Microsoft Exchange außer Kraft zu setzen. Dies kann leicht durch die Verwendung von Stan­ dardmerkmalen der Software Development Kits von Microsoft Exchange und MAPI erreicht werden, wie einschlägigen Fachleuten selbstverständlich klar sein wird.
Das Arbeitsordner-Abstimmungssystem funktioniert als Dienst unter Windows NT. Der Arbeitsordner-Installationsprozeß konfiguriert diesen Dienst automatisch und richtet ihn als abhängigen Dienst von dem Microsoft-Exchange-Server ein (auch als Dienst von Windows NT). Das bedeutet, daß der Arbeitsordner-Abstimmungsdienst erst dann ausgeführt wird, wenn der Microsoft-Exchange-Server ausgeführt wird. In dieser Konfiguration muß sich das Arbeitsordner-Abstimmungssystem wie jeder andere Nachrichtenübermittlungsdienst von Windows NT bei Microsoft Exchange anmelden. Daher muß diesem Dienst ein Konto zuge­ wiesen sein. Dieses Konto wird vorzugsweise automatisch während des erstmaligen Arbeits­ ordner-Installationsprozesses eingerichtet.
Vorzugsweise schreibt der Arbeitsordner-Abstimmungsdienst Ereignisse in das Anwendungs­ protokoll des Computers, wenn der Abstimmungsdienst ausgeführt wird. Es gibt zwei Arten von Ereignissen: Fehler und Informationen. Die Art der protokollierten Informationsereig­ nisse kann nach der Einstellung der Protokollebenen ermittelt werden, die vom Benutzer fest­ gelegt wurden. Fehlerereignisse werden stets protokolliert. Informationsereignisse umfassen Ereignisse, wie etwa Starten und Stoppen einer Abstimmung, Einzelheiten über die Anzahl der entdeckten Konflikte und Einzelheiten über die Abstimmung selbst. Ereigniskennung und Fehlerereignisse umfassen Elemente, die sich auf Probleme mit der Definition von MAPI-Pro­ filen beziehen, auf das Anmelden bei einem entsprechenden Server, auf das Abrufen von Adreßbuchinformationen, auf das Ändern oder Zugreifen von Dateien usw. Vorzugsweise enthalten alle Fehlerereignisse den Fehlercode in dem Datenfeld des Ereignisses. Der Abstimmungsdienst läuft weiter, wenn ein nicht schwerwiegender Fehler auftritt. Einige Fehler sind jedoch schwerwiegend, worauf der Abstimmungsdienst nicht weiter ausgeführt werden kann. In derartigen Fällen stoppt der Abstimmungsdienst nach Protokollieren des Fehlerereignisses.
Damit der Arbeitsordner-Abstimmungsdienst alle öffentlichen Ordner abstimmen kann, die Arbeitsordner enthalten, benötigt er auf diese Ordner Schreibzugriff. In dem bevorzugten Ausführungsbeispiel ist der Ar 03431 00070 552 001000280000000200012000285910332000040 0002019844071 00004 03312beitsordner-Abstimmungsdienst ein NT-Dienst mit einem zu­ gehörigen Konto. Dieses Konto muß daher die entsprechenden Zugriffsrechte für jeden Server haben, auf dem der Arbeitsordner-Abstimmungsdienst läuft, damit er seine Aufgabe durch­ führen kann.
In einem besonders bevorzugten Ausführungsbeispiel stellt das WFX-Programm die Arbeits­ ordnerinformationen dem Benutzer über ein herkömmliches Protokoll unter der grafischen Benutzeroberfläche von Microsoft Windows mit Pull-Down-Menüs und Symbolleisten dar. Ein Arbeitsordner kann mit Standardbefehlen erzeugt und bearbeitet werden, z. B. mit "insert" (einfügen), "delete" (löschen), "copy" (kopieren), "cut" (ausschneiden) und "paste" (einfügen).
Fig. 5 zeigt eine Darstellung des Dialogfeldes 170 zur Konfliktvermittlung, das dem Benutzer während einer beaufsichtigten Abstimmungsprozedur angezeigt wird. Wenn ein Benutzer einen bearbeiteten Arbeitsordner speichert und ein Konflikt erkannt wird, wird, wie zuvor erörtert, dem Benutzer, dessen Änderungen den Konflikt verursacht haben (typischerweise der zweite Benutzer, der einen aktualisierten Arbeitsordner speichert), ein Vermittlungsdialog angezeigt, der Daten zur Konfliktlösung und die Aufforderung zur Lösung des Konflikts ent­ hält. In diesem Beispiel liegen zwei Konflikte vor. Wie gezeigt, verweist das Dialogfeld 170 zur Konfliktvermittlung auf das Datenelement 172, das sich geändert hat, die Änderung 174, die von dem aktuellen Benutzer durchgeführt wurde, die kollidierende Änderung 176 eines vorherigen Benutzers und die Kennung 178 eines vorherigen Benutzers. Anhand dieser Informationen kann der Benutzer den Konflikt Element für Element lösen, indem er auswählt, welche der beiden Werte erhalten bleiben sollen. Alternativ hierzu kann der Benutzer veran­ lassen, daß alle von einer bestimmten Kennung durchgeführten Änderungen beibehalten wer­ den, indem er z. B. die entsprechende Schaltfläche 180 betätigt.
Fig. 6 ist eine Bildschirmdarstellung, die die kollidierenden Unterelemente zeigt, die dann entstehen, wenn ein Konflikt auftritt, der eine Vermittlung erfordert, aber wenn die Vermitt­ lung nicht sofort durchgeführt wird (d. h. während einer unbeaufsichtigten Abstimmung). Wenn ein Arbeitsordner mit einem kollidierenden Element geöffnet und betrachtet wird, wer­ den beide kollidierenden Elemente als Unterelemente 184, 186 unter einer speziellen Kon­ fliktzeile 182 dargestellt. In diesem Beispiel wurde ein Konflikt erzeugt, als ein Benutzer den Zustand einer Erfindungsdarlegung als "begonnen" bezeichnete, während ein zweiter den Zustand als "nicht begonnen" bezeichnete. Dieser Konflikt ist gelöst, wenn ein Benutzer mit entsprechenden Rechten auswählt, welches der beiden Unterelemente 184, 186 erhalten blei­ ben soll.
Obwohl die Erfindung unter Bezug auf bevorzugte Ausführungsbeispiele beschrieben wurde, ist die Erfindung natürlich nicht auf diese Ausführungsbeispiele beschränkt, sondern kann zahlreichen, Fachleuten bekannten Änderungen und Abwandlungen unterzogen werden, ohne vom Gegenstand und Geltungsbereich der Erfindung abzuweichen.

Claims (37)

1. Verfahren zum automatischen Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld, in dem eine Vielzahl von Benutzern gleichzeitig auf zumindest Teile einer Stammdatendatei Zugriff hat, wobei das Verfahren folgende Schritte umfaßt:
Erzeugen einer lokalen Datei (54, 58), die eine Kopie zumindest eines Teils der Stammdatendatei (52) ist;
Erkennen einer versuchten Aktualisierung der Stammdatendatei (52) mit der lokalen Datei (54, 58);
Ermitteln, ob zwischen den von einem ersten Benutzer an der lokalen Datei (54, 58) vorgenommenen Änderungen und den von einem zweiten Benutzer an der Stammdaten­ datei (52) vorgenommenen Änderungen ein Konflikt besteht;
Aktualisieren der Stammdatendatei (52) mit den konfliktfreien Änderungen, die an der lokalen Datei (54, 58) vorgenommen wurden; und
in Ansprechen auf das Ermitteln, ob zwischen der lokalen Datei (54, 58) und der Stammdatendatei (52) ein Konflikt besteht:
  • a) Benachrichtigen zumindest eines Benutzers über diesen Datenkonflikt;
  • b) Versorgen des Benutzers mit Informationen zur Konfliktlösung bezüglich dieses Datenkonflikts;
  • c) Empfangen von Benutzereingaben, die besagen, wie dieser Konflikt gelöst werden soll; und
  • d) Lösen dieses Datenkonflikts gemäß der Benutzereingaben.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zumindest ein benachrichtig­ ter Benutzer der erste oder der zweite Benutzer ist.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Versorgen des Benutzers mit Informationen zur Lösung des Konflikts das Anzeigen zumindest eines Teils der in der lokalen Datei (54, 58) und der Stammdatendatei (52) kollidierenden Daten umfaßt.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß zumindest ein benachrichtig­ ter Benutzer der erste Benutzer ist, und daß das Versorgen des Benutzers mit Informa­ tionen zur Lösung des Konflikts zudem das Anzeigen der Identität des zweiten Benut­ zers umfaßt.
5. Verfahren zum automatischen Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld, in dem eine Vielzahl von Benutzern gleichzeitig auf zumindest Teile einer Stammdatendatei (52) Zugriff hat, die ein oder mehrere Datenelemente umfaßt und sich in einem gemeinsamen Speicherbereich (50) befindet, wobei das Verfahren folgende Schritte umfaßt:
Erzeugen einer lokalen Datei (54, 58), die eine Kopie zumindest eines oder mehrerer Datenelemente der Stammdatendatei (52) in einem lokalen Speicherbereich (56) ist;
Erkennen eines Versuchs, eine aufbereitete Version der lokalen Datei (54, 58) durch einen ersten Benutzer zu speichern;
Ermitteln für jedes geänderte Datenelement in der aufbereiteten lokalen Datei (54, 58), ob das Aktualisieren eines entsprechenden Datenelements in der Stammdatendatei (52) mit dem geänderten Datenelement einen Konflikt mit einer Änderung verursacht, die von einem zweiten Benutzer an dem entsprechenden Datenelement in der Stamm­ datendatei (52) vorgenommen wurde;
Abschließen des Speicherns durch:
  • a) Aktualisieren des entsprechenden Datenelements in der Stammdatendatei (52) mit dem geänderten Datenelement, wenn kein Konflikt erzeugt wird; oder
  • b) Auslösen eines Dialogs zur beaufsichtigten Konfliktabstimmung mit zumindest dem ersten oder zweiten Benutzer, wenn ein Konflikt erzeugt wird, und, je nach den Ergeb­ nissen dieses Dialogs, entweder Aktualisieren des entsprechenden Datenelements in der Stammdatendatei (52) mit dem geänderten Datenelement oder Bewahren des entspre­ chenden Datenelements in der Stammdatendatei.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß:
das Ermitteln zudem das Erkennen umfaßt, ob die aufbereitete Version der lokalen Datei (54, 58) ein neues Datenelement umfaßt; und das Abschließen zudem das Hinzu­ fügen des neuen Datenelements zur Stammdatendatei (52) umfaßt.
7. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß das Ermitteln zudem das Vergleichen des geänderten Datenelements mit einem der entsprechenden Daten­ elemente in der Stammdatendatei (52) umfaßt, wobei kein Konflikt vorhanden ist, wenn das geänderte Datenelement und das verglichene Datenelement miteinander überein­ stimmen.
8. Verfahren zum automatischen Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld, in dem eine Vielzahl von Benutzern gleichzeitig auf zumindest Teile einer Stammdatendatei (52) Zugriff hat, die ein oder mehrere Datenelemente umfaßt und sich in einem gemeinsamen Speicherbereich (50) befindet, wobei das Verfahren folgende Schritte umfaßt:
Erzeugen einer lokalen Datei (54, 58), die eine Kopie zumindest eines oder mehrerer Datenelemente der Stammdatendatei (52) in einem lokalen Speicherbereich (56) ist;
Erkennen eines Versuchs eines ersten Benutzers, die Stammdatendatei (52) mit einer aufbereiteten Version der lokalen Datei (54, 58) zu aktualisieren;
in Abhängigkeit von einem erkannten Aktualisierungsversuch, Verarbeiten eines jeden Datenelements in der aufbereiteten lokalen Datei (54, 58) durch:
  • a) Ermitteln, ob das verarbeitete Datenelement ein neues Datenelement ist und, falls das so ist, Hinzufügen des verarbeiteten Datenelements zur Stammdatendatei (52) und Fort­ fahren mit Schritt (f), andernfalls Fortfahren mit Schritt (b);
  • b) Ermitteln, ob der Inhalt des verarbeiteten Datenelements in Beziehung zu einem ent­ sprechenden Datenelement in der lokalen Datei (54, 58) geändert wurde, und, falls nicht, Fortfahren mit Schritt (f), andernfalls Fortfahren mit Schritt (c);
  • c) Ermitteln, ob das verarbeitete Datenelement ein Mehrwert-Datenelement ist, und, falls das so ist, Mischen des Inhalts des verarbeiteten Mehrwert-Datenelements mit einem Datenelement in der Stammdatendatei (52), das dem verarbeiteten Datenelement ent­ spricht, und dann Fortfahren mit Schritt (f), andernfalls Fortfahren mit Schritt (d);
  • d) Vergleichen des Inhalts des Datenelements in der lokalen Datei (54, 58), das dem ver­ arbeiteten Datenelement entspricht, mit dem Inhalt des Datenelements in der Stamm­ datendatei (52), das dem verarbeiteten Datenelement entspricht, und, falls das lokale und das Stammdatenelement gleich sind, Beaufschlagen des Datenelements der entspre­ chenden Stammdatendatei (52) mit dem verarbeiteten Datenelement und dann Fortfah­ ren mit Schritt (f), andernfalls Fortfahren mit Schritt (e);
  • e) Anzeigen, daß ein Konflikt besteht, durch Auslösen einer beaufsichtigten Konfliktab­ stimmungsfolge und, je nach den Ergebnissen dieser Folge, entweder Verarbeiten eines nachfolgenden Datenelements oder Beaufschlagen des entsprechenden Datenelements der Stammdatendatei (52) mit dem verarbeiteten Datenelement; und
  • f) Wiederholen der Schritte (a) - (e) für ein weiteres verarbeitetes Datenelement, bis jedes Datenelement in der aufbereiteten lokalen Datei (54, 58) verarbeitet worden ist.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die beaufsichtigte Konfliktab­ stimmungsfolge folgende Schritte umfaßt:
Anzeigen gegenüber zumindest dem ersten Benutzer einen Hinweis und zumindest einen Teil des Inhalts des verarbeiteten Datenelements und des entsprechenden Stamm­ datenelements; und
Anfordern, daß zumindest der erste Benutzer auswählt, welcher der angezeigten Werte beibehalten werden soll.
10. Verfahren zum automatischen Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld mit folgenden Schritten:
Bereitstellen eines gemeinsamen Datenverarbeitungsumfelds mit einer Stammdaten­ datei (52) in einem gemeinsamen Speicherbereich (50), wobei die Stammdatendatei ein oder mehrere Datenelemente eines bestimmten Typs und mit bestimmten Attributen umfaßt, dadurch gekennzeichnet, daß eine Vielzahl von Benutzern gleichzeitig zumin­ dest Teile der Stammdatendatei (52) über entsprechende Exemplare einer lokalen Datei (54, 58) in einem lokalen Speicherbereich (56) bearbeiten kann,
Erzeugen einer lokalen Datei (54, 58) in Abhängigkeit vom Öffnen der Stammdaten­ datei (52) durch einen ersten Benutzer, wobei die lokale Datei (54, 58) Kopien eines oder mehrerer Datenelemente und zugehöriger Attribute aus der Stammdatendatei (52) umfaßt;
Erkennen einer versuchten Aktualisierung der Stammdatendatei (52) mit einer aufbe­ reiteten Version der lokalen Datei (54, 58);
Ermitteln für jedes einzelne der Datenelemente in der aufbereiteten lokalen Datei (54, 58) gemäß einer oder mehrerer vorbestimmter Regeln, ob das Aktualisieren des entspre­ chenden Datenelements der Stammdatendatei (52) zur Übernahme von Änderungen an dem Datenelement der aufbereiteten lokalen Datei (54, 58) einen tatsächlichen Konflikt mit einer Änderung verursacht, die von einem zweiten Benutzer an dem entsprechenden Datenelement in der Stammdatei (52) vorgenommen wurde;
Aktualisieren des entsprechenden Datenelements in der Stammdatendatei (52) zur Übernahme von Änderungen an dem Datenelement der aufbereiteten lokalen Datei (54, 58), wenn ermittelt wird, daß dieses Aktualisieren keinen tatsächlichen Konflikt verur­ sacht; und
Veranlassen einer Konfliktvermittlung, wenn ermittelt wird, daß dieses Aktualisieren einen tatsächlichen Konflikt verursachen würde, wobei das entsprechende Datenelement in der Stammdatendatei (52) derart aktualisiert wird, daß Änderungen an dem Datenelement der aufbereiteten lokalen Datei (54, 58) übernommen werden, wenn die Konfliktvermittlung zugunsten des ersten Benutzers gelöst wird.
11. Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld, in dem Kopien von Dateien über eine Vielzahl von Datenstandorten verteilt sind, wobei das Verfahren folgende Schritte umfaßt:
Empfangen einer duplizierten Datei an einem Datenstandort, wobei die duplizierte Datei einer vorhandenen Datei an dem Datenstandort entspricht;
bei Auftreten eines potentiellen Konfliktzustands zwischen der duplizierten Datei und der vorhandenen Datei Lösen des potentiellen Konflikts durch Erzeugen einer abge­ stimmten Datei aus der empfangenen duplizierten Datei und der vorhandenen Datei ge­ mäß einem vorbestimmten Regelsatz;
Ersetzen der entsprechenden vorhandenen Datei durch die abgestimmte Datei; und
Duplizieren der abgestimmten Datei über die Vielzahl von Datenstandorten hinweg.
12. Verfahren nach Anspruch 11, zudem bestehend aus folgenden Schritten:
Kennzeichnen bestimmter Dateien, auf die das Verfahren angewandt wird; und
Außerkraftsetzen von Routinen zur Konfliktbehandlung, die nicht Bestandteil des Verfahrens sind, wenn eine duplizierte Kopie der jeweiligen Dateien empfangen wird.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß Dateien über ein Nachrich­ tenübermittlungssystem dupliziert werden, und daß das Kennzeichnen das Klassifizieren der jeweiligen Dateien als eigene Nachrichtenklasse umfaßt.
14. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß das Lösen von Datenkon­ flikten zudem folgende Schritte umfaßt:
Bestimmen eines Konflikttyps, der nicht nach den vorbestimmten Regeln gelöst wird;
Speichern der Teile der duplizierten Datei und der vorhandenen Datei, die einen Datenkonflikt dieses Konflikttyps bilden, in der abgestimmten Datei in Form kollidie­ render Unterelemente;
in Abhängigkeit vom Zugriff eines Benutzers auf die abgestimmte Datei Versorgen des Benutzers mit Informationen zur Lösung des Konflikts;
Empfangen von Benutzereingaben, die bezeichnen, wie der Konflikt gelöst werden soll;
Lösen des Datenkonflikts gemäß der Benutzereingaben.
15. Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld, in dem Kopien von Dateien über eine Vielzahl von Datenstandorten verteilt sind, wobei jede Datei einen zugewiesenen Heimatstandort hat, und wobei das Verfahren folgende Schritte umfaßt:
Empfangen einer duplizierten Datei an einem Datenstandort, wobei die duplizierte Datei einer vorhandenen Datei an dem Datenstandort entspricht, und wobei die vorhan­ dene Datei sowie die duplizierte Datei denselben ausgewiesenen Heimatstandort haben;
in Abhängigkeit vom Erkennen eines potentiellen Konfliktzustands zwischen der duplizierten Datei und der vorhandenen Datei Anzeigen des potentiellen Konfliktzu­ stands an jedem der Datenstandorte;
Suchen nach einem angezeigten potentiellen Konfliktzustand an dem Heimatstandort der duplizierten und vorhandenen Datei;
in Ansprechen auf das Erkennen eines potentiellen Konfliktzustands Lösen des potentiellen Konflikts durch Erzeugen einer abgestimmten Datei aus der duplizierten Datei und der vorhandenen Datei gemäß einem vorbestimmten Regelsatz; und
Duplizieren der abgestimmten Datei über eine Vielzahl von Datenstandorten, um die entsprechenden vorhandenen Dateien zu ersetzen.
16. Verfahren nach Anspruch 15 mit folgenden weiteren Schritten:
bei Erhalt eines Hinweises auf einen potentiellen Konfliktzustand Kennzeichnen der vorhandenen Datei als im Konflikt befindlich; und
Entfernen des Konfliktkennzeichens der vorhandenen Datei, wenn eine abgestimmte Datei die vorhandene Datei ersetzt.
17. Verfahren nach Anspruch 16 mit folgendem weiteren Schritt:
Bereitstellen eines schreibgeschützten Zugriffs auf eine als im Konflikt befindlich gekennzeichnete Datei, wenn an einem Datenstandort auf die Datei zugegriffen wird, der nicht der ausgewiesene Heimatstandort ist.
18. Verfahren nach Anspruch 16 mit folgendem weiteren Schritt:
Ausführen des Lösungsschritts, wenn auf eine im Konflikt befindliche Datei an ihrem ausgewiesenen Heimatstandort zugegriffen wird.
19. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß das Lösen des potentiellen Konflikts zudem folgende Schritte umfaßt:
Bestimmen eines bestimmten Konflikttyps, der nicht nach vorbestimmten Regeln gelöst wird;
Speichern der Teile der duplizierten Datei und der vorhandenen Datei, die einen Datenkonflikt dieses Konflikttyps bilden, in der abgestimmten Datei in Form kollidie­ render Unterelemente;
in Ansprechen auf den Zugriff eines Benutzers auf die abgestimmte Datei Versorgen des Benutzers mit Informationen zur Lösung des Konflikts;
Empfangen von Benutzereingaben, die bezeichnen, wie der Konflikt gelöst werden soll; und
Lösen des Datenkonflikts gemäß der Benutzereingaben.
20. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß das Suchen periodisch durchgeführt wird.
21. System zum automatischen Lösen von Datenkonflikten in einem gemeinsamen Daten­ umfeld, in dem eine Vielzahl von Benutzern gleichzeitig auf zumindest Teile einer Stammdatei Zugriff hat, wobei das System folgendes umfaßt:
Mittel zum Erzeugen einer lokalen Datei, die eine Kopie zumindest eines Teils der Stammdatendatei ist;
Mittel zum Erkennen einer versuchten Aktualisierung der Stammdatendatei mit der lokalen Datei;
Mittel zum Ermitteln, ob von einem ersten Benutzer vorgenommene Änderungen an der lokalen Datei mit Änderungen in Konflikt stehen, die nach deren Erzeugung von einem zweiten Benutzer an der Stammdatendatei vorgenommen wurden;
Mittel zum Aktualisieren der Stammdatendatei mit nicht kollidierenden Änderungen, die an der lokalen Datei vorgenommen wurden;
Mittel zum Benachrichtigen zumindest eines Benutzers über diesen Datenkonflikt;
Mittel zum Versorgen des Benutzers mit Informationen, die sich auf die Lösung des Konflikts beziehen;
Mittel zum Empfangen von Benutzereingaben, die bezeichnen, wie der Konflikt gelöst werden sollte; und
Mittel zum Lösen des Datenkonflikts gemäß der Benutzereingaben.
22. System nach Anspruch 21, dadurch gekennzeichnet, daß zumindest ein benachrichtigter Benutzer der erste oder der zweite Benutzer ist.
23. System nach Anspruch 21, dadurch gekennzeichnet, daß die Mittel zum Versorgen des Benutzers mit Informationen ein Mittel umfassen, um zumindest einen Teil der in der lokalen Datei und der Stammdatendatei kollidierenden Daten anzuzeigen.
24. System nach Anspruch 23, dadurch gekennzeichnet, daß zumindest ein benachrichtigter Benutzer der erste Benutzer ist, und daß die Mittel zum Versorgen des Benutzers mit Informationen zudem Mittel zum Anzeigen der Identität des zweiten Benutzers umfas­ sen.
25. System zum automatischen Lösen von Datenkonflikten in einem gemeinsamen Daten­ umfeld, in dem eine Vielzahl von Benutzern gleichzeitig auf zumindest Teile einer Stammdatei Zugriff hat, die ein oder mehrere Datenelemente umfaßt und die sich in einem gemeinsamen Speicherbereich befindet, wobei das System folgendes umfaßt:
Mittel zum Erzeugen einer lokalen Datei, die eine Kopie zumindest eines oder meh­ rerer Datenelemente der Stammdatendatei in einem lokalen Speicherbereich ist;
Mittel zum Erkennen eines Versuchs, eine aufbereitete Version der lokalen Datei durch einen ersten Benutzer zu speichern;
Mittel zum Ermitteln für jedes geänderte Datenelement in der aufbereiteten lokalen Datei, ob das Aktualisieren eines entsprechenden Datenelements in der Stammdaten­ datei mit dem geänderten Datenelement einen Konflikt mit einer Änderung verursacht, die von einem zweiten Benutzer an dem entsprechenden Datenelement in der Stamm­ datendatei vorgenommen wurde;
Mittel zum Abschließen des Speicherns durch entweder:
  • a) Aktualisieren des entsprechenden Datenelements in der Stammdatendatei mit dem geänderten Datenelement, wenn kein Konflikt erzeugt wird; oder
  • b) Auslösen eines Dialogs zur beaufsichtigten Konfliktabstimmung mit zumindest dem ersten oder zweiten Benutzer, wenn ein Konflikt erzeugt wird, und, je nach den Ergeb­ nissen dieses Dialogs, entweder Aktualisieren des entsprechenden Datenelements in der Stammdatendatei mit dem geänderten Datenelement oder Bewahren des entsprechenden Datenelements in der Stammdatendatei.
26. System nach Anspruch 25, dadurch gekennzeichnet, daß: die Mittel zum Ermitteln zudem Mittel zum Erkennen umfassen, ob die aufbereitete Version der lokalen Datei ein neues Datenelement umfaßt; und die Mittel zum Abschließen zudem Mittel zum Hinzu­ fügen des neuen Datenelements zur Stammdatendatei umfassen.
27. System nach Anspruch 25, dadurch gekennzeichnet, daß die Mittel zum Ermitteln zudem Mittel zum Vergleichen des geänderten Datenelements mit einem der entspre­ chenden Datenelemente in der Stammdatendatei umfassen, wobei kein Konflikt vorhan­ den ist, wenn das geänderte Datenelement und das verglichene Datenelement mitein­ ander übereinstimmen.
28. System zum automatischen Lösen von Datenkonflikten in einem gemeinsamen Daten­ umfeld, in dem eine Vielzahl von Benutzern gleichzeitig zumindest Teile der Stamm­ datendatei, die ein oder mehrere Datenelemente eines bestimmten Typs umfaßt und bestimmte Attribute aufweist, bearbeiten können, und zwar über entsprechende Kopien einer lokalen Datei, wobei das System folgendes umfaßt:
Mittel zum Erzeugen einer lokalen Datei in Ansprechen auf das Öffnen der Stamm­ datendatei durch einen ersten Benutzer, wobei die lokale Datei Kopien eines oder meh­ rerer Datenelemente und zugehöriger Attribute aus der Stammdatendatei umfaßt;
Mittel zum Erkennen einer versuchten Aktualisierung der Stammdatendatei mit einer aufbereiteten Version der lokalen Datei;
Mittel zum Ermitteln für jedes einzelne der Datenelemente in der aufbereiteten loka­ len Datei gemäß einer oder mehrerer vorbestimmter Regeln, ob das Aktualisieren des entsprechenden Datenelements der Stammdatendatei zur Übernahme von Änderungen an dem Datenelement der aufbereiteten lokalen Datei einen tatsächlichen Konflikt mit einer Änderung verursacht, die von einem zweiten Benutzer an dem entsprechenden Datenelement in der Stammdatei vorgenommen wurde;
Mittel zum Aktualisieren des entsprechenden Datenelements in der Stammdatendatei zur Übernahme von Änderungen an dem Datenelement der aufbereiteten lokalen Datei, wenn ermittelt wird, daß dieses Aktualisieren keinen tatsächlichen Konflikt verursacht; und
Mittel zum Veranlassen eines Konfliktvermittlungsdialogs, wenn ermittelt wird, daß dieses Aktualisieren einen tatsächlichen Konflikt verursachen würde, wobei das ent­ sprechende Datenelement in der Stammdatendatei derart aktualisiert wird, daß Ände­ rungen an dem Datenelement der aufbereiteten lokalen Datei übernommen werden, wenn die Konfliktvermittlung zugunsten des ersten Benutzers gelöst wird.
29. System zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld, in dem Kopien von Dateien über eine Vielzahl von Datenstandorten verteilt sind, wobei das System folgendes umfaßt:
Mittel zum Empfangen einer duplizierten Datei an einem Datenstandort, wobei die duplizierte Datei einer vorhandenen Datei an dem Datenstandort entspricht;
Mittel, die auf das Vorhandensein eines potentiellen Konfliktzustands zwischen der duplizierten Datei und der vorhandenen Datei ansprechen, um den potentiellen Konflikt durch Erzeugen einer abgestimmten Datei aus der empfangenen duplizierten Datei und der vorhandenen Datei gemäß einem vorbestimmten Regelsatz zu lösen; und
Duplizieren der abgestimmten Datei über die Vielzahl von Datenstandorten hinweg, um die entsprechenden vorhandenen Dateien zu ersetzen.
30. System nach Anspruch 29, das zudem folgendes umfaßt:
Mittel zum Kennzeichnen bestimmter Dateien, auf die das Verfahren angewandt wird; und
Mittel zum Außerkraftsetzen von Routinen zur Konfliktbehandlung, die nicht Bestandteil des Verfahrens sind, wenn eine duplizierte Kopie der jeweiligen Dateien empfangen wird.
31. System nach Anspruch 30, dadurch gekennzeichnet, daß Dateien über ein Nachrichten­ übermittlungssystem dupliziert werden, und daß Mittel zum Kennzeichnen Mittel um­ fassen, um die jeweiligen Dateien als eine eigene Nachrichtenklasse zu klassifizieren.
32. System nach Anspruch 29, dadurch gekennzeichnet, daß die Mittel zum Lösen von Datenkonflikten zudem folgendes umfassen:
Mittel zum Bestimmen eines bestimmten Konflikttyps, der nicht nach den vorbe­ stimmten Regeln gelöst wird;
Mittel zum Speichern der Teile der duplizierten Datei und der vorhandenen Datei, welche einen Datenkonflikt dieses besonderen Konflikttyps bilden, in der abgestimmten Datei in Form kollidierender Unterelemente;
Mittel zum Ansprechen auf den Zugriff eines Benutzers auf die abgestimmte Datei, um den Benutzer mit Informationen zur Lösung des Konflikts zu versorgen;
Mittel zum Lösen des Datenkonflikts in Ansprechen auf die Benutzereingaben.
33. System zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld, in dem Kopien von Dateien über eine Vielzahl von Datenstandorten verteilt sind, wobei jede Datei einen zugewiesenen Heimatstandort hat, wobei das System folgendes umfaßt:
Mittel zum Empfangen einer duplizierten Datei an einem Datenstandort, wobei die duplizierte Datei einer vorhandenen Datei an dem Datenstandort entspricht, und wobei die vorhandene Datei sowie die duplizierte Datei denselben ausgewiesenen Heimat­ standort haben;
Mittel, die in Ansprechen auf das Erkennen eines potentiellen Konfliktzustands zwi­ schen der duplizierten Datei und der vorhandenen Datei den potentiellen Konfliktzu­ stand an jedem der Datenstandorte anzeigen;
Mittel zum Suchen nach einem angezeigten potentiellen Konfliktzustand an dem Heimatstandort der duplizierten und vorhandenen Datei;
Mittel, die in Ansprechen auf das Erkennen eines potentiellen Konfliktzustands den potentiellen Konflikt durch Erzeugen einer abgestimmten Datei aus der duplizierten Datei und der vorhandenen Datei gemäß einem vorbestimmten Regelsatz lösen; und
Mittel zum Duplizieren der abgestimmten Datei über eine Vielzahl von Datenstand­ orten, um die entsprechenden vorhandenen Dateien zu ersetzen.
34. System nach Anspruch 33, das zudem folgendes umfaßt:
Mittel, die bei Erhalt eines Hinweises auf einen potentiellen Konfliktzustand die vor­ handene Datei als im Konflikt befindlich kennzeichnen; und
Mittel, die in Ansprechen auf das Ersetzen der vorhandenen Datei durch eine abge­ stimmte Datei derart ansprechen, daß sie das Konfliktkennzeichen der vorhandenen Datei entfernen.
35. System nach Anspruch 34, das zudem folgendes umfaßt:
Mittel zum Bereitstellen eines schreibgeschützten Zugriffs auf eine als im Konflikt befindlich gekennzeichnete Datei, wenn an einem Datenstandort auf die Datei zugegrif­ fen wird, der nicht der ausgewiesene Heimatstandort der Datei ist.
36. System nach Anspruch 34, dadurch gekennzeichnet, daß die Mittel zum Lösen eines Konflikts darauf ansprechen, daß ein Benutzer auf eine im Konflikt befindliche Datei an ihrem ausgewiesenen Heimatstandort zugreift.
37. System nach Anspruch 33, dadurch gekennzeichnet, daß das Lösen des potentiellen Konflikts zudem folgendes umfaßt:
Mittel zum Bestimmen eines bestimmten Konflikttyps, der nicht nach vorbestimmten Regeln gelöst wird;
Mittel, um die Teile der duplizierten Datei und der vorhandenen Datei, die einen Datenkonflikt dieses Konflikttyps bilden, in der abgestimmten Datei in Form kollidie­ render Unterelemente abzuspeichern;
Mittel, die in Ansprechen auf den Zugriff eines Benutzers auf die abgestimmte Datei den Benutzer mit Informationen zur Lösung des Konflikts versorgen;
Mittel zum Empfangen von Benutzereingaben, die bezeichnen, welche der vorgeleg­ ten kollidierenden Unterelemente erhalten bleiben sollen; und
Mittel zum Lösen des Datenkonflikts gemäß der Benutzereingaben.
DE19844071A 1997-09-28 1998-09-25 Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld Withdrawn DE19844071A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6022597P 1997-09-28 1997-09-28
US09/136,231 US6240414B1 (en) 1997-09-28 1998-08-19 Method of resolving data conflicts in a shared data environment

Publications (1)

Publication Number Publication Date
DE19844071A1 true DE19844071A1 (de) 1999-04-22

Family

ID=26739704

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19844071A Withdrawn DE19844071A1 (de) 1997-09-28 1998-09-25 Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld

Country Status (3)

Country Link
US (1) US6240414B1 (de)
JP (1) JPH11161535A (de)
DE (1) DE19844071A1 (de)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1370959A1 (de) * 2001-03-13 2003-12-17 Koninklijke Philips Electronics N.V. Automatische datenaktualisierung
WO2009134548A2 (en) 2008-04-28 2009-11-05 Microsoft Corporation Conflict resolution
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8352418B2 (en) 2007-11-09 2013-01-08 Microsoft Corporation Client side locking
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes

Families Citing this family (254)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US6505212B2 (en) * 1998-02-04 2003-01-07 Interwoven Inc System and method for website development
JP3828290B2 (ja) * 1998-07-24 2006-10-04 富士通株式会社 ドキュメント管理装置およびコンピュータをドキュメント管理装置として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US7392234B2 (en) * 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
US7296060B2 (en) * 1998-12-24 2007-11-13 Intel Corporation System and method for automatically identifying and attaching related documents
EP1159799B1 (de) * 1999-02-26 2006-07-26 Bitwise Designs, Inc. Digitales datenverwaltungs-und abbildherstellungssystem und verfahren mit gesicherter datenmarkierung
US7774469B2 (en) * 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US6526398B2 (en) * 1999-05-28 2003-02-25 Ricoh Co., Ltd. Generating labels indicating gaps in retrieval of electronic documents
US6449617B1 (en) * 1999-06-15 2002-09-10 Microsoft Corporation Edit command delegation program for editing electronic files
US6438548B1 (en) * 1999-06-30 2002-08-20 International Business Machines Corporation Method of and system for managing documents in a bandwidth constrained environment
US7058647B1 (en) 1999-08-31 2006-06-06 Charles E. Hill & Associates Electronic presentation generation system and method
US7089278B1 (en) * 1999-09-07 2006-08-08 Fuji Xerox Co., Ltd. Anchored conversations: adhesive, in-context, virtual discussion forums
JP2001092707A (ja) * 1999-09-24 2001-04-06 Nec Corp 情報処理システム、構造化文書処理システム、その更新方法及びその更新プログラムを記録した記録媒体
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6944642B1 (en) * 1999-10-04 2005-09-13 Microsoft Corporation Systems and methods for detecting and resolving resource conflicts
AU2001239907A1 (en) * 2000-02-29 2001-09-12 Stephen J. Guerreri Method and apparatus for building a memory image
CA2403261A1 (en) * 2000-03-22 2001-09-27 Robert Bradshaw Method and apparatus for automatically deploying data in a computer network
US7403901B1 (en) 2000-04-13 2008-07-22 Accenture Llp Error and load summary reporting in a health care solution environment
US6701345B1 (en) * 2000-04-13 2004-03-02 Accenture Llp Providing a notification when a plurality of users are altering similar data in a health care solution environment
JP4086449B2 (ja) * 2000-04-28 2008-05-14 キヤノン株式会社 通信装置、通信方法及び記憶媒体
US7657887B2 (en) 2000-05-17 2010-02-02 Interwoven, Inc. System for transactionally deploying content across multiple machines
US7035910B1 (en) * 2000-06-29 2006-04-25 Microsoft Corporation System and method for document isolation
US7249369B2 (en) * 2000-07-10 2007-07-24 Oracle International Corporation Post data processing
US7124203B2 (en) * 2000-07-10 2006-10-17 Oracle International Corporation Selective cache flushing in identity and access management systems
US7464162B2 (en) * 2000-07-10 2008-12-09 Oracle International Corporation Systems and methods for testing whether access to a resource is authorized based on access information
US9038170B2 (en) * 2000-07-10 2015-05-19 Oracle International Corporation Logging access system events
US7194764B2 (en) * 2000-07-10 2007-03-20 Oracle International Corporation User authentication
US7433881B1 (en) 2000-08-31 2008-10-07 Charles E. Hill & Associates, Inc. System and method for handling multi-resolution graphics files
US6430659B1 (en) * 2000-09-22 2002-08-06 International Business Machines Corporation Method and means for increasing performance of multiprocessor computer systems by reducing accesses to global memory locations through the use of quanta
US8806326B1 (en) * 2000-09-25 2014-08-12 Nokia Inc. User preference based content linking
US6993528B1 (en) * 2000-10-04 2006-01-31 Microsoft Corporation Methods and systems for allowing third party client applications to influence implementation of high-level document commands
US6751636B1 (en) 2000-12-05 2004-06-15 Silicon Graphics, Inc. System and method for maintaining and recovering data consistency across multiple instances of a database
US8719703B2 (en) * 2000-12-08 2014-05-06 Xerox Corporation Systems and methods for editing a web page
US20020099592A1 (en) * 2001-01-22 2002-07-25 Donahue John J. Method and apparatus for providing best practice reports for real estate transactions using a computer network
US7185364B2 (en) * 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
US20050160088A1 (en) * 2001-05-17 2005-07-21 Todd Scallan System and method for metadata-based distribution of content
EP1265156A3 (de) * 2001-06-04 2006-01-25 Sun Microsystems, Inc. Prozessor für Konflikte in Dateibäumen
US7165248B2 (en) * 2001-06-04 2007-01-16 Sun Microsystems, Inc. File tree conflict processor
US7085779B2 (en) * 2001-06-04 2006-08-01 Sun Microsystems, Inc. File tree change reconciler
US7039865B1 (en) * 2001-06-19 2006-05-02 Ants Software, Inc. System and method for determining the commutativity of computational operations
US7231661B1 (en) 2001-06-21 2007-06-12 Oracle International Corporation Authorization services with external authentication
WO2003021476A1 (en) * 2001-08-31 2003-03-13 Trac Medical Solutions, Inc. System for interactive processing of form documents
US6947958B2 (en) * 2001-09-19 2005-09-20 Sony Corporation System and method for documenting composite data products
US6988105B2 (en) 2001-09-27 2006-01-17 International Business Machines Corporation Use of agents and control documents to update a database structure
US9189467B1 (en) * 2001-11-07 2015-11-17 Apple Inc. Method and apparatus for annotating an electronic document
US7225256B2 (en) * 2001-11-30 2007-05-29 Oracle International Corporation Impersonation in an access system
US6915311B2 (en) * 2001-12-05 2005-07-05 International Business Machines Corporation Database system for selective clearing of stored conflicting replicated documents by periodic application of a prioritized sequence of attributes with values to distinguish between replicated documents
EP1451732A4 (de) * 2001-12-10 2007-08-08 Mentor Graphics Corp Parallele automatisierung der elektronischen entwicklung: gemeinsam benutztes gleichzeitiges editieren
US7516435B2 (en) * 2001-12-10 2009-04-07 Mentor Graphics Corporation Reservation of design elements in a parallel printed circuit board design environment
US7587695B2 (en) * 2001-12-10 2009-09-08 Mentor Graphics Corporation Protection boundaries in a parallel printed circuit board design environment
AUPR994102A0 (en) * 2002-01-11 2002-02-07 Secure Document Exchange Pty Ltd Document management and multi party collaboration system
US7246119B2 (en) * 2002-03-08 2007-07-17 Kabushiki Kaisha Toshiba Method and implementation of session-based file locking for network applications
US6886064B2 (en) * 2002-03-28 2005-04-26 International Business Machines Corporation Computer system serialization control method involving unlocking global lock of one partition, after completion of machine check analysis regardless of state of other partition locks
US7139690B2 (en) * 2002-07-22 2006-11-21 Microsoft Corporation Object-level conflict detection in an object-relational database system
US7539697B1 (en) * 2002-08-08 2009-05-26 Spoke Software Creation and maintenance of social relationship network graphs
US7233975B1 (en) * 2002-08-19 2007-06-19 Juniper Networks, Inc. Private configuration of network devices
US7483965B1 (en) 2002-08-19 2009-01-27 Juniper Networks, Inc. Generation of a configuration patch for network devices
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
US8706760B2 (en) * 2003-02-28 2014-04-22 Microsoft Corporation Method to delay locking of server files on edit
DE10311634A1 (de) * 2003-03-14 2004-09-30 Authentidate International Ag Elektronisches Übermitteln von Dokumenten
EP1642293A1 (de) * 2003-06-11 2006-04-05 Matsushita Electric Industrial Co., Ltd. Aufzeichnungsgerät, programm und integrierte schaltung
US20040260780A1 (en) * 2003-06-18 2004-12-23 International Business Machines Corporation System, method, and program product for managing messages
US20050283753A1 (en) * 2003-08-07 2005-12-22 Denise Ho Alert triggers and event management in a relationship system
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US7483923B2 (en) * 2003-08-21 2009-01-27 Microsoft Corporation Systems and methods for providing relational and hierarchical synchronization services for units of information manageable by a hardware/software interface system
US7512638B2 (en) * 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US7739316B2 (en) * 2003-08-21 2010-06-15 Microsoft Corporation Systems and methods for the implementation of base schema for organizing units of information manageable by a hardware/software interface system
US20050055354A1 (en) * 2003-08-21 2005-03-10 Microsoft Corporation Systems and methods for representing units of information manageable by a hardware/software interface system but independent of physical representation
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7616333B2 (en) * 2003-08-21 2009-11-10 Microsoft Corporation Electronic ink processing and application programming interfaces
US7283670B2 (en) * 2003-08-21 2007-10-16 Microsoft Corporation Electronic ink processing
CA2467044A1 (en) * 2003-08-21 2005-02-21 Microsoft Corporation Electronic ink processing
US7529811B2 (en) * 2003-08-21 2009-05-05 Microsoft Corporation Systems and methods for the implementation of a core schema for providing a top-level structure for organizing units of information manageable by a hardware/software interface system
US7349913B2 (en) * 2003-08-21 2008-03-25 Microsoft Corporation Storage platform for organizing, searching, and sharing data
US7590643B2 (en) * 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US8131739B2 (en) * 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US8238696B2 (en) * 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
EP1656612B1 (de) * 2003-08-21 2011-10-26 Microsoft Corporation Elektronische tintenverarbeitung
US7555497B2 (en) * 2003-08-21 2009-06-30 Microsoft Corporation Systems and methods for separating units of information manageable by a hardware/software interface system from their physical organization
US7631001B2 (en) * 2003-08-21 2009-12-08 Microsoft Corporation Electronic ink processing
US7483915B2 (en) * 2003-08-21 2009-01-27 Microsoft Corporation Systems and method for representing relationships between units of information manageable by a hardware/software interface system
US7827591B2 (en) * 2003-10-08 2010-11-02 Fmr Llc Management of hierarchical reference data
US7904487B2 (en) 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests
US7882132B2 (en) * 2003-10-09 2011-02-01 Oracle International Corporation Support for RDBMS in LDAP system
US20050080787A1 (en) * 2003-10-14 2005-04-14 National Gypsum Properties, Llc System and method for protecting management records
US7315930B2 (en) * 2003-10-30 2008-01-01 Hewlett-Packard Development Company, L.P. Method of selecting heuristic class for data placement
US8108672B1 (en) 2003-10-31 2012-01-31 Adobe Systems Incorporated Transparent authentication process integration
US8627489B2 (en) * 2003-10-31 2014-01-07 Adobe Systems Incorporated Distributed document version control
US7930757B2 (en) * 2003-10-31 2011-04-19 Adobe Systems Incorporated Offline access in a document control system
US7590963B2 (en) * 2003-11-21 2009-09-15 Mentor Graphics Corporation Integrating multiple electronic design applications
US7305648B2 (en) * 2003-11-21 2007-12-04 Mentor Graphics Corporation Distributed autorouting of conductive paths in printed circuit boards
US7801866B1 (en) * 2004-02-20 2010-09-21 Microsoft Corporation Systems and methods for reading only durably committed data in a system that otherwise permits lazy commit of transactions
US7533134B2 (en) * 2004-04-01 2009-05-12 Microsoft Corporation Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence)
JP2005301838A (ja) * 2004-04-14 2005-10-27 Sharp Corp 情報処理装置,情報処理システム,ファイル同時編集方法,及びファイル同時編集プログラム
US7778962B2 (en) * 2004-04-30 2010-08-17 Microsoft Corporation Client store synchronization through intermediary store change packets
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7143120B2 (en) * 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
US20050257206A1 (en) * 2004-05-14 2005-11-17 Semerdzhiev Krasimir P Pair-update mechanism for update module
US8229906B2 (en) * 2004-05-14 2012-07-24 Sap Ag Multi-level version format
US20050278280A1 (en) * 2004-05-28 2005-12-15 Semerdzhiev Krasimir P Self update mechanism for update module
US7603357B1 (en) * 2004-06-01 2009-10-13 Adobe Systems Incorporated Collaborative asset management
US7464110B2 (en) * 2004-06-30 2008-12-09 Nokia Corporation Automated grouping of image and other user data
US7730026B2 (en) 2004-07-01 2010-06-01 Apple Inc. Method and system using reusable state information for synchronization and maintenance of data
US7546571B2 (en) * 2004-09-08 2009-06-09 Mentor Graphics Corporation Distributed electronic design automation environment
US7698274B1 (en) * 2004-09-22 2010-04-13 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) Selective access and editing in a database
US20060080142A1 (en) * 2004-10-12 2006-04-13 Judi Hart System for managing patient clinical data
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US9009582B2 (en) 2004-11-19 2015-04-14 Google Inc. Converting spreadsheet applications to web-based applications
US7995758B1 (en) 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys
US7593943B2 (en) * 2005-01-14 2009-09-22 Microsoft Corporation Method and system for synchronizing multiple user revisions to a shared object
US7953794B2 (en) 2005-01-14 2011-05-31 Microsoft Corporation Method and system for transitioning between synchronous and asynchronous communication modes
US7778976B2 (en) * 2005-02-07 2010-08-17 Mimosa, Inc. Multi-dimensional surrogates for data management
US8799206B2 (en) * 2005-02-07 2014-08-05 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US8161318B2 (en) * 2005-02-07 2012-04-17 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US7917475B2 (en) * 2005-02-07 2011-03-29 Mimosa Systems, Inc. Enterprise server version migration through identity preservation
US8543542B2 (en) * 2005-02-07 2013-09-24 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US7657780B2 (en) * 2005-02-07 2010-02-02 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8918366B2 (en) * 2005-02-07 2014-12-23 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US8271436B2 (en) * 2005-02-07 2012-09-18 Mimosa Systems, Inc. Retro-fitting synthetic full copies of data
US20070143366A1 (en) * 2005-02-07 2007-06-21 D Souza Roy P Retro-fitting synthetic full copies of data
US8275749B2 (en) * 2005-02-07 2012-09-25 Mimosa Systems, Inc. Enterprise server version migration through identity preservation
US7870416B2 (en) * 2005-02-07 2011-01-11 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8812433B2 (en) * 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US20060184584A1 (en) * 2005-02-11 2006-08-17 Microsoft Corporation Contact merge auto-suggest
US7805422B2 (en) 2005-02-28 2010-09-28 Microsoft Corporation Change notification query multiplexing
US8214754B2 (en) 2005-04-15 2012-07-03 Microsoft Corporation Registration of applications and complimentary features for interactive user interfaces
US8495015B2 (en) 2005-06-21 2013-07-23 Apple Inc. Peer-to-peer syncing in a decentralized environment
US7523146B2 (en) * 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
JP4707477B2 (ja) * 2005-06-23 2011-06-22 富士通株式会社 ファイル共有プログラムおよびファイル共有装置
US8832047B2 (en) 2005-07-27 2014-09-09 Adobe Systems Incorporated Distributed document version control
US8326926B2 (en) * 2005-09-13 2012-12-04 Mentor Graphics Corporation Distributed electronic design automation architecture
US20070101256A1 (en) * 2005-11-01 2007-05-03 Charles Simonyi Perfect source control
US7644121B2 (en) * 2005-11-30 2010-01-05 Clickpath, Llc Method and system for online session tracking
KR100792281B1 (ko) * 2005-12-16 2008-01-07 삼성전자주식회사 네트워크 id 충돌 탐지 및 충돌 해결방법
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US7676705B2 (en) * 2005-12-30 2010-03-09 Sap Ag User interface messaging system and method permitting deferral of message resolution
US9298476B2 (en) * 2005-12-30 2016-03-29 Sap Se System and method for combining multiple software panes
US8688813B2 (en) 2006-01-11 2014-04-01 Oracle International Corporation Using identity/resource profile and directory enablers to support identity management
US7743026B2 (en) * 2006-01-31 2010-06-22 Microsoft Corporation Redirection to local copies of server-based files
US9710508B2 (en) * 2006-03-09 2017-07-18 Quickbase, Inc. Method and system for managing data in a workflow process
US8307119B2 (en) 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
US20070244906A1 (en) * 2006-04-14 2007-10-18 Aptana Incorporated Collaborative Content Generation System And Method
JP2007328489A (ja) * 2006-06-07 2007-12-20 Fuji Xerox Co Ltd 文書管理装置及びプログラム
US8346872B2 (en) * 2006-06-30 2013-01-01 The Invention Science Fund I, Llc Context parameters and identifiers for communication
US8549077B2 (en) * 2006-06-30 2013-10-01 The Invention Science Fund I, Llc Usage parameters for communication content
US9152928B2 (en) * 2006-06-30 2015-10-06 Triplay, Inc. Context parameters and identifiers for communication
US8949337B2 (en) * 2006-06-30 2015-02-03 The Invention Science Fund I, Llc Generation and establishment of identifiers for communication
US20080005241A1 (en) * 2006-06-30 2008-01-03 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Usage parameters for communication content
US7860826B2 (en) 2006-08-04 2010-12-28 Apple Inc. Method and system for using global equivalency sets to identify data during peer-to-peer synchronization
US8453052B1 (en) 2006-08-16 2013-05-28 Google Inc. Real-time document sharing and editing
US7865736B2 (en) * 2006-10-30 2011-01-04 International Business Machines Corporation System and method for enhancing environment variable and process option invocation
US8688749B1 (en) 2011-03-31 2014-04-01 Palantir Technologies, Inc. Cross-ontology multi-master replication
US8515912B2 (en) 2010-07-15 2013-08-20 Palantir Technologies, Inc. Sharing and deconflicting data changes in a multimaster database system
JP2008165299A (ja) * 2006-12-27 2008-07-17 Update It Inc ドキュメント作成システム
US7657769B2 (en) 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
US20080195623A1 (en) * 2007-02-14 2008-08-14 Lockheed Martin Corporation Risk management system
US7949938B2 (en) * 2007-03-20 2011-05-24 International Business Machines Corporation Comparing and merging multiple documents
JP2009064241A (ja) * 2007-09-06 2009-03-26 Seiko Epson Corp 文書管理装置、文書管理方法及び文書管理プログラム
US8566296B2 (en) * 2007-09-14 2013-10-22 Oracle International Corporation Support for compensation aware data types in relational database systems
US8788589B2 (en) 2007-10-12 2014-07-22 Watchitoo, Inc. System and method for coordinating simultaneous edits of shared digital data
US20090106322A1 (en) * 2007-10-18 2009-04-23 Chen Jen-Yeu T Two-set method for avoiding data loss when multiple users simultaneously edit the same data
US20090119349A1 (en) * 2007-11-07 2009-05-07 International Business Machines Corporation Methods and Computer Program Products for Efficient Conflict Detection in a Replicated Hierarchical Content Repository Using Replication Anchors
US8914774B1 (en) 2007-11-15 2014-12-16 Appcelerator, Inc. System and method for tagging code to determine where the code runs
US8954989B1 (en) 2007-11-19 2015-02-10 Appcelerator, Inc. Flexible, event-driven JavaScript server architecture
US8260845B1 (en) 2007-11-21 2012-09-04 Appcelerator, Inc. System and method for auto-generating JavaScript proxies and meta-proxies
US8719451B1 (en) 2007-11-23 2014-05-06 Appcelerator, Inc. System and method for on-the-fly, post-processing document object model manipulation
US8566807B1 (en) 2007-11-23 2013-10-22 Appcelerator, Inc. System and method for accessibility of document object model and JavaScript by other platforms
US8806431B1 (en) 2007-12-03 2014-08-12 Appecelerator, Inc. Aspect oriented programming
US8819539B1 (en) 2007-12-03 2014-08-26 Appcelerator, Inc. On-the-fly rewriting of uniform resource locators in a web-page
US8756579B1 (en) 2007-12-03 2014-06-17 Appcelerator, Inc. Client-side and server-side unified validation
US8938491B1 (en) 2007-12-04 2015-01-20 Appcelerator, Inc. System and method for secure binding of client calls and server functions
US8527860B1 (en) 2007-12-04 2013-09-03 Appcelerator, Inc. System and method for exposing the dynamic web server-side
US8285813B1 (en) 2007-12-05 2012-10-09 Appcelerator, Inc. System and method for emulating different user agents on a server
US8639743B1 (en) 2007-12-05 2014-01-28 Appcelerator, Inc. System and method for on-the-fly rewriting of JavaScript
US8335982B1 (en) 2007-12-05 2012-12-18 Appcelerator, Inc. System and method for binding a document object model through JavaScript callbacks
US8028229B2 (en) * 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US8631203B2 (en) * 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8150842B2 (en) 2007-12-12 2012-04-03 Google Inc. Reputation of an author of online content
KR20100120282A (ko) * 2007-12-12 2010-11-15 구글 인코포레이티드 사용자-제작 컨텐츠 집합 및 공유
JP5309664B2 (ja) * 2008-04-08 2013-10-09 富士ゼロックス株式会社 文書管理装置及びプログラム
US8230348B2 (en) * 2008-04-28 2012-07-24 Roger Peters Collaboration software with real-time synchronization
US8135839B1 (en) * 2008-05-30 2012-03-13 Adobe Systems Incorporated System and method for locking exclusive access to a divided resource
US8620923B1 (en) 2008-05-30 2013-12-31 Adobe Systems Incorporated System and method for storing meta-data indexes within a computer storage system
US8549007B1 (en) 2008-05-30 2013-10-01 Adobe Systems Incorporated System and method for indexing meta-data in a computer storage system
US8291079B1 (en) 2008-06-04 2012-10-16 Appcelerator, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8880678B1 (en) 2008-06-05 2014-11-04 Appcelerator, Inc. System and method for managing and monitoring a web application using multiple cloud providers
US8732265B2 (en) * 2008-06-27 2014-05-20 Microsoft Corporation Reconciliation and remediation with communication archives
JP5012716B2 (ja) * 2008-07-29 2012-08-29 富士通株式会社 リモートファイル操作方法
US7596620B1 (en) 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
US20100131836A1 (en) * 2008-11-24 2010-05-27 Microsoft Corporation User-authored notes on shared documents
KR101581072B1 (ko) * 2009-02-06 2015-12-30 인터내셔널 비지네스 머신즈 코포레이션 데이터 무결성 유지를 위한 장치
WO2010129487A1 (en) * 2009-05-02 2010-11-11 Citrix Systems, Inc. Methods and systems for providing a consistent profile to overlapping user sessions
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US9088414B2 (en) * 2009-06-01 2015-07-21 Microsoft Technology Licensing, Llc Asynchronous identity establishment through a web-based application
US8533436B2 (en) * 2009-06-26 2013-09-10 Intel Corporation Adaptively handling remote atomic execution based upon contention prediction
US20110029495A1 (en) * 2009-07-28 2011-02-03 Arul Selvan Rama Samy File transfer bandwidth conservation
US8578138B2 (en) 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
US8201094B2 (en) * 2009-09-25 2012-06-12 Nokia Corporation Method and apparatus for collaborative graphical creation
CA2684540A1 (en) * 2009-11-05 2011-05-05 Ibm Canada Limited - Ibm Canada Limitee Navigation through historical stored interactions associated with a multi-user view
US9092128B2 (en) 2010-05-21 2015-07-28 Apple Inc. Method and apparatus for managing visual information
JP5710156B2 (ja) * 2010-05-31 2015-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンテンツ・データ中のオブジェクトの共同編集を可能にする方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム
US9436502B2 (en) 2010-12-10 2016-09-06 Microsoft Technology Licensing, Llc Eventually consistent storage and transactions in cloud based environment
US9009726B2 (en) * 2010-12-10 2015-04-14 Microsoft Technology Licensing, Llc Deterministic sharing of data among concurrent tasks using pre-defined deterministic conflict resolution policies
US9418095B2 (en) * 2011-01-14 2016-08-16 Ab Initio Technology Llc Managing changes to collections of data
ES2805755T3 (es) * 2011-03-10 2021-02-15 Amadeus Sas Sistema y método para sincronización de sesión con sistemas externos independientes
US8468138B1 (en) * 2011-12-02 2013-06-18 International Business Machines Corporation Managing redundant immutable files using deduplication in storage clouds
EP2798589A4 (de) 2011-12-29 2015-06-10 Intel Corp Verwaltung zusammenarbeitender teams
US8782004B2 (en) 2012-01-23 2014-07-15 Palantir Technologies, Inc. Cross-ACL multi-master replication
US9367298B1 (en) 2012-03-28 2016-06-14 Juniper Networks, Inc. Batch configuration mode for configuring network devices
US9924002B1 (en) * 2012-06-21 2018-03-20 EMC IP Holding Company LLC Managing stateless processes
US10185923B2 (en) 2012-08-08 2019-01-22 Cerner Innovation, Inc. Filtering values in a closed menu for integrated data capture
US10762983B2 (en) * 2012-08-08 2020-09-01 Cerner Innovation, Inc. Selecting alternate results for integrated data capture
US9081975B2 (en) 2012-10-22 2015-07-14 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
US9501761B2 (en) 2012-11-05 2016-11-22 Palantir Technologies, Inc. System and method for sharing investigation results
US9330131B2 (en) * 2012-11-28 2016-05-03 The Mathworks, Inc. Conflict markup tolerant input stream
US8886601B1 (en) 2013-06-20 2014-11-11 Palantir Technologies, Inc. System and method for incrementally replicating investigative analysis data
US9870298B2 (en) * 2013-08-26 2018-01-16 Google Llc Application resource utilization management
US9569070B1 (en) * 2013-11-11 2017-02-14 Palantir Technologies, Inc. Assisting in deconflicting concurrency conflicts
US9009827B1 (en) 2014-02-20 2015-04-14 Palantir Technologies Inc. Security sharing system
US10929858B1 (en) * 2014-03-14 2021-02-23 Walmart Apollo, Llc Systems and methods for managing customer data
JP6305826B2 (ja) * 2014-05-13 2018-04-04 アルパイン株式会社 車載機器及び機器認証方法
US9785693B2 (en) * 2014-06-30 2017-10-10 Microsoft Technology Licensing, Llc Intelligent conflict detection and semantic expression of document edits
US10572496B1 (en) 2014-07-03 2020-02-25 Palantir Technologies Inc. Distributed workflow system and database with access controls for city resiliency
US9226000B1 (en) * 2014-09-11 2015-12-29 Rockwell Collins, Inc. Content distribution system and method
US10050832B2 (en) * 2014-09-19 2018-08-14 Sybase 365, Inc. Server clustering in mobile computing environment
WO2017117531A1 (en) * 2015-12-30 2017-07-06 Voxx International Corporation Interchangeable rear seat infotainment system
US10621198B1 (en) 2015-12-30 2020-04-14 Palantir Technologies Inc. System and method for secure database replication
US10467198B2 (en) * 2016-09-15 2019-11-05 Oracle International Corporation Network partition tolerance in a high available centralized VCS implementation
JP2018049411A (ja) * 2016-09-21 2018-03-29 富士ゼロックス株式会社 情報処理装置
US10262053B2 (en) 2016-12-22 2019-04-16 Palantir Technologies Inc. Systems and methods for data replication synchronization
US10068002B1 (en) 2017-04-25 2018-09-04 Palantir Technologies Inc. Systems and methods for adaptive data replication
US10430062B2 (en) 2017-05-30 2019-10-01 Palantir Technologies Inc. Systems and methods for geo-fenced dynamic dissemination
US11030494B1 (en) 2017-06-15 2021-06-08 Palantir Technologies Inc. Systems and methods for managing data spills
US10380196B2 (en) 2017-12-08 2019-08-13 Palantir Technologies Inc. Systems and methods for using linked documents
US10915542B1 (en) 2017-12-19 2021-02-09 Palantir Technologies Inc. Contextual modification of data sharing constraints in a distributed database system that uses a multi-master replication scheme
US10715967B1 (en) * 2019-09-20 2020-07-14 Motorola Solutions, Inc. Method for real-time talk-group creation within a push to talk for an incident report system
US11574219B2 (en) * 2019-09-27 2023-02-07 Rockwell Automation Technologies, Inc. System and method for industrial automation rules engine
US11365007B2 (en) * 2019-10-24 2022-06-21 Panasonic Avionics Corporation Systems and methods for providing a wake-up user interface for a night mode on transportation vehicles
CN110807302B (zh) * 2019-11-04 2023-12-19 北京联想协同科技有限公司 文档协同编辑方法及装置、终端和计算机可读存储介质
US11102519B2 (en) * 2020-01-15 2021-08-24 Panasonic Avionics Corporation Centralized architecture for in-vehicle entertainment systems
US10972760B1 (en) * 2020-03-05 2021-04-06 Panasonic Avionics Corporation Secure testing of vehicle entertainment systems for commercial passenger vehicles
US11755348B1 (en) * 2020-10-13 2023-09-12 Parallels International Gmbh Direct and proxy remote form content provisioning methods and systems
WO2022107248A1 (ja) * 2020-11-18 2022-05-27 三菱電機株式会社 監視画面作成支援装置、監視画面作成支援方法、および監視画面作成支援プログラム
US11492119B1 (en) * 2021-06-23 2022-11-08 Panasonic Avionics Corporation Methods and systems for streaming content on a transportation vehicle
US11445231B1 (en) 2021-06-23 2022-09-13 Panasonic Avionics Corporation Credential management systems and associated methods thereof for streaming content on a transportation vehicle
CN113596603B (zh) * 2021-07-28 2023-03-21 北京达佳互联信息技术有限公司 虚拟物品的显示控制方法、虚拟物品的显示方法、装置
CN113672771A (zh) * 2021-09-06 2021-11-19 京东科技控股股份有限公司 数据录入处理方法、装置、介质及电子设备
US11606583B1 (en) * 2022-06-08 2023-03-14 Panasonic Avionics Corporation Distributed data storage for in-vehicle entertainment system

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5008853A (en) 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US5220657A (en) 1987-12-02 1993-06-15 Xerox Corporation Updating local copy of shared data in a collaborative system
US4974173A (en) 1987-12-02 1990-11-27 Xerox Corporation Small-scale workspace representations indicating activities by other users
JPH01237757A (ja) 1987-12-23 1989-09-22 Internatl Business Mach Corp <Ibm> 情報処理システム中の文書オブジエクトを検索する方法
DE3744532A1 (de) 1987-12-30 1989-07-13 Bosch Gmbh Robert Start- und zielpunkteingaben fuer navigationssysteme
US4953080A (en) 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
US5065347A (en) 1988-08-11 1991-11-12 Xerox Corporation Hierarchical folders display
US5115504A (en) 1988-11-01 1992-05-19 Lotus Development Corporation Information management system
JPH03127161A (ja) 1989-10-13 1991-05-30 Hitachi Ltd 複数操作卓の協調方式
US5251294A (en) 1990-02-07 1993-10-05 Abelow Daniel H Accessing, assembling, and using bodies of information
US5276835A (en) 1990-12-14 1994-01-04 International Business Machines Corporation Non-blocking serialization for caching data in a shared cache
JP2533266B2 (ja) 1991-06-14 1996-09-11 インターナショナル・ビジネス・マシーンズ・コーポレイション 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法
JP3006730B2 (ja) 1991-08-13 2000-02-07 富士ゼロックス株式会社 共同作業用情報処理装置及び共同作業用情報処理方法
US5627967A (en) * 1991-09-24 1997-05-06 International Business Machines Corporation Automated generation on file access control system commands in a data processing system with front end processing of a master list
US5428729A (en) 1991-12-20 1995-06-27 International Business Machines Corporation System and method for computer aided software engineering
US5339389A (en) 1991-12-31 1994-08-16 International Business Machines Corporation User selectable lock regions
US5506983A (en) 1992-07-06 1996-04-09 Microsoft Corporation Method and system for transactioning of modifications to a tree structured file
US5555388A (en) 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
AU5670394A (en) 1992-11-23 1994-06-22 Paragon Concepts, Inc. Computer filing system with user selected categories to provide file access
US5634123A (en) 1993-07-08 1997-05-27 Park City Group, Inc. Data management using nested records and code points
JPH086854A (ja) * 1993-12-23 1996-01-12 Unisys Corp アウトボードファイルキャッシュ外部処理コンプレックス
US5504889A (en) 1993-12-28 1996-04-02 Microsoft Corporation Method and system for monitoring file attributes using bitmaps to determine group membership of files and to determine which files have been processed
US5701462A (en) 1993-12-29 1997-12-23 Microsoft Corporation Distributed file system providing a unified name space with efficient name resolution
US5583993A (en) 1994-01-31 1996-12-10 Apple Computer, Inc. Method and apparatus for synchronously sharing data among computer
US5504890A (en) 1994-03-17 1996-04-02 Sanford; Michael D. System for data sharing among independently-operating information-gathering entities with individualized conflict resolution rules
US5590356A (en) * 1994-08-23 1996-12-31 Massachusetts Institute Of Technology Mesh parallel computer architecture apparatus and associated methods
US5559692A (en) 1994-10-05 1996-09-24 Core Systems, Inc. Customizable data gathering method which allows the user to define the classes of data which are gathered
US5671407A (en) 1994-12-07 1997-09-23 Xerox Corporation Application-specific conflict detection for weakly consistent replicated databases
US5706452A (en) 1995-12-06 1998-01-06 Ivanov; Vladimir I. Method and apparatus for structuring and managing the participatory evaluation of documents by a plurality of reviewers
US5781908A (en) * 1995-12-18 1998-07-14 J.D. Edwards World Source Company File data synchronizer in a distributed data computer network

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1370959A4 (de) * 2001-03-13 2007-04-25 Koninkl Philips Electronics Nv Automatische datenaktualisierung
EP1370959A1 (de) * 2001-03-13 2003-12-17 Koninklijke Philips Electronics N.V. Automatische datenaktualisierung
US10394941B2 (en) 2007-11-09 2019-08-27 Microsoft Technology Licensing, Llc Collaborative authoring
US9547635B2 (en) 2007-11-09 2017-01-17 Microsoft Technology Licensing, Llc Collaborative authoring
US8352418B2 (en) 2007-11-09 2013-01-08 Microsoft Corporation Client side locking
US8990150B2 (en) 2007-11-09 2015-03-24 Microsoft Technology Licensing, Llc Collaborative authoring
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US10057226B2 (en) 2007-12-14 2018-08-21 Microsoft Technology Licensing, Llc Collaborative authoring modes
US20140373108A1 (en) 2007-12-14 2014-12-18 Microsoft Corporation Collaborative authoring modes
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
EP2279474A4 (de) * 2008-04-28 2011-12-07 Microsoft Corp Konfliktauflösung
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US9760862B2 (en) 2008-04-28 2017-09-12 Microsoft Technology Licensing, Llc Conflict resolution
EP2279474A2 (de) * 2008-04-28 2011-02-02 Microsoft Corporation Konfliktauflösung
WO2009134548A2 (en) 2008-04-28 2009-11-05 Microsoft Corporation Conflict resolution
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents

Also Published As

Publication number Publication date
JPH11161535A (ja) 1999-06-18
US6240414B1 (en) 2001-05-29

Similar Documents

Publication Publication Date Title
DE19844071A1 (de) Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld
EP1237098B1 (de) Integriertes Datenbank-Verbund-System
DE19844013A1 (de) Strukturierter Arbeitsordner
DE60029349T2 (de) Anordnung für die auf komponenten basierte durchführung von aufgaben während der bearbeitung von versicherungsansprüchen
DE69729926T2 (de) Netzwerkbrowser
EP1194865B1 (de) Verfahren zur datenpflege in einem netzwerk teilweise replizierter datenbanksysteme
DE3908459C2 (de) Netzwerkserver
DE60002876T2 (de) Darstellung, verwaltung und synthese von technischen inhalten
DE60319229T2 (de) Verfahren und system zur erweiterung der api eines dateisystems
DE60211489T2 (de) System und Verfahren zur Bearbeitung von in mehreren Nachrichtenspeichern gespeicherten Nachrichten
DE60315996T2 (de) Verfahren und vorrichtung zur datenbewegung mittels sperren
DE19607149A1 (de) Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
DE19963673A1 (de) Verfahren, Systeme und Computerprogrammprodukte zur Dokumentenverwaltung für Software-Entwicklungssysteme
DE60004211T2 (de) Entfernung von duplizierten objekten aus einem objektspeicher
DE10151648B4 (de) Verfahren und Vorrichtung zum Erfassen und Speichern von während einer computerbasierten Sitzung gemachten Notizen
DE69633373T2 (de) Verfahren und Gerät zur Programmierung eines Aufgabentickets in einem Dokumentenverarbeitungssystem
DE102012100113A1 (de) Verfahren, Software und Computersystem zur Handhabung von angesammelten Daten
DE19607132B4 (de) Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
EP1191458B1 (de) Bidirektionale Verknüpfung eines Datenbanksystems mit einem Datenverzeichnis
DE19607131B4 (de) Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
DE19951152A1 (de) Startbedingungen für Aktivitäten in Workflow Management Systemen
WO2009030490A1 (de) Computerimplementiertes system und verfahren zum strukturierten speichern von informationen
DE10153508A1 (de) System und Verfahren für gemeinsame Datenbenutzung zwischen Mitgliedern verschiedener Organisationen
WO2009049718A1 (de) Computerimplementiertes system und verfahren zum strukturierten speichern von daten mindestens eines vordefinierten ablaufs
DE10154169A1 (de) System und Verfahren für die Verwaltung der Kommunikation und Zusammenarbeit von Teammitgliedern

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: EISOLUTIONS, INC., BILLERICA, MASS., US

8127 New person/name/address of the applicant

Owner name: EISTREAM TECHNOLOGIES, INC., DALLAS, TEX., US

8139 Disposal/non-payment of the annual fee