ES2284112T3 - Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. - Google Patents
Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. Download PDFInfo
- Publication number
- ES2284112T3 ES2284112T3 ES05018919T ES05018919T ES2284112T3 ES 2284112 T3 ES2284112 T3 ES 2284112T3 ES 05018919 T ES05018919 T ES 05018919T ES 05018919 T ES05018919 T ES 05018919T ES 2284112 T3 ES2284112 T3 ES 2284112T3
- Authority
- ES
- Spain
- Prior art keywords
- code
- reprogramming
- section
- data
- symbol
- 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 98
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 title 1
- 230000008672 reprogramming Effects 0.000 claims abstract description 138
- 230000006854 communication Effects 0.000 claims abstract description 136
- 238000004891 communication Methods 0.000 claims abstract description 136
- 230000008569 process Effects 0.000 claims abstract description 45
- 238000013475 authorization Methods 0.000 claims description 47
- 230000004044 response Effects 0.000 claims description 44
- 239000000284 extract Substances 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 9
- 230000036961 partial effect Effects 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 130
- 238000012937 correction Methods 0.000 description 56
- 238000003860 storage Methods 0.000 description 54
- 238000007726 management method Methods 0.000 description 30
- 230000006870 function Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 15
- 238000005056 compaction Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral 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
- 108091006625 SLC10A6 Proteins 0.000 description 1
- 102100021993 Sterol O-acyltransferase 1 Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004540 process dynamic Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 210000000707 wrist Anatomy 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)
Abstract
Método implementado por ordenador para conseguir acceso de reprogramación variable a un dispositivo de comunicación sin cables reprogramable (10, 12, 14), cuyo método comprende las siguientes etapas: compilar un equipo de código operativo remoto comprendiendo como mínimo un código operativo remoto y una carga de datos; y enviar el equipo de código operativo remoto a una serie de dispositivos de comunicación sin cables reprogramables (10, 12, 14), de manera que el proceso del equipo de código operativo remoto provoca que cada uno de los dispositivos de comunicación sin cables reprogramables (10, 12, 14) modifique su nivel de seguridad de reprogramación.
Description
Sistema y método para mejorar la seguridad en el
reacondicionamiento y reprogramación de aparatos telefónicos
móviles.
La presente invención se refiere, de manera
general, al sector de comunicaciones sin cables, y más en particular
se refiere a sistemas de seguridad para el reacondicionamiento y
reprogramación de un dispositivo de comunicación sin cables.
Los dispositivos de comunicación sin cables que
comprenden cualquier tipo de dispositivo que se comunica a través de
una red de comunicación sin cables, son programados y acondicionados
en su fabricación. De manera alternativa, pueden ser programados y
acondicionados cuando son activados por el vendedor o proveedor de
acceso a la red tal como Sprint, Verizon, AT&T Mobile, y otros.
La programación y acondicionamiento (a lo que se hará referencia a
continuación colectivamente como "programación") de un
dispositivo de comunicación sin cables (al cual también se hará
referencia como "dispositivo sin cables", "aparato manual"
o "dispositivo móvil") proporciona al aparato manual un número
de identificación de móvil ("MIN"), llamado también número de
teléfono, y otros parámetros operativos, parámetros de red y
software de aplicación. Estos elementos son colocados en una memoria
permanente del aparato, de la que no pueden ser borrados o
modificados.
De manera típica, ver, por ejemplo, el documento
US-A-5673317, los aparatos manuales
son programados por el vendedor o proveedor del servicio cuando se
activa el aparato manual. En aparatos manuales de tipo convencional,
después de haber realizado esta programación, se coloca también un
código de bloqueo (al cual se hace también referencia como "código
de acceso") en la memoria permanente del aparato manual.
Posteriormente, cualesquiera intentos de programación futuros deben
proporcionar en primer lugar el código de acceso antes de que el
aparato manual permita la modificación de su memoria permanente,
procedimiento conocido como reacondicionamiento o reprogramación (a
lo que se hará referencia colectivamente en esta descripción como
"reprogra- mación").
Este tipo de seguridad convencional para el
reacondicionamiento de los aparatos manuales se encuentra con muchas
dificultades. Se han desarrollado en el mercado paralelo y en el
mercado negro dispositivos de aplicación y herramientas que son
capaces de revelar el código de acceso de un aparato manual, de
manera que éste puede ser reprogramado. Frecuentemente, se venden
posteriormente teléfonos reprogramados como artículos de mercado
paralelo a consumidores que desconocen la manipulación. Además,
estos teléfonos reprogramados de forma ilícita son también vendidos
en el mercado negro, en el que su utilización crea confusión a los
usuarios legales al sobrecargar la red con tráfico por el que no se
paga.
Por lo tanto, se requiere un sistema y método
que proporcione seguridad adicional a los aparatos manuales contra
la reprogramación no autorizada sin dificultar la reprogramación
autorizada.
Los aparatos manuales convencionales pueden ser
reprogramados corrientemente en el mercado con dispositivos de
software de poco precio y conexión en serie. Esta reprogramación
permite la venta de estos aparatos manuales en el mercado paralelo o
mercado negro en los que su utilización ilícita ocupa las bandas de
transmisión con tráfico adicional y confunde el acceso a la red para
los clientes que pagan por el servicio.
La presente invención proporciona un ordenador
que lleva a cabo métodos para conseguir una mejora en la seguridad
en la reprogramación de aparatos manuales, impidiendo que un aparato
manual pueda ser reprogramado en el mercado sin cierto tipo de
autorización del proveedor de servicio (al cual también se hará
referencia como "proveedor" ("carrier")). Una ventaja
significativa de esta nueva solución es que el proveedor puede
mantener registros relativos a cuándo, dónde y por quién han sido
reprogramados sus teléfonos que se encuentran en el mercado.
Además, al requerir la autorización del proveedor para la
reprogramación de un aparato manual, se incrementa
significativamente la dificultad y complejidad de la reprogramación
de aparatos manuales para su distribución en el mercado paralelo o
en el mercado negro.
Cuando un aparato manual recibe una solicitud de
reprogramación, o detecta un intento de reprogramación, el aparato
manual entra en contacto con el proveedor para conseguir su
autorización para su reprogramación. La red puede proporcionar la
autorización, denegarla, requerir información adicional del
dispositivo de reprogramación o entrar en contacto con el
dispositivo de reprogramación directamente para autorizar dicha
reprogramación.
De manera ventajosa, el aparato manual puede ser
fabricado sin que el código de acceso esté almacenado en una memoria
permanente. Esta falta de código de acceso hace que el aparato
manual no tenga posibilidad de ser reprogramado sin conocimiento y
autorización del proveedor. Otras ventajas y aplicaciones de los
sistemas y métodos de la presente invención quedarán evidentes
después de estudio de la siguiente descripción.
Los detalles de la presente invención, tanto en
lo que respecta a su estructura como funcionamiento, se pueden
conseguir parcialmente por el estudio de los dibujos adjuntos, en
los que los numerales de referencia idénticos se refieren a iguales
piezas, y en los que:
la figura 1 es un diagrama esquemático de
bloques del sistema general de mantenimiento de software del
dispositivo o aparato que funciona sin cables;
la figura 2 es un diagrama de bloques
esquemático del sistema de mantenimiento del software, indicando la
instalación de equipos de instrucción a través de enlace aéreo;
la figura 3 es un diagrama esquemático de
bloques que muestra el sistema de la presente invención para la
realización de instrucciones dinámicas en un dispositivo de
comunicaciones sin cables;
la figura 4 es un diagrama esquemático de
bloques de la memoria del dispositivo sin cables;
la figura 5 es una tabla representativa de la
tabla de direcciones de la sección de código de la figura 3;
la figura 6 es una representación detallada de
la biblioteca de símbolos de la figura 3, con símbolos;
la figura 7 es una tabla representativa de la
tabla de direcciones de desplazamiento de símbolos de la figura
3;
la figura 8 es una representación del código
operativo ("opcode") al cual se tiene acceso por el aparato de
contaje de tiempo transcurrido;
la figura 9 es una representación más detallada
del primer código operativo de la figura 8;
la figura 10 es un diagrama de flujo que muestra
el método de la presente invención para llevar a cabo la realización
de conjuntos de instrucciones dinámicas en un dispositivo de
comunicaciones sin cables;
la figura 11 es un diagrama de flujo que muestra
el funcionamiento de un conjunto de instrucciones dinámicas, a
título de ejemplo;
la figura 12 es un diagrama de flujo que muestra
el funcionamiento de otro conjunto de instrucciones dinámicas, a
título de ejemplo;
la figura 13 es un diagrama de flujo que muestra
el funcionamiento de un tercer conjunto de instrucciones dinámicas,
a título de ejemplo;
la figura 14 es un diagrama de flujo que muestra
el funcionamiento de un cuarto conjunto de instrucciones dinámicas,
a título de ejemplo;
la figura 15 es un diagrama de flujo que muestra
el funcionamiento de un quinto conjunto de instrucciones dinámicas,
a título de ejemplo;
la figura 16 es un diagrama de red de alto nivel
que muestra un ejemplo de red de comunicación sin cables;
la figura 17A es un diagrama de bloques que
muestra un ejemplo del dispositivo de comunicación sin cables;
la figura 17B es un diagrama de bloques que
muestra un ejemplo de sección de código de instrucciones de tiempo
transcurrido, remoto;
la figura 18A es un diagrama de bloques que
muestra un servidor PMRTI como ejemplo;
la figura 18B es un diagrama de bloques
ilustrativo de un ejemplo de sección de código de instrucciones de
tiempo transcurrido del servidor;
la figura 19 es un diagrama de flujo ilustrativo
de un proceso de ejemplo para realizar conjuntos de instrucciones
dinámicas en el dispositivo de comunicación sin cables;
la figura 20 es un diagrama de flujo ilustrativo
de un proceso de ejemplo para la compilación de conjuntos e
instrucciones dinámicas en un dispositivo de comunicación sin
cables;
\newpage
la figura 21 es un diagrama de flujo que muestra
un ejemplo de proceso para la realización de los conjuntos de
instrucciones dinámicas en un servidor PMRTI;
la figura 22 es un diagrama de flujo ilustrativo
de un proceso de ejemplo para autorización del proveedor de
reprogramación de un aparato manual;
la figura 23 es un diagrama de flujo que muestra
un ejemplo de proceso de clave público y privado para autorización
del proveedor de reprogramación del aparato manual;
la figura 24 es un diagrama de flujo ilustrativo
de un proceso de ejemplo para la creación de una ventana de
reprogramación libre de autorización en un aparato manual;
la figura 25 es un diagrama de flujo ilustrativo
de un proceso de ejemplo PMRTI para autorización del proveedor de la
reprogramación de un aparato manual; y
la figura 26 es un diagrama de bloques
ilustrativo de un sistema de ordenador a título de ejemplo, que
puede ser utilizado en relación con diferentes realizaciones que se
describen.
Ciertas realizaciones que se describen dan a
conocer los sistemas y métodos para comunicación bidireccional de
dispositivos de instrucción dinámica entre un dispositivo de
comunicación sin cables y una red de comunicación sin cables. Por
ejemplo, un método que se da a conocer permite que un dispositivo de
comunicación sin cables construya dinámicamente un conjunto de
instrucciones y envíe dicho conjunto de instrucciones a la red para
su ejecución y proceso.
Después de la lectura de la presente
descripción, quedará evidente a los técnicos en la materia la forma
en la que se puede llevar a cabo la invención en diferentes
realizaciones alternativas y aplicaciones alternativas. No obstante,
si bien varias realizaciones de la presente invención se describirán
en la misma, se debe comprender que estas realizaciones tienen
solamente carácter de ejemplo, y no son limitativas. Por lo tanto,
la presente descripción detallada de diferentes realizaciones
alternativas no se debe considerar que limite el ámbito o amplitud
de la presente invención, tal como se define en las reivindicaciones
adjuntas.
Algunas partes de las descripciones detalladas
siguientes se presentan en términos de procedimientos, etapas de
proceso, bloques lógicos, códigos, procesos y otras representaciones
simbólicas de operaciones en bits de datos dentro de un dispositivo
sin cables, microprocesador o memoria. Estas descripciones y
representaciones son los medios utilizados por los técnicos en la
materia en la técnica de procesos de datos para transferir, de
manera efectiva, su trabajo a otros técnicos en la materia. Un
proceso, etapa realizada en un microprocesador, aplicación, bloque
lógico, proceso, etc. se concibe en esta descripción y, de manera
general, que es una secuencia autocontenida de etapas o
instrucciones que conducen al resultado deseado. Las etapas son las
que requieren manipulaciones físicas de cantidades físicas.
Usualmente, si bien no de forma necesaria, estas cantidades adoptan
forma de señales eléctricas o magnéticas capaces de ser almacenadas,
transferidas, combinadas, comparadas y manipuladas de otras formas
en un dispositivo sin cables basado en un microprocesador. Se ha
demostrado conveniente, en algunos casos, principalmente por razones
de utilización habitual, hacer referencia a estas señales como bits,
valores, elementos, símbolos, caracteres, términos, números o
similares. En el caso en el que se mencionen dispositivos físicos,
tal como una memoria, ésta estará conectada a otros dispositivos
físicos a través de un bus u otra conexión eléctrica. Estos
dispositivos físicos se pueden considerar que interaccionan con
procesos e aplicaciones lógicas y, por lo tanto, están
"conectados" a operaciones lógicas. Por ejemplo, una memoria
puede almacenar o acceder a códigos para otra operación lógica, o
una aplicación puede utilizar una sección de código de la memoria a
efectos de ejecución.
No obstante, se debe tener en cuenta que la
totalidad de estos términos y otros similares se deben asociar con
las cantidades físicas apropiadas y son simplemente designaciones
convenientes aplicadas a estas cantidades. Si no se indica de otro
modo, tal como queda evidente de las explicaciones siguientes, se
apreciará que, en la totalidad de la presente invención, las
explicaciones que utilicen términos tales como "proceso" o
"conexión" o "traducción" o "visualización" o
"guiado" o "determinación" o "reconocimiento" o
similares, se refieren a la acción y proceso en un sistema
microprocesador de un dispositivo sin cables, que manipula y
transforma datos representados en forma de cantidades físicas
(electrónicas) dentro de los registros del sistema del ordenador y
de sus memorias en otros datos representados, de manera similar, en
forma de cantidades físicas dentro de las memorias o registros del
dispositivo sin cables u otros dispositivos de información,
almacenamiento, transmisión o visualización.
La figura 1 es un diagrama de bloques
esquemático del sistema de mantenimiento (100) del software del
dispositivo sin cables en su conjunto. La organización del software
del sistema de la presente invención está mostrada en detalle a
continuación, siguiendo la disposición general del sistema de
mantenimiento de software (100). El sistema general (100) describe
un proceso para facilitar actualizaciones del software del sistema y
conjuntos de instrucciones (programas), e instalar el software
facilitado en un dispositivo sin cables. Las actualizaciones del
software del sistema y las instrucciones de tiempo de funcionamiento
del gestor de corrección (PMRTI), que son conocidos, de manera más
general, como conjuntos de instrucción o conjuntos de instrucción
dinámicas, son creadas por el fabricante de los equipos manuales. El
software del sistema está organizado en bibliotecas de símbolos. Las
bibliotecas de símbolos están dispuestas en secciones de código.
Cuando se tienen que actualizar las bibliotecas de símbolos, la
actualización de software (102) es transportada en forma de una o
varias secciones de código. La actualización del software es enviada
a dispositivos sin cables existentes, de los que es representativo
el dispositivo (104) de comunicaciones sin cables, o se transmite en
comunicaciones separadas desde la sección de base (106) utilizando
protocolos de transporte convencionales aéreos, de datos o mensajes.
La invención no está limitada a ningún formato de transporte
específico, dado que el dispositivo de comunicaciones sin cables se
puede modificar fácilmente para procesar cualquier protocolo de
transporte aéreo disponible con el objetivo de recibir software del
sistema y actualizaciones
PMRTI.
PMRTI.
El software del sistema puede ser considerado
como un conjunto de subsistemas distintos. Los objetos del código
pueden ser acoplados íntimamente en uno de estos subsistemas
abstractos y la recolección resultante se puede marcar en forma de
biblioteca de símbolos. Esto proporciona una descomposición lógica
de la base del código y las correcciones y reparaciones del software
pueden ser asociadas con una de estas bibliotecas de símbolos. En la
mayor parte de casos, una actualización única es asociada con una o,
como máximo, dos bibliotecas de símbolos. El resto de la base de
código, es decir, las otras bibliotecas de símbolos, permanece sin
cambios.
La noción de bibliotecas de símbolos proporciona
un mecanismo para tratar con códigos y constantes. Los datos de
lectura-escritura (RW), por otra parte, se adaptan
en una única biblioteca individual RW que contiene datos basados en
RAM para todas las bibliotecas.
Una vez recibida por el dispositivo sin cables
(104), la sección de código transportada debe ser procesada. Este
dispositivo sin cables sobrescribe una sección de código específica
de memoria no volátil (108). La memoria no volátil (108) comprende
una sección de sistema de archivo (FSS) (110) y una sección de
almacenamiento de código (112). La sección de código es típicamente
comprimida antes del transporte a efectos de hacer mínima la
ocupación en la FSS (110). Frecuentemente, la sección de código
actualizada será acompañada por sus datos RW, que es otro tipo de
biblioteca de símbolos que contiene la totalidad de datos RW para
cada biblioteca de símbolos. Si bien se han cargado en la memoria
(114) de lectura-escritura volátil de acceso al
azar, cuando el software del sistema está funcionando, los datos RW
necesitan siempre ser almacenados en la memoria no volátil (108), de
manera que pueden ser cargados en la memoria de
lectura-escritura volátil de acceso al azar (114)
cada vez que se hace la reposición o reseteado del dispositivo sin
cables. Esto incluye la primera vez que los datos RW son cargados en
la memoria de lectura-escritura de acceso al azar.
Tal como se ha explicado en más detalle más adelante, los datos RW
están dispuestos de manera típica con una sección de código de
gestor de corrección.
El sistema (100) comprende el concepto de tablas
virtuales. Utilizando estas tablas, se pueden corregir (sustituir)
bibliotecas de símbolos en una sección de código, sin romper
(sustituir) otras partes del software del sistema (otras secciones
de código). Las tablas virtuales se ejecutan a partir de memoria de
lectura-escritura (114) volátil de acceso al azar, a
efectos de mayor eficacia. Una tabla de direcciones de sección de
código y una tabla de direcciones de desplazamiento de símbolos son
tablas virtuales.
Las secciones de código actualizadas son
recibidas por el dispositivo sin cables (104) y almacenadas en la
FSS (110). Un interfaz de usuario (UI) del dispositivo sin cables
notificará, de manera típica, al usuario que se dispone de un nuevo
software. En respuesta a las indicaciones de UI, el usuario reconoce
la notificación y señala la operación de corrección o actualización.
De manera alternativa, la operación de actualización es realizada de
manera automática. El dispositivo sin cables puede ser incapaz de
llevar a cabo tareas de comunicación estándar al llevar a cabo el
proceso de actualización. La sección de código de gestor de
corrección incluye una biblioteca de símbolos del controlador de
lectura-escritura no volátil que es cargada también
en la memoria de lectura-escritura volátil de acceso
al azar (114). La biblioteca de símbolos del controlador de
lectura-escritura no volátil provoca la
sobrescritura de las secciones de código con secciones de código
actualizadas. La sección de código de gestión de corrección
comprende los datos de lectura-escritura, tabla de
direcciones de la sección de código y tabla de direcciones de
desplazamiento de símbolos, así como un código de acceso de símbolos
y la dirección de código de acceso de símbolos (que se explica más
adelante). Partes de estos datos son invalidadas cuando se
introducen secciones de código actualizadas, y las secciones de
código de gestión de correcciones actualizadas incluyen datos de
lectura-escritura, una tabla de direcciones de
sección de código y una tabla de direcciones de desplazamiento de
símbolos válida para las secciones de código actualizadas. Una vez
que las secciones de código actualizadas son cargadas en la sección
de almacenamiento de código (112), el dispositivo sin cables es
reseteado. Después de la operación de reposición o reseteado, el
dispositivo sin cables puede ejecutar el software del sistema
actualizado. Se debe comprender también que la sección de código de
gestor de corrección puede incluir otras bibliotecas de símbolos que
no han sido explicadas anteriormente. Estas otras bibliotecas de
símbolos no requieren ser cargadas en la memoria volátil de
lectura-escritura
(114).
(114).
La figura 2 es un diagrama esquemático de
bloques del sistema (100) de mantenimiento del software, destacando
la instalación de conjuntos de instrucciones a través del interfaz
del enlace aéreo. Además de actualizar las secciones de código de
software del sistema, el sistema de mantenimiento (100) puede
descargar e instalar conjuntos de instrucciones dinámicas, programas
o conjuntos de instrucciones del gestor de corrección (PMIS), a las
que se hará referencia en esta descripción como instrucciones de
tiempo de funcionamiento del gestor de corrección (PMRTI). La
sección (200) de código PMRTI es transportada a un dispositivo sin
cables (104) de la misma manera que las secciones de código de
software del sistema antes descritas. Las secciones de código PMRTI
son almacenadas inicialmente en el FSS (110). Una sección de código
PMRTI es, de manera típica, un archivo binario que puede ser
visualizado en forma de instrucciones compiladas en el equipo
manual. Una sección de código PMRTI es suficientemente completa para
soportar la realización de operaciones de matemáticas básicas y la
realización de operaciones ejecutadas de forma condicional. Por
ejemplo, una calibración RF de PMRTI podría llevar a cabo las
siguientes
operaciones:
operaciones:
SI ELEMENTO CÁLCULO RF ES MENOR DE X
EJECUTAR INSTRUCCIÓN
DE LO CONTRARIO
EJECUTAR INSTRUCCIÓN
Una PMRTI puede soportar operaciones matemáticas
básicas, tales como: suma, resta, multiplicación y división. Igual
que en las secciones de código de software del sistema, la sección
de código PMRTI puede ser cargada como respuesta a requerimientos de
UI, y el dispositivo sin cables debe ser repuesto después de que la
PMRTI ha sido cargada en la sección (112) de almacenamiento de
código. A continuación, se puede ejecutar la sección PMRTI. Si la
sección de código PMRTI está asociada con cualesquiera tablas
virtuales o lectura-escritura de datos, una sección
de código de gestión de corrección actualizada será transportada con
la PMRTI para instalación en la sección de almacenamiento de código
(112). De manera alternativa, la sección PMRTI puede ser mantenida y
procesada a partir del FSS (110). Después de que el aparato manual
(104) ha ejecutado todas las instrucciones de la sección PMRTI,
dicha sección PMRTI puede ser borrada de la FSS (110). De manera
alternativa, la sección PMRTI es mantenida para futuras operaciones.
Por ejemplo, la sección PMRTI puede ser ejecutada cada vez que se
activa el dispositivo sin cables.
La sección PMRTI es un dispositivo de
instrucciones de tiempo de funcionamiento muy potente. El aparato
manual puede ejecutar cualquier instrucción facilitada al mismo a
través del entorno PMRTI. Este mecanismo puede ser utilizado para
soportar calibraciones RF. De modo más general, la sección PMRTI
puede ser utilizada para restablecer o limpiar software del
dispositivo sin cables a distancia cuando se observan problemas de
software por el fabricante o proveedor de servicio, de manera
típica, como resultado de quejas del usuario. La sección PMRTI puede
registrar asimismo datos necesarios para diagnosticar problemas de
software. La PMRTI puede lanzar aplicaciones de sistema
recientemente descargadas para análisis de datos, eliminación de
irregularidades o averías ("debugging") y correcciones. La
sección PMRTI puede proporcionar actualizaciones basadas en datos RW
para análisis y posible corrección a corto plazo de un problema en
lugar de una sección de código de software del sistema actualizado.
La sección PMRTI puede proporcionar algoritmos de compactado de
memoria para su utilización por el dispositivo sin cables.
En algunos aspectos de la invención, la
organización del software del sistema en bibliotecas de símbolos
puede influir en las dimensiones de la memoria volátil (114) y de la
memoria no volátil (108) requeridas para la ejecución. Esto es
debido al hecho de que las secciones de código son, de manera
típica, mayores que las bibliotecas de símbolos dispuestas en las
secciones de código. Estas secciones de código más grandes existen
para recibir secciones de código actualizadas. La organización del
software del sistema como colección de bibliotecas influye en las
exigencias de dimensiones de la memoria no volátil. Para las mismas
dimensiones de código, la magnitud de la memoria no volátil
utilizada será mayor debido al hecho de que las secciones de código
pueden ser dimensionadas de manera que sean mayores que las
bibliotecas de símbolos dispuestas en las mismas.
Una vez que las actualizaciones del software se
han suministrado al dispositivo sin cables, el sistema (100) de
mantenimiento de software soporta el compactado de la memoria. El
compactado de la memoria es similar a las aplicaciones de
desfragmentación de disco en ordenadores de sobremesa. El mecanismo
de compactado asegura que la memoria es utilizada de manera óptima y
está bien equilibrada para futuras actualizaciones de la sección de
código, en las que las dimensiones de las secciones de código
actualizadas son impredictibles. El sistema (100) analiza la sección
de almacenamiento de código al ser ésta corregida (actualizada). El
sistema (100) intenta adaptar secciones de código actualizadas en el
espacio de memoria ocupado por la sección de código que está siendo
sustituida. Si la sección de código actualizada es mayor que la
sección de código sustituida, el sistema (100) compacta las
secciones de código en la memoria (112). De manera alternativa, el
compactado puede ser calculado por el fabricante o el proveedor del
servicio, y las instrucciones de compactado pueden ser compactadas
al dispositivo sin cables (104).
El compactado puede ser un proceso engorroso en
cuanto al tiempo que requiere, debido a la complejidad del algoritmo
y debido al vasto volumen de movimiento de datos. El algoritmo de
compactado predice la capacidad de realización o factibilidad antes
de empezar cualquier proceso. Se pueden utilizar mensajes guía UI
para pedir permiso del usuario antes de intentar el compactado.
En algunos aspectos de la invención, todas las
secciones de código de software del sistema pueden ser actualizadas
de manera simultánea. No obstante, la actualización completa del
software del sistema requeriría un FSS (110) de mayor capacidad.
La figura 3 es un diagrama de bloques
esquemático que muestra el conjunto de instrucciones dinámicas de la
presente invención en su ejecución en un dispositivo de
comunicaciones sin cables. El sistema (300) comprende una sección
(112) de almacenamiento de código en la memoria (108) incluyendo
software de sistema del dispositivo sin cables, ejecutable,
diferenciado en una serie de secciones de código corrientes. La
sección de código uno (302), la sección de código dos (304), la
sección de código n (306) y la sección de código de gestión de
corrección (308) se han mostrado en el dibujo. No obstante, la
invención no está limitada a ningún número específico de secciones
de código. Además, el sistema (300) comprende adicionalmente una
primera serie de bibliotecas de símbolo dispuestas en la segunda
serie de secciones de código. Se han mostrado la biblioteca de
símbolos uno (310) dispuesta en la sección de código uno (302), las
bibliotecas de símbolos dos (312) y tres (314) dispuestas en la
sección de código dos (304), y la biblioteca de código m (316)
dispuesta en la sección de código n (306). Cada una de las
bibliotecas comprende símbolos con funcionalidad relacionada. Por
ejemplo, la biblioteca de símbolos uno (310) puede estar involucrada
en el funcionamiento del dispositivo de visualización de cristal
líquido sin cables (LCD). A continuación, los símbolos serían
asociados con funciones de visualización. Tal como se muestra en
detalle más adelante, las bibliotecas de símbolos adicionales están
dispuestas en la sección (308) de código de gestión de
corrección.
La figura 4 es un diagrama de bloques
esquemático de la memoria del dispositivo sin cables. Tal como se ha
mostrado, la memoria es la sección de almacenamiento de código (112)
de la figura 1. La memoria es una memoria no volátil, con capacidad
de escritura, tal como una memoria Flash. Se ha de comprender que
las secciones de código no deben ser necesariamente almacenadas en
la misma memoria que el FSS (110). También se debe comprender que la
estructura de software del sistema de la presente invención podría
ser activada con secciones de código almacenadas en una serie de
memorias cooperativas. La sección (112) de almacenamiento de código
comprende una segunda serie de bloques de memoria direccionados de
forma contigua, en los que cada bloque de memoria almacena una
correspondiente sección de código de la segunda serie de secciones
de código. De este modo, la sección de código uno (302) es
almacenada en el primer bloque de memoria (400), la sección de
código dos (304) en el segundo bloque de memoria (402), la sección
de código n (306) en el bloque de memoria de orden n (404), y la
sección de gestión de corrección (308) en el bloque de memoria de
orden p (406).
Contrastando las figuras 3 y 4, el inicio de
cada sección de código está almacenado en direcciones de inicio
correspondientes en la memoria, y bibliotecas de símbolos están
dispuestas para inicio en el inicio de las secciones de código. Es
decir, cada biblioteca de símbolos empieza en una primera dirección
y discurre en una serie de direcciones de manera secuencial desde la
primera. Por ejemplo, la sección de código uno (302) empieza en la
primera dirección de inicio (408) (marcada con "S") en la
memoria (112) de la sección de almacenamiento de código. En la
figura 3, la biblioteca de símbolos uno (310) empieza en el inicio
(318) de la primera sección de código. De manera similar, la sección
de código dos (304) empieza en la segunda dirección de inicio (410)
(figura 4), y la biblioteca de símbolos dos empieza en el inicio
(320) de la sección de código dos (figura 3). La sección de código n
(306) empieza en una tercera dirección de inicio (412) en la memoria
(112) (figura 4) de la sección de almacenamiento de código, y la
biblioteca de símbolos m (316) empieza en el inicio de la sección de
código n (322) (figura 3). La sección de código de gestión de
corrección empieza en la dirección de orden p (414) en la memoria de
sección de almacenamiento de código (112), y la primera biblioteca
de símbolos en la sección (308) de código de gestión de corrección
empieza en el inicio (324) de la sección de código de gestión de
corrección. De este modo, la biblioteca de símbolos uno (310) es
almacenada finalmente en el primer bloque de memoria (400). Si una
sección de código incluye una serie de bibliotecas de símbolos,
tales como la sección de código dos (304), la serie de bibliotecas
de símbolos son almacenadas en el correspondiente bloque de memoria,
en este caso, el segundo bloque de memoria (402).
En la figura 3, el sistema (300) comprende una
tabla de dirección de secciones de códigos (326) como tipo de
símbolo incluido en una biblioteca de símbolos dispuesta en la
sección (308) de código de gestión de corrección. La tabla de
dirección de sección de código cruza las referencias de los
identificadores de sección de código con correspondientes
direcciones de inicio de sección de código de la memoria.
La figura 5 es una tabla representativa de la
tabla de direcciones de sección de código (326) de la figura 3. La
tabla (326) de direcciones de sección de código es consultada para
encontrar la dirección de inicio de la sección de código para una
biblioteca de símbolos. Por ejemplo, el sistema (300) busca la
sección de código uno cuando se requiere para ejecución un símbolo
en la biblioteca de símbolos uno. Para encontrar la dirección de
inicio de la sección de código uno, y por lo tanto para localizar el
símbolo en la biblioteca de símbolos uno, se consulta la tabla (326)
de direcciones de sección de código. La disposición de bibliotecas
de símbolos en secciones de código y el seguimiento de las secciones
de código con una tabla permite desplazar o expansionar las
secciones de código. Las operaciones de expansión o movimiento
pueden ser necesarias para instalar secciones de código mejoradas
(con bibliotecas de símbolos mejoradas).
Haciendo referencia nuevamente a la figura 3, se
debe observar que no cada biblioteca de símbolos necesariamente
empieza en el inicio de una sección de código. Tal como se ha
mostrado, la biblioteca de símbolos tres (314) está dispuesta en la
sección de código dos (304), pero no empieza de la dirección de
inicio de secciones de código (320). Por lo tanto, si se requiere
para su ejecución un símbolo de la biblioteca de símbolos tres
(314), el sistema (300) consulta la tabla (326) de direcciones de
secciones de código para la dirección de inicio de la sección de
código dos (304). Tal como se explica más adelante, una tabla de
direcciones de desplazamiento de símbolos permite localizar los
símbolos en la biblioteca de símbolos tres (314). No importa que los
símbolos se extiendan sobre múltiples bibliotecas, siempre que estén
retenidos con la misma sección de código.
Tal como se ha indicado anteriormente, cada una
de las bibliotecas de símbolos incluye símbolos relativos a la
funcionalidad. Un símbolo es un nombre definido por el programador
para localizar y utilizar un cuerpo de rutina, variable o estructura
de datos. De este modo, un símbolo puede ser una dirección o un
valor. Los símbolos pueden ser internos o externos. Los símbolos
internos no son visibles más allá del alcance de la sección de
código corriente. De manera más específica, no son buscados por
otras bibliotecas de símbolos, en otras secciones de código. Los
símbolos externos son utilizados e invocados sobre las secciones de
códigos y son buscados por bibliotecas en diferentes secciones de
código. La tabla de direcciones desplazadas de símbolos incluye de
manera típica una lista de todos los símbolos externos.
Por ejemplo, la biblioteca de símbolos uno (310)
puede generar caracteres en un dispositivo de visualización sin
cables. Los símbolos de esta biblioteca generarían, a su vez,
números de teléfono, nombres, tiempo u otras características de
visualización. Cada una de las características es generada con
rutinas, a las que se hará referencia en esta descripción como
símbolo. Por ejemplo, un símbolo en la biblioteca de símbolos uno
(310) genera números de teléfono en la pantalla. El símbolo es
representado por una "X", y es externo. Cuando el dispositivo
sin cables recibe una llamada telefónica y se activa el servicio ID
del que efectúa la llamada, el sistema debe ejecutar el símbolo
"X" para generar el número de la pantalla. Por lo tanto, el
sistema debe localizar el símbolo "X".
La figura 6 es una representación detallada de
la biblioteca de símbolos uno (310) de la figura 3, con símbolos.
Los símbolos están dispuestos para su desplazamiento desde
respectivas direcciones de inicio de sección de código. En muchas
circunstancias, el inicio de la biblioteca de símbolos es el inicio
de una sección de código, pero esto no es cierto si una sección de
código incluye más de una biblioteca de símbolos. La biblioteca de
símbolos uno (310) empieza en el inicio de la sección de código uno
(ver figura 3). Tal como se ha mostrado en la figura 6, el símbolo
"X" está situado en un desplazamiento de (03) desde el inicio
de la biblioteca de símbolos y el símbolo "Y" está situado en
un desplazamiento de (15). Las direcciones de desplazamiento de
símbolos son almacenadas en una tabla (328) de direcciones de
desplazamiento de símbolos en la sección de código de gestión de
corrección (ver figura 3).
La figura 7 es una tabla que representa la tabla
de dirección de desplazamiento de símbolos (328) de la figura 3. La
tabla (328) de direcciones de desplazamiento de símbolos efectúa el
cruzamiento de referencias de identificadores de símbolos con
correspondientes direcciones de desplazamiento y con
correspondientes identificadores de sección de código en la memoria.
Por lo tanto, cuando el sistema intenta ejecutar el símbolo "X"
en la biblioteca de símbolos uno, se consulta la tabla (328) de
direcciones de desplazamiento de símbolos para localizar la
dirección exacta del símbolo, con respecto a la sección de código en
la que está dispuesto.
Haciendo referencia nuevamente a la figura 3, la
primera serie de bibliotecas de símbolos incluye típicamente, en su
totalidad, datos de lectura-escritura que se deben
consultar o disponer en la ejecución de estas bibliotecas de
símbolos. Por ejemplo, una biblioteca de símbolos puede incluir una
operación que depende de una afirmación condicional. La sección de
datos de escritura-lectura es consultada para
determinar la situación requerida para completar la afirmación
condicional. La presente invención agrupa los datos de
lectura-escritura de todas las bibliotecas de
símbolos en una sección compartida de
escritura-lectura. En algunos aspectos de la
invención, los datos de escritura-escritura (330)
son dispuestos en la sección (308) de código de gestión de
correcciones. De manera alternativa (no mostrado), los datos de
escritura-lectura pueden ser dispuestos en una
sección de códigos distinta, por ejemplo, la sección de código
n
(306).
(306).
La primera serie de bibliotecas de símbolos
comprende también un código de acceso de símbolos dispuesto en una
sección de código para calcular la dirección de un símbolo buscado.
El código de acceso de símbolos se puede disponer y almacenar con
una dirección de código separada, por ejemplo, la sección de código
dos (304). No obstante, tal como se ha mostrado, el código de acceso
de símbolos (332) está dispuesto y almacenado en una dirección en la
sección (308) de código de gestión de corrección. El sistema (300)
comprende además una primera localización para almacenamiento de la
dirección de código de acceso de símbolos. La primera localización
puede ser una sección de código en la sección de almacenamiento de
código (112), o en una sección de memoria separada del dispositivo
sin cables (no mostrado). La primera localización puede estar
dispuesta también en la misma sección de código igual que los datos
de lectura-escritura. Tal como se ha mostrado, la
primera localización (334) está almacenada en la sección (308) de
código de gestión de corrección con los datos de
escritura-lectura (330), la tabla (328) de dirección
de desplazamiento de símbolos, la tabla (326) de dirección de
sección de código y el código de acceso de símbolos, así como la
biblioteca (336) de correcciones (biblioteca de símbolos de
corrección).
El código de acceso de símbolos accede a la
tabla de direcciones de sección de código y a las tablas de
direcciones de desplazamiento de símbolos para calcular o hallar la
dirección de un símbolo buscado en la memoria. Es decir, el código
de acceso de símbolos calcula la dirección del símbolo buscado
utilizando un identificador de símbolo correspondiente y un
identificador de sección de código correspondiente. Por ejemplo, si
se busca el símbolo "X" en la biblioteca de símbolos uno, el
código de acceso de símbolos es invocado para buscar el
identificador de símbolo (ID de símbolo) "X_1", que corresponde
al símbolo "X" (ver figura 7). El código de acceso de símbolo
consulta con la tabla de dirección de desplazamiento de símbolos
para determinar el identificador de símbolos "X_1" tiene un
desplazamiento de (03) desde el inicio de la sección de código uno
(ver figura 6). El código de acceso de símbolos es invocado para
buscar el identificador de sección de código "CS_1",
correspondiente a la sección de código uno. El código de acceso de
símbolos consulta la tabla de direcciones de sección de código para
determinar la dirección de inicio asociada con el identificador de
sección de código (ID de sección de código) "CS_1". De esta
manera, el código de acceso de símbolos determina que el
identificador de símbolos "X_1" está desplazado (03) con
respecto a la dirección de (00100), o está situado en la dirección
(00103).
El símbolo "X" es un nombre reservado
puesto que es parte del código actual. En otras palabras, tiene un
dato absoluto asociado con el mismo. El dato puede ser una dirección
o un valor. El identificador de símbolo es un seudónimo creado para
encontrar el símbolo. La tabla de direcciones de desplazamiento de
símbolos y la tabla de direcciones de sección de código funcionan
ambas con identificadores para evitar confusiones con símbolos
reservados y nombres de sección de código. También es posible que el
mismo nombre de símbolo sea utilizado en muchas bibliotecas de
símbolos. La utilización de identificadores impide la confusión
entre estos símbolos.
Volviendo a hacer referencia a la figura 1, el
sistema (300) comprende además una memoria volátil de
escritura-lectura (114), de manera típica una
memoria de acceso al azar (RAM). Los datos de
escritura-lectura (330), tabla (326) de dirección de
secciones de código, tabla (328) de dirección de desplazamiento de
símbolo, código de acceso de símbolos (332) y dirección (334) de
código de acceso de símbolos son cargados en la memoria volátil
(114) de escritura-lectura desde la sección de
código gestión de correcciones para acceso durante la ejecución del
software del sistema. Como es bien sabido, los tiempos de acceso
para los códigos almacenados en la RAM son significativamente
menores que el acceso a una memoria no volátil tal como Flash.
Haciendo referencia nuevamente a la figura 3, se
puede observar que las bibliotecas de símbolos no requieren
necesariamente llenar las secciones de códigos en las que están
dispuestas, si bien los bloques de memoria están dimensionados para
recibir de manera exacta las correspondientes secciones de código
almacenadas en los mismos. Dicho de otro modo, cada una de la
segunda serie de secciones de código tiene unas dimensiones en bites
que se adaptan a las bibliotecas de símbolos dispuestas, y cada uno
de los bloques de memoria direccionados de forma contigua tiene una
dimensión en bites que se adapta a las secciones de código
correspondientes. Por ejemplo, la sección de código uno (302) puede
ser una sección de 100 bites para adaptarse a una biblioteca de
símbolos que tiene una longitud de 100 bites. El primer bloque de
memoria sería de 100 bites para adaptarse a la dimensión en bites de
la sección de código uno. No obstante, la biblioteca de símbolos
cargada en la sección de código uno puede ser menor de 100 bites.
Tal como se ha mostrado en la figura 3, la sección de código uno
(302) tiene una sección no utilizada (304), dado que la biblioteca
de símbolos uno (310) es menor de 100 bites. De este modo, cada una
de la segunda serie de secciones de código puede tener unas
dimensiones mayores que las necesarias para recibir las bibliotecas
de símbolos dispuestas. Al "sobredimensionar" las secciones de
código, se pueden adaptar bibliotecas de símbolos actualizadas de
mayores dimensiones.
Los bloques de memoria direccionados de forma
contigua se refieren a división del espacio físico de memoria en
bloques lógicos de dimensiones variables. Las secciones de código y
bloques de memoria son términos esencialmente intercambiables cuando
la sección de código está almacenada en la memoria. El concepto de
una sección de código se utiliza para identificar una sección de
código que quizás es mayor que la biblioteca de símbolos, o bien la
corrección de bibliotecas de símbolos en la sección de código al ser
desplazada y manipulada.
Tal como se aprecia en la figura 3, el sistema
(300) comprende una biblioteca de símbolos de corrección, a la que
se hará referencia a continuación como biblioteca (336) de
corrección, para disponer nuevas secciones de código en la sección
de almacenamiento de código con las secciones de código corrientes.
La disposición de nuevas secciones de código con secciones de
código corrientes en la sección de almacenamiento de códigos forma
el software del sistema ejecutable actualizado. El gestor de
corrección (336) no solamente dispone nuevas secciones de código
con las secciones de código corrientes, sino que también sustituye
secciones de código con secciones de código actualizadas.
Haciendo referencia a la figura 4, la sección
(110) del sistema de archivo de la memoria (108) recibe nuevas
secciones de código, tal como una nueva sección de código (450) y
sección de código de gestión de corrección actualizada (452). La
sección de sistema de archivo recibe también una primera instrucción
de tiempo (PMRTI) de funcionamiento del gestor de corrección (454)
que incluye instrucciones para disponer las nuevas secciones de
código con las secciones de código corrientes. Tal como se observa
en la figura 1, un interfaz aéreo (150) recibe nuevas secciones de
código actualizadas, así como el primer PMRTI. Si bien el interfaz
aéreo (150) está representado por una antena, se debe comprender
que el interfaz aéreo incluiría también un transceptor RF,
circuitos de banda base y circuitos de demodulación (no mostrados).
La sección (110) del sistema de archivo almacena las nuevas
secciones de código recibidas a través del interfaz aéreo (150). La
biblioteca de correcciones (336), que ejecuta a partir de la
memoria volátil de escritura-lectura (114),
sustituye una primera sección de código en la sección de
almacenamiento de código, por ejemplo, la sección de código n (306),
con una nueva sección de código actualizada (450), en respuesta al
primer PMRTI (454). De manera típica, la sección de código de
gestión de errores (308) es sustituida por la sección (452) de
código de gestión de errores actualizada. Cuando son sustituidas
las secciones de código, la biblioteca de correcciones (336)
sobreescribe la primera sección de código, por ejemplo, la sección
de código n (306), en la sección de almacenamiento (112) de códigos
con las secciones de código actualizadas, por ejemplo, las secciones
de código (450), en la sección de sistema de archivo (110). En caso
extremo, todas las secciones de código de la sección de
almacenamiento de códigos (112) son sustituidas con secciones de
códigos actualizadas. Es decir, el FSS (110) recibe una segunda
serie de secciones de código actualizadas (no mostrado), y la
biblioteca de correcciones (336) sustituye la segunda serie de
secciones de código en la sección de almacenamiento de código (112)
con la segunda serie de secciones de código actualizadas. Desde
luego, el FSS (110) debe ser suficientemente grande para recibir la
segunda serie de secciones de código actualizadas recibidas a
través del interfaz aéreo.
Tal como se ha indicado anteriormente, las
secciones de código actualizadas recibidas pueden incluir secciones
de código de datos de escritura-lectura, tablas de
direcciones de secciones de códigos, bibliotecas de símbolos,
secciones de códigos de tablas de direcciones de desplazamiento de
símbolos, secciones de códigos de acceso de símbolos, o una sección
de códigos con una nueva biblioteca de correcciones. Todas estas
secciones de códigos, con sus bibliotecas de símbolos asociadas y
símbolos, se pueden almacenar en forma de secciones de códigos
distintas e independientes. A continuación, cada una de estas
secciones de códigos sería sustituida con una única sección de
código actualizada. Es decir, una sección de código de
lectura-escritura actualizada sería recibida y
sustituiría la sección de código de
lectura-escritura en la sección de almacenamiento de
código. Una sección de código de tablas de dirección de la sección
de código actualizada sería recibida y sustituiría la sección de
código de la tabla de direcciones de la sección de código en la
sección de almacenamiento de códigos. Una sección de códigos de la
tabla de direcciones de desplazamiento de símbolos actualizada sería
recibida y sustituiría la sección de códigos de la tabla de
direcciones de desplazamiento de símbolos en la sección de
almacenamiento de códigos. Una sección de código de acceso de
símbolos actualizada sería recibida y sustituiría la sección de
códigos de acceso de símbolos en la sección de almacenamiento de
códigos. De manera similar, una sección de código de gestión de
errores actualizada (con una biblioteca de errores) sería recibida
y sustituiría la sección de códigos de gestión de errores en la
sección de almacenamiento de códigos.
Sin embargo, las secciones de código mencionadas
anteriormente están empaquetadas de forma típica en la sección de
código de gestión de corrección. Por lo tanto, la sección de código
de lectura-escritura en la sección de
almacenamiento de código es reemplazada por la sección de código de
lectura-escritura actualizada de la sección del
sistema de archivos (110) cuando la sección de código de gestión de
corrección (308) es reemplazada con la sección de código de gestión
de corrección actualizado (450). Del mismo modo, la tabla de
direcciones de secciones de código, la tabla de direcciones de
desplazamiento de símbolo, las secciones de código de acceso a
símbolos, así como la biblioteca de corrección son reemplazadas
cuando la sección de código de gestión de corrección actualizado
(450) es instalada. La disposición de los nuevos datos de
lectura-escritura, la nueva tabla de direcciones de
secciones de código, la nueva tabla de direcciones de desplazamiento
de símbolo, el nuevo código de acceso a símbolos, y la nueva
biblioteca de corrección como la sección de código de gestión de
corrección actualizado (450), junto con las secciones de código
existentes en la sección de almacenamiento de código, conforman el
software de sistema ejecutable actualizado.
Cuando la sección de sistema de archivos (110)
recibe una dirección de código de acceso a símbolos actualizada, el
administrador de corrección reemplaza la dirección de código de
acceso a símbolos en la primera posición en la memoria con la
dirección de código de acceso a símbolos actualizada. Tal como se ha
mencionado anteriormente, la primera posición en la memoria (334)
está, de manera típica, en la sección de código de gestión de
corrección (ver figura 3).
Tal como puede observarse en la figura 3, la
biblioteca de corrección (308) incluye además un compactador, o una
biblioteca de símbolos de compactador (342). El compactador (342)
también puede ser habilitado como una sección de código
independiente y separado, no obstante, tal como se ha mencionado
anteriormente, resulta útil y eficiente el empaquetado de las
funciones asociadas con las actualizaciones de software de sistema
en una sola sección de código de gestión de corrección. De forma
general, el compactador (342) puede ser utilizado para modificar
las dimensiones de las secciones de código, de modo que puedan
disponerse nuevas secciones con secciones de código existentes en
la sección de almacenamiento de código (112).
Con los aspectos de organización, descarga y
compactación de la presente invención ya establecidos, la
descripción siguiente se centrará en el sistema de ejecución de
conjunto de instrucciones dinámicas del dispositivo de
comunicaciones sin cables (300). Dicho sistema (300) comprende un
software de sistema ejecutable y datos de sistema diferenciados en
secciones de código, tal como ha sido descrito en mayor detalle
anteriormente. Además, el sistema (300) comprende conjuntos de
instrucciones dinámicas para el funcionamiento sobre los datos de
sistema y el software de sistema, y controlar la ejecución del
software de sistema. Tal como puede observarse en la figura 4, un
conjunto de instrucciones dinámicas (470) está organizado en la
primera PMRTI (454). Tal como puede observarse en la figura 3, el
sistema comprende además un dispositivo de tiempo de ejecución para
llevar a cabo el procesamiento de los conjuntos de instrucciones
dinámicas, habilitado como una biblioteca de tiempo de ejecución
(370). Del mismo modo que la biblioteca del compactador (342) y la
biblioteca de corrección (336) mencionadas anteriormente, la
biblioteca de tiempo de ejecución (370) está situada, de manera
típica, en la sección de código de gestión de corrección (308). Sin
embargo, la biblioteca de tiempo de ejecución (370) podría estar
situada de manera alternativa en otra sección de código, por
ejemplo, la primera sección de código (304).
Los conjuntos de instrucciones dinámicas son un
único, o múltiples conjuntos de instrucciones que incluyen código
de operación condicional, y de forma general incluyen elementos de
datos. El dispositivo de tiempo de ejecución lee el código de
operación y determina las operaciones que deberán ser llevadas a
cabo. El código de operación puede ser condicional, matemático, de
procedimiento, o lógico. El dispositivo de tiempo de ejecución, o
la biblioteca de tiempo de ejecución (370) procesa los conjuntos de
instrucciones dinámicas para llevar a cabo operaciones tales como
una operación matemática o lógica. Es decir, el dispositivo de
tiempo de ejecución lee el conjunto de instrucciones dinámicas
(470) y lleva a cabo una secuencia de operaciones como respuesta a
dicho código de operación. A pesar de que los conjuntos de
instrucciones dinámicas no están limitados a ningún lenguaje
particular, el código de operación tiene, de manera típica, forma de
código de máquina, debido a que la memoria del dispositivo sin
cables está limitada y la velocidad de ejecución es un factor
importante. El código de operación es considerado como condicional
porque analiza un elemento de datos y toma una decisión como
resultado de dicho análisis. El dispositivo de tiempo de ejecución
puede también determinar que una operación sea llevada a cabo en
los datos antes de que sea analizada.
Por ejemplo, el código de operación puede
especificar que un elemento de datos de una memoria de dispositivo
sin cables sea comparado con un valor predeterminado. Si el elemento
de datos es menor que dicho valor predeterminado, el elemento de
datos se deja solo, y si el elemento de datos es mayor que el valor
predeterminado, es reemplazado con el valor predeterminado. De
forma alternativa, el código de operación puede añadir un segundo
valor predeterminado a un elemento de datos de la memoria del
dispositivo sin cables, antes de que se lleve a cabo la operación
de comparación anteriormente mencionada.
Tal como ha sido mencionado anteriormente, la
memoria no volátil de sección del sistema de archivos (110) recibe
los conjuntos de instrucciones dinámicas a través de una interfaz,
tal como un enlace aéreo (150). Tal como se muestra en la figura 1,
la interfaz también puede ser una línea sólida de radio frecuencia
(RF) (160). Entonces, la PMRTI puede ser recibida por el FSS (110)
sin que el software sistema sea operacional, tal como en un
ambiente de calibración de fábrica. La PMRTI también puede ser
recibida mediante una interfaz de puerto lógico (162) o un módulo
de memoria instalable (164). El módulo de memoria (164) puede ser
instalado en el dispositivo sin cables (104) en el momento de la
calibración inicial, instalado en el campo, o instalado durante la
recalibración en la fábrica. A pesar de que no se muestra de forma
específica, la PMRTI puede ser recibida mediante interfaces
infrarrojas o Bluetooth.
La figura 8 es un gráfico de las instrucciones
que son accedidas por el dispositivo de tiempo de ejecución (370).
Se muestra una primera instrucción (800), una segunda instrucción
(802), y una instrucción de orden j (804), sin embargo, el conjunto
de instrucciones dinámicas no está limitado a ninguna cantidad
específica de instrucciones. La longitud del código de operación en
cada instrucción es fija. El dispositivo de tiempo de ejecución
(370) captura la longitud de la instrucción, tal como una medida de
bits o bytes, determina si la instrucción incluye elementos de
datos. El resto de la longitud de la instrucción, una vez que ha
sido eliminado el código de operación, incluye elementos de datos.
El dispositivo de tiempo de ejecución extrae los elementos de datos
de la instrucción. Tal como se muestra, la longitud (806) de la
primera instrucción (800) es medida y los elementos de datos (808)
son extraídos. Nótese que no todas las instrucciones incluyen
necesariamente elementos de datos que serán extraídos. El
dispositivo de tiempo de ejecución (370) utiliza los datos
extraídos (808) para llevar a cabo una secuencia de operaciones en
respuesta al código de operación (810) en la instrucción (800).
La figura 9 es un gráfico detallado de la
primera instrucción (800) de la figura 8. Utilizando la primera
instrucción (800) como ejemplo, la instrucción incluye código de
operación (810) y datos (808). La instrucción, y de forma más
específica, la sección de elementos de datos (808) incluye
identificadores de símbolos, que actúan como enlace con los
símbolos en las secciones de código del dispositivo sin cables. Tal
como ha sido descrito en detalle anteriormente, los identificadores
de símbolos son utilizados con la tabla de direcciones de secciones
de código (326) (ver figura 5) y la tabla de direcciones de
desplazamiento de símbolos (328) (ver figura 7) para localizar el
símbolo correspondiente al identificador de símbolo. Tal como se
muestra, un identificador de símbolo "X_1" es mostrado en la
primera instrucción (800). La tabla de direcciones de
desplazamiento de símbolos (328) localiza el símbolo correspondiente
en una sección de código con el identificador "CS_1" y un
desplazamiento de "3". La tabla de direcciones de secciones de
código (326) da la dirección de inicio de la sección de código uno
(302). De esta manera, el símbolo "X" es encontrado (ver figura
6).
Después de que el dispositivo de tiempo de
ejecución encuentra los símbolos correspondientes con los
identificadores de símbolos recibidos utilizado la tabla de
direcciones de secciones de código y la tabla de direcciones de
desplazamiento de símbolos, extrae datos cuando los símbolos
localizados son elementos de datos. Por ejemplo, si el símbolo
"X" es un elemento de datos en la biblioteca de símbolos uno
(301), el dispositivo de tiempo de ejecución lo extrae. De manera
alternativa, el símbolo "X" puede ser código de operación, y el
dispositivo de tiempo de ejecución ejecuta el símbolo "X"
cuando es encontrado.
La PMRTI puede ser utilizada para llevar a cabo
la actualización de los datos de sistema, o elementos de datos de
sistema. En algunos aspectos de la invención, los datos de sistema
son almacenados en una sección de código en la sección de sistema
de archivos (110), por ejemplo, la sección de código (472), ver
figura 4. El dispositivo de tiempo de ejecución accede a los datos
de sistema de la sección de código (472) y analiza los datos de
sistema. El dispositivo de tiempo de ejecución procesa el código de
operación de los conjuntos de instrucciones dinámicas para llevar a
cabo operaciones matemáticas o lógicas en los elementos de datos,
tal como se ha descrito anteriormente. Después de la operación, el
dispositivo de tiempo de ejecución procesa las instrucciones para
crear datos de sistema actualizados. Nótese que los datos de sistema
actualizados pueden incluir elementos de datos no alterados en
algunas circunstancias. Los datos de sistema en la segunda sección
de código (472) son reemplazados por los datos de sistema
actualizados como respuesta al código de operación. De este modo,
mediante el procesamiento de la instrucción llevado a cabo por el
dispositivo de tiempo de ejecución, el software de sistema es
controlado para ejecutar utilizando los datos de sistema
actualizados en la sección de código (472). De este modo, pueden
ser actualizados los símbolos designados de forma específica en el
software de sistema, sin reemplazar secciones de código completas.
Mediante el mismo proceso, los datos de sistema pueden ser
reemplazados en una sección de código en la sección de
almacenamiento de código (112). Por ejemplo, los datos de sistema
pueden ser almacenados en la tercera sección de código (344), y el
dispositivo de tiempo de ejecución puede reemplazar los datos de
sistema en la tercera sección de código por datos de sistema
actualizados como respuesta al código de operación.
La PMRTI puede ser utilizada también para
actualizar elementos de datos en la memoria volátil (114). Como
ejemplo, la memoria volátil (114) acepta datos de
lectura-escritura (330), ver figura 1. Los datos de
lectura-escritura pueden ser de una, o de una serie
de secciones de código en la sección de almacenamiento de código
(112) y/o el FSS (110). El dispositivo de tiempo de ejecución
accede a los datos de lectura-escritura, analiza
dichos datos de lectura-escritura (330), crea los
datos de lectura-escritura actualizados, y reemplaza
los datos de lectura-escritura (330) de la memoria
volátil (114) por los datos de lectura-escritura
actualizados como respuesta al código de operación. Entonces, el
software de sistema está controlado para ejecutar utilizando los
datos de lectura-escritura actualizados en la
memoria volátil (114).
En algunos aspectos de la presente invención, el
dispositivo de tiempo de ejecución monitorea la ejecución del
software de sistema. El monitoreo del rendimiento está definido de
forma amplia para incluir una gran cantidad de actividades del
dispositivo sin cables. Por ejemplo, los datos correspondientes a
los parámetros de canal, características de canal, un apilamiento
del sistema, condiciones de error, o un registro de elementos de
datos de la RAM a través de una secuencia de operaciones que
conducen a un estado de fallo específico o un estado de rendimiento
reducido, pueden ser controlados. También resulta posible utilizar
conjuntos de instrucciones dinámicas para analizar datos recogidos
del rendimiento, proporcionar variantes de datos actualizadas, y
recapturar datos para estudiar posibles soluciones al problema.
También se pueden disponer arreglos temporales utilizando procesos
PMRTI.
De manera más especifica, el dispositivo de
tiempo de ejecución recoge datos de rendimiento, y almacena dichos
datos de rendimiento en la sección de sistema de archivos como
respuesta al código de operación. Entonces, el software de sistema
es controlado para ser ejecutado recogiendo los datos de rendimiento
para la evaluación del software de sistema. La evaluación puede
ocurrir como una forma de análisis llevada a cabo por el código de
operación del conjunto de instrucciones dinámicas, o puede ser
llevada a cabo fuera del dispositivo sin cables. En algunos
aspectos de la presente invención, el dispositivo de tiempo de
ejecución accede a los datos de rendimiento que han sido recogidos
de la sección de sistema de archivos y transmite dichos datos de
rendimiento a través de una interfaz de enlace aéreo como respuesta
al código de operación. La recogida de datos de rendimiento de los
dispositivos sin cables en el campo permite al fabricante analizar
totalmente los problemas, de forma local o global, sin recuperar
los dispositivos.
En algunos aspectos de la presente invención, la
sección de sistema de archivos (110) recibe una instrucción de
tiempo de ejecución de gestión de corrección que incluye una nueva
sección de código. Por ejemplo, una nueva sección de código (474)
se muestra en la figura 4. De manera alternativa, la nueva sección
de código puede ser independiente de la PMRTI, como una nueva
sección de código n (450). Por ejemplo, la nueva sección de código
n (450) puede haber sido recibido mediante comunicaciones de enlace
aéreo previas, o haber sido instalado durante la calibración en la
fábrica. El dispositivo de tiempo de ejecución añade la nueva
sección de código (474) (450) a la sección de almacenamiento de
código como respuesta al código de operación. En algunos aspectos
de la presente invención, la nueva sección de código es añadida al
bloque no utilizado en la sección de almacenamiento de código
(112). De forma alternativa, se requiere una operación de
compactación. Entonces, el software de sistema está controlado para
la ejecución utilizando la nueva sección de código (474) (450). En
otros aspectos de la invención, la PMRTI (454) incluye una sección
de código actualizado (474). De manera alternativa, la nueva
sección de código (450) es una sección de código actualizada
independiente de la PMRTI. El dispositivo de tiempo de ejecución
reemplaza una sección de código en la sección de almacenamiento de
código, por ejemplo, la sección de código dos (304), por la sección
de código actualizado (474) (450) como respuesta al código de
operación. El software de sistema es controlado para ejecución
utilizando la sección de código actualizada (474) (450). En algunos
aspectos de la presente invención, es necesaria una operación de
compactación para alojar la sección de código actualizada. De
manera alternativa, la sección de código actualizada es añadida a
una sección no utilizada o vacante de la sección de almacenamiento
de código.
Tal como ha sido descrito anteriormente, la
adición de una nueva sección de código o la actualización de una
sección de código requiere de manera típica la generación de una
nueva tabla de direcciones de secciones de código, dado que dicha
operación implica direcciones de inicio de secciones de código
nuevas y/o modificadas. Además, una operación de compactación
requiere una nueva tabla de direcciones de secciones de código. Las
operaciones de compactación pueden ser el resultado de la operación
del compactador (342), explicada anteriormente, o el resultado de
instrucciones PMRTI que suministran detalles del modo en que debe
llevarse a cabo dicha compactación. Cuando la PMRTI incluye
instrucciones de descarga y compactación, la PMRTI incluye también
de manera típica una nueva tabla de direcciones de secciones de
código que se hace válida después de que las operaciones de
descarga y compactación han sido completadas.
Las figuras 10a y 10b son diagramas de flujo que
muestran el método de la presente invención para la ejecución de
conjuntos de instrucciones dinámicas en un dispositivo de
comunicaciones sin cables. A pesar de que la secuencia es mostrada
como una secuencia de etapas numeradas por razones de claridad, no
debe inferirse un orden a partir de dicha numeración (y la
numeración en los métodos presentados a continuación) a menos que
se especifique de forma explícita. El método comienza en la Etapa
(1000). La Etapa (1001a) transforma el software de sistema en
bibliotecas de símbolos, cada biblioteca de símbolos comprendiendo
símbolos que tienen una funcionalidad relacionada. La Etapa (1001b)
dispone las bibliotecas de símbolos en secciones de código. La
Etapa (1002) ejecuta el software de sistema. La Etapa (1003) recibe
los conjuntos de instrucciones dinámicas. La recepción de los
conjuntos de instrucciones dinámicas en la Etapa (1003) incluye la
recepción de dichos conjuntos de instrucciones dinámicas a través
de una interfaz seleccionada a partir del grupo que incluye
interfaces de tipo de enlace aéreo, de línea sólida de
radiofrecuencia (RF), de módulo de memoria instalable, infrarrojo,
e interfaces de puerto lógico. En algunos aspectos de la presente
invención, la recepción del conjunto de instrucciones dinámicas en
la Etapa (1003) incluye la recepción de una instrucción de tiempo de
ejecución de gestión de corrección (PMRTI) en una memoria no
volátil de la sección de sistema de archivos.
La Etapa (1004) activa un dispositivo de tiempo
de ejecución. De forma típica, la activación de un dispositivo de
tiempo de ejecución implica la invocación a una biblioteca de tiempo
de ejecución de una primera sección de código. Dicho dispositivo de
tiempo de ejecución puede ser activado desde una memoria volátil o
no volátil. La Etapa (1006) procesa los conjuntos de instrucciones
dinámicas. El procesamiento de los conjuntos de instrucciones
dinámicas incluye el procesamiento de instrucciones como respuestas
a operaciones matemáticas y lógicas. En algunos aspectos de la
presente invención, la Etapa (1007) (no mostrada), a continuación
del procesamiento de los conjuntos de instrucciones dinámicas,
elimina los conjuntos de instrucciones dinámicas. La Etapa (1008)
opera sobre los datos del sistema y el software de sistema. La Etapa
(1010) controla la ejecución del software de sistema como respuesta
a la operación sobre los datos de sistema y el software de
sistema.
De manera típica, la recepción de las
instrucciones de tiempo de ejecución del administrador de corrección
en la Etapa (1003) incluye la recepción de códigos de operación
condicional y elementos de datos. Entonces, el procesamiento de los
conjuntos de instrucciones dinámicas en la Etapa (1006) incluye
subetapas. La Etapa (1006a1) utiliza el dispositivo de tiempo de
ejecución para leer el código de operación de la instrucción de
tiempo de ejecución del administrador de corrección. La Etapa
(1006b) lleva a cabo una secuencia de operaciones como respuesta al
código de operación.
En algunos aspectos, la disposición de las
bibliotecas de símbolos en secciones de código en la Etapa (1001b)
incluye el inicio de bibliotecas de símbolos en el comienzo de las
secciones de código y la disposición de símbolos que serán
desplazados de sus respectivas direcciones de inicio de sección de
código. A continuación, el método comprende etapas adicionales. La
Etapa (1001c) almacena el inicio de las secciones de código en
direcciones de inicio correspondientes. La Etapa (1001d) mantiene
una tabla de direcciones de secciones de código (CSAT) con
referencias cruzadas entre los indicadores de secciones de código y
las direcciones de inicio correspondientes. La Etapa (1001e)
mantiene una tabla de direcciones de desplazamiento de símbolos
(SOAT) con referencias cruzadas entre identificadores de símbolos y
direcciones de desplazamiento correspondientes, y los
identificadores de secciones de código correspondientes.
En algunos aspectos de la presente invención, la
recepción de la instrucción de tiempo de ejecución del administrador
de corrección en la Etapa (1003) incluye la recepción de
identificadores de símbolos. Entonces, el método comprende una
etapa adicional. La Etapa (1006a2) localiza los símbolos
correspondientes con los identificadores de símbolos recibidos
mediante la utilización de la tabla de direcciones de secciones de
código y la tabla de direcciones de desplazamiento de símbolos. Al
llevar a cabo una secuencia de operaciones como respuesta al código
de operación en la Etapa (1006b) incluye subetapas. La Etapa
(1006b1) extrae los datos cuando los símbolos localizados son
elementos de datos. La Etapa (1006b2) ejecuta los símbolos cuando
los símbolos localizados son instrucciones.
En algunos aspectos de la presente invención, el
procesamiento de conjuntos de instrucciones dinámicas en la Etapa
(1006b1) incluye subetapas adicionales. La Etapa (1006b1a) utiliza
el dispositivo de tiempo de ejecución para capturar la longitud de
la instrucción de tiempo de ejecución del administrador de
corrección. La Etapa (1006b1b) extrae los elementos de datos de la
instrucción de tiempo de ejecución del administrador de corrección,
como respuesta al código de operación. La Etapa (1006b1c) utiliza
los datos extraídos para llevar a cabo la secuencia de operaciones
como respuesta al código de operación.
La figura 11 es un diagrama de flujo que muestra
el funcionamiento de un conjunto de instrucciones dinámicas a modo
de ejemplo. Varias de las etapas de la figura 11 son las mismas que
las de la figura 10, y no son repetidas por razones de brevedad. El
procesamiento de conjuntos de instrucciones dinámicas en la Etapa
(1106) incluye subetapas. La Etapa (1106a) accede a los datos de
sistema almacenados en una segunda sección de código en la sección
de sistema de archivos. La Etapa (1106b) analiza los datos de
sistema. La Etapa (1106c) crea datos de sistema actualizados.
Entonces, la operación sobre los datos de sistema y el software de
sistema en la Etapa (1108) incluye el reemplazo de los datos de
sistema en la segunda sección por los datos de sistema actualizados,
y el control de la ejecución del software de sistema en Etapa
(1010) incluye la utilización de datos de sistema actualizados en
la ejecución del software de sistema.
La figura 12 es un diagrama de flujo que muestra
otro funcionamiento del conjunto de instrucciones dinámicas a modo
de ejemplo. Varias de las etapas de la figura 12 son las mismas que
las de la figura 10, y no son repetidas por razones de brevedad. La
Etapa (1201c) almacena una serie de secciones de código en una
memoria no volátil de la sección de almacenamiento de código. El
procesamiento de los conjuntos de instrucciones dinámicas en la
Etapa (1206) incluye subetapas. La Etapa (1206a) accede a los datos
de sistema almacenados en una tercera sección de código en la
sección de almacenamiento de código (CSS). La etapa (1206b) analiza
los datos de sistema. La etapa (1206c) crea datos de sistema
actualizados. La operación sobre los datos de sistema y el software
de sistema en la Etapa (1208) incluye el reemplazo de los datos de
sistema en la tercera sección de código por los datos de sistema
actualizados. El control de la ejecución del software de sistema en
la Etapa (1210) incluye la utilización de los datos de sistema
actualizados en la ejecución del software de sistema.
La figura 13 es un diagrama de flujo que muestra
un tercer funcionamiento, a modo de ejemplo, de un conjunto de
instrucciones dinámicas. Varias de las etapas de la figura 13 son
las mismas que las de la figura 10, y no son repetidas en la
descripción por razones de brevedad. La Etapa (1301c) almacena una
serie de secciones de código en una memoria no volátil de secciones
de almacenamiento de código. La Etapa (1301d) carga datos de
lectura-escritura en la memoria volátil. El
procesamiento de los conjuntos de instrucciones dinámicas en la
Etapa (1306) incluye subetapas. La Etapa (1306a) accede a los datos
de lectura-escritura de la memoria volátil. La
Etapa (1306b) analiza los datos de
lectura-escritura. La Etapa (1306c) crea datos de
lectura-escritura actualizados. La operación sobre
los datos del sistema y el software del sistema en la Etapa (1308)
incluye el reemplazo de los datos de
lectura-escritura en la memoria volátil por los
datos de lectura-escritura actualizados. El control
de la ejecución del software de sistema incluye la utilización de
los datos de lectura-escritura actualizados en la
ejecución del software del sistema.
La figura 14 es un diagrama de flujo que muestra
un cuarto funcionamiento, a modo de ejemplo, del conjunto de
instrucciones dinámicas. Varias de las etapas de la figura 14 son
las mismas que las de la figura 10, y no son repetidas en la
descripción por razones de brevedad. El procesamiento de los
conjuntos de instrucciones dinámicas incluye subetapas. La Etapa
(1406a), como respuesta al código de operación, monitorea la
ejecución del software del sistema. La Etapa (1406b) recoge datos
de rendimiento. La Etapa (1406c) almacena los datos de rendimiento.
La Etapa (1406d) transmite los datos almacenados mediante una
interfaz de enlace aéreo. La operación sobre los datos del sistema
y el software del sistema en la etapa (1408) incluye la utilización
de los datos de rendimiento en la evaluación del software del
sistema.
La figura 15 es un diagrama de flujo que muestra
un quinto funcionamiento, a modo de ejemplo, del conjunto de
instrucciones dinámicas. Varias de las etapas de la figura 15 son
las mismas que las de la figura 10, y no son repetidas en la
descripción por razones de brevedad. La Etapa (1501c) almacena una
serie de secciones de código en una memoria no volátil de la
sección de almacenamiento de código. La recepción de las
instrucciones de tiempo de ejecución del administrador de
corrección en la Etapa (1503) incluye la recepción de una nueva
sección de código. La operación sobre los datos de sistema y el
software de sistema en la Etapa (1508) incluye la adición de la
nueva sección de código a la sección de almacenamiento de código, y
el control de la ejecución del software de sistema en la Etapa
(1510) incluye la utilización de la nueva sección de código en la
ejecución del software de sistema.
De manera alternativa, la recepción de una nueva
sección de código en la Etapa (1503) incluye la recepción de una
sección de código actualizado. Entonces, la operación sobre los
datos del sistema y el software del sistema en la Etapa (1508)
incluye el reemplazo de una cuarta sección de código en la sección
de almacenamiento de código por la sección de código
actualizado.
Han sido dados a conocer un sistema y un método
para la ejecución de conjuntos de instrucciones dinámicas en un
dispositivo de comunicaciones sin cables, para favorecer el proceso
de actualización del software y monitoreo del rendimiento de dicho
software. El sistema puede ser actualizado de forma sencilla debido
a la disposición de las bibliotecas de símbolos en secciones de
código, con tablas para acceder a las direcciones de inicio de
dichas secciones de código en la memoria y las direcciones de
desplazamiento de los símbolos en las bibliotecas de símbolos. La
utilización de conjuntos de instrucciones dinámicas permite llevar a
cabo modificaciones especiales en cada dispositivo sin cables,
basadas en las características especiales de cada dispositivo. Unos
pocos ejemplos generales han sido dados a conocer mostrando los
posibles usos para los conjuntos de instrucciones dinámicas. Sin
embargo, la presente invención no está limitada a dichos ejemplos.
Otras variantes y realizaciones de la presente invención resultarán
evidentes para las personas especializadas en la técnica.
La figura 16 es un diagrama de red de alto nivel
que muestra un ejemplo de red de comunicaciones sin cables de
acuerdo con una realización de la presente invención. La red de
comunicaciones sin cables mostrada comprende una serie de
dispositivos de comunicación sin cables (10), (12) y (14); una serie
de estaciones base (20) y (22); un servidor PMRTI (30), y un
servidor de seguridad (35); cada uno de los cuales está conectado
con los dispositivos de comunicación sin cables (10), (12) y (14)
mediante una red (40).
También se muestra en la realización, dada a
modo de ejemplo, un dispositivo de reprogramación (45) que está
conectado con un aparato telefónico (14) mediante una conexión
directa (47). La conexión directa (47) es una conexión física de
cable duro entre el aparato telefónico (14) y el dispositivo de
reprogramación (45), por ejemplo, un cable serie o una conexión de
red cableada. El dispositivo de reprogramación (45) puede estar
conectado además a una red tal como Internet (42), que puede
suministrar acceso a la red (40) al dispositivo de reprogramación
(45). De manera adicional, el dispositivo de reprogramación (45)
puede tener una capacidad de comunicación sin cables que le permita
conectarse con la red (40) mediante una estación base, tal como,
por ejemplo, la estación base (22).
El dispositivo de comunicaciones sin cables (10)
puede ser cualquier tipo de dispositivo con la capacidad de
comunicarse dentro de la red de comunicaciones sin cables. Por
ejemplo, el dispositivo de comunicaciones sin cables (10) puede ser
un teléfono móvil, un asistente personal digital ("PDA"), un
ordenador portátil, un reloj de pulsera, o cualquier otro
dispositivo configurado para comunicaciones sin cables. Los
dispositivos de comunicaciones sin cables pueden ser referenciados
en la presente descripción como "aparatos manuales" o
"teléfonos móviles" o "dispositivos móviles".
La estación base (20) está configurada de forma
preferente para comunicar a través del aire con una serie de
dispositivos de comunicación sin cables e incluye un transceptor (no
mostrado) que convierte las comunicaciones a través del aire a
comunicaciones por cable que viajan por la red (40). De manera
preferente, la red (40) es una red privada que funciona por el
proveedor sin cables. La red (40) proporciona de manera preferente
la infraestructura para transferencias entre las estaciones base
tales como la estación base (20) y (22). De manera adicional, la
red (40) proporciona de forma preferente el enlace de comunicación
entre varias aplicaciones, servicios, y otros servidores basados en
ordenadores tales como el servidor PMRTI (30) y el servidor de
seguridad (35).
\newpage
La red (40) también puede servir como el
conducto para las conexiones con otras redes (no mostradas) como
una Red Digital de Servicios Integrados ("ISDN"), Red de
Telefonía Conmutada Pública ("PSTN"), Red Móvil Terrestre
Pública ("PLMN"), Red de Datos Pública de Paquetes Conmutados
("PSPDN"), e Internet, para nombrar unos pocos ejemplos.
El servidor PMRTI (30) puede ser implementado
como un único ordenador o como una serie de servidores dispuestos
de forma lógica para proporcionar conjuntos de instrucciones
dinámicas a dispositivos móviles y para ejecutar conjuntos de
instrucciones dinámicas recibidas desde dispositivos móviles. De
manera similar, el servidor de seguridad (35) puede ser
implementado utilizando un ordenador convencional con uno o más
microprocesadores, como es bien sabido dentro de la técnica. De
forma notable, el servidor de seguridad y el servidor PMRTI (30)
pueden ser incorporados de forma conjunta en una única máquina
física de servidor en la que comparten recursos de hardware y
software. El servidor de seguridad (35) y el servidor PMRTI (30)
pueden compartir además archivos de datos y estar acoplados de
forma comunicativa mediante técnicas de comunicación entre procesos
o conexiones físicas o sin cables a través de una red (40).
La figura 17A es un diagrama de bloques que
muestra un ejemplo de dispositivo de comunicaciones sin cables (10)
de acuerdo con una realización de la presente invención. Las
características generales del dispositivo de comunicaciones sin
cables (10) que le permiten funcionar como tal son bien conocidas en
la técnica y por lo tanto no serán descritas ni mostradas en el
presente documento.
En una realización, el aparato telefónico (10)
incluye un código de acceso (55). Dicho código de acceso (55) está
almacenado en la memoria permanente del aparato telefónico (10) en
el que no puede ser modificado o eliminado. El código de acceso
(55) puede ser una cadena alfanumérica, un número hexadecimal, un
número binario, o similar. De manera preferente, el código de
acceso (55) es un número o cadena largos que es aleatorio y muy
difícil de obtener mediante utilidades y herramientas de
reprogramación ilícitas. En una realización alternativa, el aparato
telefónico (10) no incluye un código de acceso (55). Cuando no
existe disponible un código de acceso en el aparato telefónico
(10), las utilidades de reprogramación son totalmente incapaces de
obtener acceso a dicho aparato telefónico de modo tal que
permitiría la reprogramación. De manera ventajosa, cuando no existe
un código de acceso presente en el aparato telefónico (10),
únicamente el proveedor puede autorizar la reprogramación. Una
realización de este tipo aumenta de forma significativa la seguridad
contra reprogramación en el aparato telefónico.
En una realización, el código de acceso (55)
puede contener un indicador que dirige al aparato telefónico para
que realice una consulta a la red del proveedor para obtener una
autorización para ser reprogramado. De este modo, el proveedor
puede actualizar el indicador contenido en el código de acceso (55)
de modo que la seguridad de reprogramación pueda ser desactivada,
ser fijada para determinación local (por ejemplo, cuando es
suministrado el código de acceso correcto), o ser fijada para
autorización del proveedor. De manera ventajosa, este hecho permite
que el proveedor controle de forma flexible la seguridad de
reprogramación con un nivel de granularidad individual para cada
aparato manual.
El aparato manual (10) incluye además un
dispositivo de tiempo de ejecución (50), una biblioteca de códigos
de operación ("opcode") remota (60), una biblioteca de código
de operación de servidor (70), y una sección de código de
instrucciones de tiempo de ejecución remota (80). El dispositivo de
tiempo de ejecución (50) está configurado de forma preferente para
procesar conjuntos de instrucciones dinámicas. Un ejemplo de
conjunto de instrucciones dinámicas es un conjunto de instrucciones
PMRTI. Otro ejemplo de un conjunto de instrucciones dinámicas es un
conjunto de instrucciones RPMRTI. La diferencia entre los dos
conjuntos de instrucciones es que el conjunto PMRTI incluye
aquellas funciones que pueden ser ejecutadas por el dispositivo sin
cables mientras que el conjunto de instrucciones RPMRTI incluye
aquellas funciones que pueden ser ejecutadas por el servidor PMRTI
(30) que reside en la red
(40).
(40).
El procesamiento de los conjuntos de
instrucciones dinámicas incluye la ejecución de conjuntos PMRTI que
son recibidos desde el servidor PMRTI (30) y la compilación de los
conjuntos RPMRTI y los datos correspondientes para el envío al
servidor PMRTI (30). De manera preferente, el dispositivo de tiempo
de ejecución (50) puede ser activado mediante un dispositivo de
comunicación sin cables (10) cuando resulte necesario de modo que
funcione únicamente cuando sea necesario y consuma una cantidad
mínima de recursos del sistema (por ejemplo, memoria, ciclos de la
CPU, etc.) en el dispositivo (10).
La biblioteca de código de operación remota
(60) incluye de forma preferente el universo de códigos de operación
que representa cada función PMRTI o sección de código ejecutable.
De manera ventajosa, la biblioteca de código de operación remota
(60) incluye los códigos de operación que sirven como soportes de
lugar para las funciones de código de máquina ejecutables
existentes o secciones de código. De este modo, la biblioteca de
código de operación remota (60) contiene una lista de todos los
códigos de operación disponibles que corresponden con cada función
PMRTI que puede ser ejecutada por el dispositivo de comunicaciones
sin cables (10).
De manera similar, la biblioteca de código de
operación del servidor (70) incluye de forma preferente el universo
de códigos de operación que representan cada función RPMRTI o
sección de código ejecutable. De manera ventajosa, la biblioteca de
código de operación del servidor (70) incluye solo los códigos de
operación para las funciones de código de máquina ejecutables
existentes o secciones de código, que no residen en el dispositivo
de comunicaciones sin cables (10). De este modo, la biblioteca de
código de operación del servidor (70) contiene una lista de todos
los códigos de operación para cada función RPMRTI disponible que
puede ser ejecutada por el servidor PMRTI (30) en nombre del
dispositivo de comunicaciones sin cables (10).
En la realización preferente, la cantidad de
funciones RPMRTI disponibles puede exceder la cantidad de funciones
PMRTI debido a que el servidor PMRTI (30) no sufre los problemas de
recursos mínimos encontrados de manera típica en dispositivos
móviles tales como teléfonos móviles o dispositivos PDA.
De forma adicional, el dispositivo de
comunicación sin cables (10) incluye una parte de código de
instrucciones de tiempo de ejecución remota (80). La parte de
código (80) es donde el código de máquina real o las instrucciones
ejecutables residen en la memoria permanente en el dispositivo (10).
Dichas instrucciones ejecutables o secciones de código
corresponden, de forma preferente, en una relación de uno a uno, con
los códigos de operación contenidos en la biblioteca de código de
operación remota (60). La figura 17B es un diagrama de bloques que
muestra una parte de código a modo de ejemplo (80) de acuerdo con
una realización de la presente invención. Tal como se muestra,
cualquier número de las funciones PMRTI pueden ser incluidas en la
sección de código (80), desde la instrucción 01 hasta la
instrucción n. De manera óptima, un gran número de funciones está
disponible en la sección de código (80) y aún así consume muy pocos
recursos (por ejemplo, memoria permanente) del dispositivo
(10).
De manera ventajosa, la biblioteca de código de
operación de servidor (70), la biblioteca de código de operación
remota (60), y la sección de código correspondiente (80) pueden ser
instaladas en la memoria permanente en el dispositivo de
comunicación sin cables (10) durante el proceso de fabricación de
dicho dispositivo (10) y antes de su implementación en el campo (es
decir, antes de ser vendido al consumidor). Las actualizaciones
futuras del conjunto de códigos de operación contenidos en
cualquiera de las bibliotecas o del conjunto de instrucciones
ejecutables en la sección de código (80) pueden ser suministradas
mediante el servidor PMRTI (30) implementando el proceso descrito
más adelante haciendo referencia a la figura 22.
Finalmente, en la realización mostrada, el
dispositivo de comunicaciones sin cables incluye un enlace de
comunicaciones aéreo (90). La implementación del enlace de
comunicaciones (90) es bien conocida en la técnica y proporciona al
dispositivo de comunicaciones sin cables (10) la capacidad para
comunicarse dentro de la red de comunicaciones sin cables (100) por
radio u otra conexión aérea. De manera ventajosa, el enlace de
comunicaciones aéreo (90) puede proporcionar los medios para que el
servidor PMRTI (30) actualice la biblioteca de código de operación
remota (60), la biblioteca de código de operación del servidor (70),
y la parte de códigos de instrucciones de tiempo de ejecución
remota (80).
La figura 18A es un diagrama de bloques que
muestra un ejemplo de un servidor PMRTI (30) de acuerdo con una
realización de la presente invención. Las características de un
ordenador convencional que pueden implementar el servidor PMRTI son
descritas posteriormente haciendo referencia a la figura 23.
En la realización mostrada, el servidor PMRTI
(30) incluye un módulo de control (95), una biblioteca de código de
operación remota (60), una biblioteca de código de operación del
servidor (70), y una sección de código de instrucciones de tiempo
de ejecución del servidor (82). La biblioteca de código de operación
remota (60) y la biblioteca de código de operación del servidor
(70) contienen de forma preferente la misma lista de códigos de
operación que las bibliotecas que están presentes en el dispositivo
de comunicaciones sin cables (10). El módulo de control (95) está
configurado de forma preferente para procesar conjuntos de
instrucciones dinámicas y administrar una red de comunicaciones
PMRTI entre el servidor PMRTI (30) y una serie de dispositivos de
comunicación sin cables disponible a través de dicha red de
comunicaciones sin cables.
Por ejemplo, el módulo de control (95) puede
compilar varios conjuntos PMRTI dinámicos y enviar los conjuntos de
instrucciones a una serie de dispositivos de comunicaciones sin
cables separados. De manera similar, el módulo de control (95)
también puede recibir una serie de conjuntos de RPMRTI dinámicas y
ejecutar las instrucciones en nombre del dispositivo de
comunicaciones sin cables de transmisión.
La biblioteca de código de operación remota (60)
incluye de forma preferente el universo de códigos de operación
correspondientes a cada función PMRTI disponible o sección de código
ejecutable. De manera ventajosa, la biblioteca de código de
operación remota (60) comprende una lista de los códigos de
operación que sirven como tomadores de lugar para las funciones de
código de máquina ejecutables reales o secciones de código en la
parte de código de instrucciones de tiempo de ejecución remota (80)
(en el dispositivo de comunicaciones sin cables). De este modo, la
biblioteca de código de operación remota (60) contiene una lista de
todos los códigos de operación disponibles para todas las funciones
PMRTI que pueden ser ejecutadas por un dispositivo de comunicaciones
sin cables.
De manera similar, la biblioteca de código de
operación del servidor (70) incluye de forma preferente el universo
de los códigos de operación correspondientes a cada función RPMRTI o
sección de código ejecutable. De forma ventajosa, la biblioteca de
código de operación del servidor (70) incluye únicamente los códigos
de operación para las funciones de código de máquina ejecutables
reales o secciones de código que pueden ser llevadas a cabo en el
servidor PMRTI (30). En la realización preferente, la cantidad de
funciones RPMRTI disponibles puede exceder la cantidad de funciones
PMRTI disponibles debido a que el servidor PMRTI (30) no sufre el
problema de recursos mínimos encontrado de forma típica en
dispositivos móviles tal como, por ejemplo, teléfonos móviles o
dispositivos
PDA.
PDA.
De forma adicional, el servidor PMRTI (30)
incluye la parte de código de instrucciones de tiempo de ejecución
del servidor (82). Dicha parte de código (82) es el lugar en el que
el código de máquina real o instrucciones ejecutables residen en la
memoria permanente del servidor (30). Dichas instrucciones
ejecutables o secciones de código se corresponden de manera
preferente con una relación de uno a uno con los códigos de
operación contenidos en la biblioteca de código de operación del
servidor (70), que reside en el servidor (30) y en el dispositivo
de comunicaciones sin cables (10). La figura 18B es un diagrama de
bloques que muestra un ejemplo de parte de código de instrucciones
de tiempo de ejecución del servidor de acuerdo con una realización
de la presente invención.
La figura 19 es un diagrama de flujo que muestra
un proceso a modo de ejemplo para la ejecución de conjuntos de
instrucciones dinámicas en un dispositivo de comunicaciones sin
cables de acuerdo con una realización de la presente invención.
Inicialmente, en la etapa (500), el dispositivo sin cables recibe un
conjunto de códigos de operación remotos. El conjunto de remotos
puede ser recibido a través de un enlace de comunicaciones aéreo,
por ejemplo un enlace con una red de comunicaciones sin cables. De
forma preferente, los códigos de operación están optimizados para
minimizar la cantidad de datos enviados por el aire. De forma
adicional, una carga útil de datos puede ser incluida con el
conjunto de códigos de operación recibidos por el dispositivo sin
cables.
En la etapa (502), el dispositivo sin cables
inicia su dispositivo de tiempo de ejecución para procesar el
conjunto de código de operación remoto. Tal como se muestra en la
etapa (504), el dispositivo de tiempo de ejecución analiza
sintácticamente el conjunto de código de operación remoto y extrae
la carga útil de datos en la etapa (506). Si no existe carga útil
de datos, entonces esta etapa puede ser omitida. Si existe una
carga útil de datos, entonces los datos resultantes pueden ser
almacenados en una parte disponible de la memoria volátil para su
utilización posterior. A continuación, el dispositivo de tiempo de
ejecución obtiene las instrucciones ejecutables que corresponden
con los códigos de operación en el conjunto de código de operación
remoto, tal como se muestra en la etapa (508). Dichas instrucciones
pueden ser obtenidas de la parte de código de instrucciones de
tiempo de ejecución remota del dispositivo sin cables.
Una vez que las instrucciones ejecutables
correspondientes a los códigos de operación en el conjunto de código
de operación remoto han sido obtenidas, el dispositivo de tiempo de
ejecución ejecuta las instrucciones, tal como se muestra en la
etapa (510). Cuando las instrucciones están siendo ejecutadas,
cualesquiera datos necesarios para ser operados pueden ser
obtenidos de la memoria volátil en la que la carga útil de datos es
almacenada. De forma alternativa o adicional, cualesquiera datos
necesarios para ser operados pueden estar contenidos como resultado
de una instrucción ejecutada.
Por ejemplo, la carga útil de datos puede
incluir un módulo de software actualizado para el dispositivo sin
cables. De forma adicional, uno de los códigos de operación en el
conjunto de códigos de operación remoto puede corresponder a una
instrucción ejecutable para el reemplazo de una parte de memoria
permanente por una parte de la carga útil de datos. En dicho
ejemplo, la parte de memoria permanente que está siendo reemplazada
es el módulo de software fuera de fecha y como resultado el módulo
de software actualizado es cargado en la memoria permanente
mediante la instrucción. De este modo, el conjunto de códigos de
operación remoto y la carga útil de datos operan en el dispositivo
sin cables para actualizar un módulo de software.
Una vez que el conjunto de instrucciones ha sido
ejecutado en su totalidad por el dispositivo de tiempo de
ejecución, dicho dispositivo de tiempo de ejecución puede ser
finalizado, tal como se muestra en la etapa (512). De forma
ventajosa, el dispositivo de tiempo de ejecución puede ser iniciado
y finalizado de forma que sólo opera cuando es necesario. Este
hecho ahorra recursos de sistema en el dispositivo sin cables, por
ejemplo, puede ahorrar espacio de memoria volátil y ciclos de
CPU.
La figura 20 es un diagrama de flujo que muestra
un proceso de ejemplo para la compilación de conjuntos de
instrucciones dinámicas en un dispositivo de comunicaciones sin
cables de acuerdo con una realización de la presente invención. De
manera inicial, el dispositivo de tiempo de ejecución es iniciado,
tal como se muestra en la etapa (520). Una vez que el dispositivo
de tiempo de ejecución está en funcionamiento, dicho dispositivo
puede compilar un conjunto de códigos de operación de servidor, tal
como se muestra en la etapa (522). El conjunto del servidor puede
ser obtenido de un proceso en segundo plano ejecutado en el
dispositivo sin cables. De manera alternativa, el conjunto de
código de operación del servidor puede ser obtenido a partir de un
proceso funcionando en el dispositivo sin cables bajo la dirección
de un usuario.
Por ejemplo, el dispositivo sin cables puede
incluir un conjunto de rutinas que son ejecutadas de forma periódica
y automática por el sistema operativo para llevar a cabo el
mantenimiento del sistema u otra función deseable. Dichos
procedimientos pueden, como resultado de su ejecución, hacer que el
dispositivo de tiempo de ejecución genere un conjunto de código de
operación de servidor. De forma alternativa, un usuario puede
iniciar un conjunto particular de rutinas que son ejecutadas
únicamente cuando es requerido por el usuario. Dicho conjunto de
rutinas también puede hacer que un conjunto de código de operación
de servidor sea generado por el dispositivo de tiempo de ejecución.
En los dos casos, el resultado es un conjunto de códigos de
operación de servidor generado por el dispositivo de tiempo de
ejecución, tal como se muestra en la etapa (522).
Una vez que el conjunto de códigos de operación
de servidor ha sido generado, el dispositivo de tiempo de ejecución
determina en la etapa (524) si dicho conjunto de códigos de
operación de servidor debe ser acompañado por una carga útil de
datos. Si existen datos que deben ir junto con el conjunto de
códigos de operación de servidor, en la etapa (526) el dispositivo
de tiempo de ejecución extrae los datos de la memoria volátil o
permanente, o ejecuta una instrucción que devuelve los datos
necesarios. Una vez que los datos han sido obtenidos, el
dispositivo de tiempo de ejecución inserta a continuación los datos
en el conjunto de códigos de operación de servidor, tal como se
muestra en la etapa (528). Un modo simple para lograrlo es añadir la
carga útil de datos al conjunto de códigos de operación de servidor
en un único paquete de datos.
Una vez que la carga útil de datos ha sido
combinada con el conjunto de códigos de operación de servidor, o si
no se requiere una carga útil de datos, entonces el dispositivo de
tiempo de ejecución envía el conjunto de códigos de operación de
servidor (con o sin una carga útil de datos) al servidor, tal como
se muestra en la etapa (530). Después de que el conjunto de códigos
de operación de servidor ha sido enviado, el dispositivo de tiempo
de ejecución puede ser finalizado para liberar recursos en el
dispositivo sin cables, tal como se muestra en la figura (532).
La figura 21 es un diagrama de flujo que muestra
un proceso a modo de ejemplo para la ejecución de conjuntos de
instrucciones dinámicas en un servidor PMRTI de acuerdo con una
realización de la presente invención. Inicialmente, en la etapa
(540) el servidor recibe el conjunto de códigos de operación de
servidor. El conjunto de códigos de operación es, de forma
preferente, una lista de nombres que representa una serie de
instrucciones ejecutables, con cada uno de los códigos de operación
representando una instrucción ejecutable discreta o un conjunto
discreto de instrucciones ejecutables. Una vez que el conjunto de
códigos de operación de servidor ha sido recibido, el servidor
analiza sintácticamente el conjunto de códigos de operación de
servidor en la etapa (542) y extrae cualquier carga útil de datos
incluida con el conjunto de códigos de operación de servidor, tal
como se muestra en la etapa (544). Cuando la carga útil de datos es
extraída, puede ser almacenada de manera temporaria en memoria
volátil o en el servidor para su utilización posterior.
A continuación, el servidor obtiene el conjunto
de instrucciones correspondientes, tal como se muestra en la etapa
(546). De forma preferente, el conjunto de instrucciones
correspondiente está almacenado en una parte de código de
instrucciones de tiempo de ejecución del servidor que reside en la
memoria permanente en la máquina servidor PMRTI. Una vez que el
conjunto de instrucciones ha sido obtenido, entonces el servidor
ejecuta el conjunto de instrucciones, tal como se muestra en la
etapa (548). Cuando el conjunto de instrucciones está siendo
ejecutado, las rutinas en ejecución pueden utilizar la carga útil de
datos que vino junto con el conjunto de códigos de operación de
servidor. De forma preferente, la carga útil de datos es almacenada
en la memoria del servidor con dicho propósito. De manera
alternativa, las rutinas en ejecución pueden incluir instrucciones
que generan los datos necesarios para que el conjunto de
instrucciones lleve a cabo su función.
La figura 22 es un diagrama de flujo que muestra
un proceso a modo de ejemplo para la autorización del proveedor
para la reprogramación del aparato telefónico. Inicialmente, en la
etapa (580), el aparato telefónico recibe un pedido de
reprogramación de un dispositivo de reprogramación. El dispositivo
puede estar conectado al aparato manual mediante un cable serie
directo o una conexión de red física local. El dispositivo puede
además estar conectado a una serie de aparatos manuales mediante
una conexión de red local o una conexión con cable en serie
ramificado ("one-to-many") que
permita trabajar al dispositivo de reprogramación con múltiples
aparatos manuales.
Una vez que el aparato manual recibe el pedido
de reprogramación, el intento de reprogramación, o un intento para
determinar el código de acceso del aparato telefónico, envía una
consulta al proveedor mediante comunicaciones sin cables, tal como
se muestra en la etapa (582). Dicha consulta es enviada para
determinar si la reprogramación del aparato manual es autorizada
por el proveedor. Cuando el aparato manual recibe una respuesta del
proveedor mediante a través de dichos medios de comunicación sin
cables, dicho aparato telefónico determina si la operación de
reprogramación es autorizada, tal como se muestra en la etapa (584).
Si la reprogramación es autorizada, en la etapa (586) el aparato
telefónico permite la reprogramación, por ejemplo, suministrando el
código de acceso al dispositivo de reprogramación, en caso de que
exista.
Si la reprogramación no es autorizada, el
aparato manual niega el pedido de reprogramación, tal como se
muestra en la etapa (588). De manera ventajosa, el proveedor puede
registrar el pedido. De manera adicional, el proveedor puede
solicitar al aparato telefónico información de localización como GPS
para determinar la localización en la que el intento de
reprogramación ha tenido lugar. Dicha información puede ser útil si
el intento de reprogramación no fue autorizado.
La figura 23 es un diagrama de flujo que muestra
un ejemplo de proceso de clave pública y privada para la
autorización de proveedor para reprogramación del aparato
telefónico. Inicialmente, en la etapa (590) el aparato telefónico
recibe un pedido de reprogramación. A continuación, el aparato
manual obtiene tanta información del dispositivo de reprogramación
como sea posible. Por ejemplo, el aparato manual puede obtener la
dirección IP del dispositivo de reprogramación o MIN, si el
dispositivo está habilitado como sin cables. También puede
obtenerse información adicional.
En la etapa (594), el aparato manual obtiene su
propia información, tal como, por ejemplo, si MIN y ESN y otra
información requerida por el proveedor para la identificación del
aparato manual. Una vez que la información ha sido reunida, el
aparato manual envía la información al proveedor, tal como se
muestra en la etapa (596). Dicha información puede ser enviada al
servidor de seguridad en la red sin cables para el procesamiento.
Después de enviar la información, el aparato telefónico recibe una
clave privada del proveedor, tal como se muestra en la etapa (598).
Entonces el aparato manual convierte la clave privada utilizando su
propia clave pública en la etapa (600) y recibe una clave del
dispositivo de reprogramación en la etapa (602). Entonces el aparato
manual lleva a cabo la comparación de la clave convertida con la
clave del dispositivo de reprogramación para determinar si
concuerdan, tal como se muestra en la etapa (604). Si las claves
concuerdan, entonces se da autorización para la reprogramación, tal
como se muestra en la etapa (608). Si las claves no concuerdan, sin
embargo, entonces en la etapa (606) el aparato manual niega el
pedido de reprogramación.
En el proceso descrito anteriormente (desde el
punto de vista del aparato manual), es importante señalar que el
proveedor utiliza la información del dispositivo de reprogramación
para hacer contacto con el dispositivo de reprogramación y enviar
la clave privada del proveedor al dispositivo de reprogramación de
forma similar al modo en que el proveedor envía su clave privada al
aparato manual en la etapa (598). La clave privada es la génesis de
cualquier conversión de claves por el dispositivo de reprogramación
y por lo tanto el dispositivo de reprogramación debe obtener la
clave privada para poder convertirla y enviarla al aparato manual
para la comparación. Si el dispositivo de reprogramación es incapaz
de recibir la clave privada y convertirla y enviar la clave
convertida al aparato manual, dicho aparato manual puede estar
configurado para marcar el fin del tiempo asignado y rechazar la
solicitud de reprogramación.
La figura 24 es un diagrama de flujo que muestra
un proceso, a título de ejemplo, para la creación de una ventana de
reprogramación libre de autorización en el aparato manual. En una
realización en la que el proveedor tiene una gran existencia de
teléfonos que necesitan ser reprogramados, el proveedor puede optar
por desactivar los procedimientos de seguridad de reprogramación
durante un determinado intervalo de tiempo. Por ejemplo, una
ventana de 6 horas puede ser concebida para permitir que un
suministro de servicio reprograme un bloque de aparatos
manuales.
Inicialmente, el proveedor envía una instrucción
a un grupo de aparatos manuales, o de forma alternativa a un solo
aparato manual. Dicha instrucción puede ser entregada por el
servidor PMRTI utilizando el conjunto de códigos de operación
remotos descritos anteriormente. En la etapa (620), el aparato
manual recibe dicha instrucción del proveedor. La instrucción hace
que el aparato manual desactive los procedimientos de seguridad de
reprogramación durante una ventana de tiempo determinada. La
instrucción también puede ordenar al aparato manual que desactive
los procedimientos de seguridad de reprogramación de forma
indefinida. De forma alternativa, la instrucción puede decir al
aparato manual active los procedimientos de seguridad. En este caso,
la instrucción dice al aparato manual que desactive los
procedimientos de seguridad por un intervalo de 6 horas, comenzado
inmediatamente.
En la etapa (622), el aparato manual desactiva
las características de seguridad de reprogramación. Entonces el
aparato manual comprueba de forma periódica para determinar si se ha
alcanzado el final del período predeterminado, tal como se muestra
en la etapa (624). Si el período todavía sigue en efecto, el aparato
manual continúa en espera, tal como se ha mostrado en la etapa
(626). El período de espera entre cada comprobación puede ser
ajustado con un intervalo pequeño, un intervalo grande, o un
intervalo variable determinado por la cercanía con el momento de
reactivar las características de reprogramación.
La figura 25 es un diagrama de flujo que muestra
un ejemplo de un proceso PMRTI para la autorización del proveedor
para la reprogramación del aparato manual. Inicialmente, el aparato
manual recibe un pedido de reprogramación, tal como se muestra en
la etapa (640). Cuando recibe dicho pedido, el aparato manual
obtiene información del dispositivo de reprogramación, tal como se
muestra en la etapa (642). Dicha información puede incluir un número
de identificación de software (para validar la aplicación de
reprogramación), un MIN, u otros identificadores únicos para el
dispositivo de reprogramación o la aplicación o herramienta de
software utilizada por el dispositivo de reprogramación.
En la etapa (644), el aparato telefónico obtiene
su propia información de identificación como puede ser su MIN, ESN
y otra información útil como su localización. Una vez que la
información del aparato telefónico y del dispositivo de
reprogramación ha sido obtenida, en la etapa (646) el aparato
telefónico crea una carga útil de datos que incluye dicha
información. También puede suministrarse información adicional. A
continuación, en la etapa (648), el aparato telefónico compila un
conjunto de códigos de operación de servidor incluyendo la carga
útil de datos y un código de operación de servidor que representa
una instrucción para que el servidor autorice la reprogramación.
Este conjunto de códigos de operación de servidor es enviado al
proveedor en la etapa (650) en la que es entregado primeramente al
servidor PMRTI y luego al servidor de seguridad. Estos dos
servidores pueden estar alojados en la misma máquina y hasta ser
ejecutados como una sola aplicación de software combinado.
Después de que el conjunto de códigos de
operación de servidor es procesado por el proveedor, el aparato
manual recibe un conjunto de códigos de operación remoto del
proveedor, tal como se muestra en la etapa (652). Cuando se recibe
el conjunto de códigos de operación remoto, el aparato manual extrae
la carga útil de datos en la etapa (654) y luego traduce los
códigos de operación remotos del conjunto en instrucciones
ejecutables, tal como se muestra en la etapa (656). El aparato
manual ejecuta dichas instrucciones en la etapa (658) para
determinar si la autorización ha sido suministrada por el
proveedor. La autorización o negación desde el proveedor puede ser
incluida en la carga útil de datos, con una instrucción que
desempaqueta la respuesta de la carga útil de datos y envía la
respuesta al sistema operativo o aplicación del aparato telefónico
que está en comunicación con el dispositivo de reprogramación. Una
vez que el aparato manual tiene su autorización o negación del
proveedor, dicho aparato manual responde al dispositivo de
reprogramación de una forma afirmativa o negativa de manera
consecuente.
Del lado del servidor, el proveedor de forma
preferente registra cada pedido de reprogramación de un aparato
telefónico. Además, el proveedor puede mantener estadísticas sobre
intentos de reprogramación satisfactorios y no satisfactorios.
Además, el proveedor puede autorizar la reprogramación basándose en
la información suministrada que pertenece al dispositivo de
reprogramación. Además, el proveedor puede autorizar una
reprogramación parcial del aparato manual. Por ejemplo, esto puede
ser cuando aparatos manuales más antiguos son donados a refugios u
otras organizaciones. Dichos aparatos manuales pueden ser
reprogramados para ciertos tipos de acceso de red mientras que
mantienen el MIN original del aparato manual.
La figura 26 es un diagrama de bloques que
muestra un sistema informático a modo de ejemplo (550) que puede
ser utilizado en conjunto con los numerosos ejemplos descritos en la
presente descripción. Por ejemplo, el sistema informático (550)
puede ser empleado como servidor PMRTI o servidor de seguridad que
reside dentro de la red de comunicaciones sin cables. El sistema
informático (550) también puede ser empleado como cualquiera de los
varios sistemas informáticos de uso general o específico que
comprenden la red de comunicaciones sin cables y sus componentes.
Sin embargo, otros sistemas informáticos y arquitecturas pueden ser
utilizados, tal como resultará evidente para las personas
especializadas en la técnica.
El sistema informático (550) incluye de forma
preferente como mínimo un procesador, tal como el procesador (552).
Pueden proporcionarse procesadores adicionales, tal como un
procesador auxiliar para administrar la entrada y salida, un
procesador auxiliar para llevar a cabo operaciones matemáticas de
coma flotante, un microprocesador especial que tenga una
arquitectura apropiada para la ejecución rápida de algoritmos de
procesamiento de señal (por ejemplo, procesador de señal digital),
un procesador esclavo subordinado al sistema de procesamiento
principal (por ejemplo, procesador posterior), un microprocesador
adicional o controlador para sistemas de procesadores duales o
múltiples, o un coprocesador. Dichos procesadores auxiliares pueden
ser procesadores discretos o pueden estar integrados con el
procesador (552).
El procesador (552) está conectado de forma
preferente a un bus de comunicaciones (554). El bus de
comunicaciones (554) puede incluir un canal de datos para facilitar
la transferencia de información entre componentes de almacenamiento
y otro tipo de componentes del sistema informático (550). El bus de
comunicaciones (554) puede comprender un conjunto de señales
utilizadas para la comunicación con el procesador (552), incluyendo
un bus de datos, un bus de direcciones, y un bus de control (no
mostrado). El bus de comunicaciones (554) puede comprender
cualquier arquitectura de bus estándar o no estándar como, por
ejemplo, arquitecturas de bus que estén en conformidad con la
arquitectura estándar industrial ("ISA"), la arquitectura
estándar industrial extendida ("EISA"), Arquitectura de
Microcanales ("MCA"), bus local de interconexión de componentes
periféricos ("PCI"), o estándares promulgados por el Instituto
de Ingenieros Eléctricos y Electrónicos ("IEEE") incluyendo el
bus de interfaz de propósito general IEEE 488 ("GPIB"), IEEE
696/S-100, y similares.
El sistema informático (550) incluye de forma
preferente una memoria principal (556) y puede incluir también una
memoria secundaria (558). La memoria principal (556) proporciona
almacenamiento de instrucciones y datos para programas que se
ejecutan en el procesador (552). La memoria principal (556) es de
manera típica una memoria basada en semiconductores como una
memoria de acceso aleatorio dinámica ("DRAM") y/o memoria de
acceso aleatorio estática ("SRAM"). Otros tipos de memoria
basada en semiconductores incluyen, por ejemplo, la memoria de
acceso aleatorio dinámica sincrónica ("SDRAM"), memoria de
acceso aleatorio dinámica Rambus ("RDRAM"), memoria de acceso
aleatorio ferroeléctrico ("FRAM"), y similares, incluyendo la
memoria de solo lectura ("ROM").
La memoria secundaria (558) puede incluir de
forma opcional una unidad de disco duro (560) y/o una unidad de
almacenamiento extraíble (562), por ejemplo, una unidad de discos
flexibles o "floppy", una unidad de cintas magnéticas, una
unidad de discos compactos ("CD"), una unidad de disco versátil
digital ("DVD"), etc. La unidad de almacenamiento extraíble
(562) lee y/o escribe en un medio de almacenamiento extraíble (564)
de un modo bien conocido. El medio de almacenamiento extraíble
(564) puede ser, por ejemplo, un disco flexible o "floppy",
una cinta magnética, CD, DVD, etc.
El medio de almacenamiento extraíble (564) es
preferentemente un medio legible por un ordenador que tiene
almacenado un código ejecutable por un ordenador (es decir,
software) y/o datos. El software o datos almacenados en el medio de
almacenamiento extraíble (564) es leído en el sistema informático
(550) como señales de comunicación eléctricas (578).
En realizaciones alternativas, la memoria
secundaria (558) puede incluir otros medios similares para permitir
que los programas informáticos u otro tipo de datos o instrucciones
sean cargados en el sistema informático (550). Dichos medios pueden
incluir, por ejemplo, un medio de almacenamiento externo (572) y una
interfaz (570). Ejemplos de medios de almacenamiento externo (572)
pueden incluir una unidad de disco duro externa o una unidad óptica
externa, o una unidad magneto-óptica externa.
Otros ejemplos de memoria secundaria (558)
pueden incluir memorias basadas en semiconductores como una memoria
de solo lectura programable ("PROM"), memoria de solo lectura
programable y borrable ("EPROM"), memoria de solo lectura
borrable de forma eléctrica ("EEPROM"), o memoria flash
(memoria orientada a bloques similar a la EEPROM). También se
incluye cualquier otro tipo de unidades de almacenamiento extraíble
(572) e interfaces (570), que permitan que el software y los datos
sean trasferidos desde la unidad de almacenamiento extraíble (572)
hasta el sistema informático (550).
\newpage
El sistema informático (550) puede incluir
además una interfaz de comunicación (574). La interfaz de
comunicación (574) permite que el software y los datos sean
transferidos entre el sistema informático (550) y los dispositivos
externos (por ejemplo, impresoras), redes, o fuentes de información.
Por ejemplo, un programa o código ejecutable puede ser transferido
al sistema informático (550) desde un servidor de red a través de
una interfaz de comunicaciones (574). Ejemplos de interfaz de
comunicaciones (574) incluyen un módem, una tarjeta de interfaz de
red ("NIC"), un puerto de comunicaciones, un puerto o tarjeta
PCMCIA, una interfaz de infrarrojos, y un fire-wire
IEEE 1394, para nombrar unos pocos.
La interfaz de comunicaciones (574) implementa
de forma preferente estándares de protocolo promulgados por la
industria, tal como los estándares Ethernet IEEE 802, canal de fibra
óptica, línea de subscriptor digital ("DSL"), línea de
subscriptor digital asincrónica ("ADSL"), transmisión de rama,
modo de transferencia asincrónica ("ATM"), red de servicios
digitales integrados ("ISDN"), servicios de comunicaciones
personales ("PCS"), protocolo de control de
transmisión/protocolo de Internet ("TCP/IP"), protocolo de
Internet de línea serie/protocolo punto a punto ("SLIP/PPP"),
etc., pero también puede implementar protocolos de interfaz no
estándar o personalizados.
El software y los datos transferidos a través de
la interfaz de comunicaciones (574) tienen forma de manera general
de señales de comunicación eléctricas (578). Dichas señales (578)
son suministradas a una interfaz de comunicaciones (574) mediante
un canal de comunicación (576). Dicho canal de comunicación (576)
transporta las señales (578) y puede ser implementado utilizando
una gran variedad de medios de comunicación incluyendo cables,
fibras ópticas, líneas telefónicas convencionales, enlaces de
telefonía móvil, enlaces de radiofrecuencia (RF), o enlaces
infrarrojos, para nombrar unos pocos ejemplos.
El código ejecutable por el ordenador (es decir,
programas informáticos o software) es almacenado en la memoria
principal (556) y/o la memoria secundaria (558). Los programas
informáticos también pueden ser recibidos mediante una interfaz de
comunicaciones (574) y almacenados en la memoria principal (556) y/o
la memoria secundaria (558). Dichos programas informáticos, cuando
son ejecutados, permiten al sistema informático (550) llevar a cabo
las numerosas funciones tal como han sido descritas
anteriormente.
En esta descripción, el término "medio legible
por ordenador" es utilizado para referirse a cualquier medio
utilizado para proporcionar un código ejecutable por ordenador (por
ejemplo, software o programas informáticos) al sistema informático
(550). Ejemplos de dichos medios incluyen la memoria principal
(556), la memoria secundaria (558) (incluyendo la unidad de disco
duro (560), el medio de almacenamiento extraíble (564), y el medio
de almacenamiento externo (572)), y cualquier dispositivo
periférico acoplado de forma comunicativa con la interfaz de
comunicación (574) (incluyendo un servidor de información de red u
otro dispositivo de red). Dichos medios legibles por ordenador son
medios para proporcionar código ejecutable, instrucciones de
programación, y software al sistema informático (550).
En una realización que es implementada
utilizando software, el mismo puede ser almacenado en un medio
legible por ordenador y cargado en el sistema informático (550)
mediante una unidad de almacenamiento extraíble (562), la interfaz
(570), o la interfaz de comunicaciones (574). En este tipo de
realización, el software es cargado en el sistema informático (550)
en forma de señales de comunicación eléctricas (578). El software,
cuando es ejecutado por el procesador (552), provoca de forma
preferente que dicho procesador (552) lleve a cabo las
características y funciones inventivas anteriormente descritas.
Varios ejemplos también pueden ser implementados
principalmente en hardware que utiliza, por ejemplo, componentes
tales como circuitos integrados específicos de aplicación
("ASICs"), o disposiciones de puertas programables de campo
("FPGAs"). La implementación de una máquina en estado hardware
capaz de llevar a cabo las funciones descritas en la presente
descripción resultará evidente para las personas especializadas en
la técnica. Varios ejemplos pueden ser implementados utilizando una
combinación de hardware y software.
Otras realizaciones preferentes de la presente
invención se indicarán a continuación en los siguientes
párrafos:
Una primera realización preferente de la
presente invención consiste en un método para conseguir seguridad
mejorada en la reprogramación de dispositivos de comunicación sin
cables, comprendiendo dicho método las siguientes etapas: recibir
una solicitud de autorización de un dispositivo de comunicación sin
cables reprogramable en comunicación con un dispositivo de
reprogramación, teniendo la solicitud de autorización un
identificador único para el dispositivo de comunicación sin cables
reprogramable; consultar un área de almacenamiento de datos para
conseguir información de reprogramación correspondiente al
dispositivo de comunicación sin cables reprogramable; determinar el
estado de programación actual de dicho dispositivo de comunicación
sin cables reprogramable; y enviar una respuesta de autorización al
dispositivo de comunicación sin cables reprogramable basada en la
situación de programación actual.
En un primer aspecto de la primera realización
adicional preferente de la presente invención, dicha respuesta de
autorización deniega la reprogramación.
En un segundo aspecto de la primera realización
adicional preferente de la presente invención dicha respuesta de
autorización permite la reprogramación.
En un tercer aspecto de la primera realización
adicional preferente de la presente invención dicha respuesta de
autorización permite la reprogramación parcial.
En un cuarto aspecto de la primera realización
adicional preferente de la presente invención dicho método
comprende además las siguientes etapas: almacenar la solicitud de
autorización y la respuesta de autorización en el área de
almacenamiento de datos, y asociar la solicitud de autorización y la
respuesta de autorización con el dispositivo de comunicación sin
cables reprogramable que efectúa la solicitud.
En un quinto aspecto de la primera realización
adicional preferente de la presente invención dicha solicitud de
autorización comprende información de contacto para el dispositivo
de reprogramación y dicho método comprende además las etapas
siguientes: envío de una clave privada al dispositivo de
comunicación sin cables reprogramable; y envío de la clave privada
al dispositivo de reprogramación, de manera que las claves privadas
son convertidas por los respectivos dispositivos y comparadas para
determinar la respuesta de autorización de reprogramación.
Una segunda realización adicional preferente de
la presente invención consiste en un soporte que puede ser leído
por ordenador, que tiene almacenadas en el mismo una o varias
secuencias de instrucciones para hacer que uno o varios
microprocesadores lleven a cabo las etapas de mejora de la seguridad
en la reprogramación de dispositivos de comunicación sin cables,
comprendiendo dichas etapas: recepción de una solicitud de
autorización desde un dispositivo de comunicación sin cables
reprogramable, teniendo la solicitud de autorización un
identificador único para el dispositivo de comunicación sin cables
reprogramable que efectúa la solicitud; consultar un área de
almacenamiento de datos para conseguir información de reprogramación
correspondiente al dispositivo de comunicación sin cables
reprogramable; determinar la situación de programación actual del
dispositivo de comunicación sin cables reprogramable; y enviar una
respuesta de autorización al dispositivo de comunicación sin cables
reprogramable basada en la situación de programación actual.
En un primer aspecto de la segunda realización
adicional preferente de la presente invención, dicha respuesta de
autorización deniega la reprogramación.
En un segundo aspecto de la segunda realización
adicional preferente de la presente invención dicha respuesta de
autorización permite la reprogramación.
En un tercer aspecto de la segunda realización
adicional preferente de la presente invención dicha respuesta de
autorización permite reprogramación parcial.
En un cuarto aspecto de la segunda realización
adicional preferente de la presente invención, dicho soporte
legible por ordenador comprende además instrucciones para llevar a
cabo las siguientes etapas: almacenamiento de la solicitud de
autorización y de la respuesta de autorización en el área de
almacenamiento de datos; y asociación de la solicitud de
autorización y respuesta de autorización con el dispositivo de
comunicación sin cables reprogramable que efectúa la solicitud.
En un quinto aspecto de la segunda realización
adicional preferente de la presente invención dicha solicitud de
autorización comprende información de contacto para el dispositivo
de reprogramación y dicho soporte legible por ordenador comprende
además instrucciones para llevar a cabo las siguientes etapas:
enviar una clave privada al dispositivo de comunicación sin cables
reprogramable; y enviar la clave privada al dispositivo de
reprogramación, de manera que las claves privadas son convertidas
por los respectivos dispositivos y comparadas para determinar la
respuesta de autorización de reprogramación.
Una tercera realización adicional preferente de
la presente invención consiste en un sistema para conseguir
seguridad mejorada en la reprogramación de dispositivos de
comunicación sin cables, comprendiendo dicho sistema: un
dispositivo de comunicación sin cables reprogramable que tiene un
interfaz serie adaptable para comunicación con un dispositivo de
reprogramación; y un servidor de seguridad acoplado en comunicación
con el dispositivo de comunicación sin cables reprogramable con
intermedio de una red de comunicación sin cables, de manera que el
dispositivo de comunicación sin cables reprogramable en respuesta a
una comunicación desde el dispositivo de reprogramación establece
contacto con el servidor de seguridad para la autorización para su
reprogramado.
En un primer aspecto de la tercera realización
adicional preferente de la presente invención, dicho sistema
comprende además un área de almacenamiento de datos acoplada al
servidor de seguridad, estando configurada el área de
almacenamiento datos para almacenar información relacionada con la
reprogramación de los dispositivos de comunicación sin cables
reprogramables.
En un segundo aspecto de la tercera realización
adicional preferente de la presente invención dicho dispositivo de
comunicación sin cables reprogramable comprende un código de acceso,
proporcionando el código de acceso autorización para reprogramar el
dispositivo de comunicación sin cables reprogramable. Dicho
dispositivo de comunicación sin cables reprogramable puede ser
configurado para denegar la reprogramación cuando se proporciona el
código de autorización.
En un tercer aspecto de la tercera realización
adicional preferente de la presente invención dicho dispositivo de
comunicación sin cables reprogramable comprende además un indicador
de acceso, de manera que el indicador de acceso es modificable por
el servidor de seguridad. Dicho indicador de acceso puede ser
dispuesto para permitir al aparato manual el autorizar la
reprogramación. Dicho indicador de acceso puede ser dispuesto
también para requerir al servidor de seguridad la autorización de
la reprogramación del aparto manual. Además, dicho indicador de
acceso puede ser dispuesto para permitir la reprogramación sin
autorización.
Una cuarta realización adicional preferente de
la presente invención consiste en un método para mejorar la
seguridad en la reprogramación de dispositivos de comunicación sin
cables, comprendiendo el método las siguientes etapas: recibir una
solicitud de reprogramación en un dispositivo de comunicación sin
cables reprogramable; enviar una pregunta desde el dispositivo de
comunicación sin cables reprogramable a un servidor de seguridad de
soporte con intermedio de un medio de comunicación sin cables;
recibir una respuesta de dicho servidor de seguridad con intermedio
de los medios de comunicación sin cables , cuya respuesta autoriza o
deniega la solicitud de reprogramación; y responder a la solicitud
de reprogramación de acuerdo con la respuesta.
Una quinta realización adicional preferente de
la presente invención consiste en un método para proporcionar
acceso de programación variable a un dispositivo de comunicación sin
cables reprogramable, comprendiendo dicho método las siguientes
etapas: compilar un dispositivo de código operativo ("opcode")
que comprende como mínimo un código operativo remoto y una carga de
datos; y enviar el conjunto de código operativo remoto a una serie
de aparatos manuales, de manera que el proceso del equipo de código
operativo remoto provoca que cada equipo manual modifique su nivel
de seguridad de reprogramación.
En un primer aspecto de la quinta realización
adicional preferente de la presente invención, dicha modificación
comprende la desconexión de la seguridad de reprogramación durante
un intervalo de tiempo determinado.
En un segundo aspecto de dicha quinta
realización adicional preferente de la presente invención, dicha
modificación comprende permitir al equipo manual el autorizar la
reprogramación del equipo manual.
En un tercer aspecto de la quinta realización
adicional preferente de la presente invención, dicha modificación
comprende el requerir a un servidor de seguridad el autorizar la
reprogramación del aparato manual.
Mientras que los sistemas y métodos particulares
dados a conocer y descritos en detalle en la presente descripción
son totalmente capaces de lograr los objetivos de la presente
invención anteriormente mencionados, debe comprenderse que la
descripción y los dibujos mostrados son representativos de la
materia en cuestión que es ampliamente contemplada por la presente
invención. Debe comprenderse además que el alcance de la presente
invención engloba otras realizaciones que resultarán evidentes para
las personas especializadas en la técnica, y que el alcance de la
presente invención no está limitado más que por las reivindicaciones
adjuntas.
Claims (10)
1. Método implementado por ordenador para
conseguir acceso de reprogramación variable a un dispositivo de
comunicación sin cables reprogramable (10, 12, 14), cuyo método
comprende las siguientes etapas:
compilar un equipo de código operativo remoto
comprendiendo como mínimo un código operativo remoto y una carga de
datos; y
enviar el equipo de código operativo remoto a
una serie de dispositivos de comunicación sin cables reprogramables
(10, 12, 14), de manera que el proceso del equipo de código
operativo remoto provoca que cada uno de los dispositivos de
comunicación sin cables reprogramables (10, 12, 14) modifique su
nivel de seguridad de reprogramación.
2. Método, según la reivindicación 1, en el que
la modificación comprende la desconexión de la seguridad de
reprogramación.
3. Método, según la reivindicación 1, en el que
la modificación comprende la desconexión de la seguridad de
reprogramación durante un intervalo de tiempo determinado.
4. Método, según la reivindicación 1, en el que
la modificación comprende la conexión de la seguridad de
reprogramación.
5. Método, según la reivindicación 1, en el que
la modificación comprende permitir que el dispositivo de
comunicación sin cables reprogramable (10, 12, 14) autorice la
reprogramación.
6. Método implementado por ordenador para la
autorización de reprogramación de un dispositivo de comunicación
sin cables reprogramable (10, 12, 14), cuyo método comprende las
siguientes etapas:
recibir una solicitud de reprogramación de un
dispositivo de reprogramación (45);
obtener información de identificación del
dispositivo de reprogramación (45);
crear una carga de datos que comprende la
identificación de información del dispositivo de reprogramación
(45) e información con respecto al dispositivo de comunicación sin
cables reprogramable (10, 12, 14);
compilar un equipo de código operativo servidor
comprendiendo, como mínimo, un código operativo de servidor y la
carda de datos;
enviar el conjunto de código operativo del
servidor a un servidor de seguridad (35);
recibir como mínimo una instrucción ejecutable
desde el servidor de seguridad (35) como respuesta al conjunto de
código operativo;
ejecutar la instrucción o instrucciones
ejecutables; y
responder a la solicitud de reprogramación del
dispositivo de reprogramación (45) de acuerdo con la instrucción o
instrucciones ejecutadas.
7. Método, según la reivindicación 6, en el que
la respuesta a la solicitud de reprogramación del dispositivo de
reprogramación (45) comprende el permitir la reprogramación por el
dispositivo de reprogramación (45).
8. Método, según la reivindicación 6, en el que
la respuesta a la solicitud de reprogramación del dispositivo de
reprogramación (45) comprende permitir la reprogramación parcial por
el dispositivo de reprogramación (45).
9. Método, según la reivindicación 6, en el que
la respuesta a la solicitud de reprogramación desde el dispositivo
de reprogramación (45) comprende la denegación de la reprogramación
por el dispositivo de reprogramación (45).
10. Método, según la reivindicación 6, en el que
la recepción de la instrucción o instrucciones ejecutables desde el
servidor de seguridad (35) comprende:
recibir un juego de códigos operativos remotos
desde el servidor de seguridad (35), teniendo el conjunto de
códigos operativos remotos una carga de datos y como mínimo un
código operativo remoto;
extraer la carga de datos del conjunto de código
operativo remoto; y
traducir el código o códigos operativos remotos
en un mínimo de una instrucción ejecutable.
Applications Claiming Priority (10)
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 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2284112T3 true ES2284112T3 (es) | 2007-11-01 |
Family
ID=27542295
Family Applications (9)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02749158T Expired - Lifetime ES2300454T3 (es) | 2001-07-26 | 2002-07-22 | Sistema y metodo para organizar un software para un dispositivo de comunicacion inalambrica actualizable sobre el terreno. |
ES02749167T Expired - Lifetime ES2249602T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables. |
ES02749166T Expired - Lifetime ES2299587T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y metodo para compactar secciones de codigos en el software de un dispositivo de comunicacion inalambrico actualizable sobre el terreno. |
ES02749163T Expired - Lifetime ES2263796T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y metodo para el diagnostico en servicio del software de un sistema de dispositivo de comunicaciones sin cables. |
ES02749159T Expired - Lifetime ES2247355T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y procedimiento para la descarga sobre el terreno de una seccion de codigos de software de un dispositivo de comunicacion sin hilos. |
ES02751472T Expired - Lifetime ES2263799T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion telefonica punto por punto. |
ES05018919T Expired - Lifetime ES2284112T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. |
ES02762622T Expired - Lifetime ES2253553T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion bidireccional y ejecucion de conjuntos de instrucciones dinamicas. |
ES02741113T Expired - Lifetime ES2248568T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02749158T Expired - Lifetime ES2300454T3 (es) | 2001-07-26 | 2002-07-22 | Sistema y metodo para organizar un software para un dispositivo de comunicacion inalambrica actualizable sobre el terreno. |
ES02749167T Expired - Lifetime ES2249602T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables. |
ES02749166T Expired - Lifetime ES2299587T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y metodo para compactar secciones de codigos en el software de un dispositivo de comunicacion inalambrico actualizable sobre el terreno. |
ES02749163T Expired - Lifetime ES2263796T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y metodo para el diagnostico en servicio del software de un sistema de dispositivo de comunicaciones sin cables. |
ES02749159T Expired - Lifetime ES2247355T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y procedimiento para la descarga sobre el terreno de una seccion de codigos de software de un dispositivo de comunicacion sin hilos. |
ES02751472T Expired - Lifetime ES2263799T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion telefonica punto por punto. |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02762622T Expired - Lifetime ES2253553T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion bidireccional y ejecucion de conjuntos de instrucciones dinamicas. |
ES02741113T Expired - Lifetime ES2248568T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. |
Country Status (9)
Country | Link |
---|---|
EP (12) | EP1410188A2 (es) |
JP (11) | JP4104546B2 (es) |
KR (10) | KR100940178B1 (es) |
CN (10) | CN1288553C (es) |
AT (9) | ATE387658T1 (es) |
AU (9) | AU2002319568A1 (es) |
DE (7) | DE60205755T2 (es) |
ES (9) | ES2300454T3 (es) |
WO (10) | WO2003010656A2 (es) |
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 (en) | 2003-06-04 | 2018-08-01 | Qualcomm Incorporated | Network having customizable generators of sofware updates and mobile electronic devices having customizable updating software |
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 (en) * | 2004-05-18 | 2013-07-17 | Kyocera Corporation | Modular data components for wireless communication devices |
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 (en) * | 2004-11-17 | 2013-04-10 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Updating configuration parameters in a mobile terminal |
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 (en) | 2006-06-08 | 2009-02-18 | Hewlett-Packard Development Company, L.P. | Device management in a network |
EP2047420A4 (en) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE |
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/en 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/en 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/en 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/en 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/en 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/en not_active Expired - Lifetime
- 2002-07-23 EP EP02749159A patent/EP1410190B1/en 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/en 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/en 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/en not_active Expired - Lifetime
- 2002-07-25 EP EP05018919A patent/EP1601217B1/en 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/en not_active Expired - Lifetime
-
2007
- 2007-11-22 JP JP2007303740A patent/JP2008108268A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2284112T3 (es) | Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. | |
JP5072992B2 (ja) | 無線によるエリアコード更新のためのシステムおよび方法 | |
JP4728359B2 (ja) | ハンドセットの再プロビジョニングおよび再プログラミングにおけるセキュリティを改善するシステムおよび方法 | |
CN101965597B (zh) | 用于安装和取回已链接的mifare应用的方法和设备 | |
JP3766052B2 (ja) | 高級プログラミング言語を用いたマイクロコントローラ | |
JP5005811B2 (ja) | アプリケーションを携帯電話にセキュアに伝送するための方法、システム及びトラステッド・サービス・マネージャ | |
ES2743045T3 (es) | Sistema para acceder a un terminal de PDV, método para descargar y actualizar aplicaciones y método para llevar a cabo una operación electrónica usando un sistema de ese tipo | |
ES2399120B1 (es) | Método para cambiar suscripciones de un dispositivo personal que soporta múltiples suscripciones | |
KR100718068B1 (ko) | 어플리케이션에 의한 기억영역의 사용 관리 방법 | |
JPWO2008050439A1 (ja) | アプリケーション管理装置及びアプリケーション管理方法 | |
US20100069038A1 (en) | Communication system and communication method | |
KR100697174B1 (ko) | 무선 파라메트릭 데이타 및 규제 데이타에 대한 근거리 및원거리 액세스 및 그 방법 | |
WO2005121975A1 (ja) | 移動機、及び、アクセス制御方法 | |
EP2218244A2 (en) | Sharing or reselling nfc applications among mobile communication devices | |
WO2006120938A1 (ja) | メモリカード、アプリケーションプログラム保持方法、及び保持プログラム | |
US20150220729A1 (en) | Method for Activating an Operating System in a Security Module | |
JP2006514788A (ja) | 移動体に提供されたアプリケーションの制御 | |
US20060080655A1 (en) | System and method for post-issuance code update employing embedded native code | |
US20180300120A1 (en) | Method for updating a package | |
CN109040169A (zh) | 管理配置文件的通信装置和方法 | |
FI106495B (fi) | Verkkoelementti | |
ES2243096T3 (es) | Procedimiento, tarjeta chip y aparato para una interfaz logica entre dos aplicaciones. | |
CN100576225C (zh) | 外部存储器管理装置和外部存储器管理方法 | |
IT201800004293A1 (it) | Procedimento di gestione di sistemi operativi multipli in carte a circuito integrato, corrispondente sistema e prodotto informatico | |
KR20160134419A (ko) | 복수의 가입자 식별 정보를 포함하는 스마트 카드를 이용한 가입자 식별 정보 변경 방법, 단말 및 컴퓨터 프로그램 |