-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf Computernetzwerke
und genauer gesagt stellt die vorliegende Erfindung ein System und
ein Verfahren zum Synchronisieren elektronischer Post über ein
Computernetzwerk bereit.
-
2. Hintergrund des Standes
der Technik
-
Datenkonsistenz
ist für
Computerbenutzer ein wesentlicher Gesichtspunkt. Beispielsweise
riskiert ein Benutzer, wenn er mehrfache unabhängig modifizierbare Kopien
eines Dokumentes hält,
daß er eine
veraltete Version benutzt. Zu dem Zeitpunkt, zu welchem der Benutzer
eine Inkonsistenz feststellt, ist möglicherweise bereits eine Fehlkommunikation oder
ein Datenverlust aufgetreten. Der Benutzer muß dann mehr Zeit mit dem Versuch
verbringen, die inkonsistenten Versionen abzugleichen, und sich
mit irgendwelchen fehlerhaften Kommunikationen befassen.
-
Die
Probleme der Dateninkonsistenz verstärken sich noch, wenn Kopien
eines Dokumentes nicht mehr zugänglich
sind. Wenn beispielsweise mehrere Kopien eines Dokumentes an unterschiedlichen Netzwerkstellen
gehalten werden, beeinträchtigen Netzwerksicherheitssysteme,
wie z. B. die konventionelle Firewall-Technik, die Datenzugänglichkeit.
D.h., ein Benutzer hat möglicherweise
nur auf eine bestimmte dieser Netzwerkpositionen Zugriff. Ohne Zugriff
auf die anderen Stellen kann der Benutzer keine Bestätigung erhalten,
daß die
Version an einer zugänglichen
Stelle der aktuellste Entwurf ist.
-
Die
Probleme der Datenkonsistenz und der Zugänglichkeit treten auf dem Gebiet
der elektronischen Post (E-Mail) auf. Beispielsweise kann ein Benutzer
eine E-Mail-Datenbank an seinem Arbeitsplatz betreiben. Auf der
Basis von Sicherheitssystemen, die durch das Intranet am Arbeitsplatz
implementiert sind, hat der Benutzer möglicherweise keinen Zugriff
auf die Datenbank und kann weder E-Mails lesen, noch auf diese reagieren,
bis er an seinen Arbeitsplatz zurückkehrt. Weiterhin hat ein
Benutzer, der auf Reisen ist und der gerade an einem entfernt gelegenen
Anschluß bzw.
Terminal arbeitet, möglicherweise
nicht die erforderlichen, speziellen Anwendungsprogramme, um die
Sicherheitsschranken des Intranets zu passieren. Weiterhin ist der
auf Reisen befindliche Benutzer damit belastet, eine Aufzeichnung
aller Vorgänge
und Passwords zu halten, um die Sicherheitsschranken des Systems
an jedem Ort zu überwinden.
-
Diese
Probleme werde noch weiter verstärkt, wenn
E-Mail-Programme von unterschiedlichen Herstellern bzw. Verkäufern verwendet
werden, welche unterschiedliche Protokolle implementieren. Beispielsweise
arbeiten der E-Mail-Client des Netscape NavigatorTM und
der E-Mail-Client von Outlook ExpressTM E-Mail
jeweils über
Computernetzwerke hinweg. Jeder E-Mail-Client ver wendet jedoch unterschiedliche
Formate, speichert E-Mails in unterschiedlichen Dateien und implementiert
unterschiedliche Protokolle. Demnach sind die E-Mails nicht einfach
austauschbar.
-
Es
besteht daher Bedarf an einem System und einem Verfahren, um Benutzer
mit E-Mail-Konsistenz
und Zugänglichkeit über ein
Computernetzwerk hinweg zu versorgen.
-
Die
US-A-5,647,002 (Brunson) beschreibt einen Mechanismus zum automatischen
Synchronisieren einer Mailbox, die auf einem E-Mail-Server ruht bzw.
abgelegt ist, mit einer Mailbox, die auf einem Server für Post in
Form von Stimmen bzw. Sprache (Voicemail) beruht. Eine Synchronisierung
wird bewirkt, indem eine entsprechende Nachricht in einer Mailbox
für jede
Nachricht erzeugt wird, die in der anderen Mailbox des Paares aus
Mailboxen ankommt. Wenn die entsprechende Nachricht nicht die gesamte
Information enthält,
die von der ursprünglichen Nachricht
getragen wurde, weil beispielsweise irgendwelche Information in
der Ursprungsnachricht in einem Medium ausgedrückt ist oder ein Format hat, welches
inkompatibel ist oder nicht durch Umwandlung in dem anderen System
kompatibel gemacht werden kann, so wird eine teilweise Kopieranzeige für die entsprechende
Nachricht erhoben und das Verhalten der Synchronisierung wird verändert, um die
ursprünglichen
Nachrichteninhalte zu schützen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Verschiedene
Aspekte der Erfindung sind in den beigefügten Ansprüchen dargelegt.
-
Eine
Ausführungsform
der Erfindung stellt ein System mit einer E-Mail-Maschine bereit,
um das geeignete Protokoll für
das Holen einer E-Mail von einem Mailserver zu verwenden. Die E-Mail-Maschine und der
kleinere Server können
dasselbe Protokoll implementieren, beispielsweise das Postamtprotokoll (Post
Office Protocol – POP
3), um miteinander zu kommunizieren. Auf Anforderung kann der erste Mail-Speicher
Konfigurationsdaten senden, welche der E-Mail-Maschine das geeignete
Protokoll anzeigen, das sich dann in angemessener Weise selber konfigurieren
kann.
-
Das
System kann weiterhin ein E-Mail-Synchronisationsmodul aufweisen,
welches ein vorbestimmtes Kriterium verwendet, um festzustellen,
ob die E-Mail an einen zweiten Mail-Speicher gesendet werden soll.
Beispielsweise muß das
E-Mail-Synchronisationsmodul keine E-Mail an den zweiten Mail-Speicher
senden, wenn die E-Mail zuvor bereits gesendet wurde. Der zweite
Mail-Speicher kann
auf einem globalen Server angeordnet sein, der bei geeigneter Identifizierung
und Authentisierung Benutzern, die umher reisen (Roaming) den HTML-Zugriff auf
seine Inhalte gewährt.
-
Das
System kann weiterhin ein Kommunikationsmodul zum Bereitstellen
eines Kommunikationskanals bei dem zweiten Mail-Speicher enthalten. Wenn
der zweiten Mail-Speicher durch eine Firewall geschützt wird,
kann das Kommunikationsmodul autorisiert werden, um eine sichere
Kommunikationsverbindung mit dem zweiten Speicher durch die Firewall
hindurch bereitzustellen. Das System kann weiterhin eine Webmaschine
enthalten, um das Hypertext-Übertragungsprotokoll
(HTTP) zu verwenden, um die E-Mail über den Kommunikationskanal
an den zweiten Mail-Speicher zu senden. Das System kann auf einem
computerlesbaren Speichermedium gespeichert werden.
-
Mit
anderen Worten kann eine Ausführungsform
der Erfindung im weitesten Sinne so beschrieben werden, daß sie Einrichtungen
zum Holen von E-Mail von einem Mailserver, Einrichtungen, die mit der
Holeinrichtung verbunden sind, um ein vorbestimmtes Kriterium zu
verwenden, um zu bestimmen, ob eine geholte E-Mail an einen zweiten
Mail-Speicher gesendet werden soll, Einrichtungen, die mit der Verwendungseinrichtung
verbunden sind, um einen Kommunikationskanal mit dem zweiten Mailserver bereitzustellen
und Einrichtungen, die mit der Bereitstellungseinrichtung zum Senden
einer E-Mail an den zweiten E-Mail-Speicher verbunden sind, enthält.
-
Eine
Ausführungsform
eines Verfahrens gemäß der Erfindung
kann im weitesten Sinne beschrieben werden als eines, welches die
Schritte bereitstellt, E-Mail von einem Mailserver unter Verwendung
eines vorbestimmten Kriteriums zu holen, um zu bestimmen, ob eine
geholte E-Mail an einen globalen Mail-Speicher gesendet werden soll,
Bereitstellen eines Kommunikationskanals bei dem globalen Mail-Speicher
und Senden der E-Mail an den zweiten Mail-Speicher.
-
Das
System und das Verfahren verwenden in vorteilhafter Weise eine vertrauenswürdige dritte Stelle
bzw. Partei, um die Synchronisierung von elektronischer Mail auf
einem Netzwerk zu ermöglichen. Dementsprechend
kann ein Benutzer, der beispielsweise einen Arbeitsplatz, einen
Heim-Arbeitsplatz und den globalen Serverplatz behält, E-Mails über alle
drei Plätze
hinweg synchronisieren. Der umherreisende Benutzer kann daher auf
E-Mails zugreifen und diese beantworten, während er von der adressierten
Stellen entfernt ist. Da das System und das Verfahren über das
Internet arbeiten, kann die Synchronisierung über irgendeine beliebige Distanz
hinweg erfolgen. Da das System und das Verfahren eine Formatübersetzung
umfassen, ist eine Verschmelzung von E-Mails zwischen unterschiedlichen Anwendungsprogrammen
und unterschiedlichen Plattformen möglich. Weiterhin wirkt die
typische Firewall, welche eingehende Kommunikationen im allgemeinen
und einige ausgehende Protokolle verhindert, nicht als ein Hindernis
für die
E-Mail-Synchronisierung, da die Synchronisierung innerhalb der Firewall ausgelöst wird
und allgemein freigeschaltete Protokolle, wie z. B. das Hypertext-Übertragungsprotokoll (HTTP)
verwendet. Außerdem
können
das vorliegende System und Verfahren in einer von dem Client-Benutzer
unbeeinflußten
Weise arbeiten, da die bevorzugten Arbeitsweisen bzw. Einstellungen
des Benutzers vorab eingestellt werden können.
-
KURZE BESCHREIBUNG
DER FIGUREN
-
1 ist
ein Blockdiagramm, welches ein Computernetzwerk gemäß der vorliegenden
Erfindung veranschaulicht.
-
2 ist
ein Blockdiagramm, welches Einzelheiten eines Dienstleistungsservers
nach 1 veranschaulicht.
-
3 ist
ein Blockdiagramm, welches Einzelheiten des Desktopcomputers nach 1 veranschaulicht.
-
4 ist
ein Blockdiagramm, welches Einzelheiten eines Basissystems nach 1 veranschaulicht.
-
5 ist
ein Blockdiagramm, welches Einzelheiten des Synchronisierungsagenten
nach 1 veranschaulicht.
-
6 ist
eine graphische Wiedergabe eines beispielhaften Lesezeichens in
dem globalen Format.
-
7 ist
ein Flußdiagramm,
welches ein Verfahren zum Synchronisieren, welches ein Verfahren
zum Synchronisieren mehrerer Kopien eines Arbeitsraumelementes in
einem sicheren Netzwerk veranschaulicht.
-
8 ist
ein Blockdiagramm, welches ein Computernetzwerk gemäß der vorliegenden
Erfindung veranschaulicht.
-
9 ist
ein Blockdiagramm, welches Einzelheiten eines Client nach 8 veranschaulicht.
-
10 ist
ein Blockdiagramm, welches Einzelheiten des Basissystems nach 9 veranschaulicht.
-
11 ist
ein Blockdiagramm, welches Einzelheiten eines globalen Servers nach 8 veranschaulicht.
-
12 ist
ein Blockdiagramm, welches Einzelheiten des Synchronisierungsagenten
nach 8 veranschaulicht.
-
13 ist
ein Blockdiagramm, welches Einzelheiten des entfernten Anschlusses
bzw. Terminals nach 8 veranschaulicht.
-
14 ist
ein Flußdiagramm,
welches ein Verfahren zum Synchronisieren elektronischer Post in
einem Computernetzwerk veranschaulicht.
-
15 ist
ein Flußdiagramm,
welches ein Verfahren für
das Zugreifen auf elektronische Mail von dem globalen Server nach 8 veranschaulicht.
-
GENAUE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
1 ist
ein Blockdiagramm, welches ein Computernetzwerk 100 veranschaulicht,
das einen ersten Knoten, wie z. B. einen entfernt gelegenen Computeranschluß bzw. ein
entferntes Computerterminal 102 aufweist, welches über einen
Kommunikationskanal 104, wie z. B. das Internet, mit einem
globalen Server 106 verbunden ist. Der globale Server 106 ist
seinerseits über
den Kommunikationskanal 108, wie z. B. das Internet, mit
einem zweiten Knoten, wie z. B. einem Local Area Network (LAN) 110 verbunden.
Der globale Server 106 ist durch eine globale Firewall 112 geschützt und
das LAN 110 ist durch eine LAN-Firewall 114 geschützt.
-
Das
LAN 110 enthält
einen Systembus 126, welcher die LAN-Firewall 114 mit
einem E-Mail-Server 128,
der einen E-Mail-Ordner 138 hat, welcher E-Mails enthält, weiterhin
mit einem Fileserver 132, der einen Dateiordner 142 hat,
welcher Dateien enthält,
mit einem Kalenderserver 130, der einen Kalenderordner 140 hat,
welcher Kalenderdaten enthält, und
mit einem Desktopcomputer 134 verbindet, welcher einen
Webbrowser 152 und einen Lesezeichenordner 144,
der Lesenzeichen enthält,
hat. Man erkennt, daß der
E-Mail-Ordner 138, der Dateiordner 142, der Kalenderordner 140 und
der Lesezeichenordner 144 oder Teile derselben an unterschiedlichen Stellen,
wie z. B. auf dem Desktopcomputer 134, gespeichert sein
können.
Der E-Mail-Order 132, der Dateiordner 142, der
Kalenderordner 140 und der Lesezeichenordner 144 sind
lediglich Beispiele, sind entsprechender ähnlicher Information gruppiert
und werden hier gemeinsam als „Arbeitsplatzdaten" bzw. „Arbeitsraumdaten" 136 bezeichnet.
Fachleute erkennen, daß die
Arbeitsplatzdaten 136 andere Datentypen, wie z. B. ein
Anwendungsprogramm, wie Microsoft Word 6.0.1 und die Dokumente,
die durch dessen Verwendung erzeugt wurden, enthalten kann. Man
erkennt weiterhin, daß der
E-Mail-Ordner 138, der Dateiordner 142, der Kalenderordner 140 und
der Lesezeichenordner 144 jeweils in Arbeitsplatzelemente
aufgeteilt werden können,
wobei jeder Arbeitsplatzelementordner oder jedes Arbeitsplatzelement individuell
durch bestimmte Versionsinformation 255 gekennzeichnet
ist (die nachstehend in Bezug auf 2 erläutert wird).
Dementsprechend kann jede E-Mail oder jeder E-Mail-Ordner oder jede Datei oder jeder
Dateiordner, jeder Kalender oder Kalenderordner, jedes Lesezeichen
oder jeder Lesezeichenordner, jedes Dokument oder jeder Dokumentordner, etc.
als ein „Arbeitsplatzelement" bezeichnet werden.
-
Jedes
Arbeitsplatzelement der Arbeitsplatzdaten 136 in dem LAN 110 wird
in einem vorbestimmten Format gehalten, das als Format A bezeichnet wird,
welches auf der Dienstleistungsmaschine 245 (2)
beruht, welche es erzeugt hat. Beispielsweise kann der Webbrowser 152 auf
dem Desktopcomputer 134 der Webbrowser von Netscape NavigatorTM sein und die Lesezeichen in dem Lesezeichenordner 144,
die dadurch erzeugt wurden, werden in dem Format A gehalten. Auch
wenn das Format A als ein einzelnes Format beschrieben wird, sind
sich Fachleute auf dem Gebiet einig, daß das Format A tatsächlich ein
Format für
jeden Informationstyp aufweist; beispielsweise gibt es ein Format
A für Lesezeichen,
ein Format A für
Dateien, ein Format A für Kalenderdaten,
ein Format A für
E-Mails, usw.
-
Der
entfernte Anschluß bzw.
das entfernte Terminal 102 speichert Dienstleistungsmaschinen 154,
um Arbeitsplatzdaten 116 zu speichern bzw. zu halten oder
zu pflegen, welche möglicherweise
Information enthalten, die mit der Information in den Arbeitsplatzdaten 136 zusammenhängt bzw.
identisch ist. Die Arbeitsplatzen 116 werden in einem Format gehalten,
welches als Format B bezeichnet wird und welches von Format A verschieden
sein kann. Das Format B beruht ebenfalls auf den Dienstleistungsmaschinen 154,
welche Arbeitsplatzelemente erzeugen. Wenn beispielsweise eine der
Dienstleistungsmaschinen 154 der Webbrowser des Internet
ExplorerTM (nicht dargestellt) ist, so werden
die Lesezeichen (nicht dargestellt), die von diesem erzeugt werden,
in dem Format B gehalten. Auch wenn das Format B als ein einzelnes
Format beschrieben wird, so wissen Fachleute auf dem Gebiet, daß das Format
B eigentlich ein Format für
jeden Typ von Information umfaßt.
Weiterhin umfassen die Arbeitsplatzdaten 116 auch Versionsinformation 150,
die ähnlich
der Versionsinformation 255 ist, welche nachstehend unter
Bezug auf 2 beschrieben wird.
-
Es
versteht sich, daß ein
entferntes Terminal 102 ein intelligentes Telefon, ein
persönlicher
Datenassistent (Personal Data Assistant – PDA), wie z. B. das PalmPilot-System
von der US Robotics, Inc., ein Laptopcomputer etc. sein kann. Bei
einem intelligenten Telefon können
die Arbeitsplatzdaten 116 Telefonnummern und E-Mails enthalten.
Bei einem PDA können
die Arbeitsplatzda ten 116 Adressen, Kalenderdaten und E-Mails
umfassen. Bei einem Laptopcomputer können die Arbeitsplatzdaten 116 dieselben
Informationstypen wie die Arbeitsplatzdaten 136 umfassen.
-
Der
globale Server 106 wird als Administrator eines Dritten,
bzw. einer dritten Partei. Der globale Server 106 speichert
unabhängig
modifizierbare Kopien ausgewählter
Abschnitte der Arbeitsplatzdaten 136 bzw. 116,
die hier allgemein als Arbeitsplatzdaten 120 bezeichnet
werden. Dementsprechend enthalten die Arbeitsplatzdaten 120 eine
unabhängig modifizierbare
Kopie jedes Arbeitsplatzelementes in den ausgewählten Abschnitten der Arbeitsplatzdaten 136 und 116 und
eine unabhängig
modifizierbare Kopie jeder entsprechenden Versionsinformation 255 (2)
und 150. Die Versionsinformationskopien werden hier gemeinsam
als Versionsinformation 148 bezeichnet und sie werden auch
unter Bezug auf 2 beschrieben.
-
Der
globale Server 106 hält
die Arbeitsplatzdaten 120 in einem Format, das als ein „globales
Format" bezeichnet
wird, welches so ausgewählt
wird, daß es
in einfacher Weise durch den globalen Übersetzer 122 zu und
von dem Format A und zu und von dem Format B übersetzt werden kann. Auch
wenn das globale Format als ein einzelnes Format beschrieben wird,
verstehen Fachleute auf dem Gebiet, daß das globale Format eigentlich
ein globales Format für
jeden Informationstyp umfaßt,
d.h. es gibt ein globales Format für Lesezeichen, ein globales
Format für
Dateien, ein globales Format für
Kalenderdaten, ein globales Format für E-Mails etc. Ein beispielhaftes
Lesezeichenarbeitsplatzelement in dem globalen Format wird im einzelnen
nachstehend unter Bezug auf 6 beschrieben.
-
Das
Netzwerk 100 weist weiterhin eine Synchronisierungseinrichtung
auf, die ein Basissystem 146 umfaßt, welches in dem LAN 110 und
beispielsweise auf dem Desktopcomputer 134 gespeichert
ist. Das Netzwerk 100 umfaßt weiterhin einen Synchronisierungsagenten 124,
der außerhalb
der LAN-Firewall 114 und vorzugsweise auf dem globalen
Server 106 gespeichert ist. Das Basissystem 146 und
der Synchronisierungsagent 124 arbeiten so zusammen, daß sie ausgewählte Abschnitte
der Arbeitsplatzdaten 136 mit ausgewählten Abschnitten der Arbeitsplatzdaten 120 synchronisieren.
Die Synchronisationseinrichtungen können die Arbeitsplatzelemente individuell
synchronisieren, beispielsweise spezielle Word-Prozessor-Dokumente,
oder können
Ordner für
Arbeitsplatzelemente, beispielsweise einen Lesezeichenordner, synchronisieren.
Im allgemeinen verwaltet das Basissystem 146 den ausgewählten Bereich
der Arbeitsplatzdaten 136 in dem LAN 110 und der
Synchronisierungsagent 124 verwaltet die ausgewählten Bereiche
der Arbeitsplatzdaten 120 in dem globalen Server 106.
Es versteht sich, daß der globale Übersetzer 122 mit
der Synchronisationseinrichtung zusammenarbeitet, um Datenformate
zu und von dem globalen Format zu übersetzen. Wie im einzelnen
weiter unten unter Bezug auf 4 beschrieben
wird, initiiert das Basissystem 190 vorzugsweise die Datensynchronisierung
und steuert diese.
-
Die
Synchronisierungseinrichtung kann außerdem ein Basissystem 118 umfassen,
welches auf dem entfernt gelegenen Terminal 102 gespeichert
ist und in einer ähnlichen
Weise wie das Basissystem 146 arbeitet. Das Basissystem 118 auf
dem entfernt gelegenen Anschluß 102 arbeitet
mit dem Synchronisierungsagenten 124 zusammen, um ausgewählte Abschnitte
der Arbeitsplatzdaten 116 mit ausgewählten Abschnitten der Arbeitsplatzdaten 120 zu
synchronisieren. Wie im einzelnen genauer weiter unten unter Bezug
auf 4 beschrieben wird, initiiert das Basissystem 118 auf
dem entfernt gelegenen Terminal 102 vorzugsweise auch die
Datensynchronisierung mit dem globalen Server 106 und steuert
diese. Man beachte auch, daß die
Verteilung von Arbeit zwischen dem Basissystem 118 in dem
entfernt gelegenen Terminal 102 und dem Synchronisierungsagenten 124 in
dem globalen Server 106 variieren kann. Mitunter, hautsächlich wenn
das entfernt gelegene Terminal 102 eine Einrichtung mit
relativ geringer Rechnerleistung ist (wie z. B. ein intelligentes
Telefon oder ein PDA), erfolgt der größte Teil der eigentlich rechnungstechnisch
intensiven Arbeit innerhalb des Synchronisierungsagenten 124 in
dem globalen Server 106. In anderen Situationen, wenn beispielsweise das
entfernt gelegene Terminal ein voll konfigurierter PC ist, erfolgt
der größte Teil
der rechnungstechnisch intensiven Arbeit lokal auf dem Basissystem 118 in dem
entfernt gelegenen Terminal 102. Dementsprechend synchronisiert
die Synchronisierungseinrichtung unabhängig die ausgewählten Abschnitte
der Arbeitsplatzdaten 116 und 136 mit ausgewählten Abschnitten
der Arbeitsplatzdaten 120. Demnach synchronisiert die Synchronisierungseinrichtung
indirekt Arbeitsplatzdaten 136 mit Arbeitsplatzdaten 116.
-
2 ist
ein Blockdiagramm, welches Einzelheiten eines Dienstleistungsservers 200 veranschaulicht,
wobei der E-Mail-Server 145, der Dateiserver 150,
der Kalenderserver 155 und der Desktopcomputer 160 jeweils
ein Beispiel dafür
sind. Der Dienstleistungsserver 200 enthält eine
zentrale Verarbeitungseinheit (CPU) 205, wie z. B. einen
Intel Pentium®-Mikroprozessor
oder einen Motorola Power PC®-Mikroprozessor. Eine
Eingabeeinrichtung 210, wie z. B. eine Tastatur und eine
Maus, und eine Ausgangseinrichtung 215, wie z. B. eine
Katodenstrahlröhrenanzeige
(CRT) sind über
einen Signalbus 220 mit der CPU 205 verbunden.
Eine Kommunikationsschnittstelle 225 (wie z. B. ein Ethernet-Anschluß), eine
Datenspeichereinrichtung 230 (wie z. B. eine Magnetplatte),
und ein Speicher mit wahlfreiem Zugriff (RAM) 235 sind über einen
Signalbus 220 ebenfalls mit der CPU 205 verbunden.
-
Ein
Betriebssystem 240 enthält
ein Programm zum Steuern der Verarbeitung durch die CPU 205 und
wird typischerweise in der Datenspeichereinrichtung 230 gespeichert
und zur Ausführung
in den RAM 235 geladen. Eine Dienstleistungsmaschine 245 enthält ein Programm
zu Durchführen
eines bestimmten Dienstes, wie z. B. des Bereithaltens einer E-Mail-Datenbank,
einer Dateidatenbank, einer Kalenderdatenbank oder einer Lesenzeichendatenbank.
Die Dienstleistungsmaschine 245 kann ebenfalls in der Datenspeichereinrichtung 230 gespeichert sein
und kann zur Ausführung
in den RAM 235 geladen werden.
-
Um
einen Dienst durchzuführen,
erzeugt die Dienstleistungsmaschine 245 Dienstleistungsdaten 250 (beispielsweise
eine E-Mail oder einen E-Mail-Ordner 138, der E-Mails enthält, eine
Datei oder einen Dateiordner 142, welcher Dateien enthält, Kalenderdaten
oder einen Kalenderordner 140, welcher Kalenderdaten enthält, ein
Lesezeichen oder einen Lesezeichenordner 144, welcher Lesezeichen enthält, etc.)
in dem Format A entsprechend vorbestimmten Protokollen. Die Dienstleistungsmaschine 245 speichert
die Daten 250 in der Datenspeichereinrchtung 230.
Die Dienstleistungsdaten 250 enthalten Versionsinformation 155,
die das Datum und den Zeitpunkt der letzten Modifizierung und den
Status, die die letzte Interaktion mit dem globalen Server 106 anzeigt.
-
Wenn
beispielsweise die Dienst- bzw. Servicedaten 250 erzeugt
werden und so ausgewählt werden,
daß sie
mit den Arbeitsplatzdaten 120 des globalen Servers verschmelzen,
so kann die Versionsinformation 255 für die Servicedaten 250 das
Datum der letzten Modifikation und eine Nulleinstellung enthalten,
welche den Zustand der letzten Interaktion mit dem globalen Server 106 anzeigt.
Aus der Versionsinformation 255 bestimmt das Basissystem 246, daß die Servicedaten 250 in
ihrer Gesamtheit nicht in den Arbeitsplatzdaten des globalen Servers
aufgegangen bzw. mit diesem verschmolzen sind. Wenn in ähnlicher
Weise die Servicedaten 255 Elemente 1, 2 und 3 für die letzte
Modifizierung enthalten, so zeigt der vorherige Status der letzten
Interaktion an, daß die
Servicedaten 255 die Elemente 1, 2 und 3 enthielten. Wenn
die Servicedaten 255 aktuell die Elemente 2, 3 und 4 enthalten,
so stellt das Basissystem 140 fest, daß seit der letzten Synchronisierung
das Element 1 gelöscht
wurde und das Element 4 hinzugefügt
wurde.
-
Es
versteht sich, daß die
Versionsinformation 148 auf dem globalen Server 106 Information
enthält,
die der Versionsinformation 255 ähnlich ist. D.h., die Versionsinformation 148 enthält Information,
welche das Datum und den Zeitpunkt enthält, zu welchem die Version
zuletzt modifiziert wurde, sowie den Zustand der letzten Interaktion
mit jedem Client enthält.
Die Servicemaschine 245 arbeitet so, daß sie die Versionsinformation 255 aktualisiert,
nachdem Modifikationen vorgenommen wurden und nachdem eine Synchronisation
erfolgt.
-
3 ist
ein Blockdiagramm, welches Einzelheiten des Desktopcomputers 160 veranschaulicht,
der eine CPU 305, eine Eingabeeinrichtung 310,
eine Ausgabeeinrichtung 315, eine Kommunikationsschnittstelle 325,
eine Datenspeichereinrichtung 330 und einen RAM 335 enthält, die
jeweils mit einem Signalbus 320 verbunden sind.
-
Ein
Betriebssystem 340 enthält
ein Programm zum Steuern der Verarbeitung durch die CPU und es wird
typischerweise eine Datenspeichereinrichtung 330 gespeichert
und zur Ausführung
in den RAM 335 geladen. Ein Webbrowser 152 (d.h.
eine bestimmte Servicemaschine 245, 2) enthält ein Serviceprogramm
im Format A zum Verwalten eines Lesezeichenordners 144 (d.h.
bestimmte Servicedaten 250, 2), welcher
Versionsinformation 350 enthält (d.h. bestimmte Versionsinformation 255, 2).
Der Webbrowser 152 kann ebenfalls in der Datenspeichereinrichtung 330 gespeichert
sein und zur Ausführung
in den RAM 335 geladen werden. Der Lesezeichenordner 144 kann
in der Datenspeichereinrichtung 330 gespeichert sein. Wie
oben unter Bezug auf 1 erläutert wurde, arbeitet das Basissystem 146 so,
daß es
die Arbeitsplatzdaten 136 (welche den Lesezeichenordner 144 umfassen)
mit den Arbeitsplatzdaten 120 synchronisiert. Das Basissystem 146 kann
ebenfalls in der Datenspeichereinrichtung 330 gespeichert
sein und zur Ausführung
in den RAM 335 geladen werden.
-
4 ist
ein Blockdiagramm, welches Einzelheiten des Basissystems 200 veranschaulicht, welches
ein Beispiel für
die Basissysteme 146 und 118 darstellt. Das Basissystem 400 weist
ein Kommunikationsmodul 405, ein Benutzerschnittstellenmodul 410,
Lokalisierungsmodule 415, ein Synchronisierungsstart („synch-start")-Modul 420,
ein allgemeines Synchronisierungsmodul 425 und ein auf
Inhalt bezogenes Synchronisierungsmodul 430. Der Einfachheit
halber ist jedes Modul so dargestellt, daß es mit jedem anderen über einen
Signalbus 440 in Kommunikationsverbindung steht.
-
Das
Kommunikationsmodul 405 enthält Programme für das Komprimieren
von Daten und Programme zum Kommunizieren über die Kommunikationsschnittstelle 325 (3)
mit dem Synchronisierungsagenten 124 (1).
Das Kommunikationsmodul 405 kann weiterhin Programme für das Anwenden
der Technologie der sicheren Stecker- bzw. Sockelebene (Secure Socket
Layer – SSL)
und Techniken für
die Benutzeridentifizierung und Authentisierung (d.h. digitale Zertifikate)
enthalten, um einen sicheren Kommunikationskanal durch die globale
Firewall 112 hindurch bereitzustellen. Beispiele für Kommunikationsmodule 405 können TCP/IP-Stapel
oder das AppleTalk®-Protokoll umfassen.
-
Das
Benutzerschnittstellenmodul 410 enthält Programme zum Kommunizieren
mit einem Benutzer und kann eine konventionelle graphische Benutzerschnittstelle
(GUI) enthalten. Das Benutzerschnittstellenmodul 410 arbeitet
mit den anderen Systemkomponenten, die hierin beschrieben wurden,
zusammen.
-
Die
Lokalisierungsmodule 415 enthalten Programme für das Identifizieren
der Speicherstellen der Arbeitsplatzelemente in den Arbeitsplatzdaten 136 oder 116 und
in den Arbeitsplatzdaten 120. Die Identifizierung der Speicherstelle
für das
Workspace-Element kann unter Verwendung intelligenter Software implementiert
werden, d.h., vor Einstellen von Speicheradressen oder des Registers
des Systems oder Verwendung von Dialogboxen, um einen Benutzer zu
befragen. Genauer gesagt legen die Lokalisierungsmodule 415 in
dem Basissystem 146 die Speicheradressen des E-Mail-Ordners 138,
des Dateiordners 142, des Kalenderordners 140 und
des Lesezeichenordners 144 sowie die Speicheradressen der
Arbeitsraumelemente darin fest. Die Lokalisierungsmodule 415 legen
auch die entsprechenden Speicheradressen der entsprechenden Ordner
in den Arbeitsplatzdaten 120 und der entsprechenden Arbeitsplatzelemente
darin fest. In ähnlicher
Weise legen die Lokalisierungsmodule 415 in dem Basissystem 118 die
Speicherstellen der Arbeitsplatzelemente der Arbeitsplatzdaten 116 und
die Speicherstellen der entsprechenden Arbeitsplatzelemente in dem
Arbeitsraum 120 fest.
-
Es
versteht sich, daß die
Lokalisierungsmodule 415 solche Lokalisierungsmodule 415 enthalten können, die
jedem Ordner oder Arbeitsplatzdatentyp speziell zugeordnet werden
können.
D.h., die Lokalisierungsmodule 415 können ein Lokalisierungsmodul 415 umfassen,
welches der Lokalisierung von Lesezeichen gewidmet ist, ein Lokalisierungsmodul 415,
welches der Lokalisierung von E-Mails gewidmet ist, ein Lokalisierungsmodul 415,
welches der Lokalisierung von Dateien zugeordnet ist, ein Lokalisierungsmodul 415,
welches der Lokalisierung von Kalenderhinweisen gewidmet ist, etc.
Man erkennt weiterhin, daß die
Lokalisierungsmodule 415 beim Herauffahren des Systems
oder nach jeder Kommunikation mit dem globalen Server 120 eine
Identifizierung der Speicherlokalisierung eines Arbeitsplatzelementes
ausführen
können,
um aktualisierte Speicheradressen von Arbeitsplatzelementen aufrecht
zu erhalten.
-
Das
Synchronisierungs-Startmodul 420 enthält Programme bzw. Abläufe um zu
bestimmen, wann die Synchronisierung von Arbeitsplatzdaten 136 oder 116 mit
Arbeitsplatzdaten 120 auszulö sen ist. Beispielsweise kann
das Synchronisierungs-Daten-Modul 420 eine Datensynchronisierung
auf Anforderung eines Benutzers, zu einer bestimmten Tageszeit,
nach Ablauf einer bestimmten Zeitdauer, nach einer vorbestimmten
Anzahl von Änderungen, nach
einer Benutzungsaktion, wie z. B. des Abmeldens eines Benutzers
oder aufgrund ähnlicher
Kriterien ausgelöst
werden. Das Synchronisierungs-Start-Modul 420 löst eine
Datensynchronisierung aus, indem es das allgemeine Synchronisierungsmodul 425 (welches
unten weiter beschrieben wird) anweist, mit der Ausführung seiner
Programme zu beginnen. Es versteht sich, daß die Kommunikation mit dem
Synchronisierungsagenten 124 vorzugsweise aus dem LAN 110 heraus
ausgelöst
wird, da typischerweise eine Firewall 114 eingehende Kommunikationen
verhindert, jedoch ausgehende Kommunikationen erlaubt.
-
Das
allgemeine Synchronisierungsmodul 425 enthält Routinen
bzw. Unterprogramme, um eine Versionsinformation 148 für modifizierte
Versionen von dem Synchronisierungsagenten 124 (1)
zu empfangen, sowie Unterprogramme (Routinen), um die Versionsinformation 255 oder 150 im
Vergleich zu einer letzten Synchronisierungssignatur 435 zu
untersuchen (wie z. B. gegenüber
dem letzten Synchronisierungsdatum und der -zeit), um festzustellen, welche
Versionen modifiziert worden sind. Das allgemeine Synchronisierungsmodul 425 enthält weiterhin Routinen
bzw. Programme, um die Versionsinformation 148 und die
Versionsinformation 255 oder 150 zu untersuchen,
um festzustellen, ob eine oder beide Versionen eines bestimmten
Arbeitsplatzelementes oder Arbeitsplatzelementordners modifiziert
worden sind. Weiterhin enthält
das allgemeine Synchronisierungsmodul 425 Routinen zum
Ausführen
einer angemessenen Antwortaktion auf die Synchronisierung. Angemessene
Antwortaktionen auf die Synchronisierung können umfassen, daß, wenn
nur eine Version eines Arbeitsplatzelementes in den Arbeitsplatzdaten 136 oder 116 modifiziert
worden ist, die modifizierte Version (als die bevorzugte Version)
an den (die) anderen Speicher weitergeleitet wird, oder daß nur die
Veränderungen
festgestellt und weitergeleitet werden. Das Berechnen von Veränderungen, die
vorgenommen wurden, kann durchgeführt werden, indem der aktuelle
Status im Vergleich zu dem vorherigen Status bei der letzten Synchronisierung untersucht
wird oder indem die beiden Versionen verglichen werden. Es versteht
sich, daß keine Überprüfung der Änderung
auf der Basis des Inhaltes erforderlich ist. Es versteht sich, daß ein Speicher
vorzugsweise nur die Änderungen
an den anderen Speicher weiterleitet, um den Gebrauch von Prozessorleistung
zu optimieren und um die Datenkommunikation über den Kommunikationskanal 108 oder 104 minimal
zu machen.
-
Andere
geeignete Reaktionen auf Synchronisierung können umfassen, daß, wenn
zwei Versionen eines Arbeitsplatzelementes unabhängig voneinander modifiziert
worden sind, das auf Inhalt beruhende Synchronisierungsmodul 430 (welches
unten weiter beschrieben wird) angewiesen wird, seine Routinen bzw.
Programme auszuführen.
D.h., daß dann,
wenn zwei Versionen desselben Arbeitsplatzelementes unabhängig modifiziert
worden sind, eine Durchsicht bzw. Kontrolle der Veränderungen
auf Basis des Inhaltes bevorzugt ist. Nach Abschluß der Datensynchronisierung
aktualisiert das allgemeine Synchronisierungsmodul 425 die
letzte Synchronisierungssignatur 435.
-
Das
auf Inhalt beruhende Synchronisierungsmodul 430 enthält Programme
für das
Abgleichen von zwei oder mehr modifizierten Versionen eines Arbeitsplatzelementes.
Wenn beispielswei se ein Benutzer das Original und die Kopie eines
Arbeitsplatzelementes seit der letzten Synchronisierung unabhängig modifiziert
hat, so stellt das auf Inhalt beruhende Synchronisierungsmodul 430 eine
angemessene Antwortaktion fest. Das auf Inhalt beruhende Synchronisierungsmodul 430 kann
den Benutzer auffordern, eine bevorzugte der modifizierten Versionen auszuwählen oder
kann auf der Basis von vorher eingestellten Präferenzen reagieren, d.h. indem
beide Versionen in beiden Speichern gespeichert werden, oder vorzugsweise
durch Integrieren der modifizierten Versionen in eine einzelne bevorzugte
Version, die jede der modifizierten Versionen in beiden Speichern
ersetzt.
-
Das
auf Inhalt beruhende Synchronisierungsmodul 430 untersucht
die an jeder Version vorgenommenen Änderungen und stellt fest,
ob Konflikte vorliegen. Wenn eine Integration von Versionen implementiert
ist, kann ein Konflikt auftreten, wenn inkonsistente Modifikationen,
wie z. B das Löschen
eines Absatzes in einer Version und das Verändern bzw. Modifizieren desselben
Absatzes in der anderen Version vorgenommen wurden. Wenn ein Konflikt vorliegt,
so versucht das auf Inhalt beruhende Synchronisierungsmodul 430 den
Konflikt aufzulösen beispielsweise
durch Anfordern einer Benutzerauswahl oder durch Speichern beider
Versionen in beiden Speichern. Wenn anderenfalls kein Konflikt vorliegt,
so integriert das auf Inhalt beruhende Synchronisierungsmodul 430 die
mit jeder der Versionen vorgenommenen Änderungen und aktualisiert
die Versionsinformation 148, 150 oder 255 entsprechend.
-
5 ist
ein Blockdiagramm, welches Einzelheiten des Synchronisierungsagenten 124 veranschaulicht,
welcher ein Kommunikationsmodul 505 (ähnlich dem oben unter Bezug
auf 4 beschriebenen Kommunikationsmodul 405)
sowie ein allgemeines Synchronisierungsmodul 515 (ähnlich dem allgemeinen
Synchronisierungsmodul 425, welches oben ebenfalls unter
Bezug auf 4 beschrieben wurde) enthält.
-
Das
Kommunikationsmodul 505 enthält Routinen zum Komprimieren
von Daten und Routinen, um über
den Kommunikationskanal 108 mit dem Basissystem 146 oder über den
Kommunikationskanal 104 mit dem Basissystem 118 zu
kommunizieren. Das Kommunikationsmodul 505 kann weiterhin
Routinen enthalten, um einen sicheren Kommunikationskanal durch
die globale Firewall 112 durch die LAN-Firewall 114 mit
dem Kommunikationsmodul 405 bereitzustellen.
-
Ähnlich dem
allgemeinen Synchronisierungsmodul 425 enthält das allgemeine
Synchronisierungsmodul 515 Routinen, um die Versionsinformation 148 und
die letzte Synchronisierungssignatur 435 (4)
zu untersuchen, um festzustellen, welche Versionen verändert worden
sind und um die vorgenommenen Änderungen
zu bestimmen. Es versteht sich, daß das allgemeine Synchronisierungsmodul 515 seine
eigene Kopie der letzten Synchronisierungssignatur (nicht dargestellt)
behalten kann oder die letzte Synchronisierungssignatur 435 von dem
Basissystem 146 oder 118 anfordern kann. Das allgemeine
Synchronisierungsmodul 515 umfaßt weiterhin Routinen, um Arbeitsplatzdaten 120,
die modifiziert werden sollen, an das allgemeine Synchronisierungsmodul 425 weiterzuleiten,
und Programme bzw. Routinen, um bevorzugte Versionen von Arbeitsplatzelementen
von Arbeitsplatzdaten 136 oder 116 oder einfach
die Änderungen
von dem allgemeinen Synchronisierungsmodul 425 zu empfangen.
-
6 veranschaulicht
ein beispielhaftes Lesezeichen-Arbeitsplatzelement in dem globalen
Format. Der globale Übersetzer 122 beinhaltet
sämtliche Informationen,
die von beiden Formaten (Format A und Format B) benötigt wird,
um das globale Format zu erzeugen. Wenn beispielsweise ein Lesezeichen im
Format A Elemente X, Y und Z benötigt
und ein Lesezeichen im Format B Elemente W, X und Y benötigt, so
baut der allgemeine Übersetzer 122 die Elemente
W, X, Y und Z ein, um ein Lesezeichen in dem globalen Format zu
erzeugen. Weiterhin übernimmt
der globale Übersetzer 122 die
Information, die von der Synchronisierungseinrichtung benötigt wird,
wie z. B. das zuletzt modifizierte Datum. Dementsprechend enthält ein Lesezeichen
in dem globalen Format eine Benutzeridentifizierung (ID) 605, eine
Eintrags-ID 610, eine Vorgänger-ID 615, ein Ordner-ID-Flag 620,
einen Namen 625, eine Beschreibung 630, den Uniform-Resource-Locator (URL) 635,
die Position 640, ein gelöschtes ID-Flag 645,
ein Datum 650 der letzten Modifizierung, ein erzeugtes
Datum 655 und ein Trennungs-ID-Flag 660.
-
7 ist
ein Flußdiagramm,
welches ein Verfahren 700 zur Verwendung eines globalen Übersetzers 122 veranschaulicht,
um mehrere Kopien eines Arbeitsplatzelementes in einem sicheren
Netzwerk 100 zu synchronisieren. Das Verfahren 700 beginnt
damit, daß das
Benutzerschnittstellenmodul 410 in Schritt 705 einen
Benutzer in die Lage versetzt, Arbeitsplatzelemente von Arbeitsplatzdaten 136 und 118 für die Synchronisierungseinrichtung zum
Synchronisieren auszuwählen.
Die Lokalisierungsmodule 415 in Schritt 710 identifizieren
die Speicherstellen der Arbeitsplatzelemente in den Arbeitsplatzdaten 136 und 116 und
die entsprechenden Speicherstellen in den Arbeitsplatzdaten 120.
Wenn ein ausgewähltes
Arbeitsplatzelement keine entsprechende Speicherstelle hat, wie
z. B. im Falle der Hinzufügung
eines neuen Arbeitsplatzelementes zu dem globalen Server 106,
so wird eine ausgewählt.
Die ausgewählte
Speicherstelle kann ein zuvor schon existierendes Arbeitsplatzelement
oder ein neues Arbeitsplatzelement sein bzw. enthalten. Wie oben
festgestellt, kann eine Identifizierung der Speicherstelle eines
Arbeitsplatzelementes unter Verwendung intelligenter Software oder
von Dialogboxen implementiert sein. Das allgemeine Synchronisierungsmodul 425 und
das allgemeine Synchronisierungsmodul 515 setzen den vorherigen
Status der Arbeitsplatzelemente auf den Nullsatz. Das Setzen des
vorherigen Status auf den Nullsatz zeigt an, daß sämtliche Informationen des Arbeitsplatzelementes
hinzugefügt worden
sind.
-
Das
Synchronisierungsstartmodul 420 in Schritt 720 stellt
fest, ob vorbestimmte Kriterien erfüllt worden sind, welche anzeigen,
daß die
Synchronisierung der Arbeitsplatzelemente, die in Schritt 705 ausgewählt wurden,
beginnen sollte. Falls nicht, so wartet das Synchronisierungs-Start-Modul 420 in
Schritt 725 und geht in einer Schleife zurück zu Schritt 720. Ansonsten
stellen das Kommunikationsmodul 405 und das Kommunikationsmodul 505 in
Schritt 730 einen sicheren Kommunikationskanal dazwischen
bereit.
-
Das
allgemeine Synchronisierungsmodul 425 und das allgemeine
Synchronisierungsmodul 515 stellen in Schritt 735 fest,
ob irgendein Arbeitsplatzelement modifiziert worden ist. D.h., das
allgemeine Synchronisierungsmodul 425 untersucht in Schritt 740 die
Versionsinformation 255 oder 150 jedes ausgewählten Arbeitsplatzelementes
in den Arbeitsplatzdaten 136 oder 116 im Vergleich
zu der letzten Synchronisierungssignatur 435, um modifizierte Arbeitsplatzelemente
zu lokalisieren. Dieser Vergleich kann das Vergleichen des Datums
der letzten Modifizierung mit dem Datum der letzten Synchronisierung
umfassen oder kann einen Vergleich zwischen dem aktuellen Status
oder dem vorherigen Status bei der letzten Interaktion umfassen.
In ähnlicher
Weise untersucht das allgemeine Synchronisierungsmodul 515 die
Versionsinformation 148 jedes entsprechenden Arbeitsplatzelementes
in den Arbeitsplatzdaten 120 und die letzte Synchronisierungssignatur
435, um modifizierte Arbeitsplatzelemente zu lokalisieren.
-
Wenn
in Schritt 735 keine modifizierten Arbeitsplatzelemente
oder -ordner lokalisiert werden, so aktualisieren die allgemeinen
Synchronisierungsmodule 425 und 515 in Schritt 716 die
letzte Synchronisierungssignatur 435 und die Methode 700 wird
beendet. Ansonsten stellt in Schritt 740 das allgemeine Synchronisierungsmodul 425 fest,
ob mehr als eine Version eines Arbeitsplatzelementes seit der letzten Synchronisierung
modifiziert worden ist.
-
Wenn
nur eine Version modifiziert worden ist, so stellt das entsprechende
allgemeine Synchronisierungsmodul 425 oder 515 in
Schritt 745 die vorgenommenen Änderungen fest. Wie oben erwähnt, kann
das Feststellen der vorgenommenen Änderungen implementiert werden
durch Vergleichen des aktuellen Zustandes bzw. Status des Arbeitsplatzelementes
im Vergleich zu einem vorherigen Zustand des Arbeitsplatzelementes
bei der letzten Interaktion mit diesem. Wenn die Änderungen
nur an der Version der Arbeitsplatzdaten 120 vorgenommen
wurden, so übersetzt
der globale Übersetzer 122 in
Schritt 750 die Veränderungen
in das durch den anderen Speicher verwendete Format und das allgemeine
Synchronisierungsmodul 515 leitet in Schritt 755 die übersetzten Änderungen
an das allgemeine Synchronisierungsmodul 425 weiter, um
das abgelaufene Arbeitselement in den Arbeitsplatzdaten 136 oder 116 zu
aktualisieren. Wenn die aktualisierte Version ein Arbeitsplatzelement
in den Arbeitsplatzdaten 136 oder 116 ist, so
sendet das allgemeine Synchronisierungsmodul 425 die Veränderungen
der aktualisierten Version an den globalen Übersetzer 122 für eine Übersetzung
und dann an das allgemeine Synchronisierungsmodul 515,
um das abgelaufene bzw. veraltete Arbeitsplatzelement in den Arbeitsplatzdaten 120 zu
aktualisieren. Das allgemeine Synchronisierungsmodul 425 und
das allgemeine Synchronisierungsmodul 515 aktualisieren
in Schritt 757 den vorherigen Zustand, um den aktuellen
Zustand dieser Interaktion wiederzugeben. Die Methode 700 geht dann
zurück
zu Schritt 735.
-
Wenn
das allgemeine Synchronisierungsmodul 425 in Schritt 740 feststellt,
daß mehrere
Versionen modifiziert worden sind, so berechnet das allgemeine Synchronisierungsmodul 425 in
Schritt 765 die an jeder Version vorgenommenen Änderungen
und weist in Schritt 770 das auf Inhalt beruhende Synchronisierungsmodul 430 an,
den Inhalt zu untersuchen, um festzustellen, ob irgendein Konflikt
vorliegt. Beispielsweise kann das auf Inhalt beruhende Synchronisierungsmodul 430 feststellen,
daß ein
Konflikt vorliegt, wenn ein Benutzer in einer Version einen Absatz
löscht
und denselben Absatz in einer anderen Version modifiziert. Das auf
Inhalt beruhende Synchronisierungsmodul 430 kann feststellen,
daß ein Konflikt
nicht vorliegt, wenn ein Benutzer in jeder Version unterschiedliche
Absätze
löscht.
Wenn kein Konflikt festgestellt wird, so springt das Verfahren 700 zu
Schritt 750, um die Veränderungen
jeder Version zu übersetzen
und an den anderen Speicher weiterzuleiten. Wenn jedoch ein Konflikt
festgestellt wird, so gleicht das auf Inhalt beruhende Syn chronisierungsmodul 430
die modifizierten Versionen in Schritt 775 miteinander
ab. Wie oben erläutert,
kann die Korrektur bzw. das Abgleichen das Anfordern von Anweisungen
von dem Benutzer umfassen oder kann auf voreingestellten Präferenzen
beruhen, indem Reaktionen ausgeführt
werden, wie z. B. das Speichern beider Versionen in beiden Speichern. Das
Verfahren 700 geht dann weiter zu Schritt 750.
-
Man
erkennt, daß in
Schritt 710 neue Arbeitsplatzelemente und vorher existierende
Arbeitsplatzelemente, mit welchen neue Arbeitsplatzelemente verschmelzen,
auf „modifiziert" gesetzt werden,
und daß der
vorherige Status auf den Nullsatz gesetzt wird. Demnach stellt das
allgemeine Synchronisierungsmodul in Schritt 740 fest,
daß mehr
als eine Version modifiziert worden ist und das auf Inhalt beruhende
Synchronisierungsmodul 430 stellt in Schritt 770 fest,
daß kein
Konflikt vorliegt. Die jeweils vorgenommenen Veränderungen werden übersetzt und
an den anderen Speicher weitergeleitet. Dementsprechend werden die
beiden Versionen effektiv miteinander verschmolzen und in jedem
Speicher gespeichert.
-
Wenn
beispielsweise ein erster Lesezeichenordner durch den Webbrowser 152 auf
dem Desktop-Computer 134 erzeugt wurde, ein zweiter Ordner
durch einen Webbrowser (nicht dargestellt) an dem entfernt gelegenen
Terminal 102 erzeugt wurde, kein Ordner zuvor auf dem globalen
Server 106 existierte und der Benutzer jeden der Ordner
für die
Synchronisation ausgewählt
hat, so verschmilzt die Synchronisierungseinrichtung effektiv die
ersten und zweiten Ordner. D.h., daß allgemeine Synchronisierungsmodul 425 auf
dem Desktop-Computer 134 stellt fest, daß der erste
Ordner modifiziert worden ist und daß der vorherige Status gleich
dem Nullsatz ist. Das allgemeine Synchronisierungsmodul 425 stellt die Änderungen
fest und sendet sie, d.h. sämtliche Arbeitsplatzelemente
in dem ersten Ordner, an einen neuen globalen Ordner auf dem globalen
Server 106. In ähnlicher
Weise stellt das allgemeine Synchronisierungsmodul 425 auf
dem entfernt gelegenen Terminal 102 fest, daß bei seiner
letzten Interaktion der vorherige Status jedes der zweiten und globalen
Ordner der Nullsatz ist. Das allgemeine Synchronisierungsmodul 425 weist
das auf Inhalt beruhende Synchronisierungsmodul 430 an,
die an jedem Ordner vorgenommenen Änderungen zu untersuchen, um festzustellen,
ob ein Konflikt vorliegt. Da keine Konflikte vorliegen, leitet das
allgemeine Synchronisierungsmodul 425 die Veränderungen
an den globalen Ordner weiter und das allgemeine Synchronisierungsmodul 515 leitet
seine Änderungen
an den zweiten Speicher weiter und verschmilzt dadurch die Arbeitsplatzelemente
der ersten und zweiten Ordner in den globalen und zweiten Ordnern.
Das allgemeine Synchronisierungsmodul 515 informiert das
allgemeine Synchronisierungsmodul 425, daß der globale Ordner
im Vergleich zu der letzten Interaktion modifiziert worden ist und
leitet neue Veränderungen
an den ersten Ordner weiter. Demnach werden die ersten und zweiten
Ordner miteinander verschmolzen und in jedem Speicher gespeichert.
-
Für ein zweites
Beispiel kann der Benutzer ein beispielhaftes Dokument in dem zu
synchronisierenden LAN 110 auswählen. Das allgemeine Synchronisierungsmodul 425 leitet
das Dokument an den globalen Server 106 weiter. In ähnlicher
Weise kann der Benutzer dasselbe Dokument für die Synchronisation auf dem
entfernt gelegenen Terminal 102 auswählen. Das allgemeine Synchronisierungsmodul 515 leitet
das Dokument an das entfernte Terminal 102 weiter. Wenn
an den Do kumenten unabhängig Änderungen
vorgenommen wurden, so untersucht das auf Inhalt beruhende Synchronisierungsmodul 430 den
Inhalt der Dokumente, um festzustellen, ob ein Konflikt vorliegt.
Falls kein Konflikt vorliegt, so verschmelzen die allgemeinen Synchronisierungsmodule 435 und 415 die
Dokumente, wie oben beschrieben wurde. Ansonsten gleicht das auf
Inhalt beruhende Synchronisierungsmodul 430 die Änderungen
ab, wenn ein Konflikt vorliegt, und dann leiten die allgemeinen
Synchronisierungsmodule 425 und 515 die korrigierten Änderungen
wechselseitig einander zu. 8 ist ein
Blockdiagramm, welches ein Computernetzwerk 800 veranschaulicht,
das ein Local Area Network (LAN) 810 aufweist, welches über einen
Kommunikationskanal 815 mit einem Computernetzwerk 820,
wie z. B. dem Internet, verbunden ist. Das Computernetzwerk 820 ist
seinerseits über einen
Kommunikationskanal 825 mit einem globalen Server 830 verbunden,
und zwar über
einen Kommunikationskanal 835 und mit einem entfernt gelegenen Terminal 805 sowie über einen
Kommunikationskanal 893 mit Mailserver 894 eines
Internetserviceproviders (ISP). Der ISP-Mailserver 894 ist
seinerseits mit einem weiteren Client 897 verbunden. Der
globale Server 830 wird durch eine globale Firewall 880 geschützt und
das LAN 810 wird durch eine LAN-Firewall 870 geschützt.
-
Das
LAN 810 enthält
einen Netzwerkserver 845, der die LAN-Firewall 870 über einen
Systembus 855 mit einem Client und einem Mailserver 850 verbindet.
Der Mailserver 850 empfängt
in einer oder mehreren Ordnerstrukturen elektronische Mail 875 des
Clients (E-Mails) von dem Computernetzwerk 820, welche
an den Client 840 adressiert sind und speichert sie. Der
Client 840 enthält
ein E-Mail-Synchronisierungssystem 860, um Client-E-Mails 875 von
dem Mailserver 815 herunterzuladen und sie lokal in einer
oder mehreren Ordnerstrukturen als „downloaded E-Mails 865" lokal zu speichern.
Um miteinander in Kommunikation zu treten, müssen der Mailserver 850 und
die E-Mail-Maschine 965 sowohl dasselbe Übertragungsprotokoll,
wie z. B. die dritte Version von Post Office Protocol (POP 3), das
Vendor Independent Messaging (VIM)-Protokoll, welches von der Lotus
Development Corporation entwickelt wurde, oder das Messaging Application
Program Interface (MAPI)-Protokoll verwenden, wie es durch die Microsoft
Corporation entwickelt wurde. Jede E-Mail in dem LAN 810 wird
in einem vorbestimmten Format, welches als Format A bezeichnet wird,
gespeichert, das durch die E-Mail-Maschine 965 (9)
auf dem LAN 810 bzw. 405 beruht, das sie heruntergeladen
hat.
-
Es
versteht sich, daß die
Client-E-Mails 875, welche den heruntergeladenen E-Mails 865 entsprechen,
aus dem E-Mail-Server 850 gelöscht werden können, nachdem
sie heruntergeladen wurden. Das E-Mail-Synchronisierungssystem 860 synchronisiert weiterhin
die heruntergeladenen E-Mails 865, die Client-E-Mails 875 oder
möglicherweise
nur die E-Mails einer bestimmten Ordnerstruktur (z. B. des Ordners des
Benutzers für
nicht beantwortete Post oder eines Ordners mit Witzen), mit dem
globalen Server 835. Das E-Mail-Synchronisierungssystem 860 wird
nachstehend unter Bezug auf 9 noch genauer
beschrieben.
-
Der
ISP-Mailserver 894 und der Client 897 arbeiten
in ähnlicher
Weise wie der Mailserver 850 und der Client 840.
Generell empfängt
der ISP-Mailserver 894 E-Mails von dem Computernetzwerk 820, die
an den Client 897 adressiert sind, und speichert sie lokal
in einer oder mehreren Ordnerstrukturen als „Client-E-Mails 896". Das E-Mail-Synchronisierungssystem 898 des
Client 897 verwendet eine E-Mail-Maschine 965 (9),
um Client-E-Mails 896 herunterzuladen und sie lokal in
einer oder mehreren Ordnerstrukturen als „heruntergeladene E-Mails 899" zu speichern. Die
E-Mail-Maschine 965 eines
Client 897 speichert die E-Mails im Format B, welches gegenüber dem
Format A unterschiedlich sein kann. Das E-Mail-Synchronisierungssystem 898 synchronisiert
dann die Client-E-Mails 896, die heruntergeladenen E-Mails 899 oder
möglicherweise
die E-Mails spezieller Ordnerstrukturen mit dem globalen Server 835.
-
Jede
E-Mail, sei sie nun auf dem Mailserver 850, auf dem Client 840,
auf dem Mailserver 894 (der unten beschrieben wird) oder
auf dem Client 897 (der unten beschrieben wird) gespeichert,
kann eine Sourcekennung (z. B. eine Herkunftsadresse), ein Erzeugungsdatum,
ein Empfangsdatum des Mailservers 850 oder 894 und
ein Datum des Herunterladens zu dem Client 849 oder 897 enthalten.
Das Datum des Herunterladens auf den Client 840 oder 897 kann
dasjenige Datum sein, zu welchem das E-Mail-Synchronisierungssystem 860 oder 898 die Client-E-Mails 875 oder 896 für die Synchronisierung mit
dem globalen Server 835 herunterlädt.
-
Der
globale Server 835 enthält
einen Synchronisierungsagenten 885 für das Zusammenarbeiten mit
dem E-Mail-Synchronisierungssystem 860 oder dem E-Mail-Synchronisierungssystem 898,
um elektronische Mail dazwischen zu synchronisieren. Auf der Basis
seiner Konfigurierung übersetzt
das E-Mail-Synchronisierungssystem 860 oder 898 jeweils
eine Kopie oder das Original und sendet sie an den Synchronisierungsagenten 835 (d.h.
behält
keine Kopie) einer heruntergeladenen E-Mail 865 oder 899 oder
eine Client-E-Mail 875 oder 896. Der globale Server 835 speichert
die Kopien oder Originale der heruntergeladenen E-Mails 865 oder 899 in
einer oder mehreren Ordnerstrukturen als „heruntergeladene E-Mails 832", und speichert die
Client-E-Mails 875 oder 896 in einer oder mehreren
Ordnerstrukturen als „Client-E-Mails 895". Der globale Server 835 speichert
die E-Mails in einem globalen Format, welches dasselbe sein kann,
wie das Format A oder B, oder kann die kombinierten Elemente beider
Formate enthalten. Es versteht sich, daß das E-Mail-Synchronisierungssystem 860 oder 898 die
Client-E-Mails 875 oder 896 und die heruntergeladenen
E-Mails 865 oder 897 gemeinsam ohne Unterscheidung
senden und der globale Server 835 diese speichern kann. Weiterhin
kann er die Client-E-Mails 875 oder 896 und die
heruntergeladenen E-Mails 865 entsprechender
spezifischen Ordnern gemeinsam ohne Unterscheidung senden und speichern.
Darüber
hinaus kann der globale Server 835 so konfiguriert sein,
daß er
die E-Mails des Client 840 und des Client 897 gemeinsam
ohne Unterscheidung speichert. Der globale Server 835 enthält weiterhin
eine Webmaschinenschnittstelle 890, welche einen Webmaschinenzugriff auf
HTTP-Basis auf die darin enthaltenen Inhalte gewährt einschließlich des
Zugriffs auf die Client-E-Mails 895,
die heruntergeladenen E-Mails 832 und die Ordnerstrukturen,
in welchen sie gespeichert sind. Wie oben unter Bezug auf 4 genauer
beschrieben wurde und unten unter Bezug auf 10 beschrieben
wird, löst
das E-Mail-Synchronisierungssystem 860 vorzugsweise eine
Datensynchronisierung aus und steuert sie. Andere Komponenten und
Funktionen des globalen Servers 835 werden hier ebenfalls
beschrieben.
-
Das
entfernte Terminal 1505 enthält eine Webmaschine 833,
um Internetdateien einschließlich E-Mails
zu lesen. Das entfernte Terminal 102 kann ein intelligentes
Telefon, einen persönlichen Datenassistenten
(PDA), wie z. B. das PalmPilot-System von U.S. Robotics, Inc. einen
Laptop-Computer, etc.
umfassen. Demnach kann der Benutzer des entfernten Terminals 1505,
soweit er identifiziert werden und auf den globalen Server 835 zugreifen
kann, auf die E-Mails 895 und 897 zugreifen. Weiterhin
kann der Benutzer, solange die Client-E-Mails 895 und 832 mit
den E-Mails 865, 875, 896 und 899 synchronisiert sind,
auf alle E-Mails zugreifen, die an den Client 840 und den
Client 897 adressiert sind.
-
9 ist
ein Blockdiagramm, welches Einzelheiten eines Client 900 veranschaulicht,
welcher ein Beispiel für
den Client 840 oder den Client 897 darstellt.
Der Client 900 enthält
eine zentrale Prozessoreinheit (CPU) 905, wie z. B. einen
Intel Pentium®-Mikroprozessor
oder einen Motorola Power PC®-Mikroprozessor. Eine
Eingabeeinrichtung 910, wie z. B. eine Tastatur und eine
Maus und eine Ausgangseinrichtung 915 (wie z. B. eine Anzeige
einer Katodenstrahlröhre
(CRT)), sind über
einen Signalbus 920 an die CPU 905 angeschlossen.
Eine Kommunikationsschnittstelle 925 (wie z. B. ein Internetanschluß), eine
Datenspeichereinrichtung 930 (wie z. B. eine Magnetplatte)
und ein Speicher mit wahlfreiem Zugriff (RAM) 935 sind
weiterhin über
den Signalbus 920 mit der CPU 905 verbunden. Die
Kommunikationsschnittstelle 925 ist mit dem Signalbus 855 verbunden
(8).
-
Ein
Betriebssystem 950 enthält
ein Programm zur Steuerung der Verarbeitung durch die CPU 905 und
ist typischerweise in der Datenspeichereinrichtung 930 gespeichert
und wird für
die Ausführung
in dem RAM 935 (wie dargestellt) gespeichert. Der RAM 935 speichert
ein E-Mail-Synchronisierungssystem 953 (welches
ein Beispiel des E-Mail-Synchronisierungssystems 860 oder
des E-Mail-Synchronisierungssystems 898 darstellt), welches
Einrichtungen zum Herunterladen von Client-E-Mails 875 oder 896,
Einrichtungen zum Lesen heruntergeladener E-Mails 943 (was
ein Beispiel für heruntergeladene
E-Mails 865 oder 899 darstellt), Einrichtungen
zum Synchronisieren von E-Mails 865, 875, 896 oder 899 (welche
heruntergeladen wurden) mit dem globalen Server 835 und
Einrichtungen zum Synchronisieren der E-Mails spezieller Ordnerstrukturen
aufweisen. Beispielsweise enthält
das E-Mail-Synchronisierungssystem 953 eine Web-Maschine 955 zum
Kommunizieren mit Webservern. Die Web-Maschine 955 enthält ein E-Mail-Modul 960,
um elektronische Mail zu lesen und zu schreiben. Das E-Mail-Synchronisierungssystem 953 enthält weiterhin
eine E-Mail-Maschine 965,
um mit dem Mailserver 850 oder 894 zu kommunizieren,
um E-Mails herunterzuladen, zu lesen und zu schreiben. Die E-Mail-Maschine 965 kommuniziert
unter Verwendung eines konventionellen Protokolls, wie z. B. POP 3,
VIM oder MAPI. Heruntergeladene E-Mails 943 werden in der
Datenspeichereinrichtung 930 (9) gespeichert.
Die E-Mail-Maschine 965 stellt auch einen Zugriff auf ein
Adreßbuch 945 bereit,
welches E-Mail-Adreßeinträge enthält und welches
ebenfalls in der Datenspeichereinrichtung 930 gespeichert
ist.
-
Das
E-Mail-Synchronisierungssystem 953 enthält weiterhin ein Basissystem 970 zum Übersetzen
von E-Mails aus einem Format A oder Format B in das globale Format
und für
das Initiieren und Steuern von E-Mail-Synchronisierung mit dem globalen Server 835.
Die Übersetzung
kann für
den Mailserver formatierte E-Mail in HTTP-Paketen enthalten. Das Basissystem 970 wird
nachstehend unter Bezug auf 10 und
in der in Bezug genommenen Patentanmeldung beschrieben.
-
Es
versteht sich, daß Einrichtungen
zum Holen von E-Mails so verstanden werden können, daß sie entweder das Betriebssystem 950 enthalten
bzw. umfassen, wenn sie heruntergeladene E-Mails 865 oder 899 holen,
als die E-Mail-Maschine 965, wenn sie Client-E-Mails 875 oder 896 holt,
als das E-Mail-Modul 960 der Web-Maschine 955,
wenn E-Mails von einer Seite in dem Computernetzwerk 820 geholt
wird, oder Kombinationen hieraus, umfassen.
-
10 ist
ein Blockdiagramm, welches Einzelheiten des Basissystems 970 veranschaulicht, das
Basissystem 970 umfaßt
ein Kommunikationsmodul 1005, ein Benutzerschnittstellenmodul 1010, Lokalisierungsmodule 1015,
ein Synchronisierungs-Start („Sync-Start")-Modul 1020 und
ein E-Mail-Synchronisierungsmodul 1030.
Der Einfachheit halber ist jedes Modul so dargestellt, daß sie alle miteinander über einen
Signalbus 1030 kommunizieren.
-
Das
Kommunikationsmodul 1005 enthält Routinen bzw. Unterprogramme
zum Komprimieren von Daten und Routinen zum Bereitstellen einer Kommunikationsverbindung über die
Kommunikationsschnittstelle 925 (9) mit dem
Synchronisierungsagenten 885 (8). Das
Kommunikationsmodul 1005 kann weiterhin Routinen bzw. Unterprogramme
zum Anwenden der Technik der Secure Socket Layer (SSL) und von Benutzeridentifizierungs- und
Authentisierungstechniken (z. B. digitale Zertifikate) umfassen,
um durch die globale Firewall 880 einen sicheren Kommunikationskanal
bereitzustellen. Da die Synchronisation auf der Innenseite der Firewall
ausgelöst
wird und allgemein freigegebene Protokolle wie z. B. das Hypertext
Transfer Protocol (HTTP) verwendet, wirkt die typische Firewall,
die allgemein eingehende Kommunikationen sowie einig ausgehende
Protokolle verhindert, nicht als ein Hindernis für die E-Mail-Synchronisierung.
Beispiele von Kommunikationsmodulen 1005 können TCP/IP-Stapel
(Stacks) oder das AppleTalk®-Protokoll umfassen.
-
Das
Benutzerschnittstellenmodul 1010 umfaßt Routinen bzw. Programme
zum Kommunizieren mit einem Benutzer und kann eine konventionelle graphische
Benutzerschnittstelle (GUI) beinhalten. Das Benutzerschnittstellenmodul 1010 arbeitet
mit den übrigen
Systemkomponenten, wie sie hier beschrieben werden, zusammen.
-
Die
Lokalisierungsmodule 1015 enthalten Routinen zum Identifizieren
der Speicherstellen von E-Mails in dem LAN 810 gemäß 8 (beispielsweise
der E-Mails 875 in dem Mailserver 850 und der E-Mails 865 in
dem Client 840), der Speicherstellen der E-Mails 896 in
dem ISP-Mailserver 894, der Speicherstellen von E-Mails 899 in
dem Client 897, der Speicherstellen von E-Mails in dem
globalen Server 835 (beispielsweise der Client-E-Mails 895 und
der heruntergeladenen E-Mails 832), und der Speicherstellen
der Ordnerstrukturen, in welchen die E-Mails gespeichert werden.
Die Identifizierung der E-Mail-Speicherstellen kann implementiert
werden unter Verwendung intelligenter Software, d.h. voreingestellter
Speicheradressen oder des Registers des Systems oder unter Verwendung
von Dialogboxen, um einen Benutzer zu befragen. Es versteht sich, daß die Lokalisierungsmodule 1015 die
Identifizierung von E-Mail-Lokalisierung beim Herauffahren des Systems
oder nach jeder Kommunikation mit dem globalen Server 835 vornehmen
können,
um aktualisierte Speicheradressen zu pflegen.
-
Das
Synchronisierungsstartmodul 1020 enthält Routinen, um festzustellen,
wann eine E-Mail-Synchronisierung
ausgelöst
werden soll. Beispielsweise kann das Synchronisierungsstartmodul 1020 E-Mail-Synchronisierung
auf Anforderung des Benutzers, zu einer bestimmten Tageszeit, nach
Ablauf bestimmter Zeitdauer, nach Empfang einer vorbestimmten Anzahl
von E-Mails, nach einer Benutzeraktion, wie z. B. einem Abmelden
oder bei ähnlichen
Kriterien auslösen.
Das Synchronisierungsstartmodul 1020 löst E-Mail-Synchronisierung
aus, indem es das E-Mail-Synchronisierungsmodul 1025 (welches
unten beschrieben wird), anweist, mit der Ausführung seiner Programme bzw.
Routinen zu beginnen. Es versteht sich, daß die Kommunikation mit dem
Synchronisierungsagenten 885 vorzugsweise aus dem LAN 810 heraus
beginnt bzw. ausgelöst wird,
da ein Sicherheitssystem, wie z. B. eine typische Firewall 870,
eingehende Kommunikationen verhindert und ausgehende Kommunikationen
erlaubt. Das Synch-Start-Modul 1020 kann das Kommunikationsmodul 1005 anweisen,
die Kommunikationsverbindung mit dem Synchronisierungsagenten 885 des
globalen Servers 885 bereitzustellen.
-
Das
E-Mail-Synchronisierungsmodul 1025 enthält Routinen, um die E-Mail-Maschine 965 (9)
anzuweisen, die Client-E-Mails 875 oder 896 von
dem Mailserver 850 oder 894 oder von speziellen Ordnern
auf dem Mailserver 850 oder 894 zu holen. Das
E-Mail-Synchronisierungsmodul 1025 enthält auch Routinen, um die geholten
E-Mails in einer oder mehreren Ordnerstrukturen als heruntergeladene E-Mails 865 oder 899 zu
speichern. Die E-Mail-Maschine 965 kann Einrichtungen für das Identifizieren eines Übertragungsprotokolls
enthalten, welches auch dem Mailserver 850 oder 894 bekannt
ist. Beispielsweise kann die E-Mail-Maschine 965 Konfigurationsinformation
von dem Mailserver 850 oder 894 anfordern, die
das Protokoll, beispielsweise POP 3 anzeigt, welches von jenem verwendet
wird. Dementsprechend implementiert die E-Mail-Maschine 965 das
identifizierte Protokoll, wenn die E-Mails heruntergeladen werden.
-
Das
E-Mail-Synchronisierungsmodul 1025 enthält weiterhin Routinen für den Vergleich
des Empfangsdatums jeder heruntergeladenen E-Mail 865 oder 899 mit
einer letzten Synchronisierungssignatur 1035 (wie z. B.
dem letzten Synchronisierungsdatum und der Zeit), um festzustellen,
welche E-Mails noch nicht an den globalen Server 835 gesendet
wurden. Es versteht sich, daß in
einer Ausführungsform,
welche Client-E-Mails 875 oder 896 löscht, nachdem
sie von dem Mailserver 850 oder 894 heruntergeladen
wurden, das E-Mail-Synchronisierungsmodul 1025 keinen Vergleichstest
mit den Client-E-Mails 875 oder 896 durchführen muß, die während der
Synchronisierung heruntergeladen wurden. Diese Client-E-Mails 875 oder 896 sind
in dieser Ausführungsform
inhärent
nicht gesendet worden.
-
Das
E-Mail-Synchronisierungsmodul 1025 weist weiterhin Routinen
für das
Ausführen
einer angemessenen Reaktion auf die Synchronisierung auf. Angemessene
Reaktionen auf die Synchronisierung können Anweisungen an das Kommunikationsmodul 1005 umfassen,
eine Kommunikationsverbindung mit dem Synchronisierungsagenten 885 des
globalen Servers 835 bereitzustellen, Kopien jeder E-Mail
an den globalen Server 835 zu senden, nur die Client-E-Mails 865 oder 896 an
den globalen Server 835 umzuleiten (d.h. senden ohne eine
Kopie zu behalten), oder die heruntergeladenen E-Mails 865 oder 899 und
die Client-E-Mails 875 oder 896 an den globalen
Server 835 umzuleiten. Um eine Kopie oder ein Original
einer E-Mail zu senden, enthält
das E-Mail-Synchronisierungsmodul 1025 einen Übersetzer 1040 für das Übersetzen
der E-Mail von einem Format A oder Format B in das globale Format.
Das E-Mail-Synchronisierungsmodul 1025 weist dann das E-Mail-Modul 960 der
Webmaschine 955 an, die übersetzten E-Mails an den globalen
Server 835 zu senden.
-
Die
E-Mail-Synchronisierung kann eine Synchronisierung anderer Information
umfassen, welche elektronischer Mail bzw. Post entspricht. Beispielsweise
kann das E-Mail-Synchronisierungsmodul 1025 Routinen
enthalten, um das Adreßbuch 945 zu untersuchen
und mit einem Adreßbuch 1130 (11)
auf dem globalen Server 835 zu synchronisieren. Die Untersuchung
und Synchronisierung von Adreßbucheinträgen werden
durchgeführt
wie nachstehend unter Bezug auf die 1 bis 7 beschrieben.
Im allgemeinen kann das E-Mail-Synchronisierungsmodul 1025 Versionsinformation
untersuchen, welche das Datum und den Zeitpunkt der letzten Modifikation
des Adreßbuches 945 auf
dem Client 900 und Versionsinformation untersuchen, welche
das Datum und den Zeitpunkt der letzten Synchronisierung des Adreßbuchs 1130 (11)
auf dem globalen Server 835 anzeigt. Auf der Basis dieser
Untersuchung führt
das E-Mail-Synchronisierungsmodul 1025 in Reaktion darauf
eine geeignete Synchronisationsaktion, wie z. B. das Senden der
aktualisierten E-Mail-Adreßeinträge an den
anderen Speicher aus. Das E-Mail-Synchronisierungsmodul 1025 kann
ein allgemeines Synchronisierungsmodul 425 (4)
und ein auf Inhalt beruhendes Synchronisierungsmodul 430 (4)
umfassen.
-
11 ist
ein Blockdiagramm, welches Einzelheiten des globalen Servers 835 veranschaulicht, der
eine CPU 1105, eine Kommunikationsschnittstelle 1110,
eine Datenspeichereinrichtung 1120 und einen RAM 1125 umfaßt, die
jeweils mit einem Signalbus 1115 verbunden sind. Die Kommunikationsschnittstelle 1110 ist über die
globale Firewall 880 (8) mit dem
Kommunikationskanal 825 verbunden.
-
Ein
Betriebssystem 1135 enthält ein Programm zum Steuern
der Verarbeitung durch die CPU 1105 und wird typischerweise
in der Datenspeichereinrichtung 1120 gespeichert und für die Ausführung in
den RAM 1125 geladen (wie dargestellt). Eine Web-Maschinen-Schnittstelle 890 ist
ein Programm für
die Kommunikation mit der Web-Maschine 833 oder der Web-Maschine 955 und
um einen Zugriff auf vorbestimmte Inhalte bereitzustellen, welche
Client-E-Mails 895, heruntergeladene E-Mails 832 und das
Adreßbuch 1130 umfassen
können.
Die Webmaschinenschnittstelle 890 enthält eine E-Mail-Modul-Schnittstelle 1140 für die Kommunikation
mit dem E-Mail-Modul 960 oder dem E-Mail-Modul 1355 (13),
und für
das Bereitstellen der Funktionen des Lesens und Schreibens von E-Mails.
-
Der
Synchronisierungsagent 885, wie er am besten in 12 dargestellt
ist, ist ebenfalls in der Datenspeichereinrichtung 1120 gespeichert
und wird für
die Ausführung
in den RAM 1125 geladen. Der Synchronisierungsagent 885 steht
mit dem E-Mail-Synchronisierungsmodul 1025 in Kommunikationsverbindung,
um E-Mails und die E-Mails spezieller Ordnerstrukturen zu synchronisieren
und um möglicherweise
auch das Adreßbuch 945 zu
synchronisieren. Der Synchronisierungsagent 885 wird unten
unter Bezug auf 12 sowie in der in Bezug genommenen
Patentanmeldung genauer beschrieben.
-
12 ist
ein Blockdiagramm, welches Einzelheiten des Synchronisierungsagenten 885 veranschaulicht,
welcher ein Kommunikationsmodul 1205 (ähnlich dem oben unter Bezug
auf 10 beschriebenen Kommunikationsmodul 1005 und
ein E-Mail-Synchronisierungsmodul 210 (ähnlich dem E-Mail-Synchronisierungsmodul 1025,
welches ebenfalls oben unter Bezug auf 10 beschrieben wurde,
enthält.
-
Das
Kommunikationsmodul 1205 enthält Routinen zum Komprimieren
von Daten und Routinen für
das Kommunizieren über
das Computernetzwerk 820 (8) mit dem
Kommunikationsmodul 1005 (10). Das
Kommunikationsmodul 1205 kann weiterhin Routinen umfassen,
um einen sicheren Kommunikationskanal durch die globale Firewall 880 und
durch die LAN-Firewall 870 mit dem Kommunikationsmodul 1005 bereitzustellen.
-
Ähnlich dem
E-Mail-Synchronisierungsmodul 1025 (10) enthält das E-Mail-Synchronisierungsmodul 1210 Routinen
zum Untersuchen von Information, um zu bestimmen, ob irgend etwas
geändert
oder modifiziert und nicht mit dem Client 840 synchronisiert
wurde (8). Dementsprechend kann das E-Mail-Synchronisierungsmodul 1210 feststellen,
ob irgendwelche Adressen in dem Adreßbuch 1130 (11)
kopiert und an einen Client 900 gesendet werden müssen. Weiterhin
bestimmt das E-Mail-Synchronisierungsmodul 1210, wenn das System 1500 E-Mails
an jedem der Client-Plätze
synchronisiert, auch, ob irgendwelche der E-Mails 895 oder 832 hinzugefügt oder
modifiziert und nicht mit einem Client 900 synchronisiert
wurden.
-
Es
versteht sich, daß das
E-Mail-Synchronisierungsmodul 1210 seine eigene Kopie einer
letzten Synchronisierungssignatur 1035 (nicht dargestellt) behalten
kann oder die letzte Synchronisierungssignatur 1035 von
dem Basissystem 970 anfordern kann. Das E-Mail-Synchronisierungsmodul 1210 umfaßt weiterhin
Routinen zum Senden der Information, die als modifiziert festgestellt
wurde, oder nur der Veränderungen
an das E-Mail-Synchronisierungsmodul 1025.
-
13 ist
ein Blockdiagramm, welches Einzelheiten des entfernten Terminals 1505 veranschaulicht.
Das entfernte Terminal 1505 enthält eine zentrale Verarbeitungseinheit
(CPU) 1305, wie z. B. einen Intel Pentium®-Mikroprozessor
oder einen Motorola Power PC®-Mikroprozessor. Eine
Eingabeeinrichtung 1310, wie z. B. eine Tastatur und eine
Maus und eine Ausgabeeinrichtung 1315, wie z. B. eine Anzeige
mit einer Katodenstrahlröhre
(CAT) sind über
einen Signalbus 1320 mit der CPU 1305 verbunden.
Eine Kommunikationsschnittstelle 1325 (wie z. B. ein Internetanschluß), eine
Datenspeichereinrichtung 1330 (wie z. B. eine Magnetplatte)
und ein Speicher mit wahlfreiem Zugriff (RAM) 1335 sind
weiterhin über
den Signalbus 1320 mit der CPU 1305 verbunden.
Die Kommunikationsschnittstelle 1325 ist mit dem Signalbus 835 (8)
verbunden.
-
Ein
Betriebssystem 1350 enthält ein Programm zum Steuern
der Verarbeitung durch die CPU 1305 und wird typischerweise
in der Datenspeichereinrichtung 1330 gespeichert und für die Ausführung in
den RAM 1335 (wie dargestellt) geladen. Die Webmaschine 833 wird
ebenfalls typischerweise in der Datenspeichereinrichtung 1330 gespeichert
und für die
Ausführung
in den RAM 1335 (wie dargestellt) geladen. Die Web-Maschine 833 enthält ein E-Mail-Modul 1355 für das Lesen
und Schreiben elektronischer Post. Nachdem das entfernte Terminal 1505 an
den globalen Server 835 angeschlossen ist bzw. Kontakt mit
diesem hat, kommuniziert das E-Mail-Modul 1355 mit der
E- Mail-Modul-Schnittstelle 1140,
um Client-E-Mails 895 auszuwählen und herunterzuladen oder
um heruntergeladene E-Mails 832 auszuwählen. Das E-Mail-Modul 1355 speichert
die heruntergeladenen E-Mails von dem globalen Server 835 in der
Datenspeichereinrichtung 1330 als „heruntergeladene E-Mails 1340". Alternativ kann
das E-Mail-Modul 1355 die E-Mails 1340 nur in
dem Raum 1335 speichern, so daß am Ende der Sitzung Kopien
der E-Mails 1340 nicht in dem entfernten Terminal 1505 verbleiben.
Das E-Mail-Modul 1355 ermöglichst es dem Benutzer, die
E-Mails 1340 zu lesen, darauf zu antworten, sie weiterzuleiten,
umzuleiten, etc. In ähnlicher
Weise kann die Web-Maschine 833 einen
Zugriff auf den Adreßblock 145 gewähren, so
daß der
Benutzer auf seine oder ihre E-Mail-Adreßeinträge zugreifen kann, die ansonsten in
dem LAN 810 gespeichert sind.
-
14 ist
ein Flußdiagramm,
welches ein Verfahren 1400 zum Synchronisieren von E-Mails in einem Computernetzwerk 1500 veranschaulicht.
Das Verfahren 1400 beginnt mit dem Mailserver 850 oder 894,
der in Schritt 1405 an einen Client 840 oder 897 adressierte
E-Mails empfängt.
Der Mailserver 850 oder 894 in Schritt 1410 speichert
die empfangenen E-Mails in einer oder mehreren Ordnerstrukturen
als Client-E-Mails 875 oder in einer oder mehreren Ordnerstrukturen
als Client-E-Mails 896 (8). Die E-Mail-Maschine 965 ermöglicht in
Schritt 1450 einem Benutzer, Client-E-Mails 875 oder 895 auszuwählen, die
von dem Mailserver 850 oder 896 heruntergeladen
werden. Wenn E-Mails ausgewählt
sind, so lädt
die E-Mail-Maschine 965 in Schritt 1420 die ausgewählten Client-E-Mails 875 oder 894 herunter und
speichert sie in einer oder mehreren Ordnerstrukturen als heruntergeladene
E-Mails 865 oder in einer oder mehreren Ordnerstrukturen
als heruntergeladene E-Mails 899 (8). Wenn
in Schritt 1415 E-Mails nicht ausgewählt werden, so springt das
Verfahren 1400 zu Schritt 1425.
-
In
Schritt 1425 stellt das Synchronisierungsstartmodul 1020 fest,
ob vorbestimmte Startkriterien erfüllt sind, die anzeigen, daß es Zeit
für eine E-Mail-Synchronisierung
ist. Wie oben unter Bezug auf 4 festgestellt,
können
die vorbestimmten Startkriterien erfüllt sein bzw. werden, nachdem
ein bestimmter Zeitabschnitt verstrichen ist, nachdem eine bestimmte
Anzahl von E-Mails empfangen worden ist, zu einer bestimmten Tageszeit,
nach einem bestimmten Ereignis, etc. Wenn es noch nicht Zeit für eine Synchronisierung
ist, so wartet das Synchronisierungsstartmodul 1020 in
Schritt 1430. Falls es ansonsten Zeit für eine Synchronisierung ist,
so weist das E-Mail-Synchronisierungsmodul 1025 in
Schritt 1435 die E-Mail-Maschine 965 an, Client-E-Mails 875 oder 896 oder
Client-E-Mails 875 oder 896 spezielle Ordnerstrukturen
herunterzuladen.
-
Das
E-Mail-Synchronisierungsmodul 1025 bestimmt in Schritt 1440,
ob irgendeine der heruntergeladenen E-Mails 865 oder 899 (welche
die Client-E-Mails 875 oder 896 umfassen, die
kurz zuvor heruntergeladen wurden) noch nicht an den globalen Server 835 gesendet
wurden. Dieser Vergleich kann ausgeführt werden, indem das Datum
und der Zeitpunkt, zu welchem die E-Mail empfangen wurde, mit einer letzten
Synchronisierungssignatur 1035 verglichen wird, die das
Datum und den Zeitpunkt der letzten Synchronisierung anzeigt. Wenn
beispielsweise eine E-Mail nach dem Datum und Zeitpunkt der letzten
Synchronisierung empfangen wurde, ist diese E-Mail noch nicht gesendet
worden. Es versteht sich, daß in
einer Ausführungsform,
welche Client-E-Mails 875 und 896 aus dem Mailserver 850 oder 894 nach dem
Herunterladen in den Client 840 oder 897 löscht, die
E-Mail-Maschine 965 automatisch schlußfolgern kann, daß diese
E-Mails nicht an den die E-Mail-Maschine 965 automatisch
schlußfolgern
kann, daß diese
E-Mails nicht an den globalen Server 835 gesendet wurden.
Wenn alle E-Mails (die synchronisiert werden sollen) an den globalen
Server 835 gesendet worden sind, endet die Methode bzw.
das Verfahren 1400. Ansonsten verwendet, wenn zumindest
eine E-Mail noch nicht gesendet worden ist, das E-Mail-Synchronisierungsmodul 1025 in
Schritt 1445 den Übersetzer 1040,
um nicht gesendete E-Mails 865 oder 899 von dem
Format A oder dem Format B in das globale Format zu übersetzen.
Das E-Mail-Synchronisierungsmodul 1025 weist
in Schritt 1450 die Web-Maschine 955 an, die übersetzte E-Mail
an den globalen Server 835 zu senden, damit die Web-Maschinen-Schnittstelle 890 sie
speichert. Dann endet das Verfahren 1400.
-
15 ist
ein Flußdiagramm,
welches ein Verfahren 1500 für das Zugreifen auf die E-Mails
von dem globalen Server 835 veranschaulicht. Das Verfahren 1500 beginnt
damit, daß das
E-Mail-Synchronisierungsmodul 1210 in
Schritt 1505 E-Mails von dem Client 840 oder 897 empfängt. Das
E-Mail-Synchronisierungsmodul 1210 speichert in Schritt 1510 die
E-Mails in der Datenspeichereinrichtung 1120 in einer oder
mehreren Ordnerstrukturen als Client-E-Mails 895 und als
heruntergeladene E-Mails 832. Die Schnittstelle 890 der
E-Mail-Maschine verwendet in Schritt 1515 HTML, um den
Zugriff des E-Mail-Moduls auf ausgewählte Inhalte des globalen Servers 835 freizugeben.
Der Zugriff auf die ausgewählten
Inhalte wird oben genauer unter Bezug auf die 1 bis 7 beschrieben.
-
Die
vorstehende Beschreibung der bevorzugten Ausführungsform der Erfindung ist
lediglich beispielhaft und andere Variationen der oben beschriebenen
Ausführungsformen
und Verfahren können
innerhalb des Schutzumfanges der beanspruchten Erfindung vorgesehen
werden. Beispielsweise kann der globale Server 106, auch
wenn er als eine einzelne Einrichtung dargestellt ist, mehrere über ein Netzwerk
miteinander verbundene Computer umfassen. Komponenten einer Ausführungsform
dieser Erfindung können
implementiert werden unter Verwendung eines programmierten Mehrzweckcomputers, unter
Verwendung anwendungsspezifischer integrierter Schaltkreise oder
unter Verwendung eines Netzwerkes von miteinander verbundenen konventionellen
Komponenten und Schaltkreisen.