DE60207429T2 - Vorrichtung und verfahren zur bidirektionalen kommunikation und ausführung dynamischer befehlsätze - Google Patents
Vorrichtung und verfahren zur bidirektionalen kommunikation und ausführung dynamischer befehlsätze Download PDFInfo
- Publication number
- DE60207429T2 DE60207429T2 DE60207429T DE60207429T DE60207429T2 DE 60207429 T2 DE60207429 T2 DE 60207429T2 DE 60207429 T DE60207429 T DE 60207429T DE 60207429 T DE60207429 T DE 60207429T DE 60207429 T2 DE60207429 T2 DE 60207429T2
- Authority
- DE
- Germany
- Prior art keywords
- code
- server
- codes
- wireless communication
- library
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000007175 bidirectional communication Effects 0.000 title 1
- 238000004891 communication Methods 0.000 claims abstract description 145
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000002457 bidirectional effect Effects 0.000 claims description 2
- 230000002085 persistent effect Effects 0.000 abstract description 15
- 238000012545 processing Methods 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 32
- 230000006870 function Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 20
- 230000006835 compression Effects 0.000 description 15
- 238000007906 compression Methods 0.000 description 15
- 239000000284 extract Substances 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 229920001690 polydopamine Polymers 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000000157 electrochemical-induced impedance spectroscopy Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/35—Protecting application or service provisioning, e.g. securing SIM application provisioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
- H04W8/245—Transfer of terminal data from a network towards a terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/18—Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
- H04W8/20—Transfer of user or subscriber data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
- Transceivers (AREA)
- Telephonic Communication Services (AREA)
- Communication Control (AREA)
- Sub-Exchange Stations And Push- Button Telephones (AREA)
- Information Transfer Between Computers (AREA)
- Circuits Of Receivers In General (AREA)
- Selective Calling Equipment (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Description
- Hintergrund
- 1. Gebiet der Erfindung
- Die Erfindung betrifft allgemein das Gebiet drahtloser Kommunikation und betrifft insbesondere Zwei-Wege-Kommunikation von dynamischen Befehlssätzen zwischen einem Mobilteil und einem drahtlosen Kommunikationsnetzwerk.
- 2. Stand der Technik
- Herkömmliche drahtlose Kommunikationsvorrichtungen werden typischerweise zu isolierten Computerplattformen, wenn sie einmal ausgegeben sind, d.h. an einen Verbraucher verkauft sind. Diese herkömmlichen drahtlosen Kommunikationsvorrichtungen weisen extrem beschränkte oder keine Fähigkeiten zum Kommunizieren von Daten, wie zum Beispiel Betriebs- oder Instandhaltungsdaten mit einem Stammnetzwerk auf. Dieser Mangel an Datenkommunikationsfähigkeit stellt an den Provider der drahtlosen Kommunikationsvorrichtung beträchtliche Herausforderungen bezüglich eines Aktualisierens der Software, die auf der Vorrichtung ausgeführt wird, und eines Erhaltens von Betriebs- oder Instandhaltungsdaten der Vorrichtung. Zum Upgraden des Betriebssystems eines Mobiltelefons muss der Verbraucher beispielsweise das Telefon physisch in eine Kundendienststelle bringen, wo ein Techniker das Telefon in einen Computer einstecken muss, um das Telefon upzugraden. Das gleiche gilt für das Durchführen umfassender oder tiefgreifender Untersuchungen auf einem Mobiltelefon.
- Die herkömmlichen Lösungen zum Aktualisieren einer drahtlosen Kommunikationsvorrichtung oder zum Erhalten von Informationen von solch einer Vorrichtung erfordern im Allgemeinen, dass die Vorrichtung in eine Kundendienststelle gebracht wird, wo ein Techniker die Vorrichtung zum Aktualisieren seiner Softwareprogramme oder zum Erhalten von Daten der Vorrichtung bedienen kann. Das ist für sowohl den Verbraucher als auch den Provider der Vorrichtung extrem kostenaufwändig.
- Zusätzlich erfordern herkömmliche Verfahren zum Aktualisieren einer drahtlosen Kommunikationsvorrichtung oder zum Erhalten von Informationen von solch einer Vorrichtung im Allgemeinen eine festverdrahtete Verbindung mit der Vorrichtung. Das verkompliziert die Aktualisierungs- und Instandhaltungsnotwendigkeiten für die drahtlose Kommunikationsvorrichtung weiter, da es spezielle Kabel erfordert und sogar erfordert, das die Vorrichtung selbst eine festverdrahtete Schnittstelle aufweist. Diese Zwänge treiben sowohl die Herstellungs- als auch die Instandhaltungskosten einer drahtlosen Kommunikationsvorrichtung nach oben, während ebenfalls die Lebensdauer der Vorrichtung verkürzt wird.
- Schließlich sind herkömmliche Verfahren zur Datenkommunikation mit einer drahtlosen Kommunikationsvorrichtung unidirektional. Herkömmliche Netzwerke weisen die Fähigkeit zum Bereitstellen von Anwendungssoftware und Daten auf der drahtlosen Kommunikationsvorrichtung auf. Zusätzlich können herkömmliche drahtlose Kommunikationsvorrichtungen die Fähigkeit aufweisen, auf solch eine Kommunikation mit begrenzten Einrichtungsdaten und Statusinformationen zu antworten. Diese begrenzte Master-Slave-Kommunikationsfähigkeit, die in herkömmlichen Systemen vorgefunden wird, leidet jedoch an der Unfähigkeit der drahtlosen Kommunikationsvorrichtung zum Einleiten einer Kommunikation mit dem Netzwerk.
- Eine bestimmte Anzahl von Stand-der-Technik-Dokumenten offenbart solche Verfahren zur unidirektionalen Datenkommunikation mit einer drahtlosen Kommunikationsvorrichtung.
- Das veröffentlichte US-Patent US-B-6 247 065 offenbart eine Nachrichtenplattform, die eingerichtet ist, Informationspakete, die eine oder eine Mehrzahl von Ausführungs-Befehlssätzen (EISs, Execution Instruction Sets) aufweisen, zu empfangen und danach zu handeln, wobei die EIS wie angegeben ausgeführt werden.
- Die veröffentlichte europäische Patentanmeldung EP-A 0 459 344 offenbart eine Vorrichtung zum Herunterladen eines Software-Programms für ein Mobiltelefon, um häufige Änderungen des Betriebsprogramms des Telefons zu erlauben.
- Das veröffentlichte US-Patent US-A-5 699 275 offenbart ein System zum entfernten Korrigieren oder Aktualisieren des Betriebskodes in einer Mobileinheit. Ein Verwaltungs-Hostrechner leitet die Übertragung durch ein Kommunikationsnetzwerk von einer oder einer Mehrzahl von Patch-Nachrichten ein. Die Mobileinheit empfängt diese Patch-Nachrichten und erzeugt einen Patch-Betriebskode. Die Mobileinheit kann auch Download-Nachrichten empfangen, die einen neuen Betriebskode zum Ersetzen des aktuellen definieren.
- Das veröffentlichte US-Patent US-A-6 023 620 offenbart ein Verfahren und eine Vorrichtung zum Herunterladen von Software in ein entfernt angeordnetes Mobiltelefon mittels drahtloser Kommunikation.
- Alle Systeme, die in diesen Stand-der-Technik-Dokumenten offenbart sind, leiden an der oben genannten Unfähigkeit.
- Folglich ist, was gebraucht wird, ein System und ein Verfahren, die diese beträchtlichen Probleme überwinden, die in den herkömmlichen Systemen, wie oben beschrieben, gefunden werden.
- Zusammenfassung
- Einmal verteilt, werden herkömmliche drahtlose Kommunikationsvorrichtungen zu isolierten Rechnerplattformen mit extrem beschränkten oder ohne Fähigkeiten zum Instandhalten einer Datenkommunikation mit einem Stammnetzwerk. Dieser Mangel an Datenkommunikationsfähigkeit stellt beträchtliche Herausforderungen bezüglich des Aktualisierens der Software, die auf der drahtlosen Kommunikationsvorrichtung ausgeführt wird, und dem Ableiten von Betriebsdaten der Vorrichtung. Zusätzlich mangelt es herkömmlichen drahtlosen Kommunikationsvorrichtungen an der Fähigkeit zum Einleiten von Anfragen nach Informationen oder Software-Aktualisierungen, die ihre Fähigkeit zum Interagieren mit ihrer Umgebung verbessern können.
- Es ist ein Ziel der Erfindung, Systeme und Verfahren für bidirektionale Kommunikation dynamischer Befehlssätze zwischen einem Handgerät und einem drahtlosen Kommunikationsnetzwerk bereitzustellen. Ein dynamischer Befehlssatz, z.B. ein oder eine Mehrzahl von Patchmanager-Laufzeitbefehlen (PMRTI, patch manager run time instructions), stellt eine eigenständige Funktion oder eine eigenständige Aktion dar, der von der Empfangsvorrichtung auszuführen ist. Das drahtlose Kommunikationsnetzwerk kann einen dynamischen Befehlssatz an ein Handgerät senden, um das Handgerät anzuweisen, bestimmte Vorgänge, wie zum Beispiel Zurückberichten des Status an das Netzwerk, durchzuführen. In ähnlicher Weise stellt die Erfindung für das Handgerät ein Kompilieren eines dynamischen Befehlssatzes, z.B. eines oder einer Mehrzahl umgekehrter Patchmanager-Laufzeitbefehle (RPMRTI, reverse patch manager run time instructions), und ein Senden des Befehlssatzes zur Ausführung an das Netzwerk bereit. Diese Fähigkeit erlaubt es dem Handgerät, Informationen, Software oder andere Daten bereitzustellen oder anzufordern, die dem Handgerät das Ausführen wünschenswerter Funktionen erlauben.
- Das Ziel der Erfindung wird durch die Vorrichtungen und das Verfahren, die in den unabhängigen Ansprüchen beschrieben sind, erreicht. Andere Ausführungsbeispiele dieser Vorrichtungen und Verfahren sind in den abhängigen Ansprüchen beschrieben.
- Kurzbeschreibung der Zeichnungen
- Die Details der Erfindung, sowohl ihrer Struktur als auch ihres Betriebs, können durch Studieren der begleitenden Zeichnungen nachgelesen werden, in denen ähnliche Bezugszeichen gleiche Teile bezeichnen, und in denen:
-
1 ein schematisches Blockdiagramm des gesamten drahtlosen Vorrichtungssoftware-Instandhaltungssystems ist; -
2 ein schematisches Blockdiagramm des Software-Instandhaltungssystems ist, das die Installation von Befehlssätzen über die Luftschnittstellen-Kommunikationsverbindung betont; -
3 ein schematisches Blockdiagramm ist, das das Erfindungssystem zum Ausführen dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung darstellt; -
4 ein schematisches Blockdiagramm der Speichervorrichtung der drahtlosen Vorrichtung ist; -
5 eine Tabelle ist, die die Kodeabschnitt-Adresstabelle aus3 darstellt; -
6 eine detaillierte Abbildung von Symbolbibliothek Eins aus3 mit Symbolen ist; -
7 eine Tabelle ist, die die Symboloffset-Adresstabelle aus3 darstellt; -
8 eine Abbildung des Betriebskodes ("opcodes") ist, auf den von der Laufzeit-Engine zugegriffen wird; -
9 eine detailliertere Abbildung des ersten Betriebskodes aus8 ist; -
10 ein Flussdiagramm ist, das das erfindungsgemäße Verfahren zum Ausführen dynamischer Befehlssätze auf einer drahtlosen Kommunikationsvorrichtung darstellt; -
11 ein Flussdiagramm ist, das eine beispielhafte Ausführung eines dynamischen Befehlssatzes darstellt; -
12 ein Flussdiagramm ist, das eine andere beispielhafte Ausführung eines dynamischen Befehlssatzes darstellt; -
13 ein Flussdiagramm ist, das eine dritte beispielhafte Ausführung eines dynamischen Befehlssatzes darstellt; -
14 ein Flussdiagramm ist, das eine vierte beispielhafte Ausführung eines dynamischen Befehlssatzes darstellt; -
15 ein Flussdiagramm ist, das eine fünfte beispielhafte Ausführung eines dynamischen Befehlssatzes darstellt; -
16 ein High-Level-Netzwerkdiagramm ist, das ein beispielhaftes drahtloses Kommunikationsnetzwerk darstellt; -
17A ein Blockdiagramm ist, das eine beispielhafte drahtlose Kommunikationsvorrichtung darstellt; -
17B ein Blockdiagramm ist, das einen beispielhaften entfernten Laufzeit-Anweisungs-Befehlsabschnitt darstellt; -
18A ein Blockdiagramm ist, das einen beispielhaften PMRTI-Server darstellt; -
18B ein Blockdiagramm ist, das einen beispielhaften Serverrechner-Laufzeitanweisungs-Befehlsabschnitt darstellt; -
19 ein Flussdiagramm ist, das einen beispielhaften Prozess zum Ausführen dynamischer Befehlssätze auf einer drahtlosen Kommunikationsvorrichtung darstellt; -
20 ein Flussdiagramm ist, das einen beispielhaften Prozess zum Kompilieren dynamischer Befehlssätze auf einer drahtlosen Kommunikationsvorrichtung darstellt; -
21 ein Flussdiagramm ist, das einen beispielhaften Prozess zum Ausführen dynamischer Befehlssätze auf einem PMRTI-Serverrechner darstellt; -
22 ein Flussdiagramm ist, das einen beispielhaften Prozess zum Synchronisieren von Betriebskode-Bibliotheken darstellt; und -
23 ein Blockdiagramm ist, das ein beispielhaftes Computersystem darstellt, das in Verbindung mit verschiedenen hierin beschriebenen Ausführungsbeispielen verwendet werden kann. - Detaillierte Beschreibung
- Systeme und Verfahren zur bidirektionalen Kommunikation dynamischer Befehlssätze zwischen einer drahtlosen Kommunikationsvorrichtung und einem drahtlosen Kommunikationsnetzwerk sind offenbart. Ein hierin offenbartes Verfahren erlaubt es zum Beispiel einer drahtlosen Kommunikationsvorrichtung, einen Befehlssatz dynamisch zu konstruieren und diesen Befehlssatz zum Ausführen und Verarbeiten an das Netzwerk zu senden.
- Nach dem Lesen dieser Beschreibung wird es für Fachleute offensichtlich, wie die Erfindung in verschiedenen alternativen Ausführungsbeispielen und alternativen Anwendungen implementiert werden kann. Obwohl jedoch verschiedene Ausführungsbeispiele der Erfindung hierin beschreiben sind, ist verständlich, dass diese Ausführungsbeispiele nur mittels Beispiel und nicht mittels Beschränkung präsentiert sind. Folglich soll diese detaillierte Beschreibung verschiedener alternativer Ausführungsbeispiele nicht so ausgelegt werden, den Umfang oder die Breite der Erfindung, wie in den angefügten Ansprüchen erklärt, zu begrenzen.
- Einige Abschnitte der detaillierten Beschreibungen, die folgen, sind in Begriffen von Prozeduren, Schritten, Logik-Blöcken, Kodes, Verarbeitung und anderen symbolischen Darstellungen von Vorgängen auf Datenbits innerhalb eines drahtlosen Vorrichtungs-Mikroprozessors oder -Speichers dargestellt. Diese Beschreibungen und Darstellungen sind die Mittel, die von Datenverarbeitungsfachleuten verwendet werden, die am effektivsten den Kern ihrer Arbeit anderen Fachleuten vermitteln. Eine Prozedur, ein Mikroprozessorausgeführter Schritt, eine Anwendung, ein Logikblock, ein Prozess usw. ist hier und allgemein als eine selbstkonsistente Abfolge von Schritten oder Befehlen vorgestellt, die zu einem gewünschten Ergebnis führen. Die Schritte sind jene, die physikalische Manipulationen physikalischer Größen erfordern. Üblicherweise, aber nicht notwendigerweise, nehmen diese Größen die Form von elektrischen oder magnetischen Signalen an, die fähig sind, gespeichert, übertragen, kombiniert, verglichen und anders in einer Mikroprozessor-basierten drahtlosen Vorrichtung manipuliert zu werden. Es wurde beizeiten bequem gefunden, hauptsächlich aus Gründen des allgemeinen Gebrauchs, diese Signale als Bits, Werte, Elemente, Symbole, Buchstaben, Ausdrücke, Zahlen oder ähnliches zu bezeichnen. Wo physikalische Vorrichtungen, wie z.B. eine Speichervorrichtung erwähnt sind, sind sie mit anderen physikalischen Vorrichtungen mittels eines Busses oder anderer elektrische Verbindungen gekoppelt. Es kann angenommen werden, dass diese physikalischen Vorrichtungen mit logischen Prozessen oder Anwendungen interagieren und folglich mit logischen Vorgängen "gekoppelt" sind. Zum Beispiel kann eine Speichervorrichtung Kode speichern oder darauf zugreifen, um einen logischen Vorgang zu fördern, oder eine Anwendung kann einen Kodeabschnitt aus der Speichervorrichtung zur Ausführung aufrufen.
- Es sollte jedoch nicht vergessen werden, dass alle diese und ähnliche Begriffe geeigneten physikalischen Größen zugeordnet sind und nur bequeme Begriffe sind, die auf diese Größen angewendet werden. Solange nicht spezifisch anders ausgedrückt, als aus der folgenden Diskussionen offensichtlich ist, wird verstanden, das in der gesamten Erfindung Diskussionen, die Begriffe, wie zum Beispiel "Verarbeiten" oder "Koppeln" oder "Übersetzen" oder "Anzeigen" oder "Beantworten" oder "Bestimmen" oder "Anzeigen" oder "Erkennen" oder ähnliche verwenden, die Aktion und Prozesse in einem Mikroprozessorsystem einer drahtlosen Vorrichtung bezeichnen, die Daten, die als physikalische (elektronische) Größen innerhalb der Register und Speichervorrichtungen des Computersystems dargestellt sind, manipulieren und in andere Daten umwandeln, die in ähnlicher Weise als physikalische Größen innerhalb der Speichervorrichtungen oder Register der drahtlosen Vorrichtung oder anderer solcher Informationsspeicher-, Übertragungs- oder Anzeigevorrichtungen dargestellt sind.
-
1 ist ein schematisches Blockdiagramm des gesamten drahtlosen Vorrichtungssoftware-Instandhaltungssystems100 . Die Systemsoftwareorganisation der Erfindung ist im Detail unten dargestellt, einer allgemeinen Übersicht des Software-Instandhaltungssystems100 folgend. Das allgemeine System100 beschreibt einen Prozess zum Liefern von Systemsoftware-Aktualisierungen und -Befehlssätzen (Programmen) und Installieren der gelieferten Software in einer drahtlosen Vorrichtung. Systemsoftware-Aktualisierungen und Patchmanager-Laufzeitbefehle (PMRTI, patch manager run time instructions), die allgemeiner als Befehlssätze oder dynamische Befehlssätze bekannt sind, sind von dem Hersteller der Handgeräte erzeugt. Die Systemsoftware ist in Symbolbibliotheken organisiert. Die Symbolbibliotheken sind in Kodeabschnitten angeordnet. Wenn Symbolbibliotheken upgedated werden, wird die Softwareaktualisierung102 als ein Kodeabschnitt oder eine Mehrzahl von Kodeabschnitten transportiert. Die Softwareaktualisierung wird an drahtlose Vorrichtungen im Gebiet gesendet, von denen eine drahtlose Kommunikationsvorrichtung104 repräsentativ ist, oder in getrennter Übertragung von einer Basisstation106 unter Verwendung bekannter herkömmlicher Funk-, Daten- oder Nachrichten-Transportprotokolle übermittelt. Die Erfindung ist nicht auf ein bestimmtes Transportformat beschränkt, da die drahtlose Kommunikationsvorrichtung einfach modifiziert werden kann, um jedes verfügbare Funk-Transportprotokoll zum Zwecke des Empfangs von Systemsoftware und von PMRTI-Aktualisierungen zu verarbeiten. - Die Systemsoftware kann als eine Sammlung verschiedener Subsysteme angesehen werden. Kodeobjekte können eng in eines dieser abstrakten Subsysteme gekoppelt sein und die resultierende Sammlung kann als eine Symbolbibliothek bezeichnet werden. Das schafft eine logische Aufschlüsselung der Kodebasis, und Softwarekorrekturen (patch) und -Fixes können einer dieser Symbolbibliotheken zugeordnet werden. In den meisten Fällen ist eine einzelne Aktualisierung einer, oder höchstens zwei, Symbolbibliotheken zugeordnet. Der Rest der Kodebasis, die anderen Symbolbibliotheken, bleiben unverändert.
- Die Vorstellung von Symbolbibliotheken schafft einen Mechanismus zum Umgehen mit Kode und Kostanten. Andererseits passen die Lese-Schreib (RW, read-write)-Daten in eine einzigartige individuelle RW-Bibliothek, die RAM-basierte Daten für alle Bibliotheken aufweist.
- Einmal von der drahtlosen Vorrichtung
104 empfangen, muss der transportierte Kodeabschnitt verarbeitet werden. Diese drahtlose Vorrichtung überschreibt einen spezifischen Kodeabschnitt des nichtflüchtigen Speichers108 . Der nichtflüchtige Speicher108 weist einen Dateisystemabschnitt (FSS, file system section)110 und einen Kodespeicherabschnitt112 auf. Der Kodeabschnitt ist typischerweise vor dem Transport komprimiert zum Minimieren des Belegung in dem FSS110 . Oft wird der upgedatete Kodeabschnitt von seinen RW-Daten begleitet sein, die ein anderer Typ von Symbolbibliothek ist, die alle RW-Daten für jede Symbolbibliothek aufweist. Obwohl in die flüchtige Lese-Schreib-Speichervorrichtung114 mit wahlfreiem Zugriff geladen, wenn die Systemsoftware ausgeführt wird, müssen die RW-Daten immer in der nichtflüchtigen Speichervorrichtung108 gespeichert werden, damit sie jedes Mal, wenn die drahtlose Vorrichtung resettet wird, in die flüchtige Lese-Schreib-Speichervorrichtung114 mit wahlfreiem Zugriff geladen werden können. Das schließt ein, dass die ersten RW-Daten in die flüchtigen Lese-Schreib-Speichervorrichtung mit wahlfreiem Zugriff geladen werden. Wie unten detaillierter erklärt ist, sind die RW-Daten typischerweise mit einem Patchmanager-Kodeabschnitt angeordnet. - Das System
100 weist das Konzept virtueller Tabellen auf. Unter Verwendung solcher Tabellen können Symbolbibliotheken in einem Kodeabschnitt korrigiert (ersetzt) werden, ohne andere Teile der System Software (oder Kodeabschnitte) aufzubrechen (ersetzen). Virtuelle Tabellen werden aus Effizienzgründen aus der flüchtigen Lese-Schreib-Speichervorrichtung114 für wahlfreien Zugriff ausgeführt. Eine Kodeabschnitt-Adresstabelle und eine Symboloffset-Adresstabelle sind virtuelle Tabellen. - Die upgedateten Kodeabschnitte werden von der drahtlosen Vorrichtung
104 empfangen und in dem FSS110 gespeichert. Eine drahtlose Vorrichtungs-Benutzerschnittstelle (UI, user interface) wird typischerweise den Benutzer benachrichtigen, dass neue Software verfügbar ist. In Antwort auf UI-Bereitschaftsmeldungen bestätigt der Benutzer die Meldung und signalisiert den Patch- oder Aktualisierungs-Vorgang. Alternativ wird der Aktualisierungs-Vorgang automatisch durchgeführt. Die drahtlose Vorrichtung kann zum Durchführen von Standard-Kommunikationsaufgaben unfähig sein, wenn der Aktualisierungsprozess durchgeführt wird. Der Patchmanager-Kodeabschnitt weist eine nichtflüchtige Lese-Schreib-Treiber-Symbolbibliothek auf, die auch in die flüchtige Lese-Schreib-Speichervorrichtung114 mit wahlfreiem Zugriff geladen wird. Die nichtflüchtige Lese-Schreib-Treiber-Symbolbibliothek bewirkt, das Kodeabschnitte mit upgedateten Kodeabschnitten überschrieben werden. Der Patchmanager-Kodeabschnitt weist die Lese-Schreib-Daten, die Kodeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle, genauso wie einen Symbolzugriffskode und die Symbolzugriffskodeadresse (unten diskutiert) auf. Abschnitte dieser Daten sind ungültig, wenn upgedatete Kodeabschnitte eingeführt werden und Kodeabschnitte eines upgedateten Patchmanagers Lese-Schreib-Daten, eine Kodeabschnitt-Adresstabelle und eine Symboloffset-Adresstabelle aufweisen, die für die upgedateten Kodeabschnitte gültig sind. Wenn die upgedateten Kodeabschnitte in den Kodespeicherabschnitt112 geladen sind, ist die drahtlose Vorrichtung zurückgesetzt. Der Resetoperation folgend, kann die drahtlose Vorrichtung die upgedatete Systemsoftware ausführen. Es sollte auch verstanden werden, dass der Patchmanager-Kodeabschnitt andere Symbolbibliotheken aufweisen kann, die oben nicht diskutiert wurden. Diese anderen Symbolbibliotheken brauchen nicht in die flüchtige Lese-Schreib-Speichervorrichtung114 geladen sein. -
2 ist ein schematisches Blockdiagramm des Software-Instandhaltungssystems100 , das die Installation von Befehlssätzen über die Luftschnittstellen-Kommunikationsverbindung hervorhebt. Zusätzlich zum Aktualisieren von Systemsoftware-Kodeabschnitten kann das Instandhaltungssystem100 dynamische Befehlssätze, Programme oder Patchmanager-Befehlssätze (PMIS, patch manager instruction sets), die hierin als Patchmanager-Laufzeitbefehle (PMRTI, patch manager run time instructions) bezeichnet werden, herunterladen und installieren. Der PMRTI-Kodeabschnitt200 wird auf die gleiche Weise zu der drahtlosen Vorrichtung104 transportiert wie die oben beschriebenen Systemsoftware-Kodeabschnitte. PMRTI- Kodeabschnitte sind anfänglich in dem FSS110 gespeichert. Ein PMRTI-Kodeabschnitt ist typischerweise eine Binärdatei, die als kompilierte Befehle für das Handgerät vorgestellt werden kann. Ein PMRTI-Kodeabschnitt ist umfassend genug zum Bereitstellen für die Leistung von grundlegenden mathematischen Operationen und die Leistung von bedingt ausgeführten Operationen. Zum Beispiel kann ein RF-Kalibrierungs-PMRTI die folgenden Operationen durchführen:
IF RF CAL ITEM IS LESS THAN X
EXECUTE INSTRUCTION
ELSE
EXECUTE INSTRUCTION - Ein PMRTI kann grundlegende mathematische Operationen unterstützen, wie zum Beispiel: Addition, Subtraktion, Multiplikation und Division. Wie bei den Systemsoftware-Kodeabschnitten kann der PMRTI-Kodeabschnitt in Antwort auf UI-Bereitschaftsmeldungen geladen werden und die drahtlose Vorrichtung muss resettet werden, nachdem die PMRTI in den Kodespeicherabschnitt
112 geladen ist. Dann kann der PMRTI-Abschnitt ausgeführt werden. Falls der PMRTI-Kodeabschnitt virtuellen Tabellen oder Lese-Schreib-Daten zugeordnet ist, wird ein upgedateter Patchmanager-Kodeabschnitt mit dem PMRTI transportiert zur Installation in dem Kodespeicherabschnitt112 . Alternativ kann der PMRTI gehalten und aus dem FSS1120 verarbeitet werden. Nachdem das Handgerät104 alle Befehle im PMRTI-Abschnitt ausgeführt hat, kann der PMRTI-Abschnitt aus dem FSS110 gelöscht werden. Alternativ wird der PMRTI für zukünftige Vorgänge aufrechterhalten. Zum Beispiel kann der PMRTI jedes Mal aufgeführt werden, wenn die drahtlose Vorrichtung mit Energie versorgt wird. - Der PMRTI ist eine sehr leistungsstarke Laufzeitbefehls-Engine. Das Handgerät kann jeden Befehl ausführen, der an sie durch die PMRTI-Umgebung geliefert wird. Dieser Mechanismus kann zum Unterstützen von RF-Kalibrierungen verwendet werden. Allgemeiner kann der PMRTI zum entfernten Debuggen einer drahtlosen Vorrichtungssoftware verwendet werden, wenn Softwareprobleme von dem Hersteller oder Dienstanbieter erkannt werden, typischerweise als das Ergebnis von Benutzerbeschwerden. Der PMRTI kann auch Daten aufzeichnen, die für Diagnose-Softwareprobleme benötigt werden. Der PMRTI kann neu heruntergeladene Systemanwendungen für Datenanalyse, Debuggen und Fixes starten. Der PMRTI kann RW-Daten-basierte Aktualisierungen für Analysen bereitstellen und möglicherweise kurzfristige Fixes auf ein Problem anstelle eines upgedateten Systemsoftware-Kodeabschnitts. Der PMRTI kann Speicherkomprimierungsalgorithmen zum Gebrauch durch die drahtlose Vorrichtung bereitstellen.
- In einigen Aspekten der Erfindung kann die Organisation der Systemsoftware in Systembibliotheken auf die Größe der flüchtigen Speichervorrichtung
114 und der nichtflüchtigen Speichervorrichtung108 , die zur Ausführung benötigt sind, Einfluss haben. Das ist aufgrund der Tatsache, dass die Kodeabschnitte typischerweise größer sind als die Symbolbibliotheken, die in den Kodeabschnitten angeordnet sind. Diese größeren Kodeabschnitte existieren zum Aufnehmen upgedateter Kodeabschnitte. Das Organisieren der Systemsoftware als Sammlung von Bibliotheken hat Auswirkungen auf die Größenerfordernisse der nichtflüchtigen Speichervorrichtung. Für die gleiche Kodegröße, wird die verwendete Menge von nichtflüchtigen Speicher größer sein aufgrund der Tatsache, dass Kodeabschnitte eine Größe haben können, die größer ist als die Symbolbibliotheken, die darin angeordnet sind. - Wenn Softwareaktualisierungen an die drahtlose Vorrichtung geliefert wurden, unterstützt das Software-Instandhaltungssystem
100 eine Speicherkomprimierung. Speicherkomprimierung ist den Disk-Defragmentierungs-Anwendungen in Desktop-Computern ähnlich. Der Komprimierungsmechanismus stellt sicher, dass Speicher optimal genutzt wird und für zukünftige Kodeabschnittaktualisierungen gut ausgeglichen ist, wo die Größe der upgedateten Kodeabschnitte unvorhersehbar ist. Das System100 analysiert den Kodespeicherabschnitt, wenn er korrigiert (upgedatet) wird. Das System100 versucht, upgedatete Kodeabschnitte an den Speicherplatz anzupassen, der von dem Kodeabschnitt besetzt ist, der ersetzt wird. Falls der upgedatete Kodeabschnitt größer ist als der Kodeabschnitt, der ersetzt wird, komprimiert das System100 die Kodeabschnitte im Speicher112 . Alternativ kann die Komprimierung von dem Hersteller oder Dienstanbieter berechnet werden und Komprimieranweisungen können zu der drahtlosen Vorrichtung104 transportiert werden. - Komprimierung kann aufgrund der Komplexität des Algorithmus und auch der enormen Menge an Datenbewegung ein zeitaufwändiger Prozess sein. Der Komprimieralgorithmus sagt die Durchführbarkeit vorher, bevor er irgendeine Verarbeitung beginnt. UI-Bereitschaftsmeldungen können zum Ersuchen nach der Erlaubnis des Benutzers verwendet werden, bevor die Komprimierung versucht wird.
- In einigen Aspekten der Erfindung können alle Systemsoftware-Kodeabschnitte gleichzeitig upgedatet werden. Ein vollständiges Systemsoftwareupgrade jedoch würde ein größeres FSS
110 benötigen. -
3 ist ein schematisches Blockdiagramm, das die dynamische Befehlssatzausführung der Erfindung in einer drahtlosen Kommunikationsvorrichtung darstellt. Das System300 weist einen Kodespeicherabschnitt112 im Speicher108 auf, der ausführbare drahtlose Vorrichtungs-Systemsoftware aufweist, die in eine Mehrzahl von aktuellen Kodeabschnitten differenziert ist. Kodeabschnitt Eins (302 ), Kodeabschnitt Zwei (304 ), Kodeabschnitt n (306 ) und ein Patchmanager-Kodeabschnitt308 sind gezeigt. Jedoch ist die Erfindung nicht auf eine bestimmte Anzahl von Kodeabschnitten beschränkt. Ferner weist das System300 weiter eine erste Mehrzahl von Symbolbibliotheken auf, die in die zweite Mehrzahl von Kodeabschnitten angeordnet sind. Gezeigt sind eine Symbolbibliothek Eins (310 ), die im Kodeabschnitt Eins (302 ) angeordnet ist, Symbolbibliotheken Zwei (312 ) und Drei (314 ), die in dem Kodeabschnitt Zwei (304 ) angeordnet sind, und Symbolbibliothek m (316 ), die in dem Kodeabschnitt n (306 ) angeordnet ist. Jede Bibliothek weist Symbole auf mit in Zusammenhang stehender Funktionalität. Zum Beispiel kann die Symbolbibliothek Eins (310 ) in dem Betrieb der Flüssigkristallanzeige (LCD) der drahtlosen Vorrichtung involviert sein. Dann wären die Symbole mit Anzeigefunktionen zugeordnet. Wie im Detail unten erklärt ist, sind zusätzliche Symbolbibliotheken in dem Patchmanager-Kodeabschnitt308 angeordnet. -
4 ist ein schematische Blockdiagramm des Speichers der drahtlosen Vorrichtung. Wie gezeigt, ist der Speicher der Kodespeicherabschnitt112 aus1 . Die Speichervorrichtung ist ein beschreibbarer, nichtflüchtiger Speicher, wie zum Beispiel eine Flash-Speichervorrichtung. Es sollte verstanden werden, dass die Kodeabschnitte nicht notwendigerweise in der gleichen Speichervorrichtung gespeichert zu werden brauchen wie die FSS110 . Es sollte auch verstanden werden, dass die Systemsoftwarestruktur der Erfindung mit Kodeabschnitten ermöglicht sein könnte, die in einer Mehrzahl von kooperierenden Speichervorrichtungen gespeichert sind. Der Kodespeicherabschnitt112 weist eine zweite Mehrzahl von fortlaufend adressierten Speicherblöcken auf, wo jeder Speicherblock einen entsprechenden Kodeabschnitt von der der zweiten Mehrzahl von Kodeabschnitten speichert. Folglich ist der Kodeabschnitt Eins (302 ) in einem ersten Speicherblock400 gespeichert, Kodeabschnitt Zwei (304 ) in dem zweiten Speicherblock402 , Kodeabschnitt n (306 ) in dem n-ten Speicherblock404 und der Patchmanager-Kodeabschnitt (308 ) in dem p-ten Speicherblock406 . - In
3 und4 ist der Start jedes Kodeabschnitts an entsprechenden Startadressen in der Speichervorrichtung gespeichert und Symbolbibliotheken sind zum Starten am Start der Kodeabschnitte angeordnet. Das heißt, jede Symbolbibliothek beginnt mit einer ersten Adresse und läuft aufeinander folgend von der ersten Adresse durch einen Bereich von Adressen. Zum Beispiel startet der Kodeabschnitt Eins (302 ) an der ersten Startadresse408 (markiert mit "S") in der Kodespeicherabschnitt-Speichervorrichtung112 . In3 startet die Symbolbibliothek Eins (310 ) am Start318 des ersten Kodeabschnitts. In ähnlicher Weise startet der Kodeabschnitt Zwei (304 ) an einer zweiten Startadresse410 (4 ) und die Symbolbibliothek Zwei startet am Start320 des Kodeabschnitts Zwei (3 ). Der Kodeabschnitt n (306 ) startet an einer dritten Startadresse412 in der Kodespeicherabschnitt-Speichervorrichtung112 (4 ) und Symbolbibliothek m (316 ) startet am Start des Kodeabschnitts n322 (3 ). Der Patchmanager-Kodeabschnitt startet an der p-ten Startadresse414 in der Kodespeicherabschnitt-Speichervorrichtung112 und die erste Symbolbibliothek im Patchmanager-Kodeabschnitt308 startet am Start324 des Patchmanager-Kodeabschnitts. Folglich ist die Symbolbibliothek Eins (310 ) schließlich in dem ersten Speicherblock400 gespeichert. Falls ein Kodeabschnitt eine Mehrzahl von Symbolbibliotheken aufweist, wie zum Beispiel Kodeabschnitt Zwei (304 ), sind die Mehrzahl von Symbolbibliotheken in dem entsprechenden Speicherblock gespeichert, in diesem Fall im zweiten Speicherblock402 . - In
3 weist das System300 ferner eine Kodeabschnitt-Adresstabelle326 als ein Symboltyp auf, der in einer Symbolbibliothek enthalten ist, die in dem Patchmanager-Kodeabschnitt308 angeordnet ist. Die Kodeabschnitt-Adresstabelle macht Querverweise von Kodeabschnitt-Identifizierer mit entsprechenden Kodeabschnitt-Startadressen im Speicher. -
5 ist eine Tabelle, die die Kodeabschnitt-Adresstabelle326 aus3 darstellt. Die Kodeabschnitt-Adresstabelle326 wird konsultiert zum Finden der Kodeabschnitt-Startadresse für eine Symbolbibliothek. Zum Beispiel sucht das System300 Kodeabschnitt Eins, wenn ein Symbol in Symbolbibliothek Eins zur Ausführung benötigt wird. Zum Finden der Startadresse des Kodeabschnitts Eins, und daher Lokalisieren des Symbols in der Symbolbibliothek Eins, wird die Kodeabschnitt-Adresstabelle326 konsultiert. Die Anordnung von Symbolbibliotheken in Kodeabschnitten und die Verfolgung von Kodeabschnitten mit einer Tabelle erlaubt, das die Kodeabschnitte bewegt oder expandiert werden. Die Expansions- oder Bewegungsvorgänge können zum Installieren upgegradeter Kodeabschnitte (mit upgegradeten Symbolbibliotheken) benötigt werden. - Zurückkehrend zu
3 sollte bemerkt werden, das nicht jede Symbolbibliothek notwendigerweise am Start eines Kodeabschnitts startet. Wie gezeigt, ist die Symbolbibliothek Drei (314 ) im Kodeabschnitt Zwei (304 ) angeordnet, aber sie startet nicht von der Kodeabschnitt-Startadresse320 . Folglich, falls ein Symbol in der Symbolbibliothek Drei (314 ) zur Ausführung benötigt wird, konsultiert das System300 die Kodeabschnitt-Adresstabelle326 für die Startadresse des Kodeabschnitts Zwei (304 ). Wie unten erklärt, erlaubt eine Symboloffset-Adresstabelle, dass die Symbole in der Symbolbibliothek Drei (314 ) lokalisiert werden. Es macht nichts, das die Symbole über eine Mehrzahl von Bibliotheken verteilt sind, solange wie sie in dem gleichen Kodeabschnitt behalten sind. - Wie oben angemerkt, weist jede Symbolbibliothek funktionell verwandte Symbole auf. Ein Symbol ist ein Programmierer-definierter Name zum Lokalisieren und Verwenden eines Routine-Körpers, einer Variable oder einer Datenstruktur. Folglich kann ein Symbol eine Adresse oder ein Wert sein. Symbole können intern oder extern sein. Interne Symbole sind nicht über den Bereich des aktuellen Kodeabschnitts hinaus sichtbar. Insbesondere werden sie nicht von anderen Symbolbibliotheken in anderen Kodeabschnitten gesucht. Externe Symbole werden über Kodeabschnitte hinweg verwendet und aufgerufen und werden von Bibliotheken in unterschiedlichen Kodeabschnitten gesucht. Die Symboloffset-Adresstabelle weist typischerweise eine Liste aller externen Symbole auf.
- Zum Beispiel kann die Symbolbibliothek Eins (
310 ) Zeichen auf einer Anzeige einer drahtlosen Vorrichtung erzeugen. Symbole in dieser Bibliothek würden, im Gegenzug, Telefonnummern, Namen, die Zeit, oder andere Anzeigemerkmale erzeugen. Jedes Merkmal wird mit Routinen erzeugt, die hierin als ein Symbol bezeichnet werden. Zum Beispiel erzeugt ein Symbol in der Symbolbibliothek Eins (310 ) Telefonnummern auf der Anzeige. Dieses Symbol ist durch ein "X" dargestellt und ist extern. Wenn die drahtlose Vorrichtung einen Telefonanruf empfängt und der Anrufer-ID-Dienst aktiviert ist, muss das System zum Erzeugen der Nummer auf der Anzeige das "X"-Symbol ausführen. Folglich muss das System das "X"-Symbol lokalisieren. -
6 ist eine detaillierte Abbildung der Symbolbibliothek Eins (310 ) aus3 mit Symbolen. Symbole sind angeordnet, um einen Offset von jeweiligen Kodeabschnitt-Startadressen aufzuweisen. Unter vielen Umständen ist der Start der Symbolbibliothek der Start eines Kodeabschnitts, aber das gilt nicht, falls ein Kodeabschnitt mehr als eine Symbolbibliothek aufweist. Die Symbolbibliothek Eins (310 ) startet am Start des Kodeabschnitts Eins (siehe3 ). Wie in6 gezeigt, ist das "X"-Symbol mit einem Offset von (03) von dem Start der Symbolbibliothek lokalisiert und das "Y"-Symbol ist mit einem Offset von (15) lokalisiert. Sie Symboloffsetadressen sind in einer Symboloffset-Adresstabelle328 in dem Patchmanager-Kodeabschnitt gespeichert (siehe3 ). -
7 ist eine Tabelle, die die Symboloffset-Adresstabelle328 aus3 darstellt. Die Symboloffset-Adresstabelle328 macht Querverweise von Symbolidentifizierern zu entsprechenden Offsetadressen und zu entsprechenden Kodeabschnitt-Identifizierern im Speicher. Folglich wird die Symboloffset-Adresstabelle328 konsultiert zum Lokalisieren der exakten Adresse des Symbols bezüglich des Kodeabschnitts in dem es angeordnet ist, wenn das System versucht, das "X"-Symbol in der Symbolbibliothek Eins auszuführen. - Zurückkehrend zu
3 weisen die erste Mehrzahl von Symbolbibliotheken typischerweise alle Lese-Schreib-Daten auf, die konsultiert oder in der Ausführung dieser Symbolbibliotheken gesetzt werden müssen. Zum Beispiel kann eine Symbolbibliothek einen Vorgang aufweisen, der von einem Bedingungsausdruck abhängig ist. Der Lese-Schreib-Datenabschnitt wird konsultiert zum Bestimmen des Status, der zum Vervollständigen der Bedingungsausdrucks nötig ist. Die Erfindung gruppiert die Lese-Schreib-Daten aller Symbolbibliotheken in einen miteinander geteilten Lese-Schreib-Abschnitt. In einigen Aspekten der Erfindung sind die Lese-Schreib-Daten330 in dem Patchmanager-Kodeabschnitt308 angeordnet. Alternativ (nicht gezeigt) können die Lese-Schreib-Daten in einem anderen Kodeabschnitt, zum Beispiel Kodeabschnitt n (306 ), angeordnet sein. - Die erste Mehrzahl von Symbolbibliotheken weist auch Symbolzugriffskode auf, der in einem Kodeabschnitt angeordnet ist, zum Berechnen der Adresse eines gesuchten Symbols. Der Symbolzugriffskode kann an einer Adresse in einem getrennten Kodeabschnitt, zum Beispiel Kodeabschnitt Zwei (
304 ), angeordnet und gespeichert sein. Jedoch, wie gezeigt, ist der Symbolzugriffskode332 an einer Adresse in dem Patchmanager-Kodeabschnitt308 angeordnet und gespeichert. Das System300 weist ferner eine erste Position zum Speichern der Symbolzugriffskodeadresse auf. Die erste Position kann ein Kodeabschnitt in dem Kodespeicherabschnitt112 sein, oder in einem getrennten Speicherabschnitt der drahtlosen Vorrichtung (nicht gezeigt). Die erste Position kann auch in dem gleichen Kodeabschnitt wie die Lese-Schreib-Daten angeordnet sein. Wie gezeigt, ist die erste Position334 in dem Patchmanager-Kodeabschnitt308 mit den Lese-Schreib-Daten330 , der Symboloffset-Adresstabelle328 , der Kodeabschnitt- Adresstabelle326 und dem Symbolzugriffskode332 und der Patchbibliothek (Patch-Symbolbibliothek)336 gespeichert. - Der Symbolzugriffskode greift auf die Kodeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle zu, um die Adresse eines gesuchten Symbols in der Speichervorrichtung zu berechnen oder finden. Das heißt, der Symbolzugriffskode berechnet die Adresse des gesuchten Symbols unter Verwendung eines entsprechenden Symbolidentifizierers und eines entsprechenden Kodeabschnitt-Identifizierers. Falls zum Beispiel das "X"-Symbol in der Symbolbibliothek Eins gesucht wird, wird zum Suchen des Symbolidentifizierers (Symbol-ID) "X_1", der dem "X"-Symbol entspricht (siehe
7 ), der Symbolzugreifer angerufen. Der Symbolzugriffskode konsultiert die Symboloffset-Adresstabelle zum Bestimmen, dass der "X_1"-Symbolidentifizierer einen Offset von (03) von dem Start des Kodeabschnitts Eins aufweist (siehe6 ). Der Symbolzugriffskode wird angerufen zum Suchen des Kodeabschnitt-Identifizierer "CS_1", der dem Kodeabschnitt Eins entspricht. Der Symbolzugriffskode konsultiert die Kodeabschnitt-Adresstabelle zum Bestimmen der Startadresse, die dem Kodeabschnitt-Identifizierer (Kodeabschnitt ID) "CS_1" zugeordnet ist. Auf diese Weise bestimmt der Symbolzugriffskode, dass der Symbolidentifizierer "X_1" von der Adresse von (00100) einen Offset (03) aufweist, oder an der Adresse (00103) lokalisiert ist. - Das Symbol "X" ist ein reservierter Name, da es ein Teil des aktuellen Kodes ist. In anderen Worten, es weist einen absoluten Datenwert auf, der damit assoziiert ist. Der Datenwert kann eine Adresse oder ein Wert sein. Der Symbolidentifizierer ist ein Alias, der zum Verfolgen des Symbols erzeugt ist. Die Symboloffset-Adresstabelle und die Kodeabschnitt-Adresstabelle arbeiten beide mit Identifizierern zum Vermeiden von Konfusion mit reservierten Symbol- und Kodeabschnittnamen. Es ist auch möglich, dass der gleiche Symbolname über viele Symbolbibliotheken hinweg verwendet wird. Der Gebrauch von Identifizierern verhindert eine Konfusion zwischen diesen Symbolen.
- Zurück zu
1 weist das System300 ferner eine flüchtige Lese-Schreib-Speichervorrichtung114 , typischerweise eine Speichervorrichtung mit wahlfreien Zugriff (RAM, random access memory) auf. Die Lese-Schreib-Daten330 , die Kodeabschnitt-Adresstabelle326 , die Symboloffset-Adresstabelle328 , der Symbolzugriffskode332 und die Symbolzugriffskodeadresse334 sind von dem Patchmangager-Kodeabschnitt in die flüchtige Lese-Schreib-Speichervorrichtung114 geladen, zum Zugreifen während der Ausführung der Systemsoftware. Es ist allgemein bekannt, dass die Zugriffszeiten für Kode, der im RAM gespeichert ist, wesentlich kürzer ist als der Zugriff auf eine nichtflüchtige Speichervorrichtung, wie zum Beispiel Flash. - Zurück zu
3 kann bemerkt werden, dass die Symbolbibliotheken nicht notwendigerweise die Kodeabschnitte in denen sie angeordnet sind, auffüllen, obwohl die Speicherblöcke eine Größe aufweisen, um die entsprechenden Kodeabschnitte, die darin gespeichert sind, exakt aufzunehmen. Alternativ ausgedrückt, jede der zweiten Mehrzahl von Kodeabschnitten weist eine Größe in Byte auf, die die angeordneten Symbolbibliotheken aufnehmen, und jede der aufeinander folgend adressierten Speicherblöcke weist eine Größe in Byte auf, die entsprechende Kodeabschnitte aufnimmt. Zum Beispiel kann der Kodeabschnitt Eins (302 ) ein 100-Byte-Abschnitt zum Aufnehmen einer Symbolbibliothek mit einer Länge von 100 Bytes sein. Der erste Speicherblock wäre 100 Bytes zum Übereinstimmen mit der Bytegröße des Kodeabschnitts Eins. Jedoch kann die in den Kodeabschnitt 1 geladene Symbolbibliothek kleiner als 100 Bytes sein. Wie in3 gezeigt, weist der Kodeabschnitt Eins (302 ) einen unverwendeten Abschnitt340 auf, da die Symbolbibliothek Eins (310 ) kleiner als 100 Bytes ist. Folglich kann jede der zweiten Mehrzahl von Kodeabschnitten ein Größe aufweisen, die größer ist als die Größe, die zum Aufnehmen der angeordneten Symbolbibliotheken nötig ist. Durch "Über-Vergrößern" der Kodeabschnitte können größere upgedatete Symbolbibliotheken aufgenommen werden. - Aufeinander folgend adressierte Speicherblöcke beziehen sich auf das Aufteilen des physikalischen Speicherplatzes in logische Blöcke mit variabler Größe. Kodeabschnitte und Speicherblöcke sind Ausdrücke, die im Wesentlichen austauschbar sind, wenn der Kodeabschnitt in der Speichervorrichtung gespeichert ist. Das Konzept eines Kodeabschnitts wird zum Identifizieren eines Abschnitts von Kode verwendet, der vielleicht größer ist als die Symbolbibliothek, oder der Sammlung von Symbolbibliotheken in dem Kodeabschnitt, wenn er bewegt und manipuliert wird.
- Wie in
3 gesehen, weist das System300 eine Patchsymbolbibliothek auf, die hierin als Patchbibliothek336 gezeichnet wird, zum Anordnen neuer Kodeabschnitte in dem Kodespeicherabschnitt mit den aktuellen Kodeabschnitten. Die Anordnung von neuen Kodeabschnitten mit aktuellen Kodeabschnitten in dem Kodespeicherabschnitt bildet upgedatete ausführbare Systemsoftware. Der Patchmanager336 ordnet nicht nur neue Kodeabschnitte mit den aktuellen Kodeabschnitten an, er ersetzt auch Kodeabschnitte mit upgedateten Kodeabschnitten. - Zurück zu
4 empfängt der Dateisystemabschnitt110 der Speichervorrichtung108 neue Kodeabschnitte, wie zum Beispiel den neuen Kodeabschnitt450 und den upgedateten Patchmanager-Kodeabschnitt452 . Der Dateisystemabschnitt empfängt auch einen ersten Patchmanager-Laufzeitbefehl (PMRTI, patch manager run time instruction)454 , der Befehle zum Anordnen der neuen Kodeabschnitte mit den aktuellen Kodeabschnitten aufweist. Wie in1 zu sehen, empfängt eine Luftschnittstellen (Airlink)-Kommunikationsverbindung 150 neue oder upgedatete Kodeabschnitte, genauso wie den ersten PMRTI. Obwohl die Luftschnittstellen-Kommunikationsverbindung150 durch eine Antenne dargestellt ist, sollte es verständlich sein, dass die Luftschnittstellen-Kommunikationsverbindung auch ein RF-Transceiver, Basisband-Schaltkreise und Demodulations-Schaltkreise (nicht gezeigt) aufweist. Der Dateisystemabschnitt110 speichert die neuen Kodeabschnitte, die über die Luftschnittstellen-Kommunikationsverbindung150 empfangen werden. Die Patchbibliothek336 , die in der Lese-Schreib-Speichervorrichtung114 ausgeführt wird, ersetzt einen ersten Kodeabschnitt in dem Kodespeicherabschnitt, zum Beispiel Kodeabschnitt n (306 ), mit den neuen, oder upgedateten Kodeabschnitt450 in Antwort auf die erste PMRTI454 . Typischerweise wird der Patchmanager-Kodeabschnitt308 mit dem upgedateten Patchmanager-Kodeabschnitt452 ersetzt. Wenn Kodeabschnitte ersetzt werden, überschreibt die Patchbibliothek336 den ersten Kodeabschnitt, zum Beispiel Kodeabschnitt n (306 ), im Kodespeicherabschnitt112 mit den upgedateten Kodeabschnitten, zum Beispiel Kodeabschnitt450 , im Dateisystemabschnitt110 . Im Extremfall werden alle Kodeabschnitte im Kodespeicherabschnitt112 mit upgedateten Kodeabschnitten ersetzt. Das heißt, der FSS110 empfängt eine zweite Mehrzahl von upgedateten Kodeabschnitten (nicht gezeigt) und die Patchbibliothek336 ersetzt die zweite Mehrzahl von Kodeabschnitten im Kodespeicherabschnitt112 mit der zweiten Mehrzahl von upgedateten Kodeabschnitten. Natürlich muss der FSS110 groß genug sein zum Aufnehmen der zweiten Mehrzahl von upgedateten Kodeabschnitten, die über die Luftschnittstellen-Kommunikationsverbindung empfangen werden. - Wie oben bemerkt, können die empfangenen upgedateten Kodeabschnitte Lese-Schreib-Daten-Kodeabschnitte, Kodeabschnitt-Adresstabellen-Kodeabschnitte, Symbolbibliotheken, Symboloffset-Adresstabellen-Kodeabschnitte, Symbolzugriffsmethoden-Kodeabschnitte oder einen Kodeabschnitt mit einer neuen Patchbibliothek aufweisen. Alle diese Kodeabschnitte mit ihren zugeordneten Symbolbibliotheken und Symbolen, können als verschiedene unabhängige Kodeabschnitte gespeichert sein. Dann würde jeder dieser Kodeabschnitte mit einem einzigartigen upgedateten Kodeabschnitt ersetzt. Das heißt, ein upgedateter Lese-Schreib-Kodeabschnitt würde empfangen werden und würde den Lese-Schreib-Kodeabschnitt in dem Kodespeicherabschnitt ersetzten. Ein upgedateter Kodeabschnitt-Adresstabellen-Kodeabschnitt würde empfangen werden und würde den Kodeabschnitt-Adresstabellen-Kodeabschnitt in dem Kodespeicherabschnitt ersetzen. Ein upgedateter Symboloffset-Adresstabellen-Kodeabschnitt würde empfangen werden und würde den Symboloffset-Adresstabellen-Kodeabschnitt in dem Kodespeicherabschnitt ersetzen. Ein upgedateter Symbolzugriffskodeabschnitt würde empfangen werden und würde den Symbolzugriffskodeabschnitt in dem Kodespeicherabschnitt ersetzen. In ähnlicher Weise würde ein upgedateter Patchmanager-Kodeabschnitt (mit einer Patchbibliothek) empfangen werden und würde den Patchmanager-Kodeabschnitt in dem Kodespeicherabschnitt ersetzen.
- Jedoch sind die oben genannten Kodeabschnitte typischerweise miteinander in dem Patchmanager-Kodeabschnitt gebündelt. Folglich wird der Lese-Schreib-Kodeabschnitt in dem Kodespeicherabschnitt mit dem upgedateten Lese-Schreib-Kodeabschnitt von dem Dateisystemabschnitt
110 ersetzt, wenn der Patchmanager-Kodeabschnitt308 mit dem upgedateten Patchmanager-Kodeabschnitt450 ersetzt wir. In ähnlicher Weise werden die Kodeabschnitt-Adresstabelle, die Symboloffset-Adresstabelle, die Symbolzugriffskodeabschnitte genauso wie die Patchbibliothek ersetzt, wenn der upgedatete Patchmanager-Kodeabschnitt450 installiert ist. Die Anordnung der neuen Lese-Schreib-Daten, der neuen Kodeabschnitt-Adresstabelle, der neuen Symboloffset-Adresstabelle, des neuen Symbolzugriffskode und der neuen Patchbibliothek als den upgedateten Patchmanager-Kodeabschnitt450 , zusammen mit den aktuellen Kodeabschnitten in dem Kodespeicherabschnitt bilden upgedatete ausführbare Systemsoftware. - Wenn der Dateisystemabschnitt
110 eine upgedatete Symbolzugriffskodeadresse empfängt, ersetzt der Patchmanager die Symbolzugriffskodeadresse in der ersten Position im Speicher mit upgedateten Symbolzugriffskodeadresse. Wie oben angemerkt, ist die erste Position im Speicher334 typischerweise im Patchmanager-Kodeabschnitt (siehe3 ). - Wie in
3 gesehen, weist die Patchbibliothek308 auch einen Komprimierer oder eine Komprimierer-Symbolbibliothek342 auf. Der Komprimierer342 kann auch als ein getrennter und unabhängiger Kodeabschnitt eingerichtet sein, jedoch ist es, wie oben angemerkt, nützlich und effizient, die Funktionen, die Systemsoftwareupgrades zugeordnet sind, in einen einzelnen Patchmanager-Kodeabschnitt zu bündeln. Im Allgemeinen kann von dem Komprimierer342 gesagt werden, dass er Kodeabschnitten eine neue Größe zuordnet, so dass neue Abschnitte mit aktuellen Kodeabschnitten in dem Kodespeicherabschnitt112 angeordnet werden können. - Mit den Organisations-, Herunterlade- und Komprimieraspekten der Erfindung, die jetzt etabliert sind, wird die folgende Diskussion sich auf das dynamische Befehlssatz-Ausführungssystem
300 der drahtlosen Kommunikationsvorrichtung zentrieren. Das System300 weist ausführbare Systemsoftware und Systemdaten auf, die in Kodeabschnitte differenziert sind, wie oben detailreich diskutiert ist. Ferner weist das System300 dynamische Befehlssätze zum Operieren auf den Systemdaten und der Systemsoftware und Steuern der Ausführung der Systemsoftware auf. Wie in4 gesehen, ist ein dynamischer Befehlssatz470 in den ersten PMRTI454 organisiert. Wie in3 gesehen, weist das System auch eine Laufzeit-Engine zum Verarbeiten der dynamischen Befehlssätze auf, die als Laufzeitbibliothek370 eingerichtet sind. Wie bei der oben genannten Komprimiererbibliothek342 und der Patchbibliothek336 , ist die Laufzeitbibliothek370 typischerweise in dem Patchmanager-Kodeabschnitt308 angeordnet. Jedoch könnte die Laufzeitbibliothek370 alternativ in einem anderen Kodeabschnitt angeordnet sein, zum Beispiel dem ersten Kodeabschnitt304 . - Die dynamischen Befehlssätze sind ein einzelner oder eine Mehrzahl von Befehlssätzen, die Bedingungs-Betriebskodes aufweisen und im Allgemeinen Datengegenstände aufweisen. Die Laufzeit-Engine liest den Betriebskode und bestimmt, welche Vorgänge ausgeführt werden müssen. Betriebskode kann bedingt, mathematisch, prozedural oder logisch sein. Die Laufzeit-Engine oder Laufzeitbibliothek
370 verarbeitet die dynamischen Befehlssätze zum Durchführen von Operationen, wie zum Beispiel mathematischen oder logischen Operationen. Das heißt, die Laufzeit-Engine liest den dynamischen Befehlssatz470 und führt eine Folge von Operationen in Antwort auf den Betriebskode durch. Obwohl die dynamischen Befehlssätze nicht auf irgendeine bestimmt Sprache beschränkt sind, ist der Betriebskode typischerweise eine Form von Maschinenkode, da der Speicher der drahtlosen Vorrichtung begrenzt ist und die Ausführungsgeschwindigkeit wichtig ist. Der Betriebskode wird als bedingt angesehen, indem er einen Datengegenstand analysiert und eine Entscheidung als ein Ergebnis der Analyse trifft. Die Laufzeit-Engine kann auch bestimmen, dass eine Operation auf Daten ausgeführt wird, bevor sie analysiert sind. - Zum Beispiel kann der Betriebskode spezifizieren, dass ein Datenwert einer Speichervorrichtung einer drahtlosen Vorrichtung mit einem vorgegebenen Wert verglichen wird. Falls der Datenwert kleiner ist als der vorgegebene Wert, wird der Datenwert zurückgelassen und falls der Datenwert größer ist als der vorgegebene Wert wird er durch den vorgegebenen Wert ersetzt. Alternativ kann der Betriebskode einen zweiten vorgegebenen Wert zu einem Datenwert der Speichervorrichtung der drahtlosen Vorrichtung addieren, bevor die oben genannte Vergleichsoperation durchgeführt wird.
- Wie oben erwähnt, empfängt die nichtflüchtige Speichervorrichtung
110 des Dateisystemabschnitts die dynamischen Befehlssätze durch eine Schnittstelle wie zum Beispiel die Luftschnittstelle (Airlink)150 . Wie in1 gezeigt, kann die Schnittstelle auch eine Hochfrequenz (RF, radio frequency)-Leitung160 sein. Dann kann der PMRTI von dem FSS110 empfangen werden, ohne dass die Systemsoftware betriebsbereit ist, wie zum Beispiel in einer Fabrik- Kalibrierumgebung. Der PMRTI kann auch über eine Logik-Port-Schnittstelle162 oder ein installierbares Speichermodul164 empfangen werden. Das Speichermodul164 kann in der drahtlosen Vorrichtung104 mit Anfangskalibrierung installiert sein, im Feld installiert sein, oder während der Fabrik-Rekalibrierung installiert sein. Obwohl nicht speziell gezeigt, kann der PMRTI über eine Infrarot- oder Bluetooth-Schnittstellen empfangen werden. -
8 ist eine Abbildung von Befehlen, auf die von der Laufzeit-Engine370 zugegriffen wird. Gezeigt ist ein erster Befehl800 , ein zweiter Befehl802 und ein j-ter Befehl804 , jedoch ist der dynamischen Befehlssatz nicht auf eine bestimmte Anzahl von Befehlen begrenzt. Die Länge des Betriebskodes in jedem Befehl ist fest. Die Laufzeit-Engine370 erfasst die Länge des Befehls als ein Maß von Bytes oder Bits, und bestimmt, ob der Befehl Datengegenstände aufweist. Die verbleibende Länge des Befehls, nachdem der Betriebskode abgezogen ist, weist die Datengegenstände auf. Die Laufzeit-Engine extrahiert die Datengegenstände aus dem Befehl. Wie gezeigt, wird die Länge806 des ersten Befehls800 gemessen und Datengegenstände808 werden extrahiert. Es ist zu bemerken, dass nicht alle Befehle notwendigerweise zu extrahierende Datengegenstände aufweisen. Die Laufzeit-Engine370 verwendet die extrahierten Daten808 beim Durchführen der Sequenz von Operationen, die auf den Betriebskode801 in dem Befehl800 antworten. -
9 ist eine detailliertere Abbildung des ersten Befehls800 aus8 . Unter Verwendung des ersten Befehls800 als ein Beispiel weist der Befehl den Betriebskode810 und die Daten808 auf. Der Befehl und insbesondere der Datengegenstandabschnitt808 weist Symbolidentifizierer auf, die als eine Verbindung zu Symbolen in den Kodeabschnitten der drahtlosen Vorrichtung wirken. Wie im Detail oben erklärt ist, werden die Symbolidentifizierer mit der Kodeabschnitt-Adresstabelle326 (siehe5 ) und der Symboloffset-Adresstabelle328 (siehe7 ) verwendet zum Positionieren des Symbols, das dem Symbolidentifizierer entspricht. Wie gezeigt, ist ein Symbolidentifizierer "X_1" in dem ersten Befehl800 gezeigt. Die Symboloffset-Adresstabelle328 positioniert das entsprechende Symbol in einem Kodeabschnitt mit dem "CS_1"-Identifizierer und einem Offset von "3". Die Kodeabschnitt-Adresstabelle326 ergibt die Startadresse des Kodeabschnitts Eins (302 ). Auf diese Weise wird das Symbol "X" gefunden (siehe6 ). - Nachdem die Laufzeit-Engine Symbole, die den empfangenen Symbolidentifizierern entsprechen, unter Verwendung der Kodeabschnitt-Adresstabelle und der Symboloffset-Adresstabelle lokalisiert, extrahiert sie Daten, wenn die lokalisierten Symbole Datengegenstände sind. Zum Beispiel falls das Symbol "X" ein Datengegenstand in der Symbolbibliothek Eins (
310 ist, extrahiert die Laufzeit-Engine sie. Alternativ kann das "X"-Symbol Betriebskode sein, und die Laufzeit-Engine führt das Symbol "X" aus, wenn es lokalisiert ist. - Der PMRTI kann zum Aktualisieren von Systemdaten oder Systemdatengegenständen verwendet werden. In einigen Aspekten der Erfindung sind Systemdaten in einem Kodeabschnitt in dem Dateisystemabschnitt
110 , zum Beispiel Kodeabschnitt472 , gespeichert, siehe4 . Die Laufzeit-Engine greift auf Systemdaten vom Kodeabschnitt472 zu und analysiert die Systemdaten. Die Laufzeit-Engine verarbeitet den Betriebskode der dynamischen Befehlssätze zum Durchführen mathematischer oder logischer Operation auf Datengegenständen, wie oben beschrieben. Nach der Operation verarbeitet die Laufzeit- Engine die Befehle zum Erzeugen upgedateter Systemdaten. Es ist anzumerken, dass die upgedateten Systemdaten unveränderte Datengegenstände unter einigen Umständen aufweisen können. Die Systemdaten in dem zweiten Kodeabschnitt472 werden mit den upgedateten Systemdaten in Antwort auf den Betriebskode ersetzt. Folglich, durch Verarbeiten der Befehle durch die Laufzeit-Engine, wird die Systemsoftware zum Ausführen unter Verwendung der upgedateten Systemdaten im Kodeabschnitt472 gesteuert. Auf diese Weise können spezifisch abgezielte Symbole in der Systemsoftware upgedatet werden, ohne gesamte Kodeabschnitte zu ersetzen. Durch den gleichen Prozess können die Systemdaten in einem Kodeabschnitt in dem Kodespeicherabschnitt112 ersetzt werden. Zum Beispiel können die Systemdaten in dem dritten Kodeabschnitt344 gespeichert werden, und die Laufzeit-Engine kann die Systemdaten in dem dritten Kodeabschnitt in Antwort auf den Betriebskode mit upgedateten Systemdaten ersetzen. - Der PMRTI kann auch zum Aktualisieren von Datengegenständen in der flüchtigen Speichervorrichtung
114 verwendet werden. Als ein Beispiel nimmt die flüchtige Speichervorrichtung114 Lese-Schreib-Daten330 an, siehe1 . Die Lese-Schreib-Daten können von einer, oder von einer Mehrzahl von Kodeabschnitten in dem Kodespeicherabschnitt112 und/oder dem FSS100 sein. Die Laufzeit-Engine greift auf die Lese-Schreib-Daten zu, analysiert die Lese-Schreib-Daten330 , erzeugt upgedatete Lese-Schreib-Daten und ersetzt die Lese-Schreib-Daten330 in der flüchtigen Speichervorrichtung114 mit den upgedateten Lese-Schreib-Daten in Antwort auf den Betriebskode. Dann wird die Systemsoftware gesteuert zum Ausführen unter Verwendung der upgedateten Lese-Schreib-Daten in der flüchtigen Speichervorrichtung114 . - In einigen Aspekten der Erfindung überwacht die Laufzeit-Engine die Ausführung der Systemsoftware. Leistungsüberwachung ist breit definiert zum Aufweisen einer großen Anzahl von Aktivitäten der drahtlosen Vorrichtung. Zum Beispiel können Daten wie zum Beispiel Kanalparameter, Kanalkenngrößen, Systemstack, Fehlerzustände oder eine Sammlung von Datengegenständen im RAM mittels einer Sequenz von Operationen, die zu einem spezifischen Fehlerzustand oder einem reduzierten Leistungszustand führen, gesammelt werden. Es ist auch möglich, dynamische Befehlssätze zum Analysieren gesammelter Leitungsdaten, Bereitstellen upgedateter Datenvarianten und Wiedernahmedaten zum Studieren möglicher Lösungen des Problems zu verwenden. Zeitweilige Fixes können auch unter Verwendung von PMRTI-Prozessen bereitgestellt werden.
- Insbesondere sammelt die Laufzeit-Engine Leistungsdaten und speichert die Leistungsdaten in dem Dateisystemabschnitt in Antwort auf den Betriebskode. Dann wird die Systemsoftware gesteuert zum Ausführen durch Sammeln der Leistungsdaten zur Auswertung der Systemsoftware. Auswertung kann als eine Form von Analysis auftreten, die von dynamischem Befehlssatz-Betriebskode durchgeführt wird, oder sie kann außerhalb der drahtlosen Vorrichtung durchgeführt werden. In einigen Aspekten der Erfindung greift die Laufzeit-Engine auf die Leitungsdaten zu, die von dem Dateisystemabschnitt gesammelt wurden, und überträgt die Leistungsdaten über eine Luftschnittstellen-Kommunikationsverbindung in Antwort auf den Betriebskode. Das Sammeln von Leitungsdaten von drahtlosen Vorrichtung im Feld erlaubt einem Hersteller, Probleme, entweder lokal oder globale, tiefgreifend zu analysieren, ohne die Vorrichtungen zurückzurufen.
- In einigen Aspekten der Erfindung empfängt der Dateisystemabschnitt
110 einen Patchmanager-Laufzeitbefehl, der einen neuen Kodeabschnitt aufweist. Zum Beispiel ist ein neuer Kodeabschnitt474 in4 gezeigt. Alternativ kann der neue Kodeabschnitt von der PMRTI unabhängig sein, wie zum Beispiel der neue Kodeabschnitt n (450 ). Zum Beispiel kann der neue Kodeabschnitt n (450 ) in früheren Luftschnittstellen-Kommunikationsverbindung empfangen worden sein, oder während einer Fabrik-Kalibrierung installiert worden sein. Die Laufzeit-Engine fügt den neuen Kodeabschnitt474 (450 ) in Antwort auf den Betriebskode zu dem Kodespeicherabschnitt hinzu. In einigen Aspekten der Erfindung wird der neue Kodeabschnitt zu einem unverwendeten Block in dem Kodespeicherabschnitt112 hinzugefügt. Alternativ wird eine Komprimieroperation benötigt. Dann wird die Systemsoftware gesteuert zum Ausführen unter Verwendung des neuen Kodeabschnitts474 (450 ). In anderen Aspekten der Erfindung, weist der PMRTI454 einen upgedateten Kodeabschnitt474 auf. Alternativ ist der neue Kodeabschnitt450 ein upgedateter Kodeabschnitt, der von der PMRTI unabhängig ist. Die Laufzeit-Engine ersetzt einen Kodeabschnitt in dem Kodespeicherabschnitt, zum Beispiel Kodeabschnitt Zwei (304 ), mit dem upgedateten Kodeabschnitt474 (450 ) in Antwort auf den Betriebskode. Die Systemsoftware wird gesteuert zum Ausführen unter Verwendung des upgedateten Kodeabschnitts474 (450 ). In einigen Aspekten der Erfindung wird eine Komprimieroperation benötigt zum Aufnehmen des upgedateten Kodeabschnitts. Alternativ wird der upgedatete Kodeabschnitt zu einem unverwendeten oder freien Abschnitt des Kodespeicherabschnitts hinzugefügt. - Wie oben erklärt, benötigt das Hinzufügen eines neuen Kodeabschnitts oder das Aktualisieren eines Kodeabschnitts typischerweise die Erzeugung einer neuen Kodeabschnitt- Adresstabelle, das diese Operation entweder neue und/oder geänderte Kodeabschnitt-Startadressen involviert. Ferner benötigt auch eine Komprimieroperation eine neue Kodeabschnitt-Adresstabelle. Die Komprimieroperationen können ein Ergebnis der Operation des Komprimierer
342 , wie oben erklärt, oder das Ergebnis der PMRTI-Befehle sein, die Details bereitstellen, wie die Komprimierung aufzutauchen hat. Wenn der PMRTI Herunterlade- und Komprimierbefehle aufweist, weist der PMRTI typischerweise auch eine neue Kodeabschnitt-Adresstabelle auf, die gültig wird, nachdem die Herunterlade- und Komprimieroperationen abgeschlossen wurden. - Die
10A und10B sind Flussdiagramme, die die Verfahren zum Ausführen dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung gemäß der Erfindung darstellen. Obwohl als eine Sequenz von nummerierten Schritten zu Klarheit dargestellt, sollte keine Reihenfolge aus der Nummerierung (und der Nummerierung in den unten dargestellten Verfahren) geschlossen werden, solange nicht explizit angegeben. Das Verfahren startet mit Schritt1000 . Schritt1001a bildet die Systemsoftware in Symbolbibliotheken ab, wobei jede Symbolbibliothek Symbole mit verwandter Funktionalität aufweist. Schritt1001b ordnet die Symbolbibliotheken in Kodeabschnitten an. Schritt1002 führt Systemsoftware aus. Schritt1003 empfängt die dynamischen Befehlssätze. Das Empfangen der dynamischen Befehlssätze in Schritt1003 weist den Empfang der dynamischen Befehlssätze durch eine Schnittstelle auf, die aus der Gruppe ausgewählt ist, die Luftschnittstellen-, Hochfrequenz (RF)-Leitungs-, installierbare Speichermodul-, Infrarot- und Logikanschluss-Schnittstellen aufweist. In einigen Aspekten der Erfindung weist der Empfang des dynamischen Befehlssatzes in Schritt1003 ein Empfangen eines Patchmanager-Laufzeitbefehls (PMRTI, patch manager run time instruction) in einem nichtflüchtigen Dateisystemabschnittspeicher auf. - Schritt
1004 startet eine Laufzeit-Engine. Typischerweise weist das Starten einer Laufzeit-Engine das Aufrufen einer Laufzeitbibliothek von einem ersten Kodeabschnitt auf. Die Laufzeit-Engine kann von entweder einer flüchtigen oder einer nichtflüchtigen Speichervorrichtung gestartet werden. Schritt1006 führt dynamische Befehlssätze durch. Durchführen dynamischer Befehlssätze weist ein Durchführen von Befehlen in Antwort auf mathematische und logische Operationen auf. In einigen Aspekten der Erfindung löscht Schritt1007 (nicht gezeigt), der dem Durchführen der dynamischen Befehlssätze folgt, dynamische Befehlssätze. Schritt1008 wirkt auf Systemdaten und Systemsoftware. Schritt1010 steuert die Ausführung der Systemsoftware in Antwort auf die Operation auf den Systemdaten und der Systemsoftware. - Typischerweise weist ein Empfangen der Patchmanager-Laufzeitbefehle in Schritt
1003 ein Empfangen von bedingen Betriebskodes und von Datengegenständen auf. Dann weist das Verarbeiten dynamischer Befehlssätze in Schritt1006 Unterschritte auf. Schritt1006a1 verwendet die Laufzeit-Engine zum Lesen des Patchmanager-Laufzeitbefehl-Betriebskodes. Schritt1006b führt eine Sequenz von Operationen in Antwort auf den Betriebskode durch. - In einigen Aspekten weist das Anordnen der Symbolbibliothek in Kodeabschnitte in Schritt
1001b das Starten von Symbolbibliotheken am Start von Kodeabschnitten und Anordnen von Symbolen um von ihren jeweiligen Kodeabschnitt-Startadressen einen Offset aufzuweisen, auf. Dann weist das Verfahren weitere Schritte auf. Schritt1001c speichert den Satz von Kodeabschnitten an entsprechenden Startadressen. Schritt1001d hält eine Kodeabschnitt-Adresstabelle (CSAT, code section address table), die Kodeabschnitt-Identifizierer mit entsprechenden Startadressen querverweist, aufrecht. Schritt1001e hält eine Symboloffset-Adresstabelle (SOAT, symbol offset address table), die Symbolidentifizierer mit entsprechenden Offsetadressen und entsprechenden Kodeabschnitt-Identifizierer querverweist, aufrecht. - In einigen Aspekten der Erfindung weist das Empfangen des Patchmanager-Laufzeitbefehls in Schritt
1003 das Empfangen von Symbolidentifizierern auf. Dann weist das Verfahren einen weiteren Schritt auf. Schritt1006a2 lokalisiert Symbole, die den empfangenen Symbolidentifizierern entsprechen, unter Verwendung der Kodeabschnitt-Adresstabelle und der Symboloffset-Adresstabelle. Ein Durchführen einer Sequenz von Operationen in Antwort auf den Betriebskode in Schritt1006b weist Unterschritte auf. Schritt1006b1 extrahiert die Daten, wenn die lokalisierten Symbole Datengegenstände sind. Schritt1006b2 führt die Symbole aus, wenn die lokalisierten Symbole Befehle sind. - In einigen Aspekten der Erfindung weist das Durchführen dynamischer Befehlssätze in Schritt
1006b1 zusätzliche Unterschritte auf. Schritt1006b1a verwendet die Laufzeit-Engine zum Erfassen der Länge des Patchmanager-Laufzeitbefehls. Schritt1006b1b extrahiert die Datengegenstände von dem Patchmanager-Laufzeitbefehl in Antwort auf den Betriebskode. Schritt1006b1c verwendet die extrahierten Daten beim Durchführen der Sequenz von Operationen, die auf den Betriebskode antworten. -
11 ist ein Flussdiagramm, das eine beispielhafte dynamische Befehlssatzoperation darstellt. Einige der Schritte in11 sind die gleichen wie in10 und sind im Interesse der Kürze hier nicht wiederholt. Durchführen dynamischer Befehlssätze in Schritt1106 weist Unterschritte auf. Schritt1106a greift auf Systemdaten zu, die in einem zweiten Kodeabschnitt in dem Dateisystemabschnitt gespeichert sind. Schritt1106b analysiert die Systemdaten. Schritt1106c erzeugt upgedatete Systemdaten. Dann weist ein Operieren auf Systemdaten und Systemsoftware in Schritt1180 ein Ersetzen der Systemdaten in dem zweiten Abschnitt mit den upgedateten Systemdaten und ein Steuern der Ausführung der Systemsoftware in Schritt1010 weist ein Verwenden der upgedateten Systemdaten in der Ausführung der Systemsoftware auf. -
12 ist ein Flussdiagramm, das eine andere beispielhafte dynamische Befehlssatzoperation darstellt. Einige der Schritte in12 sind die gleichen wie in10 und sind hier im Interesse der Kürze nicht wiederholt. Schritt1201c speichert eine Mehrzahl von Kodeabschnitten in einer nichtflüchtigen Kodespeicherabschnitt-Speichervorrichtung. Ein Durchführen dynamischer Befehlssätze in Schritt1206 weist Unterschritte auf. Schritt1206a greift auf Systemdaten zu, die in einem dritten Kodeabschnitt in dem Kodespeicherabschnitt (CSS, code storage section) gespeichert sind. Schritt1206b analysiert die Systemdaten. Schritt1206c erzeugt upgedatete Systemdaten. Eine Operation auf den Systemdaten und der Systemsoftware in Schritt1208 weist ein Ersetzen der Systemdaten in dem dritten Kodeabschnitt mit den upgedateten Systemdaten auf. Ein Steuern der Ausführung der Systemsoftware in Schritt1210 weist ein Verwenden der upgedateten Systemdaten bei der Ausführung der Systemsoftware auf. -
13 ist ein Flussdiagramm, das eine dritte beispielhafte dynamische Befehlssatzoperation darstellt. Einige der Schritte in13 sind die gleichen wie in10 und sind hier im Interesse der Kürze nicht wiederholt. Schritt1301c speichert eine Mehrzahl von Kodeabschnitten in einer nichtflüchtigen Kodespeicherabschnitt-Speichervorrichtung. Schritt1301d lädt Lese-Schreib-Daten in der flüchtigen Speichervorrichtung. Ein Durchführen dynamischer Befehlssätze in Schritt1306 weist Unterschritte auf. Schritt1306a greift auf die Lese-Schreib-Daten in der flüchtigen Speichervorrichtung zu. Schritt1306b analysiert die Lese-Schreib-Daten. Schritt1306c erzeugt upgedatete Lese-Schreib-Daten. Eine Operation auf den Systemdaten und der Systemsoftware in Schritt1308 weist ein Ersetzen der Lese-Schreib-Daten im der flüchtigen Speichervorrichtung mit den upgedateten Lese-Schreib-Daten auf. Ein Steuern der Ausführung der Systemsoftware weist ein Verwenden der upgedateten Lese-Schreib-Daten bei der Ausführung der Systemsoftware auf. -
14 ist ein Flussdiagramm, das eine vierte beispielhafte dynamische Befehlssatzoperation darstellt. Einige der Schritte in14 sind die gleichen wie in10 und sind hier im Interesse der Kürze nicht wiederholt. Ein Durchführen dynamischer Befehlssätze weist Unterschritte auf. Schritt1406a überwacht die Ausführung der Systemsoftware in Antwort auf den Betriebskode. Schritt1406b sammelt Leistungsdaten. Schritt1406c speichert die Leistungsdaten. Schritt1406d überträgt die gespeicherten Daten über eine Luftschnittstellen-Kommunikationsverbindung. Eine Operation auf den Systemdaten und der Systemsoftware in Schritt1408 weist ein Verwenden der Leistungsdaten in der Auswertung der Systemsoftware auf. -
15 ist ein Flussdiagramm, das eine fünfte beispielhafte dynamische Befehlssatzoperation darstellt. Einige der Schritte in15 sind die gleichen wie in10 und sind hier im Interesse der Kürze nicht wiederholt. Schritt1501c speichert eine Mehrzahl von Kodeabschnitten in einer nichtflüchtigen Kodespeicherabschnitt-Speichervorrichtung. Ein Empfangen von Patchmanager-Laufzeitbefehlen in Schritt1503 weist ein Empfangen eines neuen Kodeabschnitts auf. Eine Operation auf den Systemdaten und der Systemsoftware in Schritt1508 weist ein Hinzufügen des neuen Kodeabschnitts zu den Kodespeicherabschnitt und das Steuern der Ausführung der Systemsoftware in Schritt1510 weist ein Verwenden des neuen Kodeabschnitts in der Ausführung der Systemsoftware auf. - Alternativ weist das Empfangen eines neuen Kodeabschnitts in Schritt
1503 ein Empfangen eines upgedateten Kodeabschnitts auf. Dann weist eine Operation auf den Systemdaten und der Systemsoftware in Schritt1508 ein Ersetzen eines vierten Kodeabschnitts in dem Kodespeicherabschnitt mit dem upgedateten Kodeabschnitt auf. - Ein System und Verfahren wurden zum Ausführen dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung vorgesehen, um in dem Prozess des Aktualisierens der Software und Überwachen der Leistung der Software zu helfen. Das System ist aufgrund der Anordnung von Symbolbibliotheken in Kodeabschnitten mit Tabellen zum Zugreifen auf die Startadressen der Kodeabschnitt im Speicher und die Offsetadressen von Symbolen in den Symbolbibliotheken einfach aktualisierbar. Die Verwendung auf dynamische Befehlssätze erlaubt, das maßgeschneiderte Modifikationen für jede drahtlose Vorrichtung durchgeführt werden, basierend auf spezifischen Kenngrößen dieser Vorrichtung. Ein paar wenige allgemeine Beispiel wurden angegeben, die mögliche Verwendungen für die dynamischen Befehlssätze darstellen. Jedoch ist die Erfindung nicht auf gerade diese Beispiele beschränkt. Andere Variationen und Ausführungsbeispiele der Erfindung werden für Fachleute auftauchen.
-
16 ist ein High-Level-Netzwerkdiagramm, das eine beispielhaftes drahtloses Kommunikationsnetzwerk darstellt. Das dargestellte drahtlose Kommunikationsnetzwerk weist eine Mehrzahl von drahtlosen Kommunikationsvorrichtungen10 ,12 und14 ; eine Mehrzahl von Basisstationen20 und22 ; und einen PMRTI-Serverrechner30 auf, der mit den drahtlosen Kommunikationsvorrichtungen10 ,12 und14 über ein Netzwerk40 gekoppelt ist. - Die drahtlose Kommunikationsvorrichtung
10 kann jede Sorte von Vorrichtung mit der Fähigkeit zum Kommunizieren innerhalb des drahtlosen Kommunikationsnetzwerks100 sein. Zum Beispiel kann die drahtlose Kommunikationsvorrichtung10 ein Mobiltelefon, ein persönlicher digitaler Assistent ("PDA", personal digital assistant), ein Laptop-Computer, eine Armbanduhr oder jede andere Vorrichtung, die für drahtlose Kommunikation eingerichtet ist, sein. Drahtlose Kommunikationsvorrichtung können hierin auch als "Handgeräte" oder "Mobiltelefone" oder "Mobilvorrichtungen" bezeichnet werden. - Die Basisstation
20 ist vorzugsweise zum Kommunizieren mit einer Mehrzahl drahtloser Kommunikationsvorrichtung über Funk eingerichtet, und weist einen Transceiver (nicht gezeigt) auf, der die Funkkommunikation in drahtgebundene Kommunikation umwandelt, die über das Netzwerk40 läuft. Vorzugsweise ist das Netzwerk40 ein privates Netzwerk, das von dem Drahtlos-Betreiber betrieben wird. Das Netzwerk40 stellt vorzugsweise die Infrastruktur für Übergabeanrufe zwischen Basisstationen, wie zum Beispiel Basisstation20 und22 bereit. Zusätzlich stellt das Netzwerk40 vorzugsweise die Kommunikationsverbindung zwischen verschiedenen Anwendungen, Diensten und anderen Computer-basierten Serverrechnern, wie zum Beispiel dem PMRTI-Serverrechner30 , bereit. - Das Netzwerk
40 kann auch als Leitung für Verbindungen zu anderen Netzwerken (nicht abgebildet), wie zum Beispiel einem digitalen Netzwerk mit integrierten Diensten (ISDN, integrated services digital network), einem öffentlichen geschalteten Telefonnetzwerk ("PSTN", public switched telephone network), einem öffentlichen Land-basierten Mobilnetzwerk ("PLMN", public land mobile network), einem öffentlichen Paket-geschalteten Datennetzwerk ("PSPDN", packet switched public data network) und dem Internet, um nur wenige zu nennen, dienen. Der PMRTI-Server30 kann als ein einzelner Computer oder als eine Mehrzahl von Serverrechnern, die logisch angeordnet sind, zum Bereitstellen dynamischer Befehlssätze an Mobilvorrichtung und zum Ausführen dynamischer Befehlssätze, die von Mobilvorrichtungen empfangen werden, eingerichtet sein. -
17A ist ein Blockdiagramm, das eine beispielhafte drahtlose Kommunikationsvorrichtung10 darstellt. Die allgemeinen Merkmale der drahtlosen Kommunikationsvorrichtung10 , die ihm erlauben, als solches zu funktionieren, sind in der Technik gut bekannt, und sind daher hierin nicht dargestellt oder beschrieben. - Die drahtlose Kommunikationsvorrichtung
10 weist eine Laufzeit-Engine50 , eine Entfernt-Betriebskode ("Opcode")-Bibliothek60 , eine Serverrechner-Opcodebibliothek70 und entfernte Laufzeitbefehls-Kodeabschnitt80 auf. Die Laufzeit-Engine50 ist vorzugsweise zum Durchführen dynamischer Befehlssätze eingerichtet. Ein Beispiel eines dynamischen Befehlssatzes ist ein PMRTI-Befehlssatz. Ein anderes Beispiel eines dynamischen Befehlssatzes ist ein RPMRTI-Befehlssatz. Der Unterschied zwischen diesen beiden Befehlssätzen ist, dass der PMRTI-Satz jene Funktionen aufweist, die von der drahtlosen Vorrichtung ausgeführt werden können, während der RPMRTI-Befehlssatz jene Funktionen aufweist, die von dem PMRTI-Serverrechner30 ausgeführt werden können, der auf dem Netzwerk40 liegt. Die Durchführung von dynamischen Befehlssätzen weist die Ausführung von PMRTI-Sätzen auf, die von dem PMRTI-Serverrechner30 empfangen werden, und die Kompilierung von RPMRTI-Sätzen und entsprechender Daten zur Lieferung an den PMRTI-Serverrechner30 . Vorzugsweise kann die Laufzeit-Engine50 von der drahtlosen Kommunikationsvorrichtung10 gestartet werden, wenn sie gebraucht wird, so dass sie nur wenn nötig läuft und eine minimale Menge von Systemressourcen (z.B. Speicher, CPU-Zyklen, usw.) auf der Vorrichtung10 konsumiert. - Die Entfernt-Opcodebibliothek
60 weist vorzugsweise die Gesamtheit der Betriebskodes auf, die jede PMRTI-Funktion oder jedes ausführbare Kodesegment darstellen. Vorteilhafterweise weist die Entfernt-Opcodebibliothek60 die Betriebskodes auf, die als Platzhalter für die aktuellen ausführbaren Maschinenkodefunktionen oder -Kodesegmente dienen. Als solche weist die Entfernt-Opcodebibliothek60 eine Liste aller verfügbarer Betriebskodes auf, die allen und jeder PMRTI-Funktion entsprechen, die von der drahtlosen Kommunikationsvorrichtung10 ausgeführt werden können. - In ähnlicher Weise weist die Serverrechner-Opcodebibliothek
70 vorzugsweise die Gesamtheit von Betriebskodes auf, die jede RPMRTI-Funktion oder ausführbares Kodesegment darstellen. Vorteilhafterweise weist die Serverrechner-Opcodebibliothek70 nur die Betriebskodes für die aktuelle ausführbaren Maschinenkodefunktionen oder Kodesegmenten auf, die nicht auf der drahtlosen Kommunikationsvorrichtung10 liegen. Als solche weist die Serverrechner-Opcodebibliothek70 eine Liste aller Betriebskodes für jede verfügbare RPMRTI-Funktion auf, die von dem PMRTI-Serverrechner30 für die drahtlose Kommunikationsvorrichtung10 ausgeführt werden kann. - In dem bevorzugten Ausführungsbeispiel kann die Anzahl verfügbarer RPMRTI-Funktionen die Anzahl verfügbarer PMRTI-Funktionen weit übersteigen, da der PMRTI-Serverrechner
30 nicht an den minimalen Ressourcen leidet, die typischerweise auf Mobilvorrichtungen, wie zum Beispiel Mobiltelefonen und PDAs, gefunden werden. - Ferner weist die drahtlose Kommunikationsvorrichtung
10 entfernte Laufzeitbefehls-Kodeabschnitt80 auf. Der Kodeabschnitt80 ist, wo der aktuelle Maschinenkode oder ausführbare Befehlet in persistentem Speicher auf der Vorrichtung10 liegen. Diese ausführbaren Befehle oder Kodesegmente entsprechen vorzugsweise in einer Eins-zu-Eins-Beziehung den Opcodes, die in der Entfernt-Opcodebibliothek60 enthalten sind.17b ist ein Blockdiagramm, das einen beispielhaften Kodeabschnitt80 aufweist, von Befehl01 bis Befehl n. Optimalerweise sind eine große Anzahl von Funktionen im Kodeabschnitt80 verfügbar, wobei sie sehr wenig Ressourcen (z.B. persistenten Speicher) der Vorrichtung10 konsumieren. - Vorteilhafterweise können die Serverrechner-Opcodebibliothek
70 , die Entfernt-Opcodebibliothek60 und die entsprechende Kodeabschnitt80 im persistenten Speicher auf der drahtlosen Kommunikationsvorrichtung während des Herstellens der Vorrichtung10 und vor seinem Verbreiten im Feld (d.h. bevor es an Verbraucher verkauft wird) installiert werden. Zukünftige Aktualisierungen für den Opcodesatz, der in jeder Bibliothek enthalten ist, oder für den Satz von ausführbaren Befehlen in dem Kodeabschnitt80 , können von dem PMRTI-Serverrechner30 vorgesehen sein, der den Prozess implementiert, der später mit Bezugnahme zu22 beschrieben ist. - Schließlich weist in dem dargestellten Ausführungsbeispiel die drahtlose Kommunikationsvorrichtung eine Funk-Kommunikationsverbindung
90 auf. Die Implementierung der Kommunikationsverbindung90 ist in der Technik allgemein bekannt und schafft eine drahtlose Kommunikationsvorrichtung10 mit der Fähigkeit zum Kommunizieren innerhalb des drahtlosen Kommunikationsnetzwerks100 über eine Radio- oder eine andere Funk-Verbindung. Vorteilhafterweise kann die Funk-Kommunikationsverbindung90 die Mittel für den PMRTI-Serverrechner30 zum Aktualisieren der Entfernt-Opcodebibliothek60 , der Serverrechner-Opcodebibliothek70 und des entfernten Laufzeitbefehls-Kodeabschnitts80 bereitstellen. -
18A ist ein Blockdiagramm, das einen beispielhaften PMRTI-Serverrechner30 darstellt. Die Merkmale eines Universalcomputers, der den PMRTI-Serverrechner implementiert sind später mit Bezugnahme zu23 beschreiben. - In dem dargestellten Ausführungsbeispiel weist der PMRTI-Serverrechner
30 ein Steuermodul95 , eine Entfernt- Opcodebibliothek60 , eine Serverrechner-Opcodebibliothek70 und einen Serverrechner-Laufzeitbefehls-Kodeabschnitt82 auf. Die Entfernt-Opcodebibliothek60 und die Serverrechner-Opcodebibliothek70 weisen vorzugsweise die gleiche Liste von Opcodes auf wie die Bibliotheken die in der drahtlosen Kommunikationsvorrichtung10 gegenwärtig sind. Das Steuermodul95 ist vorzugsweise zum Durchführen dynamischer Befehlssätze und Verwalten eines Netzwerks von PMRTI-Kommunikationen zwischen dem PMRTI-Serverrechner30 und einer Mehrzahl von drahtlosen Kommunikationsvorrichtung, die über das drahtlose Kommunikationsnetzwerk verfügbar sind, eingerichtet. - Zum Beispiel kann das Steuermodul
95 verschiedene dynamische PMRTI-Sätze kompilieren und diese Befehlssätze an eine Mehrzahl getrennter drahtloser Kommunikationsvorrichtungen senden. In ähnlicher Weise kann das Steuermodul auch eine Mehrzahl dynamischer RPMRTI-Sätzen empfangen und diese Befehlssätze für die sendende drahtlose Kommunikationsvorrichtung ausführen. - Die Entfernt-Opcodebibliothek
60 weist vorzugsweise die Gesamtheit von Betriebskodes auf, die jeder verfügbaren PMRTI-Funktion oder jedem ausführbaren Kodesegment entsprechen. Vorteilhafterweise weist die Entfernt-Opcodebibliothek60 eine List der Betriebskodes auf, die als Platzhalter für die aktuellen ausführbaren Maschinenkodefunktionen oder -Kodesegmente in dem entfernen Laufzeitbefehls-Kodeabschnitt80 (auf der drahtlosen Kommunikationsvorrichtung) dienen. Als solches weist die Entfernt-Opcodebibliothek60 eine Liste aller verfügbaren Opcodes für alle verfügbaren PMRTI-Funktionen auf, die von einer drahtlosen Kommunikationsvorrichtung ausgeführt werden können. - In ähnlicher Weise weist die Serverrechner-Opcodebibliothek
70 die Gesamtheit von Betriebskodes auf, die jeder RPMRTI-Funkiton oder ausführbarem Kodesegment entsprechen. Vorteilhafterweise weist die Serverrechner-Opcodebibliothek70 nur die Betriebskodes für die aktuellen ausführbaren Maschinenkodefunktionen oder -Kodesegmente auf, die von dem PMRTI-Serverrechner30 ausgeführt werden können. Vorzugsweise übersteigt die Anzahl von verfügbaren RPMRTI-Funktionen die Anzahl von verfügbaren PMRTI-Funktionen weit, da der PMRTI-Serverrechner30 nicht an den minimalen Ressourcen leidet, die typischerweise auf Mobilvorrichtung, wie zum Beispiel Mobiltelefonen und PDAs, vorgefunden werden. - Zusätzlich weist der PMRTI-Serverrechner
30 den Serverrechner-Laufzeitbefehls-Kodeabschnitt82 auf. Der Kodeabschnitt82 ist, wo der aktuelle Maschinenkode oder ausführbare Befehle in der persistenten Speichervorrichtung auf dem Serverrechner30 liegen. Diese ausführbaren Befehle oder Kodesegmente entsprechen vorzugsweise in einer Eins-zu-Eins-Beziehung den Betriebskodes, die in der Serverrechner-Opcodebibliothek70 enthalten sind, die sowohl auf dem Serverrechner30 als auch auf der drahtlosen Kommunikationsvorrichtung10 liegen.18B ist ein Blockdiagramm, das einen beispielhaften Serverrechner-Laufzeitbefehls-Kodeabschnitt darstellt. -
19 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Ausführen dynamischer Befehlssätze auf einer drahtlosen Kommunikationsvorrichtung darstellt. Ursprünglich, in Schritt500 , empfängt die drahtlose Vorrichtung einen Satz von Entfernt-Opcodes. Der Satz von Entfernt-Opcodes kann über ein Funk-Kommunikationsverbindung, zum Beispiel eine Verbindung mit einem drahtlosen Kommunikationsnetzwerk, empfangen werden. Vorzugsweise sind die Opcodes zum Minimieren der Menge an gefunkten Daten optimiert. Zusätzlich können Nutzdaten in dem Satz von Opcodes, der über die drahtlose Vorrichtung empfangen wird, enthalten sein. - In Schritt
502 startet die drahtlose Vorrichtung seine Laufzeit-Engine zum Verarbeiten des Entfernt-Opcodesatzes. Wie in Schritt504 dargestellt, analysiert die Laufzeit-Engine den Entfernt-Opcodesatz und extrahiert dann die Nutzdaten in Schritt506 . Falls keine Nutzdaten existieren, kann dieser Schritt übersprungen werden. Falls Nutzdaten existieren, können die resultierenden Daten in einem verfügbaren Abschnitt eines flüchtigen Speichers zur späteren Verwendung gespeichert werden. Als Nächstes erhält die Laufzeit-Engine die ausführbaren Befehle, die den Opcodes in dem Entfernt-Opcodesatz entsprechen, wie in Schritt508 gezeigt ist. Diese Befehle können aus dem entfernten Laufzeitbefehls-Kodeabschnitt der drahtlosen Vorrichtung erhalten werden. - Wenn die ausführbaren Befehle, die den Opcodes in dem Entfernt-Opcodesatz entsprechen, erhalten wurden, führt die Laufzeit-Engine die Befehle aus, wie in Schritt
510 dargestellt ist. Wenn die Befehle ausgeführt werden, können alle notwendigen Daten auf denen operiert wird, aus dem flüchtigen Speicher erhalten werden, wo die Nutzdaten gespeichert sind. Alternativ oder zusätzlich können alle notwendigen Daten auf denen operiert wird, als das Ergebnis eines ausgeführten Befehls erhalten werden. - Zum Beispiel können die Nutzdaten ein upgedatetes Softwaremodul für die drahtlose Vorrichtung aufweisen. Zusätzliche kann einer der Opcodes in dem Entfernt-Opcodesatz einem ausführbaren Befehl zum Ersetzen eines Abschnitts eines persistenten Speichers mit einem Abschnitt der Nutzdaten entsprechen. In diesem Beispiel ist der Abschnitt des ersetzten persistenten Speichers das veraltete Softwaremodul und als eine Ergebnis wird das upgedatete Softwaremodul von dem Befehl in den persistenten Speicher geladen. Folglich operieren der Entfernt-Opcodesatz und die Nutzdaten auf der drahtlosen Vorrichtung zum Aktualisieren eines Softwaremoduls.
- Wenn der Befehlssatz in seiner Gesamtheit von der Laufzeit-Engine ausgeführt wurde, kann die Laufzeit-Engine beendet werden, wie in Schritt
512 gezeigt ist. Vorteilhafterweise kann die Laufzeit-Engine gestartet und beendet werden, so dass sie nur wenn nötig läuft. Das spart Systemressourcen auf der drahtlosen Vorrichtung, zum Beispiel kann es flüchtige Speicherplätze und CPU-Zyklen einsparen. -
20 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Kompilieren dynamischer Befehlssätze auf einer drahtlosen Kommunikationsvorrichtung darstellt. Zu Anfang ist die Laufzeit-Engine gestartet, wie in Schritt520 dargestellt ist. Wenn die Laufzeit-Engine läuft, kann die Engine einen Satz von Serverrechner-Opcodes kompilieren, wie in Schritt522 gezeigt ist. Der Satz von Serverrechner-Opcodes kann von einem Hintergrundprozess erhalten werden, der auf der drahtlosen Vorrichtung läuft. Alternativ kann der Serverrechner-Opcodesatz von einem Prozess erhalten werden, der auf der drahtlosen Vorrichtung unter der Anweisung eines Benutzers läuft. - Zum Beispiel kann die drahtlose Vorrichtung einen Satz von Routinen aufweisen, die periodisch und automatisch von dem Betriebssystem laufen gelassen werden, um eine Systeminstandhaltung oder andere wünschenswerte Funktionen durchzuführen. Diese Prozeduren können, als ein Ergebnis ihrer Ausführung, bewirken, dass ein Serverrechner-Opcodesatz von der Laufzeit-Engine erzeugt wird. Alternativ kann ein Benutzer einen bestimmten Satz von Routinen anstoßen, die nur ausgeführt werden, wenn es von einem Benutzer angefragt wird. Dieser Satz von Routinen kann auch bewirken, dass ein Serverrechner-Opcodesatz von der Laufzeit-Engine erzeugt wird. In beiden Fällen ist das Ergebnis ein Serverrechner-Opcodesatz, der von der Laufzeit-Engine erzeugt ist, wie in Schritt
522 gezeigt. - Wenn der Serverrechner-Opcodesatz erzeugt wurde, bestimmt die Laufzeit-Engine in Schritt
524 , ob Nutzdaten den Serverrechner-Opcodesatz begleiten sollen. Falls es Daten gibt, die zusammen mit dem Serverrechner-Opcodesatz gehen sollen, holt die Laufzeit-Engine die Daten aus dem persistenten oder flüchtigen Speicher, oder führt einen Befehl aus, der die benötigten Daten zurückbringt. Wenn die Daten erhalten sind, fügt die Laufzeit-Engine als Nächstes die Daten in den Serverrechner-Opcodesatz ein, wie in Schritt528 dargestellt. Ein einfacher Weg, um das zu erreichen, ist das Anfügen der Nutzdaten an den Serverrechner-Opcodesatz in einem einzelnen Datenpaket. - Wenn die Nutzdaten mit dem Serverrechner-Opcodesatz kombiniert sind, oder falls keine Nutzdaten benötigt sind, dann sendet die Laufzeit-Engine den Serverrechner-Opcodesatz (mit oder ohne einer Nutzlast) an den Serverrechner, wie in Schritt
530 gezeigt ist. Nachdem der Serverrechner-Opcodesatz gesendet ist, kann die Laufzeit-Engine beendet werden, um Ressourcen auf der drahtlosen Vorrichtung freizumachen, wie in Schritt532 dargestellt ist. -
21 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Ausführen dynamischer Befehlssätze auf einem PMRTI-Serverrechner darstellt. Anfänglich empfängt der Serverrechner in Schritt540 den Serverrechner-Opcodesatz. Der Opcodesatz ist vorzugsweise eine Liste von Namen, die eine Reihe von ausführbaren Befehlen repräsentieren, wobei jeder Opcode einen eigenständigen ausführbaren Befehl oder einen eigenständigen Satz von ausführbaren Befehlen repräsentiert. Wenn der Satz von Serverrechner-Opcodes empfangen wurde, analysiert der Serverrechner dann den Serverrechner-Opcodesatz in Schritt542 und extrahiert alle Nutzdaten, die in dem Serverrechner-Opcodesatz enthalten sind, wie in Schritt544 dargestellt ist. Wenn die Nutzdaten extrahiert sind, können sie zeitweise im flüchtigen Speicher auf dem Serverrechner zum späteren Gebrauch gespeichert werden. - Als Nächstes erhält der Serverrechner den entsprechenden Befehlssatz, wie in Schritt
546 gezeigt ist. Vorzugsweise ist der entsprechende Befehlssatz in einem Serverrechner-Laufzeitbefehls-Kodeabschnitt gespeichert, der im persistenten Speicher auf der PMRTI-Serverrechnermaschine liegt. Wenn einmal der Befehlssatz erhalten wurde, führt der Serverrechner dann den Befehlssatz aus, wie in Schritt548 gesehen werden kann. Wenn der Befehlssatz ausgeführt wird, können die Ausführungsroutinen die Nutzdaten verwenden, die mit dem Serverrechner-Opcodesatz gekommen sind. Vorzugsweise werden die Nutzdaten im Speicher auf dem Serverrechner zu diesem Zweck gespeichert. Alternativ kann die Ausführungsroutinen Befehle aufweisen, die die Daten erzeugen, die für den Befehlssatz zum Ausführen seiner Funktion notwendig sind. -
22 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Synchronisieren von Opcodebibliotheken darstellt. Zu Anfang erhält in Schritt580 die drahtlose Vorrichtung eine Liste von Serverrechner-Opcodes. Das kann am einfachsten gemacht werden, indem die Serverrechner-Opcodebibliothek konsultiert wird. Alternativ kann eine Routine aufgerufen werden oder ein Programm laufen gelassen werden, wovon das Ergebnis die erwünscht Liste von Serverrechner-Opcodes ist. In einem allgemeinen Sinn kann der Prozess zum Synchronisieren von Opcodebibliotheken periodisch und automatisch von der drahtlosen Vorrichtung gestartet werden oder er kann durch eine Eingabe eines Benutzers gestartet werden. - Wenn eine Liste von Serverrechner-Opcodes erhalten wurde, ist die Liste als Nutzdaten in einen Serverrechner-Opcodesatz eingeschlossen und an den Serverrechner zur Durchführung gesendet, wie in Schritt
582 gezeigt ist. Der Serverrechner führt die Befehle durch, die dem Opcode entsprechen und verarbeitet dadurch die Nutzdaten, die die Liste aller verfügbarer Serverrechner-Opcodes gemäß der drahtlosen Vorrichtung ist. Als Antwort empfängt die drahtlose Vorrichtung einen Entfernt-Opcodesatz und Nutzdaten, wie in Schritt584 dargestellt ist. Die von dem Serverrechner empfangenen Nutzdaten weisen vorteilhafterweise alle upgedateten oder modifizierten Opcodes und den entsprechenden ausführbaren Befehl auf. Zusätzlich weisen die Nutzdaten auch alle neuen Opcodes und den entsprechenden ausführbaren Befehl auf. - Die drahtlose Vorrichtung extrahiert als Nächstes diese Nutzdaten in Schritt
586 und speichert die Nutzdaten vorzugsweise in einem verfügbaren Speicher der drahtlosen Vorrichtung, zum Beispiel einem freien Segment des flüchtigen Speichers. Wenn die Nutzdaten extrahiert wurden, erhält die drahtlose Vorrichtung die ausführbaren Befehle, die dem Entfernt-Opcodesatz entsprechen, wie in Schritt588 dargestellt ist. Wenn der Satz ausführbarer Befehle, der dem Entfernt-Opcodesatz entspricht, erhalten wurde, führt die drahtlose Vorrichtung dann diese Befehle aus, wie in Schritt590 gezeigt ist. Wenn die Befehle ausgeführt sind, können die Daten der Nutzdaten von der zeitweisen Speicherposition innerhalb der drahtlosen Vorrichtung zugegriffen werden. Zum Beispiel kann ein erster ausführbarer Befehle bewirken, dass die drahtlose Vorrichtung einen ersten Abschnitt des persistenten Speichers mit einem ersten Abschnitt der Nutzdaten ersetzt. Nachdem das gemacht ist, ist das Ergebnis vorzugsweise ein upgedateter Serverrechner-Opcode in der Serverrechner-Opcodebibliothek. Entsprechend kann ein zweiter ausführbarer Befehle bewirken, dass die drahtlose Vorrichtung einen zweiten Abschnitt des persistenten Speichers mit einem zweiten Abschnitt der Nutzdaten ersetzt. Nachdem das gemacht ist, ist das Ergebnis vorzugsweise ein upgedateter ausführbarer Befehl in dem Serverrechner-Laufzeitbefehls-Kodeabschnitt. Das erlaubt es der drahtlosen Vorrichtung vorteilhafterweise periodisch den PMRTI-Serverrechner nach Aktualisierungen für seine Funktionalitätseinrichtung anzufragen. - Zusätzliche Anwendungen der Fähigkeit eines Handgeräts zum Konstruieren eines Serverrechner-Opcodesatzes und entsprechender Nutzdaten und Senden derselben an den PMRTI-Serverrechner
30 zum Durchführen, weisen Bereitstellen von Positionsaktualisierungen (z.B. GPS-Informationen), Speichern einer Sprachnachricht auf dem Netzwerk, Senden von Dateien an das Netzwerk und andere Benutzer auf. Im Allgemeinen umfasst das Senden von Dateien an das Netzwerk oder an andere Benutzer einen extrem breiten Bereich wünschenswerter Anwendungen, wie zum Beispiel Senden benutzerdefinierter Klingeltöne an einen Freund oder ein Familienmitglied, Senden von Fotos oder Digitalbilder, die von der drahtlosen Vorrichtung aufgenommen sind, Senden von E-Mails, Dokumenten oder allen anderen wünschenswerten Daten, die auf dem Netzwerk zu speichern sind oder an andere Benutzer zu senden sind. -
23 ist ein Blockdiagramm, das ein beispielhaftes Computersystem550 aufweist, das in Verbindung mit den verschiedenen hierin beschriebenen Beispielen verwendet werden kann. Zum Beispiel kann das Computersystem550 als der PMRTI-Serverrechner angewendet werden, der innerhalb des drahtlosen Kommunikationsnetzwerks liegt. Das Computersystem550 kann auch als irgendeines der verschiedenen anderen allgemeinen oder Spezialzweck-Computersysteme angewendet werden, die das drahtlose Kommunikationsnetzwerk und seine Bestandteil-Komponenten aufweisen. Jedoch können andere Computersysteme und Computerarchitekturen verwendet werden, wie für Fachleute klar sein wird. - Das Computersystem
550 weist vorzugsweise einen oder eine Mehrzahl von Prozessoren, wie zum Beispiel Prozessor552 auf. Zusätzliche Prozessoren können vorgesehen sein, wie zum Beispiel ein Hilfsprozessor zum Verwalten von Eingabe und Ausgabe, ein Hilfsprozessor zum Durchführen von mathematischen Fließpunkt-Operationen, ein Spezialzweck-Mikroprozessor mit einer Architektur, die zur schnellen Ausführung von Signalverarbeitungsalgorithmen geeignet ist (z.B. ein digitaler Signalprozessor), ein Slave-Prozessor, der dem Haupt-Prozessorsystem untergeordnet ist (z.B. Back-End-Prozessor), ein zusätzlicher Mikroprozessor oder Controller für duale oder Mehrfach-Prozessorsysteme oder ein Koprozessor. Solche Hilfsprozessoren können eigenständige Prozessoren sein oder können in dem Prozessor552 integriert sein. - Der Prozessor
552 ist vorzugsweise mit einem Kommunikationsbus554 gekoppelt. Der Kommunikationsbus554 kann einen Datenkanal zum Erleichtern eines Informationstransfers zwischen Speicher- und anderen Peripheriekomponenten des Computersystems550 aufweisen. Der Kommunikationsbus554 kann ferner einen Signalsatz bereitstellen, der zur Kommunikation mit dem Prozessor552 verwendet wird, einschließlich eines Datenbusses, eines Adressbusses und eines Steuerbusses (nicht gezeigt). Der Kommunikationsbus554 kann jede Standard- oder Nicht-Standard-Busarchitektur aufweisen, wie zum Beispiel Busarchitekturen, die sich nach der Industriestandardarchitektur ("ISA", industry standard architecture), der Erweiterten Industriestandardarchitektur ("EISA", extended industry standard architecture), der Mikrokanalarchitektur ("MCA", micro channel architecture), dem lokalen Peripheriekomponenten-Verbindungs-Bus ("PCT", peripheral component interconnect) richten oder Standards, die von dem Institute of Electrical and Electronics Engineers ("IEEE") verkündet werden, einschließlich IEEE 488-Allzweckschnittstellenbus ("GPIB", general-purpose interface bus), IEEE 696/5-100 und ähnlichen. - Das Computersystem
500 weist vorzugsweise einen Hauptspeicher556 auf und kann auch einen zweiten Speicher558 aufweisen. Der Hauptspeicher556 stellt Speicher für Befehle und Daten für Programme bereit, die auf dem Prozessor552 ausgeführt werden. Der Hauptspeicher556 ist typischerweise ein Halbleiter-basierter Speicher, wie zum Beispiel ein dynamischer Speicher mit wahlfreiem Zugriff ("DRAM", dynamic random access memory) und/oder ein statischer Speicher mit wahlfreiem Zugriff ("SRAM", static random access memory). Andere Halbleiter-basierte Speichertypen weisen zum Beispiel einen synchronen dynamischen Speicher mit wahlfreiem Zugriff ("SDRAM", snchronous dynamic random access memory), einen dynamischen Rambus-Speicher mit wahlfreiem Zugriff ("RDRAM", Rambus dynamic random access memory), einen ferroelektrischen Speicher mit wahlfreiem Zugriff ("FRAM", ferroelectric random access memory) und ähnliche auf, einschließlich einem Nur-Lese-Speicher ("ROM", read only memory). - Der Sekundärspeicher
558 kann optional ein Festplattenlaufwerk560 und/oder ein entfernbares Speicherlaufwerk562 , zum Beispiel ein Floppy-Disk-Laufwerk, ein Magnetband-Laufwerk, ein Compact-Disc-Laufwerk ("CD"), ein DVD (digital versatile disc)-Laufwerk usw. aufweisen. Das entfernbare Speicherlaufwerk562 liest und/oder beschreibt ein entfernbares Speichermedium564 in einer allgemein bekannten Weise. Das entfernbare Speichermedium564 kann zum Beispiel eine Floppy-Diskette, ein Magnetband, eine CD, eine DVD usw. sein. - Das entfernbare Speichermedium
564 ist vorzugsweise ein Computerlesbares Medium mit darauf gespeichertem Computerausführbaren Kode (d.h. Software) und/oder Daten. Die Computersoftware oder Daten, die auf dem entfernbaren Speichermedium564 gespeichert sind, werden in das Computersystem550 als elektrische Kommunikationssignale578 gelesen. - In alternativen Ausführungsbeispielen kann der Sekundärspeicher
558 andere ähnliche Mittel aufweist, um es zu erlauben, dass Computerprogramme oder andere Daten oder Befehle in das Computersystem550 geladen werden. Solche Mittel können, zum Beispiel, ein externes Speichermedium572 und eine Schnittstelle570 aufweisen. Beispiel eines externen Speichermediums572 können eine externe Festplattenlaufwerk oder ein externes optisches Laufwerk oder ein externes magnetooptisches Laufwerk aufweisen. - Andere Beispiele des Sekundärspeichers
558 können Halbleiter-basierte Speicher, wie zum Beispiel programmierbare Nur-Lese-Speicher ("PROM", programmable read-only memory), löschbare programmierbare Nur-Lese-Speicher ("EPROM", erasable programmable read-only memory), elektrisch löschbare Nur-Lese-Speicher ("EEPROM", electrically erasable read-only memory), oder Flash-Speicher (Blockorientierte Speicher ähnlich EEPROM) aufweisen. Ebenfalls enthalten sind alle anderen entfernbaren Speichereinheiten572 und Schnittstellen570 , die es erlauben, Software und Daten von der entfernbaren Speichereinheit572 auf das Computersystem550 zu übertragen. - Das Computersystem
550 kann auch eine Kommunikationsschnittstelle574 aufweisen. Die Kommunikationsschnittstelle574 erlaubt es, das Software und Daten zwischen dem Computersystem550 und externen Vorrichtungen (z.B. Druckern), Netzwerken oder Informationsquellen übertragen werden. Zum Beispiel kann Computersoftware oder ausführbarer Kode von einem Netzwerk-Serverrechner über die Kommunikationsschnittstelle574 auf das Computersystem550 übertragen werden. Beispiel einer Kommunikationsschnittstelle574 weisen ein Modem, eine Netzwerk-Schnittstellenkarte ("NIC", network interface card), einen Kommunikationsanschluss, einen PCMCIA-Slot und -Karte, eine Infrarotschnittstelle und eine IEEE-1394-Firewire auf, um nur wenige zu nennen. - Die Kommunikationsschnittstelle
574 implementiert vorzugsweise in der Industrie verbreitete Protokollstandards, wie zum Beispiel Ethernet-IEEE-802-Standards, Glasfaserkanal, digitale Fernsprechkunden-Leitung ("DSL", digital subscriber line), asynchrone digitale Fernsprechkunden-Leitung ("ADSL", asynchronous digital subscriber line), Frame Relay, asynchroner Übertragungsmodus ("ATM", asynchronous transfer mode), Netzwerk mit integrierten digitalen Diensten ("ISDN", integrated digital services network), persönliche Kommunikationsdienste ("PCS", personal communications devices), Übertragungs-Steuerungsprotokoll/Internet-Protokoll ("TCP/IP", transmission control protocol/Internet protocol), Internetprotokoll für serielle Leitung/Punkt-zu-Punkt-Protokoll ("SLIP/PPP", serial line Internet protocol/point to point protocol) und so weiter, aber kann genauso auch benutzerdefinierte oder Nicht-Standard-Schnittstellenprotokolle implementieren. - Software und Daten, die über die Kommunikationsschnittstelle
574 übertragen werden, sind allgemein in der Form von elektrischen Kommunikationssignalen578 . Diese Signale578 sind vorzugsweise an die Kommunikationsschnittstelle574 über einen Kommunikationskanal576 angelegt. Der Kommunikationskanal576 trägt die Signale578 und kann unter Verwendung einer Vielzahl von Kommunikationsmittel einschließlich Draht oder Kabel, Glasfaserkabel, herkömmlicher Telefonleitung, Mobiltelefonverbindung, Hochfrequenz (RF, radio frequency)-Verbindung oder Infrarotverbindung, um nur wenige zu nennen, implementiert sein. - Computer-ausführbarer Kode (d.h. Computerprogramme oder Software) ist in dem Hauptspeicher
556 und/oder dem Sekundärspeicher558 gespeichert. Computerprogramme können auch über die Kommunikationsschnittstelle574 empfangen werden und in dem Hauptspeicher556 und/oder dem Sekundärspeicher558 gespeichert werden. Solche Computerprogramme ermöglichen dem Computersystem550 , wenn sie aufgeführt werden, die verschiedenen Funktionen der Erfindung wie oben beschrieben, durchzuführen. - In dieser Beschreibung wird der Begriff "Computerlesbares Medium" zum Bezeichnen aller Medien verwendet, die zum Bereitstellen Computer-ausführbaren Kodes (z.B. Software und Computerprogramme) auf dem Computersystem
500 verwendet werden. Beispiel dieser Medien weisen den Hauptspeicher556 , den Sekundärspeicher558 (einschließlich des Festplattenlaufwerks50 , des entfernbaren Speichermediums564 und des externen Speichermediums572 ) und jede Peripheriekomponente, die kommunikativ mit der Kommunikationsschnittstelle574 (einschließlich einem Netzwerk-Informationsserverrechner oder einer anderen Netzwerkvorrichtung) gekoppelt ist, auf. Diese computerlesbaren Medien sind Mittel zum Bereitstellen ausführbaren Kodes, Programmierbefehle und Software auf dem Computersystem500 . - In einem Ausführungsbeispiel, die unter Verwendung von Software implementiert ist, kann die Software auf einem Computerlesbaren Medium gespeichert sein und in das Computersystem
550 mittels eines entfernbaren Speicherlaufwerks562 , einer Schnittstelle570 oder einer Kommunikationsschnittstelle574 geladen werden. In solch einem Ausführungsbeispiel wird die Software in das Computersystem550 in der Form von elektrischen Kommunikationssignalen578 geladen. Die Software bewirkt vorzugsweise, wenn sie von dem Prozessor552 ausgeführt wird, dass der Prozessor552 die erfinderischen Merkmale und Funktionen ausführt, die oben beschrieben sind. - Verschiedene Ausführungsbeispiele können auch hauptsächlich durch Hardware-Verwendung, zum Beispiel Komponenten wie zum Beispiel Anwendungsspezifische integrierte Schaltkreise ("ASICS", application specific integrated circuits) oder Feldprogrammierbare Gatearrays ("FPGAs", fiel programmable gate arrays) implementiert sein. Implementierungen einer Hardware-Zustand-Maschine, die fähig ist, die hierin beschriebenen Funktionen durchzuführen, wird auch für Fachleute offensichtlich sein. Verschiedene Ausführungsbeispiel können auch unter Verwendung einer Kombination von sowohl Hardware als auch Software implementiert sein.
- Während die bestimmten System und Verfahren, die hierin gezeigt und im Detail beschrieben sind, vollständig fähig sind, die oben beschriebenen Ziele der Erfindung zu erreichen, ist es zu verstehen, dass die Beschreibung und die hierin beschriebenen Zeichnungen ein gegenwärtig bevorzugtes Ausführungsbeispiel der Erfindung darstellen und folglich für den Gegenstand repräsentativ sind, der durch die Erfindung in breitem Umfang in Betracht gezogen ist. Es ist weiter zu verstehen, dass der Umfang der Erfindung vollständig andere Ausführungsbeispiele, die für Fachleute offensichtlich sind, umfasst, und dass der Umfang der Erfindung entsprechend durch nichts anderes als die angefügten Patentansprüche beschränkt ist.
Claims (16)
- Drahtlose Kommunikationseinrichtung (
10 ), die aufweist: eine Bibliothek von Server-Betriebskodes (70 ); eine Bibliothek von Entfernt-Betriebskodes (60 ); einen ersten Satz von ausführbaren Befehlen (80 ), wobei jeder ausführbare Befehl einem Betriebskode in der Bibliothek von Entfernt-Betriebskodes (60 ) entspricht; eine Laufzeit-Engine (50 ), die zum Kompilieren eines Satzes von Server-Betriebskodes aus der Bibliothek von Server-Betriebskodes (70 ) und zum Senden des Satzes von kompilierten Server-Betriebskodes an einen Server-Rechner (30 ), der mit der drahtlosen Kommunikationseinrichtung (10 ) über ein drahtloses Kommunikationsnetzwerk (40 ) kommunikativ gekoppelt ist, eingerichtet ist, wobei die Laufzeit-Engine (50 ) ferner zum Empfangen eines Satzes von Entfernt-Betriebskodes und zum Ausführen eines zweiten Satzes von ausführbaren Befehlen aus dem ersten Satz von ausführbaren Befehlen (80 ) eingerichtet ist, wobei jeder ausführbare Befehl des zweiten Satzes einem Betriebskode in dem empfangenen Satz von Entfernt-Betriebskodes entspricht. - Drahtlose Kommunikationseinrichtung gemäß Anspruch 1, wobei der kompilierte Satz von Server-Betriebskodes ferner Nutzdaten aufweisen.
- Drahtlose Kommunikationseinrichtung gemäß Anspruch 1, wobei die Laufzeit-Engine zum automatischen Kompilieren des Satzes von Server-Betriebskodes und zum Senden des kompilierten Satzes von Server-Betriebskodes zu einer vorgegebenen Zeit eingerichtet ist.
- Drahtlose Kommunikationseinrichtung gemäß Anspruch 1, wobei die Laufzeit-Engine zum Kompilieren des Satzes von Server-Betriebskodes und zum Senden des kompilierten Satzes von Server-Betriebskodes in Antwort auf eine Eingabe eines Benutzers der drahtlosen Kommunikationseinrichtung eingerichtet ist.
- Bidirektionales System zum Senden und Empfangen von Betriebskodes zwischen einer drahtlosen Kommunikationseinrichtung (
10 ) und einem Server-Rechner (30 ), wobei die drahtlose Kommunikationseinrichtung und der Server-Rechner über ein drahtloses Kommunikationsnetzwerk (40 ) kommunikativ gekoppelt sind, wobei das System aufweist: eine drahtlose Kommunikationseinrichtung (10 ) mit einer Laufzeit-Engine (50 ), einer Bibliothek von Server-Betriebskodes (70 ), einer Bibliothek von Entfernt-Betriebskodes (60 ), und einem ersten Satz von ausführbaren Befehlen (80 ), wobei jeder ausführbare Befehl in dem ersten Satz einem Betriebskode in der Bibliothek von Entfernt-Betriebskodes (60 ) der drahtlosen Kommunikationseinrichtung entspricht; und einen Server-Rechner (30 ) mit einem Steuerungsmodul (95 ), einer Bibliothek von Server-Betriebskodes (70 ), einer Bibliothek von Entfernt-Betriebskodes (60 ), und einem zweiten Satz von ausführbaren Befehlen (82 ), wobei jeder ausführbare Befehl in dem zweiten Satz einem Betriebskode in der Bibliothek von Server-Betriebskodes (70 ) des Server-Rechners entspricht; wobei die Laufzeit-Engine (50 ) zum Kompilieren eines Satzes von Server-Betriebskodes aus der Bibliothek von Server-Betriebskodes (70 ) und zum Senden des kompilierten Satzes von Server-Betriebskodes an den Server-Rechner (30 ) eingerichtet ist, wobei der Server-Rechner (30 ) zum Empfangen des kompilierten Satzes von Server-Betriebskodes von der drahtlosen Kommunikationseinrichtung und zum Ausführen eines dritten Satzes von ausführbaren Befehlen aus dem zweiten Satz von ausführbaren Befehlen eingerichtet ist, wobei jeder ausführbare Befehl des dritten Satzes einem Betriebskode in dem empfangenen Satz von Server-Betriebskodes entspricht, wobei der Server-Rechner ferner zum Kompilieren eines Satzes von Entfernt-Betriebskodes aus der Bibliothek von Entfernt-Betriebskodes (60 ) und zum Senden des kompilierten Satzes von Entfernt-Betriebskodes an die drahtlose Kommunikationseinrichtung (10 ) eingerichtet ist, und wobei die Laufzeit-Engine (50 ) ferner zum Empfangen des kompilierten Satzes von Entfernt-Betriebskodes und zum Ausführen eines vierten Satzes von ausführbaren Befehlen aus dem ersten Satz von ausführbaren Befehlen (80 ) eingerichtet ist, wobei jeder ausführbare Befehl des vierten Satzes einem Betriebskode in dem empfangenen Satz von Entfernt-Betriebskodes entspricht. - System gemäß Anspruch 5, wobei der kompilierte Satz von Server-Betriebskodes ferner Nutzdaten aufweist.
- System gemäß Anspruch 5, wobei die Laufzeit-Engine zum automatischen Kompilieren des Satzes von Server-Betriebskodes und zum Senden des kompilierten Satzes von Server-Betriebskodes zu einer vorgegebenen Zeit eingerichtet ist.
- System gemäß Anspruch 5, wobei die Laufzeit-Engine zum Kompilieren des Satzes von Betriebskodes und zum Senden des kompilierten Satzes von Server-Betriebskodes in Antwort auf eine Eingabe eines Benutzers der drahtlosen Kommunikationseinrichtung eingerichtet ist.
- Verfahren zum Senden und Empfangen von Betriebskodes zwischen einer drahtlosen Kommunikationseinrichtung (
10 ) und einen Server-Rechner (30 ), wobei die drahtlose Kommunikationseinrichtung (10 ) und der Server-Rechner (30 ) über ein drahtloses Kommunikationsnetzwerk (40 ) kommunikativ gekoppelt sind, wobei das Verfahren auf der Ebene der drahtlosen Kommunikationseinrichtung (10 ) die Schritte aufweist: Kompilieren (522 ) eines Satzes von Server-Betriebskodes aus einer Bibliothek von Server-Betriebskodes (70 ); Hinzufügen (528 ) von Nutzdaten an den kompilierten Satz von Server-Betriebskodes, wobei die Nutzdaten dem kompilierten Satz von Server-Betriebskodes entsprechen; Senden (530 ) des kompilierten Satzes von Server-Betriebskodes und der Nutzdaten an den Server-Rechner zum Ausführen der entsprechenden Befehle darauf; Empfangen (500 ) eines Satzes von Entfernt-Betriebskodes von dem Server-Rechner; und Ausführen (510 ) eines Satzes von ausführbaren Befehlen, wobei jeder ausführbare Befehl aus diesem Satz einem Betriebskode in dem entfernten Satz von Entfernt-Betriebskodes entspricht. - Verfahren gemäß Anspruch 9, wobei der Anbring-Schritt (
528 ) ferner die Schritte aufweist: Bestimmen, ob ein entsprechender Datenwert für jeden Betriebskode benötigt wird, der in dem kompilierten Satz von Betriebskodes enthalten ist; Abrufen (526 ) des benötigten entsprechenden Datenwerts für jeden Betriebskode; und Kompilieren des für jeden Betriebskode abgerufenen entsprechenden Datenwerts in Nutzdaten. - Verfahren gemäß Anspruch 9, wobei der Kompilierungsschritt ferner die Schritt aufweist: Abrufen eines Betriebskodes von der Bibliothek von Server-Betriebskodes; und Speichern des Betriebskodes in einem temporären Speicherort, der den Satz von Server-Betriebskodes aufnimmt.
- Verfahren gemäß Anspruch 9, wobei die Nutzdaten Diagnose-Informationen aufweisen.
- Computerlesbares Medium, das darauf gespeichert eine oder eine Mehrzahl von Befehlssequenzen aufweist, um zu Bewirken, dass einer oder eine Mehrzahl von Mikroprozessoren die Schritte zum Senden von Betriebskodes an einen Server-Rechner (
30 ) ausführt, der kommunikativ mit einer drahtlosen Kommunikationseinrichtung (10 ) über ein drahtloses Kommunikationsnetzwerk (40 ) gekoppelt ist, wobei die Schritte aufweisen: Kompilieren (522 ) eines Satzes von Server-Betriebskodes aus einer Bibliothek von Server-Betriebskodes (70 ); Hinzufügen (528 ) von Nutzdaten an den kompilierten Satz von Server-Betriebskodes, wobei die Nutzdaten dem kompilierten Satz von Server-Betriebskodes entsprechen; und Senden (530 ) des kompilierten Satzes von Server-Betriebskodes und der Nutzdaten an einen Server-Rechner zum Ausführen der jeweiligen Befehle darauf, und wobei das computerlesbare Medium ferner darauf gespeichert eine oder eine Mehrzahl von Befehlssequenzen aufweist, um zu Bewirken, dass einer oder eine Mehrzahl von Mikroprozessoren die Schritte ausführt: Empfangen (500 ) eines Satzes von Entfernt-Betriebskodes von dem Server-Rechner (30 ); Erreichen (508 ) eines Satzes von ausführbaren Befehlen, wobei jeder ausführbare Befehl dieses Satzes einem Betriebskode des empfangenen Satzes von Entfernt-Betriebskodes entspricht; Ausführen (510 ) des Satzes von ausführbaren Befehlen. - Computerlesbares Medium gemäß Anspruch 13, ferner aufweisend eine oder eine Mehrzahl von Befehlssequenzen zum Durchführen der Schritte: Bestimmen (
524 ), ob ein entsprechender Datenwert für jeden Betriebskode, der in dem kompilierten Satz von Betriebskodes enthalten ist, benötigt wird; Abrufen (526 ) des benötigten entsprechenden Datenwerts für jeden Betriebskode; und Kompilieren des entsprechenden Datenwerts, der für jeden Betriebskode abgerufen wird, in Nutzdaten. - Computerlesbares Medium gemäß Anspruch 13, ferner aufweisend eine oder eine Mehrzahl von Befehlssequenzen zum Durchführen der Schritte: Abrufen eines Betriebskodes von der Bibliothek von Server-Betriebskodes; und Speichern des Betriebskodes in einem temporären Speicherort, der den Satz von Server-Betriebskodes aufnimmt.
- Computerlesbares Medium gemäß Anspruch 13, wobei die Nutzdaten Diagnose-Informationen aufweisen.
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US917026 | 2001-07-26 | ||
US09/917,026 US7328007B2 (en) | 2001-07-26 | 2001-07-26 | System and method for organizing wireless communication device system software |
US916900 | 2001-07-26 | ||
US09/916,460 US7159214B2 (en) | 2001-07-26 | 2001-07-26 | System and method for compacting field upgradeable wireless communication device software code sections |
US916460 | 2001-07-26 | ||
US09/916,900 US7027806B2 (en) | 2001-07-26 | 2001-07-26 | System and method for field downloading a wireless communications device software code section |
US09/927,131 US7143407B2 (en) | 2001-07-26 | 2001-08-10 | System and method for executing wireless communications device dynamic instruction sets |
US927131 | 2001-08-10 | ||
US09/969,305 US7386846B2 (en) | 2001-07-26 | 2001-10-02 | System and method for the management of wireless communications device system software downloads in the field |
US969305 | 2001-10-02 | ||
PCT/IB2002/002912 WO2003013103A2 (en) | 2001-07-26 | 2002-07-25 | System and method for bi-directional communication and execution of dynamic instruction sets |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60207429D1 DE60207429D1 (de) | 2005-12-22 |
DE60207429T2 true DE60207429T2 (de) | 2006-07-27 |
Family
ID=27542295
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60205755T Expired - Lifetime DE60205755T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen |
DE60211704T Expired - Lifetime DE60211704T2 (de) | 2001-07-26 | 2002-07-23 | Felddiagnosesystem und verfahren einer systemsoftware in einem drahtlosen kommunikationsgerät |
DE60206389T Expired - Lifetime DE60206389T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren zum aktualisieren von persistenten daten in einem drahtlosen kommunikationsgerät |
DE60207429T Expired - Lifetime DE60207429T2 (de) | 2001-07-26 | 2002-07-25 | Vorrichtung und verfahren zur bidirektionalen kommunikation und ausführung dynamischer befehlsätze |
DE60211719T Expired - Lifetime DE60211719T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für gleichrangiges kommunikationshandgerät |
DE60206055T Expired - Lifetime DE60206055T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für verbesserte sicherheit bei der umprogrammierung eines handgerätes |
DE60219536T Expired - Lifetime DE60219536T2 (de) | 2001-07-26 | 2002-07-25 | System und Verfahren für verbesserte Sicherheit in Versorgung und Umprogrammierung von Handgeräten |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60205755T Expired - Lifetime DE60205755T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen |
DE60211704T Expired - Lifetime DE60211704T2 (de) | 2001-07-26 | 2002-07-23 | Felddiagnosesystem und verfahren einer systemsoftware in einem drahtlosen kommunikationsgerät |
DE60206389T Expired - Lifetime DE60206389T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren zum aktualisieren von persistenten daten in einem drahtlosen kommunikationsgerät |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60211719T Expired - Lifetime DE60211719T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für gleichrangiges kommunikationshandgerät |
DE60206055T Expired - Lifetime DE60206055T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für verbesserte sicherheit bei der umprogrammierung eines handgerätes |
DE60219536T Expired - Lifetime DE60219536T2 (de) | 2001-07-26 | 2002-07-25 | System und Verfahren für verbesserte Sicherheit in Versorgung und Umprogrammierung von Handgeräten |
Country Status (9)
Country | Link |
---|---|
EP (12) | EP1410188A2 (de) |
JP (11) | JP4104546B2 (de) |
KR (10) | KR100940178B1 (de) |
CN (10) | CN1288553C (de) |
AT (9) | ATE387658T1 (de) |
AU (9) | AU2002319568A1 (de) |
DE (7) | DE60205755T2 (de) |
ES (9) | ES2300454T3 (de) |
WO (10) | WO2003010656A2 (de) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7143407B2 (en) * | 2001-07-26 | 2006-11-28 | Kyocera Wireless Corp. | System and method for executing wireless communications device dynamic instruction sets |
JP4417123B2 (ja) | 2003-02-19 | 2010-02-17 | パナソニック株式会社 | ソフトウェア更新方法及び無線通信装置 |
EP1654640B1 (de) | 2003-06-04 | 2018-08-01 | Qualcomm Incorporated | Netzwerk mit konfiguriebaren generatoren von software-aktualisierungen und mit mobilen elektronischen geräten, die ein konfigurierbares programm zum aktualisieren von software besitzen |
US7873956B2 (en) | 2003-09-25 | 2011-01-18 | Pantech & Curitel Communications, Inc. | Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor |
US7257583B2 (en) | 2004-01-09 | 2007-08-14 | Microsoft Corporation | System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download |
KR100620729B1 (ko) * | 2004-03-31 | 2006-09-13 | 주식회사 팬택앤큐리텔 | 소프트웨어 이미지 생성 방법 |
EP1757132B1 (de) * | 2004-05-18 | 2013-07-17 | Kyocera Corporation | Modulare datenkomponenten für drahtlose kommunikationseinrichtungen |
GB2416876B (en) * | 2004-08-03 | 2007-01-10 | Nec Technologies | Export file processing within a mobile radio communications device |
US7512939B2 (en) * | 2004-10-05 | 2009-03-31 | Neopost Technologies | System and method of secure updating of remote device software |
EP1659810B1 (de) * | 2004-11-17 | 2013-04-10 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Aktualisierung der Konfigurationsparameter in einem mobilen Endgerät |
US9148409B2 (en) | 2005-06-30 | 2015-09-29 | The Chamberlain Group, Inc. | Method and apparatus to facilitate message transmission and reception using different transmission characteristics |
US8422667B2 (en) | 2005-01-27 | 2013-04-16 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
USRE48433E1 (en) | 2005-01-27 | 2021-02-09 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
CN101040552B (zh) * | 2005-04-18 | 2010-12-01 | 捷讯研究有限公司 | 控制软件版本更新的方法和*** |
CN100442708C (zh) * | 2005-06-17 | 2008-12-10 | 上海华为技术有限公司 | 一种主备备份的方法及*** |
CN100476728C (zh) * | 2005-08-19 | 2009-04-08 | 光宝科技股份有限公司 | 应用程序更新方法及使用上述方法的移动通讯装置 |
CN100410893C (zh) * | 2005-09-28 | 2008-08-13 | 联想(北京)有限公司 | 自行修复嵌入式设备的主控应用程序的方法及设备 |
CN1980447B (zh) * | 2005-12-06 | 2010-06-16 | 中兴通讯股份有限公司 | 一种通信***软件版本的平滑升级方法 |
CN101401072B (zh) * | 2006-03-10 | 2010-12-15 | 富士通株式会社 | 应用补丁筛选装置以及应用补丁筛选方法 |
EP2025095A2 (de) | 2006-06-08 | 2009-02-18 | Hewlett-Packard Development Company, L.P. | Geräteverwaltung in einem netzwerk |
EP2047420A4 (de) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | Benutzererfahrungs- und abhängigkeitsverwaltung bei einer mobilen vorrichtung |
CN100403263C (zh) * | 2006-08-16 | 2008-07-16 | 华为技术有限公司 | 按配置下载设备软件的方法 |
KR100924647B1 (ko) * | 2008-08-07 | 2009-11-02 | 주식회사 케이티 | 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템 |
JP2012523479A (ja) | 2009-04-07 | 2012-10-04 | センシエント カラーズ エルエルシー | 自己分散性粒子並びにその製造方法及び使用方法 |
CN101539885B (zh) * | 2009-04-23 | 2011-06-08 | 大唐微电子技术有限公司 | 一种无线通信模块软件自主空中升级的方法、装置及*** |
US8402217B2 (en) * | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
CN102253847A (zh) * | 2010-05-19 | 2011-11-23 | 宏碁股份有限公司 | 制作***软件的***及***软件的部署方法 |
US8756256B2 (en) * | 2010-05-26 | 2014-06-17 | Qualcomm Incorporated | Method and systems for the management of non volatile items and provisioning files for a communication device with multiple service accounts |
JP6290913B2 (ja) * | 2012-11-09 | 2018-03-07 | コーヒレント・ロジックス・インコーポレーテッド | 多重プロセッサシステムのためのリアルタイム分析及び制御 |
US10064251B2 (en) * | 2013-03-15 | 2018-08-28 | Cree, Inc. | Updatable lighting fixtures and related components |
CN103345412B (zh) * | 2013-07-10 | 2016-08-24 | 华为技术有限公司 | 打补丁的方法及装置 |
US10652743B2 (en) | 2017-12-21 | 2020-05-12 | The Chamberlain Group, Inc. | Security system for a moveable barrier operator |
WO2019213672A1 (en) * | 2018-05-04 | 2019-11-07 | Herdx, Inc. | Food supply tracking, verification, and feedback system |
US11074773B1 (en) | 2018-06-27 | 2021-07-27 | The Chamberlain Group, Inc. | Network-based control of movable barrier operators for autonomous vehicles |
US11423717B2 (en) | 2018-08-01 | 2022-08-23 | The Chamberlain Group Llc | Movable barrier operator and transmitter pairing over a network |
KR102176204B1 (ko) | 2018-10-15 | 2020-11-09 | 김용대 | 유명인 사용물품 기부 중개 서비스 방법 |
US10997810B2 (en) | 2019-05-16 | 2021-05-04 | The Chamberlain Group, Inc. | In-vehicle transmitter training |
JP7461755B2 (ja) * | 2020-02-21 | 2024-04-04 | 日立Astemo株式会社 | 情報処理装置、プログラム更新システム、及びプログラム更新方法 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8901932D0 (en) * | 1989-01-28 | 1989-03-15 | Int Computers Ltd | Data processing system |
FR2662891A1 (fr) * | 1990-05-30 | 1991-12-06 | Cit Alcatel | Dispositif de telechargement de logiciel pour un terminal de telecommunication. |
US5193180A (en) * | 1991-06-21 | 1993-03-09 | Pure Software Inc. | System for modifying relocatable object code files to monitor accesses to dynamically allocated memory |
JPH07182178A (ja) * | 1993-02-19 | 1995-07-21 | Nec Corp | プリロードモジュール修正システム |
US5488648A (en) * | 1993-08-17 | 1996-01-30 | Telefonaktiebolaget L M Ericsson | Behavior monitoring and analyzing system for stored program controlled switching system |
US5845090A (en) * | 1994-02-14 | 1998-12-01 | Platinium Technology, Inc. | System for software distribution in a digital computer network |
JP3140906B2 (ja) | 1994-04-12 | 2001-03-05 | 株式会社エヌ・ティ・ティ・データ | システムファイルの更新及び復元方法 |
US5734904A (en) * | 1994-11-14 | 1998-03-31 | Microsoft Corporation | Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type |
JPH08166877A (ja) * | 1994-12-13 | 1996-06-25 | Olympus Optical Co Ltd | 修正プログラムの実行可能なワンチップマイクロコンピュータ及びrom修正可能なマイクロコンピュータ |
DE19502728A1 (de) * | 1995-01-28 | 1996-08-01 | Philips Patentverwaltung | Telekommunikationsvorrichtung |
US5673317A (en) * | 1995-03-22 | 1997-09-30 | Ora Electronics, Inc. | System and method for preventing unauthorized programming of wireless network access devices |
US5699275A (en) * | 1995-04-12 | 1997-12-16 | Highwaymaster Communications, Inc. | System and method for remote patching of operating code located in a mobile unit |
DE19527808C2 (de) * | 1995-07-28 | 1999-04-01 | Siemens Ag | Verfahren zum Modifizieren der Softwareprozeduren eines Kommunikationssystems |
DE19543843C2 (de) * | 1995-11-24 | 2001-02-08 | Acer Peripherals Inc | Verfahren zur Aktualisierung der Software in einem mikrocomputergestützten Telefon |
JP2002515999A (ja) * | 1996-08-28 | 2002-05-28 | ウィンド リヴァー システムズ インコーポレイテッド | 複数プロセッサーで分割されるソフトウエア診断のためのツール |
US6247065B1 (en) * | 1996-12-26 | 2001-06-12 | At&T Corp. | Messaging platform process |
US6023620A (en) * | 1997-02-26 | 2000-02-08 | Telefonaktiebolaget Lm Ecrisson | Method for downloading control software to a cellular telephone |
US5938766A (en) * | 1997-03-21 | 1999-08-17 | Apple Computer, Inc. | System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables |
SE512110C2 (sv) * | 1997-06-17 | 2000-01-24 | Ericsson Telefon Ab L M | System och förfarande för att kundanpassa trådlösa kommunikationsenheter |
JPH1115689A (ja) * | 1997-06-19 | 1999-01-22 | Nec Corp | ソフトウェアのデバッグ方法及びデバッグ・プログラムを記録した記録媒体 |
US5974312A (en) * | 1997-07-10 | 1999-10-26 | Ericsson Inc. | System and method for updating a memory in an electronic device via wireless data transfer |
US6496979B1 (en) * | 1997-10-24 | 2002-12-17 | Microsoft Corporation | System and method for managing application installation for a mobile device |
JPH11141394A (ja) * | 1997-11-07 | 1999-05-25 | Nissan Motor Co Ltd | 車両制御用メモリ書き換え装置 |
JPH11146011A (ja) * | 1997-11-11 | 1999-05-28 | Nec Corp | 電子メールシステム及び電子メールサーバ及び通信端末 |
JP3337062B2 (ja) * | 1997-11-21 | 2002-10-21 | 日本電気株式会社 | 無線データ転送方法及びそのシステム |
US6275694B1 (en) * | 1997-12-19 | 2001-08-14 | Vlsi Technology, Inc. | Method for remotely updating software code for personal handy phone system equipment |
US6438711B2 (en) * | 1998-07-15 | 2002-08-20 | Intel Corporation | Method and apparatus for performing field diagnostics on a computer system |
US20020073398A1 (en) * | 1998-12-14 | 2002-06-13 | Jeffrey L. Tinker | Method and system for modifying executable code to add additional functionality |
GB2349485B (en) * | 1999-04-23 | 2003-12-10 | Ibm | Application management |
SE516806C2 (sv) * | 1999-05-26 | 2002-03-05 | Ericsson Telefon Ab L M | Sätt för inladdning av programvara i en radioterminal, såsom en mobiltelefon, och tillhörande radioterminal |
US6282647B1 (en) * | 1999-06-02 | 2001-08-28 | Adaptec, Inc. | Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code |
FR2800963B1 (fr) * | 1999-11-09 | 2001-12-07 | Wavecom Sa | Procede de mise a jour d'un programme principal execute par un module de radiocommunication et/ou de donnees associees a ce programme principal, et module de radiocommunication correspondant |
US7264532B2 (en) * | 2004-12-27 | 2007-09-04 | Tsan-Yao Chen | Cup structure |
-
2002
- 2002-07-22 JP JP2003515966A patent/JP4104546B2/ja not_active Expired - Fee Related
- 2002-07-22 CN CNB028148320A patent/CN1288553C/zh not_active Expired - Fee Related
- 2002-07-22 AT AT02749158T patent/ATE387658T1/de not_active IP Right Cessation
- 2002-07-22 EP EP02749157A patent/EP1410188A2/de not_active Withdrawn
- 2002-07-22 ES ES02749158T patent/ES2300454T3/es not_active Expired - Lifetime
- 2002-07-22 AU AU2002319568A patent/AU2002319568A1/en not_active Abandoned
- 2002-07-22 KR KR1020047000719A patent/KR100940178B1/ko not_active IP Right Cessation
- 2002-07-22 KR KR1020047000721A patent/KR100940180B1/ko not_active IP Right Cessation
- 2002-07-22 EP EP02749158A patent/EP1410189B1/de not_active Expired - Lifetime
- 2002-07-22 WO PCT/IB2002/002866 patent/WO2003010656A2/en active Application Filing
- 2002-07-22 WO PCT/IB2002/002867 patent/WO2003010658A2/en active IP Right Grant
- 2002-07-22 EP EP02749161A patent/EP1410191A2/de not_active Withdrawn
- 2002-07-22 CN CNB028148312A patent/CN1275149C/zh not_active Expired - Fee Related
- 2002-07-22 AU AU2002319569A patent/AU2002319569A1/en not_active Abandoned
- 2002-07-22 KR KR1020047000723A patent/KR100911604B1/ko not_active IP Right Cessation
- 2002-07-22 AU AU2002319572A patent/AU2002319572A1/en not_active Abandoned
- 2002-07-22 JP JP2003515964A patent/JP2004537120A/ja not_active Withdrawn
- 2002-07-22 CN CNB028148339A patent/CN1275150C/zh not_active Expired - Fee Related
- 2002-07-22 WO PCT/IB2002/002875 patent/WO2003010663A2/en not_active Application Discontinuation
- 2002-07-22 JP JP2003515971A patent/JP2005505813A/ja not_active Withdrawn
- 2002-07-23 CN CNB028148347A patent/CN1235137C/zh not_active Expired - Fee Related
- 2002-07-23 ES ES02749167T patent/ES2249602T3/es not_active Expired - Lifetime
- 2002-07-23 EP EP05021081A patent/EP1610222B1/de not_active Expired - Fee Related
- 2002-07-23 WO PCT/IB2002/002890 patent/WO2003010664A2/en active IP Right Grant
- 2002-07-23 AT AT02749167T patent/ATE305632T1/de not_active IP Right Cessation
- 2002-07-23 KR KR1020047000726A patent/KR100913659B1/ko not_active IP Right Cessation
- 2002-07-23 EP EP02749167A patent/EP1410193B1/de not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002869 patent/WO2003010662A2/en active IP Right Grant
- 2002-07-23 DE DE60205755T patent/DE60205755T2/de not_active Expired - Lifetime
- 2002-07-23 JP JP2003515972A patent/JP4278513B2/ja not_active Expired - Fee Related
- 2002-07-23 KR KR1020047000716A patent/KR100940179B1/ko not_active IP Right Cessation
- 2002-07-23 AU AU2002319577A patent/AU2002319577A1/en not_active Abandoned
- 2002-07-23 CN CNB028148371A patent/CN1279447C/zh not_active Expired - Fee Related
- 2002-07-23 AU AU2002319573A patent/AU2002319573A1/en not_active Abandoned
- 2002-07-23 ES ES02749166T patent/ES2299587T3/es not_active Expired - Lifetime
- 2002-07-23 EP EP02749163A patent/EP1410209B1/de not_active Expired - Lifetime
- 2002-07-23 EP EP02749159A patent/EP1410190B1/de not_active Expired - Lifetime
- 2002-07-23 JP JP2003515976A patent/JP4176634B2/ja not_active Expired - Fee Related
- 2002-07-23 CN CNB028148355A patent/CN1235138C/zh not_active Expired - Fee Related
- 2002-07-23 AT AT02749159T patent/ATE302972T1/de not_active IP Right Cessation
- 2002-07-23 AT AT02749166T patent/ATE382159T1/de not_active IP Right Cessation
- 2002-07-23 JP JP2003517749A patent/JP4310186B2/ja not_active Expired - Fee Related
- 2002-07-23 AU AU2002319576A patent/AU2002319576A1/en not_active Abandoned
- 2002-07-23 ES ES02749163T patent/ES2263796T3/es not_active Expired - Lifetime
- 2002-07-23 KR KR1020047000725A patent/KR100918162B1/ko not_active IP Right Cessation
- 2002-07-23 DE DE60211704T patent/DE60211704T2/de not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002889 patent/WO2003012639A2/en active IP Right Grant
- 2002-07-23 JP JP2003515970A patent/JP4073399B2/ja not_active Expired - Fee Related
- 2002-07-23 KR KR1020047000718A patent/KR100913658B1/ko not_active IP Right Cessation
- 2002-07-23 ES ES02749159T patent/ES2247355T3/es not_active Expired - Lifetime
- 2002-07-23 CN CNB02814838XA patent/CN1288554C/zh not_active Expired - Fee Related
- 2002-07-23 EP EP02749166A patent/EP1410192B1/de not_active Expired - Lifetime
- 2002-07-23 AU AU2002319570A patent/AU2002319570A1/en not_active Abandoned
- 2002-07-23 WO PCT/IB2002/002877 patent/WO2003010668A2/en active IP Right Grant
- 2002-07-23 AT AT02749163T patent/ATE327536T1/de not_active IP Right Cessation
- 2002-07-23 DE DE60206389T patent/DE60206389T2/de not_active Expired - Lifetime
- 2002-07-25 WO PCT/IB2002/002912 patent/WO2003013103A2/en active IP Right Grant
- 2002-07-25 AT AT02751472T patent/ATE327628T1/de not_active IP Right Cessation
- 2002-07-25 ES ES02751472T patent/ES2263799T3/es not_active Expired - Lifetime
- 2002-07-25 WO PCT/IB2002/002905 patent/WO2003010932A2/en active IP Right Grant
- 2002-07-25 AU AU2002355308A patent/AU2002355308A1/en not_active Abandoned
- 2002-07-25 JP JP2003516197A patent/JP4106020B2/ja not_active Expired - Fee Related
- 2002-07-25 JP JP2003516189A patent/JP4077408B2/ja not_active Expired - Fee Related
- 2002-07-25 EP EP02762622A patent/EP1425894B1/de not_active Expired - Lifetime
- 2002-07-25 CN CNB02814841XA patent/CN1250035C/zh not_active Expired - Fee Related
- 2002-07-25 WO PCT/IB2002/002906 patent/WO2003010942A2/en active IP Right Grant
- 2002-07-25 DE DE60207429T patent/DE60207429T2/de not_active Expired - Lifetime
- 2002-07-25 ES ES05018919T patent/ES2284112T3/es not_active Expired - Lifetime
- 2002-07-25 AT AT05018919T patent/ATE359681T1/de not_active IP Right Cessation
- 2002-07-25 DE DE60211719T patent/DE60211719T2/de not_active Expired - Lifetime
- 2002-07-25 CN CNB028148398A patent/CN100378661C/zh not_active Expired - Fee Related
- 2002-07-25 AT AT02741113T patent/ATE304272T1/de not_active IP Right Cessation
- 2002-07-25 EP EP02751472A patent/EP1423959B1/de not_active Expired - Lifetime
- 2002-07-25 EP EP05018919A patent/EP1601217B1/de not_active Expired - Lifetime
- 2002-07-25 AT AT02762622T patent/ATE310354T1/de not_active IP Right Cessation
- 2002-07-25 KR KR1020047001087A patent/KR100932058B1/ko not_active IP Right Cessation
- 2002-07-25 JP JP2003518153A patent/JP4101752B2/ja not_active Expired - Fee Related
- 2002-07-25 DE DE60206055T patent/DE60206055T2/de not_active Expired - Lifetime
- 2002-07-25 KR KR1020047001088A patent/KR100984895B1/ko not_active IP Right Cessation
- 2002-07-25 ES ES02762622T patent/ES2253553T3/es not_active Expired - Lifetime
- 2002-07-25 DE DE60219536T patent/DE60219536T2/de not_active Expired - Lifetime
- 2002-07-25 ES ES02741113T patent/ES2248568T3/es not_active Expired - Lifetime
- 2002-07-25 KR KR1020047001086A patent/KR100817387B1/ko not_active IP Right Cessation
- 2002-07-25 CN CNB028148401A patent/CN1310488C/zh not_active Expired - Fee Related
- 2002-07-25 AU AU2002328167A patent/AU2002328167A1/en not_active Abandoned
- 2002-07-25 EP EP02741113A patent/EP1410665B1/de not_active Expired - Lifetime
-
2007
- 2007-11-22 JP JP2007303740A patent/JP2008108268A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60207429T2 (de) | Vorrichtung und verfahren zur bidirektionalen kommunikation und ausführung dynamischer befehlsätze | |
DE60224281T2 (de) | System und verfahren zur kompaktierung von im feld aktualisierbaren softwarekodeabschnitten eines drahtlosen kommunikationsgerätes | |
US7359699B2 (en) | System and method for peer-to-peer handset communication | |
US6098098A (en) | System for managing the configuration of multiple computer devices | |
CN101674590A (zh) | 一种客户端设备及其远程升级方法、远程升级服务*** | |
CN105446769A (zh) | 镜像文件升级处理方法、装置和终端设备 | |
US20030110479A1 (en) | System and method for bi-directional communication and execution of dynamic instruction sets | |
CN110968592B (zh) | 元数据采集方法、装置、计算机设备及计算机可读存储介质 | |
CN106648805A (zh) | 一种智能装置、智能***及智能安装应用的方法 | |
CN100546253C (zh) | 一种电信设备单元的管理方法 | |
CN105467854B (zh) | 基于场景信息的设备操作方法及装置 | |
CN111858018A (zh) | Cgroup配置的方法、装置、计算机设备及存储介质 | |
CN117092985A (zh) | 一种车辆诊断方法、装置、设备及介质 | |
CN116483399A (zh) | 一种基于云端驱动的App动态页面更新方法及*** | |
CN112416932A (zh) | 建立字段关联关系的方法及装置 | |
CN117667155A (zh) | 一种诊断软件升级方法、装置、设备及存储介质 | |
KR20030019817A (ko) | 이엠에스 시스템에서의 구성 관리 제어 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
R082 | Change of representative |
Ref document number: 1425894 Country of ref document: EP Representative=s name: VIERING, JENTSCHURA & PARTNER, DE |
|
R081 | Change of applicant/patentee |
Ref document number: 1425894 Country of ref document: EP Owner name: KYOCERA CORP., JP Free format text: FORMER OWNER: KYOCERA WIRELESS CORP., SAN DIEGO, US Effective date: 20120817 |
|
R082 | Change of representative |
Ref document number: 1425894 Country of ref document: EP Representative=s name: VIERING, JENTSCHURA & PARTNER, DE Effective date: 20120817 |