-
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.