DE69928277T2 - Verfahren und vorrichtung zur ausführung von fehlerkorrektur durch kombination von zwei instanzen einer nachricht - Google Patents

Verfahren und vorrichtung zur ausführung von fehlerkorrektur durch kombination von zwei instanzen einer nachricht Download PDF

Info

Publication number
DE69928277T2
DE69928277T2 DE69928277T DE69928277T DE69928277T2 DE 69928277 T2 DE69928277 T2 DE 69928277T2 DE 69928277 T DE69928277 T DE 69928277T DE 69928277 T DE69928277 T DE 69928277T DE 69928277 T2 DE69928277 T2 DE 69928277T2
Authority
DE
Germany
Prior art keywords
instance
message
instances
error
mobile device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69928277T
Other languages
English (en)
Other versions
DE69928277D1 (de
Inventor
Don Kadyk
Vinay Deo
J. Michael O'LEARY
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE69928277D1 publication Critical patent/DE69928277D1/de
Application granted granted Critical
Publication of DE69928277T2 publication Critical patent/DE69928277T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system

Description

  • Die vorliegende Erfindung bezieht sich auf persönliche mobile berechnende Geräte, allgemein bekannt als mobile Geräte. Genauer gesagt, bezieht sich die vorliegende Erfindung auf ein System und Verfahren zum Übermitteln zu, Empfangen und Berichtigen von Informationen auf mobilen Geräten.
  • Mobile Geräte sind kleine elektronische berechnende Geräte bezeichnet als Personal Digital Assistants. Viele solcher mobilen Geräte sind Funkrufempfänger (Pager), tragbare Geräte, oder handflächengroße Geräte, welche komfortabel in die Hand passen. Ein kommerziell verfügbares Gerät wird unter dem Markennamen HANDHELD PC verkauft (oder H/PC), ein anderes wird unter dem Markennamen PALM PC (oder P/PC) verkauft, die beide Software besitzen, die von Microsoft Corporation aus Redmond, Washington zur Verfügung gestellt wird.
  • Im Allgemeinen schließt das mobile Gerät einen Prozessor, Random Access Memory (RAM), und ein Eingabegerät wie z. B. eine Tastatur, Touchpad oder Eingabeknöpfe und ein Display mit ein. Die Tastatur kann in das Display integriert sein, wie z. B., wenn die Tastatur als berührungsempfindliches Display eingebaut ist. Eine Kommunikationsschnittstelle ist optional vorgesehen und wird allgemein verwendet, um mit dem Desktop-Computer zu kommunizieren. Eine austauschbare oder wiederaufladbare Batterie versorgt das mobile Gerät. Optional kann das mobile Gerät Energie von einer externen Energiequelle bekommen, die die eingebaute Batterie außer Kraft setzt oder wiederauflädt.
  • In manchen älteren Anwendungen wird das mobile Gerät in Verbindung mit einem Desktop Computer verwendet. Zum Beispiel kann der Benutzer des mobilen Gerätes auch Zugriff zu einem Desktop Computer haben und verwendet diesen in der Arbeit oder zuhause oder beides. Wenn das mobile Gerät ein H/PC-Markengerät oder anderes ähnliches Gerät ist, verwendet der Benutzer üblicherweise dieselben Arten von Anwendungen auf beiden Geräten, dem Desktop Computer und dem mobilen Gerät. Deshalb ist es recht vorteilhaft für solche mobilen Geräte, darauf ausgelegt zu sein, mit dem Desktop Computer verbunden zu werden, um Informationen auszutauschen und Informationen mit dem Desktop Computer zu teilen.
  • Eine andere Technik, um dem mobilen Gerät Informationen zur Verfügung zu stellen, ist durch eine kabellose Übertragungsverbindung. Solche Informationen können Email oder Nachrichten, Wetter-, Sport-, Verkehrs- und lokale Ereignisinformationen einschließen. Solche Informationen können von einem Desktop Computer, der mit dem Internet verbunden ist, bezogen werden, und über eine Kabelverbindung geliefert werden. Jedoch kann es wünschenswert sein, solche Informationen auch über eine kabellose Verbindung zu überbringen. Ein kabelloser Empfänger in dem mobilen Gerät kann so funktionieren, dass Informationen empfangen werden, wenn sie zu dem mobilen Gerät geschickt werden.
  • In dem Fall, dass das mobile Gerät ein Funkrufempfänger ist, hat jeder Funkrufempfänger in einem gegebenen System eine oder mehrere Adressen. Wenn eine Nachricht über einen kabellosen Kanal übermittelt wird, ist sie für eine Adresse bestimmt. Alle Funkrufempfänger, die diesem kabellosen Kanal zugeordnet sind, empfangen die Nachricht und überprüfen die Adresse, die in der Nachricht enthalten ist, gegen ihre eigene Adresse. Dieser Adressabgleichsalgorithmus kann entweder in Hardware oder in Software, oder in einer Kombination von Hardware und Software implementiert werden. Wenn die Adresse, verbunden mit der eingehenden Nachricht, nicht mit irgendeiner der Adressen des Funkrufempfängers übereinstimmt, wird die Nachricht verworfen. Wenn die Adresse jedoch mit einer der Adressen des Funkrufempfängers übereinstimmt, kann die Nachricht akzeptiert werden und zu Software oder Hardware in einem höheren Level des Protocol Stack auf dem Funkrufempfänger zur geeigneten Verarbeitung weitergeleitet werden.
  • Wenn das mobile Gerät ein Funkrufempfänger ist, oder wenn es einen Funkrufempfänger beinhaltet, birgt es eine Anzahl von Nachteilen. Zum Beispiel sind Funkrufnetzwerke herkömmlicherweise Einwegnetzwerke, in denen eine Nachricht zu einem oder mehreren Funkrufempfängern in einer Open-Loop-Umgebung übermittelt oder gesendet wird. In diesem Fall ist es schwierig, wenn nicht unmöglich, zu ermitteln, ob das Zielgerät (oder die Zielgruppe von Geräten) die Nachricht empfangen hat. Es ist auch schwierig, wenn nicht unmöglich, zu ermitteln, ob das Zielgerät eine fehlerfreie Nachricht erhalten hat.
  • Einweg-Funkrufnetzwerke sind geneigt, Fehler zu erzeugen, die dazu führen, dass manche der Nachrichten fehlerhaft sind. In machen Fällen hat die Funkrufindustrie dies als akzeptabel erachtet, weil der Benutzer manchmal den richtigen Nachrichteninhalt ermitteln kann, selbst wenn die Nachricht Fehler enthält, einfach aus dem Kontext der Nachricht heraus. In einigen Fällen jedoch ist dies höchst unerwünscht. Zum Beispiel, wenn die Nachricht eine Telefonnummer enthält oder wichtige Aktienpreisinformationen, so können diese Informationen in einem Fehler verloren gehen. Dies wird unakzeptabel für den Benutzer.
  • Viele Jahre hat die Funkrufindustrie daran gearbeitet, dieses Problem zu lösen. Die Industrie hat schrittweise Verbesserungen an dem Over-the-air-Funkrufprotokoll gemacht, welches zum Übermitteln der Nachrichten verwendet wird. Das Motorola-FLEX-Funkrufsystem und das POCSAG-Funkrufsystem haben eine verbesserte Datentransferqualität, aber immer noch begleitet von Fehlern in den Nachrichten.
  • Ein weiteres Verfahren, welches in dem Bestreben implementiert wurde, sicherzustellen, dass eine Nachricht zu ihrem Ziel fehlerfrei übermittelt wurde, ist das zweifache Senden der Nachricht. Tatsächlich sind manche Funkrufumgebungen so fehleranfällig, dass als eine Standardbetriebstechnik jede Nachricht zweimal auf dem Funkrufsystem versendet wurde. Herkömmliche Funkrufempfänger haben die Möglichkeit, die Tatsache zu verstecken, dass eine Nachricht zweimal gesendet wurde, solange der Text der zwei Nachrichten exakt derselbe ist. Wenn beide Instanzen der Nachricht fehlerfrei empfangen wurden, wird deshalb eine Instanz der Nachricht einfach verworfen oder versteckt, und der Benutzer sieht nur eine fehlerfreie Instanz der Nachricht. Wenn jedoch eine oder beide der Instanzen Fehler haben, werden beide dem Benutzer angezeigt, um dem Benutzer zu erlauben, in seiner oder ihrer Vorstellung Teile von beiden Instanzen der Nachricht zusammenzufügen, um den Inhalt der korrekten, fehlerfreien Nachricht zu ermitteln.
  • Dies kann auch ein höchst unerwünschtes Verfahren sein. Solch ein Verfahren ist unbequem und mühsam, indem es mehr Arbeit auf Seiten des Benutzers erfordert, um den korrekten Inhalt der Nachricht zu ermitteln. Des Weiteren sind manche Nachrichten nicht notwendigerweise vom durchschnittlichen Benutzer lesbar und erfordern eine gewisse Menge von Datenbearbeitung, bevor die Daten dem Benutzer angezeigt werden. In dem Fall, einfach zwei Instanzen derselben Nachricht zu senden, wobei beide Instanzen Fehler enthalten, beseitigt nicht das Zuverlässigkeitsproblem des Einweg-Funkrufs.
  • Die US-A-4 759 022 offenbart ein Verfahren und einen Empfänger zum Empfangen von Nachrichten, die über Funk in Form von codierten Zeichen gesendet wurden. In diesem Zusammenhang nennt US-A-4 759 022 das Organisieren der Nachrichten in Blöcken und Codieren wie zitiert in dem POCSAG-Bericht. Zusätzlich beschreibt dieses Dokument, dass es Kontrollbits in jedem Bit gibt, wobei es mit acht von diesen möglich ist, zu ermitteln, ob der empfangene oder temporär gespeicherte Block fehlerfrei ist oder fehlerbehaftet. Wenn die Nachricht zum zweiten Mal empfangen wird, wird noch einmal für jeden der Blöcke ermittelt, ob er fehlerfrei oder fehlerbehaftet ist. Eine endgültige Version der Nachricht wird zusammengesetzt aus einem Block von jedem Blockpaar, welcher fehlerfrei ist. Wenn keiner der Blöcke in einem Paar fehlerfrei ist, wird dies für den Block ausgeführt, der am wenigsten Fehler enthält. Des Weiteren können zusätzliche Kontrollbits alternativ verwendet werden zum Korrigieren von Fehlern in den empfangenen Blöcken. In dem Fall, wo die Nachricht schon das erste Mal als sie gesendet wurde als fehlerfrei festgestellt ist, wird sie sofort als die endgültige Version der Nachricht benannt und wird gespeichert. Ein Signal wird als Zeichen gesendet, dass eine neue Nachricht zum Lesen zur Verfügung steht.
  • Die US-A-5 463 646 bezieht sich auf ein Verfahren für eine Fehlerkorrektur eines übermittelten Datenworts und speziell zur Fehlerkorrektur von unterakustischen Datenwörtern, die über einen Sprachkanal übermittelt worden sind. In Übereinstimmung mit dem beschriebenen Verfahren werden Datenwörter bis zu dreimal übermittelt, solange keine Empfangsbestätigung von dem Übermittler empfangen worden ist. Wenn irgendeine von den drei möglichen Wiederholungen der empfangenen Datenwörter decodierbar sind, wird eine Eingangsbestätigung übermittelt. Wenn keins der Datenwörter decodiert werden konnte, weil sie z. B. nicht-korrigierbare Fehler enthalten, wird ein bitweiser Mehrheitsbeschluss auf den Datenwörtern durchgeführt.
  • Die US-A-S 721 743 beschreibt ein Verfahren und System zum Kommunizieren von Nachrichten in einer Umgebung, welche Fading beansprucht. In Übereinstimmung mit dem beschriebenen Verfahren und System werden zu übermittelnde Daten codiert und formatiert und eine Prüfsumme wird für die codierten und formatierten Daten ermittelt. In einer Variante des beschriebenen Verfahrens und Systems wird jede Nachricht mindestens zweimal übermittelt und eine endgültige Version der Nachricht wird Codeword für Codeword zusammengesetzt durch Vergleichen der entsprechenden Codewords in der entsprechenden Übermittlung und Auswählen der besseren Version. Wenn die endgültige Version zusammengesetzt ist, wird die Prüfsumme berechnet und verglichen, um das Ende der Nachricht zu ermitteln.
  • Es ist deshalb die Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und Gerät zum Empfangen einer Nachricht über eine kabellose Verbindung vorzulegen, welche des Weiteren die Identifikation von fehlerhaften Teilen von erster und zweiter Instanz einer empfangenen Nachricht verbessern.
  • Diese Aufgabe wird durch ein Verfahren entsprechend des unabhängigen Anspruchs 1 und auch durch ein Gerät entsprechend dem unabhängigen Anspruch 9 gelöst.
  • Erste und zweite Instanzen einer Nachricht werden über eine kabellose Verbindung empfangen. Es wird ermittelt, ob die erste und zweite Instanz der Nachricht einen Fehler enthält. Wenn beide Instanzen einen Fehler enthalten, wird eine fehlerfreie Instanz der Nachricht von den zwei fehlerbehafteten Instanzen durch das Vereinen von Teilen der ersten und zweiten Instanzen rekonstruiert.
  • 1 ist ein vereinfachtes Blockdiagramm, das eine Ausführungsform eines mobilen Gerätes in einem System entsprechend einem Aspekt der vorliegenden Erfindung veranschaulicht.
  • 2 ist ein detaillierteres Blockdiagramm einer Ausführungsform eines mobilen Gerätes wie in 1 gezeigt.
  • 3 ist eine vereinfachte bildhafte Darstellung einer Ausführungsform eines mobilen Gerätes wie in 2 gezeigt.
  • 4 ist eine vereinfachte bildhafte Darstellung einer anderen Ausführungsform eines mobilen Gerätes wie in 2 gezeigt.
  • 5 ist ein Blockdiagramm einer Ausführungsform eines Desktop Computers entsprechend eines Aspekts der vorliegenden Erfindung.
  • 6 ist ein detaillierteres Blockdiagramm eines Übertragungssystems, das ein mobiles Gerät entsprechend einem Aspekt der vorliegenden Erfindung einschließt.
  • 7 ist ein Datenstrukturdiagramm, das eine Nachricht darstellt, die mit einem Protokoll entsprechend einem Aspekt der vorliegenden Erfindung gepackt ist.
  • 8 ist ein Ablaufdiagramm, das die Funktion eines mobilen Gerätes zum Ermitteln, ob Instanzen einer Nachricht vereint werden sollen, entsprechend einer Ausführungsform der vorliegenden Erfindung, darstellt.
  • 9 ist ein Ablaufdiagramm, das die Funktion eines mobilen Gerätes zum Vereinen von Instanzen einer Nachricht entsprechend einer Ausführungsform der vorliegenden Erfindung darstellt.
  • 10A bis 10G sind Repräsentationen von Instanzen von Nachrichten, welche entsprechend dem Ablaufdiagramm, dargestellt in 9, vereint wurden.
  • 11 ist ein Ablaufdiagramm, das die Funktion eines mobilen Gerätes zum Vereinen von Instanzen entsprechend einer anderen Ausführungsform der vorliegenden Erfindung darstellt.
  • 1 stellt ein System 10 dar, in welchem die vorliegende Erfindung implementiert werden kann. System 10 schließt Inhaltsanbieter 12, kabellosen Träger 14, Desktop Computer 16 und mobiles Gerät 18 ein. Inhaltsanbieter 12 bietet irgendeinen passenden Typ von Daten von einer Datenbank oder anderen Datenquelle an. Zum Beispiel wird der Inhaltsanbieter 12 nachstehend besprochen als ein Anbieter von kabellosen Diensten o der anderen Typen von Diensten behandelt, welche von einem Benutzer des mobilen Gerätes 18 gewünscht werden. Beispiele solcher Dienste schließen Nachrichten, Wetter und Sportdienste, Aktienkursdienste, Verkehrsnachrichtendienste, etc. ein.
  • Kabelloser Träger 14 wird in größerem Detail später in der Anmeldung beschrieben. Jedoch kurz gesagt, ist der kabellose Träger 14 eingerichtet zum Empfangen von Dienstinhalt und Codierungsnachrichten (nachstehend Inhalt) vom Inhaltsanbieter 12 über eine Einwahl oder direkte Internetverbindung, oder eine Netzwerkverbindung. Der Weg, über welchen der kabellose Träger 14 Informationen vom Inhaltsanbieter 12 erhält, kann geschützte oder nichtgeschützte Mittel beinhalten. Zum Beispiel, in einer illustrativen Ausführungsform, abonniert der kabellose Träger 14 active Channels auf der Webseite eines Inhaltsanbieters unter Verwendung des INTERNET EXPLORER Markenprodukts, welches von Microsoft Corporation erhältlich ist. Die INTERNET EXPLORER Markenkomponente zieht Daten von der Webseite und speichert sie in einem Cache zur späteren Übertragung zum mobilen Gerät 18.
  • Kabelloser Träger 14 beinhaltet auch einen kabellosen Informationsserver (wireless Information server, WIS) 20. Server 20 teilt den Inhalt, welcher von Inhaltsanbieter 12 empfangen wurde, in Teile, welche kompatibel sind mit dem bestimmten Transporttyp, welcher vom kabellosen Träger 14 verwendet wird. Beispielsweise kann der Server 20 die Daten so teilen, dass maximale Paketgrößenbedingungen, Zeichensatzanforderungen, etc. für den verwendeten Kanaltyp oder Transporttyp erfüllt sind. Vor der Übertragung werden die Daten möglichst in eine unterschiedliche Form übersetzt. Wie später in der Anmeldung detaillierter beschrieben, können solche Umwandlungen verschiedene Formen von Verschlüsselung einschließen und können auch Kompression, Codierung, etc. einschließen. Sobald die Daten entsprechend geteilt worden sind, so dass sie die Transportbedingungen erfüllen, werden die Daten für die Übermittlung durch die Luft über ein kabelloses Netzwerk (wie z. B. über einen Funkrufkanal) konfiguriert, um direkt auf dem mobilen Gerät 18 empfangen zu werden. Die übertragenen Daten werden von einem kabellosen Empfänger und Treiberkomponente 22 auf dem mobilen Gerät 18 empfangen, wo die Daten für die Verwendung durch das mobile Gerät 18 präpariert werden.
  • Das mobile Gerät 18 kann auch ein Modem 24 einschließen. Daher kann der Diensteinhalt anstatt durch den kabellosen Träger 14 übermittelt zu werden, direkt vom Inhaltsanbieter 12 durch eine direkte Einwahl-Modemverbindung zum mobilen Gerät übertragen werden.
  • Desktop Computer 16 wird auch später in der Patentschrift detaillierter beschrieben. Jedoch, kurz gesagt, ist der Desktop Computer 16 vorzugsweise mit einem Standard-Webbrowser ausgestattet, wie z. B. der INTERNET EXPLORER 4.0 Markenkomponente, käuflich erhältlich von Microsoft Corporation aus Redmond, Washington. Wenn dies der Fall ist, können die Benutzer des Desktop Computers 16 vorzugsweise Channel in einer normalen Weise abbonieren, welche dem Benutzer bestimmten Channel-Inhalt zur Verfügung stellt, welcher offline oder online durchsucht werden kann. Desktop Computer 16 kann deshalb wiederholend neuen Inhalt zur weiteren Übermittlung an das mobile Gerät 18 abrufen oder empfangen.
  • Desktop Computer 16 schließt auch illustrativ die Synchronisierungskomponente 26 ein. Kurz gesagt ist die Synchronisierungskomponente 26 konfiguriert zum Interagieren mit einer optionalen, ähnlichen Synchronisierungskomponente 28 auf dem mobilen Gerät 18, so dass Dateien, welche Gegenstand einer Synchronisierung sind, vom Desktop Computer 16 zum mobilen Gerät 18 synchronisiert werden können oder umgekehrt. Sobald sie synchronisiert sind, enthalten beide Dateien (auf Computer 16 und mobilem Gerät 18) aktuelle Informationen.
  • Im Speziellen kann das mobile Gerät 18, in der bevorzugten Ausführungsform, entweder mit dem Desktop Computer 16 oder einem anderen mobilen Gerät 18, oder beidem, synchronisiert werden. In diesem Beispiel sind Eigenschaften von Objekten, die in einem Objektspeicher auf dem mobilen Gerät 18 gespeichert sind, ähnlich zu den Eigenschaften von anderen Instanzen desselben Objekts, das in einem Objektspeicher auf dem Desktop Computer 16 oder einem anderen mobilen Gerät 18 gespeichert sind. Deshalb wird, wenn ein Benutzer eine Instanz des Objektes gespeichert in dem Objektspeicher auf dem Desktop Computer 16 verändert, die zweite Instanz von diesem Objekt in dem Objektspeicher des mobilen Gerätes 18 aktualisiert, wenn das mobile Gerät das nächste Mal mit dem Desktop Computer 16 verbunden ist, so dass beide Instanzen von demselben Objekt aktuelle Daten enthalten. Dies wird als Synchronisierung bezeichnet.
  • Um Synchronisierung durchzuführen, laufen die Synchronisierungskomponenten 26 und 28 auf beiden, mobilem Gerät 18 und Desktop Computer 16 (oder einem anderen mobilen Gerät 18). Die Synchronisierungskomponenten kommunizieren miteinander durch genau definierte Schnittstellen, um Kommunikation und Synchronisierung zu steuern.
  • In einer illustrativen Ausführungsform kommuniziert das mobile Gerät 18 mit dem Desktop Computer 16 über ein physisches Kabel, wobei unter Verwendung eines seriellen Kommunikationsprotokolls kommuniziert wird. Andere Kommunikationsmechanismen werden auch durch die vorliegende Erfindung in Erwägung gezogen, so wie z. B. Infrarot (IR)-Kommunikation oder andere geeignete Kommunikationsmechanismen.
  • 2 ist ein detaillierteres Blockdiagramm des mobilen Gerätes 18. Das mobile Gerät 18 schließt illustrativ einen Mikroprozessor 30, Speicher 32, Input/Output (I/O)-Komponenten 34, Desktop-Kommunikationsschnittstelle 36, kabelloser Empfänger 37 und Antenne 39 ein. Diese Komponenten des mobilen Gerätes 18 können zur Kommunikation miteinander über einen geeigneten Bus 38 gekoppelt werden.
  • Der Speicher 32 ist vorzugsweise als permanenter elektronischer Speicher implementiert, so wie z. B. Random Access Memory (RAM) mit einem batteriebetriebenen Backup-Modul (nicht gezeigt), so dass Informationen, die in Speicher 32 gespeichert sind, nicht verloren gehen, wenn die allgemeine Energieversorgung des mobilen Gerätes 18 ausgeschaltet wird. Ein Teil des Speichers 32 ist illustrativ als adressierbarer Speicher zur Programmausführung reserviert, während ein anderer Teil des Speichers 32 optional zur Speicherung verwendet wird, wie z. B. zur Simulierung eines Speichers auf einem Disk-Laufwerk.
  • Speicher 32 kann ein Betriebssystem 40, ein Ausführungsprogramm 42 (wie z. B. eine persönliche Informationsverwaltung oder PIM, ein elektronisches Mailprogramm, etc.) einschließen, sowie einen Objektspeicher 44. Während des Betriebs wird das Betriebssystem 40 illustrativ durch den Prozessor 30 vom Speicher 32 ausgeführt. Das Betriebssystem 40 ist in einer Ausführungsform ein WINDOWS CE Markenbetriebssystem, käuf lich erwerbbar von Microsoft Corporation. Das Betriebssystem 40 wurde für mobile Geräte entwickelt und implementiert Datenbankeigenschaften, welche vom PIM 42 durch eine Reihe von exponierten Anwendungsprogrammschnittstellen und Verfahren benutzt wird. Die Objekte im Objektspeicher 44 werden illustrativ durch PIM 42 und Betriebssystem 40 gepflegt, zumindest teilweise in Erwiderung zu Aufrufen der exponierten Anwendungsprogrammschnittstellen und Verfahren.
  • I/O-Komponenten 34 werden in einer Ausführungsform zur Verfügung gestellt, um Eingabe- und Ausgabefunktionen von einem Benutzer des mobilen Gerätes 18 zu ermöglichen. I/O-Komponenten 34 werden detaillierter in Bezug auf 3 und 4 beschrieben. Desktop-Kommunikationsschnittstelle 36 wird optional zur Verfügung gestellt als irgendeine passende Kommunikationsschnittstelle. Schnittstelle 36 wird illustrativ zum Kommunizieren mit dem Desktop Computer 16, Inhaltsanbieter 12, und kabellosem Träger 14 verwendet, wie mit Bezug auf 1 beschrieben. Deshalb kann die Kommunikationsschnittstelle 36 Synchronisierungskomponente 28 zum Kommunizieren mit dem Desktop Computer 16 einschließen und Modem 24 zum Kommunizieren mit dem Inhaltsanbieter 12. Der kabellose Empfänger und Treiber 22 werden zum Kommunizieren mit dem kabellosen Träger 14 verwendet.
  • 3 ist eine vereinfachte bildhafte Darstellung einer bevorzugten Ausführungsform eines mobilen Gerätes 18, welches gemäß der vorliegenden Erfindung verwendet werden kann. Das mobile Gerät 18, wie in 3 dargestellt, kann ein Desktop-Assistent sein, der unter der Bezeichnung H/PC verkauft wird, und Software hat, die von Microsoft Corporation zur Verfügung gestellt wird. In einer Ausführungsform schließt das mobile Gerät 18 eine minimierte Tastatur 43, Display 45 und Stift 46 ein. In der in 3 gezeigten Ausführungsform ist das Display 45 ein Liquid Crystal Display (LCD), welches einen kontaktsensitiven Bildschirm in Verbindung mit dem Stift 46 verwendet. Der Stift 46 wird verwendet, um auf das Display 45 an bestimmten Koordinaten zu drücken oder zu berühren, um bestimmte Benutzereingabefunktionen zu ermöglichen. Die minimierte Tastatur 43 ist illustrativ als eine minimierte alphanumerische Tastatur implementiert, mit irgendwelchen passenden und gewünschten Funktionstasten, welche auch zur Ermöglichung bestimmter Benutzereingabefunktionen zur Verfügung gestellt werden.
  • 4 ist eine andere vereinfachte bildhafte Darstellung des mobilen Gerätes 18 gemäß einer anderen Ausführungsform der vorliegenden Erfindung. Das mobile Gerät 18, wie in 4 dargestellt, schließt manche Elemente, welche ähnlich zu denen sind, die mit Bezug auf 3 beschrieben wurden, und die gleichermaßen nummeriert wurden. Zum Beispiel schließt das mobile Gerät 18, wie in 4 gezeigt, auch einen berührungsempfindlichen Bildschirm 45 ein, welcher in Verbindung mit Stift 46 verwendet werden kann, um bestimmte Benutzer-Eingabefunktionen durchzuführen. Wenn das mobile Gerät 18 als ein Pager implementiert ist, ist der Bildschirm 45 nicht berührungsempfindlich und Stift 46 ist nicht notwendig.
  • Es sollte beachtet werden, dass das Display 45 für das mobile Gerät, wie gezeigt in den 3 und 4, dieselbe Größe oder verschiedene Größen untereinander haben kann, aber es wäre üblicherweise viel kleiner als ein konventionelles Display, was mit einem Desktop Computer verwendet wird. Zum Beispiel kann das Display 45, gezeigt in den 3 und 4, durch eine Matrix definiert sein mit nur 240 × 320 Koordinaten oder 160 × 160 Koordinaten, oder jede andere geeignete Größe. Wenn das mobile Gerät 18 ein Pager ist, kann das Display 45 noch kleiner sein.
  • Das mobile Gerät 18, gezeigt in 4, schließt auch eine Anzahl von Benutzereingabetasten oder -knöpfen (so wie z. B. Scroll-Rad 47) ein, welche es dem Benutzer erlauben, durch Menüoptionen oder andere Display-Optionen zu blättern, welche auf dem Display 45 angezeigt werden, oder welche es dem Benutzer erlauben, Anwendungen zu wechseln oder Benutzereingabefunktionen auszuwählen, ohne das Display 45 zu berühren. Zusätzlich schließt das mobile Gerät 18, gezeigt in 4, veranschaulichend auch einen Ein- und Ausschalter 49, welcher verwendet werden kann, um die Stromversorgung des mobilen Gerätes 18 an- und auszuschalten.
  • Es sollte auch beachtet werden, dass das mobile Gerät 18 in der in 4 dargestellten Ausführungsform ein Gebiet für Handschriften 51 einschließt. Das Gebiet für Handschriften 51 kann in Verbindung mit dem Stift 46 verwendet werden, so dass der Benutzer Nachrichten schreiben kann, welche in Speicher 46 für eine spätere Verwendung durch das mobile Gerät 18 gespeichert werden. In einer erläuternden Ausführungsform werden die handgeschriebenen Nachrichten einfach in handgeschriebener Form gespeichert und können durch den Benutzer wieder aufgerufen werden und auf dem Display 45 angezeigt werden, so dass der Benutzer die handgeschriebenen Nachrichten, die in das mobile Gerät 18 eingegeben wurden, nochmals durchsehen kann. In einer anderen Ausführungsform ist das mobile Gerät 18 mit einem Zeichenerkennungsmodul ausgestattet, so dass der Benutzer alphanumerische Informationen in das mobile Gerät 18 durch das Schreiben dieser alphanumerischen Information auf dem Gebiet 51 mit dem Stift 46 eingeben kann. In diesem Beispiel erkennt ein Zeichenerkennungsmodul in dem mobilen Gerät 18 die alphanumerischen Zeichen und konvertiert die Zeichen in Computer-erkennbare alphanumerische Zeichen, welche durch die Anwendungsprogramme 42 in dem mobilen Gerät 18 verwendet werden können.
  • Wo das mobile Gerät 18 als ein Pager implementiert ist, werden natürlich Stift 46 und das Gebiet für Handschriften 51 nicht benötigt. Anstatt dessen kann das mobile Gerät 18 einfach mit einem Bildschirm 45, Benutzereingabeknöpfen 47, Ein- und Ausschalter 49 und einem kompakten Gehäuse ausgestattet sein.
  • 5 und die zugehörige Erörterung beabsichtigen eine kure, allgemeine Beschreibung eines geeigneten Desktop Computers 16 zu geben, in dem Teile der Erfindung implementiert werden können. Obwohl es nicht notwendig ist, wird die Erfindung zumindest in Teilen im allgemeinen Kontext von Computer-ausführbaren Instruktionen beschrieben, sowie z. B. Programmmodulen, welche durch einen Personalcomputer 16 oder mobiles Gerät 18 ausgeführt werden. Im Allgemeinen schließen Programmmodule Routinen, Objekte, Komponenten, Datenstrukturen, etc. ein, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Des Weiteren werden Fachleute es begrüßen, dass der Desktop Computer 16 durch andere Computersystemkonfigurationen implementiert sein kann, einschließlich Multiprozessorsystemen, Mikroprozessor-basierter oder programmierbarer Unterhaltungselektronik, Netzwerk-PCs, Minicomputern, Großrechnern und Ähnlichen. Die Erfindung kann auch in verteilten Computerumgebungen ausgeführt werden, wo Funktionen durch dezentrale, verarbeitende Geräte durchgeführt werden, die durch ein Kommunikationsnetzwerk verbunden sind. In einer verteilten Computerumgebung können Programmmodule in beiden, lokalen oder dezentralen Speichergeräten, lokalisiert sein.
  • Mit Bezug auf 5 schließt ein beispielhaftes System zur Implementierung des Desktop Computers 16 einen Allzweckcomputer in der Form eines konventionellen Personal computers 16 ein, einschließlich Prozessoreinheit 48, einem Systemspeicher 50 und einem Systembus 52, der verschiedene Systemkomponenten koppelt, einschließlich dem Systemspeicher 50 mit der Prozessoreinheit 48. Der Systembus 52 kann irgendeiner von verschiedenen Busstrukturtypen sein, einschließlich einem Speicherbus oder Speichercontroller, einem Peripheriebus und einem lokalen Bus, unter Verwendung irgendeiner von einer Vielzahl von Busarchitekturen. Der Systemspeicher 50 schließt Read Only Memory (ROM) 54 und Random Access Memory (RAM) 55 ein. Ein Basic Input/Output-System (BIOS) 56, welches die elementaren Routinen beinhaltet, die helfen Informationen zwischen Elementen innerhalb des Desktop Computers 16 zu transferieren, wie z. B. während des Starts, ist in ROM 54 gespeichert. Der Desktop Computer 16 schließt des Weiteren ein Festplattenlaufwerk 57 zum Lesen von und Schreiben zu einer Festplatte (nicht gezeigt), einem magnetischen Disk-Laufwerk 58 zum Lesen von oder Schreiben zu entfernbaren magnetischen Disks 59 und einem optischen Disk-Laufwerk 60 zum Lesen von und Schreiben zu einer entfernbaren optischen Disk 61, wie z. B. einer CD-ROM oder anderem optischen Medium, ein. Das Festplattenlaufwerk 57, magnetische Disk-Laufwerk 58 und optische Disk-Laufwerk 60 sind mit dem Systembus 52 durch eine Festplattenlaufwerksschnittstelle 62, magnetischer Disk-Laufwerkschnittstelle 63 bzw. einer optischen Laufwerksschnittstelle 64 verbunden. Die Laufwerke und die zugehörigen computerlesbaren Medien stellen permanenten Speicher für computerlesbare Instruktionen, Datenstrukturen, Programmmodule und andere Daten für den Desktop Computer 16 zur Verfügung.
  • Obwohl die hierin beschriebene beispielhafte Umgebung eine Festplatte, eine entfernbare magnetische Disk 59 und eine entfernbare optische Disk 61 einsetzt, sollte es von Fachleuten begrüßt werden, dass andere Arten von computerlesbaren Medien, welche Daten speichern können, auf die mit einem Computer zugegriffen werden können, so wie z. B. magnetische Kassetten, Flash-Speicherkarten, Digital Video Disks (DVDs), Bernoulli Kartuschen, Random Access Memories (RAMs), Read Only Memory (ROM) und Ähnliches, ebenfalls in der beispielhaften Arbeitsumgebung verwendet werden können.
  • Eine Anzahl von Programmmodulen kann auf der Festplatte, magnetischen Disk 59, optischen Disk 61, ROM 54 oder RAM 55 gespeichert werden, einschließlich einem Betriebssystem 65, einem oder mehreren Anwendungsprogrammen 66 (welches PIMs ein schließen kann), andere Programmmodule 67 (welche Synchronisierungskomponenten 26 einschließen können) und Programmdaten 68. Ein Benutzer kann Befehle und Informationen in den Desktop Computer 16 durch Eingabegeräte, wie z. B. einer Tastatur 70, einem Zeigegerät 72 und Mikrofon 74, eingeben. Andere Eingabegeräte (nicht gezeigt) können einen Joystick, ein Gamepad, Satellitenschüssel, Scanner oder Ähnliches einschließen. Diese und andere Eingabegeräte sind meist mit der Prozessoreinheit 48 durch eine serielle Anschlussschnittstelle 76 verbunden, welche an den Systembus 52 gekoppelt ist, können aber durch andere Schnittstellen verbunden sein, wie z. B. einer Soundkarte, einem Parallelanschluss, Spieleanschluss oder Universal Serial Bus (USB). Ein Monitor 77 oder anderer Typ von Anzeigegerät ist auch mit dem Systembus 52 über eine Schnittstelle verbunden, wie z. B. einer Grafikkarte 78. Zusätzlich zu dem Monitor 77 können Desktop Computer typischerweise andere Peripherie-Ausgabegeräte einschließen, wie z. B. Lautsprecher 75 und Drucker.
  • Der Desktop Computer 16 kann in einer Netzwerkumgebung arbeiten, die logische Verbindungen zu einem oder mehreren dezentralen Computern (andere als das mobile Gerät 18) verwendet, wie z. B. einen dezentralen Computer 79. Der dezentrale Computer 79 kann ein anderer Personalcomputer, ein Server, ein Router, ein Netzwerk-PC, ein Peer-Gerät oder anderer Netzwerkknoten sein, und schließt üblicherweise viele oder alle der oben in Bezug auf den Desktop Computer 16 beschriebenen Elemente ein, obwohl nur ein Speichergerät 18 in 4 dargestellt wurde. Die logischen Verbindungen, beschrieben in 4, schließen ein Local Area Network (LAN) 81 und ein Wide Area Network (WAN) 82 ein. Solche Netzwerkumgebungen sind Standard in Büros, firmenweiten Computernetzwerken, Intranets und dem Internet.
  • Wenn er in einer LAN-Netzwerkumgebung verwendet wird, ist der Desktop Computer 16 mit dem Local Area Network 81 durch eine Netzwerkschnittstelle oder Adapter 83 verbunden. Wenn er in einer WAN-Netzwerkumgebung verwendet wird, schließt der Desktop Computer 16 üblicherweise ein Modem 84 oder andere Mittel zum Herstellen von Verbindungen über das Wide Area Network 82, wie z. B. das Internet ein. Das Modem 84, welches intern oder extern sein kann, ist mit dem Systembus 52 über eine serielle Anschlussschnittstelle 76 verbunden. In einer Netzwerkumgebung können Programmmodule, die relativ zum Desktop Computer 16 dargestellt werden, oder Teile davon, einschließlich der Synchronisierungskomponente 26, in lokalen oder dezentralen Speicher geräten gespeichert werden. Es wird begrüßt, dass die gezeigten Netzwerkverbindungen exemplarisch sind und andere Mittel zum Herstellen einer Kommunikationsverbindung zwischen den Computern verwendet werden können.
  • Der Desktop Computer 16 führt ein Betriebssystem 65 aus, das üblicherweise in einem permanenten Speicher 54 gespeichert ist und auf dem Prozessor 48 läuft. Ein geeignetes Betriebssystem ist ein Windows-Markenbetriebssystem, das durch Microsoft Corporation verkauft wird, wie z. B. WINDOWS 95 oder WINDOWS NT-Betriebssysteme, andere abgeleitete Versionen von Windows-Markenbetriebssystemen oder ein anderes geeignetes Betriebssystem. Andere geeignete Betriebssysteme schließen Systeme ein, wie z. B. Macintosh OS, verkauft von Apple Corporation, und das OS/2 Presentation Manager, das von International Business Machines (IBM) aus Armonk, New York, verkauft wird. Anwendungsprogramme werden bevorzugt in Programmmodulen 67 gespeichert, in flüchtigen oder permanenten Speicher oder können in irgendeine der in 5 gezeigten Komponenten von einer Floppy Disk 59, CD-ROM-Laufwerk 61 geladen werden, von einem Netzwerk über Netzwerkadapter 83 heruntergeladen werden oder unter Verwendung anderer geeigneter Mechanismen geladen werden.
  • Eine Dynamically Linked Library (DLL), die eine Vielzahl von ausführbaren Funktionen einschließt, wird mit PIMs in dem Speicher zur Ausführung durch Prozessor 48 assoziiert. Zwischenprozessor- und Zwischenkomponenten-Aufrufe werden unter Verwendung des Component Object Model (COM) bewerkstelligt, wie es üblich ist, in Programmen geschrieben für Microsoft Windows-Markenbetriebssysteme. Kurz gesagt, wenn COM verwendet wird, hat eine Softwarekomponente, wie z. B. eine DLL, eine Anzahl von Schnittstellen. Jede Schnittstelle legt eine Vielzahl von Methoden dar, welche individuell aufgerufen werden können, um verschiedene Dienste anzuwenden, die von der Softwarekomponente angeboten werden. Zusätzlich sind die Schnittstellen ausgestattet, so dass Methoden oder Funktionen von anderen Softwarekomponenten aufgerufen werden können, welche optional ein oder mehrere Parameterargumente empfangen und zurückgeben.
  • Im Allgemeinen ist die DLL, die mit der bestimmten PIM oder anderem Programm assoziiert ist, speziell aufgebaut, um in Verbindung mit dem PIM zu arbeiten und um Desktop-Synchronisationsschnittstellen darzulegen. Die DLL wiederum ruft Schnittstellen auf, die durch den PIM dargelegt werden, um auf Daten zuzugreifen, die individuelle Eigenschaften der Objekte darstellen, die in einem Objektspeicher vorgehalten werden. Der Objektspeicher kann sich selbstverständlich in irgendeinem der Speicherkomponenten befinden, die mit Bezug auf 4 beschrieben wurden.
  • 6 ist ein detailliertes Blockdiagramm von bestimmten Komponenten des in 1 gezeigten Systems. 6 zeigt Inhaltsanbieter 12 und zeigt auch den kabellosen Träger 14 und das mobile Gerät 18 mit mehr Details. 6 zeigt, dass der kabellose Träger 14 einen Protokollgenerator 200 und kabellosen Sender 202 einschließt. Zusätzlich wird in 6 gezeigt, dass das mobile Gerät 18 eine Funkhardware 204, eine Treiberkomponente 206, einen Router 208, Fehlererkennungs- und -korrekturkomponenten (oder rekonstruierende Komponenten) 210, andere Umsetzer 212 und Zielkomponente 214 einschließt.
  • Inhaltsanbieter 12 stellt dem Protokollgenerator 200 in dem kabellosen Träger 14 Inhalt zur Verfügung. Protokollgenerator 200 verändert den Inhalt, um ihn in einer gewünschten Form anzuordnen, entsprechend dem Übertragungsprotokoll, welches durch das System implementiert ist. Protokollgenerator 200 setzt illustrativ den Inhalt für eine bessere Übermittlung durch den kabellosen Träger 14 um. Solche Umsetzungen können Codieren, Verschlüsselung, Komprimierung, etc. einschließen. Der Inhalt wird illustrativ in Protokollpakete zerlegt, welche den kabellosen Sender zum Übermitteln zu der Funkhardware 204 in dem mobilen Gerät 18 zur Verfügung gestellt werden. Eine illustrative Datenstruktur für übermittelte Nachrichten wird detaillierter mit Bezug auf 7 weiter unten beschrieben. In der Ausführungsform, in 6 dargestellt, ist die Übertragungsverbindung zwischen dem kabellosen Träger 14 und dem mobilen Gerät 18 eine kabellose Übertragungsverbindung, wie z. B. einem Paging-Kanal.
  • Funkhardware 204 empfängt die Pakete und führt auf einer niedrigen Ebene Filterungen durch, um zu ermitteln, ob die Nachrichten, die durch den kabellosen Träger 14 übermittelt wurden, für das spezielle mobile Gerät 18 vorgesehen sind. In einer illustrativen Ausführungsform kann zusätzlich eine Filterung auf einer hohen Ebene vorgesehen sein, um die Nachrichten basierend auf Header- und Protokollinformationen weiter zu filtern, die zusammen mit den Nachrichten vom kabellosen Träger 14 übermittelt wurden. Die Funkhardware 204 kann z. B. als ein entfernbares Hardwareelement, wie z. B. einer Funk-PCMCIA-Karte, implementiert sein.
  • Treiber 206 ist bevorzugter Weise ausgebildet, um ein geeignetes Protokoll zum Empfangen von Nachrichten von der Funkhardware 204 und Weitergeben dieser zu einer Komponente zur Verarbeitung auf einer höheren Ebene zu implementieren. Der Router 208 ist in einer illustrativen Ausführungsform üblicherweise als ein Anwendungsprogramm implementiert, das konfiguriert ist, um etliche Input/Output (I/O)-Kontrollaufrufe zu verwenden, um verschiedene Funktionsabläufe durchzuführen. Treiber 206 unterstützt und implementiert die I/O-Kontrollaufrufe entsprechend einer vordefinierten Syntax und Funktion.
  • Router 208 gibt die empfangenen Nachrichten zu der Fehlererkennungs- und – korrektionskomponente 210 weiter. Die Fehlererkennungs- und -korrektionskomponente 210 wird unterhalb detaillierter beschrieben und ermittelt, ob eine Nachricht irgendwelche Fehler enthält. Komponente 210 versucht auch, Fehler zu korrigieren durch das Vereinen von zwei Instanzen derselben Nachricht, um eine fehlerfreie Nachricht zu erhalten. Die resultierende Nachricht wird zurück zu dem Router 208 gegeben, welcher wiederum die Nachricht optional an andere Umsetzer 212 zur weiteren Verarbeitung gibt. Umsetzer 212 schließt veranschaulichend Umsetzer ein, die ergänzend zu jenen aus Protokollgenerator 200 und kabellosem Träger 14 sind. Solche Umsetzer können decodierende Umsetzer, Entschlüsselungsurnsetzer, Dekomprimierungsumsetzer, etc. sein. Sobald die Nachricht umgesetzt worden ist, gibt der Router 208 die Nachricht zu ihrem eventuellen Ziel 214 weiter. Das Ziel kann einfach ein Anzeigemodul oder anderes Anwendungsprogramm, wie z. B. ein E-Mail-Programm, etc. einschließen.
  • In allen Funkrufumgebungen gibt es eine bestimmte Wahrscheinlichkeit, dass ein einzelnes Stück einer Nachricht einen Fehler enthält. Zum Beispiel ist in manchen Funkrufumgebungen die Wahrscheinlichkeit, dass irgendein Byte in einem gegebenen Funkruf fehlerhaft ist, ca. 1 %. Jedoch steigt dies zu 20 bis 30 % für das nächste Byte in diesem Funkruf stark an, nachdem das erste Byte fehlerhaft ist. Jedoch ist die Wahrscheinlichkeit sehr gering, dass dasselbe Datenstück in zwei identischen Funkrufen (d. h. in zwei Instanzen von demselben Funkruf), die direkt aufeinander folgenden gesendet wurden, fehlerhaft ist. Diese Wahrscheinlichkeit liegt unter normalen Umständen an der Grenze von 0,01 %. Die Wahrscheinlichkeit wird z. B. größer, wenn der Empfänger aus dem Funkrufbereich herausgegangen ist, in einen Tunnel gegangen ist oder in anderer Weise unerreichbar geworden ist. Die vorliegende Erfindung nutzt die signifikant kleinere Wahrscheinlichkeit aus, dass zwei Instanzen von einer Nachricht in denselben Datenblöcken Fehler enthalten werden.
  • 7 zeigt eine Datenstruktur 220, welche zum Senden von Nachrichten entsprechend einem Aspekt der vorliegenden Erfindung verwendet. Das Protokoll, welches mit Bezug auf 7 beschrieben wird, wird erläuternd auf eine Nachricht vor dem Network Layer-Protokoll angewandt. In einem Funkrufsystem bedeutet dies, dass der Layer veranschaulichend zwischen den Anwendungs- und Netzwerk-Layern eingefügt wird.
  • Die Datenstruktur 220 schließt ein oder mehrere Kennzeichnungen 222, eine Reihenfolgenummer 224, Fehlererkennungs (oder Redundanz)-Information 226 und Nachrichtenhauptteil oder Nutzdateninformation 228 ein. Es sollte beachtet werden, dass die Felder 222, 224 und 226 entweder an den Anfang oder das Ende des Nachrichtenhauptteils 228 platziert werden können, zwischen dem Anfang und dem Ende der Nachricht 228 geteilt werden können, darüber verteilt werden können, zwischen die Nutzdateninformation 228 gemischt oder darin beinhaltet sein können oder in irgendeiner anderen geeigneten Weise gestaltet werden können.
  • Nachrichtenhauptteil 228 ist einfach die Originalnachricht, welche zu dem mobilen Gerät 18 übermittelt werden soll. Die Fehlerüberprüfungsinformation 226 kann etliche Formen einnehmen. Zum Beispiel in herkömmlichen Funkrufprotokollen wird eine solche Information in einer Weise ausgestattet, um zu ermitteln, ob die bestimmte gesendete Nachricht Fehler hat. In dem System nach POCSAG ist die Information Redundanzinformation, welche einfach verwendet wird, um zu ermitteln, ob die Nachricht irgendwelche Fehler enthält. In dem FLEX-Funkrufsystem ist die Information 226 ausgestattet zur Implementierung eines komplexeren Fehlererkennungsalgorithmus. In diesem System kann die Information 226 nicht nur verwendet werden, um zu ermitteln, ob ein Fehler vorhanden ist, sondern auch zu ermitteln, welche Bytes in der Nachricht fehlerhaft sind.
  • Für beide dieser Systeme und anderer konventioneller Funkrufsysteme kann das zugrundeliegende Protokoll, welches schon vorhanden ist, verwendet werden, um zu ermit teln, ob die Nachricht Fehler hat. Gemäß einer Ausführungsform der vorliegenden Erfindung in einem System mit POCSAG-Typ wird die Information 226 ergänzt, um eine zusätzliche Prüfsumme, zyklischen Redundanzcode (cyclic redundancy code, CRC) oder andere Informationen einzuschließen, welche verwendet werden können, sobald die Nachricht gemäß der vorliegenden Erfindung korrigiert worden ist, um zu ermitteln, dass die korrigierte Nachricht fehlerfrei ist. In einer erläuternden Ausführungsform schließt solche ergänzende Information 226 eine 7 Bit-Prüfsumme ein, die ausgelegt ist, um Prüfsummenwerte in dem Bereich von OX20 bis OX7E zu erzeugen. In einem System mit FLEX-Typ müssen solche ergänzenden Informationen nicht bereitgestellt werden.
  • Die Nachrichtreihenfolgennummer 224 wird verwendet, um zwei entsprechende Instanzen einer Nachricht zu identifizieren. Veranschaulichend ist die Reihenfolgennummer 224 eine groß genuge Zahl, dass, wenn die Reihenfolge sich überschlägt, die Nachricht, welche die vorherige Nummer verwendet hat, die Fehlerkorrektionsfunktion gelöscht hat. Dies kann erläuternd eine Reihenfolgennummer sein, die von dem existierenden Funkrufprotokoll zur Verfügung gestellt ist, oder eine Nummer, welche zu dem Nachrichten-Overhead hinzugefügt wurde. Zum Beispiel ist die Nachrichtenreihenfolgennummer 224 eine Standardeigenschaft des FLEX-Typ-Protokolls. In einem System mit POCSAG-Typ ist die Reihenfolgennummer zu dem Funkruf-Overhead hinzugefügt, weil es dort keine Methode auf Protokollebene gibt, die diese Nummer in solch einem System einschließt. In einer erläuternden Ausführungsform hat die Reihenfolgennummer Werte im Bereich von OX20 bis OX7E, so dass 94 Reihenfolgennummern verfügbar sind. Jedoch können auch weniger Werte verwendet werden. In einer anderen illustrativen Ausführungsform werden nur 64 Werte verwendet.
  • Kennzeichnungsinformation 222 ist vorzugsweise einfach ein Kennzeichner, der den Funkruf als einen identifiziert, der das Fehlerkorrektionssystem gemäß der vorliegenden Erfindung verwendet. Dies kann einfach die Form eines freien Bit in dem Funkrufprotokoll einnehmen oder ein Bit oder Byte in dem hinzugefügten Nachrichten-Overhead. Die Information indiziert einfach, dass der kabellose Träger 14 zwei Instanzen derselben Nachricht senden wird. Der Kennzeichner 222 wird nicht vorausgesetzt. Jedoch erlaubt er es einer Implementierung der vorliegenden Erfindung, Ressourcen zu sparen. Zum Beispiel Ressourcen, welche anderweitig verwendet werden könnten, um Korrekturen gemäß der vorliegenden Erfindung auszuführen, können freigesetzt werden, wenn es von vornherein bekannt ist, dass zwei Instanzen nicht gesendet werden. In einer veranschaulichenden Implementierung, wenn kein Kennzeichner vorhanden ist, wird angenommen, dass alle Nachrichten in zwei Instanzen gesendet werden.
  • 8 ist ein Ablaufdiagramm, das den Arbeitsablauf eines mobilen Gerätes 18 darstellt, sobald es die Nachricht wie mit Bezug auf 7 beschrieben empfängt. Das mobile Gerät 18 steuert zuerst die Nachricht, wie z. B. durch den Router 208, zu der Fehlererkennungs- und -korrektionskomponente 210. Die Komponente 210 führt Funktionen durch, die mit Bezug auf 8 behandelt werden, und gibt die Nachricht zur weiteren Verarbeitung zurück zu Router 210. Daher wird die zusätzliche Protokollhülle, mit Bezug auf 7 beschrieben, von der Nachricht entfernt, bevor sie zur weiteren Verarbeitung zu dem Anwendungs-Layer auf dem mobilen Gerät 18 weitergesendet wird.
  • 8 zeigt, dass, sobald eine neue Nachricht empfangen worden ist, wie durch Block 230 angedeutet, die Komponente 210 ermittelt, ob die Kennzeichnungsinformation 222 angibt, dass zwei Instanzen der Nachricht gesendet werden. Dies ist mit Block 232 angedeutet. Wenn nicht, gibt die Komponente 210 die Nachricht einfach zur weiteren Verarbeitung zurück zu dem Router 208, wie durch Block 234 gezeigt.
  • Wenn die Nachricht jedoch als Wiederholung gekennzeichnet ist, ermittelt die Komponente 210, ob dies eine neue Nachricht ist (d. h., ob dies die erste Instanz oder die zweite Instanz der Nachricht ist). Dies wird durch Block 236 gezeigt. Wenn dies die erste Instanz ist, setzt die Komponente 210 einen Timer und wartet für die vorgesehene Time out-Dauer, um den zweiten Funkruf zu empfangen. Die Time out-Dauer, welche in den Timer implementiert ist, kann von dem bestimmten zu verwendenden Funkrufsystem abhängig sein, und wird gesetzt, um genügend Zeit zu gewährleisten, um einen zweiten Funkruf zu empfangen. In einer beispielhaften Ausführungsform ist die Time out-Dauer zirka 5 Minuten. Die Komponente 210 löscht auch alle Vereinigung-Flags. Dies wird durch Block 238 angedeutet.
  • Die Komponente 210 ermittelt anschließend, ob die erste Instanz der Nachricht fehlerfrei ist, wie durch Block 240 gezeigt. Durch Ausführen dieses Schritts kann die Komponente 210 einfach einen gewöhnlichen POCSAG oder FLEX-Typ eines Fehlererkennungsalgorithmus implementieren. Wenn die erste Instanz der Nachricht fehlerfrei ist, wird diese Instanz der Nachricht von Komponente 210 zur weiteren Verarbeitung zu dem Router 208 zurück gereicht. Dies ist durch Schritt 242 angedeutet. Wenn jedoch die erste Instanz dieser Nachricht einen Fehler enthält, setzt die Komponente 210 ein Vereinigungs-Flag, das anzeigt, dass die Nachricht, wenn sie eintrifft, mit einer zweiten Instanz vereint werden muss, und die erste Instanz wird in einem Nachrichtenpuffer gespeichert. Dies wird durch Block 244 angedeutet. Wenn die zweite Instanz dieser Nachricht nicht innerhalb der vom Timer gesetzten Time out-Dauer empfangen wird, gibt die Komponente 210 die fehlerbehaftete Nachricht einfach zu dem Router 208 zurück und setzt Fehler-Flags, die angeben, dass die Nachricht fehlerbehaftet ist.
  • Wenn die zweite Instanz der Nachricht empfangen wird, wird sie durch die Blöcke 230 und 232 wie oben angegeben bearbeitet. Bei Block 236 jedoch wird die Komponente 210 ermitteln, dass dies nicht eine neue Nachricht ist, weil sie die gleiche Reihenfolgennummer wie die vorherige Instanz der Nachricht hat. Deshalb setzt die Verarbeitung gemäß Block 246 fort. Die Komponente 210 stoppt dann den Timer, welcher bei Block 238 gesetzt wurde, und ermittelt, ob die erste Instanz der Nachricht fehlerfrei war. Dies wird durch Block 248 angedeutet.
  • Wenn die erste Instanz der Nachricht fehlerfrei war, lässt Block 210 die zweite Instanz der Nachricht einfach fallen, weil die erste Nachricht schon zur weiteren Verarbeitung zurückgegeben wurde. Dies wird durch Block 250 gezeigt.
  • Wenn die erste Instanz Fehler enthält, führt die Komponente 210 dann einen Fehlererkennungsalgorithmus durch, um zu ermitteln, ob die zweite Instanz, welche gerade empfangen worden ist, fehlerfrei ist. Dies wird durch Block 252 angedeutet. Wenn die zweite Instanz fehlerfrei ist, lässt die Komponente 210 einfach die erste Instanz der Nachricht aus dem Puffer fallen und gibt die zweite Instanz der Nachricht zur weiteren Verarbeitung zurück zu dem Router 208. Dies ist durch Block 254 gezeigt.
  • Wenn bei Block 252 die Komponente 210 ermittelt, dass die zweite Instanz auch fehlerhaft ist, dann versucht Block 210 die zwei Instanzen der Nachricht zu vereinen, um eine fehlerfreie Nachricht zu erhalten. Dies wird durch Block 256 angezeigt. Die vereinte Nachricht wird dann zur weiteren Verarbeitung von der Komponente 210 zurück zu dem Router 208 gegeben. Dies ist durch Block 258 angedeutet. Sobald die Nachricht zu rückgegeben worden ist, wird die Information, zugehörig zu der Nachricht, von dem Puffer fallen gelassen und irgendwelche zu der Nachricht gehörigen Timer werden auch gestoppt.
  • Die Ausführungsform, die in 8 gezeigt wird, verwendet erläuternd Timer, um Ressourcen in dem mobilen Gerät 18 frei zu setzen, so dass es auf andere empfangene Funkrufe rechtzeitig reagieren kann, wenn die zweite Instanz einer gegebenen Nachricht noch nicht empfangen worden ist.
  • 9 und 10A bis 10G zeigen jedoch eine veranschaulichende Ausführungsform eines Vereinigungsprozesses gemäß einem Aspekt der vorliegenden Erfindung. Zuerst empfängt das mobile Gerät 18 zwei Nachrichten. Die Komponente 210 ermittelt anschließend, dass die zwei Nachrichten eigentlich zwei Instanzen derselben Nachricht sind. Komponente 210 vergleicht die Reihenfolgennummern in den Nachrichtenköpfen, um dies zu ermitteln. Dies wird durch Blöcke 260 und 262 in 9 angezeigt, und die Nachrichten werden durch Numerale 264 und 266 in 10A angegeben.
  • Die Nachrichten werden mit einschließenden Header-Informationen dargestellt (I1 HEADER bezeichnet die Header-Informationen für Instanz 1 und I2 HEADER bezeichnet die Header-Informationen für Instanz 2). Die Nachrichten 264 und 266 werden auch mit fünf Datenblöcken in der Nachricht dargestellt, die als B1–1 bis B5–1 für Instanz 1 und B1–2 bis B5–2 für Instanz bezeichnet sind. Die Datenblöcke, welche Sternsymbole enthalten, sind jene Datenblöcke, welche fehlerhaft sind, obwohl Komponente 210 jetzt noch nicht weiß, dass diese die Datenblöcke sind, welche Fehler enthalten.
  • Wenn die Reigenfolgennummern in den Header-Informationen nicht übereinstimmen und der Timer abgelaufen ist, dann gibt die Komponente 210 einfach die erste Instanz als die echte Nachricht zurück und setzt dazugehörige Fehler-Flags. Dies wird durch Block 268 gezeigt. Wenn jedoch bei Block 262 die Reihenfolgennummern übereinstimmen, vergleicht die Komponente 210 anschließend zugehörige Datenblöcke in den zwei Instanzen, um zu ermitteln, welche Datenblöcke in einer Instanz nicht mit den entsprechenden Datenblöcken in einer anderen Instanz übereinstimmen. In der Ausführungsform, gezeigt in 10A, sind die Datenblöcke B1, B2, B4 und B5 von Instanz 1 (Nach richt 264) verschieden von Instanz 2 (Nachricht 266). Das Vergleichen der Datenblöcke ist durch Block 270 in 8 angedeutet.
  • Die Komponente 210 ermittelt dann eine Liste von Permutationen, welche notwendig sind, um alle Kombinationen der Daten zu testen. Mit anderen Worten ermittelt Komponente 210 die Liste von Permutationen, welche durch Austauschen von nicht übereinstimmenden Datenblöcken von der zweiten Instanz der Nachricht 266 in entsprechende Datenblockpositionen in der ersten Instanz der Nachricht 264 gebildet werden kann. Dies ist durch Block 272 in 8 angedeutet. Die Komponente 210 geht dann durch die Liste der Permutationen und führt den Redundanzalgorithmus mit jeder Permutation aus, bis eine von den Permutationen als fehlerfrei ermittelt worden ist.
  • In der Ausführungsform, die in den 10A bis 10G dargestellt ist, ist die Permutationsliste grau gekennzeichnet, in der nur ein Datenblockaustausch von einer Permutation zur nächsten gemacht wird. Natürlich können viele andere Algorithmen verwendet werden, um die Permutationsliste zu erzeugen und auch sehr effektiv zu durchsuchen. Die vorliegende Beschreibung fährt der Einfachheit halber mit Bezug auf einen grau codierten Typ einer Listsuche fort.
  • Sobald die Permutationsliste erzeugt worden ist, setzt die Komponente 210 eine aktuelle Nachrichtenkombination als die erste Permutation in die Liste. Dies wird durch Block 274 gezeigt. Die Komponente 210 erzeugt anschließend die aktuelle Nachrichtenkombination durch Austauschen eines Datenblocks von der zweiten Instanz 266 in die erste Instanz 264 und berechnet eine Prüfsumme über die kombinierte Nachricht. Dies wird durch Block 276 angedeutet. In dem dargestellten Beispiel in 10B ersetzt die Komponente 210 den ersten Datenblock in der ersten Instanz 264 mit dem ersten Datenblock in der zweiten Instanz 266. Natürlich enthält die erste Instanz 264 immer noch einen Fehler in dem vierten Datenblock. Deshalb berechnet die Komponente 210 die Prüfsumme, um zu sehen, ob es korrekt ist, was nicht der Fall ist. Dies wird durch Block 278 gezeigt.
  • Weil die Prüfsumme noch immer nicht korrekt ist, ermittelt die Komponente 210, ob alle Kombinationen in der Permutationsliste getestet worden sind. Dies wird durch Block 280 gezeigt. Wenn sie getestet wurden, gibt die Komponente 210 einfach die erste Instanz 264 als die echte Nachricht zurück und setzt zugehörige Fehler-Flags, wie in Block 268 gezeigt. Wenn jedoch nicht alle Permutationen getestet worden sind, setzt die Komponente 210 die aktuelle Nachrichtenkombination auf die nächste Permutation in der Permutationsliste. Dies wird durch Block 282 in 9 gezeigt. Die Komponente 210 erzeugt anschließend die nächste Permutation durch Austauschen anderer Datenblöcke in Instanz 264 von Instanz 266, und berechnet die Prüfsumme. Dies ist wieder durch Block 276 gezeigt und wird in 10C dargestellt.
  • 10C zeigt, dass die kombinierte Nachricht nun den ersten und zweiten Datenblock von der zweiten Instanz 266, ersetzt in der ersten Instanz 264, einschließt. 10C stellt auch dar, dass der zweite und vierte Datenblock immer noch fehlerhaft sind, so dass die Prüfsumme nicht korrekt sein wird.
  • Dieser Prozess setzt sich in einer grau codierten Version fort, wie in den 10B bis 10G dargestellt, bis eine fehlerfreie rekonstruierte Nachricht gefunden ist, oder bis alle Permutationen getestet worden sind. Zum Beispiel platziert in 10D die Komponente 210 den ersten Datenblock von der ersten Instanz 264 in der kombinierten Nachricht zurück, so dass nur der zweite Datenblock von der zweiten Instanz 266 ausgetauscht worden ist. Die kombinierte Nachricht enthält nun drei fehlerbehaftete Datenblöcke und die Prüfsumme wird wieder nicht korrekt sein.
  • In 10E enthält die kombinierte Nachricht den ersten, dritten und fünften Datenblock von der ersten Instanz 264, hat aber den zweiten und vierten Datenblock ausgetauscht von der zweiten Instanz 266. Die kombinierte Nachricht ist immer noch nicht korrekt.
  • In 10F schließt die kombinierte Nachricht nur den dritten und vierten Datenblock von der ersten Instanz 264 ein und enthält den ersten, zweiten und vierten Datenblock von der zweiten Instanz 266. Die kombinierte Nachricht ist immer noch nicht korrekt.
  • In 10G enthält die kombinierte Nachricht den zweiten, dritten und fünften Datenblock von der ersten Instanz 264 und den ersten und vierten Datenblock von der zweiten Instanz 266. Daher ist bei Block 278 in 9 die kombinierte Nachricht korrekt, und die Komponente 210 ermittelt, dass die Prüfsumme korrekt ist. Die Komponente 210 gibt anschließend die kombinierte Nachricht als die echte Nachricht zurück, wie in Block 284 in 9 dargestellt.
  • 11 ist ein Ablaufdiagramm, das eine Ausführungsform der Funktionsweise von Komponente 210 darstellt, unter Verwendung eines FLEX-Typ-Funkrufprotokolls. In Erinnerung, dass in einem solchen Protokoll Fehlererkennungsinformation 266 (7) nicht nur anzeigt, dass ein Fehler vorhanden ist, sondern auch den bestimmten Datenblock identifiziert, der fehlerhaft ist. In diesem Beispiel vergleicht die Komponente 210 den Nachrichten-Header, um sicherzugehen, dass die Reihenfolgennummern übereinstimmen. Dies wird in den Blöcken 286 und 288 in 11 angedeutet. Wenn sie nicht übereinstimmen, gibt die Komponente 210 einfach die erste Instanz der Nachricht als die echte Nachricht zurück und setzt zugehörige Fehler-Flags. Dies wird durch die Blöcke 290 und 292 angezeigt.
  • Wenn jedoch die Reihenfolgennummern übereinstimmen, ermittelt die Komponente 210, dass zwei Instanzen derselben Nachricht empfangen worden sind. Die Komponente 210 bezieht dann die Identität der fehlerhaften Datenblöcke in der ersten Instanz, welche sie durch Implementieren des FLEX-Typ-Fehlererkennungsalgorithmus berechnet hat. Es sollte beachtet werden, dass viele Fehlererkennungsalgorithmen bekannt sind, welche den Ort von fehlerbehafteten Datenblöcken in einem Datenstrom identifizieren können. Deshalb kann irgendein geeigneter Erkennungsmechanismus verwendet werden, solange die zugehörige Fehlererkennungsinformation in der Protokolldatenstruktur eingeschlossen ist, die der Komponente 210 zur Verfügung gestellt wird. Das Beziehen der Identität der fehlerhaften Datenblöcke wird durch Block 294 in 11 gezeigt.
  • Die Komponente 210 kann optional auch die Identität fehlerhafter Datenblöcke in der zweiten Instanz beziehen. Wenn manche von diesen dieselben sind, wie jene fehlerhaften in der ersten Instanz, kann eine komplett fehlerfreie Nachricht nicht zurückgegeben werden. In diesem Beispiel korrigiert die Komponente 210 einfach jene Teile der Nachricht, welche durch Rekonstruktion einer Nachricht mit so vielen fehlerfreien Datenblöcken wie möglich korrigiert werden kann, und gibt die teilweise korrigierte Nachricht als die echte Nachricht zurück und setzt wieder Fehler-Flags. Wenn jedoch angenommen wird, dass dieselben Datenblöcke, welche in der ersten Instanz fehlerhaft sind, in der zweiten Instanz nicht fehlerhaft sind, ersetzt die Komponente 210 die fehlerfreien Da tenblöcke von der zweiten Instanz für die fehlerbehafteten Datenblöcke in der ersten Instanz, wie durch Block 296 in 11 gezeigt.
  • Die Komponente 210 kann anschließend einfach die korrigierte als die echte Nachricht zurückgeben, oder sie kann optional (als eine zusätzliche Fehlerüberprüfungsvorsichtsmaßnahme) eine Prüfsumme berechnen, die auf der korrigierten Nachricht basiert, wie durch Block 298 gezeigt. Wenn die Prüfsumme korrekt ist, wie bei Block 300 ermittelt, gibt die Komponente 210 die korrigierte Nachricht als die echte Nachricht zurück. Dies ist durch Block 302 angedeutet. Wenn jedoch die Prüfsumme bei Block 300 nicht korrekt ist, gibt die Komponente 210 einfach die erste Instanz als die echte Nachricht zurück und setzt Fehler-Flags, wie durch die Blöcke 304 und 292 in 11 gezeigt.
  • Daher ist es ersichtlich, dass die vorliegende Erfindung etliche bedeutende Vorteile gegenüber früheren Systemen bieten kann, z. B. ist das System nützlich für Datenfunkrufanwendungen, weil es da nicht möglich sein sollte, dass die Korrektur solcher Nachrichten auf dem Benutzer lasten. Ebenso stellt die vorliegende Erfindung ein System zur Verfügung, welches nicht so unkonventionell oder lästig ist wie frühere Verfahren. Des Weiteren erscheint das System von einer Endbenutzerperspektive aus verlässlicher, weil die Anzahl der Nachrichten, welche Fehler enthalten und welche dem Benutzer gezeigt werden, reduziert wurde.

Claims (9)

  1. Verfahren zum Empfangen einer Nachricht über eine kabellose Verbindung, umfassend: Empfangen (230) einer ersten und einer zweiten Instanz einer Nachricht; Ermitteln, ob eine der ersten und zweiten Instanz einen Fehler enthält; wenn ja, Ermitteln (248, 252), ob eine weitere der ersten und zweiten Instanz einen Fehler enthält; und wenn beide, die erste und zweite Instanz, einen Fehler enthalten, Wiederherstellen der Nachricht, um eine wiederhergestellte Instanz zu erhalten, dadurch gekennzeichnet, dass der Schritt des Wiederherstellens des weiteren die Schritte umfasst: (a) Anlegen einer Liste mit Permutationen, die alle möglichen wiederhergestellten Nachrichten identifizieren, die durch die Verwendung von Teilen der ersten und zweiten Instanz, die einander entsprechen, gebildet werden können, und verschiedene Kombinationen von Teilen der ersten und zweiten Instanz, die nicht dem zugehörigen Teil der anderen ersten oder zweiten Instanz entsprechen; (b) Erstellen einer Instanzkombination entsprechend einer der Permutationen durch Auswechseln der jeweiligen Teile von der zweiten Instanz in die erste Instanz; (c) Ermitteln, ob die Instanzkombination einen Fehler enthält; (d) Ausführen der Schritte (b) und (c) mit jeder Permutation, bis eine der Instanzkombinationen als fehlerfrei ermittelt ist; und (e) Ausgeben der fehlerfreien Instanzkombination als die wiederhergestellte Instanz.
  2. Verfahren nach Anspruch 1, des weiteren umfassend: nach dem Empfangen der ersten Instanz und vor dem Ermitteln, ob eine der ersten und zweiten Instanz einen Fehler enthält, Ermitteln, ob die zweite Instanz zu senden ist, und wenn nicht, Verwenden der ersten Instanz zum Darstellen der Nachricht.
  3. Verfahren nach Anspruch 2, wobei das Ermitteln, ob die zweite Instanz gesendet werden muss, umfasst: Untersuchen einer Kennzeichnung in der ersten Instanz, wobei die Kennzeichnung angibt, ob die zweite Instanz gesendet werden muss.
  4. Verfahren nach Anspruch 1 bis 3, wobei das Empfangen der ersten und zweiten Instanz umfasst: Empfangen der ersten Instanz; Warten, um die zweite Instanz zu empfangen, bis zu einem Timeout; und wenn die zweite Instanz nicht innerhalb der Zeit bis zum Timeout empfangen wurde, Verwenden der ersten Instanz, um die Nachricht darzustellen.
  5. Verfahren nach Anspruch 1 bis 4, wobei das Wiederherstellen der Nachricht des weiteren umfasst: Ermitteln, ob die erste und zweite Instanz sich auf die Nachricht beziehen, durch das Untersuchen einer laufenden Nummer in jeder Instanz.
  6. Verfahren nach Anspruch 1 bis 5, wobei das Wiederherstellen der Nachricht des weiteren umfasst: Vergleichen der ersten und zweiten Instanz, um entsprechende Teile der ersten und zweiten Instanz zu erkennen, die nicht mit dem entsprechenden Teil der ersten und zweiten Instanz übereinstimmen.
  7. Verfahren nach Anspruch 6, wobei in dem Schritt des Erstellens einer Instanzkombination nur Teile der ersten und zweiten Instanz ausgewechselt werden, welche nicht mit dem entsprechenden Teil der anderen der ersten und zweiten Instanz übereinstimmen.
  8. Verfahren nach Anspruch 1 bis 7, wobei das Wiederherstellen der Nachricht des weiteren umfasst: wenn alle möglichen wiederhergestellten Nachrichten einen Fehler enthalten, Verwenden der ersten Instanz, um die wiederhergestellte Instanz darzustellen.
  9. Mobile Vorrichtung, umfassend: einen kabellosen Empfänger (22, 37, 204) konfiguriert zum Empfangen einer ersten Instanz einer Nachricht und einer zweiten Instanz der Nachricht; und eine Wiederherstellungs-Komponente (210) konfiguriert zum Ermitteln, ob die erste und zweite Instanz Fehler enthalten und konfiguriert zum Wiederherstellen der Nachricht, wenn beide, die erste und zweite Instanz, einen Fehler enthalten, durch Vereinigen von Teilen der ersten und zweiten Instanz, dadurch gekennzeichnet, dass: die Wiederherstellungs-Komponente eingerichtet ist zum Anlegen einer Liste mit Permutationen, die alle möglichen wiederhergestellten Nachrichten identifizieren, die durch die Verwendung von Teilen der ersten und zweiten Instanz, die einander entsprechen, gebildet werden können, und verschiedene Kombinationen von Teilen der ersten und zweiten Instanz, die nicht dem zugehörigen Teil der anderen ersten oder zweiten Instanz entsprechen; zum Erstellen einer Instanzkombination entsprechend einer der Permutationen durch Auswechseln der jeweiligen Teile von der zweiten Instanz in die erste Instanz; zum Ermitteln, ob die Instanzkombination einen Fehler enthält; zum Wiederholen des Erstellens einer Instanzkombination und des Ermittelns, ob die Instanzkombination einen Fehler enthält, für jede Permutation, bis eine der Instanzkombinationen als fehlerfrei ermittelt ist; und zum Ausgeben der fehlerfreien Instanzkombination als die wiederhergestellte Instanz.
DE69928277T 1998-11-09 1999-11-09 Verfahren und vorrichtung zur ausführung von fehlerkorrektur durch kombination von zwei instanzen einer nachricht Expired - Lifetime DE69928277T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/188,755 US6209111B1 (en) 1998-11-09 1998-11-09 Error correction on a mobile device
US188755 1998-11-09
PCT/US1999/026393 WO2000028693A1 (en) 1998-11-09 1999-11-09 Method and apparatus for performing error correction by combining two instances of a message

Publications (2)

Publication Number Publication Date
DE69928277D1 DE69928277D1 (de) 2005-12-15
DE69928277T2 true DE69928277T2 (de) 2006-05-24

Family

ID=22694398

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69928277T Expired - Lifetime DE69928277T2 (de) 1998-11-09 1999-11-09 Verfahren und vorrichtung zur ausführung von fehlerkorrektur durch kombination von zwei instanzen einer nachricht

Country Status (6)

Country Link
US (2) US6209111B1 (de)
EP (1) EP1129539B1 (de)
JP (1) JP2002530008A (de)
AT (1) ATE309651T1 (de)
DE (1) DE69928277T2 (de)
WO (1) WO2000028693A1 (de)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010047394A1 (en) * 1999-09-10 2001-11-29 Kloba David D. System, method, and computer program product for executing scripts on mobile devices
US7392308B2 (en) * 1999-09-10 2008-06-24 Ianywhere Solutions, Inc. System, method, and computer program product for placement of channels on a mobile device
US6779042B1 (en) 1999-09-10 2004-08-17 Ianywhere Solutions, Inc. System, method, and computer program product for enabling on-device servers, offline forms, and dynamic ad tracking on mobile devices
US7987420B1 (en) 1999-09-10 2011-07-26 Ianywhere Solutions, Inc. System, method, and computer program product for a scalable, configurable, client/server, cross-platform browser for mobile devices
US20020052781A1 (en) * 1999-09-10 2002-05-02 Avantgo, Inc. Interactive advertisement mechanism on a mobile device
US8595308B1 (en) 1999-09-10 2013-11-26 Ianywhere Solutions, Inc. System, method, and computer program product for server side processing in a mobile device environment
US6687848B1 (en) * 2000-05-31 2004-02-03 Sun Microsystems, Inc. Techniques for preventing information loss in a business to business message in an enterprise computer system
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
FI113898B (fi) * 2000-11-21 2004-06-30 Nokia Corp Menetelmä sisällön tuottamiseksi langattomaan viestintälaitteeseen
US6882983B2 (en) * 2001-02-05 2005-04-19 Notiva Corporation Method and system for processing transactions
US8326754B2 (en) * 2001-02-05 2012-12-04 Oracle International Corporation Method and system for processing transactions
US7367027B1 (en) 2002-08-22 2008-04-29 Hewlett-Packard Development Company, L.P. System for generating efficient and compact update packages
US20040209676A1 (en) * 2002-11-18 2004-10-21 Takahiro Onishi Gaming machine
US20040193731A1 (en) * 2003-03-31 2004-09-30 Larry Mitchell Universal personal information connector architecture
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7873353B2 (en) * 2003-09-30 2011-01-18 Ianywhere Solutions, Inc. Method and system for accessing applications and data, and for tracking of key indicators on mobile handheld devices
JP4354268B2 (ja) * 2003-12-22 2009-10-28 株式会社河合楽器製作所 信号処理装置
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7415653B1 (en) 2004-04-21 2008-08-19 Sun Microsystems, Inc. Method and apparatus for vectored block-level checksum for file system data integrity
US7424574B1 (en) 2004-04-21 2008-09-09 Sun Microsystems, Inc. Method and apparatus for dynamic striping
US7603568B1 (en) 2004-04-21 2009-10-13 Sun Microsystems, Inc. Method and apparatus for self-validating checksums in a file system
US7281188B1 (en) * 2004-05-26 2007-10-09 Sun Microsystems, Inc. Method and system for detecting and correcting data errors using data permutations
US7412450B1 (en) 2004-05-26 2008-08-12 Sun Microsystems, Inc. Method and apparatus for identifying tampering of data in a file system
US7526622B1 (en) 2004-05-26 2009-04-28 Sun Microsystems, Inc. Method and system for detecting and correcting data errors using checksums and replication
US7496586B1 (en) 2004-05-26 2009-02-24 Sun Microsystems, Inc. Method and apparatus for compressing data in a file system
US7451325B2 (en) * 2004-08-02 2008-11-11 At&T Intellectual Property I, L.P. Methods, systems and computer program products for detecting tampering of electronic equipment by varying a verification process
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7533225B1 (en) 2004-08-17 2009-05-12 Sun Microsystems, Inc. Method and apparatus for enabling adaptive endianness
US7437528B1 (en) 2004-08-17 2008-10-14 Sun Microsystems, Inc. Gang blocks
US8135803B2 (en) * 2004-08-23 2012-03-13 Ianywhere Solutions, Inc. Method, system, and computer program product for offline advertisement servicing and cycling
US20060064470A1 (en) * 2004-09-23 2006-03-23 Sargent Antony J Method, system, and computer program product for improved synchronization efficiency for mobile devices, including database hashing and caching of web access errors
JP4541992B2 (ja) 2005-08-02 2010-09-08 キヤノン株式会社 ネットワーク機器及びその制御方法、及びプログラム
JP4541994B2 (ja) * 2005-08-11 2010-09-08 キヤノン株式会社 制御装置、制御方法及びプログラム
US7698061B2 (en) 2005-09-23 2010-04-13 Scenera Technologies, Llc System and method for selecting and presenting a route to a user
US8635190B2 (en) * 2005-11-04 2014-01-21 Oracle America, Inc. Method and system for pruned resilvering using a dirty time log
US7480684B2 (en) * 2005-11-04 2009-01-20 Sun Microsystems, Inc. Method and system for object allocation using fill counts
US7877554B2 (en) * 2005-11-04 2011-01-25 Oracle America, Inc. Method and system for block reallocation
US7689877B2 (en) * 2005-11-04 2010-03-30 Sun Microsystems, Inc. Method and system using checksums to repair data
US7930495B2 (en) * 2005-11-04 2011-04-19 Oracle America, Inc. Method and system for dirty time log directed resilvering
US7899989B2 (en) * 2005-11-04 2011-03-01 Oracle America, Inc. Method and system for using a block allocation policy
US7716445B2 (en) * 2005-11-04 2010-05-11 Oracle America, Inc. Method and system for storing a sparse file using fill counts
US7865673B2 (en) * 2005-11-04 2011-01-04 Oracle America, Inc. Multiple replication levels with pooled devices
US8495010B2 (en) * 2005-11-04 2013-07-23 Oracle America, Inc. Method and system for adaptive metadata replication
US7596739B2 (en) * 2005-11-04 2009-09-29 Sun Microsystems, Inc. Method and system for data replication
US20070112895A1 (en) * 2005-11-04 2007-05-17 Sun Microsystems, Inc. Block-based incremental backup
US7743225B2 (en) * 2005-11-04 2010-06-22 Oracle America, Inc. Ditto blocks
US8938594B2 (en) * 2005-11-04 2015-01-20 Oracle America, Inc. Method and system for metadata-based resilvering
US7925827B2 (en) * 2005-11-04 2011-04-12 Oracle America, Inc. Method and system for dirty time logging
US7873799B2 (en) * 2005-11-04 2011-01-18 Oracle America, Inc. Method and system supporting per-file and per-block replication
US20070106868A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Method and system for latency-directed block allocation
US8549051B2 (en) * 2005-11-04 2013-10-01 Oracle America, Inc. Unlimited file system snapshots and clones
US7716519B2 (en) * 2005-11-04 2010-05-11 Oracle America, Inc. Method and system for repairing partially damaged blocks
EP2025095A2 (de) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Geräteverwaltung in einem netzwerk
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
US7584229B2 (en) * 2006-10-31 2009-09-01 Sun Microsystems, Inc. Method and system for priority-based allocation in a storage pool
US7840657B2 (en) * 2006-10-31 2010-11-23 Oracle America, Inc. Method and apparatus for power-managing storage devices in a storage pool
US7783847B2 (en) 2006-10-31 2010-08-24 Oracle America Inc. Method and system for reallocating blocks in a storage pool
GB0623719D0 (en) * 2006-11-28 2007-01-10 Draeger Safety Uk Ltd A harness for use with breathing apparatus
US7792882B2 (en) * 2007-09-27 2010-09-07 Oracle America, Inc. Method and system for block allocation for hybrid drives
US8219595B2 (en) * 2008-02-14 2012-07-10 Hewlett-Packard Development Company, L.P. System and method for efficient remote data access for server management
US8095728B2 (en) * 2008-04-18 2012-01-10 Oracle America, Inc. Method and system for power aware I/O scheduling
US8037279B2 (en) * 2008-06-12 2011-10-11 Oracle America, Inc. Method and system for cross-domain data sharing
US8135907B2 (en) * 2008-06-30 2012-03-13 Oracle America, Inc. Method and system for managing wear-level aware file systems
US20120046995A1 (en) * 2009-04-29 2012-02-23 Waldeck Technology, Llc Anonymous crowd comparison
US8280858B2 (en) * 2009-06-29 2012-10-02 Oracle America, Inc. Storage pool scrubbing with concurrent snapshots
US8441396B2 (en) * 2010-11-12 2013-05-14 Honeywell International Inc. Systems and methods of providing error tolerant robust simplex wireless data for systems employing time correlated data transfer

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS589449A (ja) * 1981-06-11 1983-01-19 ゼネラル・エレクトリツク・カンパニイ デ−タ・メツセ−ジ復号方式
US4471345A (en) * 1982-03-05 1984-09-11 Sensormatic Electronics Corporation Randomized tag to portal communication system
SE445686B (sv) * 1984-11-26 1986-07-07 Ericsson Telefon Ab L M Forfarande for mottagning av radiosenda meddelanden samt mottagare for endamalet
JPH0287843A (ja) * 1988-09-26 1990-03-28 Hitachi Maxell Ltd データ伝送方法および表示装置
FR2655498B1 (fr) 1989-12-01 1994-09-16 Thomson Csf Procede de reconstitution d'un message a partir de la reception d'une repetition de sous-messages.
US5822527A (en) * 1990-05-04 1998-10-13 Digital Equipment Corporation Method and apparatus for information stream filtration using tagged information access and action registration
US5241548A (en) * 1991-05-23 1993-08-31 Motorola, Inc. Method for error correction of a transmitted data word
JP2940881B2 (ja) * 1991-09-20 1999-08-25 モトローラ・インコーポレイテッド 被送信データ・メッセージの拡張エラー訂正
JPH05347608A (ja) * 1992-06-15 1993-12-27 Matsushita Electric Ind Co Ltd データ連送装置
US5426653A (en) * 1993-07-28 1995-06-20 Motorola, Inc. Method and apparatus for performing error correction on a signal received by a radio communication device
JP3870978B2 (ja) * 1994-06-03 2007-01-24 ソニー株式会社 送信装置および送信方法、並びに受信装置および受信方法
US5987432A (en) * 1994-06-29 1999-11-16 Reuters, Ltd. Fault-tolerant central ticker plant system for distributing financial market data
AU695562B2 (en) 1994-07-28 1998-08-13 Koninklijke Philips Electronics N.V. Method of and system for communicating messages
US5968197A (en) * 1996-04-01 1999-10-19 Ericsson Inc. Method and apparatus for data recovery
US5745502A (en) * 1996-09-27 1998-04-28 Ericsson, Inc. Error detection scheme for ARQ systems
JPH10126391A (ja) * 1996-10-23 1998-05-15 Oi Denki Kk 選択呼出信号の誤り訂正方法及び誤り訂正装置
US5945986A (en) * 1997-05-19 1999-08-31 University Of Illinois At Urbana-Champaign Silent application state driven sound authoring system and method
US6067444A (en) * 1997-06-13 2000-05-23 Motorola, Inc. Method and apparatus for duplicate message processing in a selective call device
US6006258A (en) * 1997-09-12 1999-12-21 Sun Microsystems, Inc. Source address directed message delivery
US6216004B1 (en) * 1998-06-23 2001-04-10 Qualcomm Incorporated Cellular communication system with common channel soft handoff and associated method

Also Published As

Publication number Publication date
US6611937B1 (en) 2003-08-26
WO2000028693A9 (en) 2000-10-19
DE69928277D1 (de) 2005-12-15
EP1129539A1 (de) 2001-09-05
EP1129539B1 (de) 2005-11-09
JP2002530008A (ja) 2002-09-10
WO2000028693A1 (en) 2000-05-18
ATE309651T1 (de) 2005-11-15
US6209111B1 (en) 2001-03-27

Similar Documents

Publication Publication Date Title
DE69928277T2 (de) Verfahren und vorrichtung zur ausführung von fehlerkorrektur durch kombination von zwei instanzen einer nachricht
DE60203550T2 (de) Verfahren, System and Computerprogrammprodukt für die Synchronisation von verschiedenen Datenstrukturen durch Benutzung von Aktualisierungsmeldungen
DE10064627B4 (de) Verfahren und System für die Verarbeitung von E-Mail-Nachrichten in einem Datenübertragungssystem
DE60027247T2 (de) Verfahren und Systeme zur Konvertierung von Datenformaten
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
EP1353519B1 (de) Verfahren zur Übertragung von Kurznachrichten
DE60208466T2 (de) Verfahren und Vorrichtung zur Fehlerkorrektur der statischen Informationen im Kopffeld eines empfangenen Packets
DE10197248T5 (de) System und Verfahren für enfernte Dokumentrückgewinnung
DE112010003149T5 (de) Gemeinschaftliche Verschlüsselung und Entschlüsselung durch Agenten
DE60102663T2 (de) Darstellung von anwendungen in einem telekommunikationssystem
EP1588573B1 (de) Verfahren und system zum einfügen eines multimedia-nachricht-mehrfachelements in eine multimedia-nachricht
DE4427519C2 (de) Verfahren zur Faksimile-Kommunikation und Selektiv- rufkommunikationssystem
EP1484930B1 (de) Übertragungsrahmen und Funkeinheit für die Übertragung von Kurznachrichten mit verschiedenen Datenformaten
DE60206592T2 (de) Offset Sicherheitsverfahren zum Datenaustausch
DE69626486T2 (de) Verfahren und System zur Synchronisierung von Verschlüsselungs-/Entschlüsselungsschlüsseln in einem Datenkommunikationsnetz unter Verwendung von Markierungspaketen
DE10231958A1 (de) Direkt adressiertes Multicast-Protokoll
DE602004012707T2 (de) System und Verfahren zur Verarbeitung von Schriftartdaten
EP0884869A1 (de) Verfahren zur sicheren Anzeige bei der Übertragung von Daten oder Dateien zwischen Teilnehmern
DE69631954T2 (de) Spreizspektrumnachrichtenübertragungssystem
DE19900636A1 (de) Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem
EP1500222B1 (de) Verfahren und vorrichtung zur verwaltung eines speichers zur zwischenspeicherung von datenblöcken bei arq-übertragungssystemen
DE69935848T2 (de) System zur lieferung von daten über einen übertragungskanal mit niedrigen bitraten
DE602004010878T2 (de) Verfahren und Gerät zum Erleichtern der Abgabe von elektronischer Post durch einen Paketdienst oder einen Kurznachrichtendienst (SMS)
WO2005027548A1 (de) Verfahren zur übertragung von textnachrichten im textmode
DE602004009815T2 (de) Verfahren und Vorrichtung zum Verwalten der Speicherung von E-Mail-Informationen in einer Mobilstation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition