DE19844071A1 - Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen Datenumfeld - Google Patents
Verfahren zum Lösen von Datenkonflikten in einem gemeinsamen DatenumfeldInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
- G06F16/1787—Details of non-transparently synchronising file systems
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, 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.
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.
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.
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.
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.
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.
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:
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.
Die jüngste Reihenfolge wird beibehalten.
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.
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.
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.
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:
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:
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
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)
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)
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 |
-
1998
- 1998-08-19 US US09/136,231 patent/US6240414B1/en not_active Expired - Lifetime
- 1998-09-25 DE DE19844071A patent/DE19844071A1/de not_active Withdrawn
- 1998-09-28 JP JP10273846A patent/JPH11161535A/ja active Pending
Cited By (19)
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 |