DE69729399T2 - Datenverwaltungssystem und Verfahren für replizierte Daten - Google Patents

Datenverwaltungssystem und Verfahren für replizierte Daten Download PDF

Info

Publication number
DE69729399T2
DE69729399T2 DE69729399T DE69729399T DE69729399T2 DE 69729399 T2 DE69729399 T2 DE 69729399T2 DE 69729399 T DE69729399 T DE 69729399T DE 69729399 T DE69729399 T DE 69729399T DE 69729399 T2 DE69729399 T2 DE 69729399T2
Authority
DE
Germany
Prior art keywords
data
file
changes
change
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69729399T
Other languages
English (en)
Other versions
DE69729399D1 (de
Inventor
Stefan G. Hild
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69729399D1 publication Critical patent/DE69729399D1/de
Application granted granted Critical
Publication of DE69729399T2 publication Critical patent/DE69729399T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein System und ein Verfahren zum Verwalten replizierter Daten und insbesondere ein System und ein Verfahren zum Verwalten von Kopien einer gemeinsam genutzten Datei, welche in einer Vielzahl von Computersystemen verwaltet wird, die über ein mobiles Datenübertragungsnetzwerk miteinander verbunden werden können.
  • HINTERGRUND DER ERFINDUNG
  • Die Datenverarbeitungstechnik durchdringt heutzutage alle Lebensbereiche, indem durch nationale und internationale Datenübertragungsnetzwerke ein schneller Datenaustausch ermöglicht wird. Die derzeitigen Netzwerke weisen jedoch normalerweise noch den Nachteil auf, dass sie an bestimmte Standorte gebunden sind. Die Bedeutung der internationalen Netzwerke und insbesondere des weltweiten „Internet" nimmt zwar immer mehr zu, aber man kann nur über relativ wenige Zugangsstellen in Festnetzen darauf zugreifen.
  • Mit dem Entstehen mobiler Datenübertragungssysteme in den 1980er Jahren hat sich gezeigt, dass sich dieser Nachteil durch das Bereitstellen eines Systems von Sendern abschwächen lässt, die in einer Zellenstruktur angeordnet sind, um große geografische Bereiche zu versorgen, wobei diese Sender mit einer geringen Anzahl von Frequenzen auskommen und somit nur eine vergleichsweise geringe Bandbreite benötigen. Innerhalb dieses geografischen Versorgungsgebiets lassen sich Datenübertragungsverbindungen ohne weiteres mittels problemlos beschaffbarer Ausrüstungen herstellen. Obwohl diese Infrastruktur ursprünglich für den Sprechverkehr (,Mobiltelefon') eingerichtet wurde, hat sie sich rasch ausgeweitet und steht jetzt auch für den Datenverkehr zur Verfügung.
  • Heutzutage kann man Datenverbindungen in den meisten mobilen Kommunikationssystemen für Sprechverkehr und in einigen Datennetzen herstellen, die in vielen Ländern betrieben werden. Ein Beispiel hierfür stellt das kürzlich eingeführte GSM-System (Global System of Mobile Telephone, globales Mobilfunksystem) dar, das derzeit nicht nur ganz Europa abdeckt und sich kurz- bzw. mittelfristig möglicherweise weltweit ausbreitet, sondern auch Sprechfunk- und Datenverkehr in hoher Qualität bietet.
  • Wegen seiner länderübergreifenden Verbreitung ist der GSM-Standard durch die Geschäftswelt bereits akzeptiert worden. Da der Datenverkehr über dieselbe Hardware und ohne zusätzliche Netzwerkkosten erfolgen kann, wird weithin davon ausgegangen, dass die Vorteile der mobilen Datenübertragung wie zum Beispiel von entails von dieser speziellen Benutzergruppe bestimmt genutzt werden, sobald die richtigen Geräte zur Verfügung stehen. Die Hardware- und Softwareentwickler sind derzeit bemüht, auf die Wünsche der Benutzer zugeschnittene Dienste und Anwendungen bereitzustellen.
  • Allerdings bleiben dabei noch einige Probleme zu lösen. Wegen der Datenübertragung durch die Luft ist ein hoher Aufwand zur Fehlerkorrektur zu leisten, wodurch die Bandbreite begrenzt wird; gegenwärtig erreicht man maximal 9600 Bit je Sekunde. Gleichzeitig erfolgt die Abrechnung der mobilen Datenverbindungen in solchen Netzen wie GSM genauso wie beim mobilen Sprechfunkverkehr, d.h. nicht nach den tatsächlich übertragenen Datenmengen, sondern nach der Verbindungszeit. Bei den für ein Mobiltelefon typisch hohen Verbindungspreisen und dieser niedrigen Übertragungsgeschwindigkeit kostet die Übertragung einer Datenmenge von einem Megabyte gegenwärtig etwa 10 US-Dollar für die erforderliche Verbindungszeit. Die geringfügig billigeren, aber auch langsameren paketvermittelten Datennetze hingegen weisen den Nachteil langer Netzwerkumschaltzeiten auf (in Großbritannien sind Umschaltzeiten von mehr als 20 Sekunden keine Seltenheit). Da Mobilfunkverbindungen teuer sind und bei den am stärksten verbreiteten Netzen nach Verbindungszeit abgerechnet werden, verschwendet man Geld, wenn die Datenverbindungen durch die Anwendungen nicht voll ausgenutzt werden. Der Benutzer möchte die Mobilfunkverbindungen voll ausnutzen und die Verwendung teurer Verbindungen kontrollieren.
  • Ein weiteres Problem besteht in der Benutzerfreundlichkeit. Es gibt bereits eine Reihe von Anwendungen, die durch den Einsatz moderner Kompressionsverfahren zum Teil in der Lage sind, Mobilfunkverbindungen ausreichend zu verwalten. Leider ist der Benutzer bei diesen Anwendungen oft gezwungen, bestimmte Eingriffe vorzunehmen, was oft nicht nur neu, sondern auch ungewohnt ist. Das erfordert in jedem Fall eine Umgewöhnung gegenüber herkömmlichen Anwendungen. Computerbenutzer sind oft nur an wenige Anwendungen gewöhnt und nehmen eine neue Benutzeroberfläche nur zögerlich an, insbesondere wenn das alte Design beibehalten wird.
  • Außerdem ist es immer noch nicht ganz einfach, alle Kommunikationskomponenten richtig einzustellen und eine Mobilfunkverbindung herzustellen. Im Idealfall sind mobile Anwendungen den herkömmlichen ähnlich oder gar identisch, und die Benutzung einer Mobilfunkverbindung sollte dem Benutzer so verständlich wie möglich sein.
  • Da die Netzwerkeigenschaften als gegeben angesehen werden müssen und durch die Anwendungsentwickler nicht beeinflusst werden können, hat sich die Lösung der diversen Anforderungen und Probleme bei der Benutzung von Mobilfunkverbindungen bisher vor allem auf zwei Bereiche konzentriert, und zwar auf die Anwendung selbst bzw. auf das zugrunde liegende Kommunikationsprotokoll. Im Folgenden sollen beide Ansätze erörtert werden.
  • Verbesserung einzelner Anwendungen:
  • In den letzten Jahren sind zahlreiche Anwendungen zur Verwendung in Mobilfunkverbindungen angepasst worden. Besonders weit verbreitet sind entail- und Nachrichten-Programme oder WWW-Browser, es werden aber auch eine riesige Anzahl kundenspezifischer Mobilfunkanwendungen benutzt (die daher den meisten kaum bekannt sind). Anwendungen zur Feinabstimmung weisen den Vorteil auf, dass man sie nicht nur Mobilfunkverbindungen allgemein, sondern auch ganz speziell für ein bestimmtes Mobilfunknetz einrichten kann. Mit ihnen lassen sich die speziellen Übertragungseigenschaften und Bandbreiten des Netzes voll ausnutzen und somit eine optimale Datenverarbeitung erreichen. Andererseits beinhaltet diese Feinabstimmung oft auch Änderungen am Maschinencode, wodurch es zu Unstimmigkeiten mit der ursprünglichen Anwendung kommen und die Übertragbarkeit der Anwendung auf andere Plattformen und Netzwerke beeinträchtigt werden kann. Ferner führt dies zu einer ernsthaften Überschneidung der anwendungsspezifischen und der übertragungstechnischen Aspekte der Anwendung. Bei jeder Anwendung kommt es daher oft zu Mehraufwendungen.
  • Verbesserung des Kommunikationsprotokolls:
  • Der alternative Ansatz zur Verbesserung des zugrunde liegenden Kommunikationsprotokolls weist den offensichtlichen Vorteil auf, dass er von der Anwendung unabhängig ist und dadurch viele der Risiken des obigen Ansatzes vermeidet. Wenn man sich der Feinabstimmung solcher Protokolle wie TCP/IP für Mobilfunkverbindungen (zum Beispiel durch Anwendung der VJ-Header-Kompression, die von V. Jacobson in seinem Artikel „Compressing TCP/IP headers for low-speed serial links", ,Request for Comment' (RFC), 1144, Februar 1990, oder durch Verwendung verbesserter Versionen des TCP/IP-Protokolls wie zum Beispiel ,Mobile IP' oder ,Indirect TCP') bedient oder diese Standardprotokolle in ansonsten inkompatiblen Netzwerken (wie zum Beispiel dem System ARTour von IBM) verwendet, ergibt sich der deutliche Vorteil, dass hiervon eine große Anzahl von Anwendungen profitieren können. Außerdem werden dabei die Kommunikationsaspekte und die Anwendung selbst scharf voneinander getrennt. Leider behandeln diese Kommunikationsplattformen die Daten einheitlich und können daher keine anwendungsspezifischen Reduktions- und Kompressionsverfahren einsetzen. Sie tragen somit zwar zur Übertragbarkeit der Anwendungen bei und bieten ein optimiertes Datenübertragungs-Teilsystem, können aber nur wenig zur Verbesserung der Leistungsfähigkeit der Anwendung beitragen.
  • Sicher kann man beide Ansätze verwenden, um durch Verbinden der jeweiligen Stärken optimale Ergebnisse zu erzielen, und zwar leistungsfähige Datenverarbeitung und leistungsfähige Datenübertragung. Insbesondere eignet sich dies für den Einsatz in anspruchsvollen Anwendungen wie zum Beispiel der Video- und Bildübertragung, jedoch kann es nicht für den Normalfall empfohlen werden, da auch die Risiken der beiden Ansätze einbezogen werden.
  • Beide Ansätze erhöhen die Leistungsfähigkeit des Datenübertragungs-Teilsystems auf verschiedenen Ebenen, haben jedoch zur Lösung der Probleme „Kostenoptimierung" und „Benutzerfreundlichkeit" nur wenig zu bieten. Es sind zwar Systeme entwickelt worden, mit deren Hilfe herkömmliche Netzwerkanwendungen auf Mobilfunkverbindungen laufen, indem man auf die netzwerkeigenen Protokolle des Mobilfunknetzes eine Standard-Programmierumgebung aufsetzt, jedoch lässt sich dieser Ansatz nur schwer realisieren, da man herkömmliche Anwendungen auf Hochgeschwindigkeitsverbindungen aufgesetzt hat, die in Mobilfunkverbindungen zuviel Bandbreite beanspruchen oder deren Betrieb einfach zu aufwändig ist. Keiner der beiden Ansätze ist in der Lage, interaktive Anwendungen wirksam zu unterstützen, bei denen die eigentliche Datenübertragung nur einen geringen Teil (oft weniger als 1 %) der gesamten Laufzeit der Anwendung ausmacht. Bei der Verwendung in leitungsvermittelten Netzen, bei denen die Gebühren (wie beim GSM-Netzwerk) nach der Verbindungszeit berechnet werden, stellt dies natürlich eine schwerwiegende Einschränkung dar. Zwar kann man eine GSM-Verbindung wieder trennen, wenn man für die nächste Zeit keinen Datenverkehr erwartet, es zeigt sich jedoch, dass man für den Wiederaufbau einer Modemverbindung über heutige GSM-Netze im Durchschnitt 28 Sekunden benötigt, sodass dies schwer zu machen ist.
  • Pitoura und Bhargava beschreiben in „Maintaining consistency of data in mobile distributed environments", Proceedings of the 15th International conference on distributed systems, 30. Mai bis 2. Juni 1995, S. 404 bis 413, ein System, in welchem Transaktionen an einer lokalen Kopie zentral gespeicherter Daten ausgeführt werden, während das System nicht an ein mobiles Datenübertragungsnetz angeschlossen ist. Dabei werden die Transaktionen in schwache Transaktionen, die zunächst ohne Rücksicht auf die Konsistenz lokal ausgeführt werden, und starke Transaktionen eingeteilt, die nur dann ausgeführt werden können, wenn das System an ein mobiles Datenübertragungsnetz angeschlossen ist. Die Abstimmung zwischen den Transaktionen zur Gewährleistung der Konsistenz erfolgt durch Anschließen an ein mobiles Datenübertragungsnetz, Übertragen der Transaktionen, die dann auf Konflikte mit anderen seit Abruf der lokalen Kopie ausgeführten Transaktionen überprüft werden, und Aktualisieren der lokalen Kopie bei laufender Verbindung, um den aktuellen Status der zentral gespeicherten Daten darzustellen.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein verbessertes System und ein verbessertes Verfahren zum Verwalten von replizierten Daten in einer Vielzahl von Computern bereitzustellen, die miteinander über ein mobiles Kommunikationsnetz in Verbindung stehen.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Deshalb stellt die vorliegende Erfindung ein Verfahren zum verwalten von Kopien einer gemeinsam genutzten Datei bereit, die in einer Vielzahl von untereinander über ein mobiles Kommunikationsnetz verbundenen Computersystemen gespeichert sind, wobei das Verfahren Folgendes umfasst: a) Verwalten jeweils eines Datensatzes der an jeder Kopie der gemeinsam genutzten Datendatei vorgenommenen Änderungen, während die Vielzahl der Computersysteme nicht mit dem mobilen Kommunikationsnetz verbunden sind; b) Herstellen einer Verbindung zum mobilen Kommunikationsnetz, um die für andere Kopien der gemeinsam genutzten Datendatei verwalteten Datensätze abzurufen, und Schließen der Verbindung; und nach dem Abrufen und dem Schließen der Verbindung: c) Verknüpfen der abgerufenen Datensätze, um eine Folge der Änderungen zu erzeugen; d) Anwenden vorgegebener Regeln auf die Folge der Änderungen; und e) Ändern der Kopien der gemeinsam genutzten Datei auf der Grundlage der konfliktbereinigten Folge der Änderungen.
  • Die obige Erfindung mindert die oben erwähnten Probleme durch Bereitstellen einer einheitlichen Plattform, auf welcher herkömmliche Anwendungen Mobilfunkverbindungen wirksam nutzen können. Diese Plattform ist insofern allgemeingültig, als sie nicht auf eine Anwendung oder eine bestimmte Gruppe von Anwendungen beschränkt ist. Ferner wird die Leistungsfähigkeit dadurch verbessert, dass die Plattform bezüglich der Datenübertragung von den Anwendungen unabhängig bleibt und so organisiert ist, dass die Daten wirksam verarbeitet werden. Ferner ist ihre Anwendung einfach, da die Anwendungen zur Nutzung der bereitstehenden Funktionen nicht modifiziert werden müssen.
  • Man beachte, dass unter dem Begriff ,gemeinsam genutzte' Datendatei nicht unbedingt zu verstehen ist, dass es mehrere Benutzer gibt. Die Erfindung kann auch auf solche Fälle Anwendung finden, bei denen ein Einzelbenutzer die Datei auf mehreren Rechnern ,gemeinsam nutzt', zum Beispiel auf dem Computer im Büro und auf einem tragbaren Computer, mit dem der Benutzer außerhalb des Büros arbeitet.
  • Bei bevorzugten Ausführungsarten erfolgt der Schritt (a) des Verwaltens der Datensätze in jedem aus der Vielzahl der Computersysteme, während die Vielzahl der Computersysteme vom mobilen Kommunikationsnetz getrennt ist. Ferner wird die Vielzahl der Computersysteme vorzugsweise nur während des Abrufschrittes (b) mit dem mobilen Kommunikationsnetz verbunden.
  • Bei bevorzugten Ausführungsarten wird jeder der Schritte (a) bis (d) in einer bestimmten Anzahl aus der Vielzahl der Computersysteme ausgeführt, wobei der Schritt (b) den Austausch der durch die Anzahl aus der Vielzahl der Computersysteme verwalteten Datensätze über die Verbindung mit dem mobilen Kommunikationsnetz und der Schritt (e) die Änderung der lokalen Kopie der gemeinsam genutzten Datei umfasst. Bei einem solchen Ansatz wird nur zur Aktualisierung der lokalen Kopie einer gemeinsam genutzten Datei nur eine Verbindung zum mobilen Kommunikationsnetz benötigt.
  • Um die automatische Auflösung von Konflikten zwischen verschiedenen Änderungen zu unterstützen, werden bei bevorzugten Ausführungsarten zusammen mit jeder Änderung Prioritätsdaten gespeichert, die während des Schritts (a) der Verwaltung der Datensätze aufgezeichnet werden und während des Verknüpfungsschritts (c) dazu dienen, von Konflikten betroffenen Änderungen relative Prioritäten für die spätere Auflösung während des Konfliktlösungsschritts (d) zuzuweisen. Vorzugsweise umfassen die während des Schritts (a) der Verwaltung des Datensatzes gespeicherten Prioritätsdaten die Kennung des die Änderung ausführenden Benutzers. Ferner gehören bei bevorzugten Ausführungsarten zu den Prioritätsdaten auch Zeitmarkendaten in der Weise, dass eine frühere Änderung eine höhere Priorität erhält als eine spätere Änderung. Um den von Konflikten betroffenen Änderungen Prioritäten zuweisen zu können, kann man auch andere geeignete Prioritätsdaten speichern.
  • Ausgehend von einer oben beschriebenen Form der Zuweisung von Prioritäten zu den Datensätzen wird bei bevorzugten Ausführungsarten eine von einem Konflikt betroffene Änderung mit niedrigerer Priorität während des Konfliktlösungsschritts (d) vollständig ungültig gemacht. Durch Verwendung dieses Ansatzes wird zwar das Dateiformat erhalten, es gehen jedoch Daten verloren. Alternativ kann man einen anderen Ansatz verwenden, bei dem lediglich der Teil der Änderung mit der niedrigeren Priorität ungültig gemacht wird, der den Konflikt ausgelöst hat. Dies ist insofern von Vorteil, als nur sehr wenige Daten gelöscht werden müssen, um eine konfliktbereinigte Folge von Änderungen abzuleiten, jedoch bleibt hier möglicherweise das Dateiformat nicht erhalten. Es ist klar, dass man andere Vorgehensweisen wählen kann, um die Art und Weise der Konfliktlösung in Schritt (d) festzulegen.
  • Um die Leistungsfähigkeit der Datenübertragung über das mobile Kommunikationsnetz zu verbessern, werden die Datensätze vorzugsweise vor dem Übertragen über das mobile Kommunikationsnetz während des Abrufschritts (b) komprimiert.
  • Unter einem zweiten Aspekt stellt die vorliegende Erfindung ein Computersystem zum Verwalten einer Kopie einer gemeinsam genutzten Datendatei bereit, wobei Kopien der gemeinsam genutzten Datendatei gleichzeitig auch in einer Vielzahl anderer Computersysteme verwaltet werden, die über ein mobiles Kommunikationsnetz an das Computersystem angeschlossen werden können, wobei jedes Computersystem so eingerichtet ist, dass es einen Datensatz der an seiner Kopie der gemeinsam genutzten Datei vorgenommenen Änderungen während der Trennung vom mobilen Kommunikationssystem speichert, und das System Folgendes umfasst: ein Mittel zum Herstellen einer Verbindung zwischen dem Computersystem und dem mobilen Kommunikationsnetz zum Abrufen der Datensätze, die für die in der Vielzahl der anderen Computersysteme verwalteten Kopien der gemeinsam genutzten Datendatei aufbewahrt werden, um die Datensätze über diese Verbindung abzurufen, und zum darauffolgenden Schließen der Verbindung; ein Verknüpfungsmittel zum Verknüpfen der abgerufenen Datensätze mit dem für die lokale Kopie der gemeinsam genutzten Datendatei gespeicherten Datensatz nach deren Abrufen und nach dem Schließen der Verbindung, um eine Folge von Änderungen zu erzeugen; ein Konfliktlösungsmittel zum Anwenden vorgegebener Regeln auf die Folge der Änderungen, um Konflikte innerhalb der Folge von Änderungen zu bereinigen; und ein Mittel zum Ändern der lokalen Kopie der gemeinsam genutzten Datei auf der Grundlage der konfliktbereinigten Folge von Änderungen.
  • Unter einem dritten Aspekt stellt die vorliegende Erfindung ein Datenverwaltungssystem nach Anspruch 9 zur Verfügung, welches eine Vielzahl der Computersysteme umfasst.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Im Folgenden wird die vorliegende Erfindung lediglich beispielhaft unter Bezug auf eine in den beiliegenden Zeichnungen veranschaulichte bevorzugte Ausführungsart beschrieben, wobei:
  • 1 die verschiedenen Softwarekomponenten innerhalb eines Datenübertragungssystems zeigt;
  • 2 das Datenverwaltungssystem der bevorzugten Ausführungsart der vorliegenden Erfindung zeigt;
  • 3 die verschieden Betriebsarten des Mobile Application Framework der bevorzugten Ausführungsart der vorliegenden Erfindung zeigt;
  • 4 eine Abbildung ist, welche die Komponenten des Mobile Application Framework der bevorzugten Ausführungsart der vorliegenden Erfindung zeigt;
  • 5 eine Abbildung ist, welche zeigt, wie die verschiedenen Komponenten des Modells bei der bevorzugten Ausführungsart der vorliegenden Erfindung verwendet werden; und
  • 6 eine Abbildung ist, welche die Bildschirmansicht einer ,frameworkbezogenen' Anwendung zeigt, welche in Verbindung mit bevorzugten Ausführungsarten der vorliegenden Erfindung verwendet werden kann.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSARTEN
  • 1 zeigt eine vereinfachte Zuordnung der verschiedenen Softwarekomponenten innerhalb eines Datenübertragungssystems. Die Anwendung wird in ihre Benutzeroberfläche (,UI') 105 und ihre Rechnereinheit 110 eingeteilt. Auf der Betriebssystemebene 115 wird sehr grob zwischen dem Speichersystem 120 und den Treibern 125 des Betriebssystems für Peripherieeinheiten unterschieden. Darunter befindet sich das Netzwerk 130, welches durch das Betriebssystem 115 gesteuert wird. In der mittleren Spalte von 1 werden die zu den verschiedenen Komponenten gehörenden Daten klassifiziert, und auf der rechten Seite werden Größe der durch jede Komponente verarbeiteten Datenblöcke und deren Typisierbarkeit angezeigt, das heißt, welchem Typ die Daten beim Blick auf die Dateneinheit zuzuordnen sind.
  • Während die Daten auf Anwendungsebene in großen Blöcken verarbeitet werden, die sich leicht typisieren lassen, nehmen die Größe der Datenblöcke und ihre Typisierbarkeit auf den unteren Ebenen immer mehr ab. Schließlich werden die Daten auf der Protokollebene (,Treiber') in kleinen Einheiten (,Pakete') verarbeitet, denen nur schwer Typinformationen zugeordnet werden können.
  • Im Idealfall wird die mobile Datenübertragung in einer Schicht abgewickelt, die niedrig genug ist, damit möglichst viele Anwendungen davon profitieren können, und die hoch genug ist, damit man den Typ der zu übertragenden Daten kennt und somit spezielle Kompressions- und Reduktionsverfahren einsetzen kann. Gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung wird die mobile Datenübertragung auf der Datei-Systemebene abgewickelt, da die meisten Anwendungsprogramme zur Dateneingabe und -ausgabe Dateien verwenden, sodass ein breites Spektrum von Anwendungsprogrammen hiervon profitieren kann. Statt Datenstücken umfassen Dateien eher Dateneinheiten, sodass man oft den Dateityp zuordnen kann. Außerdem hat sich herausgestellt, dass man im Normalbetrieb keine ständige Verbindung benötigt, da alle Anwendungen die lokal verfügbaren Daten verarbeiten und somit interaktive Anwendungen in angemessener Weise unterstützen können; Verbindungen werden nur gelegentlich benötigt, um die Dateien wieder zu synchronisieren.
  • Auf dem Gebiet der (,terrestrischen') Festnetze sind im Gegensatz zu den mobilen Datenübertragungsnetzen einige verteilte Dateiablagesysteme entwickelt worden.
  • Netzwerkdateisysteme wie das Network File System (NFS) von Sun Microsystems Inc. oder das Andrew File System (AFS) von Transarc Corp. werden in Festnetzen eingesetzt, um Zugriff auf Datendateien zu erlangen, die sich an fernen Netzknoten befinden. Auf diese Weise können lokale Anwendungen mit Daten arbeiten, die sich an fernen Standorten befinden, und die Dateien können von mehreren Benutzern gemeinsam genutzt werden. Die Verwendung eines Netzwerks bleibt dem Benutzer damit völlig verborgen und alle Dateien scheinen für ihn lokale Dateien zu sein. Die Arbeit dieser Systeme in ihrer einfachsten Form besteht darin, Schreib-/Leseoperation mittels einer Art Fernprozedur-Anrufeinrichtung durch das Netzwerk zu schicken. Zur Verringerung des Datenverkehrsaufkommens im Netzwerk bedient man sich oft der Zwischenspeicherung.
  • Wenn die gleichzeitige Bearbeitung stattfinden soll, verwenden herkömmliche Dateisysteme diverse Verriegelungsverfahren, um die Datenkonsistenz aufrechtzuerhalten. Anstelle der Kopplungsverfahren hat man Abstimmungsverfahren vorgeschlagen, aber der Schreibzugriff beschränkt sich dennoch auf einen Arbeitsplatz, der zuerst die Freigabe des Schreibzugriffs für hinreichend viele Kopien bekommen muss, bevor er auf eine Datei zugreifen kann. Viele Systeme verwenden Berechtigungssymbole (Token), um den Zugriff auf die Dateikopien zu regeln, aber für die Weitergabe der Berechtigungssymbole müssen wiederum Datenübertragungsverbindungen zwischen den Arbeitsplätzen betriebsbereit sein. Davcev und Burkhard haben in dem Artikel „Consistency and recovery control for replicated files", Proceedings of the 10th ACM Symposium on Operating Systems Principles, Dezember 1985, ein System vorgeschlagen, welches den Schreibzugriff zulässt, wenn das Netzwerk teilweise abgetrennt ist, und das auch nur innerhalb der so genannten ,Mehrheitspartition'. Hammer und Shipman haben in dem Artikel „An overview of reliability mechanisms for a distributed data base system", Proceedings of the spring COMPCON, Februar 1978, ein Verfahren vorgeschlagen, bei dem für Schreiboperation keine Sperrung erforderlich ist und die Dateien deshalb geringfügig voneinander abweichen können, jedoch ist dieses System auf die Datenübertragungsverbindungen angewiesen, um die entstehenden Abweichungen innerhalb enger zeitlicher Grenzen aufzuheben.
  • Lotus Notes lässt mehrere Lese-/Schreibkopien seiner speziellen Datenbank zu. Die Kopien werden periodisch abgeglichen, und zwar normalerweise nicht öfter als ein- oder zweimal täglich. Falls ein Konflikt zwischen Kopien entdeckt wird, werden separate Versionen ohne den Versuch erstellt, die Konflikte klären, was aber beim Auftreten eines Konflikts zu beträchtlichem manuellen Aufwand führt. Ein anderer Ansatz wird in der Europäischen Patentanmeldung EP-A-0 684 558 erörtert, welche ein Kopiensystem beschreibt, in dem eine Vielzahl von Servern aktualisierbare Kopien einer Datei verwalten. Es verwendet ein Aktualisierungsverbreitungs-Protokoll, welches insofern als „aggressiv" beschrieben wird, als es möglichst frühzeitig nach dem Auffinden einer zu inkonsistenten Daten führenden Störung eine Aktualisierung der Kopie veranlasst. Dabei koordinieren die Server untereinander die Suche nach Kopie-Inkonsistenzen und erstellen ein Aktualisierungsprotokoll, um bereits veraltete oder von Konflikten betroffene Kopien herauszufinden, ohne auf eine Datenanforderung eines Clients zu warten. Obwohl manche Konflikte automatisch gelöst werden, sind zur Reparatur der von Konflikten betroffenen Dateien manuelle Eingriffe erforderlich.
  • Vor kurzem hat die Microsoft Corporation eine Software unter der Bezeichnung ,Briefcase Folder' (Aktenmappenordner) als Teil seines Betriebssystems Windows 95 auf den Markt gebracht. Dieses Programm stellt ein Konfliktbereinigungsmittel für Anwendungen bereit, die auf das Briefcase-Programm aufgesetzt sind, und kann nur für diese begrenzte Gruppe von Anwendungen angewendet werden. Ferner startet es die Konfliktlösung nicht automatisch und erfordert beträchtlichen manuellen Aufwand.
  • Die oben genannten Verfahren auf Dateisystemebene eignen sich nicht zur Anwendung in einer mobilen Umgebung, da sie auf schnelle und ständig verfügbare Datenübertragungsverbindungen und/oder die großzügige Verwendung von Verriegelungsverfahren angewiesen sind, welche den Betrieb während der längeren Zeiträume ohne Verbindung stark behindern.
  • 2 zeigt den Aufbau des Datenverwaltungssystems der bevorzugten Ausführungsart, das im Folgenden als ,Mobile Application Framework' (Gerüst für mobile Anwendungen) 200 bezeichnet wird. Bei dem Beispiel in 2 arbeiten die beiden Benutzer 210, 220 jeweils lokal mit den lokalen Kopien der (durch das Diskettensymbol 205 dargestellten) gemeinsam genutzten Datei, während das Gerüst 200 darunter bestrebt ist, die beiden Kopien synchron zu halten. Dazu ist anzumerken, dass bei diesem Gerüst die Datenübertragung oder das Starten von Datenübertragungen nicht mehr durch die Anwendungen, sondern durch das zugrunde liegenden Gerüst erfolgt.
  • Einige Dateisysteme, insbesondere ,CODA' (siehe den Artikel „Disconnected Operation in the Coda File System", ACM Transactions on Computer Systems, 10(1), Februar 1992, von J. Kistler und M. Satyanarayanan), werden gegenwärtig erweitert, um den Betrieb ohne Verbindung während Netzausfallzeiten zu ermöglichen und so einen Schritt in diese Richtung zu gehen. Außerdem beschreiben Monica Wachowicz und Stefan Hild im Artikel „Combining Location and Data Management in an Environment for Total Mobility", Proceedings of the International Workshop on Information Visualization and Mobile Computing, Rostock, Deutschland, Februar 1996, eine Architektur der ,totalen Mobilität', bei der ein Benutzer seinen tragbaren Computer nicht mehr selbst mit sich herumträgt, sondern sich bei einem Mietcomputer an seiner Zieladresse anmeldet. Als Teil dieser Architektur ist ein Betriebsmodus ohne Verbindung vorgesehen, bei dem die Daten im getrennten Modus durch Anwendungen verarbeitet werden, die auf dem mobilen Hostrechner laufen. Änderungen der Datendatei werden gespeichert, um später einen Abgleich mit anderen Kopien dieser Datei zu ermöglichen. Ein erster Entwurf des Datenmanagementsystems als Teil der Architektur der totalen Mobilität wurde von Stefan Hild in dem Positionspapier „Disconnected Operation for Wireless Nodes" vorgestellt, das in Proceedings of the ECOOP '95 Workshop on Mobility and Replication, European Conference on Object Oriented Programming, August 1995, veröffentlicht wurde. In diesem Papier wird das allgemeine Konzept des Datenzugriffs ohne Verbindung und der Konfliktbereinigung in einer mobilen Umgebung kurz beschrieben.
  • Das ,Mobile Application Network' geht davon aus, dass der Betrieb ohne Verbindung (d.h., es wird keine Verbindung zum stationären Hostrechner hergestellt) den Normalfall darstellt und dass Zeiten mit aktiver Verbindung zu den Ausnahmen zählen und nicht umgekehrt. Folglich unterscheidet sich das ,Mobile Application Network' der bevorzugten Ausführungsart in mehrerlei Hinsicht vom herkömmlichen Netzwerkdateisystem und solchen Systemen, die einen Betrieb ohne Verbindung zulassen, wie aus der folgenden ausführlichen Beschreibung deutlich wird.
  • Bei den bevorzugten Ausführungsarten wird das ,Framework' (Gerüst) als Werkzeug zur gemeinsamen Nutzung einer kleinen Anzahl von besonders wichtigen Dateien durch eine kleine Anzahl von Benutzern verwendet. Beim Einrichten einer solchen ,Arbeitsgruppe' handelt es sich um einen einfachen, aber zielgerichteten Prozess. Durch Übertragen dieses sorgfältigen Herangehens auf den Begriff der ,gemeinsamen Nutzung' kann das ,Framework' mit der Dateikonsistenz wesentlich freizügiger verfahren. Daher stellt das ,Framework' weder einen Ersatz noch eine Erweiterung der herkömmlichen Netzwerkdateisysteme dar, sondern erleichtert die Verwaltung von replizierten Dateien. Im Folgenden sollen nun einige der Hauptmerkmale dieses Systems ausführlicher erläutert werden.
  • Das Framework arbeitet wie oben erwähnt vor allem bei getrennter Verbindung. Das Zustandsdiagramm in 3 zeigt die verschiedenen Betriebsmodi und den Verbindungsstatus des restlichen Netzwerks.
  • Beim normalen (getrennten) Betrieb befindet sich das Framework im ,Protokoll'-Modus (Schritt 300). Während dieser Zeit werden alle an den gemeinsam genutzten Dateien vorgenommenen Änderungen aufgezeichnet und in Protokollen gespeichert. Es gibt keine Einschränkungen bezüglich des Zugriffs auf die gemeinsam genutzten Dateien: an allen Netzwerkknoten, welche dieselbe Datei gemeinsam nutzen, werden gleichzeitig sowohl Schreib- als auch Leseoperationen unterstützt.
  • Beim Aktivieren der Verbindung stellt das Framework die Verbindung zu einer bestimmten Anzahl (nicht unbedingt allen) der anderen Arbeitsplätze wieder her, an denen Kopien der gemeinsam genutzten Datei gespeichert sind, und tauscht in Schritt 310 mit diesen Arbeitsplätzen die aufgezeichneten Protokolle aus. Dies ist der einzige Schritt, für den die Verbindung (,Austausch') erforderlich ist.
  • Die drei übrigen Zustände dienen dazu, die gemeinsam genutzte Datei wieder zu synchronisieren. Zuerst werden in Schritt 320 die von den anderen Arbeitsplätzen empfangenen Protokolle und das lokale Protokoll zu einer charakteristischen Folge von Änderungen verknüpft (,Verknüpfung'), dann werden in Schritt 330 die Konflikte bereinigt (,Bereinigen') und schließlich werden die Dateien in Schritt 340 mit dem verknüpften und konfliktbereinigten Protokoll in Übereinstimmung gebracht (,Neustart').
  • 4 zeigt die inneren Komponenten des Framework und liefert gleichzeitig auch eine gewisse Erklärung für dessen Namen. Statt eine Plattform zum Betrieb einer mobilen Anwendung bereitzustellen, besteht das Framwork vielmehr aus Komponenten, die auf derselben Ebene wie die Anwendung (insbesondere die Protokolliereinheit 410) laufen und bietet somit einen ,Gerüst', innerhalb dessen die Anwendung laufen kann. Im Einzelnen handelt es sich bei den Komponenten um die Protokolliereinheit 410, die alle an der lokalen Kopie der gemeinsam genutzten Datendatei vorgenommenen Änderungen protokolliert, wobei die Datei durch die Diskette 420 in der Figur dargestellt wird. Die Protokolliereinheit 410 verfügt über eine Anzahl von Modellen 430, welche formale Beschreibungen von Inhaltstypen und möglichen Bearbeitungsoperationen für verschiedene Dateitypen darstellen und die Erkennung von Änderungen unterstützen. Es gibt auch Standardmodelle, die für die Arbeit mit allen Dateitypen geeignet sind und später ausführlich beschrieben werden.
  • Die Steuereinheit 440 umfasst den größten Teil der Logik und sorgt für das Starten der Konfliktbereinigung (d.h., sie sendet das Neuverbindungsereignis) und für die Durchführung des Konfliktbereinigungsprozesses. Abschließend wickelt das Verbindungsmodul 450 den eigentlichen Verbindungsaufbau zum zugrunde liegenden mobilen Kommunikationsnetzwerk 460 ab.
  • Bei bevorzugten Ausführungsarten befindet sich jedes der oben erwähnten Elemente des Mobile Application Framework in jedem Computersystem 400, welches eine Kopie 420 der gemeinsam genutzten Datei verwaltet. Jedes Mal, wenn die Steuereinheit 440 in einem bestimmten Computersystem 400 feststellt, dass die Kopie der gemeinsam genutzten Datei mit anderen Kopien dieser Datendatei synchronisiert werden muss, stellt sie über das mobile Kommunikationsnetzwerk 460 eine Verbindung her und tauscht die aufgezeichneten Änderungsprotokolle mit den anderen Computersystemen aus, welche aufgezeichnete Änderungsprotokolle verwalten. Dann werden durch diese Steuereinheit 440 die Schritte 320, 330 und 340 in 3 ausgeführt, um die lokale Kopie 420 der gemeinsam genutzten Datei zu aktualisieren.
  • Dem Fachmann ist jedoch klar, dass sich die Steuereinheit 440 und das Verbindungsmodul 450 in einem separaten speziellen Computersystem befinden könnten. Jedes eine Kopie der gemeinsam genutzten Datei verwaltende System könnte dann die anderen Elemente des Mobile Application Framework enthalten, um die an dieser Kopie der Datei vorgenommenen Änderungen zu protokollieren. Die Steuereinheit 440 stellt periodisch über das mobile Netzwerk eine Verbindung zu den Computersystemen 400 her, um die protokollierten Änderungen abzurufen, welche diese Systeme an ihren Kopien der gemeinsam genutzten Datei vorgenommen haben. Dann kann die Steuereinheit 440 die Schritte 320 und 330 ausführen, um die Kopien zu verknüpfen und die Konflikte zu bereinigen. Dann kann die Steuereinheit 440 eine Verbindung zum Netzwerk herstellen, um die konfliktbereinigte Folge der Änderungen an jedes Computersystem 400 zu senden. Der Schritt 340 kann dann durch jedes Computersystem 400 ausgeführt werden, um die lokalen Kopien der gemeinsam genutzten Datei zu aktualisieren.
  • Bei bevorzugten Ausführungsarten findet dieser letztere Ansatz keine Anwendung, da hierbei zum Aktualisieren einer Kopie der gemeinsam genutzten Datei zweimal eine Verbindung zum Netzwerk hergestellt werden muss und dadurch der Aufwand für die Operation zunimmt. Da sich die Steuereinheit in einem zentralen Rechner befindet, stehen ferner auch keine Einzelheiten zur Anzahl der an einer bestimmten Kopie der gemeinsam genutzten Datei vorgenommenen Änderungen zur Verfügung, sodass die Steuereinheit den Zeitpunkt der Aktualisierung der Dateien nach anderen Kriterien wie zum Beispiel der seit der letzten Aktualisierung vergangenen Zeit festlegen muss. Das ist möglicherweise nicht so effizient, wie wenn man die Aktualisierungsoperationen anhand der wirklich an den Kopien der gemeinsam genutzten Dateien vorgenommenen Änderungen festlegt, wie dies bei Verwendung des Systems der bevorzugten Ausführungsart der Fall ist. Der letztgenannte Ansatz hat jedoch den Vorteil, dass daran nur die Steuereinheit beteiligt ist und somit der Zeitpunkt für den Austausch der Kopien der Dateien zentral verwaltet wird. In bestimmten Fällen kann es also besser sein, den letzteren Ansatz zu verwenden.
  • Unabhängig vom jeweiligen Ansatz zeigt sich, dass es bei längeren Zeiträumen ohne Verbindung und ohne jegliche Verriegelung zu Konflikten zwischen sehr dynamischen gemeinsam genutzten Dateien kommen kann. Daher wägt das Framework Konsistenz und Verfügbarkeit gegeneinander ab. Die Unterschiede der Dateien und die entstehenden Abweichungen von der Konsistenz stellen jedoch ein Problem dar, das nicht ausschließlich auf das Framework zurückzuführen ist; in geringem Maße weist jedes verteilte System diesen Nachteil auf, und es muss noch eine Menge zur Konflikterkennung und zur Versionsverknüpfung getan werden. Alle Verfahren nach dem Stand der Technik jedoch greifen entweder auf Benutzereingriffe zur Bereinigung von Konflikten zurück, sobald diese entdeckt worden sind, oder vermeiden vorrangig die Konflikte. Die meisten Verfahren bedienen sich der Verriegelungsverfahren oder davon abgeleiteter Verfahren. Beim Framework ist jedoch klar, dass kein Verriegelungsverfahren in Frage kommt, da der Betrieb über lange Zeiträume ohne Verbindung erfolgt.
  • Was die Bereinigung von Konflikten betrifft, so ist klar, dass eine intelligente Konfliktbereinigung sehr schwierig ist, wenn man den Dateien nicht einfach eine semantische Bedeutung zuordnen kann. Da die meisten Ansätze davon ausgehen, dass der Benutzer die Konflikte manuell bereinigen muss, glaubt man, dem Benutzer der Betrieb mit getrennter Verbindung nur dann zumuten zu können, wenn die Konflikte automatisch bereinigt werden können. Man muss sich darüber im Klaren sein, dass man von der automatischen Konfliktbereinigung nicht erwarten kann, dass sie für alle denkbaren Fälle ein logisch passendes Ergebnis liefert. Allerdings kann man erwarten, dass die Konfliktbereinigung eine Datei liefert, mit der man arbeiten kann. Im Fall von Textdateien besteht die Hoffnung, eine Datei zu erhalten, die man manuell leicht ,reinigen' kann. Im Fall von Textdateien muss der Bereinigungsprozess das Dateiformat so weit beibehalten, dass sie durch ein auf die Datei zugreifendes Anwendungsprogramm noch gelesen werden kann.
  • Deshalb wird für das Framework der bevorzugten Ausführungsart ein Verfahren zum Protokollieren der Datei und zur Konflikterkennung benötigt, das einerseits den Lese- und Schreibzugriff auf Dateien beim Betrieb mit getrennter Verbindung nicht einschränkt und andererseits genügend Daten protokolliert, um eine ordentliche automatische Konfliktbereinigung zu ermöglichen.
  • Gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung werden Dateien innerhalb des Framework in erster Linie als Zeichenfolge angesehen. Da man jegliche Annahmen zum Inhaltstyp der Datei von vornherein vermeiden möchte, werden Änderungen durch periodischen Vergleich der aktuellen Datei mit einer Sicherungskopie in der Protokolliereinheit und Berechnen einer ersten Näherung des ,Editierungsabstands' protokolliert. Der Editierungsabstand stellt eine Folge von Editierungsoperationen dar, die eine erste Zeichenfolge in eine zweite Zeichenkette umwandeln, und kennzeichnet somit deutlich, wie der Benutzer die Datei verändert hat. Dies lässt sich jedoch nur schwierig und aufwändig berechnen, und bei bevorzugten Ausführungsarten der vorliegenden Erfindung wird eine erste Näherung des Editierungsabstands verwendet, da diese einfach und mit geringem Aufwand berechnet werden kann und dennoch brauchbare Ergebnisse liefert.
  • Gemäß diesem Ansatz werden zwei Grundoperationen definiert, und zwar die Operationen ,Einfügen' und ,Löschen'. Die Protokolliereinheit versucht, alle an der protokollierten Datei vorgenommenen Änderungen durch eine Folge dieser Operationen darzustellen. Das erfolgt vorzugsweise durch den Vergleich der beiden Zeichenfolgen (d.h. der aktuellen und der Sicherungsdatei), beginnend an einem der Enden und Ermitteln der ersten und der letzten Zeichenposition, an der sich die beiden Zeichenfolgen voneinander unterscheiden. Daraus wird dann abgeleitet, ob eine Einfügung, eine Löschung oder eine Löschung mit anschließender Einfügung vorgenommen wurde.
  • Ferner wird im Protokoll die zeitliche Reihenfolge aller Änderungen festgehalten, welche die Grundlage für die anschließende automatische Konfliktbereinigung darstellt. Zur Anpassung des Protokollierungsprozesses und der Editieroperationen an spezielle Dateiformate stehen Modelle zur Verfügung. Zum Beispiel kann man den Protokollierungsprozess durch Veränderung der Dateitypdefinition im Modell 430 in der Weise ändern, dass diese Daten enthält, welche die Protokolliereinheit 410 veranlassen, die Datei in Stücke aufzuteilen und dann jedes Stück einzeln zu betrachten.
  • Zur automatischen Konfliktbereinigung müssen zuvor zwei Fragen beantwortet werden:
  • Erstens ist es erforderlich, jeder Änderung eine Priorität in der Weise zuzuweisen, dass bei zwei sich widersprechenden Änderungen die eine die andere überschreibt. Die Zuweisung dieser Priorität geht üblicherweise vom Standort der Dateikopie aus; manche Dateisysteme, bei denen der Betrieb bei getrennter Verbindung möglich ist, definieren eine ,Stammkopie', die bei Konflikten Priorität gegenüber allen anderen Kopien hat. Dieser Ansatz wird bei den bevorzugten Ausführungsarten nicht verwendet, da anzunehmen ist, dass die Benutzer zwischen den Rechnern wechseln, sodass es nicht richtig wäre, die Priorität einer Änderung dem Standort zuzuordnen, an welchem sie vorgenommen wurde. Stattdessen ordnet die bevorzugte Ausführungsart Prioritätsstufen anhand der Person des Benutzers zu, welcher die Datei verändert. Auch die zusammen mit den Änderungen aufgezeichneten Zeitmarken werden zum Zuordnen der Prioritäten verwendet. Vorzugsweise wird davon ausgegangen, dass frühere Änderungen die späteren Änderungen zunichte machen, da die gegenteilige Verfahrensweise zur unlogischen Situation führen würde, dass Änderungen umso erfolgreicher überleben können, je später sie vorgenommen werden.
  • Zweitens muss der Umgang mit den unterschiedlichen Versionen definiert werden. Zwei Verfahrensweisen haben sich bei den bevorzugten Ausführungsarten der vorliegenden Erfindung als besonders brauchbar herausgestellt. Bei der ,Total Invalidation Policy' (Komplettaussonderungsstrategie) wird die von Konflikten betroffene Änderung mit der niedrigeren Priorität vollständig ausgeschaltet. Dadurch können eine Menge Daten verloren gehen, aber das Dateiformat bleibt garantiert erhalten. Alternativ dazu kann man eine ,Partial Invalidation Policy' (Teilaussonderungsstrategie) definieren, bei der nur der von Konflikten betroffene Teil der Änderung mit der niedrigeren Priorität verworfen wird. Dies hat zwar offensichtlich den Vorteil, dass man nur die absolute Mindestmenge an Daten entfernt, damit man eine konfliktbereinigte Menge von Änderungen erhält, aber das Dateiformat bleibt möglicherweise nicht erhalten.
  • Im Framework kann der Benutzer sowohl die Regeln für die Prioritätszuordnung als auch die Bereinigungsstrategie im Modell 430 global definieren. 5 zeigt eine Übersicht über diese veränderliche Komponente (,Modell') innerhalb des Bereinigungsprozesses. Die Protokollierungseinheit 410 vergleicht periodisch die Datendatei 420 des Benutzers mit einer Sicherungsdatei 500 und ermittelt die durch den Benutzer vorgenommenen Änderungen. Zu diesem Zweck stehen ein ,Dateimodell' 510 zur ungefähren Beschreibung des Dateiformats, eine Gruppe von durch den Benutzer auszuführenden ,Editieroperationen' 520 und schließlich eine Gruppe von Umwandlungsregeln 530 zur Umsetzung dieser Editieroperationen in eine Folge der Standardoperationen EINFÜGEN und LÖSCHEN zur Verfügung. Das ,Dateimodell', die ,Editieroperationen' und die ,Umwandlungsregeln' können dazu verwendet werden, die Protokollierungseinheit 410 für spezielle Dateitypen und -formate anzupassen; standardmäßig führt die Protokollierungseinheit 410 der bevorzugten Ausführungsart ausschließlich die Operationen EINFÜGEN und LÖSCHEN aus und geht von einem einfachen Dateiformat aus.
  • Die auf diese Weise gefundenen Änderungen werden im Protokoll 540 gespeichert. Während der Konfliktbereinigung werden die von anderen Kopien derselben Datei über das Netzwerk empfangenen Protokolle 550 durch das Verknüpfungsmittel 560 unter Verwendung einer Reihe von ,Prioritätsregeln' 570 in der Reihenfolge der Prioritäten miteinander verknüpft. Dann werden die ,Aussonderungsregeln' 580 durch das Bereinigungs/Neustartmittel 590 angewendet, um alle Konflikte in der verknüpften Gruppe der Änderungen zu erkennen und zu beseitigen. Zum Schluss wird das verknüpfte und bereinigte Protokoll in der lokalen Dateikopie 420 ausgeführt. Ähnlich wie beim Protokollierungsprozess stehen sowohl für die Verknüpfung als auch für die Bereinigung Standardoperationen zur Verfügung. Dem Benutzer obliegt es jedoch, die beiden Prozesse durch Zufügen einer Reihe alternativer ,Prioritätsregeln' und/oder ,Aussonderungsregeln' an den jeweiligen Fall anzupassen.
  • Die Gruppe aller anpassungsfähigen Teile bildet das ,Modell' 430. Modelle kann man für eine Gruppe von Dateien wie zum Beispiel für alle Dateien oder für einen bestimmten Dateityp oder für eine bestimmte Datei definieren.
  • Eine ausführliche Beschreibung eines automatischen Konfliktbereinigungsalgorithmus, der zur Anwendung im Mobile Application Framework der bevorzugten Ausführungsart geeignet ist, wird von Stefan Hild und Peter Robinson in dem Artikel „File Replication in a Mobile Environment" vorgestellt, die bis zum Prioritätsdatum der vorliegenden Patentanmeldung nicht veröffentlicht worden war. Eine Kopie dieses Artikels ist zum Vergleich dem Antrag dieser Patentanmeldung beigelegt, und der Inhalt des Artikels ist durch Bezugnahme Bestandteil der vorliegenden Patentanmeldung. Der Artikel beschreibt ausführlich einen Protokollierungsmechanismus zur Berechnung einer ersten Näherung des Editierungsabstands und beweist mathematisch, dass die darin beschriebenen Verknüpfungs- und Bereinigungsschritte tatsächlich zu einer eindeutigen Folge konfliktbereinigter Änderungen führt, die man an jeder lokalen Kopie der gemeinsam genutzten Datei vornehmen kann. Außerdem wird in dem Artikel bewiesen, dass der Konfliktbereinigungsprozess auch auf eine Folge von Teilbereinigungen Anwendung finden kann, d.h., wenn nicht alle Dateikopien gleichzeitig synchronisiert werden, zum Beispiel wenn einzelne Netzwerkknoten nicht durch das mobile Kommunikationsnetzwerk erfasst werden oder aus anderen Gründen zur Verfügung stehen.
  • Im Rahmen des Framework-Modells werden Datenübertragungen nicht mehr durch die Anwendungen, sondern durch das Framework selbst gestartet, nämlich durch Starten eines Konfliktbereinigungsprozesses, wie er im Zustandsdiagramm von 3 veranschaulicht ist. Somit besteht die Datenübertragung im kontrollierten Austausch von Änderungen, die an Dateien mit bekanntem Dateityp vorgenommen wurden. Vor der Übertragung können die in den Protokollen enthaltenen Daten in den bevorzugten Ausführungsarten auf verschiedenen Ebenen optimiert werden:
    • Erstens können verlustfreie Kompressionsverfahren eingesetzt werden. Diese Verfahren sind direkt und führen nur zu geringen oder gar keinen Verlusten; die meisten Kommunikations-Teilsysteme wenden auf Paketebene bereits bestimmte Kompressionsverfahren auf Grundlage von Wörterbüchern an. Der durch diese Verfahren erreichte Komprimierungsgrad ist mäßig.
    • Zweitens kann man sich die Typdaten zunutze machen und spezielle Kompressionsverfahren einsetzen. In Abhängigkeit vom jeweiligen Dateityp können diese verlustreichen Kompressionsverfahren um ein Vielfaches leistungsfähiger sein als die verlustfreien Verfahren, erfordern jedoch im Allgemeinen einen größeren Aufwand.
  • Und schließlich können Daten neu skaliert werden, um die Fähigkeiten des fernen Netzwerkknotens darzustellen. Zum Beispiel kann man eine hochauflösende Bilddatei neu skalieren, um die Pixel- und Farbauflösung darzustellen. Alle zur Wiederherstellung des hochauflösenden Bildes erforderlichen Daten verbleiben zusammen mit einem darauf zeigenden Zeiger am ursprünglichen Standort, falls das hochauflösende Bild wiederhergestellt werden soll, zum Beispiel wenn es zu einem anderen hochauflösenden Netzwerkknoten geschickt werden soll.
  • Eines der Hauptziele des Mobile Application Framework besteht darin, dass man vorhandene Tools und Programme verwenden kann. Es liegt jedoch in der Natur der Sache, dass diese keinen Beitrag zu den frameworkspezifischen Funktionen wie zum Beispiel zur Konfliktbereinigung der Dateien liefern können. Daher wird davon ausgegangen, dass man Anwendungen schreiben kann, die auf das Framework ,zugeschnitten' sind und auf die internen Daten des Framework zugreifen können, welche dem Benutzer bei der Ausführung frameworkspezifischer Funktionen behilflich sein können. Zum Beispiel können Änderungen, die beim Bereinigungsprozess untergegangen sind , gespeichert und bei Bedarf wiederhergestellt werden. Durch andere Benutzer vorgenommene Änderungen können gekennzeichnet werden. Dadurch kann der Konfliktbereinigungsprozess transparenter gestaltet werden, und es können auch Daten wiederhergestellt werden, die sonst verloren wären.
  • Als Beispiel kann ein einfacher frameworktauglicher ASCII-Texteditor dienen (siehe 6). Mittels dieses Editors kann der Benutzer ,sehen', welche Änderungen während des Bereinigungsprozesses ausgeführt wurden, indem die geänderten Bereiche durch einen Farbcode 610 markiert werden, welcher unmittelbar auf die Quelle der Änderung verweist (Löschungen und fehlgeschlagene Änderungen werden durch Einfügen einer künstlichen Markierung in den Text an den entsprechenden Stellen angezeigt). Durch Anklicken dieser Markierungen kann der Benutzer zusätzliche Informationen 620 zu dieser Änderung erhalten und diese bei Bedarf rückgängig machen. 6 zeigt als Beispiel eine Bildschirmansicht. Dadurch erhält der Benutzer ein einfaches Hilfsmittel zum Retten von Daten, die ansonsten durch den Bereinigungsprozess verloren wären. Diese Benutzeroberfläche hat einen großen Informationsgehalt, ohne überladen zu wirken.
  • Die obige Beschreibung zeigt, dass das Framework der bevorzugten Ausführungsart in einem einzigen Modul seiner Struktur alle Kommunikationsaspekte umfasst (siehe 4). Dadurch werden nicht nur die Kommunikationsaspekte von den Funktionalitätsmodulen des Framework selbst, sondern auch die Datenübertragung einerseits und die im Framework laufenden Anwendungen andererseits scharf voneinander abgegrenzt. Die Datenübertragung wird nicht mehr durch die Anwendungen, sondern durch das Framework ausgelöst. Dadurch, dass alle Datenübertragungsoperationen auf eine Stelle konzentriert sind, kann die gesamte Datenübertragung vollständig kontrolliert werden, was beim eigenständigen Abwickeln der Datenübertragung durch eine Gruppe voneinander unabhängiger Anwendungen nicht möglich wäre.
  • Ein zweiter wichtiger Unterschied zwischen herkömmlichen Datenübertragungssystemen und dem Mobile Application Framework liegt darin, warum die Datenübertragung gestartet wird. Bei herkömmlichen Systemen kommunizieren Anwendungen mit anderen Standorten, um Informationen und Daten auszutauschen und einen kontinuierlichen Betrieb zu gewährleisten; die Daten werden ,auf Anforderung' ('on demand') ausgetauscht. Im Framework werden die Daten lokal verwaltet, so dass zum Aufrechterhalten der Arbeitsfähigkeit der Anwendungen keine Daten übertragen werden müssen. Diese lokal verwalteten Daten veralten jedoch, und das Framework startet die Datenübertragung lediglich zum Aktualisieren der Datendateien. Die Datenübertragung ist also nicht an einen durch das Tempo der laufenden Anwendungen bestimmten Zeitplan gebunden, wie dies zum Beispiel bei interaktiven Anwendungen der Fall ist, die zum Weiterarbeiten auf externe Daten angewiesen sind. Vielmehr können die Häufigkeit und die Zeitpunkte der Verbindungen für die Konfliktbereinigung und das Synchronisieren innerhalb weiter Grenzen schwanken. Der genaue zeitliche Ablauf kann von einer Vielzahl von Faktoren abhängen:
  • Protokollgesteuerte Aktualisierungen. Der Grad der zu jedem Zeitpunkt tolerierten Abweichungen kann für jede Datei durch die protokollierten Änderungen ausgedrückt werden. Wenn darüber hinaus Änderungen vorgenommen wurden (d.h. die gewichtete Gesamtlänge aller Änderungen einen bestimmten Grenzwert übersteigt), wird ein Konfliktbereinigungsprozess gestartet. Man kann so genannte ,Pipelinedateien' mit extrem geringer Abweichungstoleranz einrichten, was letztlich bedeutet, dass jede Änderung der Datei sofort allen anderen Standorten mitgeteilt wird. Die Dateien können als geeignetes Mittel zum Nachrichtenaustausch zwischen Standorten genutzt werden.
  • Periodische Aktualisierungen. Alle Standorte können sich in periodisch zu bestimmten Zeitpunkten zuschalten. Dadurch wird gewährleistet, dass kleinere Änderungen letztlich auch dann weitergeleitet werden, wenn der kritische Schwellenwert zum Starten einer protokollgesteuerten Aktualisierung noch nicht überschritten wurde.
  • Laufende Netzwerkkosten und Verfügbarkeit. Außerhalb der Spitzenzeiten, wenn Netzwerkverbindungen zu niedrigeren Tarifen bzw. generell preiswertere Netze zur Verfügung stehen, können die Konfliktbereinigungsprozesse zu günstigeren Konditionen durchgeführt werden. Beispielsweise ist es denkbar, dass der Netzwerkknoten für bestimmte Zeiträume effektiv über eine freie Verbindung mit dem Festnetz verbunden ist und dadurch ständig Konfliktbereinigungsprozesse durchgeführt werden können. In diesem Fall arbeitet das Framework im Prinzip wie ein herkömmliches ,Netzwerkdateisystem'. Änderungen werden sofort allen Kopien mitgeteilt und es kommt folglich kaum zu Konflikten. Im anderen Extremfall können die Konfliktbereinigungsschritte verzögert werden, wenn mobile Datenkanäle mit schlechter Übertragungsqualität gefunden werden, weil diese zu hohen Fehlerraten, Mehrfachübertragungen und damit zu hohen Übertragungskosten führen.
  • Aktualisierung auf Anforderung. Bestimmte kritische Anwendungen benötigen ganz aktuelle Daten. Deshalb können diese Anwendungen Konfliktbereinigungsprozeduren anfordern, die durch das Framework sofort erledigt werden. Diese Anwendungen müssen natürlich speziell für das Framework geschrieben werden.
  • Man kann sich auch vorstellen, dass der Benutzer in der Lage ist, einen bestimmten Geldbetrag festzusetzen, der dem Framework für die Konfliktbereinigung zur Verfügung steht. Das lässt sich durch Überwachung typischer Änderungsmuster und durch entsprechenden Wechsel der Verbindungen erreichen.
  • In der obigen Beschreibung wird das Mobile Application Framework der bevorzugten Ausführungsart vorgestellt, bei dem es sich um ein typisches System handelt, mittels dessen Standardanwendungen in die Lage versetzt werden, mobile Datenverbindungen preiswert und kontrolliert zu nutzen. Dies wird durch die Bereitstellung von Unterstützung des Betriebs bei getrennter Verbindung auf Dateisystemebene erreicht. Das Problem voneinander abweichender Dateien infolge uneingeschränkten Zugriffs auf die Dateien während längerer Zeiträume mit unterbrochener Verbindung wird durch Verwendung von Protokolliereinheiten gelöst, welche für jede Dateikopie ein ausführliches Änderungsprotokoll erstellen und dadurch eine vollkommen automatische Konfliktbereinigung ermöglichen. Man kann von einem allgemeingültigen Algorithmus zwar nicht erwarten, dass er in allen denkbaren Fällen optimale Ergebnisse liefert, aber man kann mit den entstandenen Dateien arbeiten und sie nach Bedarf manuell säubern.
  • Die gemeinsame Nutzung einzelner Dateien durch verschiedene Benutzer dürfte wesentlich seltener vorkommen als das Kopieren von Dateien durch denselben Benutzer auf unterschiedlichen Rechnern. Beispielsweise kann man den Dateispeicher eines großen stationären Arbeitsplatzrechners durch das Framework in einen kleinen mobilen Notebookrechner spiegeln. In diesem Fall hat es der Benutzer auf beiden Rechnern nicht nur mit derselben Arbeitsumgebung, sondern auch mit denselben Anwendungen zu tun. Deshalb lässt sich das Framework ganz einfach benutzen. Mittels des Framework lässt sich sogar die Verwendung einer langsamen mobilen Datenverbindung für den Benutzer transparent gestalten.
  • Die Einrichtung des Framework auf der Dateisystemebene erlaubt dem Kommunikationsteilsystem die Verwendung von Typdaten, die man einfach zuordnen kann, wenn man die Dateien vor der Übertragung speziellen Kompressions- und Reduktionsverfahren unterzieht.
  • Außerdem sind alle Kommunikationsaspekte in einem Modul enthalten und werden durch eine einzige Komponente kontrolliert, sodass die Übertragungen leicht überwacht und durch die Vorteile der Betriebsweise mit getrennter Verbindung die Übertragungshäufigkeit in weiten Grenzen variiert werden kann, wodurch sich wiederum die Verbindungskosten beeinflussen lassen.

Claims (16)

  1. Verfahren zum Verwalten von Kopien einer in einer Vielzahl von Computersystemen gespeicherten, gemeinsam genutzten Datendatei, wobei diese Computersysteme über ein mobiles Datenübertragungsnetzwerk (460) verbunden werden können und das Verfahren Folgendes umfasst: a) Aufbewahren eines Datensatzes (540) von an der Kopie vorgenommenen Änderungen für jede Kopie (205, 420) der gemeinsam genutzten Datei, während die Vielzahl der Computersysteme nicht mit dem mobilen Datenübertragungsnetzwerk verbunden ist; b) Herstellen einer Verbindung zum mobilen Datenübertragungsnetzwerk (460) zum Abrufen der für andere Kopien der gemeinsam genutzten Datendatei aufbewahrten Datensätze (550); d) Anwenden vorgegebener Regeln (580), um Konflikte aufzulösen; und e) Ändern der Kopien (205, 420) der gemeinsam genutzten Datei; dadurch gekennzeichnet, dass: der Schritt b) ferner das Beenden der Verbindung umfasst; das Verfahren ferner den Schritt c) zum Verknüpfen (560) der abgerufenen Datensätze zum Erzeugen einer Folge von Änderungen umfasst; in Schritt d) die vorgegebenen Regeln (580) auf die Folge von Änderungen angewendet werden, um Konflikte in der Folge von Änderungen zu lösen; in Schritt e) die Änderung der Kopien (205, 420) der gemeinsam genutzten Datei auf Grundlage der konfliktbereinigten Folge von Änderungen erfolgt; und die Schritte c) bis e) im Anschluss an das Abrufen und das Beenden der Verbindung in Schritt b) ausgeführt werden.
  2. Verfahren nach Anspruch 1, wobei jeder der Schritte (a) bis (d) in einer bestimmten Anzahl aus der Vielzahl der Computersysteme ausgeführt wird, der Schritt (b) den Austausch der durch die bestimmte Anzahl aus der Vielzahl der Computersysteme aufbewahrten Datensätze (550) über die Verbindung zum mobilen Datenübertragungsnetzwerk (460) umfasst und der Schritt (e) die Änderung der lokalen Kopie (420) der gemeinsam genutzten Datei umfasst.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, wobei während der Speicherung in Schritt (a) zusammen mit jeder Änderung Prioritätsdaten gespeichert werden und diese Prioritätsdaten in Schritt (c) dazu verwendet werden, allen von Konflikten betroffenen Änderungen relative Prioritäten zuzuweisen, um die Konflikte anschließend in Schritt (d) zu lösen.
  4. Verfahren nach Anspruch 3, wobei die in Schritt (a) gespeicherten Prioritätsdaten die Kennung des Benutzers umfassen, der die Änderungen vornimmt.
  5. Verfahren nach Anspruch 3 oder Anspruch 4, wobei die in Schritt (a) gespeicherten Prioritätsdaten Zeitmarkendaten derart umfassen, dass eine frühere Änderung eine höhere Priorität aufweist als eine spätere Änderung.
  6. Verfahren nach einem der Ansprüche 3 bis 5, wobei während Schritt (d) eine von Konflikten betroffene Änderung mit niedrigerer Priorität vollständig ungültig gemacht wird.
  7. Verfahren nach einem der Ansprüche 3 bis 5, wobei während Schritt (d) nur der von Konflikten betroffene Teil einer Änderung mit niedrigerer Priorität ungültig gemacht wird.
  8. Verfahren nach einem der vorangehenden Ansprüche, wobei während Schritt (b) die Datensätze komprimiert werden, bevor sie über das mobile Datenübertragungsnetzwerk (460) gesendet werden.
  9. Computersystem zum Aufbewahren einer Kopie (420) einer gemeinsam genutzten Datendatei, wobei Kopien der gemeinsam genutzten Datendatei auch in einer Vielzahl anderer Computersysteme aufbewahrt werden, die über ein mobiles Datenübertragungsnetzwerk (460) mit dem Computersystem verbunden werden können, wobei jedes Computersystem zum Aufbewahren eines Datensatzes (540, 550) von Änderungen an seiner Kopie der gemeinsam genutzten Datei eingerichtet ist, während das Computersystem nicht mit dem mobilen Datenübertragungsnetzwerk (460) verbunden ist, und das System Folgendes umfasst: Mittel (440, 450) zum Herstellen einer Verbindung zwischen dem Computersystem und dem mobilen Datenübertragungsnetzwerk (460) zum Abrufen der Datensätze (550) der in der Vielzahl der anderen Computersysteme aufbewahrten Kopien der gemeinsam genutzten Datendatei über diese Verbindung; ein Konfliktlösungsmittel (590) zum Anwenden vorgegebener Regeln (580); ein Mittel (590) zum Ändern der lokalen Kopie (420) der gemeinsam genutzten Datei, dadurch gekennzeichnet, dass: die Mittel zum Herstellen einer Verbindung ferner Mittel zum Beenden der Verbindung nach dem Abrufen der Datensätze umfassen; das System ferner ein Verknüpfungsmittel (560) zum Verknüpfen der abgerufenen Datensätze (550) mit dem für die lokale Kopie (420) der gemeinsam genutzten Datendatei aufbewahrten Datensatz (540) nach dem Abrufen der Datensätze und dem Beenden der Verbindung umfasst, um eine Folge von Änderungen zu erzeugen; das Konfliktlösungsmittel die vorgegebenen Regeln auf die Folge von Änderungen anwendet, um Konflikte in der Folge von Änderungen zu lösen; das Mittel zum Ändern der lokalen Kopie (420) der gemeinsam genutzten Datei diese Datei auf der Grundlage der konfliktbereinigten Folge von Änderungen ändert; und das Verknüpfungsmittel, das Konfliktlösungsmittel und das Mittel zum Ändern der lokalen Kopie nach dem Abrufen und dem anschließenden Beenden der Verbindung durch das Mittel zum Herstellen einer Verbindung funktionsbereit sind.
  10. Datenverwaltungssystem, welches eine Vielzahl der Computersysteme nach Anspruch 9 umfasst.
  11. System nach einem der Ansprüche 9 bis 10, wobei zusammen mit der Speicherung jeder Änderung Prioritätsdaten gespeichert werden und das Verknüpfungsmittel (560) so eingerichtet ist, dass die Prioritätsdaten während des Verknüpfungsprozesses verwendet werden, um allen von Konflikten betroffenen Änderungen relative Prioritäten zuzuweisen und diese Konflikte anschließend durch das Konfliktlösungsmittel (590) zu lösen.
  12. System nach Anspruch 11, wobei die zusammen mit einer Änderung gespeicherten Prioritätsdaten die Kennung des Benutzers umfassen, der diese Änderungen vornimmt.
  13. System nach Anspruch 11 oder Anspruch 13, wobei die zusammen mit einer Änderung gespeicherten Prioritätsdaten Zeitmarkendaten derart umfassen, dass eine frühere Änderung eine höhere Priorität aufweist als eine spätere Änderung.
  14. System nach einem der Ansprüche 11 bis 13, wobei das Konfliktlösungsmittel (590) so eingerichtet ist, dass es eine von Konflikten betroffene Änderung mit niedrigerer Priorität vollständig ungültig macht.
  15. System nach einem der Ansprüche 11 bis 13, wobei das Konfliktlösungsmittel (590) so eingerichtet ist, dass es nur den von Konflikten betroffenen Teil einer Änderung mit niedrigerer Priorität ungültig macht.
  16. System nach einem der Ansprüche 9 bis 15, wobei die Datensätze komprimiert werden, bevor sie über das mobile Datenübertragungsnetzwerk (460) zum Abrufmittel (440, 450) gesendet werden.
