ES2569264T3 - Arquitectura y sistema para la conciencia de la ubicación - Google Patents

Arquitectura y sistema para la conciencia de la ubicación Download PDF

Info

Publication number
ES2569264T3
ES2569264T3 ES04007400.7T ES04007400T ES2569264T3 ES 2569264 T3 ES2569264 T3 ES 2569264T3 ES 04007400 T ES04007400 T ES 04007400T ES 2569264 T3 ES2569264 T3 ES 2569264T3
Authority
ES
Spain
Prior art keywords
location
resolver
data
service
extension module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES04007400.7T
Other languages
English (en)
Inventor
Mohammed Shabbir Alam
Warren Vincent Barkley
Timothy M. Moore
Geoffrey E. Pease
Steven A. N. Shafer
Florin Teodorescu
Yinghua Yao
Madhurima Pawar
John C. Krumm
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2569264T3 publication Critical patent/ES2569264T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02MAPPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
    • H02M1/00Details of apparatus for conversion
    • H02M1/36Means for starting or stopping converters
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02MAPPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
    • H02M3/00Conversion of dc power input into dc power output
    • H02M3/22Conversion of dc power input into dc power output with intermediate conversion into ac
    • H02M3/24Conversion of dc power input into dc power output with intermediate conversion into ac by static converters
    • H02M3/28Conversion of dc power input into dc power output with intermediate conversion into ac by static converters using discharge tubes with control electrode or semiconductor devices with control electrode to produce the intermediate ac
    • H02M3/325Conversion of dc power input into dc power output with intermediate conversion into ac by static converters using discharge tubes with control electrode or semiconductor devices with control electrode to produce the intermediate ac using devices of a triode or a transistor type requiring continuous application of a control signal
    • H02M3/335Conversion of dc power input into dc power output with intermediate conversion into ac by static converters using discharge tubes with control electrode or semiconductor devices with control electrode to produce the intermediate ac using devices of a triode or a transistor type requiring continuous application of a control signal using semiconductor devices only
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02MAPPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
    • H02M1/00Details of apparatus for conversion
    • H02M1/0003Details of control, feedback or regulation circuits
    • H02M1/0032Control circuits allowing low power mode operation, e.g. in standby mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/10Technologies improving the efficiency by using switched-mode power supplies [SMPS], i.e. efficient power electronics conversion e.g. power factor correction or reduction of losses in power supplies or efficient standby modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Un procedimiento de operación de un servicio (210) implementado por ordenador en un dispositivo informático (110) que comprende: recibir una solicitud de contexto de ubicación del dispositivo informático; adquirir, de uno o más dispositivos de detección de la ubicación, datos asociados con la ubicación actual; reconciliar cualquier incoherencia en los datos adquiridos relativa a la ubicación actual aplicando al menos un proceso a los datos adquiridos; y generar un objeto de ubicación accesible a una o más aplicaciones (220), incluyendo el objeto de ubicación un contexto de ubicación reconciliado para el dispositivo informático.

Description

