-
HINTERGRUND DER ERFINDUNG
-
Die
vorliegende Offenbarung bezieht sich auf eine elektronische Mail-Nachricht über ein
Synchronisations-Protokoll unter Verwendung einer mobilen Vorrichtung.
Genauer gesagt bezieht sich die vorliegende Offenbarung auf ein
Antworten auf trunkierte, elektronische Mail-Nachrichten an der
mobilen Vorrichtung.
-
Mobile
Vorrichtungen umfassen einen breiten Bereich von Rechen- und Kommunikationsvorrichtungen,
die klein genug sind, um bequem durch einen Benutzer getragen zu
werden. Beispiele solcher Vorrichtungen umfassen mobile Telefone,
Personal-Digital-Assistants,
Tableau-PCs und Laptop-PCs.
-
Allgemein
umfasst die mobile Vorrichtung einen Prozessor, einen Random-Access-Memory (RAM) und
eine Eingabe-Vorrichtung, wie beispielsweise ein Tastenfeld, ein
Touchpad oder Eingabe-Tasten und eine Anzeige. Das Tastenfeld kann
mit der Anzeige integriert sein, wie beispielsweise dann, wenn das
Tastenfeld als eine berührungsempfindliche
Anzeige eingesetzt ist. Eine Kommunikations-Schnittstelle ist optional
vorgesehen und wird üblicherweise
dazu verwendet, mit anderen Computern zu kommunizieren. Eine ersetzbare
oder wieder aufladbare Batterie versorgt die mobile Vorrichtung mit
Strom. Optional kann die mobile Vorrichtung Strom von einer externen
Stromquelle aufnehmen, die die eingebaute Batterie außer Kraft
setzt oder wieder auflädt.
-
Während eine
breite Vielfalt von Rechenaufgaben und Anwendungen durch solche
mobilen Vorrichtungen durchgeführt
werden können,
sind Personal-Informations-Manager (PIMs) besonders gut für mobile
Vorrichtungen geeignet. PIMs weisen typischerweise Applikationen
auf, die den Benutzer der mobilen Vorrichtung in die Lage versetzen,
besser eine Ablaufplanung und Kommunikationen und andere solche
Aufgaben zu verwalten. Einige herkömmlich verfügbaren PIMs umfassen Planungs-
und Kalender-Programme, Aufgaben-Listen, Adressen-Bücher und
elektronische Mail-(E-Mail)-Programme. Einige herkömmlich,
kommerziell verfügbare
PIMs werden unter den Handelsmarken "MICROSOFT SCHEDULE+" und MICROSOFT OUTLOOK" vertrieben und sind
kommerziell von der Microsoft Corporation, Redmond, Washington,
erhältlich.
Zusätzlich zu PIMs
können
allerdings solche mobilen Vorrichtungen auch unterschiedliche Typen
von Anwendungen, wie beispielsweise Word-Prozessoren, Tabellenkalkulationen,
usw., laufen lassen.
-
Um
Benutzer mit soviel Freiheit wie möglich auszustatten, ist es
erwünscht,
dem Benutzer zu ermöglichen,
auf seine Anwendung und PIM-Informationen von irgendeiner Vorrichtung,
die er auswählt, zuzugreifen
oder diese zu ändern.
Demzufolge sollte der Benutzer in der Lage sein, auf seine E-Mail
zum Beispiel von einem Netzwerk-Endgerät, einem PDA und einem Tableau-PC
zuzugreifen.
-
Allerdings
bedeutet es, dem Benutzer zu ermöglichen,
auf seine Informationen von irgendeiner erwünschten Quelleneinrichtung
zuzugreifen und diese zu ändern,
dass die Vorrichtungen in der Lage sein müssen, miteinander zu kommunizieren,
um Änderungen
in Bezug auf die Informationen anzuzeigen. Der Vorgang, dass zwei
Vorrichtungen gemeinsam Änderungen
in der Anwendung und/oder den PIM-Informationen teilen, ist als
Synchronisation bekannt.
-
Allgemein
ist eine Synchronisation kein kontinuierlicher Vorgang. Mit anderen
Worten versucht eine mobile Vorrichtung nicht kontinuierlich ihre
Daten zu synchronisieren, da dies die begrenzte, drahtlose Bandbreite
verschwenden würde
und einen übermäßigen Verbrauch
der Batterie der mobilen Vorrichtungen mit sich bringen würde. Anstelle
davon wird eine Synchronisation periodisch durchgeführt. Zusätzlich ist
es, da die mobile Vorrichtung nicht immer in Benutzung ist, aufwendig,
dass ein Server oder ein Desktop-Computer
periodisch versucht, eine Verbindung mit der mobilen Vorrichtung
einzurichten, um eine Synchronisation durchzuführen. Anstelle davon ist die
mobile Vorrichtung für
ein Einrichten einer Verbindung, um eine Synchronisation durchzuführen, verantwortlich.
-
In
der Vergangenheit haben, um begrenzte Sende-Bandbreiten anzupassen,
mobile Vorrichtungen oftmals trunkierte, elektronische Mail-Nachrichten
empfangen. Mit anderen Worten wurde eine Mail-Nachricht, wenn diese
einen langen Nachrichten-Körper
besaß,
oftmals zu der mobilen Vorrichtung in einer trunkierten Art und
Weise gesendet, bei der eine vorgegebene Anzahl von Zeilen eines
Textes in dem Hauptnachrichten-Körper
gesendet wurde und der Rest des Hauptnachrichten-Körpers nicht gesendet
wurde. In solchen mobilen Vorrichtungen konnte der Benutzer dann
die Nachricht für
ein Herunterladen auswählen
und musste den gesamten Text der Nachricht zu der mobilen Vorrichtung herunterladen.
Dasselbe gilt allgemein bei Anhängen.
Zu Anfang wurden sie nicht zu der mobilen Vorrichtung gesendet,
sondern konnten für
ein Herunterladen ausgewählt
werden.
-
Auch
führte,
um auf elektronische Mail-Nachrichten von einer mobilen Vorrichtung
zu antworten, oder sie weiterführen,
der Benutzer in der Vergangenheit einfach die notwendigen Anweisungen
aus, die durch die bestimmte, die elektronische Mail versendende
PIM erforderlich waren. Das Objekt der elektronischen Mail-Nachricht,
das erzeugt wurde, wenn der Benutzer anzeigte, dass die Antwort oder
das Weiterleiten gesendet werden sollte, wurde dann, auf einer periodischen
Basis, zu einem Server gesendet, das das Objekt der elektronischen Mail-Nachricht
an den geeigneten Empfänger
sendete. Allerdings wurde dort, wo der Benutzer eine trunkierte,
elektronische Mail-Nachricht beantwortete oder weiterleitete, dann
nur die trunkierte Nachricht an den End-Empfänger, der in der weitergeleiteten oder
Antwort-Nachricht identifiziert war, gesendet.
-
Weiterhin
ist in der
US 5,764,899 eine
Technik offenbart, die lehrt, eine Antwort durch Erzeugen eines
Delta zwischen einer vorangehenden Nachricht und der Antwort-Nachricht zu optimieren,
um so eine optimierte Antwort unter Verwendung des Delta und einen
Identifizierer der vorhergehenden Nachricht zu bilden. insbesondere
ist angegeben, dass Nachrichten auf einem Server gespeichert werden, bevor
sie zu einer entfernten Einheit übertragen
werden. Mit einem Vorstufen-Filtervorgang können unterschiedliche Filter-Attribute angewandt
werden, die sich zum Beispiel auf die Größe der Nachricht, die auf eine
Größe trunkiert
werden soll, die in einem Filter definiert ist, der zugeordnet ist,
bevor sie zu der entfernten Einheit gesendet wird, oder einen Anhang, der
von der Nachricht entfernt werden könnte, bevor die Nachricht zu
der entfernten Einheit geschickt wird, beziehen. Ein Index wird
an sowohl der entfernten Einheit als auch dem Kommunikations-Server der Mail,
gespeichert an der entfernten Einheit, beibehalten. Ein Resort wird
in Bezug auf diesen Index vorgenommen, um eine vorhergehende Nachricht
zu bestimmen. Der Kommunikations-Server ist in der Lage, ein Delta
zwischen einer Antwort-Nachricht und einer vorhergehenden Nachricht,
von der bekannt ist, dass sie in der Mail-Datenbank der entfernten
Einheit gespeichert ist, zu erzeugen.
-
Zusammenfassung der Erfindung
-
Es
ist die Aufgabe der Erfindung, ein verbessertes Verfahren zum Antworten
auf E-Mail-Nachrichten
von einer mobilen Vorrichtung, die mit einer begrenzten Sende-Bandbreite ausgestattet
ist, zu schaffen.
-
Diese
Aufgabe wird durch die Erfindung, wie sie in den unabhängigen Ansprüchen beansprucht ist,
gelöst.
-
Bevorzugte
Ausführungsformen
sind durch den Gegenstand der abhängigen Ansprüche definiert.
-
In
einer bevorzugten Ausführungsform
ermöglicht
die vorliegende Erfindung mobilen Benutzern, Antworten auf die trunkierten,
elektronischen Mail-Nachrichten zu senden oder diese weiterzuleiten,
die einen Teil des Körpers
der ursprünglichen, elektronischen
Mail-Nachricht umfassen,
ohne den gesamten Körper
der Mail-Nachricht lokal zu der mobilen Vorrichtung herunterzuladen
und dann die gesamte Nachricht von der mobilen Vorrichtung neu zu übertragen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt
ein Blockdiagramm, das eine Basisumgebung der vorliegenden Erfindung
darstellt.
-
2 zeigt
ein Blockdiagramm einer Ausführungsform
eines herkömmlichen
Desktop-Computers, der in Verbindung mit einer mobilen Vorrichtung, gemäß der vorliegenden
Erfindung, verwendet wird.
-
3 zeigt
eine vereinfachte, bildliche Darstellung einer Ausführungsform
einer mobilen Vorrichtung gemäß der vorliegenden
Erfindung.
-
4 zeigt
eine vereinfachte, bildliche Darstellung einer anderen Ausführungsform
einer mobilen Vorrichtung gemäß der vorliegenden
Erfindung.
-
5 zeigt
ein vereinfachtes Blockdiagramm einer Ausführungsform der mobilen Vorrichtung,
dargestellt in der 3 oder 4.
-
6 zeigt
ein architekturmäßiges Blockdiagramm,
das eine Ausführungsform
von Bereichen des Desktop-Computers, dargestellt in 2,
und der mobilen Vorrichtung, dargestellt in den 3–5,
darstellt, um eine Synchronisation von Informationen, gespeichert
in Objekt-Speichern auf dem Desktop-Computer, und der mobilen Vorrichtung,
gemäß einer
Ausführungsform
der vorliegenden Beschreibung, darzustellen.
-
7 zeigt
ein detaillierteres Blockdiagramm von Bereichen der Synchronisations-Maschinen, dargestellt
in 1.
-
8A und 8B zeigen
Flussdiagramme, die einen normalen Synchronisations-Vorgang entsprechend
einer Ausführungsform
der vorliegenden Beschreibung darstellen.
-
9 zeigt
ein Flussdiagramm, das die Betriebsweise eines Weiterleitungs- und
Antwort-Merkmals gemäß einer
Ausführungsform
der vorliegenden Erfindung darstellt.
-
10 zeigt
ein Blockdiagramm, das eine Ausführungsform
der Erfindung darstellt.
-
DETAILLIERTE BESCHREIBUNG DER ERLÄUTERNDEN
AUSFÜHRUNGSFORMEN
-
Übersicht
-
1 zeigt
ein Blockdiagramm eines typischen Systems oder einer Umgebung 10,
in der die vorliegende Erfindung arbeitet. Ein Antworten auf elektronische
Mail-Nachrichten unter Verwendung des Synchronisations-Protokolls
wird im Detail in Bezug auf 9 erläutert, allerdings
ist die vorliegende Übersicht
nur zur Verdeutlichung vorgesehen. Das System 10 umfasst
eine mobile Vorrichtung 12 und eine Rechenvorrichtung 14.
Die mobile Vorrichtung 12 umfasst ein erstes Anwendungs-Programm 16, ein
zweites Anwendungs-Programm 18,
entsprechend zu einem ersten und einem zweiten Objekt-Speicher 20 und 22,
eine Synchronisations-Maschine 24 und eine Kommunikationsverbindung 26. Die
Rechenvorrichtung 14 umfasst ein erstes und ein zweites
Anwendungs-Programm 28 und 30, entsprechend zu
einem ersten und einem zweiten Objekt-Speicher 32 und 34,
eine Synchronisations-Maschine 36 und eine Kommunikationsverbindung 38. Es
wird ersichtlich werden, dass sowohl die mobile Vorrichtung 12 als
auch die Rechenvorrichtung 14 eine Anzahl von anderen Komponenten
umfassen (einschließlich
zum Beispiel Komponenten und Zeitgebern, die in Ablauf-Synchronisations-Vorgängen verwendet
sind), die im größerem Detail
nachfolgend diskutiert sind. Allerdings sind, für die Zwecke der Diskussion
der Übersicht,
die in Bezug auf 1 angegeben ist, die Elemente,
die vorstehend angegeben sind, ausreichend.
-
In
einer erläuternden
Ausführungsform
der vorliegenden Erfindung sind die Anwendungs-Programme 16 und 28 Personal-Informations-Manager-(PIM)-Programme,
die, zum Beispiel, eine elektronische Mail-Nachricht, eine Ablauf-Steuerung,
ein Führen
eines Kalenders, usw., unterstützen.
Nachfolgend werden die Programme 16 und 28 ein fach
als PIMs 16 und 28 bezeichnet. Natürlich können die PIMs 16 und 28 auch
so ausgelegt sein, um eine breite Vielfalt von anderen Merkmalen
zu unterstützen, wie
beispielsweise Aufgaben-Listen und personalifizierte Adressen-Bücher, um
ein paar zu nennen.
-
Die
Objekt-Speicher 20 und 32 sind in einem Speicher
umgesetzt, der so aufgebaut ist, um eine Mehrzahl individueller
Aufzeichnungen oder Objekte zu speichern, wobei jedes davon eine
Vielzahl von Feldern oder Eigenschaften, die zu PIMs 16 und 28 in
Bezug stehen, aufweist. In einem erläuternden Beispiel sind PIMs 16 und 28 Programme,
wie beispielsweise solche, die unter der kommerziellen Bezeichnung "MICROSOFT OUTLOOK" erhältlich sind,
und Objekt-Speicher 20 und 23 sind so aufgebaut,
um Objekte zu speichern, wobei jedes davon eine Vielzahl von Attributen
oder Eigenschaften besitzt, die zu einer elektronischen Mail-Nachricht
zugeordnet sind, wie beispielsweise der Name eines Senders, der Name
eines Empfängers,
Text-Nachrichten, usw.. Die Rechenvorrichtung 14 führt einen
PIM 28 aus, um Objekte, gespeichert in einem Speicher 32,
beizubehalten, und die mobile Vorrichtung 12 führt ein Programm 16 aus,
um Objekte, gespeichert in dem Objekt-Speicher 20, beizubehalten.
In einem erläuternden
Beispiel weist jedes Objekt in dem Objekt-Speicher 20 denselben
Satz von Eigenschaften oder Attributen, gespeichert in dem Objekt-Speicher 32,
oder einen Untersatz dieser Eigenschaften oder Attribute, auf.
-
Ähnlich behalten
Anwendungs-Programme 18 und 30 Objekte in zugeordneten
Objekt-Speichern 22 und 34 jeweils bei. In einem
erläuternden
Beispiel sind die Anwendungs-Programme 18 und 30 Datei-System-Anwendungen,
wie beispielsweise solche, die unter der kommerziellen Bezeichnung "MICROSOFT WORD" erhältlich sind.
Es sollte auch angemerkt werden, dass irgendeine geeignete Anzahl von
anderen Anwendungs-Programmen, und zugeordneten Objekt-Speichern,
an der mobilen Vorrichtung 12 und der Rechenvorrichtung 14 vorgesehen sein
können.
Allerdings werden hier, für
den Zweck einer Vereinfachung, nur Programme 16, 28 und 30, und
deren zugeordnete Objekt-Speicher, beschrieben.
-
In
einem erläuternden
Beispiel wünscht
der Benutzer, Objekt-Speicher 20 und 32 und Objekt-Speicher 32 und 34 zu
synchronisieren. Folglich sind dabei zwei Fälle jedes Objekts, zugeordnet
zu dem Paar von Objekt-Speichern 20 und 32 (ein
Fall in dem Objekt-Speicher 20 und
ein Fall in dem Objekt-Speicher 32), und zwei Fälle jedes
Objekts, das zu dem Paar der Objekt-Speicher 22 und 34 zugeordnet
ist (ein Fall in dem Objekt-Speicher 22 und ein Fall in
dem Objekt-Speicher 34), vorhanden. Wenn ein Benutzer einen
Fall des Objekts, gespeichert in entweder dem Objekt-Speicher 22 oder
dem Objekt-Speicher 34, ändert, befindet sich der zweite
Fall dieses Objekts in dem anderen der Speicher 22 und 34 außerhalb
einer Synchronisation, und es wird in erwünschter bzw. erforderlicher
Art und Weise dann aktualisiert, wenn die mobile Vorrichtung 12 das nächste Mal
eine Zweiwege-Kommunikation
mit der Rechenvorrichtung 14 hat, so dass beide Fälle desselben
Objekts synchronisierte Daten enthalten. Dasselbe gilt für Fälle von
Objekten, die in Objekt-Speichern 20 und 32 gespeichert
sind.
-
Um
eine Synchronisation vorzunehmen, laufen jeweils Synchronisations-Komponenten 24 und 36 auf
der mobilen Vorrichtung 12 und der Rechenvorrichtung 14.
Die Synchronisations-Komponenten kommunizieren mit Anwendungs-Programmen 16, 18, 28 und 30 (oder
direkt mit den zugeordneten Objekt-Speichern) über irgendwelche gut definierten Schnittstellen,
um eine Kommunikation und eine Synchronisation zu leiten.
-
Synchronisations-Komponenten 24 und 36 kommunizieren
miteinander über
Kommunikationsverbindungen 26 und 38. Die Kommunikationsverbindungen 26 und 38 sind
illustrativ kommerzielle verfügbare
Kommunikationsverbindungen, die ein geeignetes Kommunikations-Protokoll
verwenden. Zum Beispiel ist, in einem erläuternden Beispiel, die mobile
Vorrichtung 12 mit der Rechenvorrichtung 14 mit einem
physikalischen Kabel verbunden, das unter Verwendung eines seriellen
Kommunikations-Protokolls kommuniziert. Andere Kommunikations-Mechanismen
sind auch durch die vorliegende Erfindung vorgesehen, wie beispielsweise
eine Infrarot-(IR)-Kommunikation, eine direkte Modem-Kommunikation, eine
entfernte Einwähl-Netzwerk-Kommunikation,
eine Kommunikation über
kommerziell erhältliche
Netzwerk-Karten (d. h. unter Verwendung von TCP/IP), entfernte Zugangs-Dienste
(Remote Access-Services – RAS),
ein drahtloses Modem, drahtlose, zellulare, digitale Paket-Daten
(CDPD), Kurz-Nachricht-Dienste oder andere geeignete Kommunikations-Mechanismen.
Obwohl die Kommunikationsverbindungen so dargestellt sind, dass
sie sich intern zu der mobilen Vorrichtung 12 und der Rechenvorrichtung 14 befinden,
werden Fachleute auf dem betreffenden Fachgebiet erkennen, dass
Bereiche der Kommunikationsverbindungen außerhalb der Vorrichtungen vorhanden
sein können.
Zum Beispiel können
die Kommunikationsverbindungen Kommunikations-Server, die zwischen
der mobilen Vorrichtung 12 und der Rechenvorrichtung 14 angeordnet
sind, andere Bereiche der das Netzwerk bildenden Kommunikationsverbindung
(wie beispiels weise die zellularen und PSTN-Netzwerke), und Adapter,
wie beispielsweise Mobil-Vorrichtungs-Umschalter
(-Cradles), umfassen.
-
Bevor
der Synchronisations-Vorgang und die zugeordneten Mechanismen in
größerem Detail
diskutiert werden, fährt
die vorliegende Diskussion mit einer detaillierteren Beschreibung
der Komponenten der mobilen Vorrichtung 12 und einer beispielhaften Rechenvorrichtung 14 zum
Zwecke der Deutlichkeit fort.
-
Rechenvorrichtung 14
-
Die
Rechenvorrichtung 14 ist nur ein Beispiel einer geeigneten
Rechenvorrichtung und ist nicht dazu vorgesehen, irgendeine Einschränkung in
Bezug auf den Umfang der Benutzung oder der Funktionalität der Erfindung
zu vermitteln. Auch sollte die Rechenvorrichtung 14 nicht
dahingehend interpretiert werden, dass sie irgendeine Abhängigkeit
oder ein Erfordernis besitzt, das sich auf irgendeine oder eine
Kombination von Komponenten, dargestellt in der beispielhaften Rechenvorrichtung 14,
bezieht.
-
Die
Erfindung ist mit zahlreichen anderen Rechensystem-Umgebungen oder – Anordnungen für allgemeine
Zwecke oder spezielle Zwecke betreibbar. Beispiele von ausreichend
bekannten Rechensystemen, Umgebungen, und/oder Anordnungen, die
zur Verwendung in Verbindung mit der Erfindung geeignet sein können, umfassen,
sind allerdings nicht darauf beschränkt, Personal-Computer, Server-Computer,
in der Hand haltbare oder Laptop-Vorrichtungen, Multiprozessor-Systeme,
auf einem Mikroprozessor basierende Systeme, Set-Top-Boxes, programmierbare
Verbraucher-Elektroniken, Netzwerk-PCs, Minicomputer, Mainframe-Computer,
Telefonsysteme, verteilte Rechenumgebungen, die irgendeines der
vorstehenden Systeme oder der Vorrichtungen umfassen, und dergleichen.
-
Die
Erfindung kann in dem allgemeinen Zusammenhang von mittels Computer
ausführbaren Anweisungen,
wie beispielsweise Programm-Modulen, die durch einen Computer ausgeführt werden, beschrieben
werden. Allgemein umfassen Programm-Module Routines, Programme,
Objekte, Komponenten, Datenstrukturen, usw., die bestimmte Aufgaben
durchführen
oder bestimmte abstrakte Daten-Typen implementieren. Die Erfindung
kann auch in verteilten Rechenumgebungen dort ausgeführt werden,
wo Aufgaben durch entfernte Verarbeitungs-Vorrichtungen durchgeführt werden,
die über ein
Kommunikations-Netzwerk
verbunden sind. In einer verteilten Rechenumgebung können Programm-Module
in sowohl lokalen als auch entfernten Computer-Speichermedien, die
Memory-Speichervorrichtungen
umfassen, angeordnet sein.
-
Wie 2 zeigt,
umfasst ein beispielhaftes System zum Ausführen der Erfindung eine Rechenvorrichtung
für allgemeine
Zwecke in der Form eines Computers 110. Teile des Computers 110 können eine
Verarbeitungseinheit 120, einen System-Speicher 130 und
einen System-Bus 121, der verschiedene System-Komponenten,
die den System-Speicher umfassen,
mit der Verarbeitungseinheit 120 verbindet, umfassen, sind
allerdings nicht hierauf beschränkt.
Der System-Bus 121 kann irgendeiner von verschiedenen Typen
von Bus-Strukturen sein, die einen Speicher-Bus oder eine Speicher-Steuereinheit,
einen peripheren Bus und einen lokalen Bus, unter Verwendung irgendeiner
Vielfalt von Bus-Architekturen,
umfassen. Als Beispiel, und nicht als Einschränkung, umfassen solche Architekturen
einen Industry-Standard-Architecture-(ISA)-Bus, einen Micro-Channel-Architekture-(MCA)-Bus,
einen Enhanced-ISA-(EISA)-Bus, einen Video-Electronics-Standards-Association-(VESA)-Lokal-Bus
und einen Peripheral-Component-Interconnect-(PCI)-Bus, auch bekannt als Mezzanine-Bus.
-
Der
Computer 110 umfasst typischerweise eine Vielzahl von mittels
Computer lesbaren Medien. Mittels Computer lesbare Medien können irgendwelche
verfügbaren
Medien sein, auf die durch einen Computer 110 zugegriffen
werden kann, und umfassen sowohl flüchtige als auch nicht-flüchtige Medien, entfernbare
und nicht-entfernbare Medien. Als Beispiel, und nicht als Einschränkung, können mittels Computer
lesbare Medien Computer-Speichermedien
und Kommunikations-Medien aufweisen. Computer-Speichermedien umfassen
sowohl flüchtige
als auch nicht-flüchtige,
entfernbare und nicht-entfernbare Medien, ausgeführt in irgendeinem Verfahren
oder einer Technologie zum Speichern von Informationen, wie beispielsweise
mittels Computer lesbare Anweisungen, Daten-Strukturen, Programm-Module, oder andere
Daten. Das Computer-Speichermedium umfasst, ist allerdings nicht
hierauf beschränkt,
RAM, ROM, EEPROM, Flash-Memory oder eine andere Speicher-Technologie,
CD-ROM, Digital-Versstile-Disks (DVD) oder einen anderen, optischen
Plattenspeicher, magnetische Kassetten, Magnetband, Magnet-Plattenspeicher,
oder andere Magnet-Speichervorrichtungen, oder irgendein anderes
Medium, das dazu verwendet werden kann, die erwünschten Informationen zu speichern,
und auf die durch den Computer 110 zugegriffen werden kann.
Kommunikations-Medien enthalten typischerweise mittels Computer
lesbare Anweisungen, Daten-Strukturen, Programm-Module oder andere
Daten in einem modulierten Daten-Signal, wie beispielsweise einer
Trägerwelle
oder einem anderen Transport-Mechanismus, und umfassen irgendwelche
Medien, die Informationen liefern. Der Ausdruck "moduliertes Daten-Signal" bedeutet ein Signal,
bei dem ein Charakteristikum oder mehrere seiner Charakteristika
in einer solchen Art und Weise eingestellt oder geändert sind,
um Informationen in dem Signal zu codieren. Als Beispiel, und nicht
als Einschränkung,
umfassen Kommunikations-Medien
verdrahtete Medien, wie beispielsweise ein verdrahtetes Netzwerk
oder eine direkt verdrahtete Verbindung, und drahtlose Medien, wie
beispielsweise akustische, HF-, Infrarot- und andere, drahtlose
Medien. Kombinationen der vorstehenden Medien sollten innerhalb
des Schutzumfangs der mittels Computer lesbaren Medien enthalten sein.
-
Der
System-Speicher 130 umfasst mittels Computer speicherbare
Medien in der Form eines flüchtigen
und/oder nicht-flüchtigen
Speichers, wie beispielsweise eines Read-Only-Memory (ROM) 131 und eines
Random-Access-Memory (RAM) 132. Ein Basis-Eingabe/Ausgabe-System 133 (BIOS),
das die Basis-Routines enthält,
die dabei helfen, Informationen zwischen Elementen innerhalb des
Computers 110 zu übertragen,
wie beispielsweise während
des Hochfahrens, ist typischerweise in dem ROM 131 gespeichert.
Der RAM 132 enthält
typischerweise Daten- und/oder Programm-Module, auf die unmittelbar zugreifbar
ist und/oder die momentan durch die Verarbeitungseinheit 120 laufen.
Als Beispiel, und nicht als Einschränkung, stellt 2 ein
Betriebssystem 134, Anwendungs-Programme 135, andere Programm-Module 136 und
Programm-Daten 137 dar.
-
Der
Computer 110 kann auch andere entfernbare/nicht-entfernbare,
flüchtige/nicht-flüchtige Computer-Speichermedien
umfassen. Nur als Beispiel stellt 2 ein Festplatten-Laufwerk 141,
das von einem nicht-entfernbaren, nicht-flüchtigen, magnetischen Medium
liest oder darauf schreibt, ein Magnetplatten-Laufwerk 151,
das von einer entfernbaren, nicht-flüchtigen Magnetplatte 152 liest
oder darauf schreibt, und ein optisches Platten-Laufwerk 155, das
von einer entfernbaren, nicht-flüchtigen,
optischen Platte 156 liest oder darauf schreibt, wie beispielsweise
eine CD-ROM oder ein anderes, optisches Medium, dar. Andere entfernbare/nicht-entfernbare,
flüchtige/nicht-flüchtige Computer-Speichermedien, die
in der beispielhaften Betriebsumgebung verwendet werden können, umfassen,
sind allerdings nicht darauf beschränkt, Magnetband-Kassetten,
Flash-Memory-Cards,
Digital-Versstile-Disks, Digital-Video-Band, Festkörper-RAM,
Festkörper-ROM,
und dergleichen. Das Festplatten-Laufwerk 141 ist typischerweise
mit dem System-Bus 121 über
eine nicht-entfernbare Speicher-Schnittstelle, wie beispielsweise
eine Schnittstelle 140, verbunden, und das Magnetplatten-Laufwerk 151 und
das Laufwerk 155 für
die optische Platte sind typischerweise mit dem System-Bus 121 durch
eine entfernbare Speicher-Schnittstelle, wie beispielsweise die Schnittstelle 150,
verbunden.
-
Die
Laufwerke und deren zugeordnete Computer-Speichermedien, die vorstehend
diskutiert und in 2 dargestellt sind, bilden einen
Speicher für mittels
Computer lesbare Anweisungen, Daten-Strukturen, Programm-Module
und andere Daten für
den Computer 110. In 2 ist zum
Beispiel das Festplatten-Laufwerk 141 so dargestellt, dass
es das Betriebssystem 144, Anwendungs-Programme 145, andere
Programm-Module 146 und Programm-Daten 147 speichert.
Es ist anzumerken, dass diese Komponenten entweder dieselben wie
das Betriebssystem 134, die Anwendungs-Programme 135,
andere Programm-Module 136 und Programm-Daten 137 sein
können
oder unterschiedlich dazu sein können. Dem
Betriebssystem 144, den Anwendungs-Programmen 145,
den anderen Programm-Modulen 146 und den Programm-Daten 147 sind
unterschiedliche Zahlen hier gegeben, um zu zeigen, dass sie, minimal,
unterschiedliche Kopien sind.
-
Der
Benutzer kann Befehle und Informationen in den Computer 110 über Eingabe-Vorrichtungen, wie
beispielsweise ein Tastenfeld 162, ein Mikrofon 163 und
eine Hinweisvorrichtung 161, wie beispielsweise eine Mouse,
einen Trackball oder ein Touch-Pad, eingeben. Andere Eingabevorrichtungen (nicht
dargestellt) können
einen Joystick, ein Game-Pad,
eine Satellitenschüssel,
einen Scanner, oder dergleichen, umfassen. Diese und andere Eingabevorrichtungen
sind oftmals mit der Verarbeitungseinheit 120 über eine
Benutzer-Eingabe-Schnittstelle 160 verbunden, die mit dem
System-Bus verbunden ist, können
allerdings durch andere Schnittstellen- und Bus-Strukturen verbunden sein,
wie beispielsweise einen parallelen Port, einen Game-Port oder einen
Universal-Serial-Bus (USB). Ein Monitor 191 oder irgendein
anderer Typ einer Anzeigevorrichtung ist auch mit dem System-Bus 121 über eine
Schnittstelle, wie beispielsweise eine Video-Schnittstelle 190,
verbunden. Zusätzlich
zu dem Monitor können
Computer auch andere periphere Ausgabevorrichtungen, wie beispielsweise
Lautsprecher 197 und einen Drucker 196, umfassen,
die über eine
periphere Ausgabe-Schnittstelle 190 verbunden sein können.
-
Der
Computer 110 kann in einer vernetzten Umgebung unter Verwendung
von logischen Verbindungen mit einem oder mehreren, entfernten Computer(n),
wie beispielsweise einem entfernten Computer 180, der eine
mobile Vorrichtung 12 umfassen kann, betrieben werden.
Der entfernte Computer 180 kann ein Personal-Computer,
eine in der Hand gehaltene Vorrichtung, ein Server, ein Router,
ein Netzwerk-PC, eine Peer- Vorrichtung,
oder ein anderer, gemeinsamer Netzwerk-Knoten sein und umfasst typischerweise
viele oder alle der Elemente, die vorstehend relativ zu dem Computer 110 beschrieben
sind. Die logischen Verbindungen, die in 2 gezeigt sind,
umfassen ein Local-Area-Network (LAN) 171 und ein Wide-Area-Network
(WAN) 173, können
allerdings auch andere Netzwerke umfassen. Solche vernetzten Umgebungen
sind in Büros,
in weltweiten Computer-Netzwerken, dem Intranet und dem Internet üblich. Zusätzlich können die
Netzwerk-Verbindungen zwischen irgendwelchen der Knoten in dem Netzwerk
direkte Kabel-Verbindungen oder drahtlose Verbindungen umfassen,
und die Verbindung zwischen dem Computer 110 und dem entfernten
Computer 180 kann irgendeine Anzahl von Knoten und/oder
Routern umfassen.
-
Der
Computer 110 ist, wenn er in einer LAN-Netzwerk-Umgebung
verwendet wird, mit dem LAN 171 über eine Netzwerk-Schnittstelle
oder einen -Adapter 170 verbunden. Der Computer 110 umfasst, wenn
er in einer WAN-Netzwerk-Umgebung verwendet ist, typischerweise
ein Modem 172 oder eine andere Einrichtung zum Einrichten
von Kommunikations- bzw. Daten-Übertragungen über das
WAN 173, wie beispielsweise das Internet. Das Modem 172, das
intern oder extern vorhanden sein kann, kann mit dem System-Bus 121 über die
Benutzer-Eingabe-Schnittstelle 160, oder einen anderen,
geeigneten Mechanismus, verbunden sein. In einer vernetzten Umgebung
können
Programm-Module, die relativ zu dem Computer 110 gezeigt
sind, oder Bereiche davon, in der entfernten Speichervorrichtung
gespeichert sein. Anhand eines Beispiels, und nicht als Einschränkung, stellt 2 entfernte
Anwendungs-Programme 185 so dar, dass sie auf einem entfernten Computer 180 vorhanden
sind. Es wird ersichtlich werden, dass die Netzwerk-Verbindungen,
die dargestellt sind, beispielhaft sind, und dass andere Einrichtungen
zum Einrichten einer Kommunikationsverbindung zwischen den Computern
verwendet werden können.
-
Dynamisch
verknüpfte
Libraries (Dynamically Linked Libraries – DLLs), die eine Vielzahl
von ausführbaren
Funktionen aufweisen, sind zu dem PIM 28 und der Anwendung 30 zum
Ausführen
durch den Prozessor 62 zugeordnet. Ein Zwischen-Prozessor und
Zwischen-Komponenten-Anrufe werden vorzugsweise unter Verwendung
des Komponenten-Objekt-Modells (COM) erleichtert, wie es in Programmen üblich ist,
die für
Betriebssysteme von Microsoft mit der Marke "WINDOWS" geschrieben sind. Kurz gesagt besitzt,
wenn ein COM verwendet wird, eine Software-Komponente, wie beispielsweise eine
DLL, eine Anzahl von Schnittstellen. Jede Schnittstelle besitzt
eine Vielzahl von Verfahren, die individuell aufgerufen werden können, um
unterschiedliche Dienste die durch die Software-Komponente angeboten sind,
zu verwenden. Zusätzlich
sind Schnittstellen vorgesehen, so dass Verfahren oder Funktionen
von anderen Software-Komponenten aufgerufen werden können, die
optional eines oder mehrere Parameter-Argument(e) empfangen und
zurückführen.
-
Allgemein
sind die DLLs, die dem PIM 28 und dem Programm 30 zugeordnet
sind, spezifisch so ausgelegt, um in Verbindung mit dem PIM 28 und dem
Programm 30 zu arbeiten und um Desktop-Synchronisations-Schnittstellen
freizugeben, die entsprechend einem Synchronisations-Protokoll arbeiten.
Die DLLs rufen wiederum Schnittstellen auf, die durch PIM 28 und
das Programm 30 freigegeben werden, um auf Daten zuzugreifen,
die individuelle Eigenschaften von Objekten darstellen, die in Objekt-Speichern 32 und 34 aufrechterhalten
werden. Die Objekt-Speicher 32 und 34 können natürlich in
irgendeiner der geeigneten Speicher-Komponenten, die in Bezug auf 2 beschrieben
sind, vorhanden sein.
-
Mobile Vorrichtung 12
-
3 zeigt
eine vereinfachte, bildliche Darstellung eines bevorzugten Beispiels
einer mobilen Vorrichtung 12, die entsprechend der vorliegenden Erfindung
verwendet werden kann. In einem Beispiel umfasst die mobile Vorrichtung 12 ein
miniaturisiertes Tastenfeld 300, eine Anzeige 302 und
einen Stylus bzw. Schreibstift 304. In der Ausführungsform,
die in 3 dargestellt ist, ist die Anzeige 302 eine
Flüssigkristall-Anzeige
(LCD), die einen kontaktempfindlichen Anzeige-Bildschirm in Verbindung
mit dem Schreibstift 304 verwendet. Der Schreibstift 304 wird so
verwendet, um die Anzeige 302 an bezeichneten Koordinaten
niederzudrücken
oder zu berühren,
um bestimmte Benutzer-Eingabe-Funktionen
vorzunehmen. Das miniaturisierte Tastenfeld 300 ist illustrativ als
ein miniaturisiertes alpha-numerisches Tastenfeld, mit irgendwelchen
geeigneten und erwünschten Funktions-Tasten,
ausgeführt,
die auch zum Vornehmen bestimmter Benutzer-Eingabe-Funktionen vorgesehen sind.
-
4 zeigt
eine Darstellung eines unterschiedlichen Beispiels der mobilen Vorrichtung 12. Die
mobile Vorrichtung 12 umfasst, wie in 4 dargestellt
ist, einen berührungsempfindlichen
Bildschirm 402, der in Verbindung mit dem Schreibstift 404 verwendet
werden kann, um bestimmte Benutzer-Eingabe-Funktionen vorzunehmen.
-
Es
sollte angemerkt werden, dass die Anzeigen 302 und 402 für die mobilen
Vorrichtungen, dargestellt in den 3 und 4,
von derselben Größe zueinander
sein können
oder von unterschiedlichen Größen zueinander
sein können,
würden
allerdings typischerweise viel kleiner als eine herkömmliche
Anzeige sein, die in einem Desktop-Computer verwendet wird. Zum
Beispiel können
die Anzeigen 302 und 402, die in den 3 und 4 dargestellt sind,
durch eine Matrix mit nur 240 × 320
Koordinaten, oder 160 × 160
Koordinaten, oder irgendeiner anderen, geeigneten Größe, definiert
sein. Wenn die mobile Vorrichtung 12 ein Pager ist, kann
die Anzeige auch noch kleiner sein.
-
Die
mobile Vorrichtung 12, die in 4 dargestellt
ist, umfasst auch eine Anzahl von Benutzer-Eingabe-Tasten oder Knöpfen (wie
beispielsweise Knopf 420), die dem Benutzer ermöglichen,
durch die Menü-Optionen
oder andere Anzeige-Optionen zu laufen, die auf der Anzeige 402 angezeigt
sind, oder die dem Benutzer ermöglichen,
Anwendungen zu ändern
oder Benutzer-Eingabe-Funktionen auszuwählen, ohne die Anzeige 402 zu
berühren.
-
Es
ist anzumerken, dass andere Formen der mobilen Vorrichtung unter
der vorliegenden Erfindung möglich
sind. Beispiele umfassen mobile Telefone, die dazu geeignet sind,
Rechenaufgaben durchzuführen,
Tableau-PCs und drahtlos arbeitende Laptop-Computer, um nur ein paar zu nennen.
-
5 zeigt
ein detaillierteres Blockdiagramm einer mobilen Vorrichtung 12.
Die mobile Vorrichtung 12 umfasst erläuternd einen Mikroprozessor 506,
einen Speicher 508, Eingabe/Ausgabe (I/O)-Komponenten 510 und
Kommunikationsverbindungen 26. Diese Komponenten der mobilen
Vorrichtung 12 können
für eine
Kommunikation miteinander über
einen geeigneten Bus 516 verbunden sein.
-
Der
Speicher 508 ist erläuternd
als nicht-flüchtiger,
elektronischer Speicher, wie beispielsweise ein Random-Access-Memory
(RAM), mit einem Batterie-Backup-Modul (nicht dargestellt), so dass
Informationen, gespeichert in dem Speicher 508, nicht verloren
gehen, wenn die allgemeine Stromversorgung zu der mobilen Vorrichtung 12 abgeschaltet
wird, ausgeführt.
Ein Bereich des Speichers 508 ist erläuternd als adressierbarer Speicher für eine Programm-Ausführung zugeordnet,
während ein
anderer Bereich des Speichers 508 optional zum Speichern
verwendet wird, wie beispielsweise dazu, ein Speichern auf einem
Platten-Laufwerk zu simulieren.
-
Der
Speicher 508 kann ein Betriebssystem 518, ein
oder mehrere Anwendungs-Programm(e) (wie
beispielsweise PIM 16 und eine Datei-Anwendung 18,
usw.) ebenso wie Objekt-Speicher 20 und 22 und
eine Synchronisations-Maschine 24 umfassen. Während eines
Betriebs ist das Betriebssystem 518 illustrativ durch einen
Prozessor 506 aus dem Speicher 48 ausgeführt. Das
Betriebssystem 518 führt
Merkmale aus, die durch das PIM 16 und die Datei-Anwendung 18 über einen
Satz von freigegebenen Anwendungs-Programm-Schnittstellen und -Verfahren
verwendet werden können.
Die Objekte in den Objekt-Speichern 20 und 22 werden
illustrativ durch den PIM 16, die Datei-Anwendung 18 und
das Betriebssystem 518, zumindest teilweise in Erwiderung
von Anrufen zu den freigegebenen Anwendungs-Programm-Schnittstellen
und -Verfahren, beibehalten.
-
I/O-Komponenten 510 sind,
in einer Ausführungsform,
vorgesehen, um Eingabe- und
Ausgabe-Vorgänge
von einem Benutzer der mobilen Vorrichtung 12 zu erleichtern.
I/O-Komponenten 510 für verschiedene
Ausführungsformen
der mobilen Vorrichtung 12 können Eingabe-Komponenten, wie
beispielsweise Tasten und Berührungssensoren,
und Ausgabe-Komponenten, wie beispielsweise eine Anzeige, einen
Lautsprecher und/oder einen Drucker-Port, usw., umfassen.
-
Die
Kommunikationsverbindung 26 ist irgendeine geeignete Kommunikations-Schnittstelle. Die
Schnittstelle 26 wird erläuternd dazu verwendet, mit
der Rechenvorrichtung 14 zu kommunizieren, wie dies in
Bezug auf 1 beschrieben ist. Der Speicher 508 umfasst
einen Satz von Kommunikations-Treibern 520, die mit der
Kommunikationsverbindung 26 Wechselwirken und die Daten
in das und von dem geeigneten Kommunikations-Protokoll, das dazu
notwendig ist, eine Kommunikation über die Verbindung 26 zu
ermöglichen, übersetzt.
-
6 gibt
ein Blockdiagramm an, das eine Kommunikationsverbindung 26 und
Kommunikations-Treiber 520 in größerem Detail darstellt. Insbesondere
stellt 6 eine Kommunikationsverbindung 26 so
dar, dass sie eine Anzahl von Kommunikations-Ports 602, 604, 606, 608 und 610 enthält, die mit
Vorrichtungen außerhalb
der mobilen Vorrichtung kommunizieren. Jeder Port besitzt jeweils
einen zugeordneten Treiber 612, 614, 616, 618 und 620,
in den Kommunikations-Treibern 520. Der IR-Port 602 und
der IR-Treiber 612 schaffen
eine Kommunikation über
einen Infrarot-Kommunikations-Kanal zwischen der mobilen Vorrichtung
und einer anderen Rechenvorrichtung. Der Serial/USB-Port 604 und
der Serial/USB-Treiber 612 schaffen eine Kommunikation über einen seriellen
oder USB-Kanal. Der Kabel-Netzwerk-Port 606 und der Kabel-Netzwerk-Treiber 616 schaffen
eine Kommunikation über
ein Netzwerkkabel, wie beispielsweise ein Ethernet-Kabel.
-
Der
Drahtlos-Netzwerk-Port 608 und der Drahtlos-Netzwerk-Treiber 618 schaffen
eine Kommunikation mit dem Netzwerk über einen Funkkanal. Der Drahtlos-Netzwerk-Port 608 und
der Treiber 618 können
irgendeine Anzahl von drahtlosen Netzwerk-Protokollen verwenden,
einschließlich
General Packet Radio Service (GPRS) und 1Xrtt, die drahtlose Dienste
sind, die dazu verwendet werden, einen zellularen Zugang zu einem
Netzwerk zu schaffen, ebenso wie 802.11 und 802.11b-(Wi-Fi)-Protokolle, und
ein BluetoothTM Protokoll, die lokale, drahtlose Verbindungen
zu Netzwerken schaffen. Natürlich können andere
ebenso verwendet werden.
-
Der
SMS-Port 610 und der SMS-Treiber 620 unterstützen eine
Einwege-Kommunikation
unter Verwendung des Short-Message-Service Protokolls. Demzufolge
ist der SMS-Port 610 in der Lage, SMS-Nachrichten zu empfangen,
die unter Verwendung des Funk-Spektrums gesendet werden.
-
Übersicht
und Synchronisation
-
7 zeigt
ein detaillierteres Blockdiagramm einer Synchronisations-Maschine 24 an
der mobilen Vorrichtung 12 und einer Synchronisations-Maschine 36 an
dem Desktop 14. Die Synchronisations-Maschine 24 an
der mobilen Vorrichtung 12 umfasst einen Synchronisations-Manager 740,
der mit einem Satz von Anwendungs-Programmen verbunden ist, wie
beispielsweise PIM-Sync-Provider 744 und Datei-Sync-Provider 746.
Der PIM-Sync-Provider 744 ist mit einem PIM-Objekt-Speicher 20 verbunden
und der Datei-Sync-Provider 746 ist
mit dem Datei-Objekt-Speicher 22 verbunden.
-
Die
Synchronisations-Maschine 36 an der Rechenvorrichtung 14 umfasst
auch einen Synchronisations-Manager 748, der mit einem
zugeordneten Referenz-Speicher 750 verbunden ist und auch
mit Anwendungs-Programmen, umfassend den PIM-Sync-Provider 752 und
den Datei-Sync-Provider 754, verbunden ist. Der PIM-Sync-Provider 752 ist mit
dem PIM-Objekt-Speicher 32 verbunden und der Datei-Sync-Provider 754 ist
mit dem Datei-Objekt-Speicher 34 verbunden. Während die
Provider 744, 746, 752 und 754 so
dargestellt sind, dass sie direkt mit den zugeordneten Objekt-Speichern
verbunden sind, könnten
diese Provider auch mit den Objekt-Speichern über die Anwendungs-Programme 16, 18, 28 und 30 anstelle
davon verbunden sein. Allerdings fährt, zum Zwecke der Verein fachung,
die vorliegende Diskussion nur in Bezug auf die Anordnung, die in 7 dargestellt
ist, fort.
-
Die
PIM-Sync-Provider 752 und 754 geben Anwendungs-Programm-Schnittstellen
(APIs) 756 frei, die durch den Sync-Manager 748 aufgerufen werden
können,
um Objekte und Objekt-Eigenschaften von Objekt-Speichern 32 und 34 zu
lesen und darauf zu speichern. Die Schnittstellen 756 ermöglichen
allgemein die Erzeugung von Daten-Basen für unterschiedliche Typen von
Objekten und ermöglichen,
dass Anwendungs-Programme Eigenschafts-Namen und -Werte zu jeweiligen
Objekten innerhalb jeder Daten-Basis lesen und darauf schreiben.
Eine Anzahl von beispielhaften Schnittstellen wird nun beschrieben,
bilden allerdings keinen Teil der Erfindung und werden nur zu Zwecken
eines Beispiels und zur Vollständigkeit
diskutiert.
-
Die
Schnittstellen sind gut als die IReplStore und
IReplObjHandler Schnittstellen dokumentiert. Jede dieser Schnittstellen
gibt eine Anzahl von gut dokumentierten Verfahren frei. Zum Beispiel
gibt die IReplStore Schnittstelle 22 Verfahren frei, die
allgemein als Verfahren klassifiziert werden können, die dazu verwendet werden,
auf den Daten-Speicher
zuzugreifen und diesen zu modifizieren, Verfahren, die für eine Objekt-Aufzählung verwendet
werden, Verfahren, die dazu verwendet werden, Objekt-Informationen zu
erhalten, Verfahren, die dazu verwendet werden, Handles zu Objekten
zu manipulieren, Verfahren, die für Benutzer-Schnittstellen-Funktionen verwendet
werden, und eine Anzahl von verschiedenartigen Verfahren. Die IReplObjHandler
Schnittstelle gibt Verfahren frei, die dazu verwendet werden, Objekte
seriell zu gestalten, indem ein Objekt in eine Reihe von Bytes umgesetzt
wird, und um Objekte aus dem seriellen wieder zurückzuführen, indem
die Serie von Bytes zurück
in ein Objekt überführt wird.
Die Verfahren, die in der Schnittstelle enthalten sind, werden auch
dazu verwendet, ein Objekt aus dem entsprechenden Objekt-Speicher
zu löschen.
-
Der
Sync-Manager 748 gibt wiederum eine gut dokumentierte Schnittstelle,
bekannt als die IReplNotify Schnittstelle, zu Providern 752 und 754 frei. Diese
Schnittstelle gibt vier gut dokumentierte Verfahren frei, die dazu
verwendet werden, den Sync-Manager 748 auf irgendeine Änderung
oder eine Löschung,
die in Bezug auf ein Objekt in einem entsprechenden Objekt-Speicher
vorgenommen ist, hinzuweisen, um einen Text einzustellen, der in
einem Status-Balken angezeigt werden soll, wo ein Synchronisations-Status
durch den Benutzer beobachtet werden kann, um ein Fenster-Handle
zu erhalten, die als ein Parent-Fenster irgendeiner modalen Dialog-
oder Nachrichten-Box verwendet wird, und um Informationen über eine
mobile Vorrichtung zu erhalten, die ausgewählt worden ist, oder die mit
der Rechenvorrichtung verbunden ist.
-
Jeder
der Provider 752 und 754 ist so ausgeführt, um
jeweils spezifisch in Verbindung mit einem besonderen Anwendungs-Programm 28 oder 34 zu arbeiten.
Allgemein wird, da die Anwendungs-Programm-Schnittstelle (API) 756 standardisiert
ist, sie dem Synchronisations-Manager 748 ermöglichen, auf
irgendeine Anzahl von unterschiedlichen Anwendungs-Programmen zuzugreifen
und zu synchronisieren, solange wie die erforderlichen Schnittstellen-Verfahren
für jede
Anwendung durch entsprechende Provider ausgeführt sind.
-
An
der mobilen Vorrichtung 12 stellen die Provider 744 und 746 auch
die gut dokumentierte IReplObjHandler Schnittstelle bereit, so dass
Objekte in den zugeordneten Objekt-Speichern 20 und 22 seriell
gestaltet werden können
und wieder aus der seriellen Gestaltung zurückgesetzt werden können. Die Provider 744 und 746 führen erläuternd drei
zusätzliche
Funktionen aus, die dazu verwendet werden können, den Provider zu initialisieren
und zu beenden, eine Objekt-Identifikation und eine Änderungs-Erfassung
zu handhaben, und um Vorrichtungs-Informationen über einen bestimmten Objekt-Typ
aufzusuchen. Diese Funktionen und Schnittstellen sind auch gut dokumentiert.
-
Der
Synchronisations-Manager 748 manipuliert den Referenz-Speicher 750,
um eine Auflistung zwischen Fällen
von Objekten, gespeichert in den Objekt-Speichern 32 und 34 an
der Rechenvorrichtung 14, und Fällen derselben Objekte, gespeichert
in den Objekt-Speichern 20 und 22 an
der mobilen Vorrichtung 12, beizubehalten. Objekte werden
durch Handles identifiziert, die durch die Provider 752 und 754 erzeugt
sind. Die Handles sind für
den Synchronisations-Manager 748 dahingehend opak, dass
sich der Synchronisations-Manager 748 nicht
mit der tatsächlichen
Zusammensetzung des Handles befassen muss, obwohl die Handles durch
den Synchronisations-Manager 748 manipuliert und gespeichert werden.
-
Allgemein
hält, um
die Auflistung beizubehalten, der Synchronisations-Manager 748 einen
Referenz-Speicher 750 aufrecht, so dass er Handles entsprechend
jeweils zu einer Vielzahl von Objekten in den Objekt-Speichern 32 und 34 an
der Rechenvorrichtung 14 enthält, die zu Fällen derselben
Objekte in den Objekt-Speichern 20 und 22 an der
mobilen Vorrichtung 12 synchronisiert werden sollen. Die Handles
in dem Referenz-Speicher 750 werden typischerweise Objekten
entsprechen, die zuvor zwischen den verschiedenen Objekt-Speichern
synchronisiert worden sind. Die Handles werden aktualisiert, nachdem
deren entsprechende Objekte synchronisiert worden sind.
-
Die
Liste von Handles, die in dem Referenz-Speicher 750 beibehalten
sind, wird auch dazu verwendet, zu bestimmen, welche Elemente zu
der mobilen Vorrichtung 12 synchronisiert werden müssen, wenn
die mobile Vorrichtung 12 das nächste Mal mit der Rechenvorrichtung 14 verbunden
wird. Der Synchronisations-Manager 748 bestimmt auch, indem
diese Bestimmung vorgenommen wird, ob Objekte zu den Objekt-Speichern
hinzugefügt
worden oder davon gelöscht
worden sind, so dass geeignete Hinzufügungen und Löschungen
vorgenommen werden können.
-
Die
Handles, gespeichert in dem Referenz-Speicher 750, können entsprechend
den nachfolgenden Kriterien formatiert werden, so dass die Synchronisations-Provider 752 und 754 die
spezifizierten Funktionen durchführen
können:
- (a) Jedes Handle kann Daten enthalten, die
eindeutig ein Objekt identifizieren – wie beispielsweise einen
Objekt-Identifizierer, eine ID-Nummer, einen vollständigen Pfadnamen
für ein
Datei-System-Objekt, usw.. Diese Daten können dauerhaft sein (dahingehend,
dass sie sich nicht für
ein bestimmtes Objekt ändern)
und sollten nicht erneut für
darauf folgend erzeugte Objekte verwendet werden. Diese Daten können verglichen
werden, um zu bestimmen, ob zwei Handles tatsächlich demselben Objekt entsprechen.
Dies kann, wie nachfolgend diskutiert ist, für Datei-System-Informationen
problematisch sein, da der Objekt-Identifizierer typischerweise
der Pfadname ist und einfach durch Umbenennen der Datei geändert werden
kann.
- (b) Es kann möglich
sein, eine bestimmte Objekt-Reihenfolge basierend auf dem Handle
abzuleiten.
- (c) Das Handle kann eine bestimmte Art von Zeitstempel-Informationen,
oder eine Version-Nummer, haben. Diese Informationen können verglichen
werden, um zu bestimmen, ob sich ein Objekt geändert hat, seitdem das letzte
Handle in dem Referenz-Speicher 750 aufgezeichnet
wurde.
-
Diese
Handles werden von den Providern 752 und 754 zu
dem Synchronisations-Manager 748, zum
Speichern in dem Referenz-Speicher 750, während eines
Aufzählungs-Vorgangs, der nachfolgend beschrieben
ist, bereitgestellt. Dieser Aufzählungs-Vorgang wird
dazu verwendet, Elemente zu erfassen, die synchronisiert werden
müssen,
wenn die mobile Vorrichtung 12 das nächste Mal mit der Rechenvorrichtung 14 verbunden
wird.
-
Die 8A und 8B zeigen
Flussdiagramme, die den Aufzählungs-Vorgang
darstellen, der periodisch durch die Synchronisations-Maschine 36 durchgeführt wird,
um die Liste der Handles, gespeichert in dem Referenz-Speicher 750,
für den Zweck
eines Bestimmens zu erhalten und zu aktualisieren, welche Elemente
unter der nächsten
Verbindung synchronisiert werden müssen. Nach einem Initialisierungsschritt,
angezeigt durch den Block 860, konstruiert der Synchronisations-Manager 748 zwei Listen
von Handles. Die erste Liste wird am Schritt 862 durch
Zugreifen auf die Handles, die zuvor in dem Referenz-Speicher 750 gespeichert
sind, die Objekten entsprechen, die zuvor synchronisiert wurden,
erhalten. Die zweite Liste von Handles wird am Schritt 864 durch
Abfragen jeder der Synchronisations-Provider 752–754 unter
Verwendung von Schnittstellen-Verfahren, bezeichnet mit IReplObjHandler::
FindFirstItem und FindNextItem, erhalten. Diese Schnittstellen zählen, wenn
sie erfolgreich aufgerufen sind, eine geordnete Liste von Handles
entsprechend jeweils zu einer zweiten Gruppe von Objekten auf und
speichern diese Objekte gleichzeitig in den Objekt-Speichern 32 und 34 entsprechend
zu den Providern 752 und 754, die die Objekte
aufgezählt
haben.
-
Der
Synchronisations-Manager 748 erfasst automatisch, durch
Vergleichen der Liste der Handles, die durch die momentane Aufzählung zurückgeführt ist,
mit der gesicherten Liste der Handles aus dem Referenz-Speicher 750 geladen
ist, Änderungen
und Löschungen.
Zum Beispiel versucht zu jedem Zeitpunkt, zu dem ein neues Objekt
während
einer Aufzählung
zurückgeführt wird,
der Synchronisations-Manager 748, ein Objekt in seiner
zuvor gesicherten Liste von Objekten zu finden, die dasselbe Objekt
darstellt. Wenn kein passendes Handle gefunden ist, bestimmt der
Synchronisations-Manager 748, dass ein neues Objekt erzeugt
und in dem Objekt-Speicher gesichert worden ist, der das Objekt, das
betrachtet wird, aufzählte.
Um zu bestimmen, ob passende Handles gefunden sind, wie dies durch
den Block 866 angezeigt ist, ruft der Synchronisations-Manager 748 auch
das Schnittstellen-Verfahren IReplStore:: CompareItem auf.
-
Basierend
auf einer Berechnung der Handles erzeugt der Synchronisations- Manager 748 irgendwelche
notwendigen Handle-zu-Objekt-Auflistungen in dem Referenz-Speicher 750,
so dass Objekte in den Objekt-Speichern an der Rechenvorrichtung 14 zu entsprechenden
Fällen
desselben Objekts an der Vorrichtung 12 aufgelistet werden
können. Dies
ist durch den Block 868 angezeigt.
-
Der
Synchronisations-Manager 748 bestimmt auch, ob irgendwelche
Objekte in dem bestimmten Objekt-Speicher, von dem sie aufgezählt wurden,
hinzugefügt,
gelöscht
oder modifiziert worden sind. Dies wird durch die Blöcke 870 angezeigt. Zum
Beispiel zeigt, wenn die Liste der Objekte, die zuvor synchronisiert
wurden, ein Handle enthält,
das nicht in der neu erzeugten Liste, basierend auf einer momentanen
Aufzählung
der Synchronisations-Provider 752–754, gefunden ist,
an, dass das Objekt aus dem entsprechenden Datenspeicher 32, 34 gelöscht worden
ist. Demzufolge bestimmt der Synchronisations-Manager 748,
dass das Objekt von der mobilen Vorrichtung 12 während des
nächsten
Synchronisations-Vorgangs gelöscht
werden muss.
-
Ähnlich bestimmt,
wenn die Aufzählung
von Objekten ein Objekt-Handle erzeugt, das nicht in der Liste der
Objekte, die zuvor synchronisiert ist, auftritt, dann der Synchronisations-Manager 748,
dass ein Objekt entsprechend zu diesem bestimmten Handle zu dem
Objekt-Speicher hinzugefügt
worden ist, der das Objekt aufzählte.
Demzufolge muss, während des
nächsten
Synchronisations-Vorgangs, das Objekt zu der mobilen Vorrichtung 12 hinzugefügt werden.
-
Der
Synchronisations-Manager 748 ruft auch das Schnittstellen-Verfahren
IReplStore:: IsItemChanged mit passenden Handles von der ersten
und der zweiten Liste auf. Ein Aufrufen dieser Schnittstelle bewirkt,
dass der geeignete Provider 752 oder 754 (welcher
auch immer das passende Handle aufzählte) bestimmt, ob sich das
Objekt geändert
hat, seitdem das Handle zuletzt in dem Referenz-Speicher 750 geschrieben
wurde. In einer erläuternden
Ausführungsform
prüft der
Provider die Zeitstempel-Informationen oder die Version-Nummer-Informationen,
die zu dem Objekt-Handle zugeordnet sind. Wenn diese Informationen
nicht identisch sind, zeigt dies an, dass dort eine Änderung
in Bezug auf das Objekt vorhanden gewesen ist. Demzufolge muss, während des
nächsten
Synchronisations-Vorgangs, der Synchronisations-Manager 748 das
entsprechende Objekt an der mobilen Vorrichtung 12 aktualisieren
(unter der Annahme, dass dort kein Konflikt vorhanden ist, wie dies
nachfolgend diskutiert ist).
-
Der
Synchronisations-Manager 740 an der mobilen Vorrichtung 12 arbeitet
auch mit den Synchronisations-Providern 744 und 746 zusammen,
um zu bestimmen, ob irgendwelche Objekte in den Objekt-Speichern 20 und 22 seit
dem letzten Synchronisations- Vorgang
hinzugefügt,
gelöscht
oder geändert worden
sind. An der mobilen Vorrichtung 14 versendet das Betriebssystem
eine Nachricht zu dem Synchronisations-Manager 740 zu jedem
Zeitpunkt, zu dem sich ein Objekt an der mobilen Vorrichtung 12, das
synchronisiert werden soll, ändert,
hinzugefügt ist
oder gelöscht
ist. Der Synchronisations-Manager 740 zählt jedes Objekt auf und ruft
Verfahren in der IReplNotify Schnittstelle jedes Providers 744 und 746 auf.
Basierend auf diesem Aufruf bestimmt der Provider, ob das bestimmte
Objekt, das aufgezählt
ist, synchronisiert werden soll, und zeigt dem Synchronisations-Manager 740 an,
wie viele Objekte synchronisiert werden sollen (zum Beispiel enthält ein Datei-System-Objekt,
wie beispielsweise ein Directory, tatsächlich mehr als ein Objekt,
das synchronisiert werden soll).
-
Basierend
auf den Hinweisen, die von dem Betriebssystem verschickt sind, hält der Synchronisations-Manager 740 eine
Liste, oder ein Feld, von Objekten bei, die sich seit dem letzten
Synchronisations-Vorgang geändert
haben, gelöscht
wurden, oder hinzugefügt
wurden. Unter einer Verbindung mit der Rechenvorrichtung 14 wird
diese Liste zu dem Synchronisations-Manager 748 zugeführt. Folglich
enthält
der Synchronisations-Manager 748 die Listen, die für sowohl
den Desktop 14 als auch die mobile Vorrichtung 12 aufgebaut
worden sind, die Objekte anzeigen, die synchronisiert werden müssen. Dies
ist durch Block 872 in 8B angegeben.
-
Der
Synchronisations-Manager 748 bestimmt dann, wie am Block 874 angezeigt
ist, ob sich ein Objekt nur an der mobilen Vorrichtung 12,
nur an der Rechenvorrichtung 14 oder an sowohl der mobilen
Vorrichtung 12 als auch der Rechenvorrichtung 14 geändert hat.
Falls sich das Objekt nur an einem der Desktop-Objekt-Speicher geändert hat,
dann führt
der Synchronisations-Manager 748 die notwendige Aktivität aus, um
den entsprechenden Objekt-Speicher an der mobilen Vorrichtung zu
aktualisieren. Dies ist durch Block 876 angezeigt. Wenn sich
das Objekt nur an einem der Speicher der mobilen Vorrichtung geändert hat,
dann führt
der Synchronisations-Manager 748 die notwendigen Aktivitäten aus,
um den entsprechenden Objekt-Speicher an der Rechenvorrichtung 14 zu
aktualisieren. Dies ist durch Block 880 angezeigt.
-
Allerdings
entsteht dann, wenn sich dasselbe Objekt an sowohl der mobilen Vorrichtung 12 als auch
an der Rechenvorrichtung 14 geändert hat, dann eine Konflikt-Situation. In einer
erläuternden Ausführungsform
nimmt der Synchronisations-Manager 748 einen Aufruf zu
dem Register in dem Betriebssystem der Rechenvorrichtung 14 vor,
um Konflikt-Informationen zu erhalten, die den Synchronisations-Manager 748 anweisen,
wie in Fall eines Konflikts fortzufahren ist. Dies ist durch Block 878 angezeigt.
Zum Beispiel kann der Benutzer Präferenzen eingestellt haben,
die anzeigen, dass, in dem Fall eines Konflikts entweder die Desktop-Computer-Version
oder die Version der mobilen Vorrichtung eine Präzedenz zu jedem Zeitpunkt einnehmen
sollte. In ähnlicher
Weise kann der Benutzer eine Präferenz
eingestellt haben, die anzeigt, dass der Benutzer in dem Fall eines
Konflikts, zu informieren ist, so dass der Benutzer aktiv entscheiden
kann, welche Version einen Vorrang einnehmen wird. In diesem Fall
erzeugt der Synchronisations-Manager 748 eine Benutzer-Schnittstelle,
die dem Benutzer ermöglicht,
den Konflikt zu lösen.
Der Synchronisations-Manager 748 nimmt dann die notwendigen
Schritte vor, um den Konflikt zu lösen und den geeigneten Objekt-Speicher
zu aktualisieren. Dies fährt
fort, bis alle Objekte in den Listen der Objekte, die zu synchronisieren sind,
abgearbeitet worden sind. Dies ist durch Block 882 angezeigt.
-
Um
Objekte mit der mobilen Vorrichtung 12 auszutauschen, ruft
der Synchronisations-Manager 748 kontinuierlich das Verfahren
IReplObjHandler:GEtPacket auf, um einen geeigneten Provider 752 oder 754 zu
haben, um ein Paket an Informationen zu erhalten, das zu der mobilen
Vorrichtung 12 übertragen
werden soll. Um ein Paket, empfangen von der mobilen Vorrichtung 12,
zu handhaben, ruft der Synchronisations-Manager 748 IReplObjHandler::SetPacket
auf. Dies wirkt dahingehend, ein Paket an Informationen, empfangen
von der mobilen Vorrichtung 12, zu einem Synchronisations-Provider 754 zum
Speichern auf seinem zugeordneten Objekt-Speicher zuzuführen. Ähnliche
Schnittstellen werden durch den Synchronisations-Manager 740 an der
mobilen Vorrichtung 12 aufgerufen.
-
Antworten auf trunkierte, elektronische
Mail-Nachrichten
-
Um
eine elektronische Mail-Nachricht zu bearbeiten, kann das System,
das in 1 dargestellt ist (und in größerem Detail unter Bezugnahme
auf die 6–8B beschrieben
ist), eine Anzahl von Merkmalen durchführen, um die relativ begrenzte und
teure Bandbreite, die drahtlosen Übertragungen zugeordnet ist,
anzupassen. Zum Beispiel sendet, in einer Ausführungsform, die Rechenvorrichtung 14 elektronische
Mail-Nachrichten mit nur einer vorgegebenen Länge zu der mobilen Vorrichtung 12.
In einer solchen Ausführungsform
kann ein Benutzer optional eine vorgegebene Anzahl von Zeilen eines
Textes in dem Hauptnachrichten-Körper
auswählen,
die der Benutzer zu empfangen wünscht.
Dies wird der Rechenvorrichtung 14 angezeigt. Danach trunkiert, wenn
die Rechenvorrichtung 14 eine elektronische Mail-Nachricht
empfängt,
die zu der mobilen Vorrichtung 12 gesendet werden soll
(über das
Synchronisations-Protokoll oder in sonstiger Weise), die Rechenvorrichtung 14 den
Nachrichten-Körper
auf die vorbestimmte Anzahl von Zeilen und sendet die trunkierte, elektronische
Mail-Nachricht zu der mobilen Vorrichtung 12. Wenn der
Benutzer die trunkierte, elektronische Mail-Nachricht durchsieht,
kann der Benutzer die Nachricht für ein vollständiges Herunterladen auswählen, wobei
die Rechenvorrichtung 14 in einem solchen Fall den gesamten
Nachrichten-Körper zu
der mobilen Vorrichtung 12 herunterlädt, so dass der Benutzer die
gesamte Nachricht auch durchsehen kann.
-
In
der Vergangenheit konnte der Benutzer, um eine trunkierte, elektronische
Mail-Nachricht weiterzuführen oder
zu beantworten, einfach die Weiterleitungs- oder Antwort-Kommentare, wie dies
herkömmlich
ist, eingeben und die Nachricht senden. In diesem Fall wurde die
trunkierte Nachricht zu der Rechenvorrichtung (wieder über das
Synchronisations-Protokoll oder in sonstiger Weise) gesendet und wurde
zu den Empfängern,
angezeigt durch den Benutzer in der Antwort- oder weitergeleiteten
Nachricht, weitergeleitet. Wenn der Benutzer wünscht, die gesamte Nachricht
weiterzuleiten, dann wurde zuerst von dem Benutzer gefordert, die
gesamte Nachricht für
ein vollständiges
Herunterladen zu markieren und den gesamten Textkörper auf
die mobile Vorrichtung von der Vorrichtung 14 herunterzuladen.
Der Benutzer konnte dann die gesamte Mail-Nachricht beantworten
oder weiterführen,
zusammen mit den Antwort- oder Weiterleitungs-Kommentaren. Die Antwort oder die Weiterleitung
würde dann
zurück
zu der Rechenvorrichtung 14 und weiter zu den eventuellen Empfängern gesendet
werden.
-
Dasselbe,
allgemeine Gerüst
bzw. Framework existiert auch für
Anhänge.
Mit anderen Worten konnte der Benutzer angeben, ob Anhänge zu der mobilen
Vorrichtung 12 in dem ersten Fall gesendet werden sollen.
Falls nicht, dann wurde, um die Nachricht zusammen mit Anhängen weiterzuleiten,
oder auf die Nachricht, die die Anhänge in der Antwort umfasst,
zu antworten, von dem Benutzer zuerst gefordert, die Anhänge für ein Herunterladen
zu der mobilen Vorrichtung zu markieren und dann auf die vollständig heruntergeladene
elektronische Mail-Nachricht (einschließlich der Anhänge) zu
antworten.
-
Diese
Technik verwendet, wie gesehen werden kann, einen unerwünschten
Umfang einer Bandbreite. Dabei sind viele Fälle vorhanden, in denen es der
Benutzer wünscht,
die vollständige,
elektronische Mail-Nachricht, einschließlich der Anhänge, zu
einem Empfänger
weiterzuführen,
oder der Benutzer kann wünschen,
die Nachricht zu beantworten, einschließlich der vollen, ursprünglichen,
elektronischen Mail-Nachricht (der gesamte, textmäßige Körper und die
Anhänge).
Allerdings muss in solchen Fällen
der Benutzer nicht die vollständige,
ursprüngliche,
elektronische Mail-Nachricht vor einem Antworten davon oder einem
Weiterführen
davon durchsehen. Deshalb verwendet, indem von dem Benutzer gefordert wird,
die gesamte, elektronische Mail-Nachricht (Textkörper und/oder Anhänge) zu
der mobilen Vorrichtung 12 herunterzuladen, wenn sie nicht
benötigt wird,
und dann von der mobilen Vorrichtung 12 gefordert wird,
die gesamte, elektronische Mail-Nachricht zurück zu der Rechenvorrichtung 14 zu
senden (bevor sie zu den korrekten Empfängern gesendet wird), dies
eine nicht erwünschte
große
Menge einer drahtlosen Bandbreite, und erfordert auch unnötige Schritte
auf der Seite des Benutzers.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung kann der Benutzer der mobilen Vorrichtung 12 Antworten
auf trunkierte, elektronische Mail-Nachrichten senden und kann dennoch den
gesamten Körper
der ursprünglichen
Nachricht senden, ohne sie lokal auf die mobile Vorrichtung 12 herunterzuladen
und sie dann wieder in ihrer Gesamtheit zurück zu der Vorrichtung 14 zu
senden. Dieselbe Technik wird gemäß einer anderen Ausführungsform
der vorliegenden Erfindung mit Anhängen verwendet, die an die
ursprüngliche,
elektronische Mail-Nachricht angehängt wurden.
-
9 zeigt
ein Flussdiagramm, das eine Ausführungsform
darstellt, entsprechend der die vorliegende Erfindung arbeitet. 10 zeigt
ein Blockdiagramm, das eine mobile Vorrichtung 12, verbunden mit
einem (wie beispielsweise durch eine drahtlose Verbindung – z. B.
eine zellulare Verbindung) Synchronisations-Server 901,
der die Komponenten, die in der Rechenvorrichtung 14, zum
Beispiel, dargestellt sind, umfassen kann. Der Synchronisations-Server 901 ist
mit einem elektronischen Mail-Server 903 verbunden dargestellt,
der Komponenten umfasst, die erforderlich sind, um elektronische
Mail-Nachrichten
zu senden und zu empfangen.
-
Es
wird zunächst
angenommen, dass der Benutzer eine trunkierte, elektronische Mail-Nachricht
an der mobilen Vorrichtung 12 empfangen hat. Mit trunkierter,
elektronischer Mail-Nachricht ist gemeint, dass die ursprüngliche,
elektronische Mail-Nachricht
an der mobilen Vorrichtung 12 entweder mit einem trunkierten
Nachrichten-Körper oder mit
Anhängen,
die trunkiert worden sind, oder mit Anhängen, oder einer Kombination
von diesen, empfangen ist.
-
Um
die ursprüngliche,
trunkierte, elektronische Mail-Nachricht weiterzuleiten, oder auf
diese zu antworten, wo allerdings die Antwort- oder Weiterleitungs-Nachricht
einen Teil oder die gesamte ursprüngliche Nachricht in einer
nicht trunkierten Form enthält
(wie beispielsweise mit Anhängen
oder mit einem vollständigen
Nachrichten-Körper
oder mit beiden), wählt
der Benutzer zuerst einen Smart-Antwort-Modus aus. Dies ist durch
Block 900 in 9 angezeigt. Dies kann in irgendeiner
Vielzahl von Arten und Weisen vorgenommen werden. zum Beispiel kann,
wenn auf eine trunkierte, elektronische Mail-Nachricht an der mobilen Vorrichtung 12 geantwortet
wird, oder dies weitergeleitet wird, die Benutzer-Schnittstelle,
erzeugt an der mobilen Vorrichtung 12, einen einfachen
Prüfkasten
umfassen, den der Benutzer prüfen
kann, um in einem Smart-Antwort-Modus zu arbeiten. Irgendeine einer
breiten Vielfalt von anderen, bekannten Arten und Weisen kann verwendet
werden, um die Smart-Antwort-Merkmale ebenso auszuführen. Auch
kann der Smart-Antwort-Modus
automatisch auftreten, ohne dass eine Benutzer-Eingabe erforderlich
ist.
-
Wenn
der Benutzer ausgewählt
hat, in dem Smart-Antwort-Modus zu arbeiten, wählt der Benutzer die trunkierte
Nachricht zur Weiterleitung oder zur Beantwortung aus. Dies ist
durch Block 902 angezeigt. Als nächstes leitet der Benutzer
die ursprüngliche,
trunkierte Nachricht weiter oder beantwortet diese, wie dies durch
Block 904 angezeigt ist. Dies wird illustrativ in einer
bekannten Art und Weise vorgenommen, wie beispielsweise durch einfaches
Eingeben der Antwort-Nachricht oder Weiterleitung von Kommentaren,
und dann Auswählen
einer Sende-Option an der Benutzer-Schnittstelle, um die weitergeleitete,
elektronische Nachricht zu senden oder zu beantworten.
-
Wenn
die mobile Vorrichtung 12 die Nachricht an den Synchronisations-Server 901 (über eine Synchronisation,
oder in anderer Weise) sendet, schließt sie in deren Header eine
Identität
der ursprünglichen,
elektronischen Mail-Nachricht, gespeichert auf dem elektronischen
Mail-Server 903 (oder die in einem PIM-Objekt-Speicher 32 auf
der Rechenvorrichtung 14 in der Ausführungsform, die in 1 dargestellt
ist, gespeichert ist), ein. Sie schließt auch in die Header-Informationen
eine Anzeige ein, dass der Benutzer ausgewählt hat, in einem Smart-Antwort-Modus
zu arbeiten. Dies ist durch Block 906 in 9 angezeigt.
-
Der
Server 901 ruft, indem er diese Anzeigen empfangen hat,
die ursprüngliche,
elektronische Mail-Nachricht, identifiziert durch die Nachrichten-ID in
den Header-Informationen,
von einem Datenspeicher an dem elektronischen Mail-Server 903 ab
(oder die Rechenvorrichtung 14 greift auf den PIM-Objekt-Speicher 32 zu,
um die ursprüngliche,
elektronische Mail-Nachricht aufzusuchen). Der Synchronisations-Server 901 erzeugt
dann eine Abschluss-Nachricht basierend auf der Nachricht, die von
der mobilen Vorrichtung 12 empfangen ist, und die gesamte,
ursprüngliche
elektronische Mail-Nachricht (mit oder ohne Anhänge, wie sie durch den Benutzer
ausgewählt
sind), und sendet die vollständige
Nachricht an den elektronischen Mail-Server 903 des geeigneten Empfängers. Dies
ist durch Block 908 in 9 angezeigt.
-
Das
Erzeugen der vollständigen
Nachricht kann in einer Anzahl von Arten und Weisen vorgenommen
werden. Zum Beispiel nimmt, in einer erläuternden Ausführungsform,
der Server 901 die elektronische Antwort-Mail-Nachricht
oder die weitergeleitete elektronische Mail-Nachricht von der mobilen Vorrichtung 12 und
hängt an
diese Nachricht die ursprüngliche,
elektronische Mail-Nachricht, und Anhänge, die aus dem elektronischen
Mail-Server 903 (oder dem PIM-Objekt-Speicher 32)
ausgelesen worden sind, an. Deshalb kann der eventuelle Empfänger der
Antwort oder der weitergeleiteten Nachricht die gesamte, ursprüngliche
Nachricht ebenso durchsehen.
-
In
einer anderen Ausführungsform
erzeugt der Server 901 ein neues, elektronisches Mail-Objekt basierend
auf der Antwort- oder weitergeleiteten Nachricht, die von der mobilen
Vorrichtung 12 empfangen ist, und auch basierend auf der
ausgelesenen, ursprünglichen,
elektronischen Mail-Nachricht, die aus dem Server 903 (oder
dem PIM-Objekt-Speicher 32) ausgelesen wurde. Das neue,
elektronische Mail-Objekt enthält
nicht nur die Kommentare oder die Antwort, die durch den Benutzer
der mobilen Vorrichtung 12 eingegeben sind, sondern auch
die gesamte, ursprüngliche
Mail-Nachricht.
-
In
einer noch anderen Ausführungsform kann
der Server 901 einfach das elektronische Mail-Nachrichten-Objekt,
das er von der mobilen Vorrichtung 12 empfangen hat, durch
Ersetzen der trunkierten Text-Nachricht gegen die gesamte Text-Nachricht,
die in der ursprünglichen,
elektronischen Mail-Nachricht, ausgelesen aus dem PIM-Objekt-Speicher 32,
gefunden ist, modifizieren. Natürlich
kann die Rechenvorrichtung 14 auch die ursprünglichen
Anhänge,
vor einem Senden des elektronischen Mail-Nachrichten-Objekts weiter
an den letztendlichen Empfänger,
anhängen.
-
Natürlich können andere
Ausführungsformen
ebenso verwendet werden. Zum Beispiel kann der Server 901 einfach
den textmäßigen Körper der ursprünglichen
Nachricht, ausgelesen aus dem Server 903, als einen Anhang
an die Nachricht, die von der mobilen Vorrichtung 12 empfangen
ist, anhängen.
-
Es
sollte auch angemerkt werden, dass die vorliegende Erfindung bei
entweder Antworten auf trunkierte Nachrichten, einem Weiterleiten
von trunkierten Nachrichten, oder beiden, so, wie dies erwünscht ist,
angewandt werden kann. Dies kann über eine geeignete Benutzer-Schnittstelle
auswählbar sein
oder es kann automatisch eingestellt werden, wenn die Vorrichtung
hergestellt wird.
-
Es
sollte auch angemerkt werden, dass es manchmal akzeptabel sein kann,
einen Teil eines Nachrichten-Körpers
in einfachen Umlauf-Antworten zwischen Empfängern von elektronischen Mails
zu verlieren. Allerdings kann es wichtig sein, den gesamten, elektronischen
Mail-Nachrichten-Körper
in Antwort-Threads beizubehalten, zu denen neue Empfänger, von
Zeit zu Zeit, hinzugefügt
sind, um eine elektronische Mail-Konversation weiterzuführen. Die
vorliegende Erfindung ermöglicht
dem Benutzer, Kommentare zusammen mit der Text-Version der ursprünglichen
Mail zu senden, ohne dass von dem Benutzer gefordert wird, die gesamte
Nachricht zu der mobilen Vorrichtung 12 herunterzuladen,
und sie dann erneut zu der Rechenvorrichtung 14 zu senden.
-
Andere,
betriebsmäßige Merkmale
können ebenso
verwendet werden. Zum Beispiel kann, wenn der Benutzer irgendeinen
Bereich der trunkierten Nachricht editiert bzw. bearbeitet, dann
der Server optional die Antwort- oder weitergeleitete Nachricht senden,
die den editierten, trunkierten Bereich umfasst, ohne die ursprüngliche
Nachricht anzuhängen. Dies
ist natürlich
optional.
-
Obwohl
die vorliegende Erfindung unter Bezugnahme auf bevorzugte Ausführungsformen
beschrieben worden ist, werden Fachleute auf dem betreffenden Fachgebiet
erkennen, dass Änderungen in
der Form und Details vorgenommen werden können, ohne den Schutzumfang
der Erfindung, wie in den beigefügten
Ansprüchen
definiert, zu verlassen.