DE69729399T 1996-03-08 1997-03-05 Datenverwaltungssystem und Verfahren für replizierte Daten Expired - Lifetime DE69729399T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9604987.9A GB9604987D0 (en) 1996-03-08 1996-03-08 Data management system and method for replicated data
GB9604987 1996-03-08

Publications (2)

Publication Number Publication Date
DE69729399D1 DE69729399D1 (de) 2004-07-15
DE69729399T2 true DE69729399T2 (de) 2005-06-16

Family

ID=10790107

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69729399T Expired - Lifetime DE69729399T2 (de) 1996-03-08 1997-03-05 Datenverwaltungssystem und Verfahren für replizierte Daten

Country Status (7)

Country Link
US (1) US6088706A (de)
EP (1) EP0794646B1 (de)
JP (1) JPH09244936A (de)
KR (1) KR100295725B1 (de)
CN (1) CN1099785C (de)
DE (1) DE69729399T2 (de)
GB (1) GB9604987D0 (de)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0926608B1 (de) * 1997-12-24 2004-03-10 Nortel Networks Limited Verteilte dauerhafte Speicher für Benutzer- Anbieter- Systeme mit manchmal unterbrochenen Verbindungen
US8060613B2 (en) * 1998-02-10 2011-11-15 Level 3 Communications, Llc Resource invalidation in a content delivery network
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
JP3578385B2 (ja) 1998-10-22 2004-10-20 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ、及びレプリカ同一性保持方法
US6751663B1 (en) * 1999-03-25 2004-06-15 Nortel Networks Limited System wide flow aggregation process for aggregating network activity records
US6625657B1 (en) 1999-03-25 2003-09-23 Nortel Networks Limited System for requesting missing network accounting records if there is a break in sequence numbers while the records are transmitting from a source device
US7167860B1 (en) 1999-03-25 2007-01-23 Nortel Networks Limited Fault tolerance for network accounting architecture
US7243143B1 (en) 1999-03-25 2007-07-10 Nortel Networks Limited Flow probe connectivity determination
US20020091636A1 (en) * 1999-03-25 2002-07-11 Nortel Networks Corporation Capturing quality of service
US7363330B1 (en) 1999-06-07 2008-04-22 Symantec Corporation Work monitor with file synchronization
US6473855B1 (en) * 1999-06-18 2002-10-29 Phoenix Technologies Ltd. Method and apparatus for providing content on a computer system based on usage profile
US6859821B1 (en) 1999-07-19 2005-02-22 Groove Networks, Inc. Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
US6393434B1 (en) * 1999-09-14 2002-05-21 International Business Machines Corporation Method and system for synchronizing data using fine-grained synchronization plans
AU1589401A (en) * 1999-11-09 2001-06-06 Jarna, Inc. Synchronizing data among multiple devices in a peer-to-peer environment
US6973464B1 (en) 1999-11-15 2005-12-06 Novell, Inc. Intelligent replication method
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US6625623B1 (en) * 1999-12-16 2003-09-23 Livevault Corporation Systems and methods for backing up data files
US6748403B1 (en) * 2000-01-13 2004-06-08 Palmsource, Inc. Method and apparatus for preserving changes to data
US6415299B1 (en) * 2000-04-12 2002-07-02 Unisys Corp. Method for merging versions of a model in an object oriented repository
US6931454B2 (en) * 2000-12-29 2005-08-16 Intel Corporation Method and apparatus for adaptive synchronization of network devices
WO2002073409A1 (en) 2001-03-13 2002-09-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangements for node recovery
US6748402B1 (en) * 2001-04-02 2004-06-08 Bellsouth Intellectual Property Corporation System and method for converting and loading interactive pager address books
US20020152262A1 (en) * 2001-04-17 2002-10-17 Jed Arkin Method and system for preventing the infringement of intellectual property rights
US20020152261A1 (en) * 2001-04-17 2002-10-17 Jed Arkin Method and system for preventing the infringement of intellectual property rights
US20030069987A1 (en) * 2001-10-05 2003-04-10 Finnur Sigurdsson Communication method
US7038696B2 (en) * 2002-01-04 2006-05-02 Hewlett-Packard Development Company Method and apparatus for implementing color graphics on a remote computer
GB0202600D0 (en) * 2002-02-05 2002-03-20 Ibm Consolidation of replicated data
US7149759B2 (en) 2002-03-25 2006-12-12 International Business Machines Corporation Method and system for detecting conflicts in replicated data in a database network
DE10227560A1 (de) * 2002-06-20 2004-01-22 Siemens Ag Bearbeitungsverfahren für Daten, die zu mehreren Datensätzen zusammengefasst sind, durch mehrere Applikationen
US8195714B2 (en) 2002-12-11 2012-06-05 Leaper Technologies, Inc. Context instantiated application protocol
US7925246B2 (en) 2002-12-11 2011-04-12 Leader Technologies, Inc. Radio/telephony interoperability system
GB0229572D0 (en) * 2002-12-19 2003-01-22 Cognima Ltd Quality of service provisioning
US7739583B2 (en) * 2003-03-31 2010-06-15 Ricoh Company, Ltd. Multimedia document sharing method and apparatus
US7406487B1 (en) * 2003-08-29 2008-07-29 Symantec Operating Corporation Method and system for performing periodic replication using a log
US7191284B1 (en) * 2003-09-04 2007-03-13 Veritas Operating Corporation Method and system for performing periodic replication using a log and a change map
US7283994B2 (en) * 2003-09-15 2007-10-16 Sap Ag Merging of products into a database
US7225208B2 (en) * 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
US7698428B2 (en) * 2003-12-15 2010-04-13 International Business Machines Corporation Apparatus, system, and method for grid based data storage
US7418464B2 (en) * 2004-01-27 2008-08-26 International Business Machines Corporation Method, system, and program for storing data for retrieval and transfer
EP1564653B1 (de) * 2004-02-10 2009-05-13 Research In Motion Limited Vorrichtung und zugeordnetes Verfahren zur Sperrung und Identifizierung einer Änderungsliste, die entsprechend von Datenbanksynchronisierungsabläufen in einem Funkkommunikationssystem verwendet wird
US7246258B2 (en) * 2004-04-28 2007-07-17 Lenovo (Singapore) Pte. Ltd. Minimizing resynchronization time after backup system failures in an appliance-based business continuance architecture
US7487471B2 (en) * 2004-07-23 2009-02-03 Sap Ag User interface for conflict resolution management
WO2006024031A2 (en) * 2004-08-23 2006-03-02 Hewlett-Packard Development Company, L.P. Method and apparatus for redirection of video data
JP4717464B2 (ja) * 2005-02-18 2011-07-06 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
FR2877459A1 (fr) * 2005-03-30 2006-05-05 France Telecom Localisation de fichiers dans des dispositifs de traitement de donnees
US7305420B2 (en) * 2005-05-25 2007-12-04 Microsoft Corporation Synchronizing modifiable documents with multiple clients using document subsections
US20070038681A1 (en) * 2005-08-10 2007-02-15 Spare Backup, Inc. System and method of remote storage of data through connection from a server to a client
US7882156B2 (en) * 2005-11-02 2011-02-01 Requisite Software, Inc. System and method for storing item attributes in an electronic catalog
KR100725415B1 (ko) * 2005-12-24 2007-06-07 삼성전자주식회사 데이터베이스의 로그병합 방법 및 장치
US7756829B2 (en) * 2006-04-18 2010-07-13 Sandeep Bhanote Method and apparatus for mobile data collection and management
CN101110020B (zh) * 2006-07-21 2011-01-26 国际商业机器公司 维护关于可编辑对象中的元素的与原创性有关的信息的方法和系统
US8327456B2 (en) 2007-04-13 2012-12-04 Microsoft Corporation Multiple entity authorization model
CN101315621B (zh) * 2007-05-29 2010-10-06 北京书生国际信息技术有限公司 一种实现文档共享编辑的方法
US8185095B2 (en) 2007-06-06 2012-05-22 Mspot, Inc. Method and apparatus for tracking version of digital content
EP2028813A1 (de) * 2007-07-02 2009-02-25 British Telecmmunications public limited campany Verfahren zum Abgleich von zeitweise verbundenen Mobilendgeräten
US9401957B2 (en) * 2007-09-14 2016-07-26 International Business Machines Corporation System and method for synchronization between servers
KR101437687B1 (ko) * 2007-12-20 2014-09-03 주식회사 엘지씨엔에스 금융단말 및 그 업무파일 동기화 방법, 그리고 그를 이용한금융시스템
US8239345B2 (en) * 2007-12-27 2012-08-07 Microsoft Corporation Asynchronous replication
US8166002B2 (en) * 2008-06-24 2012-04-24 International Business Machines Corporation Flexible configuration item reconciliation based on data source prioritization and persistent ownership tracking
CN101783740B (zh) * 2009-01-21 2012-02-15 大唐移动通信设备有限公司 消息文件管理方法及装置
US9104715B2 (en) * 2010-06-23 2015-08-11 Microsoft Technology Licensing, Llc Shared data collections
US9330148B2 (en) 2011-06-30 2016-05-03 International Business Machines Corporation Adapting data quality rules based upon user application requirements
US9104748B2 (en) * 2011-10-21 2015-08-11 Microsoft Technology Licensing, Llc Providing a search service including updating aspects of a document using a configurable schema
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files
US9053079B2 (en) 2011-12-12 2015-06-09 Microsoft Technology Licensing, Llc Techniques to manage collaborative documents
US9218406B2 (en) 2012-04-26 2015-12-22 Connected Data, Inc. System and method for managing user data in a plurality of storage appliances over a wide area network for collaboration, protection, publication, or sharing
US10601799B2 (en) 2012-04-26 2020-03-24 Connected Data, Inc. System and method for visualizing data sharing arrangements for an organization
GB2515703B (en) * 2012-04-26 2020-04-08 Connected Data Inc System and method for managing user data in a plurality of storage appliances over a wide area network
US9396156B2 (en) 2012-04-26 2016-07-19 Connected Data, Inc. System and method for socially organized storage and shared access to storage appliances
US9881017B2 (en) * 2012-08-03 2018-01-30 Egnyte, Inc. System and method for event-based synchronization of remote and local file systems
US9021431B2 (en) 2013-01-07 2015-04-28 Abb Inc. System and method for developing, deploying and implementing power system computer applications
JP6303391B2 (ja) * 2013-10-22 2018-04-04 富士ゼロックス株式会社 履歴情報管理装置及びシステム並びにプログラム
US10380076B2 (en) 2014-07-21 2019-08-13 Egnyte, Inc. System and method for policy based synchronization of remote and local file systems
JP6341013B2 (ja) * 2014-09-11 2018-06-13 富士ゼロックス株式会社 端末装置、通信システムおよびプログラム
US10437789B2 (en) 2015-04-10 2019-10-08 Egnyte, Inc. System and method for delete fencing during synchronization of remote and local file systems
US11144510B2 (en) 2015-06-11 2021-10-12 Egnyte, Inc. System and method for synchronizing file systems with large namespaces
US20170177613A1 (en) 2015-12-22 2017-06-22 Egnyte, Inc. Event-Based User State Synchronization in a Cloud Storage System
US10970302B2 (en) 2017-06-22 2021-04-06 Adobe Inc. Component-based synchronization of digital assets
KR102024527B1 (ko) 2017-10-31 2019-11-04 최재호 공유폴더 파일 관리 장치 및 방법
KR20190084543A (ko) 2018-01-08 2019-07-17 최재호 폴더 메모장 제공 장치, 이에 의해 수행되는 폴더 메모장 제공 방법 및 이를 저장하는 기록매체
KR20190086913A (ko) 2018-01-15 2019-07-24 최재호 폴더 연동형 업무객체 관리 장치, 이에 의해 수행되는 폴더 연동형 업무객체 관리 방법 및 이를 저장하는 기록매체
KR102076138B1 (ko) 2017-12-05 2020-02-11 최재호 스마트 로그파일 관리 장치 및 방법
US10795867B2 (en) 2017-11-06 2020-10-06 International Business Machines Corporation Determining available remote storages in a network to use to replicate a file based on a geographical requirement with respect to the file
KR102323017B1 (ko) 2018-01-15 2021-11-10 최재호 폴더 연동형 업무객체 관리 장치, 이에 의해 수행되는 폴더 연동형 업무객체 관리 방법 및 이를 저장하는 기록매체
US11321012B2 (en) * 2018-10-12 2022-05-03 Adobe Inc. Conflict resolution within synchronized composite-part-based digital assets
KR102457259B1 (ko) 2019-02-26 2022-10-21 최재호 폴더 메모장 제공 장치, 이에 의해 수행되는 폴더 메모장 제공 방법 및 이를 저장하는 기록매체
KR20190084905A (ko) 2019-02-26 2019-07-17 최재호 폴더 메모장 제공 장치, 이에 의해 수행되는 폴더 메모장 제공 방법 및 이를 저장하는 기록매체
CN112163024B (zh) * 2020-09-11 2024-03-19 重庆誉存大数据科技有限公司 一种基于层级关联结构的配置信息导出和导入方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB684558A (en) * 1949-03-17 1952-12-17 Platt Brothers & Co Ltd Improvements in weft stop motion devices for looms for weaving tufted pile fabrics
US5261051A (en) * 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
IT1239122B (it) * 1989-12-04 1993-09-28 Bull Hn Information Syst Sistema multiprocessore a risorse distribuite con replicazione dinamica di dati globali
EP0462914A3 (en) * 1990-06-21 1993-06-02 International Business Machines Corporation A method of creating documents using existing documents
US5471617A (en) * 1991-06-24 1995-11-28 Compaq Computer Corporation Computer management system and associated management information base
JPH0824291B2 (ja) * 1993-03-25 1996-03-06 日本電気株式会社 ネットワーク管理システム
US5469503A (en) * 1993-07-27 1995-11-21 Aspect Telecommunications Corporation Method for resynchronizing secondary database and primary database with preservation of functionality of an automatic call distribution system
US5608426A (en) * 1993-09-28 1997-03-04 Ncr Corporation Palette management for application sharing in collaborative systems
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US5490270A (en) * 1994-06-16 1996-02-06 International Business Machines Corporation Simultaneous updates to the modification time attribute of a shared file in a cluster having a server and client nodes
US5774717A (en) * 1995-12-15 1998-06-30 International Business Machines Corporation Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts
US5706510A (en) * 1996-03-15 1998-01-06 Hewlett-Packard Company Zymbolic history management system

