ES2739155T3 - Renovación de registros para aplicaciones cliente instaladas en diferentes dispositivos cliente próximos - Google Patents
Renovación de registros para aplicaciones cliente instaladas en diferentes dispositivos cliente próximos Download PDFInfo
- Publication number
- ES2739155T3 ES2739155T3 ES16718071T ES16718071T ES2739155T3 ES 2739155 T3 ES2739155 T3 ES 2739155T3 ES 16718071 T ES16718071 T ES 16718071T ES 16718071 T ES16718071 T ES 16718071T ES 2739155 T3 ES2739155 T3 ES 2739155T3
- Authority
- ES
- Spain
- Prior art keywords
- client
- client device
- application
- server
- registration
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 61
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000001514 detection method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000010267 cellular communication Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000001404 mediated effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 241000760358 Enodes Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/02—Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Un procedimiento para operar un dispositivo cliente configurado para ejecutar una aplicación cliente que está registrada con un servidor en asociación con un usuario dado, que comprende: obtener (700) una lista de dispositivos cliente en los que la aplicación cliente está registrada con el servidor en asociación con el usuario dado; detectar (705), a través de una interfaz de comunicaciones local, que uno o más otros dispositivos cliente de la lista de dispositivos cliente están próximos al dispositivo cliente; y comunicarse (710), en respuesta a una determinación de renovar la aplicación cliente por el dispositivo cliente o los uno o más otros dispositivos cliente, con los uno o más otros dispositivos cliente a través de la interfaz de comunicaciones local para identificar un dispositivo cliente dado que sea responsable de enviar un mensaje de solicitud de registro agregado para renovar el registro de la aplicación cliente con el servidor tanto para el dispositivo cliente como para los uno o más otros dispositivos.
Description
DESCRIPCIÓN
Renovación de registros para aplicaciones cliente instaladas en diferentes dispositivos cliente próximos
ANTECEDENTES
1. Campo
[1] Los modos de realización se relacionan con la renovación de registros para aplicaciones cliente instaladas en diferentes dispositivos cliente próximos.
2. Descripción de la técnica relacionada
[2] Los sistemas de comunicación inalámbrica se han desarrollado a lo largo de diversas generaciones, incluyendo un servicio analógico de telefonía inalámbrica de primera generación (1G), un servicio digital de telefonía inalámbrica de segunda generación (2G) (que incluye las redes provisionales 2,5G y 2,75G) y un servicio inalámbrico de tercera generación (3G) con acceso a Internet/datos de alta velocidad. En la actualidad, existen muchos tipos diferentes de sistemas de comunicación inalámbrica en uso, incluyendo sistemas de Servicios de Comunicación Personal y Celular (PCS). Ejemplos de sistemas celulares conocidos incluyen el Sistema Telefónico Móvil Avanzado (AMPS) analógico y sistemas celulares digitales basados en el Acceso Múltiple por División de Código (CDMA), en el Acceso Múltiple por División de Frecuencia (FDMA), en el Acceso Múltiple por División de Tiempo (TDMA), en el Sistema Global para el Acceso Móvil (GSM), una variante del TDMA, y nuevos sistemas híbridos de comunicación digital que usan las tecnologías TDMA y CDMA.
[3] Es típico que los dispositivos cliente (por ejemplo, dispositivos móviles como los teléfonos celulares) que utilizan los sistemas de comunicación mencionados anteriormente u otros tipos de redes de acceso (por ejemplo, wifi, etc.) mantengan registros para aplicaciones cliente con uno o más servidores de alojamiento. Por ejemplo, un usuario puede iniciar sesión en su cuenta de Facebook con un servidor de alojamiento de Facebook mediante una aplicación cliente de Facebook en su teléfono celular, una aplicación cliente de Facebook en su tableta electrónica, una aplicación cliente de Facebook en su ordenador portátil o de mesa, una aplicación cliente de Facebook en su TV inteligente, etc. Estos registros de aplicaciones cliente normalmente son temporales y requieren renovaciones periódicas o, de lo contrario, las aplicaciones cliente anularán los registros en sus respectivos servidores de alojamiento. También es posible que dos o más aplicaciones cliente mantengan registros activos con el mismo servidor de alojamiento. En este caso, los dispositivos respectivos que ejecutan las dos o más aplicaciones cliente normalmente deberán transmitir solicitudes de renovación de registro independientes para prolongar o renovar los registros de las aplicaciones cliente respectivas.
[4] La solicitud de patente internacional WO 2014/162175 A1 describe un sistema que permite la localización de u E (equipos de usuario) y usuarios de aplicaciones en proximidad el uno del otro.
RESUMEN
[5] En un modo de realización, un dispositivo cliente obtiene una lista de dispositivos cliente registrados en asociación con una aplicación cliente en particular, y luego detecta el dispositivo o dispositivos cliente enumerados como próximos a través de una interfaz de comunicaciones local. Uno de los dispositivos cliente próximos se identifica como responsable del envío de un mensaje de solicitud de registro agregado para renovar sus respectivos registros de aplicación con un servidor. En otro modo de realización, el servidor recibe un mensaje de registro para la aplicación cliente desde un dispositivo cliente y detecta que al menos un dispositivo cliente adicional registrado para esa aplicación cliente está próximo al dispositivo cliente solicitante. El servidor intenta renovar de forma preventiva los registros tanto para el dispositivo cliente solicitante como para el al menos otro dispositivo cliente registrado basándose en la detección de proximidad.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[6] Una mayor comprensión de los modos de realización de la invención y muchas de las ventajas intrínsecas de los mismos se obtendrá fácilmente haciendo referencia a la siguiente descripción detallada cuando se considera en relación con los dibujos adjuntos que se presentan solamente para ilustrar, y no para limitar, la invención, y en los que:
La figura 1 ilustra una arquitectura de sistema de alto nivel de un sistema de comunicaciones inalámbricas según un modo de realización.
La figura 2 ilustra ejemplos de equipos de usuario (UE) según modos de realización.
La figura 3 ilustra un dispositivo de comunicación que incluye lógica configurada para llevar a cabo la funcionalidad según un modo de realización.
La figura 4 ilustra configuraciones de aplicaciones dentro de dispositivos cliente que están registradas en asociación con un usuario dado según un modo de realización.
La figura 5 ilustra un ejemplo de un procedimiento de registro que se puede implementar para una aplicación cliente dada en los dispositivos cliente respectivos como se muestra en la figura 4.
La figura 6 ilustra un mecanismo convencional para renovar o prolongar los registros para la aplicación cliente dada en los dispositivos cliente respectivos después de la ejecución del procedimiento de la figura 5.
La figura 7 ilustra un procedimiento para operar un dispositivo cliente según un modo de realización de la invención;
La figura 8 ilustra un procedimiento para operar un servidor según un modo de realización de la invención;
La figura 9 ilustra un ejemplo de una implementación de los procedimientos de las figuras 7 y 8 como una continuación del procedimiento de la figura 5 según un modo de realización.
La figura 10 ilustra un procedimiento para operar un servidor según un modo de realización de la invención;
La figura 11 ilustra un procedimiento para operar un dispositivo cliente según un modo de realización.
La figura 12 ilustra un ejemplo de una implementación de los procedimientos de las figuras 10 y 11 como una continuación del procedimiento de la figura 5 según un modo de realización.
La figura 13 ilustra otro ejemplo de una implementación de los procedimientos de las figuras 10 y 11 como una continuación del procedimiento de la figura 5 según un modo de realización.
DESCRIPCIÓN DETALLADA
[7] Se divulgan aspectos de la invención en la siguiente descripción y en dibujos relacionados, orientados a modos de realización específicos de la invención.
[8] Las expresiones "a modo de ejemplo" y/o "de ejemplo" se usan en el presente documento en el sentido de que "sirve como ejemplo, caso o ilustración". No debe considerarse necesariamente que cualquier modo de realización descrito en el presente documento como "a modo de ejemplo" y/o "de ejemplo" sea preferente o ventajoso con respecto a otros modos de realización.
[9] Además, muchos modos de realización se describen en términos de secuencias de acciones a realizar, por ejemplo, mediante elementos de un dispositivo informático. Se reconocerá que diversas acciones descritas en el presente documento pueden realizarse mediante circuitos específicos (por ejemplo, circuitos integrados para aplicaciones específicas (ASIC)), mediante instrucciones de programa ejecutadas por uno o más procesadores o mediante una combinación de ambos. Adicionalmente, puede considerarse que estas secuencias de acciones descritas en el presente documento se realizan por completo en cualquier formato de medio de almacenamiento legible por ordenador que tenga almacenado en el mismo un conjunto correspondiente de instrucciones de ordenador que, tras su ejecución, provocarían que un procesador asociado realizara la funcionalidad descrita en el presente documento. Por tanto, los diversos aspectos de la invención pueden realizarse de varias formas diferentes, todas las cuales se ha contemplado que estén dentro del alcance del objeto reivindicado. Además, para cada uno de los modos de realización descritos en el presente documento, la forma correspondiente de cualquiera de dichos modos de realización puede describirse en el presente documento como, por ejemplo, "lógica configurada para" realizar la acción descrita.
[10] Un dispositivo cliente, denominado en el presente documento como equipo de usuario (UE), puede ser móvil o estacionario, y puede comunicarse con una red de acceso por radio (RAN). Tal como se usa en el presente documento, el término "UE" puede referirse indistintamente a un "terminal de acceso" o "AT", un "dispositivo inalámbrico", un "dispositivo de abonado", un "terminal de abonado", una "estación de abonado", un "terminal de usuario" o UT, un "terminal móvil", una "estación móvil" y variaciones de los mismos. En general, los UE pueden comunicarse con una red central a través de la RAN, y a través de la red central los UE pueden conectarse con redes externas tales como Internet. Por supuesto, otros mecanismos de conexión a la red central y/o Internet también son posibles para los UE, tales como las redes de acceso por cable, las redes wifi (por ejemplo, basadas en IEEE 802.11, etc.), y otros. Los UE pueden realizarse mediante cualquiera de una serie de tipos de dispositivos, incluidos, entre otros, tarjetas de PC, dispositivos flash compactos, módems internos o externos, teléfonos alámbricos o inalámbricos, etc. El enlace de comunicación a través del cual los UE pueden enviar señales a la RAN se denomina canal de enlace ascendente (por ejemplo, canal de tráfico inverso, canal de control inverso, canal de acceso, etc.). Un enlace de comunicación a través del cual la RAN puede enviar señales a los UE se llama canal de enlace descendente o directo (por ejemplo, canal de radiobúsqueda, canal de control, canal de radiodifusión, canal de tráfico directo, etc.). Como se
usa en el presente documento, el término canal de tráfico (TCH) puede referirse a un canal de tráfico de enlace ascendente/inverso o de enlace descendente/directo.
[11] La figura 1 ilustra una arquitectura de sistema de alto nivel de un sistema de comunicaciones inalámbricas 100 según un modo de realización. El sistema de comunicaciones inalámbricas 100 contiene los UE 1... N. Los UE 1... N pueden incluir teléfonos celulares, asistentes digitales personales (PDA), buscapersonas, un ordenador portátil, un ordenador de mesa, etc. Por ejemplo, en la figura 1, los UE 1.2 se ilustran como teléfonos celulares de llamada, los UE 3 . 5 se ilustran como teléfonos celulares con pantalla táctil o teléfonos inteligentes, y el UE N se ilustra como un ordenador de mesa o PC.
[12] Haciendo referencia a la figura 1, los UE 1...N están configurados para comunicarse con una red de acceso (por ejemplo, la RAN 120, un punto de acceso 125, etc.) a través de una capa o interfaz física de comunicaciones, que se muestra en la figura 1 como las interfaces aéreas 104, 106, 108 y/o una conexión directa por cable. Las interfaces aéreas 104 y 106 pueden cumplir con un protocolo de comunicaciones celulares dado (por ejemplo, CDMA, EVDO, eHRPD, GSM, EDg E, W-CDMA, LTE, etc.), mientras que la interfaz aérea 108 puede cumplir con un protocolo IP inalámbrico (por ejemplo, IEEE 802.11). La RAN 120 incluye una pluralidad de puntos de acceso que atienden a los UE a través de interfaces aéreas, tales como las interfaces aéreas 104 y 106. Los puntos de acceso en la RAN 120 se pueden denominar nodos de acceso o AN, puntos de acceso o AP, estaciones base o BS, Nodo B, eNodo B, etc. Estos puntos de acceso pueden ser puntos de acceso terrestre (o estaciones terrestres) o puntos de acceso satelital. La RAN 120 está configurada para conectarse a una red central 140 que puede realizar una variedad de funciones, que incluyen unir llamadas conmutadas por circuitos (CS) entre los UE atendidos por la RAN 120 y otros UE atendidos por la RAN 120 o una RAN completamente diferente, y también puede mediar un intercambio de datos de conmutación de paquetes (PS) con redes externas como el Internet 175. El Internet 175 incluye varios agentes de encaminamiento y agentes de procesamiento (que no se muestran en la figura 1 por razones de conveniencia). En la figura 1, el UE N se muestra como conectado a Internet 175 directamente (es decir, separado de la red central 140, como a través de una conexión Ethernet de wifi o una red basada en 802.11). El Internet 175 puede por lo tanto funcionar para unir comunicaciones de datos por conmutación de paquetes entre el UE N y los UE 1.N a través de la red central 140. También se muestra en la figura 1 el punto de acceso 125 que es independiente de la RAN 120. El punto de acceso 125 puede estar conectado a Internet 175 independientemente de la red central 140 (por ejemplo, a través de un sistema de comunicación óptica tal como FiOS, un módem de cable, etc.). La interfaz aérea 108 puede atender al UE 4 o al UE 5 a través de una conexión inalámbrica local, tal como IEEE 802.11 en un ejemplo. El UE N se muestra como un ordenador de mesa con una conexión por cable a Internet 175, tal como una conexión directa a un módem o enrutador, que puede corresponder al propio punto de acceso 125 en un ejemplo (por ejemplo, para un enrutador wifi con conectividad alámbrica e inalámbrica).
[13] Haciendo referencia a la figura 1, se muestra un servidor de aplicaciones 170 conectado a Internet 175, la red central 140 o ambos. El servidor de aplicaciones 170 puede implementarse como una pluralidad de servidores estructuralmente independientes, o de forma alternativa puede corresponder a un único servidor. Como se describirá a continuación con más detalle, el servidor de aplicaciones 170 está configurado para admitir uno o más servicios de comunicación (por ejemplo, sesiones de Protocolo de T ransmisión de Voz por Internet (VoIP), sesiones de pulsar para hablar (PTT), sesiones de comunicación grupal, servicios de redes sociales, etc.) para los UE que pueden conectarse al servidor de aplicaciones 170 a través de la red central 140 y/o Internet 175, y/o proporcionar contenido (por ejemplo, descargas de páginas web) a los UE.
[14] La figura 2 ilustra ejemplos de UE (es decir, dispositivos cliente) según diferentes modos de realización. Haciendo referencia a la figura 2, el UE 300A se ilustra como un teléfono de llamada y el UE 300B se ilustra como un dispositivo de pantalla táctil (por ejemplo, un teléfono inteligente, una tableta electrónica, etc.). Tal como se muestra en la figura 2, una carcasa externa del UE 300A está configurada con una antena 305A, una pantalla 310A, al menos un botón 315A (por ejemplo, un botón PTT, un botón de encendido, un botón de control de volumen, etc.) y un teclado 320A entre otros componentes, como se conoce en la técnica. Además, una carcasa externa del UE 300B está configurada con una pantalla táctil 305B, botones periféricos 310B, 315B, 320B y 325B (por ejemplo, un botón de control de encendido, un botón de control de volumen o vibración, un botón de conmutación del modo avión, etc.), al menos un botón del panel frontal 330B (por ejemplo, un botón de inicio, etc.), entre otros componentes, como se conoce en la técnica. Aunque no se muestra explícitamente como parte del UE 300B, el UE 300B puede incluir una o más antenas externas y/o una o más antenas integradas que están integradas en la carcasa externa del UE 300B, que incluyen, pero no se limitan a, antenas wifi, antenas celulares, antenas del sistema de posición satelital (SPS) (por ejemplo, antenas del sistema de posicionamiento global (GPS)), etc.
[15] Mientras que los componentes internos de los UE como el UE 300A y 300B pueden consistir en diferentes configuraciones de hardware, una configuración básica de UE de alto nivel para componentes de hardware internos se muestra como la plataforma 302 en la figura 2. La plataforma 302 puede recibir y ejecutar aplicaciones de software, datos y/o comandos transmitidos desde la RAN 120 que pueden provenir en última instancia de la red central 140, Internet 175 y/u otros servidores y redes remotos (por ejemplo, el servidor de aplicaciones 170, diferentes URL de Internet, etc.). La plataforma 302 también puede ejecutar de forma independiente aplicaciones almacenadas localmente sin interacción con la RAN. La plataforma 302 puede incluir un transceptor 306 acoplado de forma operativa a un circuito integrado para aplicaciones específicas (ASIC) 308 u otro procesador, microprocesador, circuito lógico u
otro dispositivo de procesamiento de datos. El ASIC 308 u otro procesador ejecuta la capa de interfaz de programación de aplicaciones (API) 310 que interactúa con cualquier programa que resida en la memoria 312 del dispositivo inalámbrico. La memoria 312 puede comprender una memoria de acceso aleatorio o de solo lectura (RAM y ROM), una memoria EEPROM, tarjetas flash o cualquier memoria común a plataformas informáticas. La plataforma 302 puede incluir también una base de datos local 314 que puede almacenar aplicaciones no usadas de forma activa en la memoria 312, así como otros datos. La base de datos local 314 es típicamente una célula de memoria flash, pero puede ser cualquier dispositivo de almacenamiento secundario conocido en la técnica, tal como un medio magnético, una EEPROM, un medio óptico, una cinta, un disco flexible o duro o similares.
[16] Por consiguiente, un modo de realización puede incluir un UE (por ejemplo, el UE 300A, 300B, etc.) que incluya la capacidad de realizar las funciones descritas en el presente documento. Como apreciarán los expertos en la técnica, los diversos elementos lógicos pueden realizarse en elementos discretos, en módulos de software ejecutados en un procesador o en cualquier combinación de software y hardware para conseguir la funcionalidad divulgada en el presente documento. Por ejemplo, el ASIC 308, la memoria 312, la API 310 y la base de datos local 314 pueden usarse todos de forma cooperativa para cargar, almacenar y ejecutar las diversas funciones divulgadas en el presente documento y, por lo tanto, la lógica para realizar estas funciones puede distribuirse a través de diversos elementos. De forma alternativa, la funcionalidad podría incorporarse a un componente discreto. Por lo tanto, las características de los UE 300A y 300B en la figura 2 deben ser considerados meramente ilustrativos.
[17] La comunicación inalámbrica entre los UE 300A y/o 300B y la RAN 120 puede basarse en tecnologías diferentes, tal como CDMA, W-CDMA, acceso múltiple por división de tiempo (TDMA), acceso múltiple por división de frecuencia (FDMA), multiplexación por división ortogonal de frecuencia (OFDM), GSM u otros protocolos que puedan usarse en una red de comunicación inalámbrica o en una red de comunicaciones de datos. Tal y como se ha analizado anteriormente y se conoce en la técnica, las transmisiones de voz y/o datos pueden transmitirse a los UE desde la RAN usando una variedad de redes y configuraciones. Por consiguiente, las ilustraciones proporcionadas en el presente documento no están destinadas a limitar los modos de realización de la invención y pretenden ayudar meramente en la descripción de los aspectos de los modos de realización de la invención.
[18] La figura 3 ilustra un dispositivo de comunicación 400 que incluye la lógica configurada para realizar la funcionalidad. El dispositivo de comunicación 400 puede corresponder a cualquiera de los dispositivos de comunicación mencionados anteriormente, que incluyen, pero no se limitan a, los UE 300A o 300B, cualquier componente de la RAN 120, cualquier componente de la red central 140, cualquier componente acoplado a la red central 140 y/o Internet 175 (por ejemplo, el servidor de aplicaciones 170), etc. Por lo tanto, el dispositivo de comunicación 400 puede corresponder a cualquier dispositivo electrónico que esté configurado para comunicarse con (o facilitar la comunicación con) una o más entidades diferentes a través del sistema de comunicaciones inalámbricas 100 de la figura 1.
[19] Haciendo referencia a la figura 3, el dispositivo de comunicación 400 incluye una lógica configurada para recibir y/o transmitir información 405. En un ejemplo, si el dispositivo de comunicación 400 corresponde a un dispositivo de comunicaciones inalámbricas (por ejemplo, el UE 300A o 300B, el AP 125, un BS, Nodo B o eNodoB en la RAN 120, etc.), la lógica configurada para recibir y/o transmitir información 405 puede incluir una interfaz de comunicaciones inalámbricas (por ejemplo, Bluetooth, wifi, 2g , CDMA, W-CDMA, 3G, 4G, LTE, etc.) como un transceptor inalámbrico y hardware asociado (por ejemplo, una antena de RF, un MÓDEM, un modulador y/o desmodulador, etc.). En otro ejemplo, la lógica configurada para recibir y/o transmitir información 405 puede corresponder a una interfaz de comunicaciones por cable (por ejemplo, una conexión en serie, una conexión USB o Firewire, una conexión de Ethernet a través de la cual pueda accederse a Internet 175, etc.). Por lo tanto, si el dispositivo de comunicación 400 corresponde a algún tipo de servidor de red (por ejemplo, el servidor de aplicaciones 170, etc.), la lógica configurada para recibir y/o transmitir información 405 puede corresponder a una tarjeta Ethernet, en un ejemplo, que conecta el servidor de red a otras entidades de comunicación a través de un protocolo de Ethernet. En otro ejemplo, la lógica configurada para recibir y/o transmitir la información 405 puede incluir hardware sensorial o de medición por el cual el dispositivo de comunicación 400 pueda supervisar su entorno local (por ejemplo, un acelerómetro, un sensor de temperatura, un sensor de luz, una antena para supervisar señales RF locales, etc.). La lógica configurada para recibir y/o transmitir la información 405 puede incluir también software que, cuando se ejecute, permita al hardware asociado de la lógica configurada para recibir y/o transmitir la información 405 realizar su función o fu nciones de recepción y/o transmisión. Sin embargo, la lógica configurada para recibir y/o transmitir la información 405 no corresponde solamente al software, y la lógica configurada para recibir y/o transmitir la información 405 depende, al menos parcialmente, del hardware para lograr su funcionalidad.
[20] Haciendo referencia a la figura 3, el dispositivo de comunicación 400 incluye, además, la lógica configurada para procesar la información 410. En un ejemplo, la lógica configurada para procesar la información 410 puede incluir al menos un procesador. Los ejemplos de implementaciones del tipo de procesado que puede realizarse mediante la lógica configurada para procesar la información 410 incluyen, de forma no limitativa, realizar determinaciones, establecer conexiones, realizar selecciones entre diferentes opciones de información, realizar evaluaciones relativas a los datos, interactuar con sensores acoplados al dispositivo de comunicación 400 para realizar operaciones de medición, convertir la información de un formato a otro (por ejemplo, entre protocolos diferentes tales como.wmv a.avi, etc.), y otros. Por ejemplo, el procesador incluido en la lógica configurada para procesar la información 410 puede
corresponder a un procesador de uso general, a un procesador digital de señales (DSP), a un ASIC, a una matriz de puertas programables in situ (FPGA) o a otro dispositivo de lógica programable, a lógica de transistores o de puertas discretas, a componentes de hardware discretos o a cualquier combinación de los mismos diseñada para realizar las funciones descritas en el presente documento. Un procesador de propósito general puede ser un microprocesador pero, como alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador también puede implementarse como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo de DSP o cualquier otra configuración de este tipo. La lógica configurada para procesar la información 410 puede incluir también software que, cuando se ejecute, permita al hardware asociado de la lógica configurada para procesar la información 410 realizar su función o funciones de procesamiento. Sin embargo, la lógica configurada para procesar la información 410 no corresponde solamente al software, y la lógica configurada para procesar la información 410 depende, al menos parcialmente, del hardware para lograr su funcionalidad.
[21] Haciendo referencia a la figura 3, el dispositivo de comunicación 400 incluye, además, la lógica configurada para almacenar la información 415. En un ejemplo, la lógica configurada para almacenar la información 415 puede incluir al menos una memoria no transitoria y un hardware asociado (por ejemplo, un controlador de memoria, etc.). Por ejemplo, la memoria no transitoria incluida en la lógica configurada para almacenar la información 415 puede corresponder a una memoria RAM, a una memoria flash, a una memoria ROM, a una memoria EPROM, a una memoria EEPROM, a registros, a un disco duro, a un disco extraíble, a un CD-ROM o a cualquier otro medio de almacenamiento conocido en la técnica. La lógica configurada para almacenar la información 415 puede incluir también software que, cuando se ejecute, permita al hardware asociado de la lógica configurada para almacenar la información 415 realizar su función o funciones de almacenamiento. Sin embargo, la lógica configurada para almacenar la información 415 no corresponde solamente al software, y la lógica configurada para almacenar la información 415 depende al menos parcialmente del hardware para lograr su funcionalidad.
[22] Haciendo referencia a la figura 3, el dispositivo de comunicación 400 incluye además opcionalmente la lógica configurada para presentar la información 420. En un ejemplo, la lógica configurada para presentar la información 420 puede incluir al menos un dispositivo de salida y un hardware asociado. Por ejemplo, el dispositivo de salida puede incluir un dispositivo de salida de vídeo (por ejemplo, una pantalla de visualización, un puerto que pueda llevar información de vídeo, como USB, HDMI, etc.), un dispositivo de salida de audio (por ejemplo, altavoces, un puerto que pueda llevar información de audio, tal como un conector de micrófono, USB, HDMI, etc.), un dispositivo de vibración y/o cualquier otro dispositivo mediante el cual pueda formatearse la información para su envío o pueda de hecho ser enviada por un usuario u operador del dispositivo de comunicación 400. Por ejemplo, si el dispositivo de comunicación 400 corresponde al UE 300A o al UE 300B como se muestra en la figura 2, la lógica configurada para presentar la información 420 puede incluir la pantalla 310A del UE 300A o la pantalla táctil 305B del UE 300B. En otro ejemplo, la lógica configurada para presentar la información 420 puede omitirse para ciertos dispositivos de comunicación, tales como los dispositivos de comunicación de red que no tengan un usuario local (por ejemplo, conmutadores de red o enrutadores, servidores remotos como el servidor de aplicaciones 170, etc.). La lógica configurada para presentar la información 420 puede incluir también software que, cuando se ejecute, permita al hardware asociado de la lógica configurada para presentar la información 420 realizar su función o funciones de presentación. Sin embargo, la lógica configurada para presentar la información 420 no corresponde solamente al software y la lógica configurada para presentar la información 420 depende al menos parcialmente del hardware para lograr su funcionalidad.
[23] Haciendo referencia a la figura 3, el dispositivo de comunicación 400 incluye además opcionalmente la lógica configurada para recibir entradas del usuario local 425. En un ejemplo, la lógica configurada para recibir entradas del usuario local 425 puede incluir al menos un dispositivo de entrada de usuario y un hardware asociado. Por ejemplo, el dispositivo de entrada de usuario puede incluir botones, una pantalla táctil, un teclado, una cámara, un dispositivo de entrada de audio (por ejemplo, un micrófono o un puerto que puede llevar información de audio, tal como un conector de micrófono, etc.), y/o cualquier otro dispositivo mediante el cual se pueda recibir información de un usuario u operador del dispositivo de comunicación 400. Por ejemplo, si el dispositivo de comunicación 400 corresponde al UE 300A o al UE 300B como se muestra en la figura 2, la lógica configurada para recibir las entradas del usuario local 425 puede incluir el teclado 320A, cualquiera de los botones 315A o 310B a 325B, la pantalla táctil 305B, etc. En otro ejemplo, la lógica configurada para recibir las entradas del usuario local 425 puede ser omitida para ciertos dispositivos de comunicación, como los dispositivos de comunicación de red que no tienen un usuario local (por ejemplo, conmutadores o enrutadores de red, servidores remotos como el servidor de aplicaciones 170, etc.). La lógica configurada para recibir las entradas del usuario local 425 puede incluir también software que, cuando se ejecute, permita al hardware asociado de la lógica configurada recibir las entradas del usuario local 425 para realizar su función o funciones de recepción de entrada. Sin embargo, la lógica configurada para recibir las entradas del usuario local 425 no corresponde solamente al software, y la lógica configurada para recibir las entradas del usuario local 425 depende al menos parcialmente del hardware para lograr su funcionalidad.
[24] Haciendo referencia a la figura 3, mientras que las lógicas configuradas de 405 a 425 se muestran como bloques separados o distintos en la figura 3, se apreciará que el hardware y/o software mediante el cual la lógica configurada respectiva realiza su funcionalidad pueden superponerse parcialmente. Por ejemplo, cualquier software usado para facilitar la funcionalidad de las lógicas configuradas de 405 a 425 puede almacenarse en la memoria no
transitoria asociada con la lógica configurada para almacenar la información 415, de tal manera que cada una de las lógicas configuradas de 405 a 425 realiza su funcionalidad (es decir, en este caso, la ejecución de software) basándose parcialmente en el funcionamiento del software almacenado por la lógica configurada para almacenar la información 415. Asimismo, el hardware que está directamente asociado con una de las lógicas configuradas puede prestarse a, o ser usado por, otras lógicas configuradas de vez en cuando. Por ejemplo, el procesador de la lógica configurada para procesar la información 410 puede formatear datos en un formato apropiado antes ser transmitidos por la lógica configurada para recibir y/o transmitir la información 405, de tal manera que la lógica configurada para recibir y/o transmitir la información 405 realice su funcionalidad (es decir, en este caso, la transmisión de datos) basándose parcialmente en el funcionamiento del hardware (es decir, el procesador) asociado con la lógica configurada para procesar la información 410.
[25] En general, a menos que se indique lo contrario de forma explícita, la frase "lógica configurada para" tal como se utiliza en toda esta divulgación pretende invocar un modo de realización que se implementa al menos parcialmente con hardware, y no se pretende correlacionar con las implementaciones de solo software que son independientes del hardware. Igualmente, se apreciará que la lógica configurada o la "lógica configurada para" en los diversos bloques no está limitada a puertas o elementos lógicos específicos, sino que se refieren en general a la capacidad de realizar la funcionalidad descrita en el presente documento (ya sea a través de hardware o de una combinación de hardware y software). Por lo tanto, las lógicas configuradas o la "lógica configurada para" como se ilustra en los diversos bloques no se implementan necesariamente como puertas lógicas o elementos lógicos a pesar de compartir la palabra "lógica". Otras interacciones o cooperación entre la lógica de los diversos bloques resultarán evidentes para un experto en la técnica a partir de una revisión de los modos de realización descritos a continuación con más detalle.
[26] Es típico que los dispositivos cliente (por ejemplo, dispositivos móviles como los teléfonos celulares) que utilizan los sistemas de comunicación mencionados anteriormente u otros tipos de redes de acceso (por ejemplo, wifi, etc.) mantengan registros para aplicaciones cliente con uno o más servidores de alojamiento. Por ejemplo, un usuario puede iniciar sesión en su cuenta de Facebook con un servidor de alojamiento de Facebook a través de una aplicación cliente de Facebook en su teléfono celular, una aplicación cliente de Facebook en su tableta electrónica, una aplicación cliente de Facebook en su ordenador portátil o de mesa, una aplicación cliente de Facebook en su TV inteligente, etc. Estos registros de aplicaciones cliente típicamente son temporales y requieren renovaciones periódicas o, de lo contrario, las aplicaciones cliente anularán los registros en sus respectivos servidores de alojamiento. También es posible que dos o más aplicaciones cliente mantengan registros activos con el mismo servidor de alojamiento. En este caso, los dispositivos respectivos que ejecutan las dos o más aplicaciones cliente típicamente deberán transmitir solicitudes de renovación de registro independientes para prolongar o renovar los registros de las aplicaciones cliente respectivas.
[27] La figura 4 ilustra configuraciones de aplicaciones dentro de dispositivos cliente que están registradas en asociación con un usuario dado (“Usuario A”) según un modo de realización. Haciendo referencia a la figura 4, suponga que el Usuario A controla el dispositivo cliente 400A (por ejemplo, un teléfono celular o microteléfono), el dispositivo cliente 410A (por ejemplo, una tableta electrónica), el dispositivo cliente 420A (por ejemplo, un ordenador portátil) y el dispositivo cliente 430A (por ejemplo, otro teléfono celular o microteléfono). Cada uno de los dispositivos cliente 400A, 410a , 420A y 430A están configurados para ejecutar un conjunto de aplicaciones cliente 405A, 415A, 425A y 435A, respectivamente. En particular, se incluye una aplicación cliente X ("Aplicación X") entre cada uno de los respectivos conjuntos de aplicaciones cliente 405A, 415A, 425A y 435A. Si bien se dice que la Aplicación X está instalada en los dispositivos cliente respectivos, en realidad se pueden instalar diferentes versiones de la Aplicación X. Por ejemplo, entre el conjunto de aplicaciones cliente 405A y 435A puede incluirse una versión para microteléfono de la Aplicación X, entre el conjunto de aplicaciones cliente 415A puede incluirse una versión para tableta de la Aplicación X y en el conjunto de aplicaciones cliente 425A puede incluirse una versión para ordenador portátil de la Aplicación X. En consecuencia, las diferentes interfaces de usuario de los dispositivos, los factores de forma y/o los sistemas operativos pueden requerir diferentes versiones de la Aplicación X. Además, las diferentes versiones de la Aplicación X pueden instalarse en dispositivos que tienen configuraciones similares (por ejemplo, los dispositivos del microteléfono 1 y 2 tienen la misma configuración física y puede que cada uno tenga instalada la Aplicación X, pero un usuario del dispositivo 2 no actualiza la Aplicación X, ya que las actualizaciones se lanzan de manera que la versión más alta o más actualizada de la Aplicación X se ejecute en el dispositivo 1, etc.). Como se explica a continuación con más detalle, un servidor responsable del registro de la Aplicación X es capaz de asociar cada instancia de la Aplicación X con el Usuario A, independientemente de las posibles diferencias de versión en los dispositivos respectivos que están en proceso de registro.
[28] La figura 5 ilustra un ejemplo de procedimiento de registro que puede implementarse para la Aplicación X en los dispositivos cliente 400A y 410A, respectivamente, como se muestra en la figura 4. En la figura 5, se supone que la Aplicación X está configurada para ser compatible con, y registrada en, el mismo servidor de alojamiento ("servidor de aplicaciones 170"). Sin embargo, esta suposición no es necesariamente cierta para otras aplicaciones cliente implementadas en los dispositivos cliente 400A y/o 410A.
[29] Haciendo referencia a la figura 5, el dispositivo cliente 400A transmite un mensaje de registro al servidor de aplicaciones 170, 500. En la figura 5, el mensaje de registro de 500 se muestra implementado a través de un mensaje REGISTRO del Protocolo de inicio de sesión (SIP) que incluye una dirección de usuario que identifica al usuario
asociado para el registro, un identificador (ID) de la Aplicación X, una dirección IP y un número de puerto utilizado por la Aplicación X en el dispositivo cliente 400A, un identificador de dispositivo (ID) del dispositivo cliente 400A. En un ejemplo, el número de puerto utilizado por la Aplicación X puede ser exclusivo de la Aplicación X, mientras que la dirección IP utilizada por la Aplicación X también se puede compartir con otras aplicaciones cliente que se ejecutan en el dispositivo cliente 400A de modo que las aplicaciones cliente pueden distinguirse por su número de puerto. De este modo, el servidor de aplicaciones puede utilizar la dirección IP junto con el número de puerto de la Aplicación X para encaminar los mensajes desde dispositivos externos a la Aplicación X en el dispositivo cliente 400A. En un ejemplo, el ID de la Aplicación X puede implementarse como un ID único global que distingue a la Aplicación X de otras aplicaciones cliente. En este caso, cualquier otro dispositivo cliente con cualquier versión de la Aplicación X instalada puede usar el mismo ID de la Aplicación X para la Aplicación X, mientras que la información de la versión puede indicarse opcionalmente a través de un campo separado del mensaje de registro. En un ejemplo alternativo, el ID de la Aplicación X puede incluir múltiples ID de la Aplicación X únicos a nivel global que están asociados con una versión diferente de la Aplicación X (por ejemplo, una versión para tableta de la Aplicación X puede tener un primer ID de la Aplicación X, una versión de escritorio de la Aplicación X puede tener un segundo ID de la Aplicación X, una versión de TV inteligente de la Aplicación X puede tener un tercer ID de la Aplicación X, etc.). En este caso, no es necesario el campo separado para indicar la información de la versión a través del mensaje de registro. Además, el ID del dispositivo puede corresponder a un identificador único global para el dispositivo cliente 400A que distingue al dispositivo cliente 400A de cualquier otro dispositivo cliente, como una dirección MAC. Para facilitar la explicación, los mensajes de registro descritos en toda esta aplicación se referirán a los mensajes de REGISTRO SIP según SIP, pero se apreciará que otros modos de realización pueden estar dirigidos a implementaciones que no sean SIP.
[30] Haciendo referencia a la figura 5, en 505, el servidor de aplicaciones 170 acusa el recibo (ACK) del mensaje de REGISTRO SIP de 500 enviando un mensaje 200 de OK a la Aplicación X en el dispositivo cliente 400A basándose en la dirección IP del dispositivo cliente 400A y el número de puerto de la Aplicación X a partir del mensaje de REGISTRO SIP de 500. Además, en respuesta al mensaje de REGISTRO SIP de 500, el servidor de aplicaciones 170 autentica opcionalmente el mensaje de REGISTRO SIP de la Aplicación X, 510. Si el mensaje de REGISTRO SIP de 500 se autentica correctamente en 510 (o si se omite la autenticación), el servidor de aplicaciones 170 registra la Aplicación X estableciendo un registro para la Aplicación X en asociación con el usuario identificado por la dirección de usuario que incluye (i) el ID de la Aplicación X, (ii) la dirección IP y el número de puerto asociados con la Aplicación X, y (iii) el ID del dispositivo asociado con el dispositivo cliente 400a , 515. El servidor de aplicaciones 170 también inicia un temporizador de vencimiento para el registro de la Aplicación X, 520, mediante el cual el servidor de aplicaciones 170 está configurado para cancelar el registro de la Aplicación X al vencer el temporizador de vencimiento de la Aplicación X.
[31] El servidor de aplicaciones 170 envía un mensaje a la Aplicación X en el dispositivo cliente 400A que indica que el servicio está disponible para la Aplicación X, 525, y la Aplicación X envía un acuse de recibo ACK en respuesta al mensaje de servicio disponible, 530. En un ejemplo, el mensaje de servicio disponible 525 contiene una clave de autenticación que es válida hasta que venza el período de registro actual de la Aplicación X en el dispositivo cliente 400A. En 535, la Aplicación X inicia un temporizador de tiempo de vida (TTL) que está configurado para vencer antes del tiempo de vencimiento de la Aplicación X que se ejecuta en el servidor de aplicaciones 170 para el dispositivo cliente 400A. El vencimiento del temporizador TTL de la Aplicación X activará la Aplicación X en el dispositivo cliente 400A para transmitir otro mensaje de REGISTRO SIP que renovará o prolongará el registro de la Aplicación X en el servidor de aplicaciones 170 restableciendo el temporizador de vencimiento de la Aplicación X en el dispositivo cliente 400A.
[32] En algún momento posterior, la Aplicación X en el dispositivo cliente 410A transmite un mensaje de REGISTRO SIP 540 al servidor de aplicaciones que incluye la dirección de usuario que identifica al usuario asociado para el registro, un ID de la Aplicación X, la dirección IP y el número de puerto utilizado por la Aplicación X en el dispositivo cliente 410A y el ID de dispositivo del dispositivo cliente 410A. En 545, el servidor de aplicaciones 170 acusa el recibo del mensaje de REGISTRO SIP de 540 enviando un mensaje 200 de OK a la Aplicación X en el dispositivo cliente 410A basándose en la dirección IP del dispositivo cliente 410A y el número de puerto de la Aplicación X a partir del mensaje de REGISTRO SIP de 540. Además, en respuesta al mensaje de REGISTRO SIP de 540, el servidor de aplicaciones 170 autentica opcionalmente el mensaje de REGISTRO SIP de la Aplicación X, 550. Si el mensaje de REGISTRO SIP de 540 se autentica correctamente en 550 (o si se omite la autenticación), el servidor de aplicaciones 170 registra la Aplicación X estableciendo un registro para la Aplicación X en asociación con el usuario identificado por la dirección de usuario que incluye (i) el ID de la Aplicación X, (ii) la dirección IP y el número de puerto asociados con la Aplicación X, y (iii) el ID del dispositivo asociado con el dispositivo cliente 410A, 555. El servidor de aplicaciones 170 también inicia un temporizador de vencimiento para el registro de la Aplicación X en el dispositivo cliente 410A, 560, mediante el cual el servidor de aplicaciones 170 está configurado para cancelar el registro de la Aplicación X en el dispositivo cliente 410A al vencer el temporizador de vencimiento de la Aplicación X.
[33] El servidor de aplicaciones 170 envía un mensaje a la Aplicación X en el dispositivo cliente 410A que indica que el servicio está disponible para la Aplicación X, 565, y la Aplicación X envía un acuse de recibo ACK en respuesta al mensaje de servicio disponible, 570. En un ejemplo, el mensaje de servicio disponible 565 contiene una clave de autenticación que es válida hasta que venza el período de registro actual de la Aplicación X en el dispositivo cliente 410A. En 575, la aplicación X en el dispositivo cliente 410A inicia un temporizador TTL que está configurado para
vencer antes del temporizador de vencimiento de la Aplicación X que se está ejecutando en el servidor de aplicaciones 170. El vencimiento del temporizador TTL de la Aplicación X en el dispositivo cliente 410A activará la Aplicación X en el dispositivo cliente 410A para transmitir otro mensaje de REGISTRO SIP que renovará o prolongará el registro de la Aplicación X en el dispositivo cliente 410A con el servidor de aplicaciones 170, restableciendo el temporizador de vencimiento de la Aplicación X.
[34] La figura 6 ilustra un mecanismo convencional para renovar o prolongar los registros para la Aplicación X en los dispositivos cliente 400A y 410A después de la ejecución del procedimiento de la figura 5. Haciendo referencia a la figura 6, en algún momento después de 575, el dispositivo cliente 400A determina que el temporizador TTL de la Aplicación X que se inició en 535 ha vencido, 600. Esto activa al dispositivo cliente 400A para transmitir otro mensaje de REGISTRO SIP en 605 que funciona para solicitar al servidor de aplicaciones 170 que prolongue o renueve el registro de la Aplicación X para el dispositivo cliente 400A con el servidor de aplicaciones 170. El servidor de aplicaciones 170 acusa el recibo del mensaje de REGISTRO SIP de 605 con un mensaje 200 de OK, 610, y el servidor de aplicaciones 170 también renueva el registro para la Aplicación X para el dispositivo cliente 400A restableciendo o prolongando el temporizador de vencimiento de la Aplicación X, 615. Como se apreciará, el funcionamiento de 615 retrasa el punto en el tiempo en el que, de otro modo, vencería el registro de la Aplicación X en el dispositivo cliente 400A. El servidor de aplicaciones 170 notifica a la Aplicación X en el dispositivo cliente 400A que su registro se ha renovado enviando un mensaje de servicio disponible con una clave de autenticación actualizada, 620, y el dispositivo cliente 400A acusa el recibo ACK del mensaje de servicio disponible, 625. La Aplicación X en el dispositivo cliente 400A restablece o reinicia el temporizador TTL de la Aplicación X en 630, de manera que el dispositivo cliente 400A enviará otro mensaje de REGISTRO SIP para renovar el registro de la Aplicación X en el servidor de aplicaciones 170 la próxima vez que el temporizador TTL de la Aplicación X venza en el dispositivo cliente 400A, y así sucesivamente.
[35] Haciendo referencia a la figura 6, el dispositivo cliente 410A determina que el temporizador TTL de la Aplicación X ha vencido, 635. Esto activa el dispositivo cliente 410A para transmitir otro mensaje de REGISTRO SIP en 640 que funciona para solicitar al servidor de aplicaciones 170 que prolongue o renueve el registro de la Aplicación X con el servidor de aplicaciones 170 para el dispositivo cliente 410A. El servidor de aplicaciones 170 acusa el recibo ACK del mensaje de REGISTRO SIP de 640 con un mensaje 200 de OK, 645, y el servidor de aplicaciones 170 también renueva el registro para la Aplicación X en el dispositivo cliente 410A restableciendo o prolongando el temporizador de vencimiento de la Aplicación X, 650. Como se apreciará, el funcionamiento de 650 retrasa el punto en el tiempo en el que, de otro modo, vencería el registro de la Aplicación X para el dispositivo cliente 410A. El servidor de aplicaciones 170 notifica a la Aplicación X en el dispositivo cliente 410A que se ha renovado su registro enviando un mensaje de servicio disponible con una clave de autenticación actualizada, 655, y el dispositivo cliente 410A acusa el recibo ACK del mensaje de servicio disponible, 660. La Aplicación X en el dispositivo cliente 410A restablece o reinicia el temporizador t Tl de la Aplicación X en 665, de manera que el dispositivo cliente 410A enviará otro mensaje de REGISTRO SIP para renovar el registro de la Aplicación X para el dispositivo cliente 410A con el servidor de aplicaciones 170 la próxima vez que el temporizador TTL de la Aplicación X venza, y así sucesivamente.
[36] Es cada vez más común que los usuarios instalen la misma aplicación cliente en múltiples dispositivos cliente que están próximos entre sí. Por ejemplo, un usuario en particular puede tener diversas versiones de una aplicación cliente para transmitir contenido de vídeo (por ejemplo, Netflix, YouTube, etc.) instaladas en varios dispositivos cliente próximos en un entorno doméstico, como TV inteligentes, teléfonos celulares, tabletas electrónicas y/o ordenadores portátiles o de mesa en el entorno doméstico. El enfoque convencional que se muestra en la figura 6, mediante el cual cada aplicación cliente en cada dispositivo cliente respectivo inicia de forma independiente su propio procedimiento de renovación de registro puede ser un desperdicio en términos de uso de recursos cuando se instalan múltiples versiones de la misma aplicación cliente en dispositivos cliente próximos. Por consiguiente, los modos de realización de la invención están relacionados con la reducción de la cantidad de mensajes utilizados para renovar los registros para una aplicación cliente dada instalada en múltiples dispositivos cliente próximos en asociación con el mismo usuario al consolidar o agregar solicitudes de renovación de registro para múltiples dispositivos cliente próximos diferentes en una transmisión única.
[37] La figura 7 ilustra un procedimiento para operar un dispositivo cliente (por ejemplo, tal como el dispositivo cliente 400A, 410A, 420A o 430A) según un modo de realización de la invención. Haciendo referencia a la figura 7, en 700, el dispositivo cliente obtiene una lista de dispositivos cliente en los que una aplicación cliente (por ejemplo, la Aplicación X) se registra con un servidor en asociación con un usuario dado (por ejemplo, cada instancia de la aplicación cliente se registra bajo la misma dirección de usuario en el servidor de aplicaciones). Como se usa en el presente documento, la "aplicación cliente" configurada para ejecución en cada dispositivo cliente listado está asociada con el mismo servicio subyacente (por ejemplo, Facebook, Netflix, etc.) pero cuyas versiones pueden variar. Por ejemplo, un ordenador de mesa, un dispositivo de microteléfono y un TV inteligente pueden ejecutar una versión diferente de la aplicación cliente, pero cada uno de estos dispositivos se incluiría en la lista obtenida en 700.
[38] Haciendo referencia a la figura 7, el dispositivo cliente detecta, a través de una interfaz de comunicaciones local (por ejemplo, una interfaz entre pares, una interfaz Bluetooth, una interfaz Wifi Direct, una interfaz LTE-D, etc.) que uno o más otros dispositivos cliente de la lista de dispositivos cliente están próximos al dispositivo cliente, 705. Por ejemplo, la lista de dispositivos cliente obtenida en 700 puede incluir información de identificación (por ejemplo, ID del dispositivo, tal como la dirección MAC, la dirección IP, el SSID, etc.) para cada dispositivo cliente listado, por lo
que se espera que cada dispositivo cliente listado difunda periódicamente la información de identificación respectiva a través de la interfaz de comunicaciones local, y el dispositivo cliente puede supervisar la interfaz de comunicaciones local para detectar si los dispositivos cliente listados están próximos. Del mismo modo, el dispositivo cliente también puede difundir periódicamente su propia información de identificación a través de la interfaz de comunicaciones local para facilitar su detección en los dispositivos cliente listados.
[39] Como se usa en el presente documento, la "interfaz de comunicaciones local" puede corresponder a cualquier ruta de comunicación que se pueda conectar entre diferentes dispositivos cliente sin implicar al servidor de aplicaciones. Esto incluye cualquier interfaz de comunicación directa (o punto a punto), como P2P directo, Bluetooth, Wifi Direct, LTE-D, etc., y también puede incluir interfaces de comunicaciones indirectas como P2P indirecta mediada por un punto de acceso, etc. La interfaz de comunicaciones local es, por lo tanto, cualquier interfaz sobre la cual puede producirse la comunicación con menos sobrecarga en relación con las comunicaciones que son mediadas por el servidor de aplicaciones, de manera que la agregación de mensajes en el servidor de aplicaciones mientras se usa la interfaz de comunicaciones local para retransmitir mensajes de manera indirecta a/desde el servidor proporciona beneficios en términos de utilización de recursos del sistema. Además, el término "próximo" como se usa en el presente documento se refiere a la capacidad esperada o real de dos o más dispositivos clientes para comunicarse a través de la interfaz de comunicaciones local. Por ejemplo, dos dispositivos cliente con capacidad Bluetooth pueden considerarse próximos si los dos dispositivos clientes están a 5 pies de distancia entre sí, incluso si no existe una conexión Bluetooth real entre los dos dispositivos clientes (es decir, próximos en virtud de la capacidad de comunicación esperada). Del mismo modo, dos dispositivos cliente con una conexión LTE-D establecida pueden considerarse próximos en virtud de la conexión LTE-D establecida (es decir, próximos en virtud de la capacidad de comunicación real). Por lo tanto, los límites de lo que constituye dispositivos cliente "próximos" en términos de distancia física pueden variar según el tipo de interfaz (por ejemplo, 10-30 pies para Bluetooth, varios cientos de metros para LTE-D, etc.).
[40] Haciendo referencia a la figura 7, en 710, se realiza una determinación por parte del dispositivo cliente o los uno o más otros dispositivos cliente detectados en 705 para renovar una aplicación cliente respectiva instalada allí. En un ejemplo, esta determinación puede activar una búsqueda en la interfaz de comunicaciones local que resulta en la detección de 705, aunque la detección de 705 también puede producirse como un procedimiento periódico o de fondo que no se activa directamente por un procedimiento de renovación de registro inminente. En respuesta a esta determinación, en lugar de meramente transmitir una solicitud de renovación de registro que solicita la renovación de registro para la aplicación cliente en un dispositivo cliente en particular como en la figura 6, el dispositivo cliente y los uno o más otros dispositivos cliente detectados en 705 se comunican para identificar un dispositivo cliente dado que es responsable de enviar un mensaje de solicitud de registro agregado para renovar el registro de la aplicación cliente con el servidor tanto para el dispositivo cliente como para los uno o más otros dispositivos cliente, 710. Por ejemplo, la comunicación en 710 se puede usar para implementar un protocolo de selección de dispositivos que se basa en una o más reglas de selección de dispositivos. Por ejemplo, las una o más reglas de selección de dispositivos pueden incluir seleccionar un dispositivo enchufado en lugar de un dispositivo alimentado con una batería para conservar la energía de la batería, seleccionar un dispositivo conectado a wifi en lugar de un dispositivo conectado por red celular para reducir la congestión celular, seleccionar el dispositivo con el tiempo de vencimiento del temporizador TTL más inminente para la Aplicación X, o cualquier combinación de las mismas.
[41] En 715, el dispositivo cliente determina si el dispositivo cliente se identifica como responsable de enviar el mensaje de solicitud de registro agregado en 710. Si el dispositivo cliente no se identifica como responsable de enviar el mensaje de solicitud de registro agregado en 710, entonces el dispositivo cliente se abstiene de transmitir una solicitud de renovación de registro para la Aplicación X, basándose en la expectativa de que otro dispositivo cliente transmitirá el mensaje de solicitud de registro agregado, 720. De lo contrario, si el dispositivo cliente se identifica como responsable de enviar el mensaje de solicitud de registro agregado en 710, el dispositivo cliente configura el mensaje de solicitud de registro agregado, 725, y luego transmite el mensaje de solicitud de registro agregado al servidor de aplicaciones, 730. Como se apreciará, la reducción del número de dispositivos cliente próximos que se requieren para transmitir las solicitudes de renovación del registro de la Aplicación X limita la interferencia de la capa física y/o la congestión de la red de retorno en la red o redes asociadas.
[42] La figura 8 ilustra un procedimiento para operar un servidor (por ejemplo, tal como el servidor de aplicaciones 170) según un modo de realización de la invención. En particular, la figura 8 ilustra las operaciones del lado del servidor que se realizan junto con las operaciones del lado del cliente descritas anteriormente con respecto a la figura 7.
[43] Haciendo referencia a la figura 8, en 800, el servidor registra una aplicación cliente para un usuario dado en cada uno de una pluralidad de dispositivos cliente diferentes. El servidor proporciona una lista de la pluralidad de diferentes dispositivos cliente a al menos uno de la pluralidad de diferentes dispositivos cliente, 805. Por ejemplo, el servidor puede proporcionar la lista de 805 durante el registro de la aplicación cliente en un nuevo dispositivo cliente para el usuario dado, o en algún momento posterior. El servidor puede proporcionar una lista actualizada a los dispositivos cliente registrados actualmente siempre que un dispositivo cliente registre o cancele el registro de la aplicación cliente para el usuario dado o de forma periódica. En otro ejemplo, el servidor en sí no necesita propagar la lista de 805 a cada dispositivo cliente registrado. Por ejemplo, si dos dispositivos cliente registrados están próximos y están conectados a través de una interfaz de comunicaciones local (por ejemplo, P2P, Bluetooth, wifi Direct, LTE-D,
etc.), el servidor puede proporcionar la lista a uno de los dispositivos cliente registrados que luego puede retransmitir la lista al otro dispositivo cliente próximo.
[44] En 810, en respuesta al proporcionar la lista de 805, el servidor recibe un mensaje de solicitud de registro agregado de un dispositivo cliente dado entre la pluralidad de dispositivos cliente diferentes que incluye (i) una solicitud para renovar el registro de la aplicación cliente del dispositivo cliente dado con el servidor, y (ii) una o más solicitudes para renovar uno o los registros de la aplicación cliente con el servidor para uno o más otros dispositivos cliente que están próximos al dispositivo cliente.
[45] La figura 9 ilustra un ejemplo de implementación de los procedimientos de las figuras 7 y 8 realizados con respecto al dispositivo cliente 400A y 410A de la figura 4 como una continuación del procedimiento de la figura 5 según un modo de realización. En el modo de realización de la figura 9, se supone que los dispositivos cliente 400A y 410A están próximos entre sí. Haciendo referencia a la figura 9, el servidor de aplicaciones proporciona a los dispositivos cliente 400A y 410A una lista de dispositivos clientes en los que la Aplicación X está registrada para el Usuario A, 900 (por ejemplo, como en 700 de la figura 7 u 805 de la figura 8). La disposición de 900 puede producirse antes, después o durante el procedimiento de la figura 5.
[46] Haciendo referencia a la figura 9, en algún momento después de 575, el dispositivo cliente 400A determina que el temporizador TTL de la Aplicación X que se inició en 535 ha vencido, 905. En lugar de transmitir otro mensaje de REGISTRO SIP como en 605 de la figura 6, el dispositivo cliente 400A detecta el dispositivo cliente 410A a través de la interfaz de comunicaciones local utilizando información de identificación para el dispositivo cliente 410A que se proporciona en la lista de 900, 910 (por ejemplo, como en 705 de la figura 7). Los dispositivos cliente 400A y 410A luego se comunican entre sí para identificar qué dispositivo cliente será responsable de transmitir un mensaje de solicitud de registro agregado para renovar sus respectivos registros de Aplicación X con el servidor, 915 (por ejemplo, como en 710 de la figura 7). En el modo de realización de la figura 9, se supone que el dispositivo cliente 400A se identifica como el dispositivo cliente responsable.
[47] En 920 (por ejemplo, como en 730 de la figura 7 u 805 de la figura 8), el dispositivo cliente 400A configura y envía el mensaje de solicitud de registro agregado que incluye la dirección del usuario ("Dirección de Usuario") que identifica al usuario asociado para el registro, el ID de la Aplicación X ("ID de la Aplicación X"), la dirección IP y el número de puerto utilizados por la Aplicación X en ambos dispositivos cliente 400A ("Dirección IP_#1" y "Puerto Aplicación X_#1") y 410A ("Dirección IP_#2" y "Puerto Aplicación X_#2"), los ID del dispositivo de ambos dispositivos cliente 400A ("ID del dispositivo_#1") y 410A ("ID del dispositivo_#2"). En 925, el servidor de aplicaciones 170 acusa el recibo ACK del mensaje de REGISTRO SIP de 920 enviando un mensaje 200 de OK a la Aplicación X en el dispositivo cliente 400A basándose en la dirección IP del dispositivo cliente 410A y el número de puerto de la Aplicación X a partir del mensaje de REGISTRO SIP de 920. En respuesta al mensaje de REGISTRO SIP de 920, el servidor de aplicaciones renueva los registros de la Aplicación X para los dispositivos cliente 400A y 410A, 930 y 935.
[48] En el modo de realización de la figura 9, el servidor de aplicaciones 170 notifica a la Aplicación X en el dispositivo cliente 400A que los registros de la Aplicación X para ambos dispositivos cliente 400A y 410A se han renovado enviando un mensaje de servicio disponible con claves de autenticación actualizadas para ambos dispositivos cliente 400A y 410A, 940 y el dispositivo cliente 400A acusa el recibo del mensaje de servicio disponible, 945. En respuesta al mensaje de servicio disponible, el dispositivo cliente 400A notifica a la Aplicación X en el dispositivo cliente 410A que su registro también se ha renovado reenviando el mensaje de servicio disponible al dispositivo cliente 410A con la clave de autenticación actualizada para la Aplicación X en el dispositivo cliente 410 a través de la interfaz de comunicaciones local, 950. La Aplicación X en el dispositivo cliente 400A restablece o reinicia el temporizador TTL de la Aplicación X, 955, y, de manera similar, la Aplicación X en el dispositivo cliente 410A restablece o reinicia su propio temporizador TTL de la Aplicación X, 960.
[49] Mientras que los modos de realización descritos anteriormente con respecto a las figuras 7 a 9 se relacionan con dispositivos cliente próximos que se coordinan entre sí para transmitir un mensaje de solicitud de registro agregado que solicita renovaciones de registro para múltiples instancias de la Aplicación X en diferentes dispositivos para el mismo usuario, las figuras 10 a 12 se dirigen a un escenario donde el servidor realiza su propia detección de proximidad para dos o más dispositivos cliente y luego emite renovaciones de registro de forma preventiva para al menos un dispositivo cliente que no solicitó expresamente la renovación del registro en virtud de al menos un dispositivo cliente que está próximo a un dispositivo cliente solicitante.
[50] La figura 10 ilustra un procedimiento para operar un servidor (por ejemplo, tal como el servidor de aplicación 170) según un modo de realización de la invención. Haciendo referencia a la figura 10, el servidor registra una aplicación cliente (por ejemplo, la Aplicación X) en asociación con un usuario dado en cada uno de una pluralidad de dispositivos cliente diferentes, 1000. En algún momento posterior, el servidor recibe una solicitud para renovar el registro de la aplicación cliente desde uno de los dispositivos cliente registrados, 1005. A diferencia de las solicitudes de renovación de registro analizadas anteriormente con respecto a las figuras 7 a 9, la solicitud de renovación de registro de 1005 no es un mensaje de solicitud de registro agregado y solo solicita la renovación de registro para la aplicación cliente en el propio dispositivo cliente. En lugar de simplemente renovar el registro de la aplicación para el dispositivo cliente solicitante, el servidor detecta que el dispositivo cliente está próximo a al menos otro dispositivo
cliente entre los dispositivos cliente registrados, 1010. La detección de 1010 se puede realizar de varias maneras. Por ejemplo, el servidor puede recibir informes de ubicación que informan de la información de ubicación (por ejemplo, un punto de acceso al que están conectados actualmente los dispositivos cliente registrados, coordenadas de longitud y latitud, un informe de que al menos otro dispositivo cliente fue detectado a través de una interfaz de comunicaciones local por el dispositivo cliente, etc.) de uno o más dispositivos cliente registrados, que son evaluados por el servidor para determinar cuáles de los dispositivos cliente registrados están próximos entre sí. Por ejemplo, los dispositivos clientes conectados al mismo punto de acceso pueden considerarse próximos, los dispositivos clientes que se encuentran dentro de una distancia umbral entre sí basándose en las coordenadas de longitud y latitud pueden considerarse próximos, o los dispositivos clientes que están conectados entre sí a través de una interfaz de comunicaciones local pueden considerarse próximos, etc. En otro ejemplo, la detección de 1010 se puede implementar en el servidor basándose en la información reciente del historial de registro. Por ejemplo, si un mensaje de registro anterior que llegó de un primer dispositivo cliente era un mensaje de solicitud de registro agregado que también incluía una solicitud de renovación de registro para un segundo dispositivo cliente, el servidor puede suponer durante un período de tiempo umbral que el primero y el segundo dispositivos cliente todavía están próximos. En este caso, otro mensaje de renovación de registro (agregado o no agregado) recibido en 1005 desde el primer o segundo dispositivo cliente recibido dentro del período de tiempo umbral puede activar la detección de 1010 a través de la suposición de que el otro dispositivo cliente todavía está próximo. En otro ejemplo, la detección de 1010 se puede implementar en el servidor basándose en información heurística. Por ejemplo, a medianoche, el usuario o los usuarios suelen estar dormidos y sus dispositivos respectivos permanecen en la misma posición al menos hasta que los usuarios se despiertan, por lo que cualquier dispositivo en proximidad a medianoche también es probable que esté en proximidad a las 2 am, a las 4 am, etc. En este escenario, el servidor puede hacer ciertas suposiciones con respecto a la proximidad, como que dos dispositivos identificados positivamente como próximos a medianoche simplemente se suponen próximos durante un período de tiempo dado (por ejemplo, hasta que se produzca un despertar proyectado para el usuario o los usuarios, que puede basarse en información histórica relacionada con las horas del despertador del usuario de una manera histórica específica del usuario o en una hora de despertador por defecto del usuario).
[51] Después de la detección de 1010, el servidor determina renovar de forma preventiva el registro de la aplicación para al menos otro dispositivo cliente que se detecte como próximo al dispositivo cliente que ha solicitado la renovación del registro de la aplicación en 1000, 1015. Por consiguiente, el servidor transmite al dispositivo cliente solicitante en respuesta a la determinación de 1015 indicaciones de que se renuevan los registros de la aplicación cliente tanto para el dispositivo cliente como para al menos otro dispositivo cliente, junto con cualquier clave de autenticación asociada, 1020. La transmisión de 1015 actúa como una instrucción implícita o explícita para que el dispositivo cliente solicitante intente retransmitir la notificación de renovación de registro al al menos otro dispositivo cliente a través de la interfaz de comunicaciones local, como se explicará más adelante con respecto a 1110 de la figura 11. En este punto, el servidor puede esperar opcionalmente una indicación de que el dispositivo cliente ha transmitido correctamente la indicación o las indicaciones de renovación para el al menos otro dispositivo cliente a través de una interfaz de comunicaciones local antes de renovar el registro o los registros asociados para la aplicación cliente en el al menos otro dispositivo cliente, 1025. Como alternativa a 1025, el servidor puede renovar el registro para la aplicación cliente en al menos otro dispositivo cliente y puede revertir la renovación del registro si el dispositivo cliente informa posteriormente de un error de notificación de renovación del registro.
[52] La figura 11 ilustra un procedimiento para operar un dispositivo cliente (por ejemplo, tal como el dispositivo cliente 400A, 410A, 420A o 430A) según un modo de realización. En particular, la figura 11 ilustra las operaciones del lado del cliente que se realizan junto con las operaciones del lado del servidor descritas anteriormente con respecto a la figura 10.
[53] Haciendo referencia a la figura 11, en 1100, el dispositivo cliente transmite una solicitud para renovar su registro de una aplicación cliente con un servidor. A diferencia de las solicitudes de renovación de registro analizadas anteriormente con respecto a las figuras 7 a 9, la solicitud de renovación de registro de 1100 no es un mensaje de solicitud de registro agregado. En respuesta a la solicitud de renovación de registro de 1100, el dispositivo cliente recibe indicaciones de que se renuevan los registros de la aplicación cliente tanto para el dispositivo cliente como para al menos otro dispositivo cliente próximo al dispositivo cliente, junto con las claves de autenticación asociadas, 1105.
[54] En 1110, el dispositivo cliente intenta notificar al al menos otro dispositivo cliente que está próximo al dispositivo cliente a través de una interfaz de comunicaciones local que se renueva el registro de la aplicación cliente del al menos otro dispositivo cliente. El dispositivo cliente informa al servidor con respecto a si el intento de 1110 tiene éxito o es fallido, 1115.
[55] La figura 12 ilustra un ejemplo de implementación de los procedimientos de las figuras 10 y 11 realizados con respecto al dispositivo cliente 400A y 410A de la figura 4 como una continuación del procedimiento de la figura 5 según un modo de realización. En el modo de realización de la figura 12, se supone que los dispositivos cliente 400A y 410A están próximos entre sí.
[56] Haciendo referencia a la figura 12, en algún momento después de 575, el dispositivo cliente 400A determina que el temporizador TTL de la Aplicación X que se inició en 535 ha vencido, 1200. El dispositivo cliente 400A entonces envía un mensaje de REGISTRO SIP solicitando la renovación de la Aplicación X en el dispositivo cliente 400A, 1205
(por ejemplo, similar a 605 de la figura 6 o 1005 de la figura 10), y el servidor de aplicaciones acusa el recibo ACK del mensaje de REGISTRO SIP, 1210. En lugar de simplemente renovar el registro de la Aplicación X para el dispositivo cliente 400A, el servidor de aplicaciones detecta que el dispositivo cliente 400A está próximo al dispositivo cliente 410A que también tiene la Aplicación X registrada para el mismo usuario, 1215 (por ejemplo, como en 1010 de la figura 10). El servidor de aplicaciones renueva el registro de la Aplicación X para el dispositivo cliente 400A y restablece el temporizador de vencimiento de la Aplicación X asociado 1220, y transmite un mensaje de servicio disponible al dispositivo cliente 400A que indica que se renuevan los registros de la Aplicación X para ambos dispositivos cliente 400a y 410A, junto con las claves de autenticación actualizadas para la Aplicación X en los dispositivos cliente 400A y 410A, 1225. El dispositivo cliente 400A acusa el recibo ACK del mensaje de servicio disponible, 1230, y restablece su propio temporizador TTL de la Aplicación X, 1235. El dispositivo cliente 400A intenta notificar al dispositivo cliente 410a que su registro de la Aplicación X también se ha renovado, así como proporcionar la clave de autenticación actualizada para la Aplicación X en el dispositivo cliente 410A, 1240 (por ejemplo, como en 1110 de la figura 11). Por ejemplo, el dispositivo cliente 400A puede intentar reenviar el mensaje de servicio disponible al dispositivo cliente 410 a través de la interfaz de comunicaciones local como se representa en la figura 12.
[57] En el modo de realización de la figura 12, el dispositivo cliente 410A acusa el recibo ACK del aviso de renovación de registro de la Aplicación X del dispositivo cliente 400A, 1245, y restablece su temporizador TTL de la Aplicación X, 1250. El dispositivo cliente 400A luego informa de la notificación de renovación satisfactoria del registro de la Aplicación X en el servidor de aplicaciones, 1255, que renueva el registro de la Aplicación X para el dispositivo cliente 410A y restablece el temporizador de vencimiento de la Aplicación X asociado, 1260.
[58] La figura 13 ilustra otro ejemplo de implementación de los procedimientos de las figuras 10 y 11 realizados con respecto al dispositivo cliente 400A y 410A de la figura 4 como una continuación del procedimiento de la figura 5 según un modo de realización. El procedimiento de la figura 13 es similar al procedimiento de la figura 12, excepto que la notificación de renovación de registro agregada para la Aplicación X no llega satisfactoriamente al dispositivo cliente 410A. Similar a la figura 12, en el modo de realización de la figura 13, se supone que los dispositivos cliente 400A y 410A están próximos entre sí.
[59] Haciendo referencia a la figura 13, 1300-1340 corresponden sustancialmente a 1200-1240 de la figura 12, respectivamente. En 1345, a diferencia de 1245 de la figura 12, el dispositivo cliente 410A acusa negativamente el recibo (NACK) del aviso de renovación de registro de la Aplicación X desde el dispositivo cliente 400A. El NACK de 1345 puede ser un NACK explícito (por ejemplo, se envía un mensaje real desde el dispositivo cliente 410A que indica que la transmisión de 1340 ha fallado) o un NACK implícito (por ejemplo, el dispositivo cliente 410A no acusa el recibo de la transmisión de 1340 dentro de un período de tiempo umbral). En consecuencia, el dispositivo cliente 410A no restablece su temporizador TTL de la Aplicación X, 1350, y el dispositivo cliente 400A informa del error de notificación de renovación del registro de la Aplicación X al servidor de aplicaciones, 1355, de manera que el servidor de aplicaciones no renueva el registro de la Aplicación X para el dispositivo cliente 410A y no restablece el temporizador de vencimiento de la Aplicación X asociado, 1360.
[60] Los expertos en la materia apreciarán que la información y las señales pueden representarse usando cualquiera entre una variedad de tecnologías y técnicas diferentes. Por ejemplo, los datos, instrucciones, comandos, información, señales, bits, símbolos y segmentos que se pueden haber mencionado a lo largo de la descripción anterior se pueden representar mediante tensiones, corrientes, ondas electromagnéticas, campos o partículas magnéticas, campos o partículas ópticas o cualquier combinación de los mismos.
[61] Además, los expertos en la materia apreciarán que los diversos bloques lógicos, módulos, circuitos y etapas de algoritmo ilustrativos descritos en relación con los modos de realización divulgados en el presente documento pueden implementarse como hardware electrónico, software informático o combinaciones de ambos. Para ilustrar claramente esta intercambiabilidad de hardware y software, anteriormente se han descrito diversos componentes, bloques, módulos, circuitos y pasos ilustrativos, en general, en lo que respecta a su funcionalidad. Que dicha funcionalidad se implemente como hardware o software depende de la aplicación particular y de las restricciones de diseño impuestas en el sistema general. Los expertos en la materia pueden implementar la funcionalidad descrita de formas distintas para cada aplicación particular, pero no debería interpretarse que dichas decisiones de implementación suponen apartarse del alcance de la presente invención.
[62] Los diversos bloques lógicos, módulos y circuitos ilustrativos descritos en relación con los modos de realización divulgados en el presente documento pueden implementarse o realizarse con un procesador de uso general, con un procesador de señales digitales (DSP), con un circuito integrado para aplicaciones específicas (ASIC), con una matriz de puertas programables in situ (FPGA) o con otro dispositivo de lógica programable, lógica de transistores o de puertas discretas, componentes de hardware discretos o con cualquier combinación de los mismos diseñada para realizar las funciones descritas en el presente documento. Un procesador de propósito general puede ser un microprocesador pero, como alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estados convencional. Un procesador también puede implementarse como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo de DSP o cualquier otra configuración de este tipo.
[63] Los procedimientos, las secuencias y/o los algoritmos descritos en relación con los modos de realización divulgados en el presente documento pueden realizarse directamente en hardware, en un módulo de software ejecutado por un procesador o en una combinación de ambos. Un módulo de software puede residir en una memoria RAM, en una memoria flash, en una memoria ROM, en una memoria EPROM, en una memoria EEPROM, en registros, en un disco duro, en un disco extraíble, en un CD-ROM o en cualquier otro medio de almacenamiento conocido en la técnica. Un medio de almacenamiento a modo de ejemplo está acoplado al procesador de tal manera que el procesador pueda leer información de, y escribir información en, el medio de almacenamiento. De forma alternativa, el medio de almacenamiento puede estar integrado en el procesador. El procesador y el medio de almacenamiento pueden residir en un ASIC. El ASIC puede residir en un terminal de usuario (por ejemplo, un UE). De forma alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en un terminal de usuario.
[64] En uno o más de los modos de realización ejemplares, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en, o transmitir por, un medio legible por ordenador como una o más instrucciones o código. Los medios legibles por ordenador incluyen tanto medios de almacenamiento informático como medios de comunicación, incluyendo cualquier medio que facilita la transferencia de un programa informático de un lugar a otro. Un medio de almacenamiento puede ser cualquier medio disponible al que se pueda acceder mediante un ordenador. A modo de ejemplo y no de limitación, dichos medios legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otros dispositivos de almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda utilizarse para transportar o almacenar código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe adecuadamente la denominación de medio legible por ordenador. Por ejemplo, si el software se transmite desde un sitio web, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas, tales como infrarrojos, radio y microondas, se incluyen en la definición de medio. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco láser, el disco óptico, el disco versátil digital (DVD), el disco flexible y el disco Blu-ray, donde algunos discos reproducen los datos magnéticamente, mientras que otros discos reproducen los datos ópticamente con láseres. Las combinaciones de lo anterior deberían incluirse también dentro del alcance de los medios legibles por ordenador.
[65] Aunque la divulgación anterior muestra modos de realización ilustrativos de la invención, debe observarse que pueden realizarse diversos cambios y modificaciones en el presente documento sin apartarse del alcance de la invención, como se define en las reivindicaciones adjuntas. Las funciones, etapas y/o acciones de las reivindicaciones de procedimiento de acuerdo a los modos de realización de la invención descritos en el presente documento no tienen que realizarse en ningún orden particular. Además, aunque los elementos de la invención puedan describirse o reivindicarse en singular, se contempla el plural a menos que se indique explícitamente la limitación al singular.
Claims (15)
1. Un procedimiento para operar un dispositivo cliente configurado para ejecutar una aplicación cliente que está registrada con un servidor en asociación con un usuario dado, que comprende:
obtener (700) una lista de dispositivos cliente en los que la aplicación cliente está registrada con el servidor en asociación con el usuario dado;
detectar (705), a través de una interfaz de comunicaciones local, que uno o más otros dispositivos cliente de la lista de dispositivos cliente están próximos al dispositivo cliente; y
comunicarse (710), en respuesta a una determinación de renovar la aplicación cliente por el dispositivo cliente o los uno o más otros dispositivos cliente, con los uno o más otros dispositivos cliente a través de la interfaz de comunicaciones local para identificar un dispositivo cliente dado que sea responsable de enviar un mensaje de solicitud de registro agregado para renovar el registro de la aplicación cliente con el servidor tanto para el dispositivo cliente como para los uno o más otros dispositivos.
2. El procedimiento de la reivindicación 1, en el que el dispositivo cliente se identifica como el dispositivo cliente dado que es responsable de enviar el mensaje de solicitud de registro agregado, que comprende además: configurar (725) el mensaje de solicitud de registro agregado para incluir (i) una solicitud para renovar el registro del dispositivo cliente de la aplicación cliente con el servidor, y (ii) una o más solicitudes para renovar uno o más registros de la aplicación cliente con el servidor para los uno o más otros dispositivos cliente; y transmitir (730) el mensaje de solicitud de registro agregado al servidor.
3. El procedimiento de la reivindicación 2, que comprende además:
recibir un mensaje del servidor que indica que se han renovado los registros de la aplicación cliente en el dispositivo cliente y en los uno o más otros dispositivos cliente; y
intentar notificar, a través de la interfaz de comunicaciones local, los uno o más otros dispositivos cliente que los uno o más registros de la aplicación cliente con el servidor para los uno o más otros dispositivos cliente se han renovado.
4. El procedimiento de la reivindicación 1, en el que el dispositivo cliente no se identifica como el dispositivo cliente dado que es responsable de enviar el mensaje de solicitud de registro agregado, que comprende además: abstenerse (720) de transmitir un mensaje de solicitud de registro al servidor en nombre del dispositivo cliente basándose en la expectativa de que el dispositivo cliente dado transmitirá el mensaje de solicitud de registro agregado.
5. El procedimiento de la reivindicación 4, que comprende además:
recibir, a través de la interfaz de comunicaciones local, una notificación del dispositivo cliente dado que indica que se ha renovado el registro de la aplicación cliente con el servidor para el dispositivo cliente.
6. El procedimiento de la reivindicación 1, que comprende además:
determinar renovar el registro de la aplicación cliente con el servidor para el dispositivo cliente, en el que la detección y la comunicación se realizan en respuesta a la determinación.
7. El procedimiento de la reivindicación 1, en el que la determinación se basa en el vencimiento de un temporizador de tiempo de vida (TTL) para la aplicación cliente en el dispositivo cliente.
8. El procedimiento de la reivindicación 1, en el que la detección y la comunicación se realizan en respuesta a una determinación realizada por otro dispositivo cliente para renovar el registro de la aplicación cliente con el servidor en el otro dispositivo cliente.
9. El procedimiento de la reivindicación 1, en el que dos o más dispositivos cliente en la lista de dispositivos cliente están configurados para ejecutar diferentes versiones de la aplicación cliente.
10. El procedimiento de la reivindicación 1, en el que cada dispositivo cliente en la lista de dispositivos cliente está configurado para ejecutar la misma versión de la aplicación cliente.
11. Un procedimiento para operar un servidor configurado para admitir una aplicación cliente, que comprende: registrar (800) la aplicación cliente para un usuario dado en cada uno de una pluralidad de dispositivos cliente diferentes;
proporcionar (805) una lista de la pluralidad de diferentes dispositivos cliente a al menos uno de la pluralidad de diferentes dispositivos cliente; y
recibir (810), en respuesta a la provisión, un mensaje de solicitud de registro agregado desde un dispositivo cliente dado entre la pluralidad de diferentes dispositivos cliente que incluye (i) una solicitud para renovar el registro del dispositivo cliente de la aplicación cliente con el servidor, y (ii) una o más solicitudes para renovar uno o más registros de la aplicación cliente con el servidor para uno o más otros dispositivos cliente que estén próximos al dispositivo cliente.
12. El procedimiento de la reivindicación 11, en el que los uno o más otros dispositivos cliente están próximos al dispositivo cliente en base a una capacidad esperada o real para comunicarse a través de una interfaz de comunicaciones local.
13. Un procedimiento para operar un servidor configurado para admitir una aplicación cliente, que comprende: registrar (1000) la aplicación cliente en asociación con un usuario dado en cada uno de una pluralidad de dispositivos cliente diferentes;
recibir (1005), desde un dispositivo cliente de entre la pluralidad de diferentes dispositivos cliente, una solicitud para renovar el registro del dispositivo cliente de la aplicación cliente;
detectar (1010) que el dispositivo cliente está próximo a al menos otro dispositivo cliente de entre la pluralidad de dispositivos cliente diferentes;
determinar (1015) renovar de forma preventiva el registro de la aplicación cliente del al menos otro dispositivo cliente; y
transmitir (1020) al dispositivo cliente en respuesta a la determinación, indicaciones de que se renuevan los registros de la aplicación cliente tanto para el dispositivo cliente como para el al menos otro dispositivo cliente.
14. El procedimiento de la reivindicación 13, que comprende además:
recibir un informe del dispositivo cliente que indica que un intento de notificar al al menos otro dispositivo cliente de la renovación del registro para la aplicación cliente ha tenido éxito; y
renovar el registro de la aplicación cliente del al menos otro dispositivo cliente en respuesta al informe.
15. El procedimiento de la reivindicación 13, que comprende además:
recibir un informe del dispositivo cliente que indica que un intento de notificar al al menos otro dispositivo cliente de la renovación del registro para la aplicación cliente ha fallado; y
abstenerse de renovar el registro de la aplicación cliente del al menos otro dispositivo cliente en respuesta al informe.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/717,596 US10397373B2 (en) | 2015-05-20 | 2015-05-20 | Renewing registrations for client applications installed on different proximate client devices |
| PCT/US2016/025878 WO2016186741A1 (en) | 2015-05-20 | 2016-04-04 | Renewing registrations for client applications installed on different proximate client devices |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2739155T3 true ES2739155T3 (es) | 2020-01-29 |
Family
ID=55806776
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES16718071T Active ES2739155T3 (es) | 2015-05-20 | 2016-04-04 | Renovación de registros para aplicaciones cliente instaladas en diferentes dispositivos cliente próximos |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US10397373B2 (es) |
| EP (1) | EP3298753B1 (es) |
| JP (1) | JP6704939B2 (es) |
| KR (1) | KR102033232B1 (es) |
| CN (1) | CN107637049B (es) |
| ES (1) | ES2739155T3 (es) |
| TW (1) | TW201642676A (es) |
| WO (1) | WO2016186741A1 (es) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10433021B2 (en) * | 2015-09-11 | 2019-10-01 | George G. Christoph | Geolocation based content delivery network system, method and process |
| CN107015870B (zh) * | 2016-09-19 | 2020-11-03 | 创新先进技术有限公司 | 实现web页面与本地应用通信的方法、装置和电子设备 |
| US10768979B2 (en) * | 2016-09-23 | 2020-09-08 | Apple Inc. | Peer-to-peer distributed computing system for heterogeneous device types |
| CN108234184B (zh) * | 2016-12-22 | 2021-01-15 | 上海诺基亚贝尔股份有限公司 | 用于管理用户信息的方法和设备 |
| US10425475B2 (en) * | 2017-02-27 | 2019-09-24 | International Business Machines Corporation | Distributed data management |
| US10447741B2 (en) * | 2017-07-26 | 2019-10-15 | T-Mobile Usa, Inc. | Server-managed notifications for maintaining registered state |
| US11189017B1 (en) | 2018-09-11 | 2021-11-30 | Apple Inc. | Generalized fusion techniques based on minimizing variance and asymmetric distance measures |
| CN111556024B (zh) * | 2020-03-31 | 2022-07-05 | 中国航天系统科学与工程研究院 | 一种反向接入控制系统及方法 |
| US11337091B2 (en) | 2020-04-30 | 2022-05-17 | Google Llc | Determination of user presence and absence using WiFi connections |
| EP4210398B1 (en) * | 2021-03-05 | 2025-03-05 | Spotify AB | Systems and methods for communicating with a device in a low power mode |
| CN114070825A (zh) * | 2021-11-17 | 2022-02-18 | 上海景吾智能科技有限公司 | 机器人与数字电话通信方法及系统 |
Family Cites Families (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6438690B1 (en) | 1998-06-04 | 2002-08-20 | International Business Machines Corp. | Vault controller based registration application serving web based registration authorities and end users for conducting electronic commerce in secure end-to-end distributed information system |
| JP2002133296A (ja) * | 2000-10-25 | 2002-05-10 | Nec Access Technica Ltd | 顧客管理装置と方法 |
| GB2406664B (en) | 2003-10-03 | 2006-12-13 | Sendo Int Ltd | Registering an application program of an information device |
| US7761571B2 (en) | 2003-11-25 | 2010-07-20 | Panasonic Corporation | SIP service for home network device and service mobility |
| US8655357B1 (en) | 2006-08-22 | 2014-02-18 | At&T Mobility Ii Llc | Systems and methods for identifying applications on a communications device |
| US8005236B2 (en) | 2006-09-07 | 2011-08-23 | Porto Vinci Ltd. Limited Liability Company | Control of data presentation using a wireless home entertainment hub |
| JP4270252B2 (ja) * | 2006-09-15 | 2009-05-27 | ソニー株式会社 | 情報処理装置、ダウンロード方法、ダウンロード中断方法、ダウンロード再開方法及びプログラム |
| US8271663B2 (en) | 2007-07-31 | 2012-09-18 | Cisco Technology, Inc. | System and method for multiple address of record registration using a single implicit SIP request |
| US8054780B1 (en) | 2008-12-09 | 2011-11-08 | Sprint Spectrum L.P. | Transparent application data notification during IMS registrations |
| US9232053B2 (en) | 2009-04-16 | 2016-01-05 | Mitel Networks Corporation | Extended hot desking features for multi-device users |
| US8239852B2 (en) | 2009-06-24 | 2012-08-07 | Uniloc Luxembourg S.A. | Remote update of computers based on physical device recognition |
| US10027676B2 (en) * | 2010-01-04 | 2018-07-17 | Samsung Electronics Co., Ltd. | Method and system for multi-user, multi-device login and content access control and metering and blocking |
| US8812601B2 (en) | 2011-05-09 | 2014-08-19 | Google Inc. | Transferring application state across devices with checkpoints |
| JPWO2013001814A1 (ja) * | 2011-06-30 | 2015-02-23 | パナソニック株式会社 | 通信装置、通信システム、サーバ装置及び通信方法 |
| KR101850817B1 (ko) | 2011-11-17 | 2018-04-23 | 삼성전자주식회사 | 서로 다른 단말에 어플리케이션을 자동으로 설치하는 장치 및 방법 |
| CN103379469B (zh) | 2012-04-13 | 2016-08-03 | 华为技术有限公司 | 近距离信息的注册方法、查询方法和用户设备 |
| CN108347713B (zh) | 2012-04-27 | 2021-12-28 | 交互数字专利控股公司 | Wtru及由wtru执行的方法 |
| US9130837B2 (en) | 2012-05-22 | 2015-09-08 | Cisco Technology, Inc. | System and method for enabling unconfigured devices to join an autonomic network in a secure manner |
| EP2912799B1 (en) * | 2012-10-26 | 2021-08-18 | Nokia Technologies Oy | Methods and apparatus for data security in mobile ad hoc networks |
| US9219758B2 (en) | 2013-03-05 | 2015-12-22 | Qualcomm Incorporated | Renewing registrations for a plurality of client applications that are associated with the same host server via an implicit piggybacking scheme |
| WO2014162175A1 (en) | 2013-04-02 | 2014-10-09 | Broadcom Corporation | Method and apparatus for discovering devices and application users |
| US9374699B2 (en) | 2013-05-14 | 2016-06-21 | Htc Corporation | Proximity-based service registration method and related apparatus |
| JP5549765B2 (ja) * | 2013-06-18 | 2014-07-16 | 株式会社リコー | ライセンス移行システム |
| KR101830887B1 (ko) * | 2013-09-20 | 2018-02-26 | 콘비다 와이어리스, 엘엘씨 | 근접성 서비스 및 사물 인터넷 서비스를 위한 조인트 등록 및 등록 해제 방법 |
| CN103581176A (zh) * | 2013-10-23 | 2014-02-12 | 大唐移动通信设备有限公司 | 会话初始协议sip消息注册刷新的方法及装置 |
| CN103607456B (zh) * | 2013-11-21 | 2018-12-18 | 厦门雅迅网络股份有限公司 | 一种集群移动终端的软件远程升级的方法 |
| US10445325B2 (en) * | 2014-02-18 | 2019-10-15 | Google Llc | Proximity detection |
| CN104243596B (zh) * | 2014-09-24 | 2017-11-28 | 厦门美图移动科技有限公司 | 软件管理方法、设备和移动终端 |
-
2015
- 2015-05-20 US US14/717,596 patent/US10397373B2/en not_active Expired - Fee Related
-
2016
- 2016-04-04 WO PCT/US2016/025878 patent/WO2016186741A1/en not_active Ceased
- 2016-04-04 JP JP2017559656A patent/JP6704939B2/ja active Active
- 2016-04-04 EP EP16718071.0A patent/EP3298753B1/en active Active
- 2016-04-04 KR KR1020177033370A patent/KR102033232B1/ko active Active
- 2016-04-04 CN CN201680028526.8A patent/CN107637049B/zh active Active
- 2016-04-04 ES ES16718071T patent/ES2739155T3/es active Active
- 2016-04-08 TW TW105111112A patent/TW201642676A/zh unknown
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018523196A (ja) | 2018-08-16 |
| WO2016186741A1 (en) | 2016-11-24 |
| CN107637049A (zh) | 2018-01-26 |
| US20160344845A1 (en) | 2016-11-24 |
| TW201642676A (zh) | 2016-12-01 |
| EP3298753A1 (en) | 2018-03-28 |
| KR102033232B1 (ko) | 2019-10-16 |
| EP3298753B1 (en) | 2019-05-15 |
| US10397373B2 (en) | 2019-08-27 |
| JP6704939B2 (ja) | 2020-06-03 |
| KR20180008503A (ko) | 2018-01-24 |
| CN107637049B (zh) | 2020-06-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2739155T3 (es) | Renovación de registros para aplicaciones cliente instaladas en diferentes dispositivos cliente próximos | |
| US9219758B2 (en) | Renewing registrations for a plurality of client applications that are associated with the same host server via an implicit piggybacking scheme | |
| US11736927B2 (en) | Network assisted device-to-device discovery for peer-to-peer applications | |
| US10425846B2 (en) | Network assistance for device-to-device discovery | |
| KR101812139B1 (ko) | 다중-인터페이스 트래픽 오프로딩에 대한 캡티브 포털 상태 검출 및 회피 | |
| US9386004B2 (en) | Peer based authentication | |
| CN105009614A (zh) | 用于使用近场通信进行对等wi-fi测距的方法和设备 | |
| US9225579B2 (en) | Renewing registrations for a plurality of client applications that are associated with the same host server via an explicit piggybacking scheme | |
| CN105916100A (zh) | 代理心跳包的方法、装置和通信系统 | |
| US20160105786A1 (en) | Leveraging peer-to-peer discovery messages for group activity notification | |
| US11290982B2 (en) | Notifications concerning UE unreachability | |
| KR20170021876A (ko) | 코어 네트워크와 무선 노드 인증의 오프로딩 | |
| JP6251210B2 (ja) | 端末装置、通信セッション確立方法、及び、プログラム | |
| JP6469203B2 (ja) | 端末装置、通信セッション確立方法、及び、プログラム | |
| Kaja et al. | Cloud acknowledgment scheme for a node network | |
| US9635527B1 (en) | SMS delivery to prevent duplicate SMS messages on LTE | |
| TW201505463A (zh) | 推送通知方法、系統以及無線通信裝置 | |
| BR112019000885B1 (pt) | Troca de credenciais de registro de servidor de rede sobre rede d2d |