imagen1
imagen2
imagen3
imagen4
imagen5
10
15
20
25
30
35
40
45
50
55
60
Posteriormente, en una realización, las aplicaciones y los componentes que recuperan datos lo hacen solo cuando los componentes 336, 338 y 340 tienen datos listos para ser recuperados.
Los resolutores 320 reciben los datos detectados y traducidos o, en algunos casos, datos de ubicación en bruto, tal como información de ubicación específica al dispositivo, e interpretan los datos. Los resolutores 320 pueden ser implementados como módulos de extensión del servicio 210 de ubicación y pueden incluir traductores de la información de ubicación específica al dispositivo y fuentes de datos. Los resolutores 320 operan traduciendo la información de ubicación específica al dispositivo a información de ubicación enriquecida usando fuentes de datos disponibles para inferir datos nuevos a partir de datos existentes. En una realización, un resolutor 320 puede traducir al menos una porción de los datos recibidos de uno o más dispositivos. Cada resolutor 320 podría ser capaz de interpretar al menos un tipo de datos en bruto o parcialmente decodificados procedentes de un proveedor 310. Por ejemplo, un resolutor 320 podría estar dedicado a interpretar únicamente datos de tipo 802.11. El resolutor se daría entonces de alta en el componente 330 de gestión de la ubicación como intérprete únicamente de datos de tipo
802.11 y recibiría únicamente ese tipo de datos. Además, cada resolutor 320 puede ser configurado para traducir información de otro resolutor, en cuyo caso el resolutor podría no ser capaz de traducir datos en bruto ni datos parcialmente decodificados. La Figura 3 también muestra el componente 360 del sistema de ficheros de Windows® que recibe datos del servicio 210 de ubicación.
El motor 340 de fusión genera un objeto de la ubicación actual. El servicio 210 de ubicación verifica los datos de la ubicación actual por medio de un módulo de extensión o de varios módulos de extensión, incluyendo los módulos 310″ de extensión de proveedor y los módulos 320 resolutores de extensión. En este contexto, se puede implementar un módulo de extensión como una o más bibliotecas cargables dinámicamente o bibliotecas de enlace dinámico (DLL) u otro módulo cargable dinámicamente capaz de expandir las prestaciones del soporte lógico, el soporte lógico inalterable o los componentes del sistema.
Visión general del sistema
Con referencia ahora a la Figura 4, un diagrama de bloques del sistema 210 de ubicación y los componentes circundantes ilustra en general que el servicio 210 de ubicación actúa como una estructura agnóstica de cualquier aplicación, y agnóstica en cuanto a los dispositivos y las fuentes de datos a partir de los que se obtiene la información. Se muestra que el servicio 210 de ubicación incluye el motor 340 de fusión, una antememoria 334, el agente 332″ de usuario, un gestor 338 de módulos de extensión y el resolutor maestro 336. El servicio 210 de ubicación incluye, además, el servidor SQL 450 del WinFS (sistema de ficheros de Windows®), la API 404 de proveedores de ubicación, la API 414 de resolutores de ubicación, la API 416 de notificaciones de ubicación, la API 418 de usuarios de ubicación, y la API 420 de gestión de la ubicación. El servidor SQL 450 del WinFS acopla el servicio 210 de ubicación a un servicio 460 de notificación y a una API LocUsr 418 de notificaciones de usuario y una API 416 de notificaciones de ubicación. Las API 416 y 418 pueden interactuar con una aplicación 220.
La API 418 de usuarios de ubicación permite que una aplicación consulte la ubicación actual del ordenador que ejecuta el servicio 210 de ubicación. La API 414 de resolutores de ubicación especifica qué funciones precisa implementar un módulo de extensión para darse de alta en el servicio. Según se muestra, la API 418 de usuarios de ubicación recibe datos del servidor 450 de WinFS y pasa los datos a una o más aplicaciones 220(1-n). La API 420 de gestión de la ubicación recibe datos de varias ubicaciones, tal como el motor 340 de fusión, el agente 332 de usuario, la antememoria 334, el gestor 338 de módulos de extensión y el resolutor maestro 336 y pasa los datos en uno y otro sentido a una o más aplicaciones 220. La API 420 de gestión de la ubicación permite configurar los parámetros y los componentes del servicio. La API 420 de gestión de la ubicación también permite añadir y eliminar proveedores y resolutores. La API 416 de notificaciones de ubicación recibe datos del servicio 460 de notificación y pasa datos a las aplicaciones 220. La API 416 de notificaciones de ubicación permite que una aplicación se dé de alta para recibir una notificación cuando haya cambiado la ubicación del ordenador que ejecuta el servicio. En una realización, una API separada, una API de alta de aplicaciones, permite que las aplicaciones se den de alta para recibir notificaciones y determinar la ubicación actual. En la realización, es preciso que las aplicaciones, en primer lugar, se den de alta para obtener datos de ubicación. Una vez dada de alta, una aplicación puede escoger recibir una notificación por razones predeterminadas. La API 414 de resolutores de ubicación envía y recibe datos del gestor 412 de módulos de extensión y del resolutor maestro 336 y transmite los datos al usuario de resolutores de ubicación/base de datos 408(1) de Windows®, al directorio activo 408(2) de resolutores de ubicación, y a la aplicación MapPoint® 408(3) de los resolutores de ubicación, así como a otros resolutores de ubicación que pudieran beneficiarse de los datos de ubicación. El resolutor maestro 336 es responsable de gestionar la resolución de la información de ubicación. Cuando el gestor 412 de módulos de extensión pasa al resolutor maestro 336 información de ubicación específica al dispositivo, el resolutor maestro 336 encamina los datos a los resolutores que están libres y que, a la vez, son capaces de resolver la información.
Específicamente, con referencia a la Figura 4, el flujo que pasa a través del servicio 210 de ubicación puede ser descrito mediante un ejemplo, comenzando con los proveedores 402. Un proveedor, por ejemplo un proveedor
802.11 obtiene datos de exploración. Si el proveedor 402 determina que hay nuevos puntos de acceso, el proveedor agrupa la dirección del control de acceso al medio (MAC) y la información de la intensidad de señal en un informe
802.11. El proveedor 802.11 señala que está lista la información para el gestor 338 de módulos de extensión. El
5
10
15
20
25
30
35
40
45
50
gestor 338 de módulos de extensión toma los conjuntos de información y envía una señal al resolutor maestro 336 de que hay un nuevo informe de ubicación para ser resuelto.
A continuación, el resolutor maestro 336 recupera del gestor 338 de módulos de extensión el informe de ubicación. Acto seguido, el resolutor maestro 336 pasa el informe de ubicación al agente 332 de usuario.
El agente 332 de usuario comprueba la antememoria 334 en busca de este informe de ubicación. Es posible que la antememoria 334 devuelva un fallo. En tal caso, la antememoria 334 incorpora los datos en sí misma y comprueba un servidor. Al comprobar el servidor de la antememoria, podría determinarse la ubicación de un usuario en función del informe de ubicación. Si la antememoria no determina la ubicación del usuario, el agente 332 de usuario genera un fallo.
Después de que el agente 332 de usuario genere un fallo, el resolutor maestro 336 pasa el informe de ubicación a un resolutor 408, tal como el resolutor 408(2) del directorio activo (AD). El resolutor 408(2) del AD localiza la información de la dirección MAC en el informe de ubicación, se conecta con el directorio activo y encuentra la ubicación del punto de acceso. A continuación, el resolutor 408(2) del AD devuelve al resolutor maestro 336 la ubicación del punto de acceso como un informe de ubicación. Acto seguido, el resolutor maestro 336 pasa el informe de ubicación al agente 332 de usuario. El agente 332 de usuario comprueba la antememoria 334 en busca de una coincidencia con el informe de ubicación devuelto por el resolutor 408(2) del AD. Si la antememoria 332 genera un fallo, el agente 332 de usuario mete en la antememoria el informe del AD. A continuación, el agente 332 de usuario comprueba entonces el WinFS 450 para encontrar cualquier ubicación guardada que esté relacionada con el informe de ubicación generado por el resolutor 408(2) del AD. Si no se encuentra nada, el agente 332 de usuario informa al resolutor maestro 336 que no hay ningún dato adicional. A continuación, el resolutor maestro 336 envía una señal al motor 340 de fusión de que hay datos que recuperar. El motor 340 de fusión recupera dos informes de ubicación, incluyendo un informe de ubicación 802.11 y un informe de ubicación de AD.
A continuación, el motor 340 de fusión fusiona estos informes y escribe en WinFS 350 un objeto de ubicación que representa los informes fusionados y ambos informes de ubicación como la ubicación actual.
Acto seguido, el servicio 460 de notificaciones, que puede ser configurado para ejecutarse sobre el WinFS, genera una notificación. La notificación generada pasa a través de una API de notificaciones de ubicación y a las aplicaciones dadas de alta para recibir una notificación.
La API 414 de resolutores de ubicación es una interfaz entre el servicio 210 de ubicación y los resolutores. Además, la API 414 de resolutores de ubicación permite que cada resolutor notifique al servicio 210 de ubicación que un resolutor tiene nueva información de ubicación. La API 414 de resolutores de ubicación permite que el resolutor transfiera esta información al servicio 210 de ubicación.
La API 404 de proveedores de ubicación envía y recibe datos de proveedores de ubicación, tales como los proveedores 402(1-n), que pueden incluir un proveedor 802.11, un proveedor de Bluetooth, un proveedor del sistema de posicionamiento global y otros tipos de proveedores de datos de ubicación. La API 404 de proveedores de ubicación es una interfaz entre el servicio 210 de ubicación y los proveedores. La API 404 de proveedores de ubicación permite que cada proveedor notifique al servicio de que tiene nueva información de ubicación y transfiere esta información al servicio.
En una realización, la API 404 de proveedores de ubicación y la API 414 de resolutores de ubicación forman ambas partes de una API de gestión de módulos de extensión. La API de gestión de módulos de extensión incluye, además, un módulo de extensión gestor de módulos de extensión, que es una interfaz entre el gestor 338 de módulos de extensión y un módulo 402 de extensión de proveedor. La interfaz del módulo de extensión gestor de módulos de extensión proporciona datos a interfaces tanto de proveedor como de resolutor. Según la realización, para ser un proveedor 402, deben implementarse tanto una API de proveedores de ubicación como un módulo de extensión gestor de módulos de extensión.
El motor 340 de fusión opera fusionando datos obtenidos del resolutor maestro 336. Generalmente, el motor 340 de fusión resuelve conflictos y unifica “informes” recibidos de diferentes resoluciones de conciencia de la ubicación recibidas de proveedores de ubicación. Los datos relativos a la ubicación llegan a través del resolutor maestro 336, que filtra los datos y transmite los datos a la antememoria 334 y luego al motor 340 de fusión.
El agente 332 de usuario opera comprobando la antememoria 334 para determinar si los informes de la ubicación actual pueden ser resueltos adicionalmente usando datos metidos en la antememoria. El agente 332 de usuario comprueba, además, el WinFS 450 para ver si los informes de la ubicación actual indican una ubicación que un usuario haya guardado.
La antememoria 334 opera almacenando árboles de resolución. Los árboles de resolución permiten que el servicio 210 de ubicación reduzca el número de ciclos de resolución.
imagen6
imagen7
10
15
20
25
30
35
40
45
50
Según se muestra en la Figura 6, el resolutor maestro 336 es inicializado en el bloque 602, y aguarda hasta que el resolutor maestro 336 recibe del gestor 412 de módulos de extensión una notificación en el bloque 604. Tras recibir la notificación, el resolutor maestro 336 recupera entonces un conjunto de informes de ubicación que fueron guardados por el gestor 412 de módulos de extensión y los guarda en el bloque 605. A continuación, el resolutor maestro 336 comprueba cada resolutor para averiguar si hay disponible un resolutor para resolver un informe, según se muestra en el bloque de decisión 606. Si hay disponible un resolutor para resolver un nuevo informe de ubicación, el resolutor maestro 336 comprueba entonces para ver si ese resolutor está configurado para uno de los tipos de informes de ubicación en el conjunto guardado de informes de ubicación, es decir, si es capaz de resolver un informe, según se muestra en el bloque 607. Si un resolutor es capaz de resolver cualquier informe, el resolutor maestro 336 determina si se ha alcanzado o no un número máximo de iteraciones, según se muestra en el bloque
608. Si no se ha alcanzado el número máximo de iteraciones, el resolutor maestro 336 remite el informe al agente 332 de usuario en el bloque 609. El agente 332 de usuario interactúa con el WinFS y la antememoria 334 para añadir datos al informe. Al usar datos de la antememoria, los informes están protegidos, evitando enviar más datos que los necesarios a los resolutores. Si el agente 332 de usuario y la antememoria 334 son incapaces de añadir datos necesarios, el resolutor maestro 336 remite los datos al resolutor apropiado y pone en marcha un temporizador asociado e incrementa el número de iteraciones, según se muestra en el bloque 610.
En el bloque 611, si no hay disponible ningún resolutor, o si se ha alcanzado el número máximo de iteraciones, se determina que los informes están listos para ser fusionados. En una realización, el resolutor maestro 336 puede transmitir informes de ubicación, dependiendo del resolutor que interprete los datos.
Antes de que venza el plazo del temporizador, en el bloque 612, cuando un resolutor 408 notifica al resolutor maestro 336 que se ha completado la resolución para un informe particular de ubicación, el resolutor maestro 336 sobreescribe cualquier conjunto previo de informes de ubicación generado por ese resolutor particular.
El bloque 613 dispone que, al vencer el plazo del temporizador, el resolutor maestro 336 añada cualesquiera informes de ubicación de última hora a un conjunto de informes de ubicación que están listos para ser enviados al motor 340 de fusión. Además, el resolutor maestro 336 pone a cero cualquier resolutor asociado con ese temporizador para que todos los informes de ubicación antiguos con los resolutores sean ignorados, y el conjunto de informes de ubicación es enviado al motor 340 de fusión. El resolutor maestro 336 comprueba además cada uno de los resolutores libres para conocer su disponibilidad para resolver cualquier informe de ubicación nuevo.
El motor 340 de fusión opera en los datos, y el bloque 614 dispone que el resolutor maestro 336 reciba actualizaciones del motor 340 de fusión en forma de un objeto de ubicación más reciente (LatLoc). Tras recibir el LatLoc, el bloque 616 prevé que el motor 340 de fusión transfiera el LatLoc al WinFS, el cual puede entonces desencadenar el servicio 460 de notificación para que notifique que un nuevo objeto de ubicación requiere atención.
En una realización, el resolutor maestro 336 mantiene un contador que denota un ciclo de un conjunto actual de informes de ubicación que están listos para ser enviados al motor 340 de fusión para resolver conflictos, un conjunto más reciente de informes de ubicación listos para ser resueltos, un objeto más reciente de extensión de ubicación para su transmisión al motor 340 de fusión y cualquier informe de la ubicación actual que pueda estar en vías de resolución por un resolutor 408. En una realización, la determinación de qué informes de ubicación deberían ser transmitidos desde el resolutor maestro 336 al motor 340 de fusión se determina según el contador. En esta realización, el contador contribuye evitando que se envíen datos antiguos al resolutor maestro 336. Los datos antiguos pueden recibir la etiqueta de asignables a un ciclo más antiguo.
Una realización dispone que haya disponible en cualquier momento una imagen fija que represente la interpretación de la ubicación del ordenador por parte del resolutor maestro 336. La imagen fija representa datos que están listos para ser transmitidos al motor 340 de fusión en el momento dado. Cada informe de ubicación identifica un conjunto de informes de ubicación que genera el proveedor asociado 402. Los informes de ubicación también pueden ser generados indirectamente a partir de otros informes de ubicación, en cuyo caso puede configurarse un puntero para enlazar entre sí los informes de ubicación.
Tabla 1
Clave
Valor
Resolutor1
En vías de resolución: Más reciente: LReport2 Lreport1
Resolutor2
En vías de resolución: Más reciente: LReport2 LReport2
Resolutor3
En vías de resolución: Más reciente: LReport1 LReport3
Con referencia a la anterior Tabla 1, una estructura ejemplar de datos asociada con el resolutor maestro 336 ilustra los resolutores 408 y sus correspondientes valores. Según se muestra, se mantiene el informe de ubicación más reciente en el que está operando cada resolutor 408. En otra realización, los informes de ubicación están en una estructura jerárquica de datos.
5
10
15
20
25
30
35
40
imagen8
La Figura 7 ilustra un diagrama de estado según una realización del resolutor maestro 336. El diagrama de estado muestra la iniciación del resolutor maestro 702. El resolutor maestro 336 aguarda una notificación de la antememoria 334, según se muestra con la línea 704. Tras la recepción de una notificación, en el nodo 703, el resolutor maestro 336 recupera los informes 706 de ubicación. El resolutor maestro comprueba el gestor 412 de módulos de extensión en busca de datos. Cuando están listos, el resolutor maestro 336 recupera los datos y comprueba la antememoria 334 en busca de cualquier dato coincidente. Si no hay datos coincidentes, el resolutor maestro 336 comprueba los resolutores y escribe encima de cualquier informe antiguo 708.
El nodo 709 indica la iniciación de la determinación de si un resolutor 408 puede o no resolver un informe de ubicación. Si cualquier resolutor puede resolver un informe 710, el diagrama de estado prosigue al nodo 711. Si ningún resolutor, ni la antememoria 334 ni el agente 332 de usuario puede resolver un informe, entonces el resolutor maestro 336 escribe en el motor 340 de fusión a través de la línea 712. El nodo 715 representa la escritura en el motor 340 de fusión. Tras escribir en el motor 340 de fusión, el proceso se repite, según se muestra con la línea 713. En el nodo 711, si el número de iteraciones es inferior a un límite “n”, los informes son enviados a los resolutores 408 con un temporizador puesto en marcha y el contador incrementado, según se muestra con la línea 716. En el nodo 719, las notificaciones de los resolutores 408 son recibidas y los registros de ubicación son grabados, según muestra la línea 718.
Resolutores
Según se ha expuesto más arriba, los resolutores 408 recuperan del resolutor maestro 336 información de la ubicación. Los resolutores 408 pueden ser configurados para que incluyan información enriquecida en los informes de ubicación y devuelvan los informes de ubicación mejorados al resolutor maestro 336. Se espera que los resolutores informen al servicio 210 de ubicación en cuanto a los tipos de datos de ubicación que los resolutores son capaces de resolver tras su instalación. Un resolutor 408 está configurado para entender cierto tipo de datos. Si un resolutor 408 es capaz de encontrar información relativa a ese tipo de datos, el resolutor pasa los datos al resolutor maestro 336 como uno o más informes de ubicación.
En una realización, los resolutores 408 se comunican con una o más fuentes para traducir información. Los resolutores 408 también se comunican con una antememoria de datos procedentes de las fuentes. En una realización, los resolutores 408 siguen una directriz que determina si los resolutores 408 pueden o deberían ponerse en contacto con las fuentes en busca de datos. Los resolutores 408 son capaces, además, de proporcionar estructuras de datos a las que puede acceder el servicio 210 de ubicación, tales como una lista de informes de ubicación que son traducibles, que puede ser específica a un resolutor. Otra estructura de datos dentro de un resolutor incluye una identificación del informe que se está traduciendo actualmente y de cualquier objeto traducido.
Una estructura de datos apropiada para para enumerar informes de ubicación puede implementarse como:
List[LReport] can_translate; En operación, los resolutores 408 aguardan una notificación del resolutor maestro 336. Tras la notificación, se recupera un informe de ubicación para su resolución. La resolución crea informes de ubicación que son devueltos al resolutor maestro 336.
Gestor de módulos de extensión
Con referencia ahora a las Figuras 8A y 8B, los diagramas ilustran las funciones del gestor 412 de módulos de extensión. En general, el gestor 412 de módulos de extensión es responsable de las interacciones y los intercambios de datos entre el servicio 210 de ubicación y cualquier módulo de extensión dado de alta. Más específicamente, en una realización, el gestor 412 de módulos de extensión implementa dos funciones fundamentales, que incluyen proporcionar una gestión central para las interacciones con los módulos de extensión y proporcionar una función
10
15
20
25
30
35
central de enumeración para interceptar las notificaciones de actualizaciones que se originan en los proveedores. Como gestor central, el gestor 412 de módulos de extensión es el componente central que recibe solicitudes administrativas de los usuarios desde una API de gestión (LocMgmtAPI). El gestor 412 de módulos de extensión traduce las solicitudes en acciones llevadas a cabo por medio de unas API de módulos de extensión de ubicación, que pueden ser para proveedores, resolutores o ambos. El papel del control administrativo del gestor 412 de módulos de extensión es interconectar el servicio 210 de ubicación con los resolutores y los proveedores. En una realización, el gestor 412 de módulos de extensión mantiene un conjunto de objetos que representan módulos de extensión de proveedor y resolutor que representan a todos los módulos de extensión dados de alta en ese momento. Como gestor del conjunto, el gestor 412 de módulos de extensión es responsable de proporcionar una lista de los módulos de extensión dados de alta en el servicio 210 de ubicación; y para dar de alta o de baja los módulos de extensión, ya sea en el momento de arranque del servicio o dinámicamente, tras una solicitud del usuario o de la aplicación. Por ejemplo, el alta/la baja puede realizarse mediante unas API de gestión, que podrían ser implementadas como LocMgmtRegisterPlg/LocMgmtUnregisterPlg; y arbitrar el acceso de solo lectura/lectura y escritura por parte de una aplicación a la configuración de un módulo de extensión; e interconectar llamadas de consulta y conjuntos, LocMgmtQuery/SetPlg, y datos de configuración procedentes de módulos de extensión y destinados a los mismos.
En una realización, el gestor 412 de módulos de extensión es un componente de escucha implementado como componente central de escucha de notificaciones de actualización de dispositivos que se originan en los módulos de extensión de proveedor de ubicación.
La representación interna de un módulo de extensión dado de alta se describe de manera genérica mediante un objeto que tiene la estructura mostrada a continuación en la Tabla 3:
Tabla 3
class CPlugin : public CSync { ... protected: // parámetros del módulo de extensión objeto de imagen en la implementación del módulo de extensión EPLG_TYPE m_ePIgType; // Tipo del módulo de extensión; LPWSTR m_wszGuid; // GUID del módulo de extensión LPWSTR m_wszBinary; // Binario que implementa el módulo de extensión
// parámetros del módulo de extensión usados para la gestión interna HANDLE m_hModule; // Puntero abstracto al módulo que implementa el módulo de extensión HANDLE m_hRegNotif; // Puntero abstracto para el alta para recibir notificaciones HANDLE m_hNtfEvent; // Evento de notificación propiedad del módulo de extensión LPVOID m_lpContext; // Contexto específico del módulo de extensión PFNLocPlgInit m_pfnLocPlgInitialize; // Selector de inicialización del módulo de extensión PFNLocPlgTerm m_pfnLocPlgTerminate; // Selector de terminación del módulo de extensión PFNLocPlgQueryConfig m_pfnLocPlgQueryConfig; // Selector de "configuración de consultas" PFNLocPlgSetConfig m_pfnLocPIgSetConfig; // Selector de "configuración de conjuntos" ... };
Las estructuras de datos proporcionadas en la Tabla 3 incluyen seis estructuras de datos. Una es m_ePIgType, que proporciona un tipo de enumeración que identifica el tipo del módulo de extensión, ya sea un módulo de extensión de proveedor de ubicación (ePlgProvider) o un módulo de extensión de resolutor de ubicación (ePlgResolver). Una segunda estructura de datos es m_wszGuid, que identifica de forma unívoca el módulo de extensión con un identificador único global (GUID). El GUID puede almacenarse en el campo wszPlgGuid en el formato L"a QIA11’ {xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx}" y puede ser preprogramado por el propio módulo de extensión. El servicio 210 de ubicación recupera el GUID del módulo de extensión en el momento del alta.
Una tercera estructura de datos es m_wszBinary, que proporciona el nombre del binario que implementa el módulo de extensión. Un binario puede implementar múltiples módulos de extensión; por lo tanto, generalmente la estructura de datos no identifica de forma unívoca un módulo de extensión particular.
Una cuarta estructura de datos es m_hModule, que proporciona un puntero abstracto a la biblioteca de enlace dinámico (DLL) que implementa el módulo de extensión.
Una quinta estructura de datos es mhNtfEvent, que proporciona un evento de notificación que ha de ser señalizado por los módulos de extensión de proveedor/resolutor de ubicación siempre que hayan cambiado los datos sensibles a la ubicación para algún dispositivo (un informe de dispositivos) o siempre que se hayan inferido informes de ubicación. Los módulos de extensión pueden crear el evento de notificación cuando son invocados a una función de inicialización y devuelven al servicio el puntero abstracto a este evento. Subsiguientemente, siempre que un módulo
de extensión tiene un informe de dispositivo/informe de ubicación actualizado, solo precisa señalar este evento para notificar al servicio 210 de ubicación en cuanto a la actualización.
Una sexta estructura de datos es m_pfnLocPlg*, que proporciona punteros a las funciones exportadas por un módulo de extensión. Cuando se crea un contexto de módulos de extensión (ya sea en el momento del alta o en el 5 momento de arranque del servicio), el servicio 210 de ubicación los inicializa con punteros a funciones predeterminadas, tales como las identificadas como API de módulos de extensión de ubicación.
Los módulos de extensión tienen, además, clases de identificación CProvPlugin y CResPlugin, que pueden identificarlos ya sea como un módulo de extensión de resolutor o un módulo de extensión de proveedor. A continuación, se proporciona una definición ejemplar en la Tabla 4 derivada de CPlugin, con la definición como
10 sigue:
Tabla 4
class CProvPlugin : public CPlugin { ... private: // miembros de datos privados
// parámetros del módulo de extensión usados para la gestión de la temporización time_t m_tmNtfThreshold; // Intervalo umbral de notificaciones ... PFNLocProvRefreshReports m_pfnLocProvRefreshReports; // Selector de "Actualizar informes" PFNLocProvReadReports m_pfnLocProvReadReports; // Selector de "Leer informes" ...
};
y
class CResPlugin : public CPlugin { private:
PFNLocResResolveReports m_pfnLocResResolveReports; // Selector de "Resolver informes" PFNLocResReadReports m_pfnLocResReadReports; // Selector de "Leer informes" ...
};
El gestor 412 está internamente representado en el servicio 210 de ubicación como un objeto, tal como el descrito a continuación en la Tabla 5:
Tabla 5
class CPluginMgr: public CSync ( private:
... // mapa para módulos de extensión de proveedor G2P Map m_mapProv; // mapa para módulos de extensión de resolutor G2P_Map m_mapRes; ...
public: // miembros de datos públicos HANDLE m_hNtfEvent;
public: ... // Inicializar el objeto PluginMgr DWORD Initialize(); // Limpiar los recursos usados por el objeto PluginMgr DWORD Terminate(); // Cargar un módulo de extensión proporcionado por su GUID y el binario que lo implementa DWORD LoadPlugin(LPWSTR wszGuid, LPWSTR wszBinary, PEPLG_TYPE pPlgType=NULL); // Dar de baja el módulo de extensión proporcionado por su GUID DWORD UnloadPlugin(LPWSTR wszGuid); // Devolver la tabla que enumera todos los módulos de extensión dados de alta en el servicio DWORD EnumeratePlugins(PLM_PLG_TABLE pPlgTable); // Abrir un puntero abstracto de usuario para un módulo de extensión particular DWORD OpenPlugin(LPWSTR wszGuid, DWORD dwFlags, HANDLE *phPlg); // Cerrar un puntero abstracto de usuario para un módulo de extensión particular
5
10
15
20
25
30
35
40
DWORD ClosePlugin(HANDLE phPIg);
// Sacar los informes de ubicación acumulados en los proveedores
DWORD PullProvReports(CReportSet & reportSet);
// Meter los informes de ubicación en los resolutores
DWORD PushResReports(HANDLE hCycle, CReportSet & reportSet, BOOL & bWait);
... public: // llamadas de gestión al gestor de módulos de extensión
// Consultar la configuración del PluginMgr
DWORD QueryConfig(DWORD dwInFlags, PLM_PLGMGR pPlgMgrCfg, LPDWORD pdwOutFlags);
// Realizar llamada a la configuración del PluginMgr
DWORD SetConfig(DWORD dwIrtFlaqs, PLM_PLGMGR pPlgMgrCfg, LPDWORD pdwOutFlags); public: // invalidables
DWORD OnPluginNotify(CProvPlugin *pProvPlugin); );
Los miembros del gestor 412 de módulos de extensión incluyen siete tipos de estructuras de datos. Un primer tipo es m_mapProv y m_mapRes, que son conjuntos de todos los módulos de extensión de proveedor y resolutor dados de alta. Los conjuntos contienen referencias a objetos CPlugin, representando cada uno internamente las características y la interfaz con el respectivo módulo de extensión.
Un segundo tipo de estructura de datos es m_hNtfEvent, que proporciona un evento de notificación para el gestor 412 de módulos de extensión. Cada vez que el gestor 412 de módulos de extensión tiene informes actualizados procedentes de módulos de extensión de proveedor, la estructura de datos establece este evento. El resolutor maestro 406 está dado de alta en este evento, de modo que detecta las notificaciones del gestor 412 de módulos de extensión y saca las actualizaciones cuando están listas.
Un tercer tipo de estructura de datos es Initialize y Terminate, que proporcionan al gestor 412 de módulos de extensión selectores de inicialización y terminación.
Un cuarto tipo de estructura de datos incluye LoadPlugin, UnloadPlugin, OpenPlugin y ClosePlugin, que proporcionan selectores de control administrativo sobre el conjunto de módulos de extensión dados de alta.
Un quinto tipo de estructura de datos incluye PullProvReports, que proporciona un selector invocado por el resolutor maestro 416 siempre que precise tomar informes actualizados del gestor 412 de módulos de extensión.
Un sexto tipo de estructura de datos incluye PushResReports, que proporciona un selector invocado por el resolutor maestro 406 siempre que precise despachar uno o más informes a módulos de extensión de resolutor.
Un séptimo tipo de estructura de datos incluye QueryConfig y SetConfig, que proporcionan selectores de gestión para el gestor 412 de módulos de extensión.
En su papel de escucha de notificaciones, el gestor 412 de módulos de extensión monitoriza las señales de actualización generadas por los módulos de extensión. Una notificación es tratada de forma diferente dependiendo del tipo de módulo de extensión asociado con la notificación.
En una realización, las notificaciones que se originan en módulos de extensión de proveedor que lleguen de forma no solicitada son tratadas por el gestor 412 de módulos de extensión con especial cuidado al imponer un umbral de de frecuencia cuando se aceptan y/o procesan. El propio valor umbral puede ser un valor configurable por el usuario mediante llamadas de gestión, tales como LocMgmtQuery/SetPlg.
Las notificaciones que se originan en módulos de extensión de resolutor son generadas en respuesta a informes de ubicación transmitidos a los resolutores por el servicio 210 de ubicación, por lo que no se requiere ningún límite umbral.
La lógica usada por el gestor 412 de módulos de extensión para detectar las notificaciones de proveedores y para recuperar informes actualizados es mostrada en la Figura 8A como una máquina de estado finita que opera en cada uno de los objetos de módulos de extensión de proveedor para comprobar el valor umbral de frecuencia.
Las operaciones comienzan en el inicio 802, cuando se detecta una notificación. El nodo 804 identifica la inicialización 804, un selector de estado inicial. El selector marca un proveedor como “no inicializado”, pone en marcha un temporizador de proveedor en un umbral predeterminado de proveedor Provider.last_ntf_time <= 0; y se da de alta con el proveedor para las notificaciones de actualización. Las notificaciones son dirigidas a Sacar 812.
Después del vencimiento de un plazo, la máquina 800 de estado prosigue al nodo 806, que identifica un selector de un estado de escucha. El selector 806 del estado de escucha pone el tiempo del proveedor en el umbral predeterminado de proveedor y marca los proveedores que no están inicializados como inicializados. Acto seguido, el selector 806 del estado de escucha establece un evento de notificación: Establecer el evento de notificación
imagen9
imagen10
imagen11
5
10
15
20
25
30
35
40
45
50
Informe
1 2 3 4 UBICACIÓN
Piso
3 (0,5) 4 (0,4) 1 (0,7) 3 (0,3) 3
Habitación
3141 (0,3) 4212 (0,1) 1021 (0,2) 3142 (0,2) 3141
Con referencia a la Tabla 7, se consideran cuatro informes, etiquetados 1-4. La votación jerárquica ponderada se inicia con un nivel físicamente mayor de la jerarquía. En la Tabla 7, el mayor elemento es el edificio. Se suman los coeficientes de ponderación para cada candidato. Por ejemplo, en la Tabla 7, el edificio 40 tiene un coeficiente de ponderación combinado de 0,9 + 0,8 + 0,9 = 2,6, que es un coeficiente de ponderación combinado mayor que el coeficiente de ponderación combinado asociado con el edificio 41 de 0,3.
En una realización, después de que se elimina de la consideración el elemento del nivel de jerarquía mayor, también se elimina automáticamente cualquier subnivel de ese nivel mayor. Así, por ejemplo, después de que se elimine el edificio 41, se eliminan los subniveles del edificio 41. Así, se elimina de la consideración de la ubicación cualquier piso dentro del edificio 41. De los pisos restantes, las restantes medias ponderadas indican que el piso 3 tiene la mayor probabilidad de ser correcto. Después de que se identifica el piso 3, se eliminan los pisos 4 y 1 y y cualquier habitación de los pisos 4 y 1. Entre las habitaciones restantes, la habitación 3141 tiene el mayor coeficiente de ponderación. En consecuencia, la ubicación identificada por el motor 340 de fusión es el edificio 40, el piso 3 y la habitación 3141.
El motor 340 de fusión puede crear una tabla tal como la Tabla 3 para cada tipo de jerarquía determinado por el servicio 210 de ubicación. Una jerarquía puede tener uno o más niveles. En tipos jerárquicos de un nivel, el motor 340 de fusión aplica una votación para determinar la ubicación más probable después de solo un nivel.
Servicio de notificaciones
La o las aplicaciones de notificaciones operan junto como una plataforma de notificaciones de WinFS. Una aplicación de notificaciones define los tipos de notificaciones a las que se puede abonar una aplicación, cuándo y cómo ha de recibir una notificación una aplicación. La aplicación de notificaciones contiene esquemas de abono, esquemas de notificación, una fuente de eventos, un esquema de eventos, reglas de generación de notificaciones y formateo de notificaciones.
El esquema de abono define eventos que pueden producirse para los que una aplicación tal como Outlook podría querer darse de alta. Por ejemplo, un esquema de abono para servicios de ubicación permitiría que Outlook se diera de alta para recibir notificaciones cuando la ubicación actual sea “casa”. El esquema de notificación define qué información llega a Outlook cuando reciba una notificación. Por ejemplo, el esquema de notificación podría permitir que Outlook recibiera la hora, la fecha y la ubicación actual. La fuente de eventos determina la fuente de los eventos. Un evento es algo que ocurre que puede ser de interés para la aplicación que se da de alta para recibir notificaciones. Por ejemplo, que el fusionador 340 escriba la nueva ubicación en WinFS es un evento. La fuente de eventos es WinFS.
El esquema de eventos define qué información es necesaria para un evento. Por ejemplo, para el evento se precisan una hora, una fecha y una ubicación. Las reglas de generación de notificaciones comparan los eventos con los esquemas de abono para ver si es preciso enviar una notificación a una aplicación. Por ejemplo, supongamos que la ubicación actual era “casa”, y que una aplicación se ha dado de alta para recibir una notificación cuando la ubicación sea “casa”; entonces, precisamente la regla de generación de notificaciones comprueba esta coincidencia y produce una notificación. El formato de la notificación simplemente define el aspecto que tendrá la notificación para una aplicación, lo que es útil para abstraer la aplicación del lenguaje SQL.
El servicio 460 de notificación puede mantener una correlación de identificadores de aplicación asociados con una lista de ubicaciones. La correlación permite que una aplicación dada de alta en el servicio 460 de notificación para recibir una notificación cuando el objeto de ubicación identifique una ubicación que coincida con un identificador de aplicación.
Un ejemplo de una estructura de datos apropiada para el expedidor de notificaciones puede incluir:
Map[Aplicación, List[Ubicación]] dados de alta; Con referencia ahora a la Figura 11, un diagrama de flujo ilustra un procedimiento para el servicio 460 de notificación. El bloque 1102 dispone que el servicio de notificación aguarde una notificación procedente de la antememoria 334. En otras realizaciones, la notificación puede proceder de otros componentes del servicio 210 de ubicación, tal como el motor 340 de fusión o similar. El bloque 1110 dispone que el servicio 460 de notificación reciba una notificación procedente de la antememoria 334. El bloque 1120 dispone que el servicio 460 de notificación recupere de WinFS el objeto de ubicación. El bloque de decisión 1130 dispone que el servicio 460 de notificación compruebe entonces las ubicaciones de la estructura de datos coincidentes con aplicaciones. Si hay alguna ubicación enumerada que coincida con el objeto de ubicación, las aplicaciones identificadas son notificadas en el bloque 1140. Si no se identifica ninguna aplicación, el servicio 460 de notificación entra en un estado de espera hasta que se reciba otra notificación procedente de la antememoria 334 en el bloque 1150.
10
15
20
25
30
35
40
45
50
55
Proveedor
Los proveedores recuperan de sensores información de ubicación específica al dispositivo, normalizan la información, traducen la información a un formato estándar, y envían la información al gestor 412 de módulos de extensión. Los proveedores 402 apropiados para su uso con el servicio 210 de ubicación tienen un temporizador T y un último informe obtenido de cada dispositivo del que son responsables. El temporizador T puede ser puesto en una hora que actúe como un regulador para impedir que los dispositivos abrumen al módulo de extensión de proveedor y al servicio 210 de ubicación.
En una realización, los sensores y/o los proveedores publican un número de versión que indica una versión del servicio 210 de ubicación con la que trabajan los proveedores/sensores, y también un número de versión. Por ejemplo, un GUID puede identificar de manera unívoca un sensor/proveedor. En una realización, un proveedor puede ser implementado en un conjunto con un nombre inconfundible para que el proveedor pueda ser identificado con certeza por el servicio 210 de ubicación.
Los proveedores 402 mantienen, además, un último informe obtenido de cada dispositivo para comprobar si ha ocurrido un cambio significativo en una ubicación percibida. En tal caso, el proveedor notifica a un gestor 412 de módulos de extensión. A continuación se muestra una estructura ejemplar de datos para mantener los datos dentro de un proveedor:
Map[Dispositivo, Informe de dispositivo] LastReport; Con referencia ahora a la Figura 12, se describe con detalle adicional el proceso llevado a cabo por un proveedor 402. Más específicamente, el bloque 1210 dispone que, cuando llegue por vez primera una notificación de un sensor, un proveedor recupere el informe. El proveedor guarda el informe en una estructura de datos apropiada. El bloque 1220 dispone que el proveedor traduzca entonces el informe a uno
o varios informes de ubicación. El bloque 1230 dispone que el proveedor despache entonces el o los informes de ubicación al gestor 412 de módulos de extensión y ponga en marcha un temporizador T.
El bloque de decisión 1240 determina si ha expirado el temporizador T. En caso negativo, si llega una notificación de un sensor, el proveedor ignora el informe en el bloque 1250. En caso afirmativo (el temporizador ha expirado), entonces, cuando llega una notificación de un sensor, el proveedor recupera el informe 1260. El bloque 1270 dispone que el proveedor compare el informe con el último informe obtenido de ese sensor. El bloque de decisión 1272 prevé determinar si ocurrió un cambio significativo. El bloque 1280 dispone que si hay un cambio significativo, entonces “NeedToSend” se ponga a VERDADERO; si no, en el bloque 1290 “NeedToSend” se pone a FALSO. Si “NeedToSend” es VERDADERO, el bloque 1292 prevé el envío del infirme y la reposición del temporizador. Si “NeedToSend” es FALSO, el bloque 1294 prevé aguardar la siguiente notificación del sensor.
Estructuras de datos
Como será evidente para un experto en la técnica con el beneficio de la presente divulgación, hay varias estructuras de datos que usa el servicio 210 de ubicación para aprovechar plenamente el servicio 210 de ubicación. Muchas estructuras de datos adicionales o combinadas están dentro del alcance de las realizaciones presentadas en esta memoria. Formatos de datos y estructuras de datos ejemplares pueden incluir el informe de ubicación (LReport); la colección de informes de ubicación (ColLReport); el objeto de ubicación (Location); y el objeto de extensión de ubicación (LocationEX).
Un informe de ubicación puede ser un informe generado por un módulo 310″ de extensión de proveedor. El informe de ubicación puede representar una información autónoma, por lo que, si un proveedor tiene información sobre más de un sensor, el proveedor puede generar más de un informe de ubicación. En una realización, los informes de ubicación incluyen una estructura de datos con datos relativos a una confianza, a un identificador de informe y a un tipo de informe. En una realización, el servicio 210 de ubicación requiere que un proveedor suministre un informe de ubicación interno heredado del informe de ubicación. El informe de ubicación interno puede incluir un identificador, un NDMediaType, un FunnelType, y uno o más coeficientes de ponderación del fusionador.
Correspondiendo con un informe de ubicación, otra estructura de datos es un conjunto de informes de ubicación. Una colección de informes de ubicación es apropiada para los resolutores 408 que generan uno o más informes para cada informe de ubicación recibido. Se usa SetLReport para representar qué resolutores producir. Una estructura ejemplar de datos puede estar estructurada como sigue:
[0156] typedef SetLReport = Set[LReport]
Una estructura de datos expuesta en lo que antecede asociada con diferentes componentes del servicio 210 de ubicación es un objeto de ubicación. Un objeto de ubicación, según se ha expuesto más arriba, es generado por el motor 340 de fusión como parte del proceso de fusión. Se espera que las aplicaciones configuradas para atenerse al servicio 210 de ubicación usen el objeto de ubicación, que es una colección de informes de ubicación, para determinar la ubicación del ordenador que ejecuta el servicio. En una realización, la colección incluye una posición, una dirección, una ubicación jerárquica y metadatos.
imagen12
10
15
20
25
30
35
40
45
50
La API LocMgmt 420 también proporciona las funciones siguientes para configurar el resolutor maestro 336. La API puede ser configurada para que siga un modelo de gestión de ficheros:
Abrir un puntero abstracto al resolutor maestro para leer o escribir información de configuración parámetros de entrada: leer o escribir parámetros de salida: puntero abstracto al resolutor maestro
Leer parámetros del resolutor maestro parámetros de entrada: puntero abstracto al resolutor maestro parámetros de salida: parámetros del resolutor maestro, éxito O fracaso
Escribir parámetros en el resolutor maestro parámetros de entrada: puntero abstracto al resolutor maestro, parámetros del resolutor maestro parámetros de salida: éxito O fracaso
Cerrar un puntero abstracto al resolutor maestro parámetros de entrada: puntero abstracto al resolutor maestro
Parámetros definidos por el usuario
En una realización, el servicio 210 de ubicación está dispuesto en un ordenador del usuario, que puede ser un dispositivo móvil o un dispositivo estacionario. Si el servicio 210 de ubicación está asociado con un usuario, el servicio 210 de ubicación puede ser configurado para que meta en la antememoria las ubicaciones en las que el usuario esté interesado. Por ejemplo, un usuario puede estar conectado a una red y tener acceso a una base de datos de información de ubicación, tal como el directorio activo. Además, un usuario puede ser una base de datos local. En una realización, el servicio 210 de ubicación usa parámetros por defecto y un usuario puede optar por cambiar los parámetros del servicio.
Más en particular, si un usuario opta por cambiar los parámetros del servicio 210 de ubicación, tal como la fiabilidad para los módulos 408 de extensión de resolutor o los módulos 402 de extensión de proveedor. Alternativamente, se puede construir el servicio 210 de ubicación para que utilice un algoritmo de aprendizaje, tal como un sistema de control de información de retorno que use análisis estadístico para determinar la precisión de diferentes proveedores 310 y resolutores 408 con el transcurso del tiempo. Dependiendo de la configuración del servicio 210 de ubicación, puede establecerse un sesgo inherente en diferentes módulos de extensión o el servicio 210 de ubicación puede priorizar la información de los módulos de extensión en función de la precisión, la preferencia de los usuarios y el tiempo de respuesta.
En una realización, el servicio 210 de ubicación puede ser configurado para producir información diferente para aplicaciones diferentes. Por ejemplo, una aplicación puede estar configurada para recibir únicamente información específica a sensores.
Seguridad
Otra realización está dirigida a la seguridad de un servicio consciente de la ubicación, tal como el servicio 210 de ubicación. Más específicamente, el servicio 210 de ubicación puede incluir una configuración y programación asociada para evitar o abordar de otra manera los problemas de seguridad.
Con fines de antecedentes, en la presente memoria suplantación se refiere a un acto de engañar a un receptor de datos para que crea que el remitente de los datos no es quien es realmente. En una realización, puede ser suplantada una fuente de la que se obtuvo un mismísimo módulo de extensión y pueden suplantarse paquetes individuales de datos que recibe un módulo de extensión. En la presente memoria, falsificación se refiere a un acto de cambiar los datos recibidos por el receptor. los datos recibidos por los módulos de extensión pueden ser falsificados potencialmente por un “pirata informático” en una conexión ya sea inalámbrica o cableada. En la presente memoria, repudio se refiere a ocasiones en las que un remitente niega posteriormente que se enviaran datos. así, una fuente puede proporcionar módulos de extensión con datos que posteriormente se desmiente que estén asociados con esa fuente. En la presente memoria, divulgación de información se refiere a un acto de divulgar información a interlocutores no intencionales. Así, una fuente puede rastrear la ubicación de un usuario en función de consultas realizadas por los módulos de extensión. Una fuente puede remitir la información de ubicación de un usuario o consultas realizadas por sus módulos de extensión a otras fuentes. Las ubicaciones guardadas por el usuario pueden ser objeto de acceso por otros usuarios.
En la presente memoria, denegación de servicio se refiere a la evitación de que entidades legítimas usen un servicio, tal como el servicio 210 de ubicación. Por ejemplo, las aplicaciones pueden abrumar al servicio 210 de ubicación con solicitudes de información. Las aplicaciones 220 podrían abrumar al servicio 210 de ubicación con altas para recibir notificaciones de un cambio de ubicación; un usuario podría guardar más que una cantidad apropiada de ubicaciones; los módulos de extensión podrían abrumar al servicio 210 de ubicación con datos; un
10
15
20
25
30
35
40
45
50
pirata informático podría copiar datos enviados a un módulo de extensión y enviar los datos continuamente al módulo de extensión, abrumando así al módulo de extensión y al servicio 210 de ubicación.
En la presente memoria, elevación de privilegio se refiere a la ejecución de una instrucción por parte de un atacante con el privilegio de otro usuario. Los desbordamientos de la memoria intermedia hacen que los datos obtenidos por los módulos de extensión que están plagados de instrucciones ejecutables sean ejecutados con el mismo privilegio que el servicio. Un nuevo módulo de extensión puede escribir maliciosa o accidentalmente encima de módulos de extensión antiguos.
El servicio 210 de ubicación está configurado para proteger el acceso a la información de ubicación de un usuario. Se considera que la información de ubicación es información personal y las realizaciones impiden que la información sea divulgada a interlocutores en los que no se confía.
Las realizaciones de la presente memoria abordan cinco puntos de penetración provenientes de un atacante, incluyendo fuentes de información de ubicación, servicios de consulta, entrada del usuario, las API de aplicaciones y las interfaces a los módulos de extensión.
En cuanto a la protección de las fuentes de información de ubicación, una fuente de información de ubicación es una entidad que proporciona a los proveedores información de ubicación. Las fuentes podrían incluir, por ejemplo, GPS, 802.11, GPRS y NLA.
El servicio 210 de ubicación es extensible para recoger muchas fuentes de información de ubicación y permitir que el usuario ajuste la confianza de las fuentes.
Además, el servicio 210 de ubicación puede ser un servicio protegido dentro de una plataforma Windows® .Net, proporcionando con ello estabilidad.
El servicio 210 de ubicación permite que un proveedor cifre sus datos para resolver problemas de seguridad, así como delegar el permiso a los dominios de aplicaciones; por ejemplo, permitiendo con ello que módulos de extensión de terceros se ejecuten en un dominio de aplicaciones que no tenga acceso de red alguno. Tales dominio de aplicaciones pueden ser creados usando el entorno de ejecución de lenguaje común (CLR) de Microsoft .Net, que proporciona un sistema de tipo compartido, un interno de lenguaje intermedio y ejecución dinámica para implementar lenguajes de múltiples fuentes.
Un servicio de consulta es un servicio que usa un resolutor para obtener más información de ubicación en función de información del proveedor o el resolutor anterior. MapPoint, el directorio activo y WinFS serán los dos servicios de consulta principales de información de ubicación.
El servicio 210 de ubicación tiene un resolutor de servicio web genérico que soporta cualquier servidor. Más en particular, en una realización, el servicio 210 de ubicación está configurado para interactuar con la plataforma de privacidad de Windows (WPP). La WPP es una estructura tecnológica que permite que los desarrolladores proporcionen aviso y elección en cuanto a la información de usuario con la que están implicados una aplicación, una página electrónica o un servicio. La WPP puede ser implementada como componente central de un sistema distribuido de exigibilidad en un sistema operativo, que proporciona mecanismos informantes para componentes del sistema como Watson®, la gestión de la calidad de servicio (SQM), Fusion®, y la capa de conexión en red para verificar las preferencias de usuario antes de continuar con operaciones que tengan un impacto potencial en la privacidad. La estructura central de la gestión de directrices/consentimiento se ve aumentada por un modelo de componentes adicionales para eliminar el historial del usuario de diversos aspectos del sistema operativo. Sobre esta capa programática central, la WPP proporciona un conjunto coherente de estructuras de interfaz de usuario para notificaciones con privacidad, obtener el consentimiento del usuario y representar declaraciones de privacidad representadas en esquemas de privacidad legibles por máquina. Así, en una realización, se puede implementar la WPP para permitir la obtención de las directrices de privacidad de los servidores y compararlas con las preferencias de usuario. Un conflicto provoca que aparezca una interfaz de usuario de consentimiento para avisar al usuario. Si hay un conflicto, la interfaz de usuario de consentimiento puede ser configurada para que aparezca de forma emergente para avisar al usuario. Posteriormente, un usuario puede escoger establecer una excepción para el servicio web.
En una realización, el servicio 210 de ubicación usa la WPP para obtener las directrices de privacidad de los resolutores y compararlas con las preferencias del usuario. Un conflicto puede provocar que aparezca una interfaz de usuario de consentimiento para avisar al usuario. Un usuario puede escoger establecer una excepción para un resolutor. En una realización, la estructura de CLR está configurada para identificar al resolutor de manera segura.
El servicio 210 de ubicación tiene una antememoria centralizada 332 controlada por el servicio 210 de ubicación que protege al servicio de algunos ataques contra la seguridad. Además, el servicio 210 de ubicación puede ser configurado para denegar que los resolutores obtengan el contexto completo de la ubicación actual de un usuario.
10
15
20
25
30
35
El servicio 210 de ubicación puede ser configurado para grabar cuándo y por quién cambian los objetos de ubicación; y cuándo y por quién son usadas la API 418 de usuarios de ubicación y la API 416 de notificaciones de ubicación y cualesquiera otras API usadas de aplicaciones; y cuándo los proveedores y los resolutores suministran información de ubicación. Esto protege al servicio de ubicación de algunos ataques contra la seguridad.
El servicio 210 de ubicación puede ser configurado para trabajar con la WPP para obtener las directrices de privacidad de las aplicaciones y compararlas con las preferencias del usuario. Cualquier conflicto puede provocar una interfaz de usuario de consentimiento para avisar al usuario. Posteriormente, un usuario puede escoger establecer una excepción. Puede usarse CLR para identificar a la aplicación de forma segura. En una realización, solo se permite a los administradores de máquinas dar de alta o de baja aplicaciones en el servicio 210 de ubicación. Además, el servicio 210 de ubicación puede ser configurado para facilitar el diagnóstico de qué aplicaciones usan información de ubicación.
En una realización, cualquier módulo de extensión asociado con el servicio 210 de ubicación está configurado para contar los mensajes recibidos. Si los mensajes recibidos en cierto marco temporal son demasiados, el módulo de extensión puede ser configurado para que deje de estar a la escucha de mensajes. Tras una cantidad de tiempo aleatoria, el módulo de extensión puede reiniciar nuevamente la escucha de mensajes. Si el número de mensajes sigue siendo demasiado grande, el módulo de extensión puede llevar a cabo una reducción exponencial. Específicamente, según se ha expuesto más arriba en cuanto al gestor 412 de módulos de extensión, cada módulo de extensión puede ser configurado para que tenga verificaciones y comprobaciones similares. Los módulos de extensión también pueden ser configurados para que comprueben la información que reciben para ver si la información contiene caracteres especiales que puedan ser usados para formar código ejecutable.
Los atributos de seguridad del servicio 210 de ubicación también pueden incluir atributos adaptados para las aplicaciones 220. Por ejemplo, el servicio 210 de ubicación puede ser configurado para que incluya reguladores del número de solicitudes que una aplicación puede efectuar para obtener la ubicación actual y darse de alta para recibir notificaciones. Además, pueden mantenerse listas de control de acceso de usuarios como estructura de datos añadida para impedir que usuarios ilegítimos cambien los parámetros del servicio y que lean, escriban encima o usen la información de perfil de otros usuarios, así como que lean, escriban encima o usen las ubicaciones almacenadas por otros usuarios.
En vista de las muchas realizaciones posibles a las que pueden aplicarse los principios de esta invención, se reconocerá que la realización descrita en la presente memoria con respecto a las figuras de los dibujos está pensada para ser únicamente ilustrativa y no se interpreta que limite el alcance de la invención. Por ejemplo, los expertos en la técnica reconocerán que los elementos de la realización ilustrada mostrados en soporte lógico pueden ser implementados en soporte físico y viceversa o que la realización ilustrada puede ser modificada en disposición y en detalle. Por lo tanto, la invención descrita en la presente memoria contempla que todas las realizaciones tales puedan encontrarse dentro del alcance de las siguientes reivindicaciones y de los equivalentes de las mismas.

Claims (1)