Also Published As

Publication number Publication date
US6088706A (en) 2000-07-11
CN1099785C (zh) 2003-01-22
EP0794646A3 (de) 2000-01-26
EP0794646B1 (de) 2004-06-09
KR970066947A (ko) 1997-10-13
GB9604987D0 (en) 1996-05-08
JPH09244936A (ja) 1997-09-19
CN1169628A (zh) 1998-01-07
KR100295725B1 (ko) 2001-08-07
DE69729399D1 (de) 2004-07-15
EP0794646A2 (de) 1997-09-10

Similar Documents

Publication Publication Date Title
DE69729399T2 (de) Datenverwaltungssystem und Verfahren für replizierte Daten
DE69932465T2 (de) Dateidistributionssystem und dessen Verfahren
DE3908459C2 (de) Netzwerkserver
DE60122691T2 (de) Verfahren und vorrichtung zum verteilten cachen
EP0743595B1 (de) Kommunikationssystem mit Mitteln zum Austausch von Software
DE10134492B4 (de) Ausfallübernahme des Dateimanagementsystems in einem Rechnercluster
DE69724554T2 (de) Datenübertragungsmechanismus
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
DE69911681T2 (de) Verfahren zum Verfolgen von Konfigurationsänderungen in Netzwerken von Rechnersystemen durch historische Überwachung des Konfigurationsstatus der Vorrichtungen im Netzwerk
DE69635047T2 (de) Vernetzte server mit kundenspezifischen diensten zum herunterladen von videos
DE60008102T2 (de) Verfahren und vorrichtung zur mehrfachsendung
DE69727438T2 (de) Zwischenspeicher-Protokoll für verbesserte Webleistung
DE10112941B4 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE10311082B4 (de) Elektronikdokumentmanagementverfahren
DE60220418T2 (de) Verfahren und Anbieter zur Systemsynchronisation
DE69723432T2 (de) Informationsauffindungssystem mit einer cachedatenbank
EP1810523B1 (de) Verfahren und produkte zum informationsabgleich zwischen manager und agent in einem managementnetz
DE602004006224T2 (de) Verfahren und Vorrichtung zur Datensynchronisierung eines verteilten Datenbanksystems
DE10330282A1 (de) Vorrichtung und Verfahren zum benutzerseitigen Bearbeiten von elektronischen Nachrichten mit Datei-Anlagen
EP0966169B1 (de) Sicherungsverfahren für Betriebsdaten eines Netzelementes und Steuerungseinrichtung für ein Netzelement
DE602004013397T2 (de) Verfahren und Apparat zum Verschieben von Daten zwischen Speichersystemen
EP2250588B1 (de) Verfahren und programm zum bereitstellen von datenkohärenz in netzwerken
DE19803697C2 (de) Verfahren zum Aufrüsten eines Softwaresystems und Vorrichtung zur Durchführung des Verfahrens
DE112006001427T5 (de) Sicherheitssystem für ein persönliches Internetkommunikationsgerät
EP1723815A1 (de) Synchronisation von daten in zwei oder mehr teilnehmerkarten zum betreiben eines mobilen endger ts

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7