ES2248568T3 - 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.Info
- Publication number
- ES2248568T3 ES2248568T3 ES02741113T ES02741113T ES2248568T3 ES 2248568 T3 ES2248568 T3 ES 2248568T3 ES 02741113 T ES02741113 T ES 02741113T ES 02741113 T ES02741113 T ES 02741113T ES 2248568 T3 ES2248568 T3 ES 2248568T3
- Authority
- ES
- Spain
- Prior art keywords
- code
- reprogramming
- wireless communication
- authorization
- section
- 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 82
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 title 1
- 230000006854 communication Effects 0.000 claims abstract description 133
- 238000004891 communication Methods 0.000 claims abstract description 133
- 230000008672 reprogramming Effects 0.000 claims abstract description 107
- 238000013475 authorization Methods 0.000 claims abstract description 51
- 230000004044 response Effects 0.000 claims abstract description 40
- 238000013500 data storage Methods 0.000 claims abstract description 7
- 238000003860 storage Methods 0.000 claims description 54
- 230000036961 partial effect Effects 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 131
- 238000012937 correction Methods 0.000 description 55
- 230000008569 process Effects 0.000 description 42
- 238000007726 management method Methods 0.000 description 29
- 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
- 239000000284 extract Substances 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 5
- 230000032258 transport 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
- 238000012423 maintenance Methods 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
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect 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
- 239000000835 fiber Substances 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 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
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003750 conditioning effect Effects 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
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance 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
- 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/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
- 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
- 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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (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)
- Test And Diagnosis Of Digital Computers (AREA)
- Circuits Of Receivers In General (AREA)
- Debugging And Monitoring (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Selective Calling Equipment (AREA)
Abstract
Método para mejorar la seguridad en la reprogramación de dispositivos de comunicación sin cables (10, 12, 14) que comprende las siguientes etapas: recibir una solicitud de autorización de un dispositivo de comunicación sin cables reprogramable (10, 12, 14) en comunicación con el dispositivo de reprogramación (45), poseyendo la solicitud de autorización un identificador único (55) para el dispositivo de comunicación sin cables solicitante reprogramable (10, 12, 14); consultar un área de almacenamiento de datos para reprogramar información que pertenece al dispositivo de comunicación sin cables reprogramable (10, 12, 14); determinar la situación de programación actual del dispositivo de comunicación sin cables reprogramable (10, 12, 14); y enviar una respuesta de autorización al dispositivo de autorización sin cables reprogramable (10, 12, 14) basada en la situación de programación actual.
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
"reprogramació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 sistemas y
métodos así como un dispositivo que puede ser leído por ordenador,
de acuerdo con las reivindicaciones independientes 1, 7, 13 y 21,
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;
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;
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.
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:
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).
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
anali-
zada.
zada.
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).
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).
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.
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.
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).
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.
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 (21)
1. Método para mejorar la seguridad en la
reprogramación de dispositivos de comunicación sin cables (10, 12,
14) que comprende las siguientes etapas:
recibir una solicitud de autorización de un
dispositivo de comunicación sin cables reprogramable (10, 12, 14) en
comunicación con el dispositivo de reprogramación (45), poseyendo la
solicitud de autorización un identificador único (55) para el
dispositivo de comunicación sin cables solicitante reprogramable
(10, 12, 14);
consultar un área de almacenamiento de datos para
reprogramar información que pertenece al dispositivo de comunicación
sin cables reprogramable (10, 12, 14);
determinar la situación de programación actual
del dispositivo de comunicación sin cables reprogramable (10, 12,
14); y
enviar una respuesta de autorización al
dispositivo de autorización sin cables reprogramable (10, 12, 14)
basada en la situación de programación actual.
2. Método, según la reivindicación 1, en el que
la respuesta de autorización niega la reprogramación.
3. Método, según la reivindicación 1, en el que
la respuesta de autorización permite la reprogramación.
4. Método, según la reivindicación 1, en el que
la respuesta de autorización permite la reprogramación parcial.
5. Método, según la reivindicación 1, que
comprende 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
solicitante sin cables reprogramable (10, 12, 14).
6. Método, según la reivindicación 1, en el que
la solicitud de autorización comprende información de contacto para
el dispositivo en reprogramación, comprendiendo además las
siguientes etapas:
enviar una clave privada al dispositivo de
comunicación sin cables reprogramable (10, 12, 14); y
enviar la clave privada al dispositivo de
reprogramación (45), de manera que las claves privadas son
convertidas por los respectivos dispositivos (10, 12, 14 y 45) y
comparadas para determinar la respuesta de autorización de
reprogramación.
7. Dispositivo susceptible de ser leído por
ordenador que tiene almacenadas una o varias secuencias de
instrucciones para provocar que uno o varios microprocesadores
realicen las etapas para conseguir seguridad mejorada en la
reprogramación de dispositivos de comunicación sin cables (10, 12,
14), comprendiendo dichas etapas:
recibir una solicitud de autorización de un
dispositivo de comunicación sin cables reprogramable (10, 12, 14),
poseyendo la solicitud de autorización un identificador único (55)
para el dispositivo de comunicación sin cables reprogramable
solicitante (10, 12, 14);
consultar un área de almacenamiento de datos para
reprogramar información que pertenece al dispositivo de comunicación
sin cables reprogramables (10, 12, 14);
determinar la situación de programación actual
del dispositivo de comunicación sin cables reprogramable (10, 12,
14); y
enviar una respuesta de autorización al
dispositivo de comunicación sin cables reprogramable (10, 12, 14)
basada en la situación de programación actual.
8. Dispositivo susceptible de ser leído por
ordenador, según la reivindicación 7, en el que la respuesta de
autorización niega la reprogramación.
9. Dispositivo susceptible de ser leído por
ordenador, según la reivindicación 7, en el que la respuesta de
autorización permite la reprogramación.
10. Dispositivo susceptible de ser leído por
ordenador, según la reivindicación 7, en el que la respuesta de
autorización permite la reprogramación parcial.
\newpage
11. Dispositivo susceptible de ser leído por
ordenador, según la reivindicación 7, que comprende además
instrucciones para llevar a cabo 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 solicitante (10, 12, 14).
12. Dispositivo susceptible de ser leído por
ordenador, según la reivindicación 7, en el que la solicitud de
autorización comprende información de contacto para el dispositivo
de reprogramación, comprendiendo además instrucciones para llevar a
cabo las siguientes etapas:
enviar una clave privada al dispositivo de
comunicación sin cables reprogramable (10, 12, 14); y
enviar la clave privada al dispositivo de
reprogramación (45), de manera que las claves privadas se convierten
por respectivos dispositivos (10, 12, 14 y 45) y se comparan para
determinar la respuesta de autorización de reprogramación.
13. Sistema para conseguir seguridad mejorada en
la reprogramación de dispositivos de comunicación sin cables (10,
12, 14), cuyo sistema comprende:
un dispositivo de comunicación sin cables
reprogramable (10, 12, 14) que tiene un interfaz en serie adaptable
para comunicación con un dispositivo de reprogramación (45); y
un servidor de seguridad (35) acoplado en
comunicación con el dispositivo de comunicación sin cables
reprogramable (45) sobre una red de comunicación sin cables, de
manera que el dispositivo de comunicación sin cables reprogramable
(10, 12, 14) en respuesta a una comunicación del dispositivo de
reprogramación (45), establece contacto con el servidor de seguridad
(35) para autorización para ser reprogramado.
14. Sistema, según la reivindicación 13, que
comprende además un área de almacenamiento de datos acoplada con el
servidor de seguridad (35), estando el área de almacenamiento de
datos configurada para almacenar información relacionada con la
reprogramación de dispositivos de comunicación sin cables
reprogramables (10, 12, 14).
15. Sistema, según la reivindicación 13, en el
que el dispositivo de comunicación sin cables reprogramable (10, 12,
14) comprende un código de acceso (45), proporcionando el código de
acceso (45) autorización para reprogramar el dispositivo de
comunicación sin cables reprogramable (10, 12, 14).
16. Sistema, según la reivindicación 15, en el
que el dispositivo de comunicación sin cables reprogramable (10, 12,
14) está configurado para negar la reprogramación cuando se
proporciona el código de autorización.
17. Sistema, según la reivindicación 13, en el
que el dispositivo de comunicación sin cables reprogramable (10, 12,
14) comprende además un indicador de acceso, de manera que el
indicador de acceso es modificable por el servidor de seguridad
(35).
18. Sistema, según la reivindicación 17, en el
que el indicador de acceso es ajustado para permitir que el
dispositivo de comunicación sin cables reprogramable (10, 12, 14)
autorice la reprogramación.
19. Sistema, según la reivindicación 17, en el
que el indicador de acceso es dispuesto para requerir que el
servidor de seguridad (35) autorice la reprogramación del
dispositivo de comunicación sin cables reprogramable (10, 12,
14).
20. Sistema, según la reivindicación 17, en el
que el indicador de acceso es dispuesto para permitir reprogramación
sin autorización.
21. Método para conseguir seguridad mejorada en
la reprogramación de dispositivos de comunicación sin cables (10,
12, 14), cuyo método comprende las siguientes etapas:
recibir una solicitud de reprogramación en un
dispositivo de comunicación sin cables reprogramable (10, 12, 14)
desde un dispositivo de reprogramación (45) conectado a aquél;
enviar una solicitud desde el dispositivo de
comunicación sin cables reprogramable (10, 12, 14) a un servidor de
seguridad portador (35) con intermedio de medios de comunicación sin
cables (20, 22);
recibir respuesta del servidor de seguridad (35)
con intermedio de los medios (20, 22) de comunicación sin cables,
autorizando o negando la respuesta dicha solicitud de
reprogramación; y
responder a la solicitud de reprogramación de
acuerdo con la respuesta.
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 | ||
US916460 | 2001-07-26 | ||
US917026 | 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/916,460 US7159214B2 (en) | 2001-07-26 | 2001-07-26 | System and method for compacting field upgradeable wireless communication device software code sections |
US09/927,131 US7143407B2 (en) | 2001-07-26 | 2001-08-10 | System and method for executing wireless communications device dynamic instruction sets |
US927131 | 2001-08-10 | ||
US09/969,305 US7386846B2 (en) | 2001-07-26 | 2001-10-02 | System and method for the management of wireless communications device system software downloads in the field |
US969305 | 2001-10-02 | ||
PCT/IB2002/002906 WO2003010942A2 (en) | 2001-07-26 | 2002-07-25 | System and method for improved security in a handset reprovisioning and reprogramming |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2248568T3 true ES2248568T3 (es) | 2006-03-16 |
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. |
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. |
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. |
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. |
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. |
ES02762622T Expired - Lifetime ES2253553T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion bidireccional y ejecucion de conjuntos de instrucciones dinamicas. |
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. |
ES02751472T Expired - Lifetime ES2263799T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion telefonica punto por punto. |
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 (8)
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. |
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. |
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. |
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. |
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. |
ES02762622T Expired - Lifetime ES2253553T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion bidireccional y ejecucion de conjuntos de instrucciones dinamicas. |
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. |
ES02751472T Expired - Lifetime ES2263799T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion telefonica punto por punto. |
Country Status (9)
Country | Link |
---|---|
EP (12) | EP1410189B1 (es) |
JP (11) | JP2005505813A (es) |
KR (10) | KR100940178B1 (es) |
CN (10) | CN1275150C (es) |
AT (9) | ATE387658T1 (es) |
AU (9) | AU2002319569A1 (es) |
DE (7) | DE60205755T2 (es) |
ES (9) | ES2300454T3 (es) |
WO (10) | WO2003010663A2 (es) |
Families Citing this family (39)
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 |
USRE48433E1 (en) | 2005-01-27 | 2021-02-09 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
US8422667B2 (en) | 2005-01-27 | 2013-04-16 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
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 |
CA2577244A1 (en) * | 2005-04-18 | 2006-10-26 | Research In Motion Limited | Method and system for controlling software version updates |
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 | 中兴通讯股份有限公司 | 一种通信系统软件版本的平滑升级方法 |
WO2007105274A1 (ja) * | 2006-03-10 | 2007-09-20 | Fujitsu Limited | 適用パッチ選別装置及び適用パッチ選別方法 |
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 | 주식회사 케이티 | 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템 |
EP2417202A2 (en) | 2009-04-07 | 2012-02-15 | Sensient Colors LLC | Self-dispersing particles and methods for making and using the same |
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 |
US9477585B2 (en) * | 2012-11-09 | 2016-10-25 | Coherent Logix, Incorporated | Real time analysis and control for a multiprocessor system |
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 |
CA3107457A1 (en) | 2018-08-01 | 2020-02-06 | The Chamberlain Group, Inc. | 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株式会社 | 情報処理装置、プログラム更新システム、及びプログラム更新方法 |
US11588924B2 (en) * | 2020-10-29 | 2023-02-21 | Hewlett Packard Enterprise Development Lp | Storage interface command packets over fibre channel with transport and network headers as payloads |
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 AU AU2002319569A patent/AU2002319569A1/en not_active Abandoned
- 2002-07-22 CN CNB028148339A patent/CN1275150C/zh not_active Expired - Fee Related
- 2002-07-22 AT AT02749158T patent/ATE387658T1/de not_active IP Right Cessation
- 2002-07-22 KR KR1020047000719A patent/KR100940178B1/ko not_active IP Right Cessation
- 2002-07-22 EP EP02749158A patent/EP1410189B1/en not_active Expired - Lifetime
- 2002-07-22 KR KR1020047000723A patent/KR100911604B1/ko not_active IP Right Cessation
- 2002-07-22 WO PCT/IB2002/002875 patent/WO2003010663A2/en not_active Application Discontinuation
- 2002-07-22 AU AU2002319572A patent/AU2002319572A1/en not_active Abandoned
- 2002-07-22 WO PCT/IB2002/002866 patent/WO2003010656A2/en active Application Filing
- 2002-07-22 JP JP2003515971A patent/JP2005505813A/ja not_active Withdrawn
- 2002-07-22 KR KR1020047000721A patent/KR100940180B1/ko not_active IP Right Cessation
- 2002-07-22 WO PCT/IB2002/002867 patent/WO2003010658A2/en active IP Right Grant
- 2002-07-22 ES ES02749158T patent/ES2300454T3/es not_active Expired - Lifetime
- 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 AU2002319568A patent/AU2002319568A1/en not_active Abandoned
- 2002-07-22 EP EP02749157A patent/EP1410188A2/en not_active Withdrawn
- 2002-07-22 CN CNB028148320A patent/CN1288553C/zh not_active Expired - Fee Related
- 2002-07-22 JP JP2003515964A patent/JP2004537120A/ja not_active Withdrawn
- 2002-07-22 JP JP2003515966A patent/JP4104546B2/ja not_active Expired - Fee Related
- 2002-07-23 WO PCT/IB2002/002890 patent/WO2003010664A2/en active IP Right Grant
- 2002-07-23 EP EP02749166A patent/EP1410192B1/en not_active Expired - Lifetime
- 2002-07-23 AT AT02749163T patent/ATE327536T1/de not_active IP Right Cessation
- 2002-07-23 KR KR1020047000716A patent/KR100940179B1/ko not_active IP Right Cessation
- 2002-07-23 AU AU2002319570A patent/AU2002319570A1/en not_active Abandoned
- 2002-07-23 ES ES02749166T patent/ES2299587T3/es not_active Expired - Lifetime
- 2002-07-23 CN CNB02814838XA patent/CN1288554C/zh not_active Expired - Fee Related
- 2002-07-23 EP EP05021081A patent/EP1610222B1/en not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002889 patent/WO2003012639A2/en active IP Right Grant
- 2002-07-23 EP EP02749159A patent/EP1410190B1/en not_active Expired - Lifetime
- 2002-07-23 ES ES02749167T patent/ES2249602T3/es not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002869 patent/WO2003010662A2/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 KR KR1020047000726A patent/KR100913659B1/ko not_active IP Right Cessation
- 2002-07-23 JP JP2003515976A patent/JP4176634B2/ja not_active Expired - Fee Related
- 2002-07-23 DE DE60205755T patent/DE60205755T2/de not_active Expired - Lifetime
- 2002-07-23 AU AU2002319577A patent/AU2002319577A1/en not_active Abandoned
- 2002-07-23 AT AT02749167T patent/ATE305632T1/de not_active IP Right Cessation
- 2002-07-23 JP JP2003515972A patent/JP4278513B2/ja not_active Expired - Fee Related
- 2002-07-23 ES ES02749159T patent/ES2247355T3/es not_active Expired - Lifetime
- 2002-07-23 AT AT02749159T patent/ATE302972T1/de not_active IP Right Cessation
- 2002-07-23 JP JP2003517749A patent/JP4310186B2/ja not_active Expired - Fee Related
- 2002-07-23 CN CNB028148371A patent/CN1279447C/zh not_active Expired - Fee Related
- 2002-07-23 EP EP02749167A patent/EP1410193B1/en not_active Expired - Lifetime
- 2002-07-23 EP EP02749163A patent/EP1410209B1/en not_active Expired - Lifetime
- 2002-07-23 DE DE60211704T patent/DE60211704T2/de not_active Expired - Lifetime
- 2002-07-23 ES ES02749163T patent/ES2263796T3/es not_active Expired - Lifetime
- 2002-07-23 AU AU2002319573A patent/AU2002319573A1/en not_active Abandoned
- 2002-07-23 WO PCT/IB2002/002877 patent/WO2003010668A2/en active IP Right Grant
- 2002-07-23 KR KR1020047000725A patent/KR100918162B1/ko not_active IP Right Cessation
- 2002-07-23 AT AT02749166T patent/ATE382159T1/de not_active IP Right Cessation
- 2002-07-23 AU AU2002319576A patent/AU2002319576A1/en not_active Abandoned
- 2002-07-23 DE DE60206389T patent/DE60206389T2/de not_active Expired - Lifetime
- 2002-07-23 CN CNB028148347A patent/CN1235137C/zh not_active Expired - Fee Related
- 2002-07-23 CN CNB028148355A patent/CN1235138C/zh not_active Expired - Fee Related
- 2002-07-25 AT AT05018919T patent/ATE359681T1/de not_active IP Right Cessation
- 2002-07-25 ES ES02762622T patent/ES2253553T3/es not_active Expired - Lifetime
- 2002-07-25 DE DE60211719T patent/DE60211719T2/de not_active Expired - Lifetime
- 2002-07-25 AT AT02762622T patent/ATE310354T1/de not_active IP Right Cessation
- 2002-07-25 DE DE60219536T patent/DE60219536T2/de not_active Expired - Lifetime
- 2002-07-25 EP EP02751472A patent/EP1423959B1/en not_active Expired - Lifetime
- 2002-07-25 WO PCT/IB2002/002905 patent/WO2003010932A2/en active IP Right Grant
- 2002-07-25 ES ES05018919T patent/ES2284112T3/es not_active Expired - Lifetime
- 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 JP JP2003516189A patent/JP4077408B2/ja not_active Expired - Fee Related
- 2002-07-25 DE DE60207429T patent/DE60207429T2/de not_active Expired - Lifetime
- 2002-07-25 DE DE60206055T patent/DE60206055T2/de not_active Expired - Lifetime
- 2002-07-25 AT AT02741113T patent/ATE304272T1/de not_active IP Right Cessation
- 2002-07-25 ES ES02751472T patent/ES2263799T3/es not_active Expired - Lifetime
- 2002-07-25 EP EP05018919A patent/EP1601217B1/en not_active Expired - Lifetime
- 2002-07-25 AU AU2002328167A patent/AU2002328167A1/en not_active Abandoned
- 2002-07-25 EP EP02741113A patent/EP1410665B1/en not_active Expired - Lifetime
- 2002-07-25 JP JP2003516197A patent/JP4106020B2/ja not_active Expired - Fee Related
- 2002-07-25 WO PCT/IB2002/002906 patent/WO2003010942A2/en active IP Right Grant
- 2002-07-25 CN CNB028148401A patent/CN1310488C/zh not_active Expired - Fee Related
- 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 AT AT02751472T patent/ATE327628T1/de not_active IP Right Cessation
- 2002-07-25 KR KR1020047001086A patent/KR100817387B1/ko not_active IP Right Cessation
- 2002-07-25 CN CNB028148398A patent/CN100378661C/zh not_active Expired - Fee Related
- 2002-07-25 KR KR1020047001088A patent/KR100984895B1/ko not_active IP Right Cessation
- 2002-07-25 ES ES02741113T patent/ES2248568T3/es not_active Expired - Lifetime
- 2002-07-25 AU AU2002355308A patent/AU2002355308A1/en not_active Abandoned
- 2002-07-25 WO PCT/IB2002/002912 patent/WO2003013103A2/en active IP Right Grant
-
2007
- 2007-11-22 JP JP2007303740A patent/JP2008108268A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2248568T3 (es) | Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. | |
JP5072992B2 (ja) | 無線によるエリアコード更新のためのシステムおよび方法 | |
KR100718068B1 (ko) | 어플리케이션에 의한 기억영역의 사용 관리 방법 | |
JPWO2008050439A1 (ja) | アプリケーション管理装置及びアプリケーション管理方法 | |
KR100697174B1 (ko) | 무선 파라메트릭 데이타 및 규제 데이타에 대한 근거리 및원거리 액세스 및 그 방법 | |
WO2005121975A1 (ja) | 移動機、及び、アクセス制御方法 | |
KR20130132291A (ko) | eUICC에 SIM 프로파일을 제공하는 방법 및 장치 | |
US9390259B2 (en) | Method for activating an operating system in a security module | |
US20040230801A1 (en) | Data processing device and method and program of same | |
US7117494B2 (en) | System and method for bi-directional communication and execution of dynamic instruction sets | |
JP2006514788A (ja) | 移動体に提供されたアプリケーションの制御 | |
ES2409807A2 (es) | Método para gestionar comunicación sin contacto en un dispositivo de usuario | |
JP5185231B2 (ja) | アクセス管理システムおよびアクセス管理方法 | |
CN109040169A (zh) | 管理配置文件的通信装置和方法 | |
US20060080655A1 (en) | System and method for post-issuance code update employing embedded native code | |
ES2243096T3 (es) | Procedimiento, tarjeta chip y aparato para una interfaz logica entre dos aplicaciones. | |
IT201800004293A1 (it) | Procedimento di gestione di sistemi operativi multipli in carte a circuito integrato, corrispondente sistema e prodotto informatico | |
KR20160134419A (ko) | 복수의 가입자 식별 정보를 포함하는 스마트 카드를 이용한 가입자 식별 정보 변경 방법, 단말 및 컴퓨터 프로그램 | |
KR101057671B1 (ko) | 스마트카드를 이용한 카드 단말기의 업데이트 시스템 및 방법 | |
EP3731548A1 (en) | Distribution of instruction set modules | |
KR20040090566A (ko) | 무선통신단말기에서 스마트카드를 이용한 소프트웨어업그레이드 방법 | |
KR20060094807A (ko) | 텔레메틱스를 위한 무선통신 모듈의 바이너리 파일 다운로드 방법 | |
WO2011121143A1 (es) | Sistema y método de configuración dinámica y remota de dispositivos móviles |