  1. imagen1
    imagen2
    imagen3
ES04007400.7T 2003-03-28 2004-03-26 Arquitectura y sistema para la conciencia de la ubicación Expired - Lifetime ES2569264T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US402609 2003-03-28
US10/402,609 US7536695B2 (en) 2003-03-28 2003-03-28 Architecture and system for location awareness

Publications (1)

Publication Number Publication Date
ES2569264T3 true ES2569264T3 (es) 2016-05-09

Family

ID=32825056

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04007400.7T Expired - Lifetime ES2569264T3 (es) 2003-03-28 2004-03-26 Arquitectura y sistema para la conciencia de la ubicación

Country Status (11)

Country Link
US (1) US7536695B2 (es)
EP (1) EP1463269B1 (es)
JP (1) JP4729262B2 (es)
KR (1) KR101114181B1 (es)
CN (1) CN1534514B (es)
AU (1) AU2004200733B2 (es)
BR (1) BRPI0400785A (es)
CA (1) CA2460318C (es)
ES (1) ES2569264T3 (es)
MX (1) MXPA04002918A (es)
RU (1) RU2358282C2 (es)

Families Citing this family (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024192B2 (en) * 2003-03-31 2006-04-04 America Online, Incorported Apparatus and method to provide current location information services in a network
US7263509B2 (en) * 2003-04-09 2007-08-28 Lee Shih-Jong J Intelligent spatial reasoning
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US7590643B2 (en) * 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
JP4483259B2 (ja) * 2003-10-16 2010-06-16 富士ゼロックス株式会社 応用プログラム実行システム、そのセンサ、その第1のサーバ、その第2のサーバ、そのオブジェクト及び応用プログラム実行方法
US20050198058A1 (en) * 2004-03-04 2005-09-08 International Business Machines Corporation Services offering delivery method
US7640288B2 (en) * 2004-03-15 2009-12-29 Microsoft Corporation Schema for location awareness
US7283803B2 (en) * 2004-04-16 2007-10-16 Broadcom Corporation Location-aware application based quality of service (QOS) via a broadband access gateway
US7756300B2 (en) * 2005-02-25 2010-07-13 The Invention Science Fund I, Llc Image mapping to provide visual geographic path
US7522996B2 (en) * 2005-04-30 2009-04-21 Searete Llc Map display system and method
US9702713B2 (en) 2005-01-31 2017-07-11 Searete Llc Map-based guide system and method
US7734073B2 (en) 2005-02-25 2010-06-08 The Invention Science Fund I, Llc Image mapping to provide visual geographic path
US20060217880A1 (en) * 2005-03-22 2006-09-28 Jung Edward K Map-based guide system and method
US20080215435A1 (en) * 2005-03-22 2008-09-04 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Map-based guide system and method
US8635014B2 (en) * 2005-03-22 2014-01-21 The Invention Science Fund I, Llc Map-based guide system and method
US9188454B2 (en) * 2005-03-22 2015-11-17 Invention Science Fund I, Llc Map-based guide system and method
US7729708B2 (en) * 2005-01-31 2010-06-01 The Invention Science Fund I, Llc Method and system for interactive mapping to provide goal-oriented instructions
US9286729B2 (en) 2005-02-25 2016-03-15 The Invention Science Fund I, Llc Image mapping to provide visual geographic path
US9214033B2 (en) 2005-06-01 2015-12-15 Invention Science Fund I, Llc Map display system and method
US8396001B2 (en) * 2005-02-03 2013-03-12 The Invention Science Fund I, Llc Interactive queued mapping method and system
US7974639B2 (en) 2005-02-04 2011-07-05 Qualcomm Incorporated Method and apparatus for performing position determination with a short circuit call flow
US8311733B2 (en) * 2005-02-15 2012-11-13 The Invention Science Fund I, Llc Interactive key frame image mapping system and method
US7805422B2 (en) 2005-02-28 2010-09-28 Microsoft Corporation Change notification query multiplexing
GB2424972A (en) * 2005-04-08 2006-10-11 Motorola Inc Monitoring content topics in a communication system
US8099112B2 (en) 2005-04-18 2012-01-17 Nokia Corporation Network entity, method and computer program product for dynamically changing a request for location information
US7840353B2 (en) * 2005-05-17 2010-11-23 The Boards of Trustees of the University of Illinois Method and system for managing a network of sensors
US9154907B2 (en) 2005-06-21 2015-10-06 Qualcomm Incorporated Efficient periodic location reporting in a radio access network
US8792902B2 (en) * 2005-06-21 2014-07-29 Qualcomm Incorporated Method and apparatus for providing location services with short-circuited message flows
US7738884B2 (en) * 2005-06-28 2010-06-15 Microsoft Corporation Positioning service utilizing existing radio base stations
US20070027996A1 (en) * 2005-08-01 2007-02-01 Microsoft Corporation Configuring application settings based on changes associated with a network identifier
US8068056B2 (en) 2005-08-25 2011-11-29 Qualcomm Incorporated Location reporting with secure user plane location (SUPL)
US8108851B2 (en) * 2006-01-30 2012-01-31 International Business Machines Corporation External registration for function configuration within a client platform application
EP1987688A1 (en) * 2006-02-22 2008-11-05 Nokia Corporation Supporting a positioning of a mobile terminal
US10198709B2 (en) * 2006-03-27 2019-02-05 Hewlett Packard Enterprise Development Lp Managing assets using at least one policy and asset locations
US8015570B2 (en) * 2006-06-30 2011-09-06 Microsoft Corporation Arbitration mechanisms to deal with conflicting applications and user data
US8549588B2 (en) * 2006-09-06 2013-10-01 Devicescape Software, Inc. Systems and methods for obtaining network access
US8743778B2 (en) * 2006-09-06 2014-06-03 Devicescape Software, Inc. Systems and methods for obtaining network credentials
US8554830B2 (en) * 2006-09-06 2013-10-08 Devicescape Software, Inc. Systems and methods for wireless network selection
US9326138B2 (en) * 2006-09-06 2016-04-26 Devicescape Software, Inc. Systems and methods for determining location over a network
US7617331B2 (en) * 2006-11-03 2009-11-10 Honeywell International Inc. System and method of double address detection
US8630620B2 (en) * 2007-01-26 2014-01-14 Interdigital Technology Corporation Method and apparatus for securing location information and access control using the location information
US8635680B2 (en) 2007-04-19 2014-01-21 Microsoft Corporation Secure identification of intranet network
WO2008157759A1 (en) * 2007-06-20 2008-12-24 Honeywell International Incorporated Mapping of physical and logical coordinates of users with that of the network elements
WO2009005778A1 (en) 2007-06-29 2009-01-08 Radiant Systems, Inc. Multi-channel controller
CN101796504B (zh) * 2007-09-06 2014-07-16 微软公司 会话中介可扩展应用程序接口
US8566431B2 (en) * 2008-01-16 2013-10-22 Razer (Asia-Pacific) Pte. Ltd. Identification device and method for device identification
US8046625B2 (en) 2008-02-22 2011-10-25 Hill-Rom Services, Inc. Distributed fault tolerant architecture for a healthcare communication system
EP3598403B1 (en) * 2008-02-22 2021-10-13 Hill-Rom Services, Inc. Distributed fault tolerant architecture for a healthcare communication system
US20090216775A1 (en) * 2008-02-22 2009-08-27 Marc Gregory Ratliff Platform for real-time tracking and analysis
US8340634B2 (en) 2009-01-28 2012-12-25 Headwater Partners I, Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US8589541B2 (en) 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US8346225B2 (en) 2009-01-28 2013-01-01 Headwater Partners I, Llc Quality of service for device assisted services
US8391834B2 (en) 2009-01-28 2013-03-05 Headwater Partners I Llc Security techniques for device assisted services
US8635335B2 (en) 2009-01-28 2014-01-21 Headwater Partners I Llc System and method for wireless network offloading
US8548428B2 (en) 2009-01-28 2013-10-01 Headwater Partners I Llc Device group partitions and settlement platform
US8630192B2 (en) 2009-01-28 2014-01-14 Headwater Partners I Llc Verifiable and accurate service usage monitoring for intermediate networking devices
US8626115B2 (en) 2009-01-28 2014-01-07 Headwater Partners I Llc Wireless network service interfaces
US8275830B2 (en) 2009-01-28 2012-09-25 Headwater Partners I Llc Device assisted CDR creation, aggregation, mediation and billing
US8832777B2 (en) 2009-03-02 2014-09-09 Headwater Partners I Llc Adapting network policies based on device service processor configuration
US8406748B2 (en) 2009-01-28 2013-03-26 Headwater Partners I Llc Adaptive ambient services
US8402111B2 (en) 2009-01-28 2013-03-19 Headwater Partners I, Llc Device assisted services install
US9773268B2 (en) 2008-06-16 2017-09-26 Sunrise R&D Holdings, Llc System of acquiring shopper insights and influencing shopper purchase decisions
US20100263022A1 (en) * 2008-10-13 2010-10-14 Devicescape Software, Inc. Systems and Methods for Enhanced Smartclient Support
WO2010048146A1 (en) * 2008-10-20 2010-04-29 Carnegie Mellon University System, method and device for predicting navigational decision-making behavior
US8554750B2 (en) * 2009-01-15 2013-10-08 Bmc Software, Inc. Normalization engine to manage configuration management database integrity
US10715342B2 (en) 2009-01-28 2020-07-14 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US10248996B2 (en) 2009-01-28 2019-04-02 Headwater Research Llc Method for operating a wireless end-user device mobile payment agent
US9954975B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Enhanced curfew and protection associated with a device group
US11973804B2 (en) 2009-01-28 2024-04-30 Headwater Research Llc Network service plan design
US10264138B2 (en) 2009-01-28 2019-04-16 Headwater Research Llc Mobile device and service management
US9578182B2 (en) 2009-01-28 2017-02-21 Headwater Partners I Llc Mobile device and service management
US9647918B2 (en) 2009-01-28 2017-05-09 Headwater Research Llc Mobile device and method attributing media services network usage to requesting application
US10783581B2 (en) 2009-01-28 2020-09-22 Headwater Research Llc Wireless end-user device providing ambient or sponsored services
US10798252B2 (en) 2009-01-28 2020-10-06 Headwater Research Llc System and method for providing user notifications
US10484858B2 (en) 2009-01-28 2019-11-19 Headwater Research Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US9557889B2 (en) 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management
US10057775B2 (en) 2009-01-28 2018-08-21 Headwater Research Llc Virtualized policy and charging system
US9565707B2 (en) 2009-01-28 2017-02-07 Headwater Partners I Llc Wireless end-user device with wireless data attribution to multiple personas
US10237757B2 (en) 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
US9571559B2 (en) 2009-01-28 2017-02-14 Headwater Partners I Llc Enhanced curfew and protection associated with a device group
US10200541B2 (en) 2009-01-28 2019-02-05 Headwater Research Llc Wireless end-user device with divided user space/kernel space traffic policy system
US9270559B2 (en) 2009-01-28 2016-02-23 Headwater Partners I Llc Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow
US9392462B2 (en) 2009-01-28 2016-07-12 Headwater Partners I Llc Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy
US10064055B2 (en) 2009-01-28 2018-08-28 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US10841839B2 (en) 2009-01-28 2020-11-17 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US10326800B2 (en) 2009-01-28 2019-06-18 Headwater Research Llc Wireless network service interfaces
US10492102B2 (en) 2009-01-28 2019-11-26 Headwater Research Llc Intermediate networking devices
US9253663B2 (en) 2009-01-28 2016-02-02 Headwater Partners I Llc Controlling mobile device communications on a roaming network based on device state
US9351193B2 (en) 2009-01-28 2016-05-24 Headwater Partners I Llc Intermediate networking devices
US11985155B2 (en) 2009-01-28 2024-05-14 Headwater Research Llc Communications device with secure data path processing agents
US9955332B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Method for child wireless device activation to subscriber account of a master wireless device
US9706061B2 (en) 2009-01-28 2017-07-11 Headwater Partners I Llc Service design center for device assisted services
US9572019B2 (en) 2009-01-28 2017-02-14 Headwater Partners LLC Service selection set published to device agent with on-device service selection
US8793758B2 (en) 2009-01-28 2014-07-29 Headwater Partners I Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US9755842B2 (en) 2009-01-28 2017-09-05 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US10779177B2 (en) 2009-01-28 2020-09-15 Headwater Research Llc Device group partitions and settlement platform
US8745191B2 (en) 2009-01-28 2014-06-03 Headwater Partners I Llc System and method for providing user notifications
US11218854B2 (en) 2009-01-28 2022-01-04 Headwater Research Llc Service plan design, user interfaces, application programming interfaces, and device management
US9858559B2 (en) 2009-01-28 2018-01-02 Headwater Research Llc Network service plan design
US9980146B2 (en) 2009-01-28 2018-05-22 Headwater Research Llc Communications device with secure data path processing agents
US8214434B2 (en) 2009-04-09 2012-07-03 Research In Motion Limited System and method for conflict resolution during the consolidation of information relating to a data service
US8433296B2 (en) 2009-05-01 2013-04-30 Ryan Hardin Exclusive delivery of content within geographic areas
RU2496138C2 (ru) * 2009-06-12 2013-10-20 Сони Корпорейшн Магистраль распределения
US8243626B2 (en) * 2009-09-23 2012-08-14 Apple Inc. Estimating user device location in a wireless network
US8812015B2 (en) 2009-10-01 2014-08-19 Qualcomm Incorporated Mobile device locating in conjunction with localized environments
US9140559B2 (en) * 2009-10-01 2015-09-22 Qualcomm Incorporated Routing graphs for buildings using schematics
US8880103B2 (en) 2009-10-12 2014-11-04 Qualcomm Incorporated Method and apparatus for transmitting indoor context information
US8229962B1 (en) 2009-10-19 2012-07-24 Quest Software, Inc. Location-aware task management systems and methods
US9389085B2 (en) 2010-01-22 2016-07-12 Qualcomm Incorporated Map handling for location based services in conjunction with localized environments
US8433335B2 (en) 2010-06-30 2013-04-30 Research In Motion Limited Method and apparatus for sharing information from a communication device
WO2012112607A1 (en) 2011-02-14 2012-08-23 Devicescape Software, Inc. Systems and methods for network curation
US8868105B2 (en) * 2011-10-24 2014-10-21 Nokia Corporation Method and apparatus for generating location stamps
US9172583B1 (en) * 2011-11-22 2015-10-27 Crimson Corporation Actively provisioning a managed node
US9043414B1 (en) * 2011-12-13 2015-05-26 Amazon Technologies, Inc. Geo-dynamic email lists
US9158563B2 (en) * 2012-03-27 2015-10-13 Microsoft Technology Licensing, Llc Dynamic plugin(s) for cloud application(s)
US10156455B2 (en) 2012-06-05 2018-12-18 Apple Inc. Context-aware voice guidance
US9892198B2 (en) * 2012-06-07 2018-02-13 Oath Inc. Page personalization performed by an edge server
US9595017B2 (en) * 2012-09-25 2017-03-14 International Business Machines Corporation Asset tracking and monitoring along a transport route
US9031579B2 (en) 2012-10-01 2015-05-12 Mastercard International Incorporated Method and system for providing location services
WO2014159862A1 (en) 2013-03-14 2014-10-02 Headwater Partners I Llc Automated credential porting for mobile devices
US9979559B2 (en) * 2014-01-10 2018-05-22 Philips Lighting Holding B.V. Feedback in a positioning system
EP3129873A1 (en) 2014-04-09 2017-02-15 Convida Wireless, LLC Service enabler function
US9377971B2 (en) * 2014-04-16 2016-06-28 Canon Kabushiki Kaisha Systems and methods for improving device discovery
WO2015158399A1 (en) * 2014-04-18 2015-10-22 Telecom Italia S.P.A. Method and system for identifying significant locations through data obtainable from a telecommunication network
US9473883B2 (en) 2014-05-31 2016-10-18 Apple Inc. Location service authorization and indication
US20160077892A1 (en) * 2014-09-12 2016-03-17 Microsoft Corporation Automatic Sensor Selection Based On Requested Sensor Characteristics
FR3027409B1 (fr) * 2014-10-17 2021-01-08 Sagem Defense Securite Procede pour la geolocalisation d'unites mobiles evoluant au sein d'une structure fermee
US9591443B2 (en) * 2015-06-01 2017-03-07 Apple Inc. Location service management
US10432561B2 (en) 2016-08-19 2019-10-01 International Business Machines Corporation Proximity-based communication
JP6783382B2 (ja) * 2016-09-09 2020-11-11 華為技術有限公司Huawei Technologies Co.,Ltd. 通知メッセージを関連付けるための方法、装置、およびモバイル端末
CN108693926B (zh) * 2017-04-06 2021-06-29 佛山市顺德区顺达电脑厂有限公司 机架式服务器系统及其组装管理方法
CN108363609B (zh) * 2018-02-07 2021-11-30 腾讯科技(深圳)有限公司 模拟传感器的方法、装置和存储介质
CN110456398B (zh) * 2019-07-30 2021-11-26 广州市百果园信息技术有限公司 地理位置确定方法、装置、存储介质及设备
US11388564B2 (en) * 2019-12-11 2022-07-12 Nec Corporation Infrastructure-free RF tracking in dynamic indoor environments
US11609894B2 (en) * 2021-06-04 2023-03-21 Adobe Inc. Data storage system conflict management
CN113440858A (zh) * 2021-07-02 2021-09-28 珠海金山网络游戏科技有限公司 数据处理方法及装置
CN116149778B (zh) * 2023-04-19 2023-06-27 深圳开鸿数字产业发展有限公司 界面显示方法、终端设备及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI92126C (fi) * 1992-11-09 1994-09-26 Nokia Telecommunications Oy Verkkojärjestely
US5699431A (en) * 1995-11-13 1997-12-16 Northern Telecom Limited Method for efficient management of certificate revocation lists and update information
GB2321363A (en) * 1997-01-21 1998-07-22 Northern Telecom Ltd Telecommunications
JP3115268B2 (ja) 1997-10-08 2000-12-04 孝雄 三枝 緊急通報システム
AU758868B2 (en) * 1998-05-07 2003-04-03 Samsung Electronics Co., Ltd. Method and apparatus for universally accessible command and control information in a network
JP2000102058A (ja) * 1998-09-25 2000-04-07 Nippon Telegr & Teleph Corp <Ntt> 移動端末の位置検出方法および装置
JP3545667B2 (ja) * 2000-02-22 2004-07-21 株式会社エヌ・ティ・ティ・ドコモ 携帯端末
ATE335367T1 (de) 2000-03-13 2006-08-15 Nokia Corp Dienstanbietung in einem kommunikationssystem
JP2001282813A (ja) * 2000-03-29 2001-10-12 Toshiba Corp マルチメディアデータ検索方法、インデックス情報提供方法、マルチメディアデータ検索装置、インデックスサーバ及びマルチメディアデータ検索サーバ
US6684250B2 (en) * 2000-04-03 2004-01-27 Quova, Inc. Method and apparatus for estimating a geographic location of a networked entity
US7000015B2 (en) * 2000-04-24 2006-02-14 Microsoft Corporation System and methods for providing physical location information and a location method used in discovering the physical location information to an application on a computing device
US6990513B2 (en) * 2000-06-22 2006-01-24 Microsoft Corporation Distributed computing services platform
WO2002015515A2 (en) * 2000-08-11 2002-02-21 Manugistics, Inc. System and method for integrating disparate networks for use in electronic communication and commerce
EP1410198A2 (en) 2000-08-22 2004-04-21 Symbian Limited A method of enabling a wireless information device to access data services
US6768994B1 (en) * 2001-02-23 2004-07-27 Trimble Navigation Limited Web based data mining and location data reporting and system
US7454523B2 (en) * 2001-03-16 2008-11-18 Intel Corporation Geographic location determination including inspection of network address
US6950876B2 (en) * 2001-03-19 2005-09-27 Lucent Technologies Inc. Multiple-protocol home location register and method of use
US20030182394A1 (en) * 2001-06-07 2003-09-25 Oren Ryngler Method and system for providing context awareness
JP2003228534A (ja) * 2001-11-30 2003-08-15 Ntt Docomo Inc 情報配信システム、記述データ配信装置、コンテンツ位置管理装置、データ変換装置、受信端末装置、情報配信方法
US6845241B2 (en) * 2002-01-07 2005-01-18 International Business Machines Corporation Relevance assessment for location information received from multiple sources

Also Published As

Publication number Publication date
JP4729262B2 (ja) 2011-07-20
EP1463269A2 (en) 2004-09-29
US20040193707A1 (en) 2004-09-30
US7536695B2 (en) 2009-05-19
CA2460318A1 (en) 2004-09-28
EP1463269A3 (en) 2006-05-17
MXPA04002918A (es) 2005-09-08
RU2358282C2 (ru) 2009-06-10
CN1534514B (zh) 2010-05-05
EP1463269B1 (en) 2016-03-23
KR20040085051A (ko) 2004-10-07
BRPI0400785A (pt) 2005-01-11
JP2004303248A (ja) 2004-10-28
RU2004109134A (ru) 2005-10-10
CA2460318C (en) 2013-05-07
CN1534514A (zh) 2004-10-06
AU2004200733A1 (en) 2004-10-14
KR101114181B1 (ko) 2014-02-26
AU2004200733B2 (en) 2009-02-05

Similar Documents

Publication Publication Date Title
ES2569264T3 (es) Arquitectura y sistema para la conciencia de la ubicación
US20230342407A1 (en) Personalized data management systems and methods
US11404146B2 (en) Managing user information—data type extension
CN111382421B (zh) 一种业务访问控制方法、系统及电子设备和存储介质
JP4806143B2 (ja) コンテキスト指向のポリシー決定および施行のための方法
TWI745473B (zh) 網路驗證方法及裝置
US9280665B2 (en) Fast and accurate identification of message-based API calls in application binaries
EP2965257A1 (en) Method for measuring and monitoring the access levels to personal data generated by resources of a user device
US10754717B2 (en) Fast and accurate identification of message-based API calls in application binaries
US20030149758A1 (en) Method and apparatus for managing profile information in a heterogeneous or homogeneous network environment
Henne et al. Selective cloaking: Need-to-know for location-based apps
Kim et al. Quality of Private Information (QoPI) model for effective representation and prediction of privacy controls in mobile computing
CN106576329B (zh) 基于情境的资源访问调解
Calderoni et al. Privacy preservation in outsourced mobility traces through compact data structures
CN112583891B (zh) 接口文档获取方法、装置和服务器
KR20190074552A (ko) 이종 데이터를 통합하기 위한 매쉬업 방법 및 그 장치
KR20130068379A (ko) 이종 센서 네트워크에서 이종 데이터를 처리하기 위한 시스템, 장치 및 방법
KR20180074065A (ko) 매쉬업 api 생성 방법, 그 방법을 수행하는 장치 및 컴퓨터 프로그램
JP5502021B2 (ja) ディレクトリ情報提供装置、情報処理システム、ディレクトリ情報提供方法及びプログラム
Johnson et al. Context Evidence and Location Authority: the disciplined management of sensor data into context models
Kim et al. Quality of Private Information (QoPI) Model for Effective
Han et al. Context Aware Security Policy Enforcement
Zheng et al. Privacy, Access Control, and Location in Mobile Applications