ES3028537T3 - Implementation of compliance settings by a mobile device for compliance with a configuration scenario - Google Patents
Implementation of compliance settings by a mobile device for compliance with a configuration scenario Download PDFInfo
- Publication number
- ES3028537T3 ES3028537T3 ES19740241T ES19740241T ES3028537T3 ES 3028537 T3 ES3028537 T3 ES 3028537T3 ES 19740241 T ES19740241 T ES 19740241T ES 19740241 T ES19740241 T ES 19740241T ES 3028537 T3 ES3028537 T3 ES 3028537T3
- Authority
- ES
- Spain
- Prior art keywords
- configuration information
- configuration
- server
- mobile device
- compliance
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
- H04W8/245—Transfer of terminal data from a network towards a terminal
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Mobile Radio Communication Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Las realizaciones descritas en este documento se dirigen a la implementación de configuraciones de cumplimiento por parte de un dispositivo informático para que cumpla con un escenario de configuración. Por ejemplo, un dispositivo informático puede recibir, desde un servidor, información de configuración que describe las configuraciones de cumplimiento que debe implementar para que cumpla con un escenario de configuración. Además, el dispositivo informático puede identificar una máquina de estados, indicada por la información de configuración, que describe un proceso de configuración para implementar las configuraciones de cumplimiento y ejecutar dicha máquina para configurar el dispositivo informático con dichas configuraciones. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Implementación de ajustes de cumplimiento por un dispositivo móvil para cumplimiento de un escenario de configuración
Campo técnico
La presente invención se refiere en general al despliegue y configuración de software. Las realizaciones descritas en el presente documento se dirigen a implementar ajustes de cumplimiento por un dispositivo informático para hacer que el dispositivo informático cumpla un escenario de configuración.
Antecedentes
La gestión de dispositivos móviles (MDM) es una forma de garantizar que los empleados se mantengan productivos y no incumplan las políticas corporativas. Muchas organizaciones controlan actividades de sus empleados usando productos/servicios de MDM. La MDM se ocupa principalmente de segregación de datos corporativos, protección de correos electrónicos, protección de documentos corporativos en dispositivos, imposición de políticas corporativas e integración y gestión de dispositivos móviles, incluyendo ordenadores portátiles y dispositivo de mano de diversas categorías. Controlando y protegiendo los datos y ajustes de configuración de todos los dispositivos móviles en la red de una organización, la MDM puede reducir los costes de soporte y los riesgos comerciales
El documento US 2015/ 296368 A1 describe un gestor de políticas de dispositivo para dispositivos móviles que comprende un componente de interfaz unificado y un componente de manejador de políticas. El gestor de políticas gestiona las solicitudes de configuración de políticas procedentes de múltiples fuentes de políticas y resuelve los conflictos entre los valores de políticas de diferentes fuentes
El documento US 9557983 B1 describe un método para desarrollar software de actualización para sistemas con múltiples versiones disponibles de software. Una máquina de estados se utiliza para acceder a uno o más grupos de comandos que permiten la transición de una versión del software a una versión actualizada.
Compendio
Este compendio se proporciona para introducir una selección de conceptos de una forma simplificada, que se describen adicionalmente a continuación en la descripción detallada. Este compendio no pretende identificar características clave o características esenciales del objeto reivindicado, ni pretende usarse para limitar el alcance del objeto reivindicado.
Las realizaciones descritas en el presente documento se dirigen a implementar ajustes de cumplimiento por un dispositivo informático para hacer que el dispositivo informático cumpla un escenario de configuración. Por ejemplo, un dispositivo informático puede recibir, desde un servidor, información de configuración que describe ajustes de cumplimiento para implementarse por el dispositivo informático para hacer que el dispositivo informático cumpla un escenario de configuración. Además, el dispositivo informático puede identificar una máquina de estados indicada por la información de configuración (por ejemplo, por un identificador) que describe un proceso de configuración para implementar los ajustes de cumplimiento. La máquina de estados puede ejecutarse para configurar el dispositivo informático con los ajustes de cumplimiento. Cuando se ejecuta la máquina de estados, las cargas útiles incluidas en la información de configuración junto con las dependencias pueden procesarse en el orden que dicta la máquina de estados, para configurar el dispositivo informático.
Otras características y ventajas de la invención, así como la estructura y funcionamiento de diversas realizaciones de la invención, se describen en detalle a continuación haciendo referencia a los dibujos adjuntos. Se observa que la invención no se limita a las realizaciones específicas descritas en el presente documento. Tales realizaciones se presentan en el presente documento solo con fines ilustrativos. Para los expertos en la o las técnicas relevantes serán evidentes realizaciones adicionales basándose en las enseñanzas contenidas en el presente documento.
Breve descripción de los dibujos
Los dibujos adjuntos, que se incorporan al presente documento y forman parte de la memoria descriptiva, ilustran realizaciones y, junto con la descripción, sirven además para explicar los principios de las realizaciones y para permitir que un experto en la técnica pertinente realice y use las realizaciones.
La FIG. 1 representa un diagrama de bloques de un sistema para implementar ajustes de cumplimiento por un dispositivo informático para hacer que el dispositivo informático cumpla un escenario de configuración de acuerdo con una realización de ejemplo.
La FIG. 2A representa un diagrama de bloques de un sistema para implementar ajustes de cumplimiento por un dispositivo informático para hacer que el dispositivo informático cumpla un escenario de configuración, que es un ejemplo detallado adicional del sistema de la FIG. 1, de acuerdo con una realización de ejemplo.
La FIG. 2B representa otro diagrama de bloques de un sistema para implementar ajustes de cumplimiento por un dispositivo informático para hacer que el dispositivo informático cumpla un escenario de configuración, que es un ejemplo detallado adicional del sistema de la FIG. 1, de acuerdo con una realización de ejemplo.
La FIG. 3 representa un diagrama de flujo de un método de ejemplo para implementar ajustes de cumplimiento por un dispositivo informático para hacer que el dispositivo informático cumpla un escenario de configuración de acuerdo con una realización de ejemplo.
La FIG. 4 representa un diagrama de flujo de un método de ejemplo para determinar si el dispositivo móvil está configurado apropiadamente de acuerdo con una realización de ejemplo.
La FIG. 5 representa un diagrama de flujo de un método de ejemplo para almacenar y transmitir resultados de configuración de acuerdo con una realización de ejemplo.
La FIG. 6 representa un diagrama de flujo de un método de ejemplo para solicitar la corrección de un error con información de configuración de acuerdo con una realización.
La FIG. 7 representa un diagrama de flujo de un método de ejemplo para recibir información de configuración actualizada y/o información de configuración adicional de acuerdo con una realización.
La FIG. 8 es un diagrama de bloques de un dispositivo de usuario a modo de ejemplo, en el que se pueden implementar realizaciones.
La FIG. 9 es un diagrama de bloques de un dispositivo informático de ejemplo que puede usarse para implementar realizaciones.
Las características y ventajas de la presente invención serán más evidentes a partir de la descripción detallada expuesta a continuación cuando se toma junto con los dibujos, en los que caracteres de referencia similares identifican elementos correspondientes en todo el documento. En los dibujos, los números de referencia similares indican generalmente elementos idénticos, funcionalmente similares y/o estructuralmente similares. El dibujo en el que aparece primero un elemento se indica por el o los dígitos más a la izquierda en el número de referencia correspondiente.
Descripción detallada
I. Introducción
La presente memoria descriptiva y los dibujos adjuntos dan a conocer una o más realizaciones que incorporan las características de la presente invención. El alcance de la presente invención no se limita a las realizaciones dadas a conocer. Las realizaciones dadas a conocer simplemente ejemplifican la presente invención, y las versiones modificadas de las realizaciones dadas a conocer también están englobadas por la presente invención. Las realizaciones de la presente invención se definen por las reivindicaciones adjuntas a la presente memoria.
Las referencias en la memoria descriptiva a "una realización", "una realización de ejemplo", etc., indican que la realización descrita puede incluir un aspecto, estructura o característica particular, pero cada realización puede no incluir necesariamente el aspecto, estructura o característica particular. Además, tales expresiones no se refieren necesariamente a la misma realización. Además, cuando un aspecto, estructura o característica particular se describe en relación con una realización, se prevé que está dentro del conocimiento de un experto en la técnica efectuar dicho aspecto, estructura o característica en relación con otras realizaciones, ya se describa o no explícitamente.
A continuación se describen numerosos ejemplos de realización. Se observa que cualesquiera títulos de sección/subsección proporcionados en el presente documento no pretenden ser limitantes. Las realizaciones se describen a lo largo de este documento, y cualquier tipo de realización puede incluirse bajo cualquier sección/subsección. Además, las realizaciones dadas a conocer en cualquier sección/subsección pueden combinarse con cualquier otra realización descrita en la misma sección/subsección y/o una sección/subsección diferente de cualquier manera.
II. Sistema y método para gestionar cumplimiento de dispositivos
Una construcción típica del proceso de gestión de dispositivos móviles (MDM) actual para una empresa utiliza un servidor MDM que es responsable de ejecutar y monitorizar configuraciones de dispositivos móviles, almacenar cantidades masivas de datos y realizar comprobaciones continuas de errores y mantenimiento preventivo. Tales funciones pueden realizarse para grandes números de dispositivos para la empresa, incluyendo cientos, miles, decenas de miles, millones, cientos de millones, e incluso mayores números de dispositivos. Como resultado, el servidor devora incontables "calorías de cálculo" (por ejemplo, usa una gran cantidad de potencia de procesamiento) para determinar si todos los recursos de tecnología móvil de la red de la empresa están configurados correctamente, funcionando dentro de los límites de seguridad y otros protocolos importantes, e implementando y cumpliendo actualizaciones.
Esto significa que el servidor está encargado de tener que comunicarse con muchos dispositivos móviles individuales en la red de la empresa y, en última instancia, supervisar el proceso de configuración y notificar necesidades. La escalabilidad resulta muy desafiante para una empresa en este escenario, simplemente dado el número de dispositivos, tráfico masivo y volumen de configuración. En otras palabras, el servidor tiene una tremenda cantidad de trabajo a gestionar. Además, este proceso de configuración también puede estar plagado de errores que de otro modo se pueden prevenir debido a la naturaleza no optimizada y específica por dispositivo de la imposición de la configuración.
Estas limitaciones pueden remediarse finalmente cambiando la involucración del servidor en el proceso de gestión del dispositivo. Por ejemplo, en realizaciones, el servidor puede experimentar una mayor productividad al requerir que el dispositivo móvil lleve a cabo su propia configuración. En las realizaciones descritas en el presente documento, el servidor puede suministrar los detalles de configuración al dispositivo móvil y el proceso de configuración puede ser conducido por el dispositivo móvil actuando como una máquina de estados generalizada. Estas y otras formas de realización se describen con más detalle con respecto a la FIG. 1, de la siguiente manera. Obsérvese que las realizaciones descritas en el presente documento son aplicables a cualquier sistema operativo/plataforma informática, tal como iOS de Apple®, y Google Android™ y que las referencias en el presente documento a Microsoft® Windows®, y/o componente del mismo, son únicamente con fines descriptivos e ilustrativos, y no deben considerarse limitantes.
La FIG. 1 es un diagrama de bloques de un sistema de imposición de cumplimiento 100 para implementar ajustes de cumplimiento por dispositivos informáticos para hacer que los dispositivos informáticos cumplan escenarios de configuración, de acuerdo con una realización de ejemplo. Como se muestra en la FIG. 1, el sistema 100 incluye un servidor 102, un dispositivo informático 104 y uno o más almacenamientos de datos 108 acoplados comunicativamente a través de una red 110 empresarial. El servidor 102 incluye un motor de cumplimiento 122. El dispositivo informático 104 incluye un agente de cumplimiento 120. Aunque se muestra un único dispositivo informático 104, puede haber cualquier número de dispositivos informáticos en el sistema 100 que tengan ajustes de cumplimiento proporcionados por el servidor 102, incluyendo decenas, cientos, miles, decenas de miles, millones, cientos de millones y mayores números de dispositivos informáticos. El o los almacenamientos de datos 108 pueden comprender uno o más dispositivos de memoria física y/o de almacenamiento. El o los almacenamientos de datos 108 pueden ser cualquier tipo de memoria física y/o dispositivo de almacenamiento que se describe en el presente documento, y/o como entendería un experto en la o las técnicas relevantes que tienen el beneficio de esta invención. La red empresarial 110 comprende una red informática privada establecida por una empresa con el fin de interconectar dispositivos empresariales (por ejemplo, el dispositivo informático 104 y otros dispositivos informáticos no mostrados) en una o más ubicaciones empresariales a otros dispositivos empresariales y para permitir que los dispositivos empresariales accedan a, y/o compartan recursos informáticos.
El dispositivo informático 104 es un dispositivo utilizado por, o accesible de otro modo a uno o más miembros (por ejemplo, empleados) de una empresa. Como se usa en el presente documento, el término "empresa" se refiere ampliamente a cualquiera de una amplia variedad de tipos de organización, incluyendo negocios, organizaciones benéficas y agencias gubernamentales. Los usuarios del dispositivo informático 104 pueden denominarse en el presente documento "usuarios empresariales" o simplemente "usuarios". El dispositivo informático 104 puede comprender, por ejemplo y sin limitación, un ordenador de escritorio, un ordenador portátil, una tableta, un miniordenador portátil, un teléfono inteligente o similares. A continuación se describen ejemplos adicionales de dispositivo informático 104 haciendo referencia a las FIGS. 8 y 9.
El o los almacenamientos de datos 108 pueden configurarse para almacenar información de configuración 112 para el dispositivo informático 104 y/o uno o más dispositivos informáticos. En realizaciones, la información de configuración 112 puede almacenarse localmente en la memoria del servidor 102. La información de configuración 112 puede especificar uno o más ajustes de cumplimiento para el dispositivo informático 104 y/o para usuarios del dispositivo informático 104, así como incluir datos, uno o más archivos, etc., para instalar en el dispositivo informático 112 de acuerdo con el escenario de configuración particular. Por ejemplo, un primer ajuste de cumplimiento de la información de configuración 112 puede estar asociado con un primer usuario del dispositivo informático 104, y un segundo ajuste de cumplimiento de la información de configuración 112 puede estar asociado con un segundo usuario del dispositivo informático 104. Los ejemplos de ajustes de cumplimiento incluyen, pero no se limitan a, un ajuste de cifrado a implementar por el dispositivo informático 104, un ajuste de seguridad a implementar por el dispositivo informático 104, una versión mínima de al menos una de una aplicación o un sistema operativo que se requiere instalar en el dispositivo informático 104, etc. El o los ajustes de cifrado pueden especificar si un dispositivo de almacenamiento incluido en el dispositivo informático 104 debe cifrarse (por ejemplo, por medio de un programa de cifrado, tal como, pero no limitado a BitLocker™). Los ajustes de seguridad pueden especificar una política de contraseña que se implementará por el dispositivo informático 104 (por ejemplo, ajustando la longitud de contraseña a un mínimo de 10 caracteres, 12 caracteres, etc.), si la firma de código debería implementarse por el dispositivo informático 104, si un módulo de plataforma confiable (TPM) debería implementarse por el dispositivo informático 104, etc. Se observa que los ajustes de cumplimiento descritos anteriormente son puramente a modo de ejemplo y que pueden usarse otros ajustes de configuración.
El servidor 102 puede configurarse para gestionar el cumplimiento del dispositivo informático, incluyendo el dispositivo informático 104, con respecto a escenarios de configuración. Tales dispositivos informáticos pueden incluir dispositivos estacionarios (por ejemplo, ordenadores de escritorio) y/o dispositivos móviles (por ejemplo, teléfonos inteligentes, ordenadores portátiles, ordenadores de tableta, dispositivos informáticos ponibles (por ejemplo, un dispositivo montado en la cabeza que incluye gafas inteligentes tales como Google® Glass™, auriculares de realidad virtual, relojes inteligentes, etc.), etc.). Cuando se gestionan dispositivos móviles, el servidor 102 también puede denominarse gestor de dispositivos móviles (MDM). Un escenario de configuración puede ser tan simple como un conjunto discreto de políticas o tan complejo como una configuración para una conexión de red privada virtual (VPN). Una política (por ejemplo, una política de datos y/o seguridad) puede ser especificada por una empresa. La política puede especificarse de acuerdo con uno o más ajustes de cumplimiento. El o los ajustes de cumplimiento pueden ser especificados por un administrador de la empresa (por ejemplo, un administrador de IT (tecnología de información) u otra persona dentro de una empresa que puede ser responsable de desplegar, mantener y/o configurar el dispositivo informático 104 en nombre de los usuarios de la empresa).
Como se muestra en la FIG. 1, el servidor 102 comprende un motor de cumplimiento 122. El motor de cumplimiento 122 puede determinar la información de configuración 112 que se proporcionará al dispositivo informático 104 y proporcionar la información de configuración determinada 112 al dispositivo informático 104. Por ejemplo, el servidor 102 puede recibir y/o acceder a información de configuración 112 en forma de un manifiesto de cumplimiento u otro documento que indica ajustes de configuración para su despliegue a un conjunto particular de dispositivos. El servidor 102 puede obtener información de configuración 112 a través de la red 110 desde el almacenamiento de datos 108 y proporcionar información de configuración 112 a los dispositivos indicados, tal como el dispositivo informático 104, a través de la red 110. La transmisión de la información de configuración 112 a través de la red 110 se representa en la FIG. 1 mediante líneas discontinuas 112. La información de configuración 112 puede especificar ajustes de cumplimiento para implementar por el dispositivo informático 104 (y opcionalmente otros dispositivos) para hacer que el dispositivo informático 104 cumpla un escenario de configuración.
El dispositivo informático 104 puede configurarse para implementar el o los ajustes de cumplimiento especificados por la información de configuración 112. Como se muestra en la FIG. 1, el dispositivo informático 104 comprende un agente de cumplimiento 120. El dispositivo informático 104 puede configurarse para ejecutar el agente de cumplimiento 120, que está configurado para implementar ajustes de cumplimiento especificados por la información de configuración 112 recibida identificando y ejecutando una máquina de estados que describe un proceso de configuración para implementar los ajustes de cumplimiento para un escenario de configuración en el dispositivo informático 104. Por ejemplo, el agente de cumplimiento 120 puede identificar la máquina de estados 118 como la máquina de estados indicada por la información de configuración 112 y ejecutar la máquina de estados 118 para configurar el dispositivo informático 104 con ajustes de cumplimiento para cumplir un escenario de configuración.
De acuerdo con las realizaciones, la máquina de estados 118 puede generarse de diversas maneras. Por ejemplo, durante un proceso de creación, se pueden generar uno o más documentos (por ejemplo, por un desarrollador), que se pueden compilar y almacenar en el dispositivo informático 104. Por ejemplo, uno o más archivos que describen escenarios de configuración, que permiten que un servidor consuma y reproduzca una interfaz de usuario (UI) (por ejemplo, en una consola de administración generada por el motor de cumplimiento 122 en el servidor 102), y se genera una máquina de estados durante la construcción. Esta UI permite que una administración de IT introduzca información de configuración para un escenario de configuración particular que puede enviarse entonces al dispositivo informático 104. La información de configuración es procesada por el dispositivo informático 104 como se describe en el presente documento, utilizando un proveedor de servicios de configuración (CSP) para alterar la seguridad y el comportamiento funcional del dispositivo informático de acuerdo con el escenario de configuración particular. Un CSP es una interfaz para leer, configurar, modificar o eliminar ajustes de configuración en un dispositivo. Además, cuando se procesa una máquina de estados (por ejemplo, la máquina de estados 118), se invocan los CSP según un orden impuesto por la máquina de estados para cumplir el estado deseado en un dispositivo informático usando información de configuración suministrada por un servidor.
Después de implementar los ajustes de configuración de acuerdo con la máquina de estados 118, el agente de cumplimiento 120 puede proporcionar un acuse de recibo (por ejemplo, una "alerta") al motor de cumplimiento 122. El acuse de recibo indica que el dispositivo informático ha implementado los ajustes de configuración, o se ha producido un fallo. Tras recibir el acuse de recibo que indica éxito al implementar los ajustes de configuración, el motor de cumplimiento 112 puede indicar que el dispositivo informático 104 cumple el escenario de configuración. El motor de cumplimiento 112 puede mantener los acuses de recibo de diversas maneras.
Por ejemplo, el servidor 102 puede mantener un registro de cumplimiento 106 que incluye una indicación para cada emparejamiento de usuario-dispositivo en cuanto a si el emparejamiento de usuario-dispositivo particular se está cumpliendo. Por ejemplo, el registro de cumplimiento 106 puede comprender una estructura de datos (por ejemplo, una tabla) que comprende una pluralidad de entradas, donde cada entrada especifica un par de usuario-dispositivo particular, y una indicación en cuanto a si ese par de usuario-dispositivo está cumpliendo. El servidor 102 puede estar configurado además para mantener una referencia de configuración 114 local de los ajustes de configuración implementados para cada emparejamiento de usuario-dispositivo. La referencia de configuración 114 puede comprender una estructura de datos (por ejemplo, una tabla) que comprende una pluralidad de entradas, donde cada entrada especifica un par de usuario-dispositivo particular y los ajustes de configuración implementados por ese par. Se observa que la estructura y/u organización de la referencia de configuración 114 y/o el registro 106 de cumplimiento descritos anteriormente es puramente a modo de ejemplo y que se pueden usar otras estructuras y/u organizaciones. La referencia de configuración 114 y el registro 106 de cumplimiento pueden ser mantenidos por el servidor 102 en cualquier ubicación y manera, incluyendo ser almacenados en el almacenamiento de datos 108 o en cualquier otro lugar.
El motor de cumplimiento 122 puede configurarse para determinar si el o los dispositivos informáticos 104 siguen cumpliendo las reglas de cumplimiento usando la referencia 114. Al hacerlo, el motor de cumplimiento 122 simplemente necesita acceder a la referencia 114 para determinar los ajustes de configuración implementados por el o los dispositivos informáticos 104, en lugar de tener que consultar el o los dispositivos informáticos 104 para sus ajustes de configuración. El motor de cumplimiento 122 puede determinar si el o los dispositivos informáticos 104 siguen cumpliendo, al detectar cualquier evento de activación adecuado, incluyendo una expiración de un período de tiempo predeterminado, una solicitud de un administrador, auditor y/u otra persona y/o entidad que gestiona, desea confirmar o está interesado de otro modo en saber/confirmar si el dispositivo informático 104 y/u otros dispositivos informáticos cumplen uno o más ajustes y/o requisitos de cumplimiento. Una solicitud para determinar si los dispositivos cumplen ajustes/requisitos de cumplimiento puede referirse a cualquier número de dispositivos, incluyendo cientos, miles o millones de dispositivos. Así, accediendo a tal información de cumplimiento desde la referencia de configuración 114 y/o el registro 106 de cumplimiento, no es necesario que el servidor 102 gaste una gran cantidad de potencia de procesamiento en relación con tener que interrogar a cada dispositivo de interés por separado.
El sistema 100 de la FIG. 1 puede implementarse de diversas maneras, en realizaciones. Por ejemplo, la FIG.
2A representa un diagrama de bloques detallado del sistema 200, de acuerdo con una realización de ejemplo. El sistema 200 es un ejemplo del sistema 100. Como se muestra en la FIG. 2A, el sistema 200 incluye el servidor 102 y un dispositivo informático 204. El dispositivo informático 204 es un ejemplo del dispositivo informático 104, como se describió anteriormente haciendo referencia a la FIG. 1. Como se muestra además en la FIG. 2A, el dispositivo informático 204 incluye un agente de cumplimiento 220, un almacenamiento de datos de máquina de estados (SM) 224 y un almacenamiento de datos de información de configuración (CI) 222. El almacenamiento de datos de máquina de estados 224 y el almacenamiento de datos de información de configuración 222 pueden comprender, cada uno, uno o más dispositivo de memoria física y/o de almacenamiento, incluyendo cualquier tipo de memoria física y/o dispositivo de almacenamiento que se describe en el presente documento, y/o como entendería un experto en la o las técnicas relevantes que tienen el beneficio de esta invención. El agente de cumplimiento 220 es un ejemplo de agente de cumplimiento 120, como se ha descrito anteriormente haciendo referencia a la FIG. 1.
El servidor 102 está configurado para determinar la información de configuración 112 que se proporcionará al dispositivo informático 204 y proporcionar la información de configuración 112 determinada al mismo. Por ejemplo, cuando un usuario inicia sesión por primera vez en un dispositivo informático que se le acaba de proporcionar, el servidor 102 recupera información de configuración de dispositivo 112 asociada con ese dispositivo informático y/o usuario y proporciona información de configuración 112 al dispositivo informático. Adicionalmente, el servidor 102 puede recuperar información de configuración 112 asociada con ese dispositivo informático y/o usuario y proporcionar información de configuración 112 al dispositivo informático cuando el software o firmware (incluyendo un controlador de dispositivo) se instala nuevamente en el dispositivo informático, cuando se añade nuevo hardware al dispositivo informático, cuando se actualiza o elimina software y/o firmware del dispositivo informático, cuando se elimina hardware del dispositivo informático, y/o durante otros eventos que modifican una configuración del dispositivo informático.
De manera similar al dispositivo informático 104 descrito haciendo referencia a la FIG. 1, el dispositivo informático 204 puede configurarse para ejecutar el agente de cumplimiento 220, que está configurado para implementar los ajustes de configuración especificados por la información de configuración 112. Más específicamente, el agente de cumplimiento 220 consume una máquina de estados apropiada basándose en el escenario de configuración deseado. El servidor 102 puede proporcionar un "identificador de escenario de configuración" en la información de configuración 112 para especificar al dispositivo informático 204 la máquina de estados apropiada. El agente de cumplimiento 220 puede utilizar este identificador para encontrar para que el orquestador siga la máquina de estados correcta. La información de configuración 112, suministrada por el servidor 102, se proporciona a continuación a los CSP apropiados por el agente de cumplimiento 220 en base a la máquina de estados, como se describe con más detalle a continuación.
Como se muestra en la FIG. 2A, el agente de cumplimiento 220 incluye un gestor de configuración 206 y un motor orquestador 208. Además, el gestor de configuración 206 incluye un manejador de información de configuración de cumplimiento 228 y un comprobador de errores de información de configuración 210.
El manejador de información de configuración de cumplimiento 228 puede estar configurado para acceder a la información de configuración 112 (por ejemplo, entregar al dispositivo informático 204 a través de SyncML o CDN (Content Delivery Network, red de entrega de contenido)) desde el motor de cumplimiento 122 del servidor 102 y almacenar la información de configuración 112 en el almacenamiento de datos de información de configuración 222 (como se representa por las líneas 112 discontinuas en la FIG. 2A entre el servidor 112, el manejador de información de configuración de cumplimiento 228 y el almacenamiento de datos de información de configuración 222). Como otro ejemplo, la información de configuración 112 puede ser suministrada por notación de objetos JavaScript (js On ). La información de configuración 112 puede ser entregada por un servidor al dispositivo informático directamente o el servidor puede indicar al dispositivo informático dónde obtener información de configuración 112 a través de CDN (que se describe con más detalle a continuación).
La información de configuración 112 puede tener cualquier forma adecuada. De acuerdo con una realización, la información de configuración 112 puede representarse por un archivo de lenguaje de marcado extensible (XML) que incluye una carga útil asociada con los ajustes de cumplimiento y un identificador de recursos uniforme (URI) correspondiente para descargar y procesar la carga útil. Por ejemplo, una carga útil almacenada en CDN puede incluir una etiqueta separada que indica el URI para la descarga asíncrona y el procesamiento de la carga útil. Para mayor ilustración, un escenario de configuración simple para un conjunto de políticas discretas (por ejemplo, proporcionado por un CSP de políticas) puede requerir solo una única carga útil incluida en un archivo XML. Para escenarios de configuración más complejos (por ejemplo, una configuración para una conexión VPN), puede ser necesario especificar múltiples cargas útiles en un archivo XML. Por ejemplo, en el escenario de configuración VPN, se pueden proporcionar una carga útil de perfil y una carga útil de certificado. Estos archivos de configuración de escenario pueden crearse por un servidor antes de intentar una sesión de sincronización con un dispositivo informático. Esto evita crear el mismo archivo bajo demanda para cada dispositivo informático que interactúa con el servidor y deja el servidor disponible para realizar un trabajo más útil, aumentando de este modo la escalabilidad.
A continuación se presenta un ejemplo de un archivo XML de configuración de escenario que indica políticas que deben establecerse por un CSP de políticas, que incluye múltiples cargas útiles de configuración declarativa. Obsérvese que los atributos "Id", "suma de comprobación" y "OSDefinedScenario" del archivo XML de configuración de escenario de ejemplo constituyen un identificador único. Obsérvese además que el atributo "OSDefinedScenario" en este ejemplo indica que este es un escenario de configuración publicado, lo que significa que el escenario de configuración se basará en una máquina de estados de escenario de configuración declarada que dicta cómo configurar el escenario de configuración. Esta máquina de estados puede almacenarse en un registro después de que una construcción de sistema operativo (SO) compila un manifiesto de Windows® de máquina de estados de escenario de configuración declarada. Además, puede no haber necesidad de especificar si cada carga útil debe ser atómica o si todo el documento debe ser atómico porque este comportamiento puede especificarse en la máquina de estados. Además, el archivo XML a continuación establece algunas políticas amplias del dispositivo informático y configura una característica de cifrado de ejemplo (es decir, Microsoft® BitReference™):
<DeclaredConfiguration context-'Device" schema="1.0" id=" 12345"
OSDefinedScenario="MSFTMinimumSecurityBaseline" checksum="22280"
operation="Set">
<CSP name="./Vendor/MSFT/Policy" >
<URI path="Config/DeviceLock/DevicePasswordEnabled" type="int">0</URI>
<URI path="Config/DeviceLock/AllowSimplePassword" type="int">l</URI>
<URI path="Config/DeviceLock/MinDevicePasswordlength" type="int">6</URI>
<URI path="Config/ApplicationManagement/AllowAHTrustedApps" type="int">l</URI>
<URI path="Config/Experience/TestPolicyBinary" type="b64">BAMCAQ==</URI>
<URI path="Config/Browser/HomePages" type="chr">Hello world!</URI> <URI path="Config/Experience/BogusPolicy" type="chr">Hello world!</URI> </CSP>
<CSP name="./Vendor/MSFT/BitLocker"
<URI path="RequireStorageCardEncryption" type="int">l</URI>
<URI path="RequireDeviceEncryption" type="int">l</URI>
<URI path="EncryptionMethodByDriveType" type="chr">
<! [CDATA[<enabled/>
<data id="EncryptionMethodWithXtsOsDropDown_Name" value="4"/>
<data id="EncryptionMethodWithXtsFdvDropDown_Name" value="7"/>
<data id="EncryptionMethodWithXtsRdvDropDown_Name" value="4"/>]]> </URI>
</CSP>
</DeclaredConfiguration>
Sigue un ejemplo de un archivo XML multi-carga útil que describe un escenario de configuración definido por una MDM. En este ejemplo, dado que no hay ninguna máquina de estados de escenario de configuración declarada:
<DeclaredConfiguration context=”Device” schema=”1.0” id=”12346" MDMDefinedScenario-'optional My Blah Scenario" atomic-'false" checksum="5567" operation="Set">
<CSP name="./Vendor/MSFT/Policy">
<URI path="Config/DeviceLock/DevicePasswordEnabled" type="Int">0</URI> <URI path="Config/DeviceLock/AllowSimplePassword" type="Int">l</URI> <URI path="Config/DeviceLock/MinDevicePasswordlength" type="Int">6</URI> <URI path="Config/ApplicationManagement/AllowAHTrustedApps" type="Int">l</URI>
<URI path="Config/Experience/TestPolicyBinary" type="b64">BAMCAQ==</URI>
<URI path="Config/Browser/HomePages" type="chr">Hello world!</URI> <URI path="Config/Experience/BogusPolicy" type="chr">Hello world!</URI></CSP>
<CSP name="./Vendor/MSFT/BitLocker" atomic-'true"
<URI path-'RequireStorageCardEncryption" type="int">l</URI> <URI path=MRequireDeviceEncryption" type="int">l</URI>
<URI path=MEncryptionMethodByDriveType" type="chr">
<! [CDATA[<enabled/>
<data id="EncryptionMethodWithXtsOsDropDown_Name" value="4"/> <data id="EncryptionMethodWithXtsFdvDropDown_Name" value="7"/> <data id="EncryptionMethodWithXtsRdvDropDown_Name" value="47>]]> </URI>
</CSP>
</DeclaredConfiguration>
El manejador de información de configuración de cumplimiento 228 puede configurarse además para solicitar (por ejemplo, usando una solicitud de método GET de protocolo de transferencia de hipertexto (HTTP)) al servidor 102 información de configuración 112 y para proporcionar información de configuración 112 al comprobador de errores de información de configuración 210.
El comprobador de errores de información de configuración 210 puede configurarse para analizar sintácticamente la información de configuración 112, determinar un error en la información de configuración 112 (por ejemplo, errores con el código XML, atributos, URI en un archivo de escenario de configuración XML, etc.) y solicitar la corrección del error al servidor 102. Por ejemplo, en el ejemplo analizado anteriormente en el que la información de configuración 112 se representa como un archivo XML, el comprobador de errores de información de configuración 210 puede analizar sintácticamente y verificar el código XML, almacenar los URI en una ubicación de registro, y si se detecta algún error, notificar sincrónicamente los errores al servidor 102 y solicitar que el servidor 102 corrija los errores (como se representa en la FIG. 2A por la línea discontinua 216). Convencionalmente, un servidor MDM asegura que no hay conflictos o errores en la información de configuración. Sin embargo, la detección de conflictos y errores en el dispositivo cliente permite que se proporcione una retroalimentación inmediata a un servidor de MDM y una corrección rápida de cualquier error en la información de configuración.
El manejador de información de configuración de cumplimiento 228 puede estar configurado además para transmitir información de configuración 112 almacenada al servidor 102 y recibir información de configuración actualizada y/o información de configuración adicional desde el servidor 102 en respuesta al envío de la información de configuración al servidor 102. Por ejemplo, el manejador de información de configuración de cumplimiento 228 puede configurarse para verificar el estado (por ejemplo, obsoleto o caducado) de los datos 112 de información de configuración almacenados en el almacenamiento de datos de información de configuración 222 enviándolos al servidor 102, y basándose en el estado de la información de configuración 112 almacenada determinada por el servidor 102, el servidor 102 puede proporcionar al manejador de información de configuración de cumplimiento 228 información de configuración actualizada y/o información de configuración adicional. Posteriormente, el manejador de información de configuración de cumplimiento 228 puede almacenar la información de configuración actualizada recibida y/o información de configuración adicional en el almacenamiento de datos de información de configuración 222 (como se representa en la FIG.
2A por líneas 214 discontinuas). Como se describe a continuación, el motor orquestador 208 del agente de cumplimiento 220 está configurado para implementar los ajustes de configuración recibidos en la información de configuración 112, y genera resultados de configuración 226 basándose en los mismos.
En particular, la FIG. 2B representa un diagrama de bloques detallado del sistema 230, de acuerdo con una realización de ejemplo. El sistema 230 es un ejemplo adicional del sistema 100. Como se muestra en la FIG.
2B, el sistema 230 incluye el servidor 102 y un dispositivo informático 244. El dispositivo informático 244 es un ejemplo adicional del dispositivo informático 104 de la FIG. 1. Además, el dispositivo informático 244 incluye un agente de cumplimiento 240, un almacenamiento de datos de SM 224 y un almacenamiento de datos de información de configuración 222. El agente de cumplimiento 240 es un ejemplo adicional de agente de cumplimiento 120, como se describió anteriormente haciendo referencia a la FIG. 1.
De manera similar al dispositivo informático 104 descrito haciendo referencia a la FIG. 1, el dispositivo informático 244 ejecuta el agente de cumplimiento 240, que está configurado para implementar los ajustes de configuración especificados por la información de configuración 112. Como se muestra en la FIG. 2B, el agente de cumplimiento 240 incluye el gestor de configuración 206 y el motor orquestador 208. El gestor de configuración 206 incluye un manejador de información de configuración de cumplimiento 228 y un activador de implementación de ajustes 232. El motor orquestador 208 incluye un selector de máquina de estados 234 y un motor de ejecución de máquina de estados 236. Estas características del agente de cumplimiento 240 se describen a continuación.
El activador de implementación de ajustes 232 está configurado para activar el motor orquestador 208 para implementar ajustes de cumplimiento descritos por la información de configuración 112 en el dispositivo informático 244. Por ejemplo, como se muestra en la FIG. 2B, el activador de implementación de ajustes 232 proporciona un activador 218 al selector de máquina de estados 234. Más específicamente, el activador 218 puede provocar la programación de una tarea (y la tarea programada puede ser activada por un CSP de "DeclaredConfiguration") después de que el comprobador de errores de información de configuración 210 analice sintácticamente y verifique la información de configuración 112, como se describió anteriormente haciendo referencia a la FIG. 2A. De acuerdo con las realizaciones, la tarea puede almacenarse en una cola de actividad y procesarse después de que se hayan procesado cualesquiera tareas sin procesar almacenadas en la cola de actividad.
El selector de máquina de estados 234 está configurado para recibir un activador desde el activador 232 de implementación de ajustes para implementar ajustes de cumplimiento en el dispositivo informático 244. En una realización, el selector de máquina de estados 234 identifica una máquina de estados indicada por la información de configuración 112 que describe un proceso de configuración para implementar los ajustes de cumplimiento. Después de recibir el activador 218, la máquina selectora de estado 234 puede obtener información de configuración almacenada 112 del almacenamiento de datos de información de configuración 222 y determinar que la máquina de estados 118 está asociada con la información de configuración 112 después de consumir atributos de la información de configuración almacenada 112. Por ejemplo, la información de configuración 112 puede especificar un identificador para una máquina de estados particular.
El selector de máquina de estados 234 puede estar configurado además para proporcionar la máquina de estados 118 al motor de ejecución de máquina de estados 236. El motor de ejecución de máquina de estados 236 está configurado para ejecutar la máquina de estados 118 para configurar el dispositivo informático 244 con ajustes de cumplimiento descritos en la información de configuración 112. Por ejemplo, el selector de máquina de estados 234 puede procesar cargas útiles incluidas en la información de configuración 112 (como se describe haciendo referencia a la FIG. 2A) junto con dependencias en el orden impuesto por la máquina de estados 118. Alternativamente, si no hay máquina de estados asociada con la información de configuración 112, entonces las cargas útiles especificadas por la información de configuración 112 se procesan en el orden dictado por la información de configuración 112. Además, el selector de máquina de estados 234 puede acceder al almacenamiento de datos de máquina de estados 224 para obtener un manifiesto de la máquina de estados 118. El manifiesto puede incluir la máquina de estados 118 y sus dependencias.
A continuación se reproduce un archivo XML de ejemplo de un manifiesto de máquina de estados de escenario de configuración declarado.
<?xml version="1.0" encoding="utf-8"?> <DeclaredConfigurationScenarioStateMachine>
<StateMachine name="MSFTMinimumSecurityBaseline" extensionDLL="%SYSTEMROOT%\system32\MSFTMinimumSecurityBaseline. dll" start="SetGeneralPolicies">
<State name="SetGeneralPolicies" defaultGoto="SetBitlocker"> <InputArguments></InputArguments> <OutputArguments></OutputArguments>
<CSP name="./Vendor/MSFT/Policy" >
<URI path="Config/DeviceLock/DevicePasswordEnabled" type="int">0</URI> <!— Has to be zero since valúes is set-->
<URI path="Config/DeviceLock/AllowSimplePassword"></URI>
<URI path="Config/DeviceLock/MinDevicePasswordlength"x/URI> <URI path="Config/ApplicationManagement/AllowAllTrustedApps"></URI> </CSP>
</State>
</ OutputArguments>
<URI path="RequireStorageCardEncryption" type="int">l</URI>
<URI path="RequireDeviceEncryption" type="int">l</URI>
<URI path="EncryptionMethodByDriveType"x/URI>
</State>
</StateMachine>
</DeclaredConfigurationScenarioStateMachine>
El motor de ejecución de máquina de estados 236 puede configurarse además para almacenar resultados de configuración 226 (por ejemplo, un archivo XML con los URI y valores, eventos, último código de error, estado, etc.) en el almacenamiento de datos de información de configuración 222. Por ejemplo, los resultados de configuración 226 pueden incluir uno o más registros de cumplimiento 106 y/o referencias de configuración 114 descritos anteriormente con respecto a la FIG. 1. El manejador de información de configuración de cumplimiento 228 puede configurarse para obtener resultados de configuración 226 del almacenamiento de datos de información de configuración 222 y proporcionar resultados de configuración 226 al motor de cumplimiento 122 (como se representa en la FIG. 2B por líneas 226 discontinuas) para ser analizados por el servidor 102. En el caso de que los resultados de configuración 226 incluyan un error, el servidor 102 puede proporcionar al manejador de información de configuración de cumplimiento 228 una versión anterior de la información de confirmación 112 de modo que cualquier cambio erróneo en el dispositivo móvil puede invertirse, incluyendo dirigir el motor orquestador 208 para que retroceda el estado del dispositivo informático al estado anterior a la ejecución de la máquina de estados.
Por ejemplo, de acuerdo con las realizaciones descritas en el presente documento, la máquina de estados puede contener directivas de configuración para el escenario de configuración. Para mayor ilustración, un estado puede ser descrito por las entidades "DesdeEstado", "Actividad" y "HastaEstado". Una Actividad puede tener la forma de código ejecutable propiedad de, y creado por uno o varios propietarios de escenarios de configuración. Además, una Actividad puede devolver un estado HastaEstado diferente en tiempo de ejecución a utilizar para pasar a una siguiente etapa. Si la Actividad no modifica HastaEstado, entonces se utiliza el HastaEstado predeterminado y se especifica en la representación de datos de máquina de estados. Una Actividad puede tener datos de entrada y datos de salida predefinidos expresados como XML que se corresponden con la Actividad. Esto asegura que una actividad individual se pueda desarrollar y probar individualmente. La capacidad de tener una Actividad de modificación del HastaEstado permite ajustes de tiempo de ejecución a una máquina de estados. La máquina de estados puede usarse para configurar, verificar, refrescar y eliminar escenarios de configuración.
Los sistemas 100, 200 y 230 pueden funcionar de diversas maneras para realizar sus funciones. Por ejemplo, la FIG. 3 representa un diagrama de flujo 300 de un método para implementar ajustes de cumplimiento por un dispositivo informático para hacer que el dispositivo informático cumpla un escenario de configuración, de acuerdo con una realización de ejemplo. La FIG. 3 se describe manteniendo la referencia a las FIGS. 1 ,2A y 2B. Sin embargo, otras realizaciones estructurales y operativas serán evidentes para los expertos en la o las técnicas relevantes basándose en la siguiente discusión con respecto al diagrama de flujo 300 y los sistemas 100, 200 y 230 de las FIGS. 1 ,2A y 2B.
Como se muestra en la FIG. 3, el diagrama de flujo 300 comienza en la etapa 302. En la etapa 302, la información de configuración se recibe desde un servidor, describiendo la información de configuración ajustes de cumplimiento para su implementación por un dispositivo móvil para hacer que el dispositivo móvil cumpla un escenario de configuración. Por ejemplo, manteniendo la referencia a las FIGS. 1, 2A y 2B, el manejador de información de configuración de cumplimiento 228 recibe información 112 del motor de cumplimiento 122 del servidor 102.
En la etapa 304, se almacena la información de configuración. Por ejemplo, manteniendo la referencia a las FIGS. 1, 2A y 2B, el manejador de información de configuración de cumplimiento 228 almacena información de configuración 112 en el almacenamiento de datos de información de configuración 222.
En la etapa 306, se recibe un activador para implementar los ajustes de cumplimiento en el dispositivo móvil. Por ejemplo, manteniendo la referencia a las FIGS. 1 ,2A y 2B, el activador de implementación de ajustes 232 proporciona el activador 218 al selector de máquina de estados 234 del motor orquestador 208, iniciando la implementación de ajustes de cumplimiento descritos por la información de configuración 112 en el dispositivo informático 244.
En la etapa 308, se identifica una máquina de estados, indicada por la información de configuración que describe un proceso de configuración para implementar los ajustes de cumplimiento. Por ejemplo, manteniendo la referencia a las FIGS. 1, 2A y 2B, después de recibir el activador 218, la máquina selectora de estado 234 obtiene información de configuración almacenada 112 del almacenamiento de datos de información de configuración 222 y determina que la máquina de estados 118 está asociada con la información de configuración 112.
En la etapa 310, manteniendo la referencia a las FIGS. 1, 2A y 2B, la máquina de estados se ejecuta para configurar el dispositivo móvil con los ajustes de cumplimiento. Por ejemplo, manteniendo la referencia a las FIGS. 1, 2A y 2B, el selector de máquina de estados 234 proporciona la máquina de estados 118 (o un puntero a la misma) al motor de ejecución de máquina de estados 236 y el motor de ejecución de máquina de estados 236 ejecuta la máquina de estados 118 para configurar el dispositivo informático 244 con ajustes de cumplimiento descritos en la información de configuración 112.
La FIG. 4 representa un diagrama de flujo 400 de un método para determinar si el dispositivo móvil está configurado apropiadamente de acuerdo con la información de configuración, de acuerdo con una realización de ejemplo. La FIG. 4 se describe manteniendo la referencia a las FIGS. 1, 2A y 2B. Sin embargo, otras realizaciones estructurales y operativas serán evidentes para los expertos en la o las técnicas relevantes basándose en la siguiente discusión con respecto al diagrama de flujo 400 y los sistemas 100, 200 y 230 de las FIGS. 1 ,2A y 2B.
Como se muestra en la FIG. 4, el diagrama de flujo 400 incluye la etapa 402. En la etapa 402, la máquina de estados se ejecuta para determinar si el dispositivo móvil está configurado apropiadamente de acuerdo con la información de configuración. Por ejemplo, manteniendo la referencia a las FIGS. 1, 2A y 2B, el motor de ejecución de máquina de estados 236 ejecuta la máquina de estados 118 sin modificar la configuración del dispositivo informático 244 para evaluar que el dispositivo informático 244 está en el estado de configuración correcto. En particular, de acuerdo con las realizaciones descritas en el presente documento, una máquina de estados puede funcionar en cualquiera de dos modos, un modo "Configurar" y un modo "Analizar". El modo Configurar configura el dispositivo informático basándose en la información de configuración (como se describió anteriormente). El modo Analizar realiza una evaluación del dispositivo informático sin modificación del mismo para garantizar que el dispositivo está de hecho en el estado de configuración correcto. Por ejemplo, la máquina de estados se configura para recuperar uno o más ajustes actuales y/u otra información (relacionada con una configuración de hardware/software/firmware particular) del dispositivo informático (por ejemplo, determinar un número de versión del sistema operativo, un número de versión de otra aplicación, una entrada en un archivo tal como un archivo DLL (Dynamic-Link Library, biblioteca de enlaces dinámicos), etc.; determinar la presencia o ausencia de uno o más archivos, etc.). La máquina de estados puede comparar la información recuperada con la información de configuración correcta mantenida o accesible por la máquina de estados para el dispositivo informático. Si toda la información coincide, la máquina de estados puede indicar que el dispositivo informático cumple la configuración particular. Si no toda la información coincide, la máquina de estados puede indicar que los dispositivos informáticos no cumplen.
Como se ha descrito anteriormente, los resultados de una configuración particular realizada por una máquina de estados pueden transmitirse al motor de cumplimiento. Por ejemplo, la FIG. 5 representa un diagrama de flujo 500 de un método para almacenar y transmitir resultados de configuración, de acuerdo con una realización. La FIG. 5 se describe manteniendo la referencia a las FIGS. 1, 2A y 2B. Sin embargo, otras realizaciones estructurales y operativas serán evidentes para los expertos en la o las técnicas relevantes basándose en la siguiente discusión con respecto al diagrama de flujo 500 y los sistemas 100, 200 y 230 de las FIGS. 1 ,2A y 2B.
Como se muestra en la FIG. 5, el diagrama de flujo 500 comienza en la etapa 502. En la etapa 502, se almacenan los resultados de configuración, generados ejecutando la máquina de estados en un almacenamiento de datos de información de configuración. Por ejemplo, manteniendo la referencia a las FIGS. 1, 2A y 2B, el motor de ejecución de máquina de estados 236 almacena resultados de configuración 226 en el almacenamiento de datos de información de configuración 222. En realizaciones, los resultados de configuración 226 pueden incluir una o más indicaciones. Por ejemplo, los resultados de configuración 226 pueden proporcionar una indicación de que el o los ajustes de configuración se instalaron con éxito por el motor orquestador 208, la instalación está en curso o que se produjo un fallo y el o los ajustes de configuración no se instalaron con éxito. Si se produjo un fallo, los resultados de configuración 226 pueden incluir una indicación del fallo, tal como enumerando uno o más errores (mediante código y/o descripción de error), rastreo de eventos (por ejemplo, registro de información sobre la ejecución de la máquina de estados que puede usarse para depuración) y/u otros datos de diagnóstico generados por la máquina de estados.
En las etapas 504 y 506, los resultados de configuración del almacenamiento de datos de información de configuración se obtienen (etapa 504) y se transmiten al servidor (etapa 506). Por ejemplo, manteniendo la referencia a las FIGS. 1, 2A y 2B, el manejador de información de configuración de cumplimiento 228 obtiene resultados de configuración 226 del almacenamiento de datos de información de configuración 222 y proporciona resultados de configuración 226 al motor de cumplimiento 122 para su análisis por el servidor 102. En el caso de que los resultados de configuración 226 incluyan un error, el servidor 102 puede proporcionar al manejador de información de configuración de cumplimiento 228 una versión anterior de la información de confirmación 112 de modo que cualquier cambio erróneo en el dispositivo móvil puede invertirse, incluyendo dirigir el motor orquestador 208 para que retroceda el estado del dispositivo informático al estado anterior a la ejecución de la máquina de estados. Por ejemplo, antes de ejecutar una máquina de estados, o durante la ejecución de la máquina de estados, se puede guardar un estado actual del dispositivo informático (por ejemplo, guardar versiones de ajustes, archivos afectados, etc., que existían antes de la ejecución de la máquina de estados), y el dispositivo informático se puede reconfigurar con el estado guardado devolviendo al dispositivo informático a la información de estado guardada. Alternativamente, se puede indicar al dispositivo informático que no retroceda al último estado bueno conocido anterior, de modo que se pueda realizar un análisis detallado del estado de fallo. Por ejemplo, se puede definir otro modo, denominado "modo desarrollador" (o mediante otra etiqueta), en el que el dispositivo informático no retrocede al último estado bueno conocido en caso de error.
Además, obsérvese que si se encuentra un error durante la ejecución de una máquina de estados, el agente de cumplimiento puede intentar corregir el error en lugar de volver a un estado anterior. Por ejemplo, la FIG. 6 representa un diagrama de flujo 600 de un método para solicitar la corrección de un error con información de configuración, de acuerdo con una realización de ejemplo. La FIG. 6 se describe manteniendo la referencia a las FIGS. 1, 2A y 2B. Sin embargo, otras realizaciones estructurales y operativas serán evidentes para los expertos en la o las técnicas relevantes basándose en la siguiente discusión con respecto al diagrama de flujo 600 y los sistemas 100, 200 y 230 de las FIGS. 1 ,2A y 2B.
El diagrama de flujo 600 comienza con la etapa 602. En la etapa 602, se analiza sintácticamente la información de configuración. Por ejemplo, el motor orquestador 208 puede configurarse para analizar sintácticamente información de configuración 112 para uno o más ajustes de configuración que corresponden a una descripción de código/error de error recibida.
En la etapa 604, se determina un error con la información de configuración. En una realización, durante el análisis sintáctico, el motor orquestador 208 puede determinar los uno o más ajustes de configuración que corresponden a una descripción de código/error de error recibida.
En la etapa 606, se solicita la corrección del error al servidor. En una realización, el agente de cumplimiento 240 puede transmitir información de error (por ejemplo, un código de error, una descripción de error, un rastreo de eventos, etc.)para el cumplimiento 122, con el fin de solicitar la corrección del error.
Por ejemplo, manteniendo la referencia a las FIGS. 1, 2A y 2B, en el ejemplo analizado anteriormente en el que la información de configuración 112 está representada por un archivo XML, el comprobador de errores de información de configuración 210 puede analizar sintácticamente y verificar el archivo XML, almacenar los URI en una ubicación de registro, y si se detecta algún error, notificar sincrónicamente los errores al servidor 102 y solicitar al servidor 102 que corrija inmediatamente los errores.
Obsérvese que en respuesta a una solicitud de corrección de un error, y/o en cualquier otro momento, el motor de cumplimiento 122 puede proporcionar información de configuración actualizada a un agente de cumplimiento. Por ejemplo, la FIG. 7 representa un diagrama de flujo 700 de un método para recibir información de configuración actualizada y/o información de configuración adicional, de acuerdo con una realización de ejemplo. La FIG. 7 se describe manteniendo la referencia a las FIGS. 1 ,2A y 2B. Sin embargo, otras realizaciones estructurales y operativas serán evidentes para los expertos en la o las técnicas relevantes basándose en la siguiente discusión con respecto al diagrama de flujo 700 y los sistemas 100, 200 y 230 de las FIGS. 1 ,2A y 2B.
Como se muestra en la FIG. 7, el diagrama de flujo 700 comienza con la etapa 702. En la etapa 702, la información de configuración se almacena en un almacenamiento de datos de información de configuración. Por ejemplo, manteniendo la referencia a las FIGS. 2A y 2B, la información de configuración 112 se almacena en el almacenamiento de datos de información de configuración 222.
En la etapa 704, la información de configuración almacenada se transmite al servidor. En realizaciones, el agente de cumplimiento 240 puede transmitir la configuración 112 al motor de cumplimiento 122 en el servidor 102 por cualquier razón, incluyendo debido a un error (como se describió anteriormente), para comprobar actualizaciones, y por cualquier otra razón. Por ejemplo, el manejador de información de configuración de cumplimiento 228 puede verificar el estado (por ejemplo, obsoleto o caducado) de la información de configuración 112 almacenada en el almacenamiento de datos de información de configuración 222. Si el manejador 228 determina que la información de configuración 112 contiene un error, está obsoleta, está caducada, etc., el manejador 228 puede transmitir información de configuración 112 (o una parte de la misma) al servidor 102
En la etapa 706, la información de configuración actualizada y/o la información de configuración adicional se reciben desde el servidor en respuesta al envío de la información de configuración al servidor. Basándose en un estado de la información de configuración almacenada 112 determinado por el servidor 102, el servidor 102 puede proporcionar al manejador de información de configuración de cumplimiento 228 información de configuración actualizada y/o información de configuración adicional. Así, el manejador de información de configuración de cumplimiento 228 puede actualizar el almacenamiento de datos de información de configuración 222 con la información de configuración actualizada y/o información de configuración adicional. Por consiguiente, las realizaciones mejoran la eficiencia del envío iniciado por servidor de ajustes de configuración a grandes números de dispositivos, y mantienen un seguimiento del cumplimiento de tales dispositivos con los requisitos en base a que han recibido e implementado los ajustes de configuración. Las realizaciones reducen la latencia del cliente/servidor (el retardo antes de que comience una transferencia de datos tras una instrucción para su transferencia), poniendo más responsabilidad en los dispositivos cliente para que se pongan ellos mismos en el estado deseado. Cada dispositivo cliente acepta la solicitud para implementar ajustes de configuración desde el servidor, volviendo inmediatamente al servidor. La solicitud es manejada de forma asíncrona por los dispositivos cliente. Cuando un dispositivo cliente ha completado la solicitud, iniciará una sesión para enviar al servidor una alerta que indica el éxito o el fallo de la implementación de los ajustes de configuración por el dispositivo cliente. Las realizaciones también reducen la actividad de red entre los dispositivos cliente y servidor eliminando la necesidad de que el servidor monitorice continuamente el estado de los dispositivos cliente y, de manera gradual, mantenga el estado de dispositivo deseado. En realizaciones, el servidor proporciona a cada cliente el estado deseado (en forma de ajustes de configuración) y espera que el cliente mantenga los ajustes (y notifique al servidor, sin preguntar al servidor, si no lo puede hacerlo). Las realizaciones también proporcionan una manera uniforme, iniciada por el servidor, para configurar dispositivos cliente con ajustes, en lugar de tener proveedores de servicios (por ejemplo, proveedores de software y/o hardware) para tener que gestionar el proceso para sus propios productos.
111. Ejemplos de realizaciones de dispositivos móviles y estacionarios
Los sistemas y métodos descritos anteriormente, incluyendo las realizaciones de gestión de cumplimiento del dispositivo descritas en referencia a las FIGS. 1-7, pueden implementarse en hardware, o hardware combinado con uno o ambos de software y/o firmware. Por ejemplo, el motor de cumplimiento 112, el agente de cumplimiento 120, el motor orquestador 208, el comprobador de errores de información de configuración 210, el agente de cumplimiento 220, el manejador de información de configuración de cumplimiento 228, el activador de implementación de ajustes 232, el selector de máquina de estados 234, el motor de ejecución de máquina de estados 236, el agente de cumplimiento 240 y/o cada uno de los componentes descritos en estos, y los diagramas de flujo 300, 400, 500, 600 y 700 pueden implementarse, cada uno, como código/instrucciones de programa informático configurados para ejecutarse en uno o más procesadores y almacenarse en un medio de almacenamiento legible por ordenador. Alternativamente, el motor de cumplimiento 112, el agente de cumplimiento 120, el motor orquestador 208, el comprobador de errores de información de configuración 210, el agente de cumplimiento 220, el manejador de información de configuración de cumplimiento 228, el activador de implementación de ajustes 232, el selector de máquina de estados 234, el motor de ejecución de máquina de estados 236, el agente de cumplimiento 240 y/o cada uno de los componentes descritos en estos, y los diagramas de flujo 300, 400, 500, 600 y 700 pueden implementarse como lógica de hardware/circuitos eléctricos. En una realización, el motor de cumplimiento 112, el agente de cumplimiento 120, el motor orquestador 208, el comprobador de errores de información de configuración 210, el agente de cumplimiento 220, el manejador de información de configuración de cumplimiento 228, el activador de implementación de ajustes 232, el selector de máquina de estados 234, el motor de ejecución de máquina de estados 236, el agente de cumplimiento 240 y/o cada uno de los componentes descritos en estos, y los diagramas de flujo 300, 400, 500, 600 y 700 pueden implementarse en uno o más SoCs (sistema en chip). Un SoC puede incluir un chip de circuito integrado que incluye uno o más de un procesador (por ejemplo, una unidad central de procesamiento (CPU), microcontrolador, microprocesador, procesador de señal digital (DSP), etc.), memoria, una o más interfaces de comunicación y/u otros circuitos, y puede ejecutar opcionalmente el código de programa recibido y/o incluir firmware incorporado para realizar funciones.
Además, el servidor 102, el o los dispositivos informáticos 104, el dispositivo informático 204 y el dispositivo informático 244 pueden implementarse, cada uno, en diversos tipos de dispositivos. Por ejemplo, la FIG. 8 muestra un diagrama de bloques de un dispositivo móvil 800 a modo de ejemplo que incluye una variedad de componentes de hardware y software opcionales, mostrados, en general, como componentes 802. Cualquier número y combinación de las características/elementos del motor de cumplimiento 112, el agente de cumplimiento 120, el motor orquestador 208, el comprobador de errores de información de configuración 210, el agente de cumplimiento 220, el manejador de información de configuración de cumplimiento 228, el activador de implementación de ajustes 232, el selector de máquina de estados 234, el motor de ejecución de máquina de estados 236, el agente de cumplimiento 240 y/o los diagramas de flujo 300, 400, 500, 600 y 700 pueden implementarse como componentes 802 incluidos en una realización de dispositivo móvil, así como características/elementos adicionales y/o alternativos, como sabría el experto en la o las técnicas relevantes. Se observa que cualquiera de los componentes 802 puede comunicarse con cualquier otro de los componentes 802, aunque no se muestran todas las conexiones, para facilitar la ilustración. El dispositivo móvil 800 puede ser cualquiera de una variedad de dispositivos móviles descritos o mencionados en otra parte en el presente documento o conocidos de otro modo (por ejemplo, teléfono celular, teléfono inteligente, ordenador de mano, asistente digital personal (PDA), etc.) y puede permitir comunicaciones bidireccionales inalámbricas con uno o más dispositivos móviles a través de una o más redes de comunicaciones 804, tales como una red celular o satelital, o con una red de área local o de área amplia.
El dispositivo móvil 800 ilustrado puede incluir un controlador o procesador denominado circuito procesador 810 para realizar tareas tales como codificación de señal, procesamiento de imagen, procesamiento de datos, procesamiento de entrada/salida, control de potencia y/u otras funciones. El circuito procesador 810 es un circuito eléctrico y/u óptico implementado en uno o más elementos de dispositivo de circuito eléctrico de hardware físico y/o dispositivos de circuito integrado (chips o matrices de material semiconductor) como una unidad de procesamiento central (CPU), un microcontrolador, un microprocesador y/u otro circuito procesador de hardware físico. El circuito procesador 810 puede ejecutar código de programa almacenado en un medio legible por ordenador, tal como código de programa de una o más aplicaciones 814, el sistema operativo 812, cualquier código de programa almacenado en la memoria 820, etc. El sistema operativo 812 puede controlar la asignación y el uso de los componentes 802 y soportar uno o más programas de aplicación 814 (también conocidos como aplicaciones, "apps", etc.). Los programas de aplicación 814 pueden incluir aplicaciones informáticas móviles comunes (por ejemplo, aplicaciones de correo electrónico, calendarios, gestores de contactos, navegadores web, aplicaciones de mensajería) y cualesquiera otras aplicaciones informáticas (por ejemplo, aplicaciones de procesamiento de textos, aplicaciones de mapeo, aplicaciones de reproductor multimedia).
Como se ilustra, el dispositivo móvil 800 puede incluir la memoria 820. La memoria 820 puede incluir una memoria 822 no extraíble y/o una memoria 824 extraíble. La memoria no extraíble 822 puede incluir RAM, ROM, memoria flash, un disco duro u otras tecnologías de almacenamiento de memoria bien conocidas. La memoria extraíble 824 puede incluir memoria flash o una tarjeta de módulo de identidad de abonado (SIM), que es bien conocida en los sistemas de comunicación GSM, u otras tecnologías de almacenamiento de memoria bien conocidas, tales como "tarjetas inteligentes". La memoria 820 puede usarse para almacenar datos y/o código para ejecutar el sistema operativo 812 y las aplicaciones 814. Los datos de ejemplo pueden incluir páginas web, texto, imágenes, archivos de sonido, datos de vídeo u otros conjuntos de datos que se enviarán a y/o recibirán de uno o más servidores de red u otros dispositivos a través de una o más redes cableadas o inalámbricas. La memoria 820 puede usarse para almacenar un identificador de abonado, tal como una identidad de abonado móvil internacional (IMSI), y un identificador de equipo, tal como un identificador de equipo móvil internacional (IMEI). Tales identificadores pueden transmitirse a un servidor de red para identificar usuarios y equipos.
Se pueden almacenar varios programas en la memoria 820. Estos programas incluyen el sistema operativo 812, uno o más programas de aplicación 814, y otros módulos de programa y datos de programa. Ejemplos de tales programas de aplicación o módulos de programa pueden incluir, por ejemplo, lógica de programa informático (por ejemplo, código o instrucciones de programa informático) para implementar los sistemas descritos anteriormente, incluyendo las realizaciones de gestión de cumplimiento del dispositivo descritas haciendo referencia a las FIGS. 1-7.
El dispositivo móvil 800 puede soportar uno o más dispositivos de entrada 830, tales como una pantalla táctil 832, micrófono 834, cámara 836, teclado físico 838 y/o bola de seguimiento 840 y uno o más dispositivos de salida 850, tales como un altavoz 852 y una pantalla 854.
Otros posibles dispositivos de salida (no mostrados) pueden incluir piezoeléctricos u otros dispositivos hápticos de salida. Algunos dispositivos pueden servir para más de una función de entrada/salida. Por ejemplo, la pantalla táctil 832 y la pantalla 854 pueden combinarse en un único dispositivo de entrada/salida. Los dispositivos de entrada 830 pueden incluir una interfaz de usuario natural (NUI).
El o los módems inalámbricos 860 puede estar acoplados a la o las antenas (no mostrado) y pueden soportar comunicaciones bidireccionales entre el circuito procesador 810 y los dispositivos externos, como se entiende bien en la técnica. El o los módems 860 se muestran genéricamente y puede incluir un módem 866 celular para comunicarse con la red 804 de comunicación móvil y/u otros módems basados en radio (por ejemplo, Bluetooth 764 y/o Wi-Fi 762). El módem 866 celular puede configurarse para habilitar llamadas telefónicas (y opcionalmente transmitir datos) según cualquier estándar o tecnología de comunicación adecuada, tal como GSM, 3G, 4G, 5G, etc. Al menos uno del o de los módems 860 inalámbrico está configurado típicamente para comunicación con una o más redes celulares, tal como una red GSM para comunicaciones de datos y voz dentro de una única red celular, entre redes celulares, o entre el dispositivo móvil y una red telefónica pública conmutada (PSTN).
El dispositivo móvil 800 puede incluir además al menos un puerto 880 de entrada/salida, una fuente 882 de alimentación, un receptor 884 de sistema de navegación por satélite, tal como un receptor de sistema de posicionamiento global (GPS), un acelerómetro 886 y/o un conector 890 físico, que puede ser un puerto USB, un puerto IEEE 1394 (FireWire) y/o un puerto RS-232. Los componentes ilustrados 802 no son necesarios o son todos inclusivos, ya que cualesquiera componentes pueden no estar presentes y otros componentes pueden estar presentes adicionalmente como reconocería un experto en la técnica.
Además, la FIG. 9 representa una implementación a modo de ejemplo de un dispositivo informático 900 en el que se pueden implementar realizaciones, incluyendo el dispositivo informático 104, el dispositivo informático 204, el dispositivo informático 244, el servidor 102. La descripción del dispositivo informático 900 proporcionada en el presente documento se proporciona con fines ilustrativos, y no pretende ser limitante. Las realizaciones pueden implementarse en tipos adicionales de sistemas informáticos, como sabrían los expertos en la o las técnicas relevantes.
Como se muestra en la FIG. 9, el dispositivo informático 900 incluye uno o mas procesadores, denominados circuito procesador 902, una memoria de sistema 904 y un bus 906 que acopla diversos componentes de sistema, incluyendo la memoria de sistema 904, al circuito procesador 902. El circuito procesador 902 es un circuito eléctrico y/u óptico implementado en uno o más elementos de dispositivo de circuito eléctrico de hardware físico y/o dispositivos de circuito integrado (chips o matrices de material semiconductor) como una unidad de procesamiento central (CPU), un microcontrolador, un microprocesador y/u otro circuito procesador de hardware físico. El circuito procesador 902 puede ejecutar código de programa almacenado en un medio legible por ordenador, tal como código de programa de sistema operativo 930, programas de aplicación 932, otros programas 934, etc. El bus 906 representa uno o más de cualquiera de varios tipos de estructuras de bus, incluyendo un bus de memoria o controlador de memoria, un bus periférico, un puerto de gráficos acelerado y un procesador o bus local que usa cualquiera de una variedad de arquitecturas de bus. La memoria 904 de sistema incluye una memoria 908 de sólo lectura (ROM) y una memoria 910 de acceso aleatorio (RAM). Un sistema básico 912 de entrada/salida (BIOS) se almacena en la ROM 908.
El dispositivo informático 900 también tiene una o más de las siguientes unidades: una unidad de disco duro 914 para leer desde, y escribir en un disco duro, una unidad de disco magnético 916 para leer desde, o escribir en un disco 918 magnético extraíble, y una unidad de disco óptico 920 para leer desde, o escribir en un disco 922 óptico extraíble tal como un CD ROM, DVD ROM u otro medio óptico. La unidad de disco duro 914, la unidad de disco magnético 916 y la unidad de disco óptico 920 están conectadas al bus 906 mediante una interfaz 924 de unidad de disco duro, una interfaz 926 de unidad de disco magnético y una interfaz 928 de unidad óptica, respectivamente. Las unidades y sus medios legibles por ordenador asociados proporcionan almacenamiento no volátil de instrucciones legibles por ordenador, estructuras de datos, módulos de programa y otros datos para el ordenador. Aunque se describen un disco duro, un disco magnético extraíble y un disco óptico extraíble, se pueden usar otros tipos de medios de almacenamiento legibles por ordenador basados en hardware para almacenar datos, tales como tarjetas de memoria flash, discos de vídeo digital, RAM, ROM y otros medios de almacenamiento de hardware.
Se pueden almacenar varios módulos de programa en el disco duro, disco magnético, disco óptico, ROM o RAM. Estos programas incluyen el sistema operativo 930, uno o más programas de aplicación 932, otros programas 934 y datos de programa 936. Los programas 932 de aplicación u otros programas 934 pueden incluir, por ejemplo, lógica de programa informático (por ejemplo, código o instrucciones de programa informático) para implementar los sistemas descritos anteriormente, incluyendo las realizaciones de gestión de cumplimiento del dispositivo descritas haciendo referencia a las FIGS. 1-7.
Un usuario puede introducir comandos e información en el dispositivo informático 900 a través de dispositivos de entrada tales como el teclado 938 y el dispositivo de puntero 940. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, una palanca de mando, un mando de juegos, una antena parabólica, un escáner, una pantalla táctil y/o un mando táctil, un sistema de reconocimiento de voz para recibir entrada de voz, un sistema de reconocimiento de gestos para recibir entrada de gestos, o similares. Estos y otros dispositivos de entrada a menudo se conectan al circuito procesador 902 a través de una interfaz de puerto serie 942 que se acopla al bus 906, pero pueden conectarse mediante otras interfaces, tales como un puerto paralelo, puerto de juegos o un bus serie universal (USB).
Una pantalla 944 de visualización también está conectada al bus 906 a través de una interfaz, tal como un adaptador 846 de vídeo. La pantalla 844 de visualización puede ser externa a, o estar incorporada en, el dispositivo informático 900. La pantalla de visualización 944 puede mostrar información, así como ser una interfaz de usuario para recibir comandos de usuario y/u otra información (por ejemplo, por toque, gestos con los dedos, teclado virtual, etc.). Además de la pantalla 944 de visualización, el dispositivo informático 900 puede incluir otros dispositivos de salida periféricos (no mostrados) tales como altavoces e impresoras.
El dispositivo informático 900 está conectado a una red 948 (por ejemplo, internet) a través de un adaptador o interfaz 950 de red, un módem 952 u otros medios para establecer comunicaciones a través de la red. El módem 952, que puede ser interno o externo, puede estar conectado al bus 906 a través de la interfaz 942 de puerto serie, tal como se muestra en la FIG. 9, o puede estar conectado al bus 906 usando otro tipo de interfaz, incluyendo una interfaz paralela.
Como se usa en el presente documento, los términos "medio de programa informático", "medio legible por ordenador" y "medio de almacenamiento legible por ordenador" se usan para referirse generalmente a medios de hardware físicos tales como el disco duro asociado con la unidad de disco duro 914, disco magnético extraíble 918, disco óptico extraíble 922, otros medios de hardware físicos tales como RAM, ROM, tarjetas de memoria flash, discos de vídeo digital, discos zip, MEM, dispositivos de almacenamiento basados en nanotecnología y tipos adicionales de medios de almacenamiento de hardware físicos/tangibles (incluyendo la memoria de sistema 904 de la FIG. 9). Tales medios de almacenamiento legibles por ordenador se distinguen de, y no se superponen con los medios de comunicación (no incluyen medios de comunicación). Los medios de comunicación típicamente incorporan instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda portadora. El término "señal de datos modulada" significa una señal que tiene una o más de sus características establecidas o cambiadas de tal manera que codifican información en la señal. A modo de ejemplo, y no de limitación, los medios de comunicación incluyen medios inalámbricos tales como medios acústicos, de RF, infrarrojos y otros medios inalámbricos, así como medios cableados. Las realizaciones también se refieren a tales medios de comunicación.
Como se ha indicado anteriormente, los programas y módulos informáticos (incluyendo los programas 932 de aplicación y otros programas 934) pueden almacenarse en el disco duro, el disco magnético, el disco óptico, la ROM, la RAM u otro medio de almacenamiento de hardware. Tales programas informáticos también pueden recibirse a través de la interfaz de red 950, la interfaz de puerto serie 952 o cualquier otro tipo de interfaz. Dichos programas informáticos, cuando son ejecutados o cargados por una aplicación, permiten que el dispositivo informático 900 implemente las características de las realizaciones analizadas en el presente documento. Por consiguiente, tales programas informáticos representan controladores del dispositivo informático 900.
Las realizaciones también se refieren a productos de programa informático que comprenden código informático o instrucciones almacenadas en cualquier medio legible por ordenador. Tales productos de programa informático incluyen unidades de disco duro, unidades de disco óptico, paquetes de dispositivos de memoria, lápiz de memoria portátil, tarjetas de memoria y otros tipos de hardware de almacenamiento físico. IV. Realizaciones a modo de ejemplo adicionales
En una realización no cubierta por las reivindicaciones independientes adjuntas, un dispositivo móvil comprende al menos un circuito procesador; y al menos una memoria que almacena código de programa configurado para ser ejecutado por el al menos un circuito procesador, comprendiendo el código de programa: un gestor de configuración configurado para, cuando un usuario inicia sesión por primera vez en el dispositivo móvil, recibir, desde un servidor, información de configuración que describe ajustes de cumplimiento para implementarse por el dispositivo móvil para hacer que el dispositivo móvil cumpla un escenario de configuración, en el que se mantiene una indicación de un emparejamiento de usuariodispositivo en el servidor en una referencia de configuración, correspondiendo el emparejamiento de dispositivo de usuario al usuario y el dispositivo móvil; un comprobador de errores de configuración configurado para: determinar un error en la información de configuración recibida, transmitir una solicitud de corrección del error al servidor, recibir información de configuración actualizada desde el servidor; y un motor de orquestación configurado para: configurar el dispositivo móvil con los ajustes de cumplimiento.
En una realización del dispositivo móvil anterior, el gestor de configuración está configurado además para almacenar la información de configuración, y el motor orquestador está configurado además para: recibir un activador desde el gestor de configuración para implementar los ajustes de cumplimiento en el dispositivo móvil; identificar una máquina de estados indicada por la información de configuración que describe un proceso de configuración para implementar los ajustes de cumplimiento; y ejecutar la máquina de estados para configurar el dispositivo móvil con los ajustes de cumplimiento.
En una realización del dispositivo móvil anterior, el motor orquestador está configurado además para ejecutar la máquina de estados para determinar si el dispositivo móvil está configurado apropiadamente de acuerdo con la información de configuración.
En una realización del dispositivo móvil anterior, el motor orquestador está configurado además para almacenar resultados de configuración generados ejecutando la máquina de estados en un almacenamiento de datos de información de configuración; y el gestor de configuración está configurado además para obtener los resultados de configuración del almacenamiento de datos de información de configuración y transmitir los resultados de configuración al servidor.
En una realización del dispositivo móvil anterior, el gestor de configuración está configurado además para: analizar sintácticamente la información de configuración; determinar un error con la información de configuración; y solicitar la corrección del error del servidor.
En una realización del dispositivo móvil anterior, el gestor de configuración está configurado además para: almacenar la información de configuración en un almacenamiento de datos de información de configuración; transmitir la información de configuración almacenada al servidor; y recibir información de configuración actualizada y/o información de configuración adicional desde el servidor en respuesta al envío de la información de configuración al servidor.
En una realización del dispositivo móvil anterior, la máquina de estados está almacenada en un almacenamiento de datos de máquina de estados en el dispositivo móvil.
En una realización del dispositivo móvil anterior, la información de configuración se recibe desde el servidor en un archivo de lenguaje de marcado extensible (XML) que incluye una carga útil asociada con los ajustes de cumplimiento y un identificador de recursos uniforme (URI) correspondiente para descargar y procesar la carga útil.
En otra realización no cubierta por las reivindicaciones independientes adjuntas, un método comprende: cuando un usuario inicia sesión por primera vez en un dispositivo móvil, recibir, desde un servidor, información de configuración que describe ajustes de cumplimiento para implementarse por un dispositivo móvil para hacer que el dispositivo móvil cumpla un escenario de configuración en el que se mantiene una indicación de un emparejamiento de usuario-dispositivo en el servidor en una referencia de configuración, correspondiendo el emparejamiento de usuario-dispositivo al usuario y al dispositivo móvil, en el que se mantiene una indicación de un emparejamiento de usuario-dispositivo en el servidor en una referencia de configuración, correspondiendo el emparejamiento de usuario-dispositivo al usuario y al dispositivo móvil; determinar un error en la información de configuración recibida; transmitir una solicitud para la corrección del error al servidor; recibir información de configuración actualizada desde el servidor; y configurar el dispositivo móvil con los ajustes de cumplimiento.
En una realización, el método anterior comprende además: almacenar la información de configuración; recibir un activador para implementar los ajustes de cumplimiento en el dispositivo móvil; identificar una máquina de estados indicada por la información de configuración que describe un proceso de configuración para implementar los ajustes de cumplimiento; y ejecutar la máquina de estados para configurar el dispositivo móvil con los ajustes de cumplimiento.
En una realización, el método anterior comprende además: ejecutar la máquina de estados para determinar si el dispositivo móvil está configurado apropiadamente de acuerdo con la información de configuración.
En una realización, el método anterior comprende además: almacenar resultados de configuración generados ejecutando la máquina de estados en un almacenamiento de datos de información de configuración; obtener los resultados de configuración del almacenamiento de datos de información de configuración; y transmitir los resultados de configuración al servidor.
En una realización, el método anterior comprende además: analizar sintácticamente la información de configuración; determinar un error con la información de configuración; y solicitar la corrección del error del servidor.
En una realización, el método anterior comprende además: almacenar la información de configuración en un almacenamiento de datos de información de configuración; transmitir la información de configuración almacenada al servidor; y recibir información de configuración actualizada y/o información de configuración adicional desde el servidor en respuesta al envío de la información de configuración al servidor.
En una realización del método anterior, la máquina de estados está almacenada en un almacenamiento de datos de máquina de estados en el dispositivo móvil.
En una realización del método anterior, la información de configuración se recibe desde el servidor en un archivo de lenguaje de marcado extensible (XML) que incluye una carga útil asociada con los ajustes de cumplimiento y un identificador de recursos uniforme (URI) correspondiente para descargar y procesar la carga útil.
En otra realización no cubierta por las reivindicaciones independientes adjuntas, un medio de almacenamiento legible por ordenador que tiene instrucciones de programa grabadas en el mismo que, cuando son ejecutadas por al menos un circuito de procesamiento de un dispositivo móvil, realizan un método que comprende: cuando un usuario inicia sesión por primera vez en un dispositivo móvil, recibir, desde un servidor, información de configuración que describe ajustes de cumplimiento para implementarse por un dispositivo móvil para hacer que el dispositivo móvil cumpla un escenario de configuración en el que se mantiene una indicación de un emparejamiento de usuario-dispositivo en el servidor en una referencia de configuración, correspondiendo el emparejamiento de usuario-dispositivo al usuario y al dispositivo móvil, en el que se mantiene una indicación de un emparejamiento de usuario-dispositivo en el servidor en una referencia de configuración, correspondiendo el emparejamiento de usuario-dispositivo al usuario y al dispositivo móvil; determinar un error en la información de configuración recibida; transmitir una solicitud de corrección del error al servidor; recibir información de configuración actualizada desde el servidor; y configurar el dispositivo móvil con los ajustes de cumplimiento.
En una realización, el método anterior comprende además: almacenar la información de configuración; recibir un activador para implementar los ajustes de cumplimiento en el dispositivo móvil; identificar una máquina de estados indicada por la información de configuración que describe un proceso de configuración para implementar los ajustes de cumplimiento; y ejecutar la máquina de estados para configurar el dispositivo móvil con los ajustes de cumplimiento.
En una realización, el método anterior comprende: ejecutar la máquina de estados para determinar si el dispositivo móvil está configurado apropiadamente de acuerdo con la información de configuración.
En una realización del método anterior, el método comprende además: almacenar resultados de configuración generados ejecutando la máquina de estados en un almacenamiento de datos de información de configuración; obtener los resultados de configuración del almacenamiento de datos de información de configuración; y transmitir los resultados de configuración al servidor.
En una realización, el método anterior comprende: analizar sintácticamente la información de configuración; determinar un error con la información de configuración; y solicitar la corrección del error del servidor.
En una realización, el método anterior comprende: almacenar la información de configuración en un almacenamiento de datos de información de configuración; transmitir la información de configuración almacenada al servidor; y recibir información de configuración actualizada y/o información de configuración adicional desde el servidor en respuesta al envío de la información de configuración al servidor.
En una realización del método anterior, la información de configuración se recibe desde el servidor en un archivo de lenguaje de marcado extensible (XML) que incluye una carga útil asociada con los ajustes de cumplimiento y un identificador de recursos uniforme (URI) correspondiente para descargar y procesar la carga útil.
V. Conclusión
Aunque anteriormente se han descrito diversas realizaciones, debe entenderse que se han presentado solo a modo de ejemplo, y no de limitación. Será evidente para los expertos en la técnica relevante que se pueden realizar en estas diversos cambios en la forma y detalle sin apartarse del alcance de las realizaciones. Por lo tanto, la amplitud y el alcance de las realizaciones no deben limitarse por ninguna de las realizaciones a modo de ejemplo descritas anteriormente, sino que deben definirse solo de acuerdo con las siguientes reivindicaciones.
Claims (13)
1. Un dispositivo móvil (204), que comprende:
al menos un circuito procesador (810, 902); y
al menos una memoria (820, 910) que almacena código de programa (814, 934) configurado para ser ejecutado por el al menos un circuito procesador, (810, 902) comprendiendo el código de programa: un gestor de configuración (206) configurado para:
cuando un usuario inicia sesión por primera vez en el dispositivo móvil (204), recibir (302), desde un servidor (102), información de configuración (112) que describe ajustes de cumplimiento para implementar por el dispositivo móvil (204) para hacer que el dispositivo móvil cumpla un escenario de configuración, donde una indicación de un emparejamiento de usuario-dispositivo se mantiene en el servidor (102) en una referencia de configuración, correspondiendo el emparejamiento de usuario-dispositivo al usuario y el dispositivo móvil; y
almacenar (304) la información de configuración (112);
un comprobador de errores de información de configuración (210) configurado para:
determinar (604) un error en la información de configuración recibida (112),
transmitir (606) una solicitud de corrección del error al servidor (102), y
recibir información de configuración actualizada desde el servidor (102); y
un motor orquestador (208) configurado para:
recibir (306) un activador (218) desde el gestor de configuración (206) para implementar los ajustes de cumplimiento en el dispositivo móvil (204);
identificar (308) una máquina de estados (118) indicada por la información de configuración (112) que describe un proceso de configuración para implementar los ajustes de cumplimiento, y
ejecutar (310) la máquina de estados (118) para configurar el dispositivo móvil con los ajustes de cumplimiento.
2. El dispositivo móvil de la reivindicación 1, en el que el motor orquestador está configurado además para:
ejecutar la máquina de estados para determinar si el dispositivo móvil está configurado apropiadamente de acuerdo con la información de configuración.
3. El dispositivo móvil de la reivindicación 1, en el que:
el motor orquestador está configurado además para almacenar resultados de configuración generados ejecutando la máquina de estados en un almacenamiento de datos de información de configuración; y el gestor de configuración está configurado además para obtener los resultados de configuración del almacenamiento de datos de información de configuración y transmitir los resultados de configuración al servidor.
4. El dispositivo móvil de la reivindicación 1, en el que el gestor de configuración está configurado además para:
almacenar la información de configuración en un almacenamiento de datos de información de configuración;
transmitir la información de configuración almacenada al servidor; y
recibir información de configuración actualizada y/o información de configuración adicional desde el servidor en respuesta al envío de la información de configuración al servidor.
5. El dispositivo móvil de la reivindicación 1, en el que la máquina de estados está almacenada en un almacenamiento de datos de máquina de estados en el dispositivo móvil.
6. El dispositivo móvil de la reivindicación 1, en el que la información de configuración se recibe desde el servidor en un archivo de lenguaje de marcado extensible (XML) que incluye una carga útil asociada con los ajustes de cumplimiento y un identificador de recursos uniforme (URI) correspondiente para descargar y procesar la carga útil.
7. Un método implementado por ordenador (300), que comprende:
cuando un usuario inicia sesión por primera vez en un dispositivo móvil (204), recibir (302), desde un servidor (102), información de configuración (112) que describe ajustes de cumplimiento para implementar por un dispositivo móvil para hacer que el dispositivo móvil cumpla un escenario de configuración, donde una indicación de un emparejamiento de usuario-dispositivo se mantiene en el servidor (102) en una referencia de configuración, correspondiendo el emparejamiento de usuario-dispositivo al usuario y el dispositivo móvil;
determinar (604) un error en la información de configuración recibida (112);
transmitir (606) una solicitud de corrección del error al servidor (102);
recibir información de configuración actualizada desde el servidor (102);
almacenar (304) la información de configuración (112);
recibir (306) un activador (218) para implementar los ajustes de cumplimiento en el dispositivo móvil; identificar (308) una máquina de estados (118) indicada por la información de configuración (112) que describe un proceso de configuración para implementar los ajustes de cumplimiento; y
ejecutar (310) la máquina de estados (118) para configurar el dispositivo móvil con los ajustes de cumplimiento.
8. El método de la reivindicación 7, que comprende además:
ejecutar la máquina de estados para determinar si el dispositivo móvil está configurado apropiadamente de acuerdo con la información de configuración.
9. El método de la reivindicación 7, que comprende además:
almacenar los resultados de configuración generados ejecutando la máquina de estados en un almacenamiento de datos de información de configuración;
obtener los resultados de configuración del almacenamiento de datos de información de configuración; y transmitir los resultados de configuración al servidor.
10. El método de la reivindicación 7, que comprende además:
almacenar la información de configuración en un almacenamiento de datos de información de configuración;
transmitir la información de configuración almacenada al servidor; y
recibir información de configuración actualizada y/o información de configuración adicional desde el servidor en respuesta al envío de la información de configuración al servidor.
11. El método de la reivindicación 7, en el que la máquina de estados está almacenada en un almacenamiento de datos de máquina de estados en el dispositivo móvil.
12. El método de la reivindicación 7, en el que la información de configuración se recibe desde el servidor en un archivo de lenguaje de marcado extensible (XML) que incluye una carga útil asociada con los ajustes de cumplimiento y un identificador de recursos uniforme (URI) correspondiente para descargar y procesar la carga útil.
13. Un producto de programa informático que comprende un medio legible por ordenador que tiene lógica de programa informático grabada en el mismo, que comprende:
medios lógicos de programa informático para permitir que un procesador realice una cualquiera de las reivindicaciones 7 a 12.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/051,145 US11184223B2 (en) | 2018-07-31 | 2018-07-31 | Implementation of compliance settings by a mobile device for compliance with a configuration scenario |
| PCT/US2019/039507 WO2020027954A1 (en) | 2018-07-31 | 2019-06-27 | Implementation of compliance settings by a mobile device for compliance with a configuration scenario |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3028537T3 true ES3028537T3 (en) | 2025-06-19 |
Family
ID=67297388
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES19740241T Active ES3028537T3 (en) | 2018-07-31 | 2019-06-27 | Implementation of compliance settings by a mobile device for compliance with a configuration scenario |
Country Status (7)
| Country | Link |
|---|---|
| US (3) | US11184223B2 (es) |
| EP (1) | EP3807754B1 (es) |
| JP (2) | JP7389791B2 (es) |
| KR (1) | KR102718167B1 (es) |
| CN (1) | CN112867988B (es) |
| ES (1) | ES3028537T3 (es) |
| WO (1) | WO2020027954A1 (es) |
Families Citing this family (40)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200028879A1 (en) | 2018-07-17 | 2020-01-23 | Microsoft Technology Licensing, Llc | Queryless device configuration determination-based techniques for mobile device management |
| EP3726325B1 (en) | 2019-04-17 | 2022-08-24 | Raytheon Technologies Corporation | Gas turbine engine with dynamic data recording |
| EP3726323B1 (en) | 2019-04-17 | 2023-03-08 | Raytheon Technologies Corporation | Gas turbine engine communication gateway with integral antennas |
| US11492132B2 (en) | 2019-04-17 | 2022-11-08 | Raytheon Technologies Corporation | Gas turbine engine configuration data synchronization with a ground-based system |
| US11208916B2 (en) | 2019-04-17 | 2021-12-28 | Raytheon Technologies Corporation | Self-healing remote dynamic data recording |
| US10977877B2 (en) | 2019-04-17 | 2021-04-13 | Raytheon Technologies Corporation | Engine gateway with engine data storage |
| US11913643B2 (en) | 2019-04-17 | 2024-02-27 | Rtx Corporation | Engine wireless sensor system with energy harvesting |
| EP3726480B1 (en) | 2019-04-17 | 2024-09-25 | RTX Corporation | Remote updates of a gas turbine engine |
| EP3726324B1 (en) | 2019-04-17 | 2023-03-01 | Raytheon Technologies Corporation | Gas turbine engine communication gateway with internal sensors |
| CN115398942A (zh) * | 2020-04-17 | 2022-11-25 | Oppo广东移动通信有限公司 | 数据处理方法及通信设备、计算机存储介质 |
| US11971995B2 (en) | 2020-07-15 | 2024-04-30 | Kyndryl, Inc. | Remediation of regulatory non-compliance |
| US20240137382A1 (en) | 2021-07-16 | 2024-04-25 | Wiz, Inc. | Techniques for cybersecurity identity risk detection utilizing disk cloning and unified identity mapping |
| US12278819B1 (en) | 2021-07-16 | 2025-04-15 | Wiz, Inc. | Cybersecurity threat detection utilizing unified identity mapping and permission detection |
| US12579251B2 (en) | 2021-11-24 | 2026-03-17 | Wiz, Inc. | System and method for detecting excessive permissions in identity and access management |
| US12505200B2 (en) | 2022-05-23 | 2025-12-23 | Wiz, Inc. | Techniques for improved virtual instance inspection utilizing disk cloning |
| US12278840B1 (en) | 2021-07-16 | 2025-04-15 | Wiz, Inc. | Efficient representation of multiple cloud computing environments through unified identity mapping |
| US12489781B2 (en) | 2021-11-24 | 2025-12-02 | Wiz, Inc. | Techniques for lateral movement detection in a cloud computing environment |
| EP4433927A4 (en) | 2021-11-24 | 2025-10-08 | Wiz Inc | DETECTION OF VULNERABILITIES IN CONFIGURATION CODE OF A CLOUD ENVIRONMENT USING INFRASTRUCTURE AS CODE |
| US11936785B1 (en) | 2021-12-27 | 2024-03-19 | Wiz, Inc. | System and method for encrypted disk inspection utilizing disk cloning techniques |
| US12219048B1 (en) | 2021-12-27 | 2025-02-04 | Wiz, Inc. | Techniques for encrypted disk cybersecurity inspection utilizing disk cloning |
| US12081656B1 (en) | 2021-12-27 | 2024-09-03 | Wiz, Inc. | Techniques for circumventing provider-imposed limitations in snapshot inspection of disks for cybersecurity |
| US11841945B1 (en) | 2022-01-31 | 2023-12-12 | Wiz, Inc. | System and method for cybersecurity threat detection utilizing static and runtime data |
| US12531881B2 (en) | 2022-01-31 | 2026-01-20 | Wiz, Inc. | Detection of cybersecurity threats utilizing established baselines |
| KR102682361B1 (ko) * | 2022-02-14 | 2024-07-08 | 인텍전기전자 주식회사 | 표준화된 파일을 기반으로 한 전력보호제어감시장치 및 운용 방법 |
| JP7852308B2 (ja) * | 2022-03-14 | 2026-04-28 | オムロン株式会社 | 検査システム |
| US11914457B2 (en) | 2022-03-30 | 2024-02-27 | Bank Of America Corporation | System for early detection of operational failure in component-level functions within a computing environment |
| US12244627B2 (en) | 2022-04-13 | 2025-03-04 | Wiz, Inc. | Techniques for active inspection of vulnerability exploitation using exposure |
| US12443720B2 (en) | 2022-08-10 | 2025-10-14 | Wiz, Inc. | Techniques for detecting applications paths utilizing exposure analysis |
| US11936693B2 (en) | 2022-04-13 | 2024-03-19 | Wiz, Inc. | System and method for applying a policy on a network path |
| US12395488B2 (en) | 2022-04-13 | 2025-08-19 | Wiz, Inc. | Techniques for analyzing external exposure in cloud environments |
| US12267326B2 (en) | 2022-04-13 | 2025-04-01 | Wiz, Inc. | Techniques for detecting resources without authentication using exposure analysis |
| US12217079B2 (en) | 2022-05-23 | 2025-02-04 | Wiz, Inc. | Detecting security exceptions across multiple compute environments |
| US12079328B1 (en) | 2022-05-23 | 2024-09-03 | Wiz, Inc. | Techniques for inspecting running virtualizations for cybersecurity risks |
| US12506755B2 (en) | 2022-05-23 | 2025-12-23 | Wiz, Inc. | Technology discovery techniques in cloud computing environments utilizing disk cloning |
| US12212586B2 (en) | 2022-05-23 | 2025-01-28 | Wiz, Inc. | Techniques for cybersecurity inspection based on runtime data and static analysis from cloned resources |
| US12287899B2 (en) | 2022-05-23 | 2025-04-29 | Wiz, Inc. | Techniques for detecting sensitive data in cloud computing environments utilizing cloning |
| US12061719B2 (en) | 2022-09-28 | 2024-08-13 | Wiz, Inc. | System and method for agentless detection of sensitive data in computing environments |
| US20240007504A1 (en) * | 2022-07-01 | 2024-01-04 | Ciena Corporation | Analyzing device configuration data to check for network compliance |
| CN115640041A (zh) * | 2022-09-28 | 2023-01-24 | 中国建设银行股份有限公司 | 前后端的数据处理方法、装置、设备及存储介质 |
| WO2026072699A1 (en) * | 2024-09-24 | 2026-04-02 | aiden technologies, Inc. | Automated software and patch deployment with limited computational disruption |
Family Cites Families (126)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7546629B2 (en) | 2002-03-06 | 2009-06-09 | Check Point Software Technologies, Inc. | System and methodology for security policy arbitration |
| US6993760B2 (en) | 2001-12-05 | 2006-01-31 | Microsoft Corporation | Installing software on a mobile computing device using the rollback and security features of a configuration manager |
| US7644432B2 (en) * | 2003-10-10 | 2010-01-05 | Bea Systems, Inc. | Policy inheritance through nested groups |
| EP1709556A4 (en) | 2003-12-23 | 2011-08-10 | Trust Digital Llc | SYSTEM AND METHOD FOR IMPLEMENTING A SAFETY GUIDELINE ON MOBILE DEVICES USING DYNAMICALLY PRODUCED SAFETY PROFILES |
| EP1794670A4 (en) | 2004-09-23 | 2009-05-06 | Airclic Inc | MOBILE PROCESS AUTOMATION METHOD |
| US7516478B2 (en) | 2005-06-03 | 2009-04-07 | Microsoft Corporation | Remote management of mobile devices |
| US8626128B2 (en) | 2011-04-07 | 2014-01-07 | Microsoft Corporation | Enforcing device settings for mobile devices |
| US9332424B2 (en) * | 2005-08-05 | 2016-05-03 | Qualcomm Incorporated | Centrally managed solution for all device management activities |
| WO2007031981A2 (en) * | 2005-09-15 | 2007-03-22 | One-Fone Ltd. | Incorporating a mobile device into a peer-to-peer network |
| US20070101432A1 (en) | 2005-10-28 | 2007-05-03 | Microsoft Corporation | Risk driven compliance management |
| US7870490B2 (en) * | 2005-11-15 | 2011-01-11 | Microsoft Corporation | On-the-fly device configuration and management |
| US7685263B2 (en) | 2006-12-19 | 2010-03-23 | Blue Coat Systems, Inc. | Method and system for configuring a device with a wireless mobile configurator |
| US7987471B2 (en) * | 2007-01-26 | 2011-07-26 | Microsoft Corporation | Mobile device management proxy system |
| US8997091B1 (en) * | 2007-01-31 | 2015-03-31 | Emc Corporation | Techniques for compliance testing |
| US8185096B2 (en) * | 2007-02-05 | 2012-05-22 | Boadin Technology, LLC | Systems and methods for multi-modal mobile media services |
| US20080201705A1 (en) * | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
| US8634788B2 (en) * | 2007-03-02 | 2014-01-21 | Aegis Mobility, Inc. | System and methods for monitoring the context associated with a mobile communication device |
| US20090049518A1 (en) * | 2007-08-08 | 2009-02-19 | Innopath Software, Inc. | Managing and Enforcing Policies on Mobile Devices |
| US7676573B2 (en) * | 2008-02-08 | 2010-03-09 | Microsoft Corporation | Node monitor client cache synchronization for mobile device management |
| US8010842B2 (en) | 2008-08-08 | 2011-08-30 | Innopath Software, Inc. | Intelligent mobile device management client |
| US8261354B2 (en) * | 2008-09-17 | 2012-09-04 | International Business Machines Corporation | System, method and program product for dynamically performing an audit and security compliance validation in an operating environment |
| US8286220B2 (en) | 2008-09-23 | 2012-10-09 | Zscaler, Inc. | Browser access control |
| US9781148B2 (en) * | 2008-10-21 | 2017-10-03 | Lookout, Inc. | Methods and systems for sharing risk responses between collections of mobile communications devices |
| US20100205159A1 (en) * | 2009-02-10 | 2010-08-12 | Jun Li | System and method for managing data |
| JP5267211B2 (ja) | 2009-02-26 | 2013-08-21 | 富士通株式会社 | 無線端末装置 |
| US8898748B2 (en) | 2009-05-21 | 2014-11-25 | Mobile Iron, Inc. | Remote verification for configuration updates |
| US8750178B2 (en) * | 2009-06-01 | 2014-06-10 | Qualcomm Incorporated | Connection manager for a wireless communication device |
| JP5340041B2 (ja) | 2009-06-05 | 2013-11-13 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | アクセス制御システム、アクセス制御方法、及びプログラム |
| US8336080B2 (en) * | 2009-06-26 | 2012-12-18 | Symbol Technologies, Inc. | Methods and apparatus for rating device security and automatically assessing security compliance |
| US20110246499A1 (en) * | 2010-03-30 | 2011-10-06 | Yuval Carmel | Method and system for evaluating compliance within a configuration-management system |
| US8473743B2 (en) | 2010-04-07 | 2013-06-25 | Apple Inc. | Mobile device management |
| US8719780B2 (en) * | 2010-06-29 | 2014-05-06 | Oracle International Corporation | Application server with a protocol-neutral programming model for developing telecommunications-based applications |
| US8359016B2 (en) | 2010-11-19 | 2013-01-22 | Mobile Iron, Inc. | Management of mobile applications |
| US9557983B1 (en) | 2010-12-29 | 2017-01-31 | Emc Corporation | Flexible storage application deployment mechanism |
| US8813167B2 (en) | 2010-12-30 | 2014-08-19 | Apple Inc. | Dynamic device configuration using predicates |
| US20120216281A1 (en) * | 2011-02-22 | 2012-08-23 | PCTEL Secure LLC | Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel |
| US9369433B1 (en) * | 2011-03-18 | 2016-06-14 | Zscaler, Inc. | Cloud based social networking policy and compliance systems and methods |
| US9065800B2 (en) * | 2011-03-18 | 2015-06-23 | Zscaler, Inc. | Dynamic user identification and policy enforcement in cloud-based secure web gateways |
| WO2012161118A1 (ja) * | 2011-05-20 | 2012-11-29 | 日本放送協会 | 端末連携システム、受信機及び受信方法 |
| JP5986993B2 (ja) * | 2011-05-20 | 2016-09-06 | 日本放送協会 | 受信機及びプログラム |
| EP2727042B1 (en) | 2011-07-01 | 2016-04-06 | Fiberlink Communications Corporation | Rules based actions for mobile device management |
| WO2013033222A1 (en) * | 2011-08-29 | 2013-03-07 | Fiberlink Communications Corporation | Platform for deployment and distribution of modules to endpoints |
| US10165007B2 (en) * | 2011-09-15 | 2018-12-25 | Microsoft Technology Licensing, Llc | Securing data usage in computing devices |
| US8756651B2 (en) | 2011-09-27 | 2014-06-17 | Amazon Technologies, Inc. | Policy compliance-based secure data access |
| US20140032733A1 (en) * | 2011-10-11 | 2014-01-30 | Citrix Systems, Inc. | Policy-Based Application Management |
| US9756501B2 (en) * | 2011-10-24 | 2017-09-05 | Blackberry Limited | System and method for wireless device configuration |
| WO2013078408A1 (en) * | 2011-11-25 | 2013-05-30 | Bandwidthx Inc. | System for providing intelligent network access selection for a mobile wireless device |
| US8713646B2 (en) * | 2011-12-09 | 2014-04-29 | Erich Stuntebeck | Controlling access to resources on a network |
| US9378390B2 (en) * | 2012-03-30 | 2016-06-28 | Nokia Technologies Oy | Method and apparatus for policy adaption based on application policy compliance analysis |
| US20140064068A1 (en) * | 2012-08-30 | 2014-03-06 | Qualcomm Incorporated | Interactions between ran-based and legacy wlan mobility |
| WO2014047168A1 (en) | 2012-09-18 | 2014-03-27 | Citrix Systems, Inc. | Mobile device management and security |
| US9189645B2 (en) | 2012-10-12 | 2015-11-17 | Citrix Systems, Inc. | Sharing content across applications and devices having multiple operation modes in an orchestration framework for connected devices |
| US20140109176A1 (en) * | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Configuring and providing profiles that manage execution of mobile applications |
| US10382275B1 (en) * | 2012-10-22 | 2019-08-13 | Amazon Technologies, Inc. | Automated infrastructure configuration |
| CN103001955B (zh) * | 2012-11-22 | 2017-05-31 | 南京中兴软件有限责任公司 | 业务下载加速的方法与系统、业务状态的维护方法与装置 |
| US20140148140A1 (en) * | 2012-11-29 | 2014-05-29 | Lg Cns Co., Ltd. | Policy-based mobile device management system (mdms) based on access history information |
| US9420002B1 (en) * | 2013-03-14 | 2016-08-16 | Mark McGovern | Authorization server access system |
| US9473417B2 (en) * | 2013-03-14 | 2016-10-18 | Airwatch Llc | Controlling resources used by computing devices |
| US9819682B2 (en) | 2013-03-15 | 2017-11-14 | Airwatch Llc | Certificate based profile confirmation |
| US10652242B2 (en) * | 2013-03-15 | 2020-05-12 | Airwatch, Llc | Incremental compliance remediation |
| US8850049B1 (en) * | 2013-03-29 | 2014-09-30 | Citrix Systems, Inc. | Providing mobile device management functionalities for a managed browser |
| US9985850B2 (en) * | 2013-03-29 | 2018-05-29 | Citrix Systems, Inc. | Providing mobile device management functionalities |
| EP3020252A1 (en) * | 2013-07-10 | 2016-05-18 | Ciaran Hynes | Method and apparatus for limiting the use of a mobile communications device |
| US9705919B1 (en) | 2013-07-12 | 2017-07-11 | Palo Alto Networks, Inc. | Security policy enforcement for mobile devices based on device state |
| US9894099B1 (en) * | 2013-07-12 | 2018-02-13 | Palo Alto Networks, Inc. | Automatically configuring mobile devices and applying policy based on device state |
| US20150052616A1 (en) * | 2013-08-14 | 2015-02-19 | L-3 Communications Corporation | Protected mode for securing computing devices |
| US9723487B2 (en) * | 2013-08-19 | 2017-08-01 | American Megatrends, Inc. | Mobile device security system |
| US20150244743A1 (en) * | 2014-02-21 | 2015-08-27 | Airwatch Llc | Risk assessment for managed client devices |
| US10129242B2 (en) | 2013-09-16 | 2018-11-13 | Airwatch Llc | Multi-persona devices and management |
| JP6484929B2 (ja) | 2013-10-17 | 2019-03-20 | 株式会社リコー | 機器管理装置、プログラム、機器管理システム及びセキュリティ設定方法 |
| WO2015061715A1 (en) * | 2013-10-24 | 2015-04-30 | Internet Infrastructure Services Corporation | Methods of dynamically securing electronic devices and other communications through environmental and system measurements leveraging tailored trustworthy spaces |
| US20160277448A1 (en) * | 2013-10-30 | 2016-09-22 | Nec Corporation | Management system, management method and management server for communication terminals, terminal control method, and communication terminal |
| US9614745B2 (en) * | 2014-01-09 | 2017-04-04 | Citrix Systems, Inc. | Systems and methods for cloud-based probing and diagnostics |
| US9432405B2 (en) * | 2014-03-03 | 2016-08-30 | Microsoft Technology Licensing, Llc | Communicating status regarding application of compliance policy updates |
| US10116701B2 (en) * | 2014-04-01 | 2018-10-30 | Ent. Services Development Corporation Lp | Device-type based content management |
| US9848330B2 (en) | 2014-04-09 | 2017-12-19 | Microsoft Technology Licensing, Llc | Device policy manager |
| US9584515B2 (en) * | 2014-04-30 | 2017-02-28 | Citrix Systems, Inc. | Enterprise system authentication and authorization via gateway |
| US10924554B2 (en) * | 2014-05-05 | 2021-02-16 | Citrix Systems, Inc. | Application customization |
| WO2015191964A1 (en) | 2014-06-13 | 2015-12-17 | Uber Technologies, Inc. | Enforcing policies based on information received from external systems |
| US9900801B2 (en) * | 2014-08-08 | 2018-02-20 | Parallel Wireless, Inc. | Congestion and overload reduction |
| US20160042010A1 (en) * | 2014-08-11 | 2016-02-11 | Cox Communications, Inc. | Systems and Methods of Facilities Location |
| US9647897B2 (en) * | 2014-08-20 | 2017-05-09 | Jamf Software, Llc | Dynamic grouping of managed devices |
| US9749311B2 (en) | 2014-09-24 | 2017-08-29 | Oracle International Corporation | Policy based compliance management and remediation of devices in an enterprise system |
| US9444849B2 (en) * | 2014-10-06 | 2016-09-13 | The Boeing Company | Enforcing policy compliance on a device |
| US9762557B2 (en) * | 2014-10-28 | 2017-09-12 | Microsoft Technology Licensing, Llc | Policy settings configuration with signals |
| US10063594B2 (en) | 2014-12-16 | 2018-08-28 | OPSWAT, Inc. | Network access control with compliance policy check |
| US10509898B2 (en) * | 2015-01-21 | 2019-12-17 | Jim Barney et al. | Enhanced security authentication methods, systems and media |
| US11245725B2 (en) | 2015-04-24 | 2022-02-08 | Matthew B. TREVATHAN | Dynamically updating policy controls for mobile devices and applications |
| US10979280B2 (en) * | 2015-08-12 | 2021-04-13 | Airwatch Llc | Managing devices through secondary communication channels |
| US10452497B2 (en) * | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
| US10419514B2 (en) * | 2015-08-14 | 2019-09-17 | Oracle International Corporation | Discovery of federated logins |
| US10021542B2 (en) * | 2015-08-28 | 2018-07-10 | Airwatch Llc | Providing access to applications with varying enrollment levels |
| US10296765B2 (en) * | 2015-09-30 | 2019-05-21 | International Business Machines Corporation | Multi-level security enforcement |
| US9967287B2 (en) * | 2015-10-27 | 2018-05-08 | Airwatch Llc | Detection of offline attempts to circumvent security policies |
| EP3193256B1 (en) * | 2016-01-12 | 2018-08-01 | Politechnika Poznanska | A fault-tolerant data processing computer system and method for implementing a distributed two-tier state machine |
| US9990222B2 (en) * | 2016-03-18 | 2018-06-05 | Airwatch Llc | Enforcing compliance rules against hypervisor and virtual machine using host management component |
| US10552823B1 (en) * | 2016-03-25 | 2020-02-04 | Early Warning Services, Llc | System and method for authentication of a mobile device |
| US10389705B2 (en) | 2016-03-30 | 2019-08-20 | Airwatch Llc | Associating user accounts with enterprise workspaces |
| US10225740B2 (en) * | 2016-05-12 | 2019-03-05 | Zscaler, Inc. | Multidimensional risk profiling for network access control of mobile devices through a cloud based security system |
| US20170329966A1 (en) * | 2016-05-13 | 2017-11-16 | Qualcomm Incorporated | Electronic device based security management |
| US10595202B2 (en) * | 2016-05-23 | 2020-03-17 | Citrix Systems, Inc. | Dynamic access to hosted applications |
| US10003670B2 (en) | 2016-06-17 | 2018-06-19 | Airwatch Llc | Remote provisioning and enrollment of enterprise devices with on-premises domain controllers |
| US20180063088A1 (en) * | 2016-09-01 | 2018-03-01 | Airwatch Llc | Hypervisor network profiles to facilitate vpn tunnel |
| US10592676B2 (en) * | 2016-10-28 | 2020-03-17 | Tala Security, Inc. | Application security service |
| US10243946B2 (en) * | 2016-11-04 | 2019-03-26 | Netskope, Inc. | Non-intrusive security enforcement for federated single sign-on (SSO) |
| US10362095B2 (en) * | 2016-11-04 | 2019-07-23 | Airwatch Llc | Distributed network diagnostics of enterprise devices utilizing device management |
| US10505983B2 (en) * | 2016-11-09 | 2019-12-10 | Airwatch Llc | Enforcing enterprise requirements for devices registered with a registration service |
| US20180157457A1 (en) * | 2016-12-01 | 2018-06-07 | Airwatch Llc | Enforcing display sharing profiles on a client device sharing display activity with a display sharing application |
| US10402558B2 (en) * | 2016-12-16 | 2019-09-03 | Blackberry Limited | Device restrictions during events |
| US10652278B2 (en) * | 2016-12-19 | 2020-05-12 | Forescout Technologies, Inc. | Compliance monitoring |
| US10547712B2 (en) * | 2017-03-14 | 2020-01-28 | Vmware, Inc | Reserving physical resources based upon a physical identifier |
| WO2018183375A1 (en) * | 2017-03-29 | 2018-10-04 | MobileIron, Inc. | Correlating mobile device and app usage with cloud service usage to provide security |
| US10620941B2 (en) * | 2017-04-11 | 2020-04-14 | Dell Products L.P. | Updating and rolling back known good states of information handling systems |
| US11316897B2 (en) * | 2017-05-19 | 2022-04-26 | Vmware, Inc. | Applying device policies using a management token |
| US11227032B1 (en) * | 2017-05-24 | 2022-01-18 | Amazon Technologies, Inc. | Dynamic posture assessment to mitigate reverse engineering |
| US10437625B2 (en) * | 2017-06-16 | 2019-10-08 | Microsoft Technology Licensing, Llc | Evaluating configuration requests in a virtual machine |
| US10104710B1 (en) * | 2017-06-19 | 2018-10-16 | Global Tel*Link Corporation | Dual mode transmission in a controlled environment |
| US11243756B1 (en) * | 2017-08-14 | 2022-02-08 | Amazon Technologies, Inc. | Extensible resource compliance management |
| KR102387657B1 (ko) * | 2017-08-23 | 2022-04-19 | 삼성전자주식회사 | Usb 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치 |
| WO2019083909A1 (en) * | 2017-10-24 | 2019-05-02 | Antenna Audio, Inc. | SYSTEMS AND METHODS FOR MULTIMEDIA GUIDED TOURS |
| US10810055B1 (en) * | 2017-12-14 | 2020-10-20 | Amazon Technologies, Inc. | Request simulation for ensuring compliance |
| US10944794B2 (en) | 2018-04-25 | 2021-03-09 | Dell Products L.P. | Real-time policy selection and deployment based on changes in context |
| US10776495B2 (en) * | 2018-05-10 | 2020-09-15 | Microsoft Technology Licensing, Llc | Systems and methods for attributing security vulnerabilities to a configuration of a client device |
| US11271812B2 (en) * | 2018-06-29 | 2022-03-08 | Forescout Technologies, Inc. | Segmentation management including visualization, configuration, simulation, or a combination thereof |
| US20200028879A1 (en) | 2018-07-17 | 2020-01-23 | Microsoft Technology Licensing, Llc | Queryless device configuration determination-based techniques for mobile device management |
| US10802821B2 (en) * | 2018-07-24 | 2020-10-13 | Vmware, Inc. | Firmware management |
-
2018
- 2018-07-31 US US16/051,145 patent/US11184223B2/en active Active
-
2019
- 2019-06-27 KR KR1020217002717A patent/KR102718167B1/ko active Active
- 2019-06-27 WO PCT/US2019/039507 patent/WO2020027954A1/en not_active Ceased
- 2019-06-27 JP JP2021505190A patent/JP7389791B2/ja active Active
- 2019-06-27 EP EP19740241.5A patent/EP3807754B1/en active Active
- 2019-06-27 CN CN201980050259.8A patent/CN112867988B/zh active Active
- 2019-06-27 ES ES19740241T patent/ES3028537T3/es active Active
-
2021
- 2021-07-23 US US17/384,178 patent/US11750444B2/en active Active
-
2023
- 2023-07-19 US US18/354,975 patent/US12068912B2/en active Active
- 2023-11-17 JP JP2023195827A patent/JP7678065B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2024020448A (ja) | 2024-02-14 |
| US11184223B2 (en) | 2021-11-23 |
| US20240064058A1 (en) | 2024-02-22 |
| CN112867988A (zh) | 2021-05-28 |
| JP2021533454A (ja) | 2021-12-02 |
| JP7678065B2 (ja) | 2025-05-15 |
| US20210351978A1 (en) | 2021-11-11 |
| CN112867988B (zh) | 2025-02-21 |
| KR20210027400A (ko) | 2021-03-10 |
| EP3807754B1 (en) | 2025-03-26 |
| EP3807754A1 (en) | 2021-04-21 |
| KR102718167B1 (ko) | 2024-10-15 |
| US12068912B2 (en) | 2024-08-20 |
| US20200044916A1 (en) | 2020-02-06 |
| US11750444B2 (en) | 2023-09-05 |
| WO2020027954A1 (en) | 2020-02-06 |
| JP7389791B2 (ja) | 2023-11-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7678065B2 (ja) | コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装 | |
| US10606738B2 (en) | Application testing on a blockchain | |
| US12562966B2 (en) | Transitioning network entities associated with a virtual cloud network through a series of phases of a certificate bundle distribution process | |
| US9253210B2 (en) | Policy-based dynamic information flow control on mobile devices | |
| KR102111180B1 (ko) | 동적 프리젠테이션과 데이터 구성을 사용하여 보안 모바일 협력 애플리케이션을 구축하기 위한 플랫폼 | |
| US10057293B2 (en) | Method to modify android application life cycle to control its execution in a containerized workspace environment | |
| US20180337955A1 (en) | Method to modify android application life cycle to control its execution in a containerized workspace environment | |
| US20160088023A1 (en) | Services within reverse proxy servers | |
| US11902112B2 (en) | Provisioning persistent, dynamic and secure cloud services | |
| CN105940654A (zh) | 特权静态被托管的web应用 | |
| US20180124109A1 (en) | Techniques for classifying a web page based upon functions used to render the web page | |
| CN110214314B (zh) | 操作系统验证 | |
| US20230403302A1 (en) | State management for device-driven management workflows with active attributes | |
| US12563034B2 (en) | Authentication mechanisms in a container orchestration system | |
| US12495032B2 (en) | Orchestrating distribution of digital certificates to an execution environment of a computing network | |
| US20250373596A1 (en) | Orchestrating Testing Of Digital Certificates In An Execution Environment Of A Computing Network | |
| US20250286882A1 (en) | Testing Digital Certificates In An Execution Environment Of A Computing Network | |
| Nolan et al. | Web Services |