ES2866631T3 - Procedimientos y artículos de fabricación para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado - Google Patents
Procedimientos y artículos de fabricación para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado Download PDFInfo
- Publication number
- ES2866631T3 ES2866631T3 ES10815970T ES10815970T ES2866631T3 ES 2866631 T3 ES2866631 T3 ES 2866631T3 ES 10815970 T ES10815970 T ES 10815970T ES 10815970 T ES10815970 T ES 10815970T ES 2866631 T3 ES2866631 T3 ES 2866631T3
- Authority
- ES
- Spain
- Prior art keywords
- processing device
- sca
- data processing
- udpd
- uncontrolled data
- 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
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0736—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- 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
- G06F8/656—Updates while running
-
- 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
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H40/00—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
- G16H40/40—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the management of medical equipment or devices, e.g. scheduling maintenance or upgrades
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Public Health (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
- Stored Programmes (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Infusion, Injection, And Reservoir Apparatuses (AREA)
- Investigating Or Analysing Biological Materials (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- User Interface Of Digital Computer (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Measuring And Recording Apparatus For Diagnosis (AREA)
- Safety Devices In Control Systems (AREA)
Abstract
Un procedimiento para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado, siendo el dispositivo de procesamiento de datos no controlado (200) configurado para permitir que un usuario realice cambios de software y/o hardware en el dispositivo de procesamiento de datos no controlado, comprendiendo el procedimiento: determinar, con un dispositivo de procesamiento de datos no controlado, si una aplicación crítica para la seguridad (304) está instalada correctamente y funciona correctamente en el dispositivo de procesamiento de datos no controlado; evitar, con el dispositivo de procesamiento de datos no controlado, el funcionamiento de ciertas características de la aplicación crítica para la seguridad en el dispositivo de procesamiento de datos no controlado después de la verificación de que la aplicación crítica para la seguridad no se instaló correctamente o no funciona correctamente en el dispositivo de procesamiento de datos no controlado, en el que la prevención comprende deshabilitar la ejecución de las características críticas para la seguridad de la aplicación crítica para la seguridad en el dispositivo de procesamiento de datos no controlado y permitir que las características críticas para la seguridad de la aplicación crítica para la seguridad se ejecuten en el dispositivo de procesamiento de datos no controlado; y permitir, con el dispositivo de procesamiento de datos no controlado, que la aplicación crítica para la seguridad funcione libre de cualquier restricción en el dispositivo de procesamiento de datos no controlado tras la verificación de que la aplicación crítica para la seguridad está instalada correctamente y funciona correctamente en el dispositivo de procesamiento de datos no controlado, en el que la aplicación crítica para la seguridad es una aplicación relacionada con la medicina y el dispositivo de procesamiento de datos no controlado es un dispositivo personal inalámbrico que comprende una pantalla de visualización (1730), estando el dispositivo de procesamiento de datos no controlado en comunicación de datos con al menos uno de un dispositivo de monitoreo de analitos (705), un dispositivo de administración de fármacos o una combinación de un dispositivo de monitoreo de analitos y un dispositivo de administración de fármacos.
Description
DESCRIPCIÓN
Procedimientos y artículos de fabricación para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado
ANTECEDENTES
[0001] Los sistemas críticos para la seguridad son sistemas cuyos fallos o mal funcionamiento pueden resultar en consecuencias significativamente perjudiciales como la muerte o lesiones en personas, daños graves o pérdida en equipos o en el medio ambiente. Debido a que los sistemas críticos para la seguridad tienen consecuencias potencialmente peligrosas, todo el sistema se somete a procedimientos de verificación y validación para proporcionar un cierto nivel de confianza en que todo el sistema funciona correctamente y continuará funcionando adecuadamente para todas las condiciones de uso aprobadas.
[0002] WALTERS y col. «SOFTWARE SAFETY TECHNIQUES FOR IMPLANTABLE MEDICAL DEVICES», Actas de la Conferencia Internacional Anual de la Sociedad de Ingeniería en Medicina y Biología; París, 29 de octubre-1 de noviembre de 1992 y Nueva York, I, vol. 14, Parte 03, 29 de octubre de 1992, página 965/966 describe medidas de seguridad de software para marcapasos implantables. El documento US 2006/230398 describe la prevención de la instalación y ejecución de una aplicación innecesaria en un dispositivo incrustado al determinar de antemano si la aplicación funciona normalmente. El documento DE 10 2008 003531 describe un procedimiento para verificar la autenticidad de una aplicación de software. El documento US 2009/164838 describe una memoria para un sistema de control de freno electrónico dividido en porciones que se clasifican como críticas y no críticas, que se someten a pruebas periódicas para detectar fallos.
[0003] Los sistemas médicos son un ejemplo de sistemas críticos para la seguridad que requieren un cierto nivel de confianza en que el sistema funcionará y continuará funcionando correctamente. Los sistemas médicos pueden afectar negativamente la salud y el bienestar de un usuario si no funcionan correctamente o si no se sabe que funcionan correctamente. Esto es especialmente cierto para los sistemas médicos que proporcionan a los usuarios información de diagnóstico o terapéutica relacionada con la salud. Por ejemplo, los dispositivos de monitoreo de analitos, como los medidores de glucosa, proporcionan a los usuarios información de diagnóstico sobre sus niveles de azúcar en sangre. Las inexactitudes o retrasos significativos en la notificación de dicha información de diagnóstico pueden provocar lesiones o la muerte de un usuario. Además, como otro ejemplo, los sistemas médicos pueden proporcionar a los usuarios información terapéutica tal como dosificaciones recomendadas de medicamentos. Por ejemplo, los medidores de glucosa pueden proporcionar a los usuarios dosificaciones recomendadas de insulina en respuesta a una medición de glucosa para remediar los niveles actuales o previstos de azúcar en sangre. Las inexactitudes o retrasos significativos en la notificación de dicha información terapéutica pueden conducir potencialmente a lesiones o la muerte del usuario.
[0004] Una vez que todo el sistema crítico para la seguridad ha sido verificado y validado, todo el sistema se libera y no se espera que sufra cambios de software y/o hardware. Esto proporciona un entorno de sistema muy controlado. Los nuevos cambios de software y/o hardware no se introducen en el mercado a menos y hasta que el nuevo hardware y/o software hayan sufrido un nuevo procedimiento de validación. Dicho entorno de sistema controlado proporciona un cierto nivel de confianza en que el sistema no se alterará ni cambiará y potencialmente afecta el funcionamiento adecuado del sistema.
[0005] Sin embargo, cuando se instala una aplicación crítica para la seguridad (SCA) en un dispositivo de procesamiento de datos no controlado (UDPD) que permite cambios de hardware y/o software por parte del usuario, cualquier cambio en el UDPD puede afectar negativamente el funcionamiento adecuado de la SCA en el UDPD. Los UDPDs generalmente permiten al usuario realizar cambios de software y/o hardware en el dispositivo, por ejemplo, instalar/quitar programas de software, instalar/quitar controladores, agregar/quitar componentes de hardware, etc. Ejemplos de UDPDs pueden incluir, computadoras personales (por ejemplo, de escritorio, portátil, etc.), teléfonos móviles (por ejemplo, iPhones®, Blackberry®, etc.), asistentes digitales personales (PDA), etc. Por lo tanto, la naturaleza incontrolada de los dispositivos de procesamiento de datos compromete cualquier garantía de que la SCA funcione, o continúe funcionando, adecuadamente en el UDPD.
RESUMEN
[0006] Se proporcionan procedimientos y artículos de fabricación para alojar aplicaciones críticas para la seguridad en dispositivos de procesamiento de datos no controlado. Varias combinaciones de comprobaciones (por ejemplo, comprobación de instalación, comprobación funcional, comprobación de integridad del servidor, comprobación de coexistencia, comprobación de interoperabilidad, comprobación de gestión de energía, comprobación del entorno, etc.) se ejecutan en varios momentos para determinar si la SCA puede funcionar correctamente en el dispositivo. El funcionamiento de la SCA en el UDPD puede controlarse en consecuencia.
[0007] Estos y otros objetivos, ventajas y características de la invención serán evidentes para los expertos en
la materia al leer los detalles de la invención tal como se describe con más detalle a continuación.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0008] La invención se entiende mejor a partir de la siguiente descripción detallada cuando se lee junto con los dibujos adjuntos. Se enfatiza que, según la práctica común, las diversas características de los dibujos no son a escala. Por el contrario, las dimensiones de las diversas características se expanden o reducen arbitrariamente para mayor claridad. En los dibujos se incluyen las siguientes figuras:
La FIG. 1 ilustra un diagrama de flujo para un procedimiento de verificación y validación de sistemas críticos para la seguridad, según la técnica anterior;
La FIG. 2 ilustra un diagrama de bloques de alto nivel de un ejemplo de sistema de procesamiento de datos no controlado, según la técnica anterior;
La FIG. 3 ilustra un diagrama de flujo para un procedimiento de verificación y validación, según algunos aspectos de la presente descripción;
La FIG. 4 ilustra un diagrama de bloques funcionales de SCA y un arnés de prueba almacenado en memoria de un UDPD, según algunos aspectos de la presente descripción;
La FIG. 5 ilustra un diagrama de bloques de una comprobación funcional que comprende una o más rutinas de prueba, según algunos aspectos de la presente descripción;
La FIG. 6 ilustra un diagrama de bloques de una rutina de prueba de comunicación que comprende una o más subrutinas, según algunos aspectos de la presente descripción;
La FIG.7 ilustra un diagrama de bloques de un UDPD que se comunica con diversos dispositivos externos a través de enlaces de comunicación, según algunos aspectos de la presente descripción;
La FIG. 8 ilustra un diagrama de flujo para la comprobación de la instalación, según algunos aspectos de la presente descripción;
La FIG. 9 ilustra un diagrama de flujo para una comprobación funcional, según algunos aspectos de la presente descripción;
La FIG. 10 ilustra un diagrama de flujo para una comprobación funcional, según algunos aspectos de la presente descripción;
La FIG.11 ilustra un diagrama de flujo para un procedimiento de instalación, según algunos aspectos de la presente descripción;
La FIG. 12 ilustra un diagrama de flujo para un procedimiento para realizar comprobaciones, según algunos aspectos de la presente descripción;
La FIG. 13 ilustra un diagrama de flujo para una comprobación de integridad del servidor, según algunos aspectos de la presente descripción;
La FIG. 14 ilustra un diagrama de flujo para una comprobación de coexistencia, según algunos aspectos de la presente descripción;
La FIG. 15 ilustra un diagrama de flujo para una comprobación de interoperabilidad, según algunos aspectos de la presente descripción; y
La FIG. 16 ilustra un diagrama de flujo para una comprobación de gestión de energía, según algunos aspectos de la presente descripción.
Las FIGS. 17A y 17B ilustran un adaptador, que incluye un dispositivo de monitoreo de analitos, acoplado de forma extraíble a, y en comunicación con, un UDPD que ejecuta una SCA, según algunos aspectos de la presente descripción.
Las FIGS. 18A y 18B ilustran un adaptador, que incluye un dispositivo de monitoreo de analitos, acoplado de forma extraíble a, y en comunicación con, un UDPD que ejecuta una SCA, según algunos aspectos de la presente descripción.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
[0009] Antes de que las presentes invenciones se describan, debe entenderse que esta invención no se limita a aspectos particulares descritos, ya que, por supuesto, pueden variar. También debe entenderse que la terminología utilizada en esta solicitud tiene el propósito de describir aspectos particulares solamente, y no pretende ser limitante, ya que el alcance de la presente invención estará limitado solo por las reivindicaciones adjuntas.
[0010] Cuando se proporciona un intervalo de valores, se entiende que cada valor intermedio, hasta la décima parte de la unidad del límite inferior a menos que el contexto indique claramente lo contrario, entre los límites superior e inferior de ese intervalo también se describe específicamente. Cada intervalo menor entre cualquier valor establecido o valor intermedio en un intervalo establecido y cualquier otro valor establecido o intermedio en ese intervalo establecido está comprendido dentro de la invención. Los límites superior e inferior de estos intervalos más pequeños pueden incluirse o excluirse independientemente en el intervalo, y cada intervalo donde ninguno o ambos límites se incluyen en los intervalos más pequeños también se incluye dentro de la invención, sujeto a cualquier límite específicamente excluido en el intervalo indicado. Cuando el intervalo establecido incluye uno o ambos límites, los intervalos que excluyen ambos o uno de esos límites incluidos también están incluidos en la invención.
[0011] A menos que se definan de otro modo, todos los términos técnicos y científicos usados en la presente memoria tienen el mismo significado que entienden comúnmente los expertos en la técnica a la que pertenece esta invención. Aunque cualquier procedimiento y material similar o equivalente a los descritos en esta solicitud también se puede usar en la práctica o prueba de la presente invención, ahora se describen algunos procedimientos y materiales potenciales y preferidos.
[0012] Cabe señalar que tal como se emplea en esta invención y en las reivindicaciones adjuntas, las formas en singular «un/o», «una» y «el/la» incluyen las referencias en plural, a menos que el contexto indique claramente lo contrario. Por lo tanto, por ejemplo, la referencia a «una actualización de firmware» incluye una pluralidad de dichas actualizaciones de firmware y la referencia a «la actualización de firmware» incluye la referencia a una o más actualizaciones de firmware y equivalentes de estas conocidos por los expertos en la materia, etc.
[0013] Las publicaciones analizadas en esta invención se proporcionan únicamente para su descripción previa a la fecha de presentación de la presente solicitud. Nada en esta invención debe interpretarse como una admisión de que la presente descripción no tiene derecho a anteceder a dicha publicación en virtud de una invención anterior. Además, las fechas de publicación proporcionadas pueden ser diferentes de las fechas de publicación reales que es posible que haya que confirmar de manera independiente.
[0014] La FIG. 1 ilustra un diagrama de flujo para un procedimiento de verificación y validación para sistemas críticos para la seguridad, según la técnica anterior. Como se muestra, el sistema crítico para la seguridad 102 es un sistema dedicado que comprende una aplicación crítica para la seguridad 104, componentes comerciales de software listos para usar 106 (por ejemplo, sistemas operativos, controladores, etc.) y diversos componentes de hardware 108. El procedimiento de verificación y validación 100 se realiza en todo el sistema dedicado 102. Después de que se completa la verificación y validación iniciales, se proporciona todo el sistema dedicado 102 al usuario. El usuario es capaz de utilizar el sistema crítico para la seguridad 102 para su propósito previsto, pero no puede realizar cambios en el sistema, tales como realizar cambios en el sistema operativo, modificar el programa de aplicación, instalar o quitar controladores, instalar o quitar programas de software, realizar cualquier cambio de hardware significativo, etc. Este entorno controlado proporciona al fabricante y al usuario un cierto nivel de confianza en que todo el sistema dedicado crítico para la seguridad 102 no solo funciona correctamente, sino que no se alterará o cambiará posteriormente de manera que no funcione correctamente en el futuro.
[0015] Sin embargo, hoy en día, cada vez más personas tienen acceso a uno o más UDPD. Los UDPD se han convertido en una parte integral de la vida de muchas personas y proporcionan a las personas un acceso continuo y conveniente a diversas aplicaciones para ser utilizadas en estos dispositivos. Por ejemplo, muchas personas hoy en día tienen un ordenador de escritorio o portátil, así como un teléfono móvil, que pueden descargar varias aplicaciones y utilizar en el dispositivo específico. Cuanto más accesibles son los dispositivos para el usuario, más cómodos se vuelven. Si bien las SCA pueden verificarse y validarse antes de la distribución a los usuarios, cuando se cargan en un UDPD, cualquier garantía de que la SCA funcione correctamente se ve comprometida debido a la naturaleza incontrolada del UDPD.
[0016] La FIG. 2 ilustra un diagrama de bloques de alto nivel de un ejemplo de sistema de procesamiento de datos no controlado, según la técnica anterior. Como se muestra en la FIG. 2, el UDPD 200 incluye un bus de sistema 202 que está acoplado al procesador 203, una memoria volátil 205 y una memoria no volátil 206. El término procesador se usa en esta invención para referirse generalmente a cualquier elemento de procesamiento tal como un microprocesador, microcontrolador, procesador de señales digitales, etc. La memoria volátil 205 puede incluir una memoria de acceso aleatorio (RAM), por ejemplo, y/o cualquier otro tipo de memoria que requiera energía continuamente para actualizar o mantener los datos en la memoria. La memoria no volátil 206 puede incluir, por ejemplo, una memoria de solo lectura (ROM), una memoria flash, unidades electrónicas o magnéticas u ópticas y/o cualquier otro tipo de memoria que mantenga datos incluso después de retirar la energía del sistema. Si bien solo se muestra un único bloque para cada uno, debe entenderse que se pueden implementar uno o más procesadores, memoria volátil o memoria no volátil. Además, la memoria 220 está representada por líneas de puntos y se refiere generalmente a cualquier memoria disponible u otro medio legible por máquina al que se pueda acceder mediante el procesador 202. Como tal, se muestra que la memoria 220 comprende generalmente la memoria volátil 205 y la memoria no volátil 206.
[0017] La memoria 220 está acoplada al procesador 203 a través del bus del sistema 202 y almacena conjuntos de instrucciones para ser ejecutados por el procesador 203. El procesador 203, a su vez, comprende elementos de procesamiento y/o circuitos lógicos para ejecutar los conjuntos de instrucciones. El bus de sistema 202 interconecta estos diversos componentes juntos y también interconecta los componentes 203, 205 y 206, a un controlador de visualización y dispositivo de visualización 208, y a dispositivos periféricos tales como dispositivos de entrada/salida (E/S) 210, tales como teclados numéricos, teclados, módems, interfaces de red, impresoras, escáneres, cámaras de vídeo y otros dispositivos que son bien conocidos en la técnica. En algunos casos, los dispositivos de E/S 210 están acoplados al bus del sistema 202 a través de controladores de entrada/salida 209. El bus de sistema 202 puede incluir uno o más buses conectados entre sí a través de varios puentes, controladores y/o adaptadores (no mostrados) como se conoce en la técnica. En algunos casos, el controlador de E/S 209 incluye un adaptador USB (bus serie universal)
para controlar periféricos USB y/o un adaptador de bus IEEE-1394 para controlar periféricos IEEE-1394.
[0018] Si bien la FIG. 2 muestra que la memoria no volátil 206 es un dispositivo local acoplado directamente al resto de los componentes en el UDPD, se apreciará que en algunos casos la memoria no volátil puede estar remota del sistema, tal como un dispositivo de almacenamiento en red acoplado al UDPD 200 a través de una red cableada y/o inalámbrica a través de una interfaz de red u otro dispositivo de almacenamiento remoto adecuado. Además, se apreciará que las diversas realizaciones descritas en esta invención pueden implementarse con UDPD que tienen más o menos componentes que UDPD 200.
[0019] Los UDPD tales como el descrito anteriormente pueden haber almacenado en los mismos, un sistema operativo y otros programas de software (por ejemplo, en memoria Flash, disco duro, etc.). Los programas pueden proporcionarse inicialmente de diversas maneras al UDPD, por ejemplo, en la fabricación, a través de una conexión remota (por ejemplo, a través de una interfaz de red a una ubicación remota a través de una red), por un dispositivo de almacenamiento extraíble (por ejemplo, tarjeta de memoria, CD-ROM, etc.), etc. Los programas y aplicaciones descritos en esta invención comprenden un conjunto de instrucciones que son ejecutadas por el procesador.
[0020] Los programas se proporcionan al UDPD y generalmente se almacenan en una memoria no volátil tal como (memoria Flash, disco duro, etc.). En algunos casos, cuando los programas se ejecutan en el UDPD, los programas se cargan en la memoria volátil (por ejemplo, RAM) y el procesador accede a ellos para ejecutarlos.
[0021] En algunos aspectos, el UDPD puede incluir un procesador que implementa una interfaz de programación de aplicaciones (API) para ejecutar conjuntos de instrucciones o programas de software. El API puede incluir la capacidad de un conjunto de instrucciones para interrumpir otros conjuntos de instrucciones y controlar la presentación de datos de otro dispositivo (por ejemplo, un dispositivo médico tal como un dispositivo de monitoreo de analitos y/o dispositivo de administración de fármacos) en diversas salidas (por ejemplo, salidas sonoras, visuales y táctiles) en el UDPD.
[0022] Cuando se instala una SCA en un UDPD, no hay garantías de que la SCA funcione correctamente en el UDPD porque no se ha realizado ningún procedimiento de verificación o validación después de que la SCA se instale en el UDPD. El entorno del UDPD es dinámico y puede cambiar de manera que afecte el correcto funcionamiento de la SCA en el UDPD. Por ejemplo, varios programas de software y controladores pueden instalarse y eliminarse del UDPD y no solo cambiar el entorno de procesamiento del UDPD, sino que también pueden consumir ancho de banda de procesamiento, lo que hace que el UDPD procese otras aplicaciones más lentamente. También se pueden cambiar varias configuraciones de software, lo que puede afectar el entorno de procesamiento del UDPD. Además, los cambios en los componentes de hardware (por ejemplo, tarjetas/módems inalámbricos, etc.), o configuraciones de los mismos, pueden afectar el funcionamiento adecuado de la SCA en el UDPD (por ejemplo, evitar la comunicación a un dispositivo externo). Aún más, las actividades del usuario pueden conducir al sistema a obtener virus o spyware que pueden cambiar el entorno del UDPD o consumir ancho de banda de procesamiento e impedir que la SCA funcione correctamente. Además, los cambios en el sistema pueden afectar el consumo de energía del sistema, lo que puede comprometer la SCA. Por lo tanto, la naturaleza incontrolada de los dispositivos de procesamiento de datos compromete cualquier garantía de que la SCA funcione o continúe funcionando adecuadamente en el UDPD.
[0023] En algunos aspectos de la presente descripción, se proporcionan procedimientos y artículos de fabricaciones para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado. Varias combinaciones de comprobaciones (por ejemplo, comprobación de instalación, comprobación funcional, comprobación de integridad del servidor, comprobación de coexistencia, comprobación de interoperabilidad, comprobación de gestión de energía, comprobación del entorno, etc.) pueden ejecutarse en varios momentos para determinar si la SCA puede funcionar correctamente en el dispositivo, y el funcionamiento de la SCA en el UDPD puede controlarse en consecuencia.
[0024] En algunos aspectos de la presente descripción, se proporciona un módulo de arnés de prueba (también denominado en esta invención como «arnés de prueba») que comprende una o más comprobaciones utilizadas para determinar si la SCA funciona correctamente en el UDPD y para controlar el funcionamiento de la SCA en el UDPD en consecuencia. Ejemplos de comprobaciones que el arnés de prueba puede incluir, de modo no taxativo, son una comprobación de instalación, comprobación funcional, comprobación de integridad del servidor, comprobación de coexistencia, comprobación de interoperabilidad, comprobación de gestión de energía, comprobación del entorno. Los procedimientos y funciones relacionados con cada uno se describen en mayor detalle a lo largo de la presente descripción.
[0025] La FIG.3 ilustra un diagrama de flujo para un procedimiento de verificación y validación, según algunos aspectos de la presente descripción. Tal como se muestra, el procedimiento de verificación y validación 300 comienza con una verificación y validación iniciales realizadas en una SCA 304 y un arnés de prueba 310 para garantizar que ambos pasen satisfactoriamente la verificación y validación, tal como se representa por el círculo de referencia número uno en la FIG. 3. La verificación y validación iniciales son realizadas por el fabricante de SCA 304 y el arnés de prueba
310, por ejemplo, antes de que la SCA 304 y el arnés de prueba 310 se distribuyan a los usuarios.
[0026] En algunos casos, la SCA 304 y el arnés de prueba 310 pueden verificarse y validarse juntos al mismo tiempo, como se muestra. En algunos casos, la SCA 304 y el arnés de prueba 310 pueden verificarse y validarse por separado, y además pueden verificarse y validarse en diferentes momentos (por ejemplo, cuando se implementa una nueva versión de cualquiera de ellos, etc.). Debe apreciarse que, si bien el arnés de prueba se describe en esta invención como un único arnés de prueba, se contempla que una o más de las comprobaciones pueden proporcionarse mediante uno o más arneses de prueba en el mismo medio legible por computadora o diferente. Además, cada arnés de prueba puede verificarse y validarse en diferentes momentos en algunos casos.
[0027] También debe apreciarse que la SCA 304 descrita en la presente puede asociarse con un amplio intervalo de aplicaciones críticas para la seguridad. En algunos aspectos de la presente descripción, la SCA 304 es una aplicación relacionada con la medicina. Por ejemplo, la SCA 304 puede proporcionar a un usuario herramientas/características relacionadas con la salud (por ejemplo, información, cálculos, comunicaciones, etc.) asociadas con diagnóstico, terapia y tratamiento, administración y dosificación de fármacos, gestión de datos (por ejemplo, registros, anotaciones, historial, gráficos, gráficas, informes, etc.), etc.
[0028] En algunos aspectos de la presente descripción, la SCA 304 es una aplicación asociada con el monitoreo y/o la determinación de analitos. Los ejemplos de características de SCA 304 pueden incluir, por ejemplo, uno o más de los siguientes: determinar cantidades o concentraciones de analitos a partir de una muestra (por ejemplo, saliva, sangre, otro fluido corporal, etc.); recibir datos de medición; gestionar y/o procesar datos de medición (por ejemplo, registrar mediciones, proporcionar advertencias basadas en valores de medición, proporcionar representaciones alternativas de datos en forma de informes, gráficos, gráficas, etc.); calcular las cantidades de dosificación del fármaco (por ejemplo, cálculos de bolo de insulina) en función de los datos de medición, datos de ejercicio, ingesta de alimentos, etc.; comunicarse con un dispositivo remoto externo al UDPD 200 (por ejemplo, comunicar datos de dosificación y/o administración de fármacos a un dispositivo de administración de medicamentos tal como una bomba de insulina; recibir datos de medición de un dispositivo de monitoreo continuo in vivo, tal como un sensor implantado; comunicarse con un medidor de analitos; etc.); otra característica de monitoreo de analitos descrita en esta invención; etc. Debe apreciarse que las características enumeradas anteriormente son ejemplares y que se pueden implementar otras características asociadas con el monitoreo y/o la determinación de analitos. En algunos aspectos de la presente descripción, la SCA 304 puede estar asociada con la monitorización y/o determinación de glucosa. En algunos aspectos de la presente descripción, la SCA 304 puede estar asociada con la monitorización y/o determinación de cetona. Se proporcionan ejemplos adicionales de solicitudes relacionadas con el monitoreo de analitos en la solicitud de patente internacional n.° PCT/US2010/23076, titulada «MultiFunction Analyte Test Device and Methods Therefor».
[0029] Después de la verificación y validación iniciales, la SCA 304 y el arnés de prueba 310 se instalan en un UDPD 200, representado por el círculo de referencia número dos. Por ejemplo, el usuario puede descargar una SCA 304 y el arnés de prueba 310 a través de Internet, un dispositivo de almacenamiento extraíble (por ejemplo, tarjeta de memoria FLASH, CD-ROM, etc.) o cualquier otro medio, conexión o procedimiento legible por máquina adecuado. En algunos aspectos de la presente descripción, se proporciona un artículo de fabricación que comprende un medio legible por máquina que tiene varias comprobaciones almacenadas en este como instrucciones ejecutables por máquina. Por ejemplo, el medio legible por máquina puede tener un arnés de prueba almacenado en este y, en algunos casos, SCA también.
[0030] Como se mencionó anteriormente, los UDPD de ejemplo pueden incluir, computadoras personales (por ejemplo, de escritorio, portátil, etc.), teléfonos móviles (por ejemplo, iPhones®, Blackberry®, etc.), asistentes digitales personales (PDA), reproductor de música digital (por ejemplo, iPod®), etc. Información adicional y detalles para algunos dispositivos de procesamiento de datos no controlado de ejemplo (por ejemplo, iPhone®) se describen en la publicación de solicitud de patente estadounidense N.° US2008/0122796 publicada el 29 de mayo de 2008 titulada «Touch Screen Device, Method, and Graphical User Interface for Determining Commands by Applying Heuristics». En algunos aspectos de la presente descripción se proporciona un UDPD que incluye un procesador y una memoria acoplada operativamente al procesador, en el que la memoria tiene instrucciones almacenadas en esta para alojar la SCA en el UDPD. La memoria puede incluir instrucciones para una o más de las diversas comprobaciones descritas en esta invención. Por ejemplo, la memoria puede tener un arnés de prueba almacenado en ella para realizar las diversas comprobaciones en la SCA.
[0031] En algunos aspectos de la presente descripción, se proporciona un sistema de monitoreo de analitos que incluye un UDPD que tiene un procesador y memoria acoplada operativamente al procesador, en el que la memoria tiene instrucciones almacenadas en ella para alojar la SCA en el UDPD. La memoria puede incluir instrucciones para una o más de las diversas comprobaciones descritas en esta invención. Por ejemplo, la memoria puede tener un arnés de prueba almacenado en ella para realizar las diversas comprobaciones en la SCA.
[0032] En algunos aspectos de la presente descripción, el sistema de monitoreo de analitos puede incluir, además del UDPD, un elemento que tiene un sensor para proporcionar datos de medición de una muestra de analitos.
El elemento está en comunicación con el UDPD y proporciona los datos de medición al UDPD. Debe apreciarse que el elemento puede comunicarse con el UDPD a través de una conexión inalámbrica o cableada utilizando cualquier variedad de tecnología cableada o inalámbrica. En algunos casos, el elemento puede ser un sensor de analito implantado o en el cuerpo. En algunos casos, el elemento puede incluir un puerto de tira para recibir una muestra de analito, por ejemplo, a través de una tira de prueba u otra aplicación in vitro. En algunos casos, el elemento puede ser un adaptador que se acopla de forma extraíble al UDPD.
[0033] La SCA 304 y el arnés de prueba 310 pueden instalarse en los UDPD que se comunican con elementos (por ejemplo, adaptadores) y/o módulos que proporcionan funcionalidad adicional a un UDPD que ejecuta una SCA. Los ejemplos y la información adicional de los adaptadores utilizados con UDPD se describen en la solicitud provisional estadounidense n.° 61/325.021 titulada «Mobile Phone Display for Continuous Analyte Monitoring». Además, se describen ejemplos de módulos de monitoreo de analitos utilizados con UDPD en la patente estadounidense n.° 7.041.468 concedida el 9 de mayo de 2006, titulada «Blood Glucose Tracking Apparatus and Method» y en la publicación de solicitud de patente estadounidense n.° US2004/0245534 publicada el 16 de diciembre de 2004, titulada «Glucose Measuring Module and Insulin Pump Combination».
[0034] La SCA 304 y el arnés de prueba 310 también se pueden instalar en dispositivos modulares de monitoreo de analitos cuando uno o más módulos no están protegidos. Los dispositivos modulares de monitoreo de analitos incluyen un módulo base y al menos otro módulo que se acopla de forma extraíble al módulo base para formar un único dispositivo integrado de monitoreo de analitos. De esta manera, varios módulos con diferentes características pueden acoplarse al módulo base y proporcionar al módulo base esas características correspondientes. Si, por ejemplo, el módulo base es un UDPD que permite al usuario descargar y/o quitar programas de software, el arnés de prueba 310 puede instalarse en el módulo base para proporcionar cierto nivel de seguridad de que la SCA instalada en el módulo base puede funcionar correctamente en el módulo base. Los ejemplos y la información adicional sobre medidores modulares se describen en la solicitud de patente provisional estadounidense n.° 61/325.155, titulada «Modular Analyte Monitoring Device».
[0035] Las FIGS. 17A-B y 18A-B ilustran ejemplos de UDPD que se acoplan con adaptadores para adquirir capacidades de monitoreo de analitos adicionales y que pueden tener SCA 304 y arnés de prueba 310 instalados en este, según algunos aspectos de la presente descripción. Las FIGS. 17A y 17B ilustran un adaptador que incluye un dispositivo de monitoreo de analitos, acoplado de forma extraíble y en comunicación con un UDPD que ejecuta una SCA. La FIG. 17A ilustra una vista en perspectiva parcialmente despiezada, así como una vista lateral, del adaptador 1 701 acoplado de forma extraíble a un UDPD 200. La FIG. 17B ilustra una vista en perspectiva del adaptador 1701 acoplado de forma extraíble a UDPD 200.
[0036] Se muestra el adaptador 1701 que comprende dos piezas 1702 y 1703 que se acoplan para formar el adaptador y permiten que el adaptador 1701 se acople de forma segura al UDPD 200 y se retire de este. El UDPD 200 se muestra en este ejemplo como un teléfono móvil. Debe entenderse que el UDPD 200 puede ser cualquier variedad de dispositivos de procesamiento de datos no controlado, por ejemplo, un PDA, teléfono móvil (por ejemplo, teléfono celular), etc. Dichos dispositivos incluyen, por ejemplo, dispositivos BlackBerry®, iPhone®, iPod®, iPod Touch®, etc.
[0037] El adaptador 1701 está configurado para comunicarse con un UDPD 200. En algunos casos, el adaptador 1701 puede incluir un módulo de comunicación inalámbrica y comunicarse con un UDPD 200 mediante comunicación inalámbrica, por ejemplo, mediante Bluetooth, infrarrojo u otra tecnología inalámbrica. En algunos casos, el adaptador 1701 puede incluir un conector de comunicación que se comunica con un UDPD 200 a través de una conexión cableada, por ejemplo, a través de un puerto micro-USB u otra conexión de comunicación, en un UDPD 200.
[0038] El adaptador 1701 incluye el puerto de tira 1704 y los circuitos asociados para recibir una muestra para una medición de analitos. El UDPD 200 tiene una SCA 304 almacenada en la memoria para su ejecución por UDPD 200. La SCA 304 es una aplicación de monitoreo de analitos que proporciona a un UDPD 200 capacidades de monitoreo de analitos. Dependiendo de la aplicación específica implementada, se pueden monitorear uno o más analitos tales como glucosa, cetona, etc.
[0039] La SCA 304 y el UDPD 200 están en comunicación con el adaptador 1701 y utilizan el puerto de tira de prueba 1704 para recibir una tira de prueba 1705 y realizar una medición en la muestra proporcionada. Por ejemplo, como se muestra en la FIG. 17B, la tira de prueba 1705 se inserta en el puerto de tira 1704 proporcionado por el adaptador 1701. La SCA 304 procesa datos de la tira de prueba 1705 y obtiene una lectura de medición usando el procesador de UDPD 200. La SCA 304 transmite a continuación la lectura de medición al usuario a través de una pantalla 1730 en un UDPD 200. Debe apreciarse que también se pueden realizar capacidades de monitoreo adicionales mediante SCA 304 que se ejecuta en un UDPD 200, tal como los descritos en esta invención, por ejemplo, producir audiblemente la lectura de medición, registrar los datos de medición, proporcionar alarmas, calcular dosificaciones de medicamentos, comunicarse con dispositivos de administración de medicamentos, etc.
[0040] El UDPD 200 también tiene el arnés de prueba 310 (y cualquier otra comprobación adicional
implementada que no sea necesariamente parte del arnés de prueba) almacenado en la memoria y, tal como se describe en esta invención, ejecuta varias comprobaciones para lograr un cierto nivel de confianza de que la SCA 304 puede funcionar correctamente en el UDPD 200. Además, tal como se describe en esta invención, las diversas comprobaciones pueden iniciarse en diversas combinaciones y en diferentes momentos según se desee.
[0041] En algunas realizaciones, el adaptador 1701 puede configurarse para realizar la medición de analitos (por ejemplo, a través de un procesador integrado) y comunica la lectura de medición al UDPD 200 a través de la conexión cableada o inalámbrica con un UDPD 200. El UDPD 200 ejecuta una SCA 304 y se comunica con el adaptador 1701 para recibir las lecturas de medición y proporciona capacidades de monitoreo adicionales tales como las descritas en esta invención, por ejemplo, mostrar y/o emitir audiblemente la lectura de medición, registrar los datos de medición, proporcionar alarmas, calcular dosificaciones de medicamentos, comunicarse con dispositivos de administración de medicamentos, etc.
[0042] Las FIGS. 18A y 18B ilustran un adaptador que incluye un dispositivo de monitoreo de analitos, acoplado de forma extraíble y en comunicación con un UDPD que ejecuta una SCA. La FIG. 18A ilustra una vista en perspectiva parcialmente despiezada, así como una vista lateral, del adaptador 1801 acoplado de forma extraíble a un UDPD 200. La FIG. 18B ilustra una vista en perspectiva del adaptador 1801 acoplado de forma extraíble a un UDPD 200. El adaptador 1801 permite que el UDPD 200 se comunique con un dispositivo remoto.
[0043] Se muestra el adaptador 1801 que comprende dos piezas 1802 y 1803 que se acoplan para formar el adaptador y permiten que el adaptador 1801 se acople de forma segura al UDPD 200 y se retire de este. El UDPD 200 se muestra en esta realización ejemplar como un teléfono móvil. Debe entenderse que el UDPD 200 puede ser cualquier variedad de dispositivos de procesamiento de datos no controlado, por ejemplo, un PDA, teléfono móvil (por ejemplo, teléfono celular), etc. Dichos dispositivos incluyen, por ejemplo, dispositivos BlackBerry®, iPhone®, iPod®, iTouch®, etc.
[0044] El adaptador 1801 está configurado para comunicarse con un UDPD 200. En algunos casos, el adaptador 1801 puede incluir un módulo de comunicación inalámbrica y comunicarse con un UDPD 200 mediante comunicación inalámbrica, por ejemplo, mediante Bluetooth, infrarrojo u otra tecnología inalámbrica. En algunos casos, el adaptador 1801 puede incluir un conector de comunicación que se comunica con un UDPD 200 a través de una conexión cableada, por ejemplo, a través de un puerto micro-USB u otra conexión de comunicación, en un UDPD 200. El adaptador 1801 también se comunica con el dispositivo sensor remoto 1820 a través de un módulo de comunicación inalámbrica, como se muestra en la FIG. 18B. El dispositivo de sensor remoto 1820 se muestra como un sensor de analitos en el cuerpo (por ejemplo, un sensor de analitos implantado o parcialmente implantado) en el usuario 1825. El dispositivo de sensor remoto 1820 puede ser, por ejemplo, un sensor de glucosa implantado o parcialmente implantado para aplicaciones de medición continua de glucosa (CGM) o glucosa bajo demanda (God).
[0045] El UDPD 200 tiene una SCA 304 almacenada en la memoria para su ejecución por UDPD 200. La SCA 304 es una aplicación de monitoreo de analitos que proporciona a un UDPD 200 capacidades de monitoreo de analitos. Dependiendo de la aplicación específica implementada, se pueden monitorear uno o más analitos tales como glucosa, cetona, etc. La SCA 304 y el UDPD 200 están en comunicación con el adaptador 1701 y utiliza el adaptador 1801 para comunicarse con el dispositivo sensor remoto 1820. El dispositivo sensor remoto 1820 obtiene datos de medición de analitos tomados del usuario 1825 y comunica los datos a la SCA 304 y al UDPD 200 a través del adaptador 1801. La SCA 304 recibe los datos de medición y proporciona capacidades de monitoreo adicionales tales como las descritas en esta invención, por ejemplo, mostrar y/o producir audiblemente la lectura de medición, registrar los datos de medición, proporcionar alarmas, calcular dosificaciones de medicamentos, comunicarse con dispositivos de administración de fármacos, etc.
[0046] Volviendo a la FIG. 3, después de la instalación en el UDPD 200, el arnés de prueba 310 se ejecuta para determinar si la SCA 304 funciona correctamente en el UDPD 200, como se representa por el círculo de referencia número tres. En algunos casos, el arnés de prueba 310 y la SCA 304 están configurados de modo que el arnés de prueba 310 se inicia antes de que la SCA 304 esté libremente operativa.
[0047] Las expresiones «libremente operativa» y «funcionando libremente» se usan en esta invención para referirse a la SCA que funciona de modo que el usuario pueda usar la SCA según lo previsto y libre de cualquier restricción implementada por el arnés de prueba. Debe apreciarse que una o más características críticas para la seguridad de la SCA pueden «estar destinadas» a bloquearse o deshabilitarse (por ejemplo, por parte del fabricante, médico, etc.) del usuario, y se considera que el funcionamiento de la SCA con las características bloqueadas intencionalmente funciona libremente.
[0048] Sin embargo, si el arnés de prueba restringe el uso de la SCA, se dice que la SCA no puede funcionar libremente. Por ejemplo, en algunos casos, esto puede incluir deshabilitar la SCA e impedir que la SCA se ejecute en el UDPD. En algunos casos, esto puede incluir bloquear o deshabilitar una o más características críticas para la seguridad de la SCA. En algunos casos, esto puede incluir permitir que la SCA se ejecute en el UDPD de modo que el usuario aún pueda usar características críticas para la seguridad de la SCA pero no pueda usar todas las
características críticas para la seguridad de la SCA. Se pueden realizar una o más comprobaciones en el arnés de prueba 310 antes de que la SCA 304 esté libremente operativa para proporcionar un cierto nivel de seguridad de que la SCA 304 puede funcionar correctamente en el UDPD 200 antes de que el usuario use las características críticas para la seguridad. Además, en algunos casos, se pueden realizar una o más comprobaciones en el arnés de prueba 310 durante y/o después de que la SCA esté libremente operativa para proporcionar un cierto nivel de seguridad de que la SCA 304 continúe funcionando adecuadamente en el UDPD 200.
[0049] Debe apreciarse que el término «permitir» se usa ampliamente en esta invención y puede incluir permitir, habilitar, desbloquear, etc., en algunos casos. Además, debe apreciarse que el término «prevenir» se usa ampliamente en esta invención y puede incluir restringir, deshabilitar, bloquear, etc., en algunos casos.
[0050] En algunos aspectos de la presente descripción, el arnés de prueba 310 comprende una o más de las siguientes comprobaciones: una comprobación de instalación para determinar si la SCA 304 se instaló correctamente en un UDPD 200; una comprobación funcional para determinar si la SCA 304 funciona correctamente en un UDPD 200; una comprobación de integridad del servidor para determinar si la integridad de la SCA 304 se ha visto comprometida; una comprobación de coexistencia para determinar si la SCA 304 es incompatible con otros programas en un UDPD 200; una comprobación de interoperabilidad para determinar si la SCA 304 interactúa correctamente en un UDPD 200 con programas relacionados; una comprobación de la gestión de energía para determinar si las capacidades de energía del UDPD 200 son suficientes para ejecutar la SCA 304 de forma segura con un cierto nivel de seguridad de que el UDPD no se apague abruptamente; y una comprobación del entorno para determinar un entorno actual de UDPD 200 en varios momentos (por ejemplo, cuando se inician las comprobaciones) y/o determinar si se ha producido un cambio en el entorno desde una determinación previa de un entorno actual (por ejemplo, en un momento asociado con la última vez que se determinó que la SCA funcionaba correctamente en el UDPD). Además, el arnés de prueba 310 puede ejecutar una o más de estas comprobaciones en varios momentos, por ejemplo, antes de que se ejecute la SCA 304, mientras que la SCA 304 se ejecuta, a intervalos predeterminados, etc., y en diferentes combinaciones según se desee.
[0051] En algunos aspectos de la presente descripción, la ejecución del arnés de prueba 310 da como resultado que se ejecuten una o más comprobaciones para determinar si la SCA 304 funciona correctamente en el UDPD 200 y controlar el funcionamiento de la SCA 304 en el UDPD 200 en consecuencia. Por ejemplo, la SCA 304 y el arnés de prueba 310 pueden configurarse de modo que se impida que la SCA 304 funcione libremente en el UDPD cuando se determina que la SCA 304 no está funcionando correctamente en el UDPD 200.
[0052] En algunos casos, el arnés de prueba 310 puede ejecutarse en el fondo de UDPD 200. La SCA 304 y/u otros programas de software pueden, en algunos casos, ejecutarse en primer plano mientras que el arnés de prueba se ejecuta en segundo plano en UDPD 200. Además, debe apreciarse que, en algunos casos, el funcionamiento del arnés de prueba en el fondo puede ser transparente para el usuario.
[0053] En algunos casos, el arnés de prueba 310 y la SCA 304 son parte del módulo de programa más grande 302 (también denominado en esta invención «programa 302»), tal como se representa mediante líneas de puntos. Por ejemplo, todo el programa 302 se verifica y valida inicialmente, y posteriormente se instala en el UDPD 200. El programa 302 puede configurarse para iniciar el arnés de prueba 310 antes de permitir que la SCA 304 funcione libremente. De esta manera, el arnés de prueba 310 se inicia para determinar si la s Ca 304 puede funcionar correctamente (por ejemplo, instalada y funcionando correctamente) en el UDPD 200 y, por lo tanto, controlar el funcionamiento de la SCA 304 en el UDPD 200 en consecuencia (por ejemplo, permitir o evitar que la SCA 304 funcione libremente en el UDPD 200).
[0054] En algunos casos, la SCA 304 y el arnés de prueba 310 son programas separados que pueden verificarse inicialmente y validarse por separado, y además pueden instalarse en el UDPD 200 en el mismo momento o en momentos diferentes. En tales casos, la SCA 304 está configurada para ejecutar el arnés de prueba 310 en los momentos apropiados. Por ejemplo, la SCA 304 puede incluir comandos para iniciar el arnés de prueba 310 antes de que la SCA 304 pueda funcionar libremente. En algunos casos, si la SCA 304 está instalada en el UDPD 200 y el arnés de prueba 310 no lo está, entonces la SCA 304 está configurada para evitar que la SCA 304 funcione libremente.
[0055] En algunos casos, el arnés de prueba 310 puede incluirse dentro de la SCA 304. Una nueva SCA 304 puede escribirse para incluir un arnés de prueba 310, o una SCA 304 existente puede modificarse para incluir el arnés de prueba 310. En tal caso, la SCA 304 puede configurarse para iniciar el arnés de prueba en los momentos apropiados. Por ejemplo, la SCA 304 puede incluir comandos para ejecutar el arnés de prueba 310 antes de que la SCA 304 esté libremente operativa (por ejemplo, antes de que el usuario tenga acceso a las características críticas para la seguridad). De esta manera, se puede determinar el funcionamiento adecuado de la SCA 304 en el UDPD 200 antes de que el usuario utilice las características críticas para la seguridad de SCA 304. El arnés de prueba 310 también puede implementarse dentro de la SCA 304 de modo que pueda solicitarse una o más veces o en varios momentos según se desee. Debe apreciarse que la SCA 304 y el arnés de prueba 310 se muestran separados en algunas figuras en esta invención para fines ilustrativos, y que también son aplicables realizaciones con el arnés de prueba 310 incluido dentro de la s Ca 304.
[0056] La FIG.4 ilustra un diagrama de bloques funcionales de SCA y un arnés de prueba accesible a UDPD 200, según algunos aspectos de la presente descripción. También debe apreciarse que, aunque el arnés de prueba 310 y la SCA 304 se han mostrado en la memoria 220 de UDPD 200 en la FIG. 4, cualquiera o ambos pueden incorporarse como instrucciones ejecutables por máquina en un medio legible por máquina que no es necesariamente local o parte de UDPD 200, pero en algún momento accedido por UDPD 200 de cualquier manera adecuada.
[0057] El UDPD 200 se muestra en la FIG. 4 para incluir, como se describió anteriormente, un bus de sistema 202 que está acoplado al procesador 203, una memoria 220, un controlador de visualización y un dispositivo de visualización 208, y dispositivos periféricos tales como dispositivos de E/S 210. Se muestra que la memoria 220 incluye una SCA 304 y el arnés de prueba 310. Nuevamente, la SCA 304 y el arnés de prueba 310 pueden ser parte de un programa más grande 302. Debe apreciarse que la memoria 220 se refiere generalmente a cualquier memoria volátil y/o no volátil disponible para el procesador 203, y puede incluir uno o más componentes de memoria. Además, la SCA 304 o el arnés de prueba 310, o ambos, pueden almacenarse en uno o más componentes de memoria, y además pueden almacenarse juntos o separados entre sí en una memoria extraíble o no extraíble. También debe apreciarse que en algunos casos la SCA 304 y el arnés de prueba 310 pueden almacenarse en una memoria no volátil y cargarse en una memoria volátil tal como RAM para su ejecución por el procesador 203.
[0058] En algunos aspectos de la presente descripción, el arnés de prueba 310 puede comprender uno o más módulos de hardware y/o software para realizar las comprobaciones y procedimientos descritos en esta invención. Las comprobaciones y procedimientos descritos en esta invención, por ejemplo, pueden ser ejecutados por el procesador 203 de UDPD 200. Debe entenderse que las operaciones descritas para las comprobaciones (incluidas las rutinas de prueba y subrutinas) y los procedimientos descritos en esta invención se realizan en consecuencia por el UDPD del servidor. Como se muestra en la realización ejemplar de la FIG. 4, el arnés de prueba 310 incluye módulos para una comprobación de instalación 412, comprobación funcional 414, comprobación de entorno 416, comprobación de integridad del servidor 418, comprobación de coexistencia 420, comprobación de interoperabilidad 422 y comprobación de gestión de energía 422. Estas comprobaciones se inician para determinar si la SCA 304 puede funcionar correctamente en el UDPD 200.
[0059] El arnés de prueba 300 puede configurarse para ejecutar una o más comprobaciones en varios momentos según se desee para realizar las funciones asociadas con cada comprobación: una comprobación de instalación para determinar si la SCA 304 se instaló correctamente en el UDPD 200; una comprobación funcional para determinar si la SCA 304 funciona correctamente en un UDPD 200; una comprobación de integridad del servidor para determinar si la integridad de la SCA 304 se ha visto comprometida; una comprobación de coexistencia para determinar si la SCA 304 es incompatible con otros programas en un UDPD 200; una comprobación de interoperabilidad para determinar si la SCA 304 interactúa correctamente en un UDPD 200 con programas relacionados; una comprobación de la gestión de energía para determinar si las capacidades de energía del UDPD 200 son suficientes para ejecutar la SCA 304 de forma segura con un cierto nivel de seguridad de que el UDPD no se apague abruptamente; y una comprobación del entorno para determinar un entorno actual de UDPD 200 en varios momentos (por ejemplo, cuando se inician las comprobaciones) y/o determinar si se ha producido un cambio en el entorno desde una determinación previa de un entorno actual (por ejemplo, en un momento asociado con la última vez que se determinó que la SCA funcionaba correctamente en el UDPD).
[0060] Una determinación de que la SCA 304 funciona correctamente en el UDPD 200 puede requerir resultados específicos para cada comprobación que se implementa. Por ejemplo, en algunos casos, la determinación de que la SCA está funcionando correctamente en el UDPD requiere una comprobación de instalación para indicar que la SCA está instalada correctamente y también requiere una comprobación funcional para indicar que la SCA está funcionando correctamente en el UDPD 200. En algunos casos, la determinación de que la SCA está funcionando correctamente en el UDPD solo requiere una comprobación funcional para indicar que la SCA está funcionando correctamente en el UDPD 200 (por ejemplo, si ya se ha determinado una instalación adecuada). Una determinación de que la SCA 304 no está funcionando correctamente en el UDPD 200 puede resultar, por ejemplo, de una determinación de que la SCA no está instalada correctamente o una determinación de que la SCA no está funcionando correctamente. Se debe apreciar que también se pueden implementar comprobaciones adicionales (por ejemplo, comprobación de integridad del servidor, comprobación de coexistencia, comprobación de interoperabilidad, comprobación de gestión de energía y/u otras comprobaciones no necesariamente discutidas en esta invención), con sus resultados específicos también requeridos para una determinación de que la SCA funciona adecuadamente en el UDPD.
[0061] El entorno del UDPD se refiere generalmente a diversos componentes de software y/o hardware, o sus configuraciones, que están presentes en el UDPD. Por ejemplo, la comprobación del entorno puede identificar diversos programas de software, aplicaciones, controladores, componentes de hardware, etc., que están actualmente en el UDPD, que han sido instalados y/o eliminados y/o modificados, etc. En algunas realizaciones, solo se puede tener en cuenta el entorno de software. En algunas realizaciones, el entorno de hardware también puede tomarse en consideración.
[0062] En algunos casos, la comprobación del entorno se implementa para comprobar si el entorno de UDPD ha cambiado, lo que puede ser un posible indicador de que la SCA ya no funciona correctamente en el UDPD. En tales casos, se pueden ejecutar una o más comprobaciones adicionales (por ejemplo, comprobación funcional, comprobación de integridad del servidor, comprobación de coexistencia, comprobación de interoperabilidad, comprobación de gestión de energía, etc.) para confirmar que la SCA está funcionando correctamente en el UDPD en el nuevo entorno.
[0063] En algunos casos, como se muestra en la FIG. 4, el arnés de prueba también incluye datos de referencia 408. Los datos de referencia 408 incluyen datos utilizados por el arnés de prueba 310 para determinar si la SCA 304 se está desempeñando dentro de parámetros y requisitos predeterminados que están asociados con un cierto nivel de confianza de que la SCA 304 está funcionando correctamente en el UDPD 200. Por ejemplo, los datos de referencia 408 pueden incluir diversos datos de prueba que se utilizarán en las comprobaciones (por ejemplo, datos o solicitudes de entrada predeterminados), así como cualquier dato, resultados, valores de sincronización, etc., que sean aceptables o se espere que resulten de diversas comprobaciones para indicar el funcionamiento adecuado del UDPD. Debe entenderse que algunos parámetros y requisitos pueden abarcar intervalos y/o incluir tolerancias que permiten algún nivel de desviación.
[0064] Comprobación de instalación - En algunos aspectos de la presente descripción, se puede ejecutar una comprobación de instalación 412 para determinar si la SCA 304 se instala correctamente en el UDPD 200. Debido a que una SCA instalada incorrectamente compromete cualquier garantía de que la SCA va a funcionar correctamente en el UDPD, puede ser necesaria una instalación exitosa de SCA 304 para determinar que la SCA 304 funciona correctamente en el UDPD. Por lo tanto, en algunos casos, si la SCA 304 no se instaló correctamente en el UDPD 200, entonces se puede determinar que la SCA 304 no funciona correctamente en el UDPD 200 y se puede impedir que la SCA 304 funcione libremente en el UDPD 200. Sin embargo, si la comprobación de la instalación indica que la SCA 304 se instaló correctamente en el UDPD 200, la SCA 304 todavía puede no funcionar necesariamente de manera correcta en el UDPD y se pueden requerir comprobaciones adicionales antes de determinar que la SCA funciona correctamente en el UDPD.
[0065] En algunos casos, las imágenes de los componentes instalados de SCA 304 (también denominados en esta invención «componentes de SCA instalados») se pueden utilizar para determinar si la SCA 304 se instala correctamente en el UDPD 200. Por ejemplo, un paquete de instalación para la SCA 304 puede incluir una pluralidad de archivos que se cargan en el UDPD 200 además de un archivo ejecutable primario. La comprobación de instalación 412 puede ver cada uno de estos archivos como un componente de SCA instalado y comparar imágenes de cada componente de SCA instalado con los datos de referencia 408 correspondientes a los datos que se esperan para una instalación adecuada (también denominados en esta invención «datos de instalación de referencia» para distinguirlos de otros datos que pueden estar dentro de los datos de referencia 408). Por ejemplo, en algunos casos, una imagen de un componente de SCA instalado puede incluir datos sobre el componente de SCA instalado, tales como nombre de archivo, número de versión, detección de errores y/o datos de corrección de errores (por ejemplo, valor de comprobación de redundancia cíclica (CRC), código de corrección de errores (ECC), suma de comprobación, etc.), etc. La comprobación de instalación 412 compara los datos de cada componente de SCA instalado con los datos esperados asociados con una instalación adecuada (por ejemplo, según lo definido por los datos de instalación de referencia) para determinar si se ha producido una instalación adecuada. Por ejemplo, un nombre de archivo, valor de CRC y/o número de versión asociado con el componente de SCA instalado se puede comparar con el nombre de archivo esperado correspondiente, valor de CRC y/o número de versión en los datos de instalación de referencia.
[0066] Si, por ejemplo, la imagen de uno o más componentes de SCA instalados no coincide con los datos de instalación de referencia, entonces la comprobación de instalación 412 indica que la SCA 304 no se instaló correctamente en el UDPD 200, lo que indica que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200. En algunos casos, se puede informar de un fallo en la instalación adecuada (por ejemplo, registrada y/o comunicada al usuario de UDPD 200). En algunos casos, se puede enviar un informe del fallo a un dispositivo remoto, por ejemplo, a través de Internet.
[0067] Si, por ejemplo, la imagen de cada componente de SCA instalado coincide con los datos de instalación de referencia, entonces la comprobación de instalación indica que la SCA 304 instalada correctamente en el UDPD 200 y una o más comprobaciones adicionales (por ejemplo, comprobación funcional, comprobación de integridad del servidor, comprobación de coexistencia, comprobación de interoperabilidad, comprobación de gestión de energía, etc.) se pueden ejecutar si es necesario. El término «coincidencia» se utiliza ampliamente en esta invención para indicar que se encuentra dentro de parámetros y requisitos predeterminados (por ejemplo, según lo definido por los datos de referencia). Por lo tanto, una coincidencia resultante para la comprobación de la instalación representa un cierto nivel de confianza de que la SCA 304 se instaló correctamente en el UDPD 200. En algunos casos, los parámetros y requisitos predeterminados requieren una coincidencia «exacta». Sin embargo, debe apreciarse que, en algunos casos, los parámetros y requisitos pueden abarcar intervalos y/o tolerancias que permiten cierta desviación de un requisito de «coincidencia exacta». Por consiguiente, la expresión «no coincidencia» se usa ampliamente en esta invención para indicar que no se encuentra dentro de los parámetros y requisitos predeterminados (por ejemplo, según lo definido por los datos de referencia). Por lo tanto, una no coincidencia resultante para la comprobación de instalación
representa un cierto nivel de confianza de que la SCA 304 no se instaló correctamente en el UDPD 200.
[0068] Verificación funcional - En algunos aspectos de la presente descripción, se puede ejecutar una comprobación funcional 414 para determinar si la SCA 304 funciona correctamente en el UDPD 200. Por ejemplo, la comprobación funcional 414 puede comprobar si la SCA 304 realiza cálculos (por ejemplo, cálculos, mediciones, etc.) con precisión en el UDPD 200; si la SCA 304 muestra los datos correctamente en una pantalla de UDPD 200; y/o si la SCA 304 se comunica adecuadamente a través de UDPD con un dispositivo externo; y/o si la SCA 304 realiza estas y/u otras actividades críticas para la seguridad en una cantidad adecuada de tiempo.
[0069] Un retraso en la realización de una actividad puede tener consecuencias perjudiciales y puede indicar un funcionamiento inadecuado de la SCA 304 en el UDPD 200. Por ejemplo, un retraso significativo en proporcionar un cálculo para una medición de glucosa puede ser suficiente para determinar que la SCA 304 no está funcionando adecuadamente en el UDPD 200. Además, debe apreciarse que, en algunos casos, realizar una actividad tal como un cálculo demasiado rápido también puede indicar un funcionamiento inadecuado. La comprobación funcional 414 también puede, por ejemplo, comprobar si los datos para SCA 304 se muestran correctamente en una pantalla de UDPD 200; y/o si la SCA 304 puede comunicarse adecuadamente entre UDPD 200 y un dispositivo externo.
[0070] Si, por ejemplo, se determina que la SCA 304 no funciona correctamente, entonces la comprobación funcional 414 indica que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200. Si, por ejemplo, se determina que la SCA 304 funciona correctamente, entonces también se pueden iniciar otras comprobaciones según sea necesario (o si no se requieren otras comprobaciones para ejecutarse, entonces se puede permitir que la SCA funcione libremente).
[0071] Comprobación del entorno - En algunos aspectos de la presente descripción, se puede ejecutar una comprobación del entorno 416 para determinar un entorno actual de UDPD 200. Además, en algunos casos, la comprobación del entorno 416 puede ejecutarse para determinar si el entorno actual ha cambiado desde la última determinación de que la SCA 304 está funcionando correctamente en el UDPD 200. Los cambios en el entorno del UDPD pueden afectar el funcionamiento adecuado de la SCA 304 en el UDPD 200. Por lo tanto, en algunos casos, la comprobación del entorno puede incluir identificar el entorno actual y compararlo con un «entorno actual» previamente almacenado que se asoció con la última determinación de que la SCA 304 está funcionando correctamente en el UDPD 200.
[0072] Por ejemplo, el arnés de prueba 310 puede iniciar la comprobación del entorno 416 para obtener un entorno actual de UDPD 200 cuando se determina que la SCA está funcionando correctamente y se le permite funcionar libremente en el UDPD 200. De esta manera, el arnés de prueba 310 puede iniciar posteriormente la comprobación del entorno 416 para determinar si el «entorno actual» de UDPD 200 ha cambiado desde esta determinación de que la SCA está funcionando correctamente. Debe apreciarse que el entorno actual puede identificarse y registrarse en varios momentos asociados con la realización de las comprobaciones, por ejemplo, antes de iniciar la comprobación, mientras se inicia la comprobación o después de que la comprobación haya proporcionado un resultado.
[0073] Si se determina que el entorno de UDPD 200 cambia, entonces la SCA 304 puede potencialmente funcionar incorrectamente en el UDPD 200. El arnés de prueba 310 puede entonces, por ejemplo, iniciar una comprobación funcional (o cualquier comprobación adicional si se implementa también) para ejecutarse. En algunos casos, se puede permitir que la SCA 304 continúe funcionando libremente mientras se realiza la comprobación funcional. En algunos casos, se puede evitar que la SCA 304 funcione libremente mientras se realiza la comprobación funcional.
[0074] Si se determina que el entorno de UDPD 200 no cambia, entonces se logra un cierto nivel de confianza en que la SCA 304 sigue funcionando correctamente en el UDPD 200. Se puede permitir, por ejemplo, que la SCA 304 continúe funcionando libremente si el entorno de UDPD 200 no cambia. Debe apreciarse que se pueden iniciar una o más comprobaciones si se desea, a pesar de la determinación de que el entorno no ha cambiado.
[0075] La comprobación del entorno puede iniciarse en varios momentos según se desee, por ejemplo, en tiempos y/o intervalos de tiempo predeterminados (mientras la SCA está funcionando y/o no está funcionando); tras las ocurrencias de ciertos eventos (por ejemplo, cuando se ejecuta la SCA 304, cuando se cierra la SCA 304, cuando se alimenta el UDPD, etc.). En algunos casos, las comprobaciones adicionales tales como la comprobación funcional 414 pueden iniciarse independientemente de la comprobación del entorno 416 y también pueden iniciarse en varios momentos (por ejemplo, en momentos predeterminados y/o tras las ocurrencias de determinados eventos).
[0076] Comprobación de integridad del servidor - En algunos aspectos de la presente descripción, se puede ejecutar una comprobación de integridad del servidor para determinar si la integridad de la SCA 304 se ha dañado. Una SCA 304 dañada compromete cualquier garantía de que la SCA 304 funcione correctamente en el UDPD 200. En algunos casos, cuando se implementa una comprobación de integridad del servidor, una determinación de que la SCA 304 funciona correctamente en el UDPD 200 requiere al menos una determinación de que la SCA 304 no está
dañada. Si la SCA 304 está dañada, se puede determinar que la SCA 304 no funciona correctamente en el UDPD 200 y se puede evitar que la SCA 304 funcione libremente en el UDPD 200. Si se determina que la SCA 304 no está dañado, entonces se puede determinar que la SCA 304 funciona correctamente y se le permite funcionar libremente, siempre y cuando también se supere satisfactoriamente cualquier otra comprobación requerida realizada o que se vaya a realizar.
[0077] Comprobación de coexistencia - El UDPD 200 normalmente aloja programas adicionales cargados en el dispositivo además de SCA 304. Además, los programas típicamente se pueden agregar y/o eliminar del UDPD 200 en diferentes momentos. Algunos de los programas en el UDPD 200 pueden no funcionar junto con SCA 304, pero pueden compartir recursos con SCA 304, referidos en esta invención como programas «no relacionados». La SCA 304 y uno o más programas no relacionados pueden, por ejemplo, acceder a uno o más áreas persistentes de datos. Por ejemplo, ambos pueden rastrear datos y tiempo, leer y/o escribir datos en el mismo dispositivo de memoria, etc. Además, tanto la SCA 304 como los programas no relacionados pueden acceder a los mismos componentes, por ejemplo, chip inalámbrico, pantalla, componentes de audio, etc.
[0078] Para algunos de los programas no relacionados, la SCA 304 puede no verse afectada o afectada de maneras que no amenacen la naturaleza crítica para la seguridad de SCA 304, cuando coexiste en el UDPD 200 con SCA 304. Sin embargo, algunos programas pueden no ser capaces de coexistir en el UDPD 200 con SCA 304 sin comprometer un aspecto crítico para la seguridad de SCA 304, o su funcionamiento, en UDPD 200. Por ejemplo, un programa no relacionado que se está ejecutando puede impedir o retrasar significativamente el acceso de SCA 304 a una función crítica para la seguridad, tal como mostrar un resultado de prueba, hacer sonar una alarma, acceder a la comunicación inalámbrica, etc. Si estas funciones son características críticas para la seguridad, la coexistencia de los dos programas en UDPD 200 puede plantear problemas críticos para la seguridad que potencialmente impiden que la SCA 304 funcione correctamente en el UDPD 200 y puede evitarse que la SCA 304 funcione libremente.
[0079] En algunos casos, la SCA 304 puede tener acceso prioritario a los recursos en determinadas circunstancias. Por ejemplo, si un tiempo esperado para la recepción de datos de otro dispositivo (por ejemplo, un dispositivo médico tal como un dispositivo de monitoreo de analitos, dispositivo de administración de fármacos, etc.) se excede en una cantidad de tiempo predeterminada, la SCA 304 puede dar acceso prioritario a las salidas de información para que el UDPD 200 active una alarma, por ejemplo. Como parte de este acceso prioritario, se puede iniciar un estado de guardado automático, por ejemplo, para otros módulos que funcionan en el UDPD 200. Además, la SCA 304 puede dar acceso prioritario a los puertos de comunicación en el UDPD 200, por ejemplo, para comunicar la alarma a un tercero tal como padre, amigo, médico, etc. La SCA 304 puede, por ejemplo, tener acceso prioritario a dispositivos de comunicación inalámbrica, memoria, procesadores y/o cualquier otro recurso compartido que pueda priorizarse.
[0080] En algunos aspectos de la presente descripción, se puede ejecutar una comprobación de coexistencia para determinar si la SCA 304 es incompatible con programas no relacionados en el UDPD 200. El término «incompatible» se usa ampliamente en esta invención para indicar que la SCA 304 y otros programas no pueden coexistir en el UDPD 200 sin comprometer los aspectos críticos para la seguridad de SCA 304, o su funcionamiento, en el UDPD 200.
[0081] En algunos casos, cuando se implementa una comprobación de coexistencia, una determinación de que la SCA 304 funciona correctamente en el UDPD 200 requiere al menos una determinación de que la SCA 304 no es incompatible con ningún programa no relacionado. Si la SCA 304 es incompatible con uno o más programas no relacionados, entonces se puede evitar que la SCA 304 funcione libremente en el UDPD 200. Si la SCA 304 no es incompatible con ningún programa no relacionado, entonces se puede determinar que la SCA 304 funciona correctamente y, por lo tanto, se le permite funcionar libremente en el UDPD 200, siempre que también se supere satisfactoriamente cualquier otra comprobación requerida realizada o que se vaya a realizar.
[0082] Comprobación de interoperabilidad - Uno o más programas pueden interactuar con la SCA 304 para proporcionar funcionalidad y capacidades a la SCA 304, denominados en esta invención programas relacionados. En algunos aspectos de la presente descripción, se puede ejecutar una comprobación de interoperabilidad para determinar si la SCA 304 interactúa adecuadamente en el UDPD 200 con programas relacionados. Los problemas de interoperabilidad pueden comprometer cualquier garantía de que la SCA 304 va a funcionar correctamente en el UDPD 200. En algunos casos, una determinación de que la SCA 304 funciona adecuadamente en el UDPD requiere al menos una determinación de que la SCA 304 funciona adecuadamente con programas relacionados. Si la SCA 304 no interactúa adecuadamente con programas relacionados, entonces se puede determinar que la SCA 304 no funciona correctamente y se puede evitar que la SCA 304 funcione libremente en el UDPD 200. Si se determina que la SCA 304 interactúa correctamente, entonces se puede determinar que la SCA 304 funciona correctamente en el UDPD y, por lo tanto, se le permite funcionar libremente, siempre que también se supere satisfactoriamente cualquier otra comprobación requerida realizada o que se vaya a realizar.
[0083] Comprobación de la gestión de energía - Algunos UDPD pueden estar alimentados por batería y no necesariamente conectados a una toma de corriente de CA. Por lo tanto, la vida útil de UDPD 200 es volátil en el sentido de que el UDPD 200 podría quedarse sin energía y apagarse durante el funcionamiento de SCA 304. La
energía de la batería puede depender de varios factores, por ejemplo, el tipo y tamaño de la batería utilizada, el tipo y la cantidad de actividad realizada por UDPD 200, etc. La pérdida de energía inesperada o temprana podría comprometer la naturaleza crítica para la seguridad de una SCA 304.
[0084] En algunos aspectos de la presente descripción, se puede ejecutar una comprobación de gestión de energía para determinar si las capacidades de energía de UDPD 200 son suficientes para ejecutar la SCA 304 de forma segura con un cierto nivel de seguridad de que el UDPD no se apague abruptamente. Por ejemplo, las capacidades de energía pueden determinarse y compararse con una cantidad umbral mínima requerida para funcionar la SCA 304 de forma segura con un riesgo mínimo de un apagado brusco. En algunos casos, la determinación de que la SCA 304 funciona correctamente requiere al menos que el UDPD tenga capacidades de energía suficientes para funcionar de manera segura con un riesgo mínimo de apagado. Si el UDPD 200 tiene suficiente capacidad de energía, entonces se puede determinar que la SCA 304 funciona correctamente en el UDPD 200 y se le permite funcionar libremente en el UDPD 200, siempre y cuando se supere satisfactoriamente cualquier otra comprobación requerida realizada, o requerida para realizarse, también. Si el UDPD 200 no tiene suficiente capacidad de energía, entonces se puede evitar que la SCA 304 funcione libremente.
[0085] En algunas realizaciones, una comprobación puede incluir una o más rutinas de prueba que se iniciarán. La FIG.5 ilustra un diagrama de bloques de una comprobación funcional que comprende una o más rutinas de prueba, según algunos aspectos de la presente descripción. Como se muestra, la comprobación funcional 414 incluye rutinas de prueba de cálculo 530, rutinas de prueba de sincronización 532, rutinas de prueba de visualización 534 y rutinas de prueba de comunicación 536.
[0086] Las rutinas de prueba de cálculo 530 determinan si la SCA 304 está realizando cálculos con precisión en el UDPD 200, por ejemplo, dentro de parámetros y requisitos predeterminados que representan un cierto nivel de confianza de que la SCA 304 está calculando con precisión en el UDPD 200. Los parámetros y requisitos predeterminados pueden definirse, por ejemplo, mediante datos de referencia 408 (también denominados en esta invención «datos de cálculo de referencia» para distinguirlos de otros datos que pueden estar dentro de los datos de referencia 408).
[0087] Los cálculos específicos pueden variarse en función de las características críticas para la seguridad específicas implementadas dentro de SCA 304. Los cálculos pueden incluir, por ejemplo, diversos cálculos, mediciones, extrapolaciones, etc., para una amplia variedad de aplicaciones, tales como aplicaciones médicas y otras SCAs. Por ejemplo, los cálculos para aplicaciones de monitoreo de analitos pueden incluir, de modo no taxativo, cálculo de las mediciones de analitos (por ejemplo, glucosa), cálculo de dosificaciones de medicamentos y/o tiempos de administración (por ejemplo, dosificaciones de insulina a partir de mediciones de glucosa recibidas), ejecución de varios otros algoritmos relacionados con la terapia (por ejemplo, cálculos de tendencias, diversas determinaciones de alerta, etc.) y/u otros cálculos críticos para la seguridad que son aplicables al monitoreo de analitos.
[0088] En algunos casos, la ejecución de rutinas de prueba de cálculo 530 puede iniciar cálculos específicos para ser realizados por la SCA 304 usando datos de entrada predeterminados (por ejemplo, según lo definido por los datos de referencia 408, denominados en esta invención «entrada de cálculo de referencia» para distinguirlo de otros datos que pueden estar dentro de los datos de referencia 408). Por consiguiente, los datos de cálculo de referencia incluyen los resultados esperados o aceptables para estos cálculos utilizando la entrada de cálculo de referencia. El resultado real del cálculo y los datos de cálculo de referencia se pueden comparar para determinar si los cálculos se realizan con precisión en el UDPD 200.
[0089] La entrada de cálculo de referencia puede simular, por ejemplo, datos de entrada críticos para la seguridad proporcionados a la SCA 304 y al UDPD 200 mientras la s Ca 304 funciona libremente. Por ejemplo, cuando funcionan libremente, la SCA 304 y el UDPD 200 pueden configurarse para recibir datos de uno o más dispositivos externos (por ejemplo, mediciones de analitos, tales como mediciones de glucosa, de dispositivos de monitoreo de analitos externos, tales como dispositivos de monitoreo de glucosa) y a continuación realizar varios cálculos sobre los datos recibidos. Las rutinas de prueba de cálculo 530 inician dichos cálculos mediante la SCA 304 y UDPD 200 usando una entrada de cálculo de referencia que simula dichos datos recibidos (por ejemplo, mediciones de analitos desde un dispositivo externo). Los resultados de los cálculos se pueden comparar a continuación con los datos de cálculo de referencia correspondientes para determinar si la SCA 304 se calcula con precisión en el UDPD 200.
[0090] Si, por ejemplo, se determina que la SCA 304 no realiza los cálculos con precisión (por ejemplo, los resultados del cálculo no coinciden con los datos de cálculo de referencia), entonces las rutinas de prueba de cálculo 530 indican que la SCA 304 no está funcionando correctamente en el UDPD 200, lo que indica además que la SCA 304 no está funcionando correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200.
[0091] En algunos casos, una determinación de que la SCA 304 funciona adecuadamente en el UDPD 200 requiere al menos una determinación de que la SCA 304 realiza cálculos con precisión (por ejemplo, una coincidencia entre el resultado del cálculo y los datos de cálculo de referencia). Se debe apreciar que, aunque se requiere una
condición para que la SCA funcione correctamente, eso no significa necesariamente que la SCA funcione correctamente si se cumple esa condición, también se pueden requerir otras condiciones para cumplirse. Por ejemplo, en algunos casos, para que la SCA funcione correctamente puede ser necesario que la SCA 304 realice cálculos con precisión (por ejemplo, los resultados del cálculo coinciden con los datos de cálculo de referencia), así como también se requiere que la SCA realice cálculos de manera oportuna. Por lo tanto, la aparición de una condición por sí sola no significa necesariamente que la SCA funcione correctamente. Si, por ejemplo, se determina que la SCA 304 realiza cálculos con precisión (por ejemplo, los resultados del cálculo coinciden con los datos de cálculo de referencia), entonces se pueden iniciar otras comprobaciones y/o rutinas de prueba (o si no se requieren otras comprobaciones y/o rutinas de prueba para ejecutarse, entonces se puede permitir que la SCA funcione libremente).
[0092] Las rutinas de prueba de tiempo 532 determinan si la SCA 304 realiza actividades (por ejemplo, cálculos, comunicaciones, etc.) en el UDPD 200 de manera oportuna, por ejemplo, en tiempos que caen dentro de parámetros y requisitos predeterminados que representan un cierto nivel de confianza de que la SCA 304 está realizando las actividades de manera oportuna en el UDPD 200. Los parámetros y requisitos predeterminados pueden definirse, por ejemplo, mediante datos de referencia 408 (también denominados en esta invención «datos de sincronización de referencia» para distinguirlos de otros datos que pueden estar dentro de los datos de referencia 408). Las actividades pueden incluir cualquier variedad de actividades implementadas por SCA 304, por ejemplo, cálculos críticos para la seguridad tales como se describieron anteriormente, visualización de diversos resultados en una visualización de UDPD 200, comunicaciones a dispositivos externos, ejecución de comprobaciones y rutinas de prueba, cualquier combinación de estos, etc.
[0093] Por ejemplo, las rutinas de prueba de sincronización 532 pueden determinar el tiempo que tarda la SCA 304 en realizar cálculos iniciados por las rutinas de prueba de cálculo 530. En algunos casos, por ejemplo, se pueden registrar marcas de tiempo o registros de eventos particulares o duración de eventos. Por ejemplo, varios tiempos asociados con la ejecución de rutinas de prueba de cálculo 530 pueden registrarse o indicarse, por ejemplo, el tiempo en que la entrada de cálculo de referencia se proporciona a la SCA 304 y el tiempo en que los resultados correspondientes son proporcionados por la SCA 304 (la diferencia de los dos tiempos que representan el tiempo que SCA 304 tardó en realizar el cálculo en UDPD 200). En algunos casos, se tiene en cuenta el tiempo adicional que se tarda en mostrar la información. Se apreciará que también se puede implementar un temporizador o cualquier otro procedimiento adecuado para rastrear el tiempo.
[0094] Los resultados de sincronización se pueden comparar con los datos de sincronización de referencia correspondientes para determinar si la SCA 304 está realizando actividades (por ejemplo, cálculos, comunicaciones, etc.) en el UDPD 200 de manera oportuna. Una vez más, también debe apreciarse que, en algunos casos, el desempeño de una actividad en un período de tiempo demasiado corto puede ser indicativo de que la SCA 304 no se desempeñó de manera oportuna en el UDPD.
[0095] Si, por ejemplo, se determina que la SCA 304 no realiza actividades de manera oportuna (por ejemplo, el tiempo para realizar la actividad no coincide con los datos de sincronización de referencia) en el UDPD 200, entonces las rutinas de prueba de sincronización 532 indican que la SCA 304 no está funcionando correctamente en el UDPD 200, lo que indica además que la SCA 304 no está funcionando correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200.
[0096] En algunos casos, una determinación de que la SCA 304 funciona adecuadamente en el UDPD 200 requiere al menos que la SCA 304 realice actividades de manera oportuna (por ejemplo, una coincidencia entre el tiempo para realizar actividades y los datos de tiempo de referencia). Por ejemplo, si se determina que la SCA 304 realiza actividades de manera oportuna (por ejemplo, el tiempo para realizar la actividad coincide con los datos de sincronización de referencia) en el UDPD 200, entonces se pueden iniciar otras comprobaciones y/o rutinas de prueba (o si no se requieren otras comprobaciones y/o rutinas de prueba para realizarse, entonces se puede permitir que la SCA funcione libremente).
[0097] Las rutinas de prueba de visualización 534 determinan si los datos para SCA 304 se muestran correctamente en el UDPD 200, por ejemplo, dentro de parámetros y requisitos predeterminados que representan un cierto nivel de confianza de que la SCA 304 muestra los datos correctamente en el UDPD 200. Los parámetros y requisitos predeterminados pueden definirse, por ejemplo, mediante datos de referencia 408 (también denominados en esta invención «datos de visualización de referencia» para distinguirlos de otros datos que pueden estar dentro de los datos de referencia 408). En algunos casos, los datos de visualización de referencia corresponden a un resultado esperado de una rutina de prueba de cálculo que se mostrará en la visualización de UDPD 200.
[0098] Las rutinas de prueba de visualización 534 pueden, por ejemplo, iniciar imágenes predeterminadas específicas definidas por los datos de referencia 408 (denominadas en esta invención «entradas de visualización de referencia» para distinguirlas de otros datos que pueden estar dentro de los datos de referencia 408) para mostrarse en una pantalla de UDPD 200. Por consiguiente, los datos de visualización de referencia pueden incluir la imagen de salida esperada correspondiente a las entradas de visualización de referencia. La imagen real mostrada y los datos de visualización de referencia se pueden comparar para determinar si los datos se muestran correctamente en el
UDPD 200 (por ejemplo, para determinar si la imagen real mostrada coincide con los datos de visualización de referencia).
[0099] Debe entenderse que el término imágenes se utiliza ampliamente en esta invención para incluir cualquier forma de datos que se mostrarán en la pantalla (por ejemplo, patrones de píxeles, archivos de imagen (por ejemplo, JPEG, TIFF, GIF, BMP, etc.), texto, números, etc. En algunos casos, se puede usar un patrón de visualización. Además, en algunos casos, los patrones de visualización también se pueden usar para probar diversos diagnósticos de visualización, tales como velocidades de tiempo/exploración, borrosidad, brillo, contraste, etc.
[0100] La imagen real mostrada en el UDPD 200 puede determinarse de cualquiera de una variedad de maneras. En algunos casos, se puede tomar una captura de pantalla. Por ejemplo, las rutinas de prueba de visualización 534 pueden incluir una activación de función de pantalla de impresión para iniciar una captura de pantalla para la imagen mostrada en la visualización de UDPD 200). La imagen real mostrada en UDPD 200 puede entonces compararse con los datos de visualización de referencia para determinar si los datos se muestran correctamente en el UDPD 200. Debe apreciarse que la función de pantalla de impresión no requiere que el UDPD esté conectado a una impresora, sino que ilustra más bien que las rutinas de prueba de visualización 534 pueden «leer» la pantalla de visualización, que normalmente es un dispositivo de solo escritura.
[0101] También debe apreciarse que se pueden implementar varios algoritmos de comparación para comparar la imagen real mostrada en el UDPD 200 con los datos de visualización de referencia. Por ejemplo, en algunos casos, el algoritmo de comparación puede convertir la imagen real mostrada en un valor o expresión representativo. En tal caso, por ejemplo, los datos de visualización de referencia pueden ser un valor o expresión representativo esperado de las entradas de visualización de referencia. Por lo tanto, los dos valores o expresión se pueden comparar para determinar si ocurre una coincidencia o no coincidencia. En algunos casos, el algoritmo de comparación puede comparar las imágenes mismas, en cuyo caso los datos de visualización de referencia serían equivalentes a las entradas de visualización de referencia. Debe apreciarse que se puede implementar cualquier variedad de procedimientos de comparación.
[0102] En algunos casos, la imagen real mostrada en UDPD 200 puede determinarse al recibir la entrada del usuario que identifica la imagen real mostrada en la visualización de UDPD 200. Se puede solicitar al usuario, por ejemplo, que confirme la precisión de la visualización (por ejemplo, que ingrese el número, texto, símbolo o frase que se muestra; o para proporcionar cualquier otra forma de respuesta de confirmación a la información mostrada en la pantalla de visualización; etc.). En tales casos, por ejemplo, la confirmación del usuario puede funcionar como la imagen real mostrada y, por lo tanto, en comparación con los datos de visualización de referencia que indican lo que se espera que se muestre. De esta manera, se puede determinar si las imágenes se muestran correctamente en el UDPD.
[0103] Por ejemplo, se puede iniciar una solicitud de verificación del usuario para determinar si los datos se muestran con precisión en el UDPD 200. Por ejemplo, una petición de verificación puede transmitirse (visualmente, audiblemente, etc.) al usuario, lo que le pide que ingrese lo que se muestra en la pantalla de visualización del UDPD (por ejemplo, un código alfanumérico, código numérico, símbolos, texto, frases, etc.). La imagen real mostrada en la pantalla de visualización puede determinarse iniciando una imagen (por ejemplo, el código) que se mostrará en la pantalla de visualización de UDPD 200 y recibiendo la entrada del usuario que identifica lo que se muestra. La imagen real mostrada identificada por la entrada del usuario se puede comparar con los datos de visualización de referencia para determinar si se muestra la imagen correcta.
[0104] Además, el nivel de seguridad de que la entrada del usuario identifica con precisión la imagen real mostrada puede variar en función del tipo de petición de verificación implementada. Por ejemplo, se puede lograr un nivel básico de seguridad haciendo que el usuario proporcione una respuesta de sí o no. Por ejemplo, la petición de verificación puede preguntar si el usuario ve una imagen específica (por ejemplo, «¿Ves un coche en la pantalla de visualización?»). Debe apreciarse que la imagen puede ser cualquier variedad de imágenes, símbolos, palabras, frases, números, etc. El usuario puede entonces responder a la petición ingresando la respuesta apropiada en el UDPD (por ejemplo, escribiendo «sí» o «no», tocando el botón «sí» o «no» en la pantalla táctil, etc.). La entrada del usuario que identifica si la imagen es un automóvil o no se recibe y se compara con los datos de visualización de referencia (por ejemplo, una respuesta de «sí» que indica que la imagen se muestra correctamente en la pantalla de visualización; una respuesta de «no» que indica que la imagen no se muestra correctamente en la pantalla de visualización).
[0105] Otro nivel de garantía se puede lograr mediante el uso de una petición de verificación que hace que el usuario responda a una pregunta de opción múltiple. Cuanto mayor sea el número de opciones de respuesta disponibles, menor será la probabilidad de que el usuario adivine y proporcione un falso positivo. Por ejemplo, la petición de verificación puede preguntar: «¿Ves un coche, un árbol o el número 12 en la pantalla de visualización?» A continuación, el usuario puede responder a la petición de verificación seleccionando o introduciendo la respuesta adecuada. La entrada del usuario que identifica la imagen real mostrada en la pantalla de visualización se compara con los datos de visualización de referencia que identifican lo que se esperaba que se mostrara en la pantalla de
visualización.
[0106] Otro nivel de garantía se puede lograr mediante el uso de una petición de verificación que hace que el usuario responda a una pregunta o comando abierto. Por ejemplo, la petición de verificación puede preguntar: «¿Qué ves?»; «Introduzca el texto, código, símbolo, etc., que ve en la pantalla de visualización; etc. El usuario puede entonces responder a la petición de verificación introduciendo la respuesta apropiada (por ejemplo, escribiendo lo que ve; introduciendo el código, símbolo, etc., mostrado; etc.). La entrada del usuario que identifica la imagen real mostrada en la pantalla de visualización se compara con los datos de visualización de referencia que identifican lo que se esperaba que se mostrara en la pantalla de visualización.
[0107] Si, por ejemplo, se determina que el UDPD 200 no muestra entradas de visualización de referencia correctamente (por ejemplo, la imagen real mostrada no coincide con los datos de visualización de referencia), entonces las rutinas de prueba de visualización 534 indican que la SCA 304 no está funcionando correctamente en el UDPD 200, lo que indica además que la SCA 304 no está funcionando correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200.
[0108] En algunos casos, una determinación de que la SCA 304 funciona correctamente en el UDPD 200 requiere al menos que el UDPD 200 muestre entradas de visualización de referencia correctamente. Por ejemplo, si se determina que el UDPD 200 muestra entradas de visualización de referencia correctamente (por ejemplo, la imagen real mostrada coincide con los datos de visualización de referencia), entonces se pueden ejecutar otras comprobaciones y/o rutinas de prueba según se desee (o si no se requieren otras comprobaciones y/o rutinas de prueba para ejecutarse, entonces se puede permitir que la SCA funcione libremente).
[0109] En algunas realizaciones, la SCA 304 y el UDPD 200 pueden configurarse para comunicarse con un dispositivo externo a través de un enlace de comunicación (por ejemplo, un enlace de comunicación por cable o inalámbrico). Las rutinas de prueba de comunicación 536 pueden iniciarse para determinar si la SCA 304 se comunica adecuadamente en el UDPD 200 con el dispositivo externo. Por ejemplo, las rutinas de prueba de comunicación 536 pueden determinar si la SCA 304 puede establecer adecuadamente un enlace de comunicación entre el UDPD 200 y el dispositivo externo, si la SCA 304 puede comunicarse (por ejemplo, enviar y/o recibir datos) con precisión, etc. También se puede requerir que las comunicaciones se realicen de manera oportuna a través del enlace de comunicación para que la SCA 304 se comunique adecuadamente con un dispositivo externo a través de un enlace de comunicación con UDPD. Las rutinas de prueba de comunicación 536 pueden aplicarse a un ensayo unidireccional y/o bidireccional.
[0110] La SCA 304 puede comunicarse con dispositivos externos para diversos fines dependiendo de la SCA específica implementada. Pasando a la FIG.7, la FIG. 7 ilustra un diagrama de bloques de un UDPD que se comunica con varios dispositivos externos a través de enlaces de comunicación, según algunos aspectos de la presente descripción.
[0111] Como se muestra en la FIG. 7, el sistema 700 comprende un UDPD 200 que se comunica con un dispositivo de monitoreo de analitos 705 a través del enlace de comunicación 715; un dispositivo de procesamiento de datos 706 a través del enlace de comunicación 716 y un dispositivo de administración de medicamentos 707 a través del enlace de comunicación 717. El UDPD 200 incluye el módulo de comunicación 605 que forma enlaces de comunicación 715-717 con los módulos de comunicación 730-732 de los dispositivos externos 705-707, respectivamente. El módulo de comunicación 605 y los módulos de comunicación 730-732 pueden incluir, por ejemplo, transmisores, receptores y/o transceptores apropiados. Debe apreciarse que los enlaces de comunicación 715-717 pueden implementarse con tecnologías cableadas (por ejemplo, USB, Ethernet o cualquier otra tecnología cableada adecuada) o inalámbricas (por ejemplo, Bluetooth, infrarrojo, identificación por radiofrecuencia (RFID) o cualquier otra tecnología inalámbrica adecuada). Si bien el módulo de comunicación 605 está representado por un bloque, debe apreciarse que el módulo de comunicación 605 puede comprender uno o más módulos de comunicación de una o más tecnologías de comunicación. Por ejemplo, el módulo de comunicación 605 puede incluir un módulo Bluetooth para comunicarse con un dispositivo externo a través de Bluetooth y otro módulo infrarrojo para comunicarse con otro dispositivo externo a través de infrarrojos. También debe apreciarse que el UDPD 200 puede configurarse para comunicarse con uno o más de los dispositivos mostrados, o con otro dispositivo externo no mostrado.
[0112] El UDPD 200 incluye además el procesador 203 que ejecuta varios conjuntos de instrucciones para SCA 304 y el arnés de prueba 310, y además controla el funcionamiento del módulo de comunicación 605. En algunas realizaciones, el UDPD 200 es un teléfono móvil, tal como un iPhone® o Blackberry®, con SCA 304 y arnés de prueba 310 instalados en este. Si bien se utiliza un teléfono móvil para describir esta realización particular, debe apreciarse que puede aplicarse cualquier UDPD.
[0113] El dispositivo de monitoreo de analitos 705 puede ser, por ejemplo, un dispositivo de monitoreo de glucosa tal como un medidor de glucosa. En algunos casos, el dispositivo de monitoreo de analitos 705 puede ser un dispositivo de monitoreo continuo de glucosa (CGM) y/o dispositivo de glucosa bajo demanda (GoD). Por ejemplo, un dispositivo de CGM y/o un dispositivo de GoD pueden comprender un sensor implantado que permite que se tomen
datos de medición de glucosa de un paciente y a continuación se transmitan al UDPD 200 a través de una comunicación inalámbrica, tal como Bluetooth, para su uso por SCA 304. Se puede encontrar información adicional para sensores implantados en la solicitud de patente estadounidense titulada «Compact On Body Physiological Monitoring Devices and Methods Thereof» (N.° de expediente del apoderado TS-02-242), que se asigna al cesionario de la presente solicitud, Abbott Diabetes Care Inc.
[0114] El dispositivo de administración de medicamentos 707 puede ser, por ejemplo, una bomba de insulina utilizada para administrar dosificaciones de insulina en función del cálculo de dosificación recibido de SCA 304 en el UDPD 200. El UDPD 200 puede recibir mediciones de glucosa del dispositivo 709, por ejemplo, y calcular las dosificaciones de insulina recomendadas en función de las mediciones de glucosa y a continuación transmitir las dosificaciones recomendadas al dispositivo de administración de medicamentos 707.
[0115] El dispositivo de procesamiento de datos 706 puede ser, por ejemplo, cualquier tipo de dispositivo informático, tal como computadoras personales (por ejemplo, de escritorio, portátil, etc.), teléfonos móviles (por ejemplo, iPhone®, Blackberry®, etc.), asistentes digitales personales (PDA), etc. El UDPD 200 puede comunicarse con el dispositivo de procesamiento de datos 706 para diversos propósitos, por ejemplo, transmitir y/o recibir resultados de pruebas, registrar datos, usar las capacidades de red del dispositivo de procesamiento de datos 706, etc.
[0116] Si, por ejemplo, se determina que la SCA 304 no se comunica adecuadamente en el UDPD 200 con el dispositivo externo, entonces las rutinas de prueba de comunicación 536 indican que la SCA 304 no funciona correctamente en el UDPD 200, lo que indica además que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200.
[0117] En algunos casos, una determinación de que la SCA 304 funciona correctamente en el UDPD 200 requiere que la SCA 304 se comunique adecuadamente en el UDPD 200 con el dispositivo externo. Por ejemplo, si se determina que la SCA 304 se comunica adecuadamente en el UDPD 200 con el dispositivo externo, entonces se pueden iniciar otras comprobaciones y/o rutinas de prueba según sea necesario (o si no se requieren otras comprobaciones para ejecutarse, entonces se puede permitir que la SCA funcione libremente).
[0118] En algunas realizaciones, las rutinas de prueba pueden incluir una o más subrutinas que se iniciarán. Las expresiones «subrutinas» y «rutinas de prueba» se utilizan en esta invención para distinguir simplemente la jerarquía entre los dos con el fin de facilitar la comprensión de los conceptos presentados en esta invención. La FIG.
6 ilustra un diagrama de bloques de una rutina de prueba de comunicación que comprende una o más subrutinas, según algunos aspectos de la presente descripción. Como se muestra, las rutinas de prueba de comunicación 536 incluyen subrutinas de configuración de comunicación 638 y subrutinas de verificación de comunicación 640.
[0119] Las subrutinas de configuración 638 se inician para determinar si la SCA 304 puede establecer adecuadamente un enlace de comunicación entre el UDPD 200 y un dispositivo externo. La ejecución de subrutinas de configuración 538 puede iniciar que la SCA 304 establezca un enlace de comunicación entre el UDPD 200 y un dispositivo externo. Por ejemplo, la SCA 304 puede intentar establecer un enlace de comunicación entre el UDPD 200 y un dispositivo de monitoreo de analitos y/o dispositivo de administración de medicamentos. Por ejemplo, la SCA en el UDPD puede comunicarse con una bomba de insulina para proporcionar datos de dosificación, por ejemplo. Debe apreciarse que se puede implementar cualquier variedad de procedimientos para determinar si el enlace de comunicación se establece adecuadamente, por ejemplo, usando un procedimiento de apretón de manos, detectando una señal de baliza desde el dispositivo externo, etc.).
[0120] Si, por ejemplo, se determina que la SCA 304 puede no establecer adecuadamente un enlace de comunicación entre el UDPD 200 y un dispositivo externo, entonces las subrutinas de configuración de comunicación 638 indican que la SCA 304 no se comunica adecuadamente entre el UDPD 200 y el dispositivo externo, lo que indica que la SCA 304 no funciona correctamente en el UDPD 200, lo que además indica que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200.
[0121] En algunos casos, una determinación de que la SCA 304 se comunica adecuadamente en el UDPD 200 requiere una determinación de que la SCA 304 puede establecer adecuadamente un enlace de comunicación entre el UDPD 200 y el dispositivo externo. Por ejemplo, si se determina que la SCA 304 puede establecer adecuadamente un enlace de comunicación entre el UDPD 200 y un dispositivo externo, entonces se pueden iniciar otras comprobaciones y/o rutinas de prueba y/o subrutinas según sea necesario (o si no se requieren otras comprobaciones y/o rutinas de prueba y/o subrutinas para ejecutarse, entonces se puede permitir que la SCA funcione libremente).
[0122] Las subrutinas de verificación 640 se ejecutan para determinar si la SCA 304 se comunica (por ejemplo, envía y/o recibe datos) con precisión a través del enlace de comunicación entre el UDPD 200 y el dispositivo externo, por ejemplo, dentro de parámetros y requisitos predeterminados que representan un cierto nivel de confianza de que la SCA 304 se comunica con precisión entre el UDPD 200 y el dispositivo externo. Los parámetros y requisitos predeterminados pueden definirse mediante datos de referencia 408 (también denominados en esta invención «datos de comunicación de referencia» para distinguirlos de otros datos que pueden estar dentro de los datos de referencia
408).
[0123] En algunos casos, la ejecución de subrutinas de verificación 640 puede iniciar comunicaciones específicas que se realizarán entre el UDPD 200 y el dispositivo externo usando datos de referencia proporcionados por las subrutinas de verificación (denominadas en esta invención «entradas de comunicación de referencia» para distinguirlo de otros datos que pueden estar dentro de los datos de referencia 408). Las entradas de comunicación de referencia pueden ser cualquier variedad de datos, por ejemplo, una señal de prueba, una solicitud de datos, etc. En algunos casos, la ejecución de subrutinas de verificación 640 puede iniciar que la SCA 304 envíe datos al dispositivo externo para que se «reenvíen». Los datos reenviados recibidos pueden entonces compararse con los datos enviados para determinar si los datos fueron enviados y devueltos sin ningún dato comprometido o dañado. Por ejemplo, si la SCA 304 es una aplicación de monitoreo de glucosa que está diseñada para comunicarse de forma inalámbrica con una bomba de insulina, la ejecución de las subrutinas de verificación 640 puede iniciar que los datos se envíen a la bomba de insulina para que se reenvíen. Los datos reenviados recibidos se pueden comparar entonces con los datos transmitidos. Como otro ejemplo, en algunos casos, la ejecución de subrutinas de verificación 640 puede iniciar que la SCA 304 solicite datos del dispositivo externo.
Por ejemplo, si la SCA 304 es una aplicación de monitoreo de glucosa que está diseñada para comunicarse a través de Bluetooth con un dispositivo de monitoreo continuo de glucosa, entonces la ejecución de las subrutinas de verificación 640 puede iniciar que la SCA 304 solicite datos del dispositivo de monitoreo continuo de glucosa a través del enlace Bluetooth.
[0124] Por consiguiente, los datos de comunicación de referencia pueden incluir resultados esperados o aceptables para las comunicaciones iniciadas usando las entradas de comunicación de referencia (por ejemplo, señal de prueba, solicitud de datos, etc.). Los datos de comunicación de referencia pueden incluir, por ejemplo, la señal de prueba esperada (por ejemplo, señal «reflejada» esperada), señales de confirmación esperadas en respuesta a señales de prueba transmitidas; datos esperados en respuesta a las solicitudes de datos; valores esperados; tipo esperado de datos (por ejemplo, texto, números, archivo de imagen/película, etc.); protocolo de comunicación esperado utilizado, cualquier combinación de los mismos, etc.
[0125] Los resultados reales de las comunicaciones (por ejemplo, la señal de prueba recibida, la respuesta a la señal de prueba, la señal de confirmación recibida, los datos recibidos en respuesta a una solicitud de datos, el valor esperado, el tipo de datos recibidos, el protocolo de comunicación utilizado, cualquier combinación de estos, etc.) se comparan con los datos de comunicación de referencia para determinar si coinciden o no coinciden. Las subrutinas de verificación 640 pueden determinar entonces si la SCA 304 se comunica con precisión a través del enlace de comunicación entre el UDPD 200 y el dispositivo externo
[0126] Si, por ejemplo, se determina que la SCA 304 no se comunica con precisión a través del enlace de comunicación entre el UDPD 200 y el dispositivo externo, entonces las subrutinas de verificación 640 indican que la SCA 304 no se comunica adecuadamente entre el UDPD 200 y el dispositivo externo, lo que indica que la SCA 304 no funciona correctamente en el UDPD 200, lo que además indica que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200.
[0127] En algunos casos, una determinación de que la SCA 304 se comunica adecuadamente en el UDPD 200 requiere una determinación de que la SCA 304 se comunica con precisión a través del enlace de comunicación entre el UDPD 200 y el dispositivo externo. Por ejemplo, si se determina que la SCA 304 se comunica con precisión a través del enlace de comunicación entre el UDPD 200 y el dispositivo externo, entonces se pueden iniciar otras comprobaciones y/o rutinas de prueba y/o subrutinas según sea necesario (o si no se requieren otras comprobaciones y/o rutinas de prueba y/o subrutinas para ejecutarse, entonces se puede permitir que la SCA funcione libremente).
[0128] Las rutinas de prueba de sincronización 532 se pueden ejecutar para determinar si la SCA 304 realiza comunicaciones en el UDPD 200 con un dispositivo externo de manera oportuna, por ejemplo, en tiempos que caen dentro de «datos de sincronización de referencia» que representan un cierto nivel de confianza de que la SCA 304 se está comunicando de manera oportuna en el UDPD 200 con un dispositivo externo.
[0129] Por ejemplo, las rutinas de prueba de sincronización 532 pueden determinar el tiempo que tarda la SCA 304 en establecer adecuadamente un enlace de comunicación entre el UDPD 200 y un dispositivo externo iniciado por las subrutinas de configuración 638, y/o para realizar comunicaciones iniciadas por las subrutinas de verificación 640. Nuevamente, varios tiempos asociados con las rutinas de prueba de comunicación 536 pueden registrarse o indicarse para determinar si la SCA 304 está realizando comunicaciones de manera oportuna. En algunos casos, la información de sincronización puede incluirse con las entradas de comunicación de referencia (por ejemplo, con la señal de prueba, solicitud de datos, etc.) enviadas al dispositivo externo y/o información de sincronización proporcionada en los datos enviados por el dispositivo externo. De esta manera, se puede determinar el momento de cada comunicación unidireccional. Además, debe apreciarse que las rutinas de prueba de comunicación pueden incluir una subrutina de sincronización que cumple las mismas funciones que las rutinas de prueba de sincronización 532 con respecto a los tiempos de comunicación.
[0130] Si, por ejemplo, se determina que la SCA 304 no realiza la comunicación (y/o no establece un enlace de comunicación) de manera oportuna (por ejemplo, el tiempo no coincide con los datos de sincronización de referencia) en el UDPD 200, entonces las rutinas de prueba de sincronización 532 indican que la SCA 304 no se comunica adecuadamente en el UDPD 200, lo que indica que la SCA 304 no funciona correctamente en el UDPD 200, lo que indica además que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200.
[0131] En algunos casos, una determinación de que la SCA 304 se comunica adecuadamente en el UDPD 200 requiere que la SCA 304 realice la comunicación y/o establezca un enlace de comunicación de manera oportuna (por ejemplo, los tiempos coinciden con los datos de sincronización de referencia). Por ejemplo, si se determina que la SCA 304 realiza la comunicación y/o establece un enlace de comunicación de manera oportuna en el UDPD 200, entonces se pueden iniciar otras comprobaciones y/o rutinas de prueba si es necesario (o si no se requieren otras comprobaciones y/o rutinas de prueba para ejecutarse, entonces se puede permitir que la SCA funcione libremente).
[0132] En algunos aspectos de la presente descripción, se puede implementar un módulo de hardware de bucle de retorno para realizar diversas pruebas de bucle de retorno en el UDPD. Las pruebas de bucle de retorno pueden determinar, por ejemplo, si otros componentes tales como puertos de comunicación en el UDPD están funcionando correctamente. Por ejemplo, el módulo de bucle de retorno puede ser un dispositivo de hardware físico que se acopla a un puerto de comunicación en el UDPD y recibe una comunicación de prueba del UDPD y devuelve la señal de prueba. Debe apreciarse que el puerto de comunicación se utiliza ampliamente en esta invención para abarcar cualquier tipo de receptáculo o enchufe de comunicación usando cualquier tipo de tecnología de comunicación, por ejemplo, cualquiera de la familia USB, incluyendo Mini-USB y Micro-USB; Firewire; Ethernet; etc.
[0133] Por ejemplo, el arnés de prueba puede comprender una rutina de prueba que se puede ejecutar para enviar una señal de prueba a un puerto de comunicación del UDPD que tiene unido el módulo de bucle de retorno. El módulo de bucle de retorno recibe la señal de prueba y la «reenvía» a través del mismo puerto de comunicación. En algunos casos, el módulo de bucle de retorno puede acoplarse a más de un puerto de comunicación y recibe la señal de prueba en un primer puerto de comunicación y la envía de vuelta a través de uno o más puertos. El módulo de bucle de retorno puede incluir, por ejemplo, interruptores para enrutar la señal de prueba en consecuencia. La señal con eco recibida puede entonces compararse con la señal de prueba original para determinar si el hardware de comunicación está funcionando correctamente en el UDPD. En algunos casos, la sincronización de la señal de prueba también se puede probar para ver si la señal de prueba se transmite y devuelve en el marco de tiempo esperado. Debe apreciarse que, en algunos casos, la rutina de prueba para dichas pruebas de bucle de retorno puede implementarse como parte de la rutina de prueba de comunicación y/o sincronización. También debe apreciarse que, en algunos casos, el módulo de bucle de retorno puede comprender hardware y/o software implementado dentro del UDPD.
[0134] La FIG. 8 ilustra un diagrama de flujo para una comprobación de instalación, según algunos aspectos de la presente descripción. Debe entenderse que los detalles descritos anteriormente para las comprobaciones de instalación pueden ser aplicables a la FIG. 8. Tal como se muestra en la FIG. 8, en el bloque 805 de comprobación de instalación 800, se identifica una imagen de un componente de SCA instalado (por ejemplo, uno de una pluralidad de archivos para SCA 304 instalados en el UDPD 200). La imagen de un componente de SCA instalado puede incluir, por ejemplo, datos sobre el componente de SCA instalado, tal como nombre de archivo, número de versión, un valor de redundancia cíclica (CRC), etc.
[0135] En el bloque 810, la imagen del componente de SCA instalado se compara con los datos de instalación de referencia correspondientes a los datos que se esperan para una instalación adecuada. Por ejemplo, un nombre de archivo, valor de CRC y/o número de versión asociado con el componente de SCA instalado se puede comparar con el nombre de archivo esperado correspondiente, valor de CRC y/o número de versión en los datos de instalación de referencia.
[0136] Con base en los resultados de la comparación, se determina si el componente de SCA instalado se instaló correctamente o no, como lo representa el bloque 815. Por ejemplo, se puede determinar si la imagen de cada componente de SCA instalado coincide o no con los datos de instalación de referencia.
[0137] Si, por ejemplo, la imagen del componente de SCA instalado no coincide con los datos de instalación de referencia, entonces se determina que la SCA 304 no se instaló correctamente en el UDPD 200, tal como se representa en el bloque 820. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200. Una vez más, en algunos casos, esto puede comprender desactivar la SCA para que no pueda ejecutarse en el UDPD. En algunos casos, esto puede comprender permitir que la SCA funcione de modo que el usuario aún pueda usar características críticas de no seguridad de la SCA pero no pueda usar las características críticas para la seguridad. En algunos casos, se informa del fallo de instalación adecuada (por ejemplo, se registra y/o se comunica al usuario del UDPD, etc.). En algunos casos, se puede enviar un informe del fallo a un dispositivo remoto, por ejemplo, a través de Internet.
[0138] Si, por ejemplo, la imagen del componente de SCA instalado coincide con los datos de instalación de referencia, se determina que el componente de SCA instalado se instaló correctamente en el UDPD 200 y se determina si hay imágenes adicionales de componentes de SCA instalados que requieren comprobación, como se representa en el bloque 830.
[0139] Si hay imágenes adicionales de componentes de SCA instalados que requieren comprobación, se identifica el siguiente componente de SCA instalado y se repite el procedimiento para el siguiente componente de SCA instalado, representado por la flecha que regresa al bloque 810. Este procedimiento se repite hasta que se hayan identificado y determinado todos los componentes de SCA instalados que deben comprobarse si están instalados correctamente.
[0140] Cuando no quedan componentes de SCA instalados adicionales y se determina que todos los componentes de SCA instalados están instalados correctamente, las comprobaciones de instalación 412 indican que la SCA 304 se instaló correctamente en el UDPD 200, tal como se representa en el bloque 840. En algunos casos, se informa sobre la instalación adecuada de SCA 304 (por ejemplo, registrada y/o comunicada al usuario de UDPD 200, etc.). En algunos casos, se puede enviar un informe de la instalación adecuada a un dispositivo remoto, por ejemplo, a través de Internet.
[0141] La FIG.9 ilustra un diagrama de flujo para una comprobación funcional, según algunos aspectos de la presente descripción. Debe entenderse que los detalles descritos anteriormente para la comprobación funcional también pueden ser aplicables a la FIG. 9. Como se muestra en la FIG. 9, en el bloque 905 de la comprobación funcional 900, se ejecutan una o más rutinas de prueba de cálculo para determinar si la SCA 304 está realizando cálculos con precisión en el UDPD 200. Por ejemplo, la entrada de cálculo de referencia se proporciona a la SCA 304 y los cálculos críticos para la seguridad específicos son iniciados por la SCA 304 en el UDPD 200 usando la entrada de cálculo de referencia. Los resultados de los cálculos se comparan con los datos de cálculo de referencia para determinar si los resultados caen dentro de parámetros y requisitos predeterminados definidos por los datos de cálculo de referencia.
[0142] Nuevamente, los cálculos específicos pueden variar en función de las características críticas para la seguridad específicas implementadas dentro de SCA 304. Los cálculos pueden incluir, por ejemplo, diversos cálculos, mediciones, extrapolaciones, etc., para una amplia variedad de aplicaciones, tales como aplicaciones médicas y otras SCAs. Por ejemplo, los cálculos para aplicaciones de monitoreo de analitos pueden incluir, de modo no taxativo, calcular mediciones de analitos (por ejemplo, glucosa), calcular dosificaciones de medicamentos y/o tiempos de administración (por ejemplo, dosificaciones de insulina a partir de mediciones de glucosa recibidas), ejecutar varios otros algoritmos relacionados con la terapia (por ejemplo, cálculos de tendencias, diversas determinaciones de alerta, etc.) y/u otros cálculos críticos para la seguridad que sean aplicables a la SCA específica implementada.
[0143] En el bloque 910, se determina si los resultados de los cálculos coinciden o no coinciden con los datos de cálculo de referencia. Si los resultados no entran dentro de los datos de cálculo de referencia, entonces se determina que la SCA 304 no realiza los cálculos con precisión. Esto indica que la SCA 304 no funciona correctamente en el UDPD 200 y, por lo tanto, no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200, tal como se representa por el bloque 920. Si los resultados caen dentro de los datos de cálculo de referencia, entonces la SCA 304 realiza los cálculos con precisión en el UDPD 200 y se ejecutan una o más rutinas de prueba de sincronización, como se representa por el bloque 925.
[0144] En el bloque 925, los tiempos que se tarda en realizar diversas actividades (por ejemplo, cálculos del bloque 905) en el UDPD 200 se determinan y comparan con los datos de sincronización de referencia. Por ejemplo, las rutinas de prueba de sincronización 532 pueden determinar el tiempo que tarda la SCA 304 en realizar cálculos iniciados por las rutinas de prueba de cálculo 530. En algunos casos, por ejemplo, se pueden registrar marcas de tiempo o registros de eventos particulares o duración de eventos. Por ejemplo, varios tiempos asociados con la ejecución de rutinas de prueba de cálculo 530 pueden registrarse o indicarse, por ejemplo, el tiempo en que la entrada de cálculo de referencia se proporciona a la SCA 304 y el tiempo en que los resultados correspondientes son proporcionados por la SCA 304 (la diferencia de los dos tiempos que representan el tiempo que SCA 304 tardó en realizar el cálculo en UDPD 200). En algunos casos, se realizan nuevas actividades y los tiempos de inicio y finalización se registran de manera que se determina la duración de la actividad. Se apreciará que también se puede implementar un temporizador o cualquier otro procedimiento adecuado para rastrear el tiempo.
[0145] En el bloque 930 se determina si los tiempos para realizar las actividades (por ejemplo, cálculos del bloque 905) están dentro de los datos de sincronización de referencia. Si, por ejemplo, los tiempos no caen dentro de los datos de sincronización de referencia, entonces la SCA 304 no realiza los cálculos de manera oportuna en el UDPD 200, lo que indica que la SCA 304 no está funcionando adecuadamente en el UDPD 200 y, por lo tanto, no funciona adecuadamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200, tal como se representa por el bloque 920. Si, por ejemplo, los tiempos para realizar las actividades (por ejemplo, cálculos del bloque 905) caen dentro de los datos de sincronización de referencia, entonces la SCA 304 realiza los cálculos de manera oportuna en el UDPD 200 y se pueden ejecutar una o más rutinas de prueba de visualización,
como se representa en el bloque 935.
[0146] En el bloque 935, se inicia la visualización de imágenes predeterminadas específicas definidas por entradas de visualización de referencia en la visualización de UDPD 200. Se identifica la imagen real mostrada, representada por el bloque 940. Por ejemplo, se puede iniciar una captura de pantalla para identificar la imagen real mostrada. Cualquier forma de datos se puede mostrar en la pantalla de visualización según se desee (por ejemplo, patrones de píxeles, archivos de imagen (jpeg, etc.), texto, números, etc.). En algunos casos, las entradas de visualización de referencia corresponden a un resultado esperado de un cálculo realizado en el bloque 905 que se mostrará en la pantalla de visualización. En algunos casos, se puede usar un patrón de visualización. La imagen real mostrada se compara entonces con los datos de visualización de referencia para determinar si las imágenes reales mostradas en el UDPD 200 coinciden o no coinciden con los datos de visualización de referencia, tal como se representa en el bloque 950.
[0147] En el bloque opcional 945, también se requiere verificación o interacción del usuario. Se puede solicitar al usuario, por ejemplo, que confirme que el UDPD muestra los datos correctamente. Por ejemplo, se puede solicitar al usuario que introduzca el número, texto o frase que se muestra; o para proporcionar cualquier otra forma de respuesta de confirmación a la imagen mostrada en la pantalla de visualización; etc. En función de si se recibe una confirmación de usuario válida, se determina si las entradas de visualización de referencia se muestran correctamente en el UDPD 200.
[0148] En el bloque 950, se determina si la imagen real mostrada en el UDPD 200 se muestra correctamente (por ejemplo, dentro de los parámetros y requisitos predeterminados definidos por los datos de visualización de referencia). Por ejemplo, los datos de visualización de referencia pueden incluir datos que representan la imagen esperada o correcta de la captura de pantalla. La imagen real mostrada se compara con los datos de visualización de referencia para determinar si la imagen real mostrada coincide o no con los datos de visualización de referencia. Además, los datos de visualización de referencia pueden incluir la confirmación de usuario esperada o válida que se va a recibir para la confirmación del usuario de que el UDPD muestra los datos correctamente.
[0149] Si, por ejemplo, la imagen real mostrada (por ejemplo, determinada ya sea a partir de la captura de pantalla o de la confirmación del usuario) no coincide con los datos de visualización de referencia, entonces la SCA 304 no funciona correctamente en el UDPD 200, lo que indica que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se impide que la SCA funcione libremente en el UDPD, como se representa por el bloque 920. Si, por ejemplo, la imagen real mostrada (y la confirmación del usuario) coincide con los datos de visualización de referencia, entonces la SCA 304 está funcionando correctamente en el UDPD 200, tal como se representa en el bloque 955.
[0150] La FIG. 10 ilustra un diagrama de flujo para una comprobación funcional, según algunos aspectos de la presente descripción. La realización mostrada en la FIG. 10 es similar a la comprobación funcional descrita en la FIG.
9, excepto que la realización mostrada en la FIG. 10 incluye rutinas de prueba de comunicación. En aras de la claridad y la brevedad, la descripción duplicada en la FIG. 9 se ha condensado con gran detalle para la FIG. 10, y debe entenderse que la descripción anterior para bloques similares en la FIG. 9 también se aplica a la FIG. 10.
[0151] En el bloque 1005 de la comprobación funcional 1000, se ejecutan una o más rutinas de prueba de cálculo. Las entradas de cálculo de referencia se proporcionan a la SCA 304 y los cálculos críticos para la seguridad específicos son iniciados por la SCA 304 en el UDPD 200 usando la entrada de cálculo de referencia. Los resultados de los cálculos se comparan con los datos de cálculo de referencia para determinar si los resultados caen dentro de parámetros y requisitos predeterminados definidos por los datos de cálculo de referencia.
[0152] En el bloque 1010, se determina si los resultados de los cálculos coinciden o no coinciden con los datos de cálculo de referencia. Si, por ejemplo, los resultados no caen dentro de los datos de cálculo de referencia, entonces se determina que la SCA 304 no realiza los cálculos con precisión, lo que indica que la SCA 304 no está funcionando correctamente en el UDPD 200 y, por lo tanto, no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200, tal como se representa por el bloque 1020. Si, por ejemplo, los resultados caen dentro de los datos de cálculo de referencia, entonces la SCA 304 realiza los cálculos con precisión en el UDPD 200 y se ejecutan una o más rutinas de prueba de sincronización, como se representa en el bloque 1025.
[0153] En el bloque 1025, los tiempos que se tarda en realizar diversas actividades (por ejemplo, cálculos del bloque 1005) en el UDPD 200 se determinan y comparan con los datos de sincronización de referencia. En algunos casos, se determinan los tiempos para realizar los cálculos del bloque 1005. Por ejemplo, los tiempos de inicio y finalización de los cálculos pueden haber sido registrados, por ejemplo, cuando se proporcionó la entrada de cálculo de referencia y cuando se determinó un resultado. En algunos casos, se realizan nuevas actividades y los tiempos de inicio y finalización se registran de manera que se determina la duración de la actividad.
[0154] En el bloque 1030 se determina si los tiempos para realizar las actividades (por ejemplo, cálculos del bloque 1005) están dentro de los datos de sincronización de referencia. Si, por ejemplo, los tiempos no caen dentro
de los datos de sincronización de referencia, entonces la SCA 304 no realiza los cálculos de manera oportuna en el UDPD 200, lo que indica que la SCA 304 no está funcionando adecuadamente en el UDPD 200 y, por lo tanto, no funciona adecuadamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200, tal como se representa por el bloque 1020. Si, por ejemplo, los tiempos para realizar las actividades (por ejemplo, cálculos del bloque 1005) caen dentro de los datos de sincronización de referencia, entonces la SCA 304 realiza los cálculos de manera oportuna en el UDPD 200 y se pueden ejecutar una o más rutinas de prueba de comunicación, como se representa en el bloque 1031.
[0155] En el bloque 1031, se inician rutinas de prueba de comunicación para determinar si la SCA 304 se comunica adecuadamente entre el UDPD 200 y un dispositivo externo. En el bloque 1031, se inician subrutinas de configuración para determinar si la SCA 304 puede establecer adecuadamente un enlace de comunicación entre el UDPD 200 y un dispositivo externo. Las subrutinas de configuración inician la SCA 304 para establecer un enlace de comunicación entre el UDPD 200 y un dispositivo externo.
[0156] En el bloque 1032, se determina si la SCA 304 estableció adecuadamente un enlace de comunicación entre el UDPD 200 y un dispositivo externo. Si, por ejemplo, se determina que la SCA 304 puede no establecer adecuadamente un enlace de comunicación entre el UDPD 200 y un dispositivo externo, entonces las subrutinas de configuración de comunicación indican que la SCA 304 no se comunica adecuadamente entre el UDPD 200 y el dispositivo externo, lo que indica además que la SCA 304 no funciona correctamente en el UDPD 200, lo que indica además que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200, tal como se representa por el bloque 1020.
[0157] Si, por ejemplo, se determina que la SCA 304 puede establecer adecuadamente un enlace de comunicación entre el UDPD 200 y un dispositivo externo, a continuación, se ejecutan subrutinas de verificación, como se representa en el bloque 1033. Las subrutinas de verificación determinan si la SCA 304 se comunica (por ejemplo, envía y/o recibe datos) con precisión a través del enlace de comunicación entre el UDPD 200 y el dispositivo externo, por ejemplo, dentro de parámetros y requisitos predeterminados definidos por los datos de comunicación de referencia.
[0158] Las comunicaciones de SCA específicas se inician entre el UDPD 200 y el dispositivo externo usando entradas de comunicación de referencia (por ejemplo, señal de prueba, señal de eco, solicitud de datos, etc.). Los resultados reales de las comunicaciones (por ejemplo, señal de eco recibida, respuesta a una señal de prueba, la señal de confirmación recibida, los datos recibidos en respuesta a una solicitud de datos, el valor esperado, el tipo de datos recibidos, el protocolo de comunicación utilizado, cualquier combinación de estos, etc.) se comparan con los datos de comunicación de referencia. En algunos casos, los datos de comunicación de referencia pueden ser los mismos que las entradas de comunicación de referencia, por ejemplo, cuando se implementa una señal de eco.
[0159] Se determina si los resultados reales de la comunicación coinciden o no coinciden con los datos de comunicación de referencia, como se representa por el bloque 1034. Si, por ejemplo, se determina que los resultados reales de la comunicación no coinciden con los datos de comunicación de referencia, entonces la SCA 304 no se comunica con precisión a través del enlace de comunicación entre el UDPD 200 y el dispositivo externo, lo que indica que la SCA 304 no se comunica adecuadamente entre el UDPD 200 y el dispositivo externo, lo que indica además que la SCA 304 no funciona correctamente en el UDPD 200, lo que indica además que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200, tal como se representa por el bloque 1020.
[0160] En el bloque 1033, también se pueden ejecutar rutinas de prueba de sincronización opcionales para determinar si la SCA 304 realiza comunicaciones en el UDPD 200 con un dispositivo externo de manera oportuna, por ejemplo, en tiempos que caen dentro de «datos de sincronización de referencia» que representan un cierto nivel de confianza de que la SCA 304 se está comunicando de manera oportuna en el UDPD 200 con un dispositivo externo. Por ejemplo, se puede determinar el tiempo que tarda la SCA 304 en establecer adecuadamente un enlace de comunicación entre el UDPD 200 y un dispositivo externo en el bloque 1031; y/o se puede determinar el tiempo que lleva realizar las comunicaciones iniciadas en el bloque 1033.
[0161] En el bloque 1034 se determina si la SCA 304 realiza la comunicación de manera oportuna (por ejemplo, si el tiempo que tarda realizar las comunicaciones iniciadas en el bloque 1033 coincide con los datos de sincronización de referencia). Si, por ejemplo, se determina que la SCA 304 no realiza la comunicación de manera oportuna (por ejemplo, el tiempo no coincide con los datos de sincronización de referencia) en el UDPD 200, entonces se determina que la SCA 304 no se comunica adecuadamente en el UDPD 200, lo que indica que la SCA 304 no funciona adecuadamente en el UDPD 200, lo que además indica que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se puede evitar que la SCA 304 funcione libremente en el UDPD 200, tal como se representa por el bloque 1020.
[0162] Si, por ejemplo, se determina que los resultados reales de la comunicación coinciden con los datos de comunicación de referencia, entonces la SCA 304 se comunica con precisión a través del enlace de comunicación entre el UDPD 200 y el dispositivo externo. Además, si el tiempo para realizar la comunicación coincide con los datos
de sincronización de referencia, entonces se determina que la SCA 304 realiza la comunicación de manera oportuna en el UDPD 200.
[0163] En el bloque 1035, se ejecutan rutinas de prueba de visualización. Tras la ejecución de las rutinas de prueba de visualización, las imágenes predeterminadas específicas definidas por las entradas de visualización de referencia se inician para mostrarse en la pantalla de visualización de UDPD 200. Se identifica la imagen real mostrada, representada por el bloque 1040. Por ejemplo, se puede iniciar una captura de pantalla para identificar la imagen real mostrada. En algunos casos, las entradas de visualización de referencia corresponden a un resultado esperado de un cálculo realizado en el bloque 1005 que se mostrará en la pantalla de visualización. La imagen real mostrada se compara entonces con los datos de visualización de referencia para determinar si las imágenes reales mostradas en el UDPD 200 coinciden o no coinciden con los datos de visualización de referencia, tal como se representa en el bloque 1050.
[0164] En el bloque opcional 1045, también se requiere verificación o interacción del usuario. Se puede solicitar al usuario, por ejemplo, que confirme que el UDPD muestra los datos correctamente. Por ejemplo, se puede solicitar al usuario que introduzca el número, texto o frase que se muestra; o para proporcionar cualquier otra forma de respuesta de confirmación a la imagen mostrada en la pantalla de visualización; etc. En función de si se recibe una confirmación de usuario válida, se determina si las entradas de visualización de referencia se muestran correctamente en el UDPD 200. En algunos casos, el ensayo de visualización pueden implicar el dispositivo remoto. Por ejemplo, se le podría pedir al usuario que confirmara la existencia o que volviera a ingresar la información mostrada en la pantalla de visualización remota para confirmar la funcionalidad general. Se puede mostrar un código en la pantalla de visualización del dispositivo remoto, por ejemplo, y se le puede solicitar al usuario que vuelva a ingresar el código en el dispositivo remoto.
[0165] En el bloque 1050, se determina si la imagen real mostrada en el UDPD 200 se encuentra dentro de los parámetros y requisitos predeterminados definidos por los datos de visualización de referencia. Si, por ejemplo, la imagen real mostrada (y/o la confirmación del usuario) no coincide con los datos de visualización de referencia, entonces la SCA 304 no funciona correctamente en el UDPD 200, lo que indica que la SCA 304 no funciona correctamente en el UDPD 200. A continuación, se impide que la SCA funcione libremente en el UDPD, como se representa por el bloque 1020. Si, por ejemplo, la imagen real mostrada (y la confirmación del usuario) coincide con los datos de visualización de referencia, se determina que la SCA 304 funciona correctamente en el UDPD 200, tal como se representa en el bloque 1055.
[0166] Debe apreciarse que en algunas realizaciones las comprobaciones anteriores pueden ejecutarse en varios momentos y en varias combinaciones para lograr diferentes niveles de confianza de que la SCA está funcionando correctamente en el UDPD. Las FIGS. 11 y 12 ilustran ejemplos de diagramas de flujo para alojar una SCA en un UDPD, según algunos aspectos de la presente descripción. La discusión anterior para las diversas comprobaciones, rutinas de prueba y subrutinas también se aplica a las FIGS. 11 y 12.
[0167] La FIG. 11 ilustra un diagrama de flujo para un procedimiento de instalación, según algunos aspectos de la presente descripción. En el bloque 1105 del procedimiento 1100, la SCA 304 y el arnés de prueba 310 se instalan en el UDPD 200. En algunos casos, se puede evitar inicialmente que la SCA 304 funcione libremente en el UDPD 200 para garantizar que las siguientes comprobaciones iniciales se realicen primero antes de que el usuario use la SCA 304.
[0168] En el bloque 1110, se inicia una comprobación de instalación. Por ejemplo, en algunos, la prueba de instalación identifica y compara imágenes de componentes de SCA instalados con datos de instalación de referencia. Debe apreciarse que, en algunos casos, la comprobación de instalación también determina si el arnés de prueba también se instaló correctamente en el UDPD 200.
[0169] Con base en los resultados de la prueba de instalación realizada (por ejemplo, si las imágenes de los componentes de SCA instalados coinciden o no coinciden con los datos de instalación de referencia), se determina si la SCA 304 se instaló correctamente, como se representa por el bloque 1115. Si, por ejemplo, se determina que la SCA 304 no se instaló correctamente en el UDPD 200 (por ejemplo, si las imágenes de los componentes de SCA instalados coinciden o no coinciden con los datos de instalación de referencia), se informa del fallo en la instalación adecuada y se evita que la SCA funcione libremente, por ejemplo, deshabilitando la SCA 304 de modo que no pueda ejecutarse en el UDPD 200, tal como se representa en el bloque 1120. Por ejemplo, el fallo de instalación puede registrarse y/o informarse al usuario. En algunos casos, el arnés de prueba 310 puede enviar un informe del fallo a un dispositivo remoto, por ejemplo, a través de Internet. Nuevamente, en otros casos, se puede permitir que la SCA 304 funcione de modo que el usuario aún pueda usar funciones de la SCA 304 que no son críticas para la seguridad.
[0170] Si, por ejemplo, se determina en el bloque 1115 que la SCA 304 se instaló correctamente en el UDPD 200, se ejecuta una prueba funcional para determinar si la SCA 304 está funcionando correctamente en el UDPD 200, tal como se representa en el bloque 1130. Como se describió anteriormente, la prueba funcional puede incluir una o más rutinas de prueba que se pueden ejecutar, por ejemplo, las rutinas de prueba de cálculo, las rutinas de prueba de
sincronización, las rutinas de prueba de visualización y/o las rutinas de prueba de comunicación.
[0171] En el bloque 1135, se determina si la SCA 304 funciona correctamente en el UDPD 200. Por ejemplo, funcionar adecuadamente puede requerir una determinación de que la SCA 304 está calculando con precisión en el UDPD 200, que la SCA 304 está realizando actividades (por ejemplo, cálculos) de manera oportuna en el UDPD 200, que los datos para la SCA 304 se muestran adecuadamente en el UDPD 200 y/o que la SCA 304 puede comunicarse adecuadamente (por ejemplo, puede establecer un enlace de comunicación de función y enviar/recibir datos de prueba de manera oportuna) con un dispositivo externo a través de un enlace de comunicación entre el dispositivo externo y el UDPD 200.
[0172] Si, por ejemplo, se determina que la SCA 304 no funciona correctamente en el UDPD 200, entonces se determina que la SCA 304 no funciona correctamente en el UDPD 200 y se puede evitar que la SCA 304 funcione libremente en el UDPD 200, tal como se representa en el bloque 1140.
[0173] Si, por ejemplo, la SCA 304 funciona correctamente, entonces se determina que la SCA 304 está funcionando correctamente en el UDPD 200 y se ejecuta una comprobación de entorno para determinar y guardar el entorno actual de UDPD 200 que está asociado con la determinación de que la SCA 304 está funcionando correctamente, tal como se representa en el bloque 1150. A continuación, se puede permitir que la SCA 304 funcione libremente en el UDPD 200. Además, debe apreciarse que las comprobaciones pueden iniciarse en diferentes órdenes en otras implementaciones.
[0174] La FIG. 12 ilustra un diagrama de flujo para un procedimiento ejemplar para realizar diversas comprobaciones, según algunos aspectos de la presente descripción. El diagrama de flujo de la FIG. 12 puede, por ejemplo, ocurrir en tiempo de ejecución después de que ya se haya permitido que la SCA 304 funcione libremente (por ejemplo, después de que se haya ejecutado el procedimiento descrito en la FIG. 11). Debe apreciarse que el procedimiento puede ejecutarse en el contexto del UDPD 200 en algunos casos. Por ejemplo, el procedimiento 1200 puede ejecutarse en segundo plano mientras se ejecuta la SCA 304, en segundo plano cuando no se ejecuta la SCA 304, en segundo plano mientras se ejecutan otras aplicaciones en primer plano, etc. Además, debe apreciarse que el procedimiento 1200 puede ser transparente para el usuario.
[0175] En el bloque 1205 del procedimiento 1200, se inicia una comprobación del entorno para determinar si el «entorno actual» de UDPD 200 ha cambiado desde la última determinación de que la SCA está funcionando correctamente y se le permite funcionar libremente en el UDPD 200. La comprobación del entorno puede iniciarse en varios momentos, por ejemplo, en tiempos/intervalos predeterminados (por ejemplo, intervalos de tiempo predeterminados después de que se permita que la SCA funcione libremente en el UDPD), y/o cuando ocurren ciertos eventos, como cuando se ejecuta la SCA, después de que la SCA se cierre, etc.
[0176] La comprobación del entorno identifica el entorno actual, por ejemplo, cualquier programa de software instalado actualmente, aplicaciones, controladores, componentes de hardware, etc. En el bloque 1210, el entorno actual se compara con un «entorno actual» previamente almacenado que se asoció con la última determinación de que la SCA 304 está funcionando correctamente en el UDPD 200. Por ejemplo, la comparación puede determinar si el entorno actual coincide o no coincide con el entorno actual almacenado previamente. Debe apreciarse que no solo se pueden contabilizar los programas recién instalados, sino que también se pueden eliminar los programas y/o modificaciones a los programas (por ejemplo, nuevas actualizaciones de revisión, correcciones de software, actualizaciones de firmware, etc.). En algunas realizaciones, solo se puede tener en cuenta el entorno de software. En otras realizaciones, el entorno de hardware también puede tomarse en consideración.
[0177] Sobre la base de la comparación en el bloque 1210, se determina si el entorno de UDPD 200 se ha cambiado desde la última determinación de que la SCA 304 está funcionando correctamente en el UDPD 200 y se le permite funcionar libremente en el UDPD, tal como se representa en el bloque 1220.
[0178] Si, por ejemplo, se determina que el entorno de UDPD 200 no ha cambiado, entonces se logra un cierto nivel de confianza en que la SCA 304 todavía está funcionando adecuadamente en el UDPD 200. Se puede permitir, por ejemplo, que la SCA 304 continúe funcionando libremente, tal como se representa en el bloque 1245. Se contempla que, en algunos casos, si el entorno no ha cambiado, aún se pueden iniciar comprobaciones funcionales, en su totalidad o un conjunto abreviado, para proporcionar una mayor seguridad de que la SCA 304 está funcionando correctamente.
[0179] Si, por ejemplo, se determina que el entorno de UDPD 200 ha cambiado, entonces la SCA 304 puede funcionar potencialmente de manera incorrecta en el UDPD 200 y se inicia una comprobación funcional, tal como se representa en el bloque 1225. Por ejemplo, se pueden ejecutar rutinas de prueba de cálculo, rutinas de prueba de sincronización, rutinas de prueba de visualización y/o rutinas de prueba de comunicación para determinar si la SCA 304 está funcionando correctamente en el UDPD 200. En algunos casos, se permite que la SCA 304 continúe funcionando libremente mientras se realiza la comprobación funcional. En algunos casos, se impide que la SCA 304 funcione libremente mientras se realiza la comprobación funcional. En otras implementaciones, también se puede
iniciar una comprobación de instalación si el entorno ha cambiado.
[0180] En el bloque 1230, se determina si la SCA 304 funciona correctamente en el UDPD 200. Por ejemplo, funcionar adecuadamente puede requerir una determinación de que la SCA 304 está calculando con precisión en el UDPD 200, que la SCA 304 está realizando actividades (por ejemplo, cálculos) de manera oportuna en el UDPD 200, que los datos para la SCA 304 se muestran adecuadamente en el UDPD 200 y/o que la SCA 304 puede comunicarse adecuadamente (por ejemplo, puede establecer un enlace de comunicación de función y comunicar datos de manera precisa y oportuna) con un dispositivo externo a través de un enlace de comunicación entre el dispositivo externo y el UDPD 200.
[0181] Si, por ejemplo, se determina que la SCA 304 no funciona correctamente en el UDPD 200, entonces se determina que la SCA 304 no funciona correctamente en el UDPD 200 y se puede evitar que la SCA 304 funcione libremente en el UDPD 200, tal como se representa en el bloque 1235. Si, por ejemplo, se determina que la SCA 304 funciona correctamente, entonces se guarda el entorno actual de UDPD 200, tal como se representa en el bloque 1240. La SCA 304 determina que la SCA 304 está funcionando correctamente en el UDPD 200 y se permite que la SCA 304 funcione libremente en el UDPD 200, tal como se representa en el bloque 1245. El procedimiento puede repetirse nuevamente en otro momento y/o ocurrencia de un evento.
[0182] En algunos aspectos de la presente descripción, el UDPD 200 puede incluir una comprobación de integridad del servidor que se ejecuta para determinar si la integridad de SCA 304 se ha dañado debido a que una SCA 304 dañada compromete cualquier garantía de que la SCA 304 funcione correctamente en el UDPD 200. En algunos casos, una determinación de que la SCA 304 funciona correctamente en el UDPD 200 requiere una determinación de que la SCA 304 no está dañada. Si la SCA 304 está dañada, se puede determinar que la SCA 304 no funciona correctamente en el UDPD 200 y se puede evitar que la SCA 304 funcione libremente en el UDPD 200. Si se determina que la SCA 304 no está dañada, se puede determinar que la SCA 304 funciona correctamente y se le permite funcionar libremente, siempre y cuando también se supere satisfactoriamente cualquier otra comprobación requerida realizada o que se vaya a realizar.
[0183] En algunos casos, se proporciona la comprobación de integridad del servidor y puede determinar si el texto código de SCA 304 está intacto y no dañado. La FIG. 13 ilustra un diagrama de flujo para una comprobación de integridad del servidor, según algunos aspectos de la presente descripción. En el bloque 1305 de comprobación 1300, se calcula una suma de control para el texto código de SCA 304. Además del texto código de SCA 304, la comprobación de integridad del servidor también puede comprobar la integridad de otros datos no volátiles y críticos asociados con SCA 304, por ejemplo, datos que SCA 304 requiere o utiliza, tales como datos de referencia para varias comprobaciones. A continuación, se compara la suma de comprobación calculada con una suma de comprobación de referencia, como se representa por el bloque 1310. La suma de comprobación de referencia es una suma de comprobación para el texto código de SCA 304 (y/o datos adicionales asociados con SCA 304) en un estado no dañado (por ejemplo, una suma de comprobación calculada previamente durante la fabricación y el ensayo y almacenada como una suma de comprobación de referencia para comprobaciones de integridad posteriores). En algunos casos, la suma de comprobación de referencia puede almacenarse como parte de los datos de referencia 408. En el bloque 1315, se determina en función de la comparación si el texto código de SCA 304 está dañado. Por ejemplo, si la suma de comprobación calculada coincide con la suma de comprobación de referencia, entonces se determina que la SCA 304 no está dañada. Por otro lado, si la suma de comprobación calculada no coincide con la suma de comprobación de referencia, entonces se determina que la SCA 304 está dañada. Si la suma de comprobación calculada no coincide con la suma de comprobación de referencia, entonces se determina que la SCA 304 está dañada y se impide que la SCA 304 funcione libremente, tal como se representa por el bloque 1320. Si se determina que la SCA 304 no está dañada, entonces se permite que la SCA 304 funcione libremente siempre y cuando se supere satisfactoriamente cualquier otra comprobación requerida realizada o que se vaya a realizar.
[0184] En algunas realizaciones, la comprobación de integridad del servidor puede implementarse como un módulo de prueba que reside en el UDPD 200 en una memoria no volátil. La prueba de integridad del hospedador puede almacenarse en el UDPD 200 a través de cualquier variedad de procedimientos. Por ejemplo, la comprobación de integridad del servidor puede proporcionarse al UDPD 200 a través de Internet, desde un CD-ROM, tarjeta de memoria, otro dispositivo de memoria externa, etc. En algunos casos, la comprobación de integridad del servidor puede proporcionarse en un dispositivo de instalación (por ejemplo, CD-ROM de instalación) que incluye el arnés de prueba y/o la SCA 304. En algunos casos, la comprobación de integridad del servidor puede incluirse como parte del arnés de prueba y almacenarse en el UDPD 200 cuando el arnés de prueba se carga en el UDPD 200.
[0185] La prueba de integridad del servidor puede programarse para iniciarse en varios momentos. En algunos casos, la prueba de integridad del servidor puede iniciarse en tiempos de no ejecución. Por ejemplo, la comprobación de integridad del servidor puede programarse para iniciarse cada vez antes de que se ejecute la SCA 304, periódicamente después de una cantidad de tiempo predeterminada, siempre que el entorno de software haya cambiado, etc.
[0186] En algunas realizaciones, la comprobación de integridad del servidor puede iniciarse como parte de un
procedimiento de instalación. Por ejemplo, en la FIG. 11, en algunos casos, la comprobación de integridad del servidor puede iniciarse antes, después o simultáneamente con la comprobación funcional 1130 en el procedimiento 1100. Por lo tanto, además de los resultados esperados para la comprobación de la instalación y las comprobaciones funcionales, el bloque 1155 también requeriría resultados esperados para la comprobación de integridad del servidor (por ejemplo, que el texto código de SCA 304 no esté dañado). Si la comprobación de integridad del servidor da como resultado resultados inesperados (por ejemplo, el texto código de SCA 304 está dañado), entonces se impide que la SCA 304 funcione libremente. Por lo tanto, el procedimiento 1100 determinaría si la SCA 304 se instaló correctamente, si la integridad de SCA 304 se mantuvo y si la SCA 304 funciona correctamente. Debe entenderse que también se pueden incluir comprobaciones adicionales, por ejemplo, la comprobación de coexistencia, la prueba de interoperabilidad, la prueba de gestión de energía, etc.
[0187] En algunas realizaciones, la comprobación de integridad del servidor puede programarse para iniciarse cuando el entorno de software ha cambiado. Por ejemplo, en la FIG. 12, en algunos casos, la comprobación de integridad del servidor puede iniciarse antes, después o simultáneamente con la comprobación funcional 1225 en el procedimiento 1200. Por lo tanto, además de los resultados esperados para la comprobación funcional, el bloque 1245 también requeriría resultados esperados para la comprobación de integridad del servidor (por ejemplo, que el texto de código de SCA 304 no esté dañado). Si la comprobación de integridad del servidor da como resultado resultados inesperados (por ejemplo, el texto código de SCA 304 está dañado), entonces se impide que la SCA 304 funcione libremente. Por lo tanto, el procedimiento 1200 determinaría si el entorno cambió, si la integridad de SCA 304 aún se mantiene y si la SCA 304 todavía funciona correctamente. Debe entenderse que también se pueden incluir comprobaciones adicionales, por ejemplo, la comprobación de coexistencia, la prueba de interoperabilidad, la prueba de gestión de energía, etc.
[0188] En algunos aspectos de la presente descripción, se puede iniciar una comprobación de coexistencia para determinar si la SCA 304 es incompatible con otros programas en el UDPD 200 en relación con la naturaleza crítica para la seguridad de SCA 304. En algunos casos, una determinación de que la SCA 304 funciona correctamente en el UDPD 200 requiere al menos una determinación de que la SCA 304 no es incompatible con programas no relacionados. Si la SCA 304 es incompatible con uno o más programas no relacionados, entonces se puede evitar que la SCA 304 funcione libremente en el UDPD 200. Si la SCA 304 no es incompatible con ningún programa no relacionado, entonces se puede determinar que la SCA 304 funciona correctamente y, por lo tanto, se le permite funcionar libremente en el UDPD 200, siempre que también se supere satisfactoriamente cualquier otra comprobación requerida realizada o que se vaya a realizar.
[0189] También debe tenerse en cuenta que varios programas pueden estar en diferentes estados en el UDPD 200, por ejemplo, no funcionando, en un estado pasivo, en un estado activo, etc. Para ejecutar un programa, por ejemplo, el UDPD 200 puede cargar el programa en una memoria volátil (por ejemplo, RAM) y a continuación ejecutar el programa. En algunos casos, cuando se aplica un programa, el programa se ejecuta en el UDPD 200 en un estado activo. En otros casos, un programa puede aparecer parcialmente pero no ejecutarse activamente. El programa puede permanecer en este estado pasivo y esperar una llamada para llevar el programa a un estado activo. Por ejemplo, algunos programas necesitan estar «vivos» a pesar de que no se están ejecutando activamente, por ejemplo, para actualizar el tiempo, monitorear periódicamente los dispositivos, monitorear las comunicaciones, etc. Pueden existir incompatibilidades críticas para la seguridad entre la SCA 304 y los programas no relacionados cuando cualquiera de los programas, o ambos, se encuentran en un estado activo o pasivo.
[0190] La comprobación de coexistencia identifica si existen incompatibilidades críticas para la seguridad entre la SCA 304 y otra aplicación en sus estados activo y/o pasivo. Si existe una incompatibilidad, se puede tomar la acción apropiada, por ejemplo, se puede evitar que la SCA 304 funcione libremente en el UDPD 200. En algunos casos, el usuario puede ser alertado de la incompatibilidad y se le puede solicitar que no use el programa incompatible o que deshabilite o desinstale el programa incompatible.
[0191] La FIG. 14 ilustra un diagrama de flujo para una comprobación de coexistencia, según algunos aspectos de la presente descripción. En el bloque 1405 de comprobación 1400, se determina si algún programa no relacionado comparte algún recurso con la SCA 304. Si no se comparten recursos, entonces la SCA 304 no es incompatible con ningún programa no relacionado, como se representa por el bloque 1430. Si la SCA 304 comparte recursos con uno o más programas no relacionados, entonces se determina si el intercambio de recursos compromete el aspecto crítico para la seguridad de la SCA 304 al crear un conflicto, como se representa por el bloque 1410. Por ejemplo, la comprobación de coexistencia puede iniciar un escenario de conflicto entre la SCA 304 y el uno o más programas relacionados no relacionados, secuencial o simultáneamente. El escenario de conflicto puede comprender, por ejemplo, presentar la SCA 304 y una aplicación no relacionada y tener cada intento de acceder al recurso compartido al mismo tiempo. Por ejemplo, el escenario de conflicto puede incluir una aplicación no relacionada y la SCA 304 que intenta usar simultáneamente la comunicación inalámbrica, mostrar simultáneamente información a la pantalla de visualización de UDPD 200, leer y/o escribir simultáneamente en la memoria, etc. Como otro ejemplo, la SCA puede acceder a un recurso primero y posteriormente, un programa no relacionado intenta acceder al mismo recurso, o viceversa. Además, como otro ejemplo, si el UDPD 200 es un teléfono móvil o teléfono inteligente, se puede iniciar un escenario de conflicto para probar cómo una invocación entrante recibida por el UDPD 200 afecta a la SCA 304
mientras realiza diversas funciones, por ejemplo, una transferencia de datos por SCA 304, una visualización de una medición de prueba por SCA 304, un sonido de alarma por SCA 304, etc.
[0192] En algunos casos, la SCA 304 puede compartir recursos con otros programas sin crear un conflicto. Por ejemplo, la SCA 304 puede tener acceso prioritario a los recursos en ciertas circunstancias y, por lo tanto, tener prioridad sobre otros programas que utilizan los mismos recursos. Por ejemplo, a la SCA 304 se le puede dar acceso prioritario a los puertos de comunicación en el UDPD 200, por ejemplo, para comunicar una alarma a otro dispositivo a través del puerto de comunicación. La SCA 304 puede, por ejemplo, tener acceso prioritario a un dispositivo de comunicación inalámbrica, acceso a una memoria, acceso al procesador y/o acceso a cualquier otro recurso compartido que pueda priorizarse. Debe apreciarse que el acceso prioritario para la SCA 304 también puede comprender acceso prioritario para las comunicaciones hacia o para la SCA 304. Por ejemplo, un dispositivo médico (por ejemplo, dispositivo de monitoreo de analitos, dispositivo de administración de fármacos, etc.) puede enviar una consulta desde el dispositivo médico al UDPD 200 (o viceversa) que, cuando funciona correctamente, interrumpe los procedimientos que se ejecutan actualmente en el UDPD 200 con el fin de crear una transmisión entre los dos dispositivos (por ejemplo, verificar la preparación para recibir datos, esperar una respuesta, comunicar los datos si se recibe la respuesta y activar una alarma si no se recibe la respuesta). La comprobación de coexistencia puede iniciar varios escenarios de conflicto para probar el intercambio de recursos y determinar si la SCA 304 está accediendo adecuadamente a los recursos con prioridad sobre otros programas que intentan acceder al mismo recurso.
[0193] Debe entenderse que cada programa puede llevarse a diferentes estados (por ejemplo, pasivo o activo) para determinar si se plantean problemas críticos para la seguridad en cualquiera de las diversas combinaciones de estados. Además, debe entenderse que, en algunos casos, un escenario de conflicto puede incluir más de un programa no relacionado y la SCA 304 que accede al mismo recurso compartido.
[0194] En el bloque 1415, se determina si la SCA 304 y cualquier programa no relacionado son incompatibles. Por ejemplo, si se hace un programa no relacionado para acceder al recurso compartido mientras la SCA 304 ya está accediendo al recurso, entonces se puede determinar si el intento de acceso por parte del programa no relacionado interrumpe lo suficiente el acceso por parte de la SCA 304 para comprometer la naturaleza crítica para la seguridad de SCA 304. O, por ejemplo, si la SCA 304 se hace para acceder al recurso compartido mientras el programa no relacionado ya está accediendo al recurso, entonces se puede determinar si la SCA 304 puede acceder al recurso y si puede hacerlo lo suficiente para no comprometer la naturaleza crítica para la seguridad de SCA 304. Si la SCA 304 no puede compartir recursos con el programa no relacionado sin comprometer los aspectos críticos para la seguridad de SCA 304, entonces se determina que la SCA 304 y el programa no relacionado son incompatibles y se impide que la SCA 304 funcione libremente, como se representa por el bloque 1420. Por ejemplo, si el escenario de conflicto impide que la SCA 304 realice cualquier función crítica para la seguridad, o retrasa significativamente que la SCA 304 realice la función crítica para la seguridad, entonces se puede determinar que la aplicación no relacionada y la SCA 304 son incompatibles. Se apreciará que, en algunos casos, los datos de referencia para evaluar la incompatibilidad se pueden usar para dichas determinaciones.
[0195] Se puede impedir que la SCA 304 funcione libremente, como se describió anteriormente para comprobaciones previas (por ejemplo, se deshabilitó la SCA y se impidió que funcionase en el UDPD 200, se permitió que la SCA 304 funcione, pero sin el uso de las características o capacidades críticas para la seguridad, etc.). Además, en algunos casos, se puede permitir que la SCA 304 funcione sin el uso del recurso y/o característica que está en conflicto con el programa no relacionado. Por ejemplo, si el recurso compartido en conflicto es el receptor Bluetooth, entonces se puede permitir que la SCA 304 funcione sin la función de comunicación Bluetooth y/o características que requieran la comunicación Bluetooth. En algunos casos, el usuario puede ser informado del problema y/o se le puede solicitar que aborde el problema, por ejemplo, se le puede informar que no ejecute el programa incompatible, se le puede solicitar que desinstale o deshabilite el programa incompatible no relacionado antes de que se le permita usar la SCA 304, etc.
[0196] Si la SCA 304 puede compartir recursos con programas no relacionados sin comprometer los aspectos críticos para la seguridad de SCA 304, entonces se determina que la SCA 304 no es incompatible con programas no relacionados, como se representa por el bloque 1425. A continuación, se puede determinar que la SCA 304 funcione correctamente en el UDPD 200 y se le permite funcionar libremente en el UDPD 200, siempre y cuando cualquier otra comprobación requerida realizada, o que se realice, también se supere satisfactoriamente.
[0197] La prueba de coexistencia puede programarse para iniciarse en varios tiempos, por ejemplo, tiempos de ejecución y/o tiempos de no ejecución. Por ejemplo, la comprobación de coexistencia puede programarse para iniciarse cada vez antes de que se ejecute la SCA 304, periódicamente después de una cantidad de tiempo predeterminada, siempre que el entorno de software haya cambiado, etc.
[0198] En algunas realizaciones, la comprobación de coexistencia puede iniciarse como parte de un procedimiento de instalación. Por ejemplo, en la FIG. 11, se puede iniciar una comprobación de coexistencia antes, después o simultáneamente con la comprobación funcional 1130 en el procedimiento 1100. Por lo tanto, además de los resultados esperados para la comprobación de instalación y la comprobación funcional, el bloque 1155 también
requeriría resultados esperados para la comprobación de coexistencia (por ejemplo, que la SCA 304 no sea incompatible con ningún programa no relacionado). Si la comprobación de coexistencia da como resultado resultados inesperados (por ejemplo, la SCA 304 es incompatible con uno o más programas no relacionados), entonces se puede evitar que la SCA 304 funcione libremente. Por lo tanto, el procedimiento 1100 determinaría si la SCA 304 está instalada correctamente, si la SCA 304 es compatible con los programas no relacionados en el UDPD 200 y si la SCA 304 funciona correctamente. Debe entenderse que también se pueden incluir comprobaciones adicionales, por ejemplo, la comprobación de integridad del servidor, la prueba de interoperabilidad, la prueba de gestión de energía, etc.
[0199] En algunas realizaciones, la comprobación de coexistencia puede programarse para iniciarse cuando el entorno de software ha cambiado. Por ejemplo, en la FIG. 12, la comprobación de coexistencia puede iniciarse antes, después o simultáneamente con la comprobación funcional 1225 en el procedimiento 1200. Por lo tanto, además de los resultados esperados para la comprobación funcional, el bloque 1245 también requeriría resultados esperados para la comprobación de coexistencia (por ejemplo, que la SCA 304 no sea incompatible con otros programas no relacionados). Si la comprobación de coexistencia da como resultado resultados inesperados (por ejemplo, la SCA 304 es incompatible con un programa no relacionado), entonces se puede evitar que la SCA 304 funcione libremente. Por lo tanto, el procedimiento 1200 determinaría si el entorno cambió, si la SCA 304 es compatible con los programas no relacionados en el UDPD 200 y si la SCA 304 todavía funciona correctamente. Debe entenderse que también se pueden incluir comprobaciones adicionales, por ejemplo, la comprobación de integridad del servidor, la prueba de interoperabilidad, la prueba de gestión de energía, etc.
[0200] En algunas realizaciones, una determinación de que la SCA 304 funcione adecuadamente en el UDPD requiere una determinación de que la SCA 304 interactúe adecuadamente con programas relacionados. Si la SCA 304 no interactúa adecuadamente con otros programas relacionados, entonces se puede determinar que la SCA 304 no funciona correctamente y se puede evitar que la SCA 304 funcione libremente en el UDPD 200. Si se determina que la SCA 304 interactúa correctamente, entonces se puede determinar que la SCA 304 funciona correctamente en el UDPD y, por lo tanto, se le permite funcionar libremente, siempre que también se supere satisfactoriamente cualquier otra comprobación requerida realizada o que se vaya a realizar.
[0201] La FIG. 15 ilustra un diagrama de flujo para una comprobación de interoperabilidad, según algunos aspectos de la presente descripción. En el bloque 1505 de comprobación 1500, se determina si algún programa relacionado funciona con la SCA 304. Si no hay programas relacionados, entonces la SCA 304 no interactúa incorrectamente con ningún programa relacionado, como se representa por el bloque 1525. Si existen programas relacionados, entonces la comprobación de interoperabilidad prueba las interoperaciones del programa relacionado y la SCA 304, tal como se representa en el bloque 1510. Debe apreciarse que más de un programa relacionado puede probarse a la vez en algunos casos.
[0202] Por ejemplo, uno o más programas relacionados y la SCA 304 se plantean y prueban para interoperaciones adecuadas. Las pruebas pueden incluir, por ejemplo, verificar que la SCA 304 y los programas se comunican usando los protocolos de comunicación adecuados, que los datos se comunican con una forma de ida y vuelta con precisión y de manera oportuna, que la SCA 304 puede acceder adecuadamente a cualquier característica o capacidad asociada con el programa relacionado, etc.
[0203] Por ejemplo, la SCA 304 puede ser una aplicación relacionada con el monitoreo de analitos y proporcionar algunas capacidades de medición y gestión de datos, mientras que un programa adicional puede proporcionar capacidades adicionales o más profundas de gestión de datos. La SCA 304 puede proporcionar el registro de mediciones en una memoria en el UDPD 200 y trabajar junto con una aplicación que muestra las mediciones registradas en diferentes formatos gráficos (por ejemplo, gráficos, gráficas, etc.), por ejemplo. La prueba de interoperabilidad puede cotejar, por ejemplo, valores y tiempos en el registro con los valores correspondientes en las pantallas de visualización gráficas para determinar si los datos se transfieren con precisión.
[0204] Como otro ejemplo, la SCA 304 puede ser una aplicación relacionada con el monitoreo de analitos e interactuar con programas de software para un dispositivo de sensor remoto, medidor de analitos, proveedor de bomba (por ejemplo, dispositivo de bomba de insulina), etc. El ensayo puede incluir, por ejemplo, verificar que la SCA 304 y el programa relacionado se comuniquen usando los protocolos de comunicación adecuados, que los datos se comuniquen con una forma de ida y vuelta con precisión y de manera oportuna, que la SCA 304 pueda acceder adecuadamente a cualquier característica o capacidad asociada con el programa relacionado, etc. Los datos de referencia se pueden usar, por ejemplo, como entradas para simular eventos de tiempo de ejecución específicos y para verificar los resultados de los eventos simulados (por ejemplo, con datos de referencia específicos asociados con el evento simulado).
[0205] Si bien la comprobación de interoperabilidad se ha descrito separada de la comprobación funcional (por ejemplo, rutina de prueba de comunicación), se contempla, sin embargo, que la comprobación de interoperabilidad puede funcionar o implementarse como parte de la prueba de funcionalidad (por ejemplo, rutina de prueba de comunicación) en algunos casos, para proporcionar cierta seguridad de que la s Ca 304 interactúa adecuadamente
con dispositivos externos.
[0206] En el bloque 1515, se determina si la SCA 304 y el programa relacionado interactúan correctamente. Si se determina que la SCA 304 y el programa relacionado no interactúan correctamente, entonces se impide que la SCA 304 funcione libremente, tal como se representa en el bloque 1520. Se puede evitar que la SCA 304 funcione libremente, como se describió anteriormente (por ejemplo, se deshabilitó la SCA e impidió que funcione en el UDPD 200, se permitió que la SCA 304 funcione, pero sin el uso de las características o capacidades críticas para la seguridad, etc.). Además, en algunos casos, se puede permitir que la SCA 304 funcione sin el uso del programa relacionado o su funcionalidad (por ejemplo, si el programa relacionado no es crítico o necesario para que la SCA 304 funcione). Por ejemplo, si el programa relacionado es un programa que proporciona capacidades de gestión de datos adicionales como se describe en el ejemplo anterior, entonces se permite que la SCA 304 funcione, pero sin el uso del programa relacionado o su funcionalidad. En algunos casos, el usuario puede ser informado del problema y/o se le puede solicitar que aborde el problema, por ejemplo, se le puede informar que no use el programa relacionado o su funcionalidad, se le puede solicitar que desinstale o deshabilite el programa relacionado antes de que se le permita usar la SCA 304, etc.
[0207] Si se determina que la SCA 304 y los programas relacionados interactúan correctamente, tal como se representa en el bloque 1525, entonces se determina que la SCA 304 funciona correctamente en el UDPD y se le permite funcionar libremente, siempre y cuando cualquier otra comprobación requerida realizada, o requerida para ser realizada, también se supere satisfactoriamente.
[0208] Debe entenderse que cada programa puede llevarse a diferentes estados (por ejemplo, pasivo o activo) para determinar si se plantean problemas de interoperabilidad en cualquiera de las diversas combinaciones de estados. Además, debe entenderse que en algunos casos se puede probar más de un programa relacionado con la SCA 304 durante la prueba de interoperabilidad.
[0209] La comprobación de interoperabilidad puede programarse para iniciarse en varios tiempos, por ejemplo, tiempos de ejecución y/o tiempos de no ejecución. Por ejemplo, la comprobación de interoperabilidad puede programarse para iniciarse cada vez antes de que se ejecute la SCA 304, periódicamente después de una cantidad de tiempo predeterminada, siempre que el entorno de software haya cambiado, etc.
[0210] En algunas realizaciones, la comprobación de interoperabilidad puede iniciarse como parte del procedimiento de instalación. Por ejemplo, en la FIG. 11, la comprobación de interoperabilidad puede iniciarse antes, después o simultáneamente con la comprobación funcional 1130 en el procedimiento 1100. Por lo tanto, además de los resultados esperados para la comprobación de la instalación y la comprobación funcional, el bloque 1155 también requeriría resultados esperados para la comprobación de interoperabilidad (por ejemplo, que la SCA 304 interactúe adecuadamente con programas relacionados). Si la comprobación de interoperabilidad da como resultado resultados inesperados (por ejemplo, la SCA 304 no interactúa adecuadamente con programas relacionados), entonces se impide que la SCA 304 funcione libremente. Por lo tanto, el procedimiento 1100 determinaría si la SCA 304 está instalada correctamente, si la SCA 304 funciona correctamente con programas relacionados en el UDPD 200 y si la SCA 304 funciona correctamente. Debe entenderse que también se pueden incluir comprobaciones adicionales, por ejemplo, la comprobación de integridad del servidor, la comprobación de coexistencia, la comprobación de gestión de energía, etc.
[0211] En algunas realizaciones, la comprobación de interoperabilidad puede programarse para iniciarse cuando el entorno de software ha cambiado. Por ejemplo, en la FIG. 12, la comprobación de interoperabilidad puede iniciarse antes, después o simultáneamente con la comprobación funcional 1225 en el procedimiento 1200. Por lo tanto, además de los resultados esperados para la comprobación funcional, el bloque 1245 también requeriría resultados esperados para la comprobación de interoperabilidad (por ejemplo, que la SCA 304 interactúe adecuadamente con programas relacionados). Si la comprobación de interoperabilidad da como resultado resultados inesperados (por ejemplo, la SCA 304 no interactúa adecuadamente con un programa relacionado), entonces se impide que la SCA 304 funcione libremente. Por lo tanto, el procedimiento 1200 determinaría si el entorno cambió, si la SCA 304 interactúa correctamente con programas relacionados en el UDPD 200 y si la SCA 304 todavía funciona correctamente. Debe entenderse que también se pueden incluir comprobaciones adicionales, por ejemplo, la comprobación de integridad del servidor, la comprobación de coexistencia, la comprobación de gestión de energía, etc.
[0212] En algunas realizaciones, se puede iniciar una comprobación de gestión de energía para determinar si las capacidades de energía de UDPD 200 son suficientes para ejecutar la SCA 304 de forma segura con un cierto nivel de seguridad de que el UDPD no se apague abruptamente. En algunos casos, las capacidades de energía se pueden determinar a partir de la carga restante que queda en la batería, la tasa actual de consumo de energía en tiempo real (por ejemplo, teniendo en cuenta cualquier aplicación en ejecución, características y capacidades activadas, etc.), el tiempo restante hasta el apagado o hibernación, etc. La vida de energía restante de UDPD 200 puede determinarse en días, horas, minutos, etc., hasta que sea necesario recargarla. Además, si se utiliza una característica que requiere mucha energía de SCA 304 (por ejemplo, capacidades inalámbricas, etc.), la vida de
energía restante de UDPD 200 puede reducirse en consecuencia. Las capacidades de energía pueden entonces compararse con una cantidad umbral mínima requerida para hacer funcionar la SCA 304 de forma segura con un riesgo mínimo de un apagado abrupto.
[0213] La FIG. 16 ilustra un diagrama de flujo para una comprobación de gestión de energía, según algunos aspectos de la presente descripción. En el bloque 1605 de comprobación 1600, se determinan las capacidades de energía de UDPD 200. Una vez que se determina la capacidad de energía de UDPD 200, se realiza una comparación contra una o más cantidades umbral mínimas requeridas para hacer funcionar la SCA 304 de manera segura con un riesgo mínimo de apagado brusco, como se representa por el bloque 1610.
[0214] En algunos casos, la cantidad umbral mínima requerida para hacer funcionar la SCA 304 de manera segura con un riesgo mínimo de apagado abrupto puede depender de una cantidad predeterminada de tiempo, por ejemplo, determinada durante la fabricación y el ensayo y almacenada como datos de referencia. Por ejemplo, el ensayo puede determinar que la SCA 304 requiere un umbral mínimo de tiempo para hacer funcionar y realizar de manera segura funciones críticas para la seguridad. O, como otro ejemplo, el ensayo puede determinar que la SCA 304 requiere una cierta cantidad de corriente por día, por hora, etc., cuando se ejecuta activamente. También se contempla que los diferentes umbrales pueden existir para diferentes características o funciones (por ejemplo, usar la calculadora de insulina, comunicarse de forma inalámbrica con una bomba de insulina, etc.).
[0215] En algunos casos, la cantidad umbral mínima requerida para hacer funcionar la SCA 304 de manera segura con un riesgo mínimo de apagado abrupto puede depender del uso histórico de SCA 304. El historial de uso previo de un usuario puede usarse para determinar un requisito de umbral mínimo estimado. Por ejemplo, el uso anterior de un usuario puede rastrearse y usarse para determinar un uso promedio y la cantidad de energía consumida en un período de tiempo (por ejemplo, días, horas, minutos, etc.).
[0216] En algunos casos, el consumo de energía umbral requerido por la aplicación de SCA 304 puede estimarse mediante el seguimiento del historial de uso del usuario. El historial de uso puede explicar eventos específicos y la cantidad de energía requerida para esos eventos. Por ejemplo, el historial de uso puede explicar a qué características se accede, cuántas veces se accede a cada característica, duración del uso, etc. Los ejemplos de eventos para una SCA asociada con el monitoreo de analitos, tal como el monitoreo de glucosa, pueden incluir, de modo no taxativo, mediciones de tiras, mediciones de administración de insulina, administración de insulina, lecturas de medición continua de glucosa, calibraciones, etc. Por ejemplo, se puede determinar que el uso promedio de un usuario incluye tomar diez mediciones diarias de tiras, calcular y administrar insulina cinco veces al día, cinco comunicaciones Bluetooth por día, etc. Entonces se puede determinar un consumo de energía correspondiente. Por ejemplo, se puede determinar que la SCA 304 requiere una cierta cantidad de miliamperios por día, por hora, por semana, etc., cuando la SCA 304 se está ejecutando activamente. Esta determinación del consumo de energía puede entonces compararse con las capacidades de energía determinadas para UDPD 200 para determinar si el UDPD 200 puede cumplir con el umbral de energía requerido para SCA 304. Por ejemplo, si la SCA 304 se usa para recibir lecturas de medición de CGM derivadas de un sensor que se inserta cada 5 días, entonces se puede determinar si el UDPD 200 tiene las capacidades de energía necesarias para mantener activada la función de CGM durante el tiempo.
[0217] Se contempla que en algunos casos se pueden rastrear varias actividades individualmente para determinar cuánta energía se consume por actividad. De esta manera, el uso promedio de un usuario se puede contabilizar por actividad para llegar a una cantidad promedio de consumo de energía. En algunos casos, se puede implementar un programa de terapia programada (por ejemplo, por un médico) y un umbral de consumo de energía mínimo calculado en función del programa personalizado. Se ha contemplado además que se pueden crear y usar múltiples perfiles de usuario, por ejemplo, un perfil para los requisitos de uso diario promedio, perfiles para programas de terapia personalizados, un perfil específico para períodos de monitoreo continuo de glucosa, etc. También debe entenderse que, en algunos casos, el consumo de energía por actividad puede determinarse en la fabricación y el ensayo, por ejemplo, para diferentes tipos de UDPD, y almacenarse como datos de referencia.
[0218] En el bloque 1615, se determina si el UDPD 200 tiene capacidades de energía suficientes para ejecutar la SCA 304 de forma segura con un riesgo mínimo de apagado abrupto basado en la comparación de las capacidades de energía del UDPD 200 con cualquier cantidad umbral mínima requerida. Si no se cumplen los umbrales requeridos, entonces se impide que la SCA 304 funcione libremente, representado por el bloque 1620. Nuevamente, esto puede incluir, por ejemplo, que se deshabilite la SCA 304 y se impida que se ejecute en el UDPD 200, se permite que la SCA 304 funcione, pero sin el uso de las características o capacidades críticas para la seguridad, etc. Esto también puede incluir, en algunos casos, permitir que la SCA 304 funcione sin las funciones para las cuales no se cumplen los umbrales.
[0219] En algunas realizaciones, una determinación de que la SCA 304 funciona correctamente requiere al menos que el UDPD tenga capacidades de energía suficientes para funcionar de manera segura con un riesgo mínimo de apagado. Si el UDPD 200 tiene al menos el umbral mínimo de capacidad de energía, entonces en el bloque 1625, se determina que el UDPD 200 tiene suficiente capacidad de energía. Se determina que la SCA 304 funciona correctamente en el UDPD 200 y se le permite funcionar libremente en el UDPD 200, siempre y cuando cualquier otra
comprobación requerida realizada, o que se requiera realizar, también se apruebe satisfactoriamente.
[0220] También se contempla que en algunos casos la comprobación de gestión de energía puede iniciarse para determinar si las capacidades de energía de UDPD 200 son como se esperaba. Por ejemplo, las tasas de consumo promedio para diferentes tipos de UDPD que ejecutan la SCA 304 pueden determinarse durante la fabricación y el ensayo y almacenarse como datos de referencia. Posteriormente, durante el uso por parte del usuario, la comprobación de gestión de energía puede monitorear las tasas de consumo de energía de UDPD 200 mientras se ejecuta la SCA 304. Si los resultados varían de los datos de referencia más de una desviación umbral predeterminada, entonces la comprobación de gestión de energía indica que la SCA 304 no está funcionando correctamente en el UDPD 200 y, por lo tanto, se impide que la SCA 304 funcione libremente. Por ejemplo, se puede determinar durante la fabricación y el ensayo que el iPhone® puede hacer funcionar la SCA 304 durante 8 horas sin recarga. Si la comprobación de gestión de energía se ejecuta después de ser instalada en el UDPD 200 de un usuario, y resulta en un estimado de 2 horas sin recarga, esto puede ser indicativo de problemas en el dispositivo que pueden comprometer las características críticas para la seguridad del dispositivo. Por ejemplo, las principales desviaciones en las tasas de consumo esperadas pueden ser indicativas de errores de software o virus. En tal caso, por ejemplo, se puede evitar que la SCA 304 funcione libremente y se puede informar al usuario o pedirle que aborde el problema (por ejemplo, pedirle que ejecute un análisis de virus del dispositivo).
[0221] La comprobación de gestión de energía puede programarse para iniciarse en varios tiempos, por ejemplo, tiempos de ejecución y/o tiempos de no ejecución. Por ejemplo, la comprobación de gestión de energía puede programarse para iniciarse cada vez antes de que se ejecute la SCA 304, periódicamente después de una cantidad de tiempo predeterminada, siempre que el entorno de software haya cambiado, etc.
[0222] En algunas realizaciones, la comprobación de gestión de energía puede iniciarse como parte del procedimiento de instalación. Por ejemplo, en la FIG. 11, la comprobación de gestión de energía puede iniciarse antes, después o simultáneamente con la comprobación funcional 1130 en el procedimiento 1100. Por lo tanto, además de los resultados esperados para la comprobación de la instalación y la comprobación funcional, el bloque 1155 también requeriría resultados esperados para la comprobación de gestión de energía (por ejemplo, que el UDPD tenga suficiente capacidad de energía para ejecutar la SCA de manera segura). Si la comprobación de gestión de energía da como resultado resultados inesperados (por ejemplo, el UDPD no tiene suficiente capacidad de energía para ejecutar la SCA de forma segura), entonces se impide que la SCA 304 funcione libremente. Por lo tanto, el procedimiento 1100 determinaría si la SCA 304 está instalada correctamente, si el UDPD 200 tiene suficiente capacidad de energía para ejecutar la SCA 304 de forma segura y si la SCA 304 funciona correctamente. Debe entenderse que también se pueden incluir comprobaciones adicionales, por ejemplo, la comprobación de integridad del servidor, la comprobación de coexistencia, la comprobación de interoperabilidad, etc.
[0223] En algunas realizaciones, la comprobación de gestión de energía puede programarse para iniciarse cuando el entorno de software ha cambiado. Por ejemplo, en la FIG. 12, la comprobación de gestión de energía puede iniciarse antes, después o simultáneamente con la comprobación funcional 1225 en el procedimiento 1200. Por lo tanto, además de los resultados esperados para la comprobación funcional, el bloque 1245 también requeriría resultados esperados para la comprobación de gestión de energía (por ejemplo, que el UDPD tiene suficiente capacidad de energía para ejecutar la SCA de manera segura). Si la comprobación de gestión de energía da como resultado resultados inesperados (por ejemplo, el UDPD no tiene suficiente capacidad de energía para ejecutar la SCA 304 de manera segura), entonces se impide que la SCA 304 funcione libremente. Por lo tanto, el procedimiento 1200 determinaría si el entorno cambió, si el UDPD tiene suficiente capacidad de energía para ejecutar la SCA 304 de manera segura y si la SCA 304 todavía funciona correctamente. Debe entenderse que también se pueden incluir comprobaciones adicionales, por ejemplo, la comprobación de integridad del servidor, la comprobación de coexistencia, la comprobación de interoperabilidad, etc.
[0224] A lo largo de la descripción anterior, para fines de explicación, se exponen numerosos detalles específicos para proporcionar una comprensión completa de la invención. Sin embargo, será evidente para un experto en la materia que la invención puede ponerse en práctica sin algunos de estos detalles específicos. Además, las realizaciones de la invención pueden incluir varias operaciones como se establece anteriormente, o menos operaciones o más operaciones, u operaciones en un orden que es diferente del orden descrito en esta invención.
[0225] Debe entenderse que las técnicas introducidas en lo anterior pueden implementarse mediante circuitos programables programados o configurados por software y/o firmware, o pueden implementarse completamente mediante circuitos «cableados» de propósito especial, o en una combinación de dichas formas. Dichos circuitos de propósito especial (si los hay) pueden tener la forma de, por ejemplo, uno o más circuitos integrados específicos de la aplicación (ASICS), dispositivos lógicos programables (PLDs), matrices de compuertas programables en campo (FPGAs), etc.
[0226] El software o firmware que implementa las técnicas introducidas en esta invención puede almacenarse en un medio de almacenamiento legible por máquina y puede ejecutarse mediante uno o más microprocesadores programables de propósito general o propósito especial. Un «medio legible por máquina», tal como se usa la expresión
en esta invención, incluye cualquier mecanismo que pueda almacenar información en una forma accesible por una máquina (una máquina puede ser, por ejemplo, una computadora, dispositivo de red, teléfono celular, asistente digital personal (PDA), herramienta de fabricación, cualquier dispositivo con uno o más procesadores, etc.). Por ejemplo, un medio legible por máquina puede usarse para almacenar instrucciones de software, lo que cuando son ejecutadas por un procesador, hace que el procesador realice los diversos procedimientos de esta descripción. Un medio legible por máquina incluye medios grabables/no grabables (por ejemplo, memoria de solo lectura (ROM); memoria de acceso aleatorio (RAM); medios de almacenamiento en disco magnético; medios de almacenamiento óptico; dispositivos de memoria flash; etc.), o cualquier tipo de medio adecuado para almacenar instrucciones legibles por máquina. El término «lógica», tal como se usa en esta invención, puede incluir, por ejemplo, circuitos cableados para fines especiales, software y/o firmware junto con circuitos programables, o una combinación de estos.
[0227] Lo anterior simplemente ilustra los principios de la invención. Se apreciará que los expertos en la técnica podrán idear diversas disposiciones que, aunque no se describen o muestran explícitamente en esta invención, incorporan los principios de la invención y se incluyen dentro de su alcance. Además, todos los ejemplos y el lenguaje condicional que se mencionan en esta invención están destinados principalmente a ayudar al lector a comprender los principios de la invención y los conceptos aportados por los inventores para avanzar en la técnica, y deben interpretarse sin limitación a dichos ejemplos y condiciones específicamente mencionados.
Claims (14)
1. Un procedimiento para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado, siendo el dispositivo de procesamiento de datos no controlado (200) configurado para permitir que un usuario realice cambios de software y/o hardware en el dispositivo de procesamiento de datos no controlado, comprendiendo el procedimiento:
determinar, con un dispositivo de procesamiento de datos no controlado, si una aplicación crítica para la seguridad (304) está instalada correctamente y funciona correctamente en el dispositivo de procesamiento de datos no controlado;
evitar, con el dispositivo de procesamiento de datos no controlado, el funcionamiento de ciertas características de la aplicación crítica para la seguridad en el dispositivo de procesamiento de datos no controlado después de la verificación de que la aplicación crítica para la seguridad no se instaló correctamente o no funciona correctamente en el dispositivo de procesamiento de datos no controlado, en el que la prevención comprende deshabilitar la ejecución de las características críticas para la seguridad de la aplicación crítica para la seguridad en el dispositivo de procesamiento de datos no controlado y permitir que las características críticas para la seguridad de la aplicación crítica para la seguridad se ejecuten en el dispositivo de procesamiento de datos no controlado; y permitir, con el dispositivo de procesamiento de datos no controlado, que la aplicación crítica para la seguridad funcione libre de cualquier restricción en el dispositivo de procesamiento de datos no controlado tras la verificación de que la aplicación crítica para la seguridad está instalada correctamente y funciona correctamente en el dispositivo de procesamiento de datos no controlado,
en el que la aplicación crítica para la seguridad es una aplicación relacionada con la medicina y el dispositivo de procesamiento de datos no controlado es un dispositivo personal inalámbrico que comprende una pantalla de visualización (1730), estando el dispositivo de procesamiento de datos no controlado en comunicación de datos con al menos uno de un dispositivo de monitoreo de analitos (705), un dispositivo de administración de fármacos o una combinación de un dispositivo de monitoreo de analitos y un dispositivo de administración de fármacos.
2. El procedimiento de cualquiera de las reivindicaciones anteriores, en el que determinar si la aplicación crítica para la seguridad (304) instalada adecuadamente en el dispositivo de procesamiento de datos no controlado (200) comprende:
identificar (805), con el dispositivo de procesamiento de datos no controlado, una imagen de un componente de aplicación crítica para la seguridad instalado en el dispositivo de procesamiento de datos no controlado; y comparar (810), con el dispositivo de procesamiento de datos no controlado, la imagen del componente de aplicación crítica para la seguridad instalado con los datos de instalación de referencia.
3. El procedimiento de cualquiera de las reivindicaciones anteriores, en el que determinar si la aplicación crítica para la seguridad (304) funciona correctamente en el dispositivo de procesamiento de datos no controlado (200) comprende:
iniciar (905), con el dispositivo de procesamiento de datos no controlado, un cálculo utilizando una entrada de cálculo de referencia; y
comparar (910), con el dispositivo de procesamiento de datos no controlado, un resultado del cálculo con datos de cálculo de referencia.
4. El procedimiento de cualquiera de las reivindicaciones anteriores, en el que determinar si la aplicación crítica para la seguridad (304) funciona correctamente en el dispositivo de procesamiento de datos no controlado (200) comprende:
determinar (925), con el dispositivo de procesamiento de datos no controlado, un tiempo para realizar una actividad; y
comparar (930), con el dispositivo de procesamiento de datos no controlado, el tiempo para realizar la actividad con los datos de sincronización de referencia.
5. El procedimiento de cualquiera de las reivindicaciones anteriores, en el que determinar si la aplicación crítica para la seguridad (304) funciona correctamente en el dispositivo de procesamiento de datos no controlado (200) comprende:
iniciar (935), con el dispositivo de procesamiento de datos no controlado, una imagen que se mostrará en la pantalla de visualización (1730) del dispositivo de procesamiento de datos no controlado;
determinar (940), con el dispositivo de procesamiento de datos no controlado, una imagen real mostrada en la pantalla de visualización; y
comparar (950), con el dispositivo de procesamiento de datos no controlado, la imagen real mostrada con datos de visualización de referencia.
6. El procedimiento de cualquiera de las reivindicaciones anteriores, en el que determinar si la aplicación crítica para la seguridad (304) funciona correctamente en el dispositivo de procesamiento de datos no controlado (200) comprende:
determinar (1032), con el dispositivo de procesamiento de datos no controlado, si la aplicación crítica para la seguridad se comunica adecuadamente en el dispositivo de procesamiento de datos no controlado con un dispositivo externo.
7. El procedimiento de cualquiera de las reivindicaciones anteriores, que comprende:
identificar (1150), con el dispositivo de procesamiento de datos no controlado (200), un primer entorno actual del dispositivo de procesamiento de datos no controlado, el primer entorno actual asociado con un tiempo en el que se permite que la aplicación crítica para la seguridad (304) funcione en el dispositivo de procesamiento de datos no controlado;
identificar (1205), con el dispositivo de procesamiento de datos no controlado, un segundo entorno actual del dispositivo de procesamiento de datos no controlado, el segundo entorno actual asociado con un tiempo después de que se permita que la aplicación crítica para la seguridad funcione en el dispositivo de procesamiento de datos no controlado;
comparar (1210), con el dispositivo de procesamiento de datos no controlado, el segundo entorno actual con el primer entorno actual; y
determinar (1220), con el dispositivo de procesamiento de datos no controlado, si se ha producido un cambio de entorno.
8. El procedimiento de la reivindicación 7, en el que el primer entorno actual tiene en cuenta: aplicaciones instaladas en el dispositivo de procesamiento de datos no controlado (200);
controladores en el dispositivo de procesamiento de datos no controlado;
una última instalación en el dispositivo de procesamiento de datos no controlado; o ajustes de configuración.
9. El procedimiento de la reivindicación 7, que comprende:
determinar (1225), con el dispositivo de procesamiento de datos no controlado (200), si la aplicación crítica para la seguridad funciona correctamente en el dispositivo de procesamiento de datos no controlado después de una determinación de que se produjo un cambio en el entorno; evitar (1235), con el dispositivo de procesamiento de datos no controlado, que ciertas características de la aplicación crítica para la seguridad (304) funcionen en el dispositivo de procesamiento de datos no controlado cuando se determina que la aplicación crítica para la seguridad no funciona correctamente en el dispositivo de procesamiento de datos no controlado después de la determinación de que se produjo el cambio en el entorno; y
permitir (1245), con el dispositivo de procesamiento de datos no controlado, que la aplicación crítica para la seguridad funcione libre de cualquier restricción en el dispositivo de procesamiento de datos no controlado cuando se determina que la aplicación crítica para la seguridad funciona adecuadamente en el dispositivo de procesamiento de datos no controlado después de la determinación de que se produjo el cambio en el entorno.
10. El procedimiento de cualquiera de las reivindicaciones anteriores, que comprende:
determinar (1410, 1415), con el dispositivo de procesamiento de datos no controlado (200), si la aplicación crítica para la seguridad (304) es incompatible con cualquier programa no relacionado en el dispositivo de procesamiento de datos no controlado; y
evitar (1420), con el dispositivo de procesamiento de datos no controlado, que ciertas características de la aplicación crítica para la seguridad funcionen en el dispositivo de procesamiento de datos no controlado cuando se determina que la aplicación crítica para la seguridad es incompatible con un programa no relacionado; en el que la determinación de que la aplicación crítica para la seguridad funciona correctamente en el dispositivo de procesamiento de datos no controlado requiere además una determinación de que la aplicación crítica para la seguridad no es incompatible con ningún programa no relacionado (1425).
11. El procedimiento de cualquiera de las reivindicaciones anteriores, que comprende:
determinar (1510, 1515), con el dispositivo de procesamiento de datos no controlado (200), si la aplicación crítica para la seguridad (304) interactúa adecuadamente con programas relacionados en el dispositivo de procesamiento de datos no controlado; y
evitar (1520), con el dispositivo de procesamiento de datos no controlado, que ciertas características de la aplicación crítica para la seguridad funcionen en el dispositivo de procesamiento de datos no controlado cuando se determina que la aplicación crítica para la seguridad no interactúa adecuadamente con un programa relacionado;
en el que la determinación de que la aplicación crítica para la seguridad funciona adecuadamente en el dispositivo
de procesamiento de datos no controlado requiere además una determinación de que la aplicación crítica para la seguridad funciona adecuadamente con los programas relacionados (1525).
12. El procedimiento de cualquiera de las reivindicaciones anteriores, que comprende:
determinar (1605, 1610, 1615), con el dispositivo de procesamiento de datos no controlado (200), si el dispositivo de procesamiento de datos no controlado tiene capacidades de energía suficientes para ejecutar la aplicación crítica para la seguridad (304) de forma segura en el dispositivo de procesamiento de datos no controlado; y evitar (1620), con el dispositivo de procesamiento de datos no controlado, que ciertas características de la aplicación crítica para la seguridad funcionen en el dispositivo de procesamiento de datos no controlado cuando se determina que el dispositivo de procesamiento de datos no controlado no tiene capacidades de energía suficientes para ejecutar la aplicación crítica para la seguridad de forma segura en el dispositivo de procesamiento de datos no controlado; en el que la determinación de que la aplicación crítica para la seguridad funciona correctamente en el dispositivo de procesamiento de datos no controlado requiere además una determinación de que el dispositivo de procesamiento de datos no controlado tiene capacidades de energía suficientes para ejecutar la aplicación crítica para la seguridad de forma segura en el dispositivo de procesamiento de datos no controlado (1625).
13. El procedimiento de cualquiera de las reivindicaciones anteriores, que comprende, además: proporcionar un arnés de prueba (310) al dispositivo de procesamiento de datos no controlado (200); en el que determinar, con el dispositivo de procesamiento de datos no controlado, si la aplicación crítica para la seguridad (304) está instalada correctamente y funciona correctamente en el dispositivo de procesamiento de datos no controlado comprende ejecutar el arnés de prueba en el dispositivo de procesamiento de datos no controlado y realizar una o más pruebas en la aplicación crítica para la seguridad y/o el dispositivo de procesamiento de datos no controlado para determinar si la aplicación crítica para la seguridad está instalada correctamente y funciona correctamente en el dispositivo de procesamiento de datos no controlado.
14. El procedimiento de la reivindicación 13, en el que evitar, con el dispositivo de procesamiento de datos no controlado (200), que ciertas características de la aplicación crítica para la seguridad (304) funcionen en el dispositivo de procesamiento de datos no controlado tras la verificación de que la aplicación crítica para la seguridad no se instaló correctamente o no funciona correctamente en el dispositivo de procesamiento de datos no controlado, se activa tras al menos una prueba de la una o más pruebas que logran un nivel de confianza inferior a un nivel predeterminado de que la aplicación crítica para la seguridad funcione correctamente en el dispositivo de procesamiento de datos no controlado.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US24057809P | 2009-09-08 | 2009-09-08 | |
| US35926510P | 2010-06-28 | 2010-06-28 | |
| PCT/US2010/047999 WO2011031675A1 (en) | 2009-09-08 | 2010-09-07 | Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| ES2866631T3 true ES2866631T3 (es) | 2021-10-19 |
| ES2866631T5 ES2866631T5 (en) | 2025-10-07 |
Family
ID=43732765
Family Applications (5)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES10815970T Active ES2866631T5 (en) | 2009-09-08 | 2010-09-07 | Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device |
| ES22181210T Active ES2965269T3 (es) | 2009-09-08 | 2010-09-07 | Procedimientos y artículos de fabricación para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado |
| ES23201090T Active ES3046632T3 (en) | 2009-09-08 | 2010-09-07 | Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device |
| ES22181214T Active ES2973057T3 (es) | 2009-09-08 | 2010-09-07 | Procedimientos y artículos de fabricación para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado |
| ES21167794T Active ES2972738T3 (es) | 2009-09-08 | 2010-09-07 | Procedimientos y artículos de fabricación para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado |
Family Applications After (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES22181210T Active ES2965269T3 (es) | 2009-09-08 | 2010-09-07 | Procedimientos y artículos de fabricación para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado |
| ES23201090T Active ES3046632T3 (en) | 2009-09-08 | 2010-09-07 | Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device |
| ES22181214T Active ES2973057T3 (es) | 2009-09-08 | 2010-09-07 | Procedimientos y artículos de fabricación para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado |
| ES21167794T Active ES2972738T3 (es) | 2009-09-08 | 2010-09-07 | Procedimientos y artículos de fabricación para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado |
Country Status (10)
| Country | Link |
|---|---|
| US (22) | US8601465B2 (es) |
| EP (7) | EP4276848B1 (es) |
| CN (2) | CN104951647B (es) |
| AU (1) | AU2010292417B9 (es) |
| DK (3) | DK2476223T4 (es) |
| ES (5) | ES2866631T5 (es) |
| FI (3) | FI2476223T4 (es) |
| LT (3) | LT3920471T (es) |
| PL (1) | PL4276848T3 (es) |
| WO (1) | WO2011031675A1 (es) |
Families Citing this family (88)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9613483B2 (en) | 2000-12-27 | 2017-04-04 | Proxense, Llc | Personal digital key and receiver/decoder circuit system and method |
| US6852104B2 (en) | 2002-02-28 | 2005-02-08 | Smiths Medical Md, Inc. | Programmable insulin pump |
| WO2005086802A2 (en) | 2004-03-08 | 2005-09-22 | Proxense, Llc | Linked account system using personal digital key (pdk-las) |
| US8352730B2 (en) | 2004-12-20 | 2013-01-08 | Proxense, Llc | Biometric personal data key (PDK) authentication |
| US8433919B2 (en) * | 2005-11-30 | 2013-04-30 | Proxense, Llc | Two-level authentication for secure transactions |
| US11206664B2 (en) | 2006-01-06 | 2021-12-21 | Proxense, Llc | Wireless network synchronization of cells and client devices on a network |
| US8036152B2 (en) | 2006-01-06 | 2011-10-11 | Proxense, Llc | Integrated power management of a client device via system time slot assignment |
| US8346335B2 (en) | 2008-03-28 | 2013-01-01 | Abbott Diabetes Care Inc. | Analyte sensor calibration management |
| US9269221B2 (en) | 2006-11-13 | 2016-02-23 | John J. Gobbi | Configuration of interfaces for a location detection system and application |
| US20080228056A1 (en) | 2007-03-13 | 2008-09-18 | Michael Blomquist | Basal rate testing using frequent blood glucose input |
| US7751907B2 (en) | 2007-05-24 | 2010-07-06 | Smiths Medical Asd, Inc. | Expert system for insulin pump therapy |
| US8221345B2 (en) | 2007-05-30 | 2012-07-17 | Smiths Medical Asd, Inc. | Insulin pump based expert system |
| WO2009062194A1 (en) | 2007-11-09 | 2009-05-14 | Proxense, Llc | Proximity-sensor supporting multiple application services |
| US8171528B1 (en) | 2007-12-06 | 2012-05-01 | Proxense, Llc | Hybrid device having a personal digital key and receiver-decoder circuit and methods of use |
| KR100960123B1 (ko) * | 2007-12-17 | 2010-05-27 | 한국전자통신연구원 | 미들웨어의 테스트 컴포넌트 운용방법 및 그 장치 |
| US9251332B2 (en) | 2007-12-19 | 2016-02-02 | Proxense, Llc | Security system and method for controlling access to computing resources |
| US20090177147A1 (en) | 2008-01-07 | 2009-07-09 | Michael Blomquist | Insulin pump with insulin therapy coaching |
| WO2009102979A2 (en) | 2008-02-14 | 2009-08-20 | Proxense, Llc | Proximity-based healthcare management system with automatic access to private information |
| WO2009126732A2 (en) | 2008-04-08 | 2009-10-15 | Proxense, Llc | Automated service-based order processing |
| WO2010121084A1 (en) | 2009-04-15 | 2010-10-21 | Abbott Diabetes Care Inc. | Analyte monitoring system having an alert |
| US8597274B2 (en) | 2009-05-22 | 2013-12-03 | Abbott Diabetes Care Inc. | Usability features for integrated insulin delivery system |
| CA2921304C (en) | 2009-07-30 | 2018-06-05 | Tandem Diabetes Care, Inc. | Infusion pump system with disposable cartridge having pressure venting and pressure feedback |
| LT3718922T (lt) | 2009-08-31 | 2022-04-25 | Abbott Diabetes Care, Inc. | Gliukozės stebėsenos sistema ir būdas |
| ES2866631T5 (en) | 2009-09-08 | 2025-10-07 | Abbott Diabetes Care Inc | Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device |
| US8882701B2 (en) | 2009-12-04 | 2014-11-11 | Smiths Medical Asd, Inc. | Advanced step therapy delivery for an ambulatory infusion pump and system |
| US9418205B2 (en) | 2010-03-15 | 2016-08-16 | Proxense, Llc | Proximity-based system for automatic application or data access and item tracking |
| WO2011149857A1 (en) | 2010-05-24 | 2011-12-01 | Abbott Diabetes Care Inc. | Method and system for updating a medical device |
| US8918854B1 (en) | 2010-07-15 | 2014-12-23 | Proxense, Llc | Proximity-based system for automatic application initialization |
| US11213226B2 (en) | 2010-10-07 | 2022-01-04 | Abbott Diabetes Care Inc. | Analyte monitoring devices and methods |
| US20120131393A1 (en) * | 2010-11-19 | 2012-05-24 | International Business Machines Corporation | Detecting System Component Failures In A Computing System |
| US20140088392A1 (en) | 2011-02-11 | 2014-03-27 | Abbott Diabetes Care Inc. | Feedback from Cloud or HCP to Payer or Patient via Meter or Cell Phone |
| US9760679B2 (en) | 2011-02-11 | 2017-09-12 | Abbott Diabetes Care Inc. | Data synchronization between two or more analyte detecting devices in a database |
| US9913599B2 (en) | 2011-02-11 | 2018-03-13 | Abbott Diabetes Care Inc. | Software applications residing on handheld analyte determining devices |
| US9265450B1 (en) | 2011-02-21 | 2016-02-23 | Proxense, Llc | Proximity-based system for object tracking and automatic application initialization |
| US11087868B2 (en) | 2011-09-28 | 2021-08-10 | Abbott Diabetes Care Inc. | Methods, devices and systems for analyte monitoring management |
| WO2013078426A2 (en) | 2011-11-25 | 2013-05-30 | Abbott Diabetes Care Inc. | Analyte monitoring system and methods of use |
| US9118520B1 (en) * | 2012-04-20 | 2015-08-25 | Symantec Corporation | Systems and methods for monitoring application resource usage on mobile computing systems |
| US9335910B2 (en) | 2012-04-23 | 2016-05-10 | Tandem Diabetes Care, Inc. | System and method for reduction of inadvertent activation of medical device during manipulation |
| US9462970B2 (en) | 2012-04-24 | 2016-10-11 | Abbott Diabetes Care Inc. | Methods of lag-compensation for analyte measurements, and devices related thereto |
| US9180242B2 (en) | 2012-05-17 | 2015-11-10 | Tandem Diabetes Care, Inc. | Methods and devices for multiple fluid transfer |
| US9715327B2 (en) | 2012-06-07 | 2017-07-25 | Tandem Diabetes Care, Inc. | Preventing inadvertent changes in ambulatory medical devices |
| US9238100B2 (en) | 2012-06-07 | 2016-01-19 | Tandem Diabetes Care, Inc. | Device and method for training users of ambulatory medical devices |
| US8789055B1 (en) | 2012-08-01 | 2014-07-22 | Kabam, Inc. | Maintaining time fidelity for an instance of a virtual space placed in a background state |
| WO2014047483A1 (en) | 2012-09-21 | 2014-03-27 | Abbott Diabetes Care Inc. | In vivo sensors having ceria nanoparticle electrodes |
| WO2014052136A1 (en) | 2012-09-26 | 2014-04-03 | Abbott Diabetes Care Inc. | Method and apparatus for improving lag correction during in vivo measurement of analyte concentration with analyte concentration variability and range data |
| US9173998B2 (en) | 2013-03-14 | 2015-11-03 | Tandem Diabetes Care, Inc. | System and method for detecting occlusions in an infusion pump |
| US9242043B2 (en) | 2013-03-15 | 2016-01-26 | Tandem Diabetes Care, Inc. | Field update of an ambulatory infusion pump system |
| US9486171B2 (en) | 2013-03-15 | 2016-11-08 | Tandem Diabetes Care, Inc. | Predictive calibration |
| AU2014260023B2 (en) | 2013-04-30 | 2018-12-06 | Abbott Diabetes Care Inc. | Systems, devices, and methods for energy efficient electrical device activation |
| US9405898B2 (en) | 2013-05-10 | 2016-08-02 | Proxense, Llc | Secure element as a digital pocket |
| WO2015035304A1 (en) | 2013-09-06 | 2015-03-12 | Tandem Diabetes Care, Inc. | System and method for mitigating risk in automated medicament dosing |
| US9565718B2 (en) | 2013-09-10 | 2017-02-07 | Tandem Diabetes Care, Inc. | System and method for detecting and transmitting medical device alarm with a smartphone application |
| DE102013218814A1 (de) * | 2013-09-19 | 2015-03-19 | Siemens Aktiengesellschaft | Verfahren zum Betreiben eines sicherheitskritischen Systems |
| EP3087548A4 (en) | 2013-12-26 | 2017-09-13 | Tandem Diabetes Care, Inc. | Safety processor for wireless control of a drug delivery device |
| EP4250313A3 (en) | 2013-12-26 | 2023-11-22 | Tandem Diabetes Care, Inc. | Integration of infusion pump with remote electronic device |
| EP3091893B1 (en) | 2014-01-10 | 2020-11-18 | Ascensia Diabetes Care Holdings AG | Setup synchronization apparatus and methods for end user medical devices |
| US10279106B1 (en) | 2014-05-08 | 2019-05-07 | Tandem Diabetes Care, Inc. | Insulin patch pump |
| CN106797368B (zh) | 2014-07-07 | 2022-10-11 | 安晟信医疗科技控股公司 | 考虑到至少一个条件的改进装置配对 |
| US9669160B2 (en) | 2014-07-30 | 2017-06-06 | Tandem Diabetes Care, Inc. | Temporary suspension for closed-loop medicament therapy |
| EP3175603A4 (en) * | 2014-07-31 | 2018-03-21 | Abbott Diabetes Care Inc. | Safety mitigations for hosting a safety critical application on an uncontrolled data processing device |
| AU2015302326A1 (en) | 2014-08-15 | 2017-03-02 | Abbott Diabetes Care Inc. | Temperature insensitive in vivo analyte devices, methods and systems |
| WO2016065190A1 (en) | 2014-10-23 | 2016-04-28 | Abbott Diabetes Care Inc. | Electrodes having at least one sensing structure and methods for making and using the same |
| US10057352B2 (en) * | 2015-03-13 | 2018-08-21 | Qualcomm Incorporated | Internet of everything device relay discovery and selection |
| DE102015005003A1 (de) | 2015-04-21 | 2016-10-27 | Simanowski Holding GmbH | Vorrichtung zum Einregeln des Blutzuckergehalts eines Patienten |
| US20160345830A1 (en) * | 2015-05-27 | 2016-12-01 | Senseonics, Incorporated | Wireless analyte monitoring |
| CA2987091A1 (en) | 2015-06-15 | 2016-12-22 | Abbott Diabetes Care Inc. | Stabilized lactate responsive enzymes, electrodes and sensors, and methods for making and using the same |
| EP4104878A1 (en) | 2015-08-20 | 2022-12-21 | Tandem Diabetes Care, Inc. | Drive mechanism for infusion pump |
| US10569016B2 (en) | 2015-12-29 | 2020-02-25 | Tandem Diabetes Care, Inc. | System and method for switching between closed loop and open loop control of an ambulatory infusion pump |
| FI3423591T3 (fi) | 2016-03-04 | 2024-02-01 | Abbott Diabetes Care Inc | Nad(p)-riippuvaisia responsiivisia entsyymejä, elektrodeja ja antureita ja menetelmiä niiden valmistamiseksi ja käyttämiseksi |
| US20170344718A1 (en) * | 2016-05-31 | 2017-11-30 | Ascensia Diabetes Care Holdings Ag | Systems, apparatus, and methods for a medical device communication bridge |
| US10645631B2 (en) | 2016-06-09 | 2020-05-05 | Qualcomm Incorporated | Device detection in mixed static and mobile device networks |
| US10994077B2 (en) | 2016-07-21 | 2021-05-04 | Tandem Diabetes Care, Inc. | Enhanced confirmations for touchscreen infusion pump |
| US10262157B2 (en) * | 2016-09-28 | 2019-04-16 | International Business Machines Corporation | Application recommendation based on permissions |
| EP3460702A1 (en) * | 2017-09-20 | 2019-03-27 | Gemalto Sa | Method to detect an attack by fault injection on a sensitive operation |
| EP3477649A1 (en) * | 2017-10-31 | 2019-05-01 | Tecpharma Licensing AG | Safety-critical drug delivery parameter determination |
| EP3476417A1 (en) | 2017-10-31 | 2019-05-01 | Tecpharma Licensing AG | Monitoring of disposable injection devices |
| WO2019094908A1 (en) | 2017-11-13 | 2019-05-16 | Senseonics, Incorporated | Analyte monitoring system and method for determining system usage |
| CN108170477B (zh) * | 2017-11-17 | 2020-12-15 | 上海微波技术研究所(中国电子科技集团公司第五十研究所) | Sca软件无线电台中自动生产配置文件的方法 |
| JP7080982B2 (ja) | 2017-11-17 | 2022-06-06 | エフ.ホフマン-ラ ロシュ アーゲー | 医療システムにおける医療装置の動作を制御する方法および医療システム |
| FR3084500B1 (fr) * | 2018-07-26 | 2020-07-03 | Thales | Procede et dispositif electronique d'installation logicielles avioniques sur une plateforme comprenant un processeur multicoeurs, programme d'ordinateur et systeme electronique associes |
| CN112469468B (zh) | 2018-09-12 | 2025-01-07 | 科利耳有限公司 | 安全关键电子设备锁 |
| US11703421B2 (en) | 2019-01-31 | 2023-07-18 | Pratt & Whitney Canada Corp. | System and method for validating component integrity in an engine |
| US10963314B2 (en) * | 2019-07-31 | 2021-03-30 | Servicenow, Inc. | Discovery and mapping of a platform-as-a-service environment |
| EP4284246A1 (en) | 2021-01-26 | 2023-12-06 | Abbott Diabetes Care, Inc. | Systems, devices, and methods related to ketone sensors |
| US20230039760A1 (en) * | 2021-08-04 | 2023-02-09 | Pratt & Whitney Canada Corp. | System and method for monitoring life limit of engine components |
| JP2024539810A (ja) * | 2021-11-19 | 2024-10-31 | バイオトロニック エスエー アンド カンパニー カーゲー | 植込み型医療デバイスの患者クリティカルなファームウェア機能を保護するためのコンピュータ実装方法及びシステム |
| US20250051826A1 (en) | 2021-12-13 | 2025-02-13 | Heraeus Medical Gmbh | Tests and methods for detecting bacterial infection |
| EP4357778A1 (en) | 2022-10-20 | 2024-04-24 | Heraeus Medical GmbH | Treatment of microbial infections diagnosed using the biomarker d-lactate |
Family Cites Families (153)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3979657A (en) * | 1973-05-15 | 1976-09-07 | Westinghouse Electric Corporation | Battery monitor with automatic scale and recycle prevents |
| US5031616A (en) * | 1989-12-07 | 1991-07-16 | Siemens-Pacesetter, Inc. | Implantable stimulation device having means for self-regulating curent drain usage at battery depletion |
| US5394871A (en) * | 1992-06-25 | 1995-03-07 | Siemens Aktiengesellschaft | Medical diagnostics installation |
| US5339261A (en) | 1992-10-22 | 1994-08-16 | Base 10 Systems, Inc. | System for operating application software in a safety critical environment |
| US6330426B2 (en) * | 1994-05-23 | 2001-12-11 | Stephen J. Brown | System and method for remote education using a memory card |
| US7467093B1 (en) * | 1994-12-16 | 2008-12-16 | Automed Technologies, Inc | Method of tracking and despensing medical items to patients through self service delivery system |
| US6110228A (en) * | 1994-12-28 | 2000-08-29 | International Business Machines Corporation | Method and apparatus for software maintenance at remote nodes |
| US5526364A (en) * | 1995-02-10 | 1996-06-11 | Micron Quantum Devices, Inc. | Apparatus for entering and executing test mode operations for memory |
| US5572671A (en) | 1995-02-17 | 1996-11-05 | Base Ten Systems, Inc. | Method for operating application software in a safety critical environment |
| DE19611520A1 (de) * | 1996-03-23 | 1997-09-25 | Bosch Gmbh Robert | System zum Test eines in einem Steuergerät eingebauten Rechners |
| US5754963A (en) * | 1996-07-30 | 1998-05-19 | Hitachi America, Ltd. | Method and apparatus for diagnosing and isolating faulty sensors in a redundant sensor system |
| FI112545B (fi) * | 1997-05-30 | 2003-12-15 | Nokia Corp | Menetelmä ja järjestelmä potilaan veren glykosyloidun hemoglobiinikomponentin tason ennustamiseksi |
| IL121348A0 (en) | 1997-07-21 | 1998-04-05 | Bio Rad Lab Israel Inc | System and method for device monitoring |
| US6128774A (en) * | 1997-10-28 | 2000-10-03 | Necula; George C. | Safe to execute verification of software |
| US7542878B2 (en) | 1998-03-03 | 2009-06-02 | Card Guard Scientific Survival Ltd. | Personal health monitor and a method for health monitoring |
| US6558320B1 (en) | 2000-01-20 | 2003-05-06 | Medtronic Minimed, Inc. | Handheld personal data assistant (PDA) with a medical device and method of using the same |
| US6546553B1 (en) * | 1998-10-02 | 2003-04-08 | Microsoft Corporation | Service installation on a base function and provision of a pass function with a service-free base function semantic |
| US6081466A (en) * | 1998-10-30 | 2000-06-27 | Stmicroelectronics, Inc. | Stress test mode entry at power up for low/zero power memories |
| US6272674B1 (en) * | 1998-12-14 | 2001-08-07 | Nortel Networks Limited | Method and apparatus for loading a Java application program |
| US6360888B1 (en) * | 1999-02-25 | 2002-03-26 | Minimed Inc. | Glucose sensor package system |
| US6490722B1 (en) * | 1999-03-30 | 2002-12-03 | Tivo Inc. | Software installation and recovery system |
| US7152092B2 (en) * | 1999-05-05 | 2006-12-19 | Indeliq, Inc. | Creating chat rooms with multiple roles for multiple participants |
| US7149773B2 (en) | 1999-07-07 | 2006-12-12 | Medtronic, Inc. | System and method of automated invoicing for communications between an implantable medical device and a remote computer system or health care provider |
| US6745385B1 (en) | 1999-09-01 | 2004-06-01 | Microsoft Corporation | Fixing incompatible applications by providing stubs for APIs |
| US6637649B2 (en) * | 1999-12-28 | 2003-10-28 | Christopher S. Walsh | Record and verification method, apparatus and system |
| US6640334B1 (en) * | 1999-09-27 | 2003-10-28 | Nortel Networks Limited | Method and apparatus of remotely updating firmware of a communication device |
| TW539982B (en) * | 1999-10-25 | 2003-07-01 | Sony Corp | Content providing system, content distribution method, and memory medium |
| US7191208B1 (en) * | 1999-12-14 | 2007-03-13 | International Business Machines Corporation | Methods of selectively distributing data in a computer network and systems using the same |
| US6604237B1 (en) * | 1999-12-14 | 2003-08-05 | International Business Machines Corporation | Apparatus for journaling during software deployment and method therefor |
| US6466025B1 (en) * | 2000-01-13 | 2002-10-15 | Midtronics, Inc. | Alternator tester |
| US6740075B2 (en) | 2000-01-21 | 2004-05-25 | Medtronic Minimed, Inc. | Ambulatory medical apparatus with hand held communication device |
| US6285298B1 (en) * | 2000-02-24 | 2001-09-04 | Rockwell Collins | Safety critical system with a common sensor detector |
| US6959330B1 (en) * | 2000-05-16 | 2005-10-25 | Palmsource, Inc. | Sync-time read only memory image binding for limited resource devices |
| WO2002000112A2 (en) * | 2000-06-26 | 2002-01-03 | Boston Medical Technologies, Inc. | Glucose metering system |
| NO312269B1 (no) * | 2000-06-28 | 2002-04-15 | Ericsson Telefon Ab L M | Fremgangsmåte for automatisering av programvareoppgradering |
| WO2002017210A2 (en) | 2000-08-18 | 2002-02-28 | Cygnus, Inc. | Formulation and manipulation of databases of analyte and associated values |
| US7596784B2 (en) * | 2000-09-12 | 2009-09-29 | Symantec Operating Corporation | Method system and apparatus for providing pay-per-use distributed computing resources |
| EP1397068A2 (en) | 2001-04-02 | 2004-03-17 | Therasense, Inc. | Blood glucose tracking apparatus and methods |
| US7308300B2 (en) * | 2001-05-30 | 2007-12-11 | Acist Medical Systems, Inc. | Medical injection system |
| US7194013B2 (en) | 2001-07-02 | 2007-03-20 | Nichia Corporation | GaN semiconductor laser device, and optical disk information system using the laser device |
| EP1288757A1 (de) * | 2001-08-07 | 2003-03-05 | Siemens Aktiengesellschaft | Verfahren und Prozessleitsystem zum Betrieb einer technischen Anlage |
| US8086665B1 (en) * | 2001-08-21 | 2011-12-27 | Rockstar Bidco, LP | Technique for enabling a plurality of software components to communicate in a software component matrix environment |
| EP1442368A4 (en) * | 2001-09-19 | 2006-05-10 | Steven G Belovich | METHOD AND SYSTEM FOR PROVIDING A VIRUS IMMUNE BASED ON RULES |
| US7251812B1 (en) * | 2001-10-31 | 2007-07-31 | Microsoft Corporation | Dynamic software update |
| EP1456926B1 (en) * | 2001-12-14 | 2013-03-27 | STMicroelectronics Asia Pacific Pte Ltd. | Transient voltage clamping circuit |
| ATE448592T1 (de) * | 2002-03-04 | 2009-11-15 | Ericsson Telefon Ab L M | Batterieschutzschaltung |
| JP2004005419A (ja) | 2002-03-25 | 2004-01-08 | Canon Inc | インストール処理装置、処理方法及び記憶媒体ならびにプログラム |
| US6948082B2 (en) * | 2002-05-17 | 2005-09-20 | International Business Machines Corporation | Method and apparatus for software-assisted thermal management for electronic systems |
| US7254608B2 (en) * | 2002-10-31 | 2007-08-07 | Sun Microsystems, Inc. | Managing distribution of content using mobile agents in peer-topeer networks |
| US6888468B2 (en) * | 2003-01-22 | 2005-05-03 | Midtronics, Inc. | Apparatus and method for protecting a battery from overdischarge |
| JP4417123B2 (ja) * | 2003-02-19 | 2010-02-17 | パナソニック株式会社 | ソフトウェア更新方法及び無線通信装置 |
| US7899934B2 (en) | 2003-03-31 | 2011-03-01 | Symantec Corporation | Handling un-partitioning of a computer network |
| US7353509B2 (en) * | 2003-05-27 | 2008-04-01 | Akamai Technologies, Inc. | Method and system for managing software installs in a distributed computer network |
| US7627868B2 (en) * | 2003-06-20 | 2009-12-01 | N2 Broadband, Inc. | Systems and methods for distributing software for a host device in a cable system |
| DE10334516B4 (de) * | 2003-07-29 | 2006-06-14 | Sorin Group Deutschland Gmbh | Anzeige- und Bedienvorrichtung für medizintechnische Geräte und Anzeige-/Bedieneinheit dafür |
| US20050102669A1 (en) | 2003-10-15 | 2005-05-12 | Siemens Medical Solutions Usa, Inc. | Software installation file verification media and methods for medical equipment |
| US7334226B2 (en) * | 2003-10-30 | 2008-02-19 | International Business Machines Corporation | Autonomic auto-configuration using prior installation configuration relationships |
| US7299082B2 (en) * | 2003-10-31 | 2007-11-20 | Abbott Diabetes Care, Inc. | Method of calibrating an analyte-measurement device, and associated methods, devices and systems |
| US7682351B2 (en) * | 2003-12-17 | 2010-03-23 | Aoki Thomas T | Method for infusing insulin to a subject to improve impaired hepatic glucose processing |
| GB2413653B (en) | 2004-04-29 | 2007-11-28 | Symbian Software Ltd | Installation of software on removable media |
| US8224669B2 (en) * | 2004-07-01 | 2012-07-17 | Anchor Holdings, Inc. | Chronic disease management system |
| US8397224B2 (en) * | 2004-09-13 | 2013-03-12 | The Mathworks, Inc. | Methods and system for executing a program in multiple execution environments |
| US8156488B2 (en) | 2004-10-20 | 2012-04-10 | Nokia Corporation | Terminal, method and computer program product for validating a software application |
| US7640552B2 (en) * | 2004-10-29 | 2009-12-29 | Microsoft Corporation | Multimedia filter resilience |
| US20060093149A1 (en) | 2004-10-30 | 2006-05-04 | Shera International Ltd. | Certified deployment of applications on terminals |
| KR100790068B1 (ko) * | 2004-11-19 | 2007-12-31 | 삼성전자주식회사 | 디지털 멀티미디어 방송 수신 단말기의 파워 제어 장치 및 방법 |
| US7343364B2 (en) * | 2005-02-04 | 2008-03-11 | Efunds Corporation | Rules-based system architecture and systems using the same |
| JP2008537897A (ja) * | 2005-02-09 | 2008-10-02 | インライト ソリューションズ,インク. | 非侵襲的に検体を判定する方法及び装置 |
| WO2006086566A2 (en) * | 2005-02-09 | 2006-08-17 | Inlight Solutions, Inc. | Methods and apparatuses for noninvasive determinations of analytes |
| DE102005006111A1 (de) | 2005-02-10 | 2006-08-24 | Roche Diagnostics Gmbh | Verfahren zur Steuerung des Funktionsumfangs diagnostischer Vorrichtungen |
| US7689985B2 (en) * | 2005-03-04 | 2010-03-30 | Microsoft Corporation | Versioning support for drivers frameworks |
| DE102005014050A1 (de) * | 2005-03-23 | 2006-09-28 | Endress + Hauser Process Solutions Ag | Verfahren zum sicheren Bedienen eines Feldgerätes der Automatisierungstechnik |
| US7676845B2 (en) * | 2005-03-24 | 2010-03-09 | Microsoft Corporation | System and method of selectively scanning a file on a computing device for malware |
| US20060229772A1 (en) * | 2005-04-08 | 2006-10-12 | Honeywell International Inc. | Systems and methods for avionics software delivery |
| CN101040552B (zh) | 2005-04-18 | 2010-12-01 | 捷讯研究有限公司 | 控制软件版本更新的方法和系统 |
| US7509156B2 (en) * | 2005-05-18 | 2009-03-24 | Clarian Health Partners, Inc. | System for managing glucose levels in patients with diabetes or hyperglycemia |
| US7333028B2 (en) * | 2005-06-01 | 2008-02-19 | Global Traffic Technologies, Llc | Traffic preemption system communication method |
| US8078740B2 (en) * | 2005-06-03 | 2011-12-13 | Microsoft Corporation | Running internet applications with low rights |
| WO2006135726A2 (en) * | 2005-06-09 | 2006-12-21 | Whirlpool Corporation | Software architecture system and method for communication with, and management of, at least one component within a household appliance |
| US8533253B2 (en) * | 2005-06-09 | 2013-09-10 | Whirlpool Corporation | Distributed object-oriented appliance control system |
| EP1904151A4 (en) * | 2005-06-22 | 2011-06-22 | Univ Pittsburgh | EMERGENCY CONSERVATION AND REVIVAL METHODS |
| EP1899814B1 (en) * | 2005-06-30 | 2017-05-03 | Sling Media, Inc. | Firmware update for consumer electronic device |
| DE102005037230A1 (de) | 2005-08-08 | 2007-02-15 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems |
| US9177153B1 (en) * | 2005-10-07 | 2015-11-03 | Carnegie Mellon University | Verifying integrity and guaranteeing execution of code on untrusted computer platform |
| WO2007064781A2 (en) * | 2005-11-30 | 2007-06-07 | Kelsey-Hayes Company | Microprocessor memory management |
| US20070185545A1 (en) | 2006-02-06 | 2007-08-09 | Medtronic Emergency Response Systems, Inc. | Post-download patient data protection in a medical device |
| US20070275733A1 (en) * | 2006-03-03 | 2007-11-29 | David Vismons | Method for providing certain information |
| WO2007112034A2 (en) | 2006-03-23 | 2007-10-04 | Becton, Dickinson And Company | System and methods for improved diabetes data management and use |
| US9326709B2 (en) * | 2010-03-10 | 2016-05-03 | Abbott Diabetes Care Inc. | Systems, devices and methods for managing glucose levels |
| US20070234337A1 (en) * | 2006-03-31 | 2007-10-04 | Prowess Consulting, Llc | System and method for sanitizing a computer program |
| DE102006016891A1 (de) * | 2006-04-11 | 2007-10-25 | Robert Bosch Gmbh | Erweiterung der Funktionalität einer Serien-Software in einem Steuergerät |
| US8323189B2 (en) * | 2006-05-12 | 2012-12-04 | Bao Tran | Health monitoring appliance |
| US7992062B2 (en) * | 2006-06-22 | 2011-08-02 | Qualcomm Incorporated | Logic device and method supporting scan test |
| TWI311644B (en) | 2006-07-17 | 2009-07-01 | Eps Bio Technology Corp | Biosensing device |
| CN101513008B (zh) | 2006-07-31 | 2012-09-19 | 意大利电信股份公司 | 在电信终端上实现安全性的系统 |
| US7616882B2 (en) * | 2006-08-10 | 2009-11-10 | Research In Motion Limited | Method and apparatus for power management in an electronic device |
| US7802082B2 (en) | 2006-08-31 | 2010-09-21 | Intel Corporation | Methods and systems to dynamically configure computing apparatuses |
| US8564544B2 (en) * | 2006-09-06 | 2013-10-22 | Apple Inc. | Touch screen device, method, and graphical user interface for customizing display of content category icons |
| DE102006048169A1 (de) * | 2006-10-10 | 2008-04-17 | Robert Bosch Gmbh | Verfahren zur Überwachung einer Funktionsfähigkeit einer Steuerung |
| WO2008051939A2 (en) | 2006-10-24 | 2008-05-02 | Medapps, Inc. | Systems and methods for medical data transmission |
| US8204729B2 (en) * | 2006-11-01 | 2012-06-19 | Philip Michael Sher | Device for predicting and managing blood glucose by analyzing the effect of, and controlling, pharmacodynamic insulin equivalents |
| US20080127175A1 (en) * | 2006-11-01 | 2008-05-29 | Microsoft Corporation | Packaging software products as single-file executables containing scripting logic |
| US20100242034A1 (en) * | 2006-11-01 | 2010-09-23 | Microsoft Corporation | Distributing software products as an executable containing script logic with external resources |
| US7628054B2 (en) * | 2006-11-09 | 2009-12-08 | Abbott Medical Optics Inc. | Calibration utility for non-linear measurement system |
| EP2158530B1 (en) * | 2007-03-05 | 2015-09-23 | Tecey Software Development KG, LLC | Apparatus and method for controlling voltage and current in a fluorescent lamp array |
| US20080234562A1 (en) * | 2007-03-19 | 2008-09-25 | Jina Arvind N | Continuous analyte monitor with multi-point self-calibration |
| US8555070B2 (en) * | 2007-04-10 | 2013-10-08 | Abbott Medical Optics Inc. | External interface access control for medical systems |
| EP2535830B1 (en) | 2007-05-30 | 2018-11-21 | Ascensia Diabetes Care Holdings AG | Method and system for managing health data |
| CA2688442A1 (en) * | 2007-11-02 | 2009-05-07 | Edwards Lifesciences Corporation | Analyte monitoring system capable of detecting and providing protection against signal noise generated by external systems that may affect the monitoring system |
| US8286143B2 (en) | 2007-11-13 | 2012-10-09 | International Business Machines Corporation | Method and system for monitoring code change impact on software performance |
| US8078592B2 (en) † | 2007-12-07 | 2011-12-13 | Roche Diagnostics Operations, Inc. | System and method for database integrity checking |
| US8566818B2 (en) * | 2007-12-07 | 2013-10-22 | Roche Diagnostics Operations, Inc. | Method and system for configuring a consolidated software application |
| US7996245B2 (en) * | 2007-12-07 | 2011-08-09 | Roche Diagnostics Operations, Inc. | Patient-centric healthcare information maintenance |
| DE102008003531A1 (de) * | 2008-01-08 | 2009-07-09 | Giesecke & Devrient Gmbh | Softwareidentifikation |
| RU2512794C2 (ru) * | 2008-02-06 | 2014-04-10 | Капи Спрл | Способ и устройство для определения частотного диапазона шума |
| JP5127490B2 (ja) * | 2008-02-07 | 2013-01-23 | キヤノン株式会社 | 画像形成装置、画像形成装置の遠隔更新検証方法及びプログラム |
| EP2252957A1 (en) | 2008-03-04 | 2010-11-24 | Apple Inc. | Managing code entitlements for software developers in secure operating environments |
| US7944092B2 (en) * | 2008-04-02 | 2011-05-17 | Kabushiki Kaisha Toshiba | Device having malfunction preventing circuit |
| TW200949692A (en) * | 2008-05-20 | 2009-12-01 | Inventec Corp | Method for making test fixture |
| CA2729184C (en) | 2008-07-07 | 2016-10-11 | Agamatrix, Inc. | Integrated blood glucose measurement device |
| US8103718B2 (en) * | 2008-07-31 | 2012-01-24 | Microsoft Corporation | Content discovery and transfer between mobile communications nodes |
| CN101369303B (zh) * | 2008-10-13 | 2010-12-08 | 金蝶软件(中国)有限公司 | 控制并发用户数的方法及系统 |
| US7895011B2 (en) | 2008-12-17 | 2011-02-22 | Bausch & Lomb Incorporated | Method and apparatus for performing remote calibration verification |
| US9918635B2 (en) * | 2008-12-23 | 2018-03-20 | Roche Diabetes Care, Inc. | Systems and methods for optimizing insulin dosage |
| US8615752B2 (en) * | 2008-12-30 | 2013-12-24 | International Business Machines Corporation | System and method for detecting software patch dependencies |
| CN102300501B (zh) | 2009-02-04 | 2015-04-08 | 艾伯特糖尿病护理公司 | 多功能分析物测试装置及其方法 |
| EP3703066B8 (en) * | 2009-02-25 | 2025-05-21 | University Of Virginia Patent Foundation | Method, system and computer program product for cgm-based prevention of hypoglycemia via hypoglycemia risk assessment |
| KR20100097454A (ko) * | 2009-02-26 | 2010-09-03 | 삼성전자주식회사 | 복수의 상 변화 메모리들, 버퍼램, 및 낸드 플래시 메모리를 구비한 메모리 모듈 |
| US8370835B2 (en) * | 2009-03-12 | 2013-02-05 | Arend Erich Dittmer | Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device |
| CN101588244A (zh) * | 2009-05-08 | 2009-11-25 | 中兴通讯股份有限公司 | 对网络设备进行鉴权的方法及系统 |
| WO2010141922A1 (en) | 2009-06-04 | 2010-12-09 | Abbott Diabetes Care Inc. | Method and system for updating a medical device |
| US9218453B2 (en) * | 2009-06-29 | 2015-12-22 | Roche Diabetes Care, Inc. | Blood glucose management and interface systems and methods |
| ES2866631T5 (en) | 2009-09-08 | 2025-10-07 | Abbott Diabetes Care Inc | Methods and articles of manufacture for hosting a safety critical application on an uncontrolled data processing device |
| CN102667787A (zh) * | 2009-09-30 | 2012-09-12 | 莫尔研究应用有限公司 | 管理胰岛素输注的监视装置 |
| KR20180078345A (ko) * | 2009-10-19 | 2018-07-09 | 테라노스, 인코포레이티드 | 통합형 건강 정보 취득 및 분석 시스템 |
| US8296756B1 (en) * | 2009-11-06 | 2012-10-23 | Southern Company Services, Inc. | Patch cycle master records management and server maintenance system |
| US8893120B2 (en) * | 2010-01-29 | 2014-11-18 | Howard Pinsky | Controlled use medical applicaton |
| WO2011149857A1 (en) * | 2010-05-24 | 2011-12-01 | Abbott Diabetes Care Inc. | Method and system for updating a medical device |
| CN102541619B (zh) * | 2010-12-23 | 2015-09-16 | 国际商业机器公司 | 虚拟机管理装置和方法 |
| US9122775B2 (en) * | 2011-01-03 | 2015-09-01 | Ford Global Technologies, Llc | Medical data acquisition and provision |
| US8732693B2 (en) * | 2011-08-04 | 2014-05-20 | Microsoft Corporation | Managing continuous software deployment |
| US8475739B2 (en) * | 2011-09-25 | 2013-07-02 | Theranos, Inc. | Systems and methods for fluid handling |
| US8935691B2 (en) * | 2011-09-19 | 2015-01-13 | Mourad Ben Ayed | Program store for updating electronic devices |
| US9746527B2 (en) * | 2011-11-21 | 2017-08-29 | Blackberry Limited | Method and apparatus for battery charge level estimation |
| US9010477B2 (en) * | 2012-02-16 | 2015-04-21 | Aonec, Llc | In vehicle glucose apparatus and vehicular operation inhibitor |
| US20140012118A1 (en) * | 2012-07-09 | 2014-01-09 | Dexcom, Inc. | Systems and methods for leveraging smartphone features in continuous glucose monitoring |
| US8813061B2 (en) * | 2012-10-17 | 2014-08-19 | Movimento Group | Module updating device |
| US8978027B2 (en) * | 2012-11-08 | 2015-03-10 | Nvidia Corporation | Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor |
| US9124635B2 (en) * | 2012-11-30 | 2015-09-01 | Intel Corporation | Verified sensor data processing |
| CN105705078B (zh) * | 2013-12-16 | 2022-03-15 | 德克斯康公司 | 用于监测和管理由用户穿戴的分析物传感器系统中的电池的寿命的系统和方法 |
| US9380536B2 (en) * | 2014-09-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced device selection algorithm for device-to-device (D2D) communication |
| US9715246B2 (en) * | 2015-03-27 | 2017-07-25 | Nxp Usa, Inc. | State-based undervoltage hysteresis |
| CA3254799A1 (en) | 2015-07-10 | 2025-04-12 | Abbott Diabetes Care Inc | System, device and method of dynamic glucose profile response to physiological parameters |
-
2010
- 2010-09-07 ES ES10815970T patent/ES2866631T5/es active Active
- 2010-09-07 FI FIEP10815970.8T patent/FI2476223T4/fi active
- 2010-09-07 EP EP23201090.0A patent/EP4276848B1/en active Active
- 2010-09-07 ES ES22181210T patent/ES2965269T3/es active Active
- 2010-09-07 CN CN201510263994.0A patent/CN104951647B/zh active Active
- 2010-09-07 LT LTEP21167794.3T patent/LT3920471T/lt unknown
- 2010-09-07 FI FIEP21167794.3T patent/FI3920471T3/fi active
- 2010-09-07 DK DK10815970.8T patent/DK2476223T4/da active
- 2010-09-07 LT LTEP22181214.2T patent/LT4087196T/lt unknown
- 2010-09-07 EP EP22181210.0A patent/EP4087195B1/en active Active
- 2010-09-07 AU AU2010292417A patent/AU2010292417B9/en active Active
- 2010-09-07 LT LTEP10815970.8T patent/LT2476223T/lt unknown
- 2010-09-07 US US12/876,840 patent/US8601465B2/en active Active
- 2010-09-07 DK DK22181214.2T patent/DK4087196T3/da active
- 2010-09-07 ES ES23201090T patent/ES3046632T3/es active Active
- 2010-09-07 EP EP21194269.3A patent/EP3940533A1/en not_active Withdrawn
- 2010-09-07 FI FIEP22181214.2T patent/FI4087196T3/fi active
- 2010-09-07 DK DK21167794.3T patent/DK3920471T3/da active
- 2010-09-07 EP EP10815970.8A patent/EP2476223B2/en active Active
- 2010-09-07 ES ES22181214T patent/ES2973057T3/es active Active
- 2010-09-07 WO PCT/US2010/047999 patent/WO2011031675A1/en not_active Ceased
- 2010-09-07 ES ES21167794T patent/ES2972738T3/es active Active
- 2010-09-07 CN CN201080029502.7A patent/CN102474443B/zh active Active
- 2010-09-07 EP EP25192593.9A patent/EP4641390A2/en active Pending
- 2010-09-07 EP EP22181214.2A patent/EP4087196B1/en active Active
- 2010-09-07 EP EP21167794.3A patent/EP3920471B1/en active Active
- 2010-09-07 PL PL23201090.0T patent/PL4276848T3/pl unknown
-
2013
- 2013-11-11 US US14/076,984 patent/US9015698B2/en active Active
- 2013-11-14 US US14/080,510 patent/US9015699B2/en active Active
- 2013-11-18 US US14/083,142 patent/US9015701B2/en active Active
- 2013-11-21 US US14/086,654 patent/US9015700B2/en active Active
- 2013-11-25 US US14/088,844 patent/US9058431B2/en active Active
-
2015
- 2015-06-15 US US14/739,976 patent/US9519333B2/en active Active
- 2015-06-19 US US14/745,106 patent/US9524016B2/en active Active
- 2015-06-19 US US14/745,099 patent/US9529413B2/en active Active
- 2015-06-22 US US14/746,556 patent/US9529414B2/en active Active
- 2015-06-22 US US14/746,542 patent/US9524017B2/en active Active
- 2015-06-23 US US14/747,798 patent/US9519335B2/en active Active
- 2015-06-23 US US14/747,792 patent/US9519334B2/en active Active
- 2015-06-24 US US14/748,942 patent/US9552052B2/en active Active
- 2015-06-24 US US14/748,936 patent/US9619013B2/en active Active
- 2015-06-25 US US14/750,881 patent/US10241562B2/en active Active
-
2019
- 2019-02-11 US US16/272,300 patent/US11099627B2/en active Active
-
2021
- 2021-08-04 US US17/394,010 patent/US11586273B2/en active Active
- 2021-09-28 US US17/487,553 patent/US11301027B2/en active Active
-
2022
- 2022-03-30 US US17/708,297 patent/US20220221927A1/en not_active Abandoned
- 2022-08-16 US US17/820,211 patent/US20220391009A1/en not_active Abandoned
-
2024
- 2024-01-23 US US18/420,548 patent/US20240201775A1/en active Pending
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2866631T3 (es) | Procedimientos y artículos de fabricación para alojar una aplicación crítica para la seguridad en un dispositivo de procesamiento de datos no controlado |