CN104951647A - 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品 - Google Patents

在不受控制数据处理设备上容纳安全关键应用程序的方法和制品 Download PDF

Info

Publication number
CN104951647A
CN104951647A CN201510263994.0A CN201510263994A CN104951647A CN 104951647 A CN104951647 A CN 104951647A CN 201510263994 A CN201510263994 A CN 201510263994A CN 104951647 A CN104951647 A CN 104951647A
Authority
CN
China
Prior art keywords
sca
udpd
application program
testing tool
tool application
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.)
Granted
Application number
CN201510263994.0A
Other languages
English (en)
Other versions
CN104951647B (zh
Inventor
D·M·伯恩斯坦
S·尼库马尔兰
M·K·斯罗恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Abbott Diabetes Care Inc
Original Assignee
Abbott Diabetes Care Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=43732765&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN104951647(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Abbott Diabetes Care Inc filed Critical Abbott Diabetes Care Inc
Publication of CN104951647A publication Critical patent/CN104951647A/zh
Application granted granted Critical
Publication of CN104951647B publication Critical patent/CN104951647B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0721Error 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0736Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT 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/40ICT 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了在不受控制数据处理设备上容纳安全关键应用程序的方法和制品。在不同时间进行安装、功能、主机完整性、共存、互通性、电源管理和环境检验的各种组合检验,以确定安全关键应用程序是否正常运行在设备上。可以相应控制SCA在UDPD上的运行。

Description

在不受控制数据处理设备上容纳安全关键应用程序的方法和制品
本申请是申请日为2010年09月07日、申请号为201080029502.7,发明名称为“在不受控制数据处理设备上容纳安全关键应用程序的方法和制品”的发明专利申请的分案申请。
交叉参考相关申请
本申请要求如下美国临时专利申请的优先权:2010年6月28日提交、发明名称为“METHODS AND ARTICLES OF MANUFAC-TURE FOR HOSTING A SAFETY CRITICAL APPLICATION ONAN UNCONTROLLED DATA PROCESSING DEVICE(在不受控制数据处理设备上容纳安全关键应用程序的方法和制品)”的美国临时专利申请第61/359,265号;以及2009年9月8日提交、发明名称为“MEDICAL AND MODIFIABLE PORTABLE CONSUMERELECTRONIC DEVICE AND SYSTEM FOR MEDICAL DATAREPORTING AND ANALYSIS(用于医学数据报告和分析的医疗和可修改便携式消费类电子设备和系统)”的美国临时专利申请第61/240,578号,特此通过引用并入本文中。
背景技术
安全关键(safety critical)系统是其故障或失灵可能导致像人身伤亡、设备或环境严重损害或损失那样的明显有害后果的系统。因为安全关键系统有可能产生危险后果,所以整个系统要经历验证和确认过程,以便为所有许可使用条件提供整个系统正常运行并将继续正常运行的特定置信水平。
医疗系统是要求系统正常运行并继续正常运行的特定置信水平的安全关键系统的例子。如果不能正常运行或不知道是否正常运行,则医疗系统可能有害地影响用户的健康和平安。这对于向用户提供与健康相关的诊断或治疗信息的医疗系统尤其如此。例如,像葡萄糖仪那样的分析物监测设备向用户提供有关他们的血糖水平的诊断信息。报告这种诊断信息时的不准确性或重大延误可能导致用户伤亡。而且,作为另一个例子,医疗系统可以向用户提供像推荐用药剂量那样的治疗信息。例如,葡萄糖仪可以响应于葡萄糖测量向用户提供推荐胰岛素剂量,以便弥补当前或预期血糖水平。报告这种诊断信息时的不准确性或重大延误可能导致用户伤亡。
一旦整个安全关键系统得到验证和确认,就放行整个系统,并且不希望改变其硬件和/或软件。这样就保证了很好受控的系统环境。不向市场引入新软件和/或硬件改变,除非和直到新的硬件和/或软件经历了新的确认过程。这样的受控系统环境提供了使系统不被变更或改变和不对系统的正常运行产生潜在影响的特定置信水平。
但是,当将安全关键应用程序(safety critical application,SCA)安装在许可用户改变硬件和/或软件的不受控制数据处理设备(uncontrolled data processing device,UDPD)上时,对UDPD的任何改变都可能有害地影响SCA在UDPD上的正常运行。UDPD一般许可用户对设备做出软件和/或硬件改变—例如,安装/移除软件程序,安装/移除驱动器,加入/移除硬件组件等。示例性UDPD可以包括个人计算机(例如,台式机、笔记本电脑等)、移动电话(例如, 等)、个人数字助理(PDA)等。因此,数据处理设备的不受控制性损害了SCA将正常运行在UDPD上或继续正常运行在UDPD上的任何保证。
发明内容
提供了在不受控制数据处理设备上容纳(host)安全关键应用程序的方法和制品。在不同时间执行各种检验组合(例如,安装检验、功能检验、主机完整性检验、共存检验、互通性检验、电源管理检验,环境检验等),以确定SCA是否可以在设备上正常运行。于是,可以控制SCA在UDPD上的运行。
本发明的这些和其他目的、优点和特征在本领域技术人员阅读了如下面更全面描述的本发明的细节之后将变得明显。
附图说明
当结合附图阅读时,可以从如下详细描述中最好地理解本发明。需要强调的是,按照通行的做法,附图的各种特征件不是按比例画出的。相反,为了清楚起见,任意放大或缩小了各种特征件的尺度。在附图中包括如下图形:
图1例示了按照现有技术验证和确认安全关键系统的方法的流图;
图2例示了按照现有技术的示例性不受控制数据处理系统的高级方块图;
图3例示了按照本公开的一些方面的验证和确认方法的流图;
图4例示了按照本公开的一些方面的存储在UDPD的存储器中的SCA和测试工具的功能方块图;
图5例示了按照本公开的一些方面的包含一个或多个测试例程的功能检验的方块图;
图6例示了按照本公开的一些方面的包含一个或多个子例程的通信测试例程的方块图;
图7例示了按照本公开的一些方面的经由通信链路与各种外部设备通信的UDPD的方块图;
图8例示了按照本公开的一些方面的安装检验的流图;
图9例示了按照本公开的一些方面的功能检验的流图;
图10例示了按照本公开的一些方面的功能检验的流图;
图11例示了按照本公开的一些方面的安装过程的流图;
图12例示了按照本公开的一些方面的进行检验的过程的流图;
图13例示了按照本公开的一些方面的主机完整性检验的流图;
图14例示了按照本公开的一些方面的共存检验的流图;
图15例示了按照本公开的一些方面的互通性检验的流图;
图16例示了按照本公开的一些方面的电源管理检验的流图;
图17A和17B例示了按照本公开的一些方面、包括分析物监测设备、可移除地耦合到运行SCA的UDPD并与其通信的适配器;以及
图18A和18B例示了按照本公开的一些方面、包括分析物监测设备、可移除地耦合到运行SCA的UDPD并与其通信的适配器。
具体实施方式
在描述本发明之前,应该理解本发明不局限于所述的特定方面,就其本身而言当然可以改变。还应该理解,本文使用的术语只是为了描述特定方面的目的,而无意限制本发明,因为本发明的范围只由所附权利要求书限定。
在提供一个数值范围的情况下,应该理解,也具体公开了该范围的上限与下限之间的到下限的单位的十分之一(除非上下文另有明确指示)的每个中间值。所述范围中的任何所述值或中间值与该所述范围中的任何其他所述或中间值之间的每个较小范围都包含在本发明之内。在该范围内可以独立地包括或排除这些较小范围的上限和下限,以及任一个极限、没有一个极限、或两个极限包括在较小范围内的每个范围也包含在本发明之内,受所述范围中的任何明确排除极限支配。在所述范围包括极限之一或两者的情况下,排除那些被包括的极限的任一个或两者的范围也包括在本发明之内。
除非另有定义,本文使用的所有技术和科学术语具有与本领域技术人员通常所理解相同的含义。尽管与本文所述的那些类似或等同的任何方法和物质都可以用在本发明的实践或测试中,但现在描述一些可能和优选方法和物质。本文提及的所有出版物都通过引用并入本文中,以便公开和描述与其结合引用这些出版物的方法和/或物质。应该理解,在存在冲突的情况下,本公开取代并入出版物的任何公开。
必须注意到,如本文所使用以及在所附权利要求书中,单数形式“一”和“该”也包括复数指示物,除非上下文另有明确指示。因此,例如,提到“固件更新”包括多次这样的固件更新,以及提到“该固件更新”包括一次或多次固件更新以及本领域技术人员所知的等同方式,等等。
本文讨论的出版物只是针对它们在本申请的申请日之前的公开提供的。本文没有任何内容要被理解为承认本发明无权通过在先发明在日期上早于这样的出版物。而且,所提供的出版日期可能不同于可能需要独立确认的实际出版日期。
图1例示了按照现有技术验证和确认安全关键系统的方法的流图。如图所示,安全关键系统102是包含安全关键应用程序104、现成商业软件组件106(例如,操作系统、驱动程序等)、和各种硬件组件108的专用系统。对整个专用系统102执行验证和确认过程100。在初始验证和确认完成之后,就将整个专用系统102提供给用户。用户能够将安全关键系统102用于它的预期目的,但不能改变系统,诸如改变操作系统,修改应用程序,安装或移除驱动程序,安装或移除软件程序,对硬件作任何明显改变等。这种受控环境向制造者和用户提供了整个专用安全关键系统102不仅正常运行,而且随后不被变更或改变使得将来不能正常运行的特定置信水平。
但是,现在越来越多的人能访问一种或多种UDPD。UDPD已经变成许多人生活的一部分,并且使人们不断地和方便地访问用在这些设备上的各种应用程序。例如,现在许多人都拥有台式或膝上型计算机,以及移动电话,他们可以将各种应用程序下载到特定设备上并在特定设备上使用。用户越容易访问设备,它们就越方便。虽然可以在分发给用户之前验证和确认SCA,但当下载到UDPD上时,由于UDPD的不受控制性,损害了SCA将正常运行的任何保证。
图2例示了按照现有技术的示例性不受控制数据处理系统的高级方块图。如图2所示,UDPD 200包括与处理器203、易失性存储器205、和非易失性存储器206耦合的系统总线202。术语处理器在本文中用于一般性地指诸如微处理器、微控制器、数字信号处理器等的任何处理元件。易失性存储器205可以包括,例如,随机访问存储器(RAM)和/或需要连续供电以便刷新或保持存储器中的数据的任何其他类型存储器。非易失性存储器206可以包括,例如,只读存储器(ROM)、闪速存储器、电子、磁或光驱动器、和/或即使在系统断电之后也保持数据的任何其他类型存储器。虽然每一种只示出了单个方块,但应该理解,可以实现一个或多个处理器、易失性存储器和非易失性存储器。此外,存储器220用虚线表示,一般性地指处理器202可以访问的任何可用存储器或其他机器可读介质。这样,存储器220被一般性地显示成包含易失性存储器205和非易失性存储器206。
存储器220经由系统总线202与处理器203耦合,存储要由处理器203执行的指令集。处理器203又包含处理元件和/或逻辑电路以便执行指令集。系统总线203将这些各种组件互连在一起,并且将组件203,205和206与显示控制器和显示设备208以及像输入/输出(I/O)设备210,譬如,数字键盘、键盘、调制解调器、网络接口、打印机、扫描仪、摄像机和在现有技术中公知的其他设备那样的外围设备互连。在一些情况下,I/O设备210通过输入/输出控制器209与系统总线202耦合。如在现有技术中众所周知,系统总线202可以包括通过各种桥接器、控制器和/或适配器(未示出)相互连接的一条或多条总线。在一些情况下,I/O控制器209包括控制USB(通用串行总线)外设的USB适配器和/或控制IEEE-1394外设的IEEE-1394总线适配器。
虽然图2示出了非易失性存储器206是直接与UDPD中的其余组件耦合的本地设备,但应该理解,在一些情况下,非易失性存储器可以远离系统,譬如,经由网络接口通过有线和/或无线网络与UDPD 200耦合的网络存储设备、或其他适当的远程存储设备。而且,应该理解,本文所述的各种实施例可以利用具有比UDPD 200更多或更少的组件的UDPD来实现。
像上述那样的UDPD其中可能已经存储了操作系统和其他软件程序(例如,在闪速存储器、硬驱动器等中)。这些程序最初可以以多种方式提供给UDPD—例如,在制造时,通过远程连接(例如,在网络上经由网络接口到远程地点),通过可移除式存储设备(例如,存储卡、CD-ROM等)等。本文所述的程序和应用程序包含处理器执行的一组指令。
这些程序被提供给UDPD,一般存储在诸如闪速存储器、硬驱动器等的非易失性存储器中。在一些情况下,当要在UDPD上运行程序时,将程序装入易失性存储器(例如,RAM)中,由处理器访问以便加以执行。
在一些方面中,UDPD可以包括实现应用编程接口(API)以便运行指令集或软件程序的处理器。API可以包括一个指令集中断其他指令集,和控制在UDPD上的各种输出(例如,音频、视频和触觉输出)上呈现来自另一个设备(例如,像分析物监测设备和/或药物监管设备那样的医疗设备)的数据的能力。
当将SCA安装在UDPD上时,因为在SCA被安装在UDPD上之后未执行验证和确认过程,所以无法保证SCA将正常运行在UDPD上。UDPD的环境是动态的,可以以影响SCA在UDPD上的正常运行的方式改变。例如,各种软件程序和驱动器可以被安装在UDPD上和从UDPD上移除,这不仅改变了UDPD的处理环境,而且可能消耗处理带宽使UDPD处理其他应用程序更慢。各种软件配置也可能发生变化,这也可能影响UDPD的处理环境。而且,硬件组件(例如,无线卡/调制解调器等)或其配置的改变可能影响SCA在UDPD上的正常运行(例如,妨碍了与外部设备的通信)。更进一步,用户的活动可能导致系统获得能够改变UDPD的环境或消耗处理带宽和妨碍SCA正常运行的病毒或间谍软件。此外,系统的改变可以影响可能损害SCA的系统功耗。因此,数据处理设备的不受控制性损害了SCA将正常运行或继续正常运行在UDPD上的任何保证。
在本公开的一些方面中,提供了在不受控制数据处理设备上容纳(host)安全关键应用程序的方法和制品。可以在不同时间执行各种检验组合(例如,安装检验、功能检验、主机完整性检验、共存(coexistence)检验、互通性(interoperability)检验、电源管理检验,环境检验等),以确定SCA是否可以正常运行在设备上,于是,可以控制SCA在UDPD上的运行。
在本公开的一些方面中,提供了包含用于确定SCA是否正常运行在UDPD上以及控制SCA在UDPD上的运行的一种或多种检验的测试工具(test harness)模块(本文也称为“测试工具”)。测试工具可以包括但不局限于此的示例性检验是安装检验、功能检验、主机完整性检验、共存检验、互通性检验、电源管理检验,环境检验。在整个本公开中将更详细地描述与每一种有关的方法和功能。
图3例示了按照本公开的一些方面的验证和确认的方法的流图。如图所示,如图3中的圆圈标号1所表示,验证和确认过程300从对SCA 304和测试工具310进行的初始验证和确认开始,以保证两者成功通过验证和确认。初始验证和确认由SCA 304和测试工具310的制造者执行,例如,在将SCA 304和测试工具310分发给用户之前。
在一些情况下,如图所示,可以同时一起验证和确认SCA 304和测试工具310。在一些情况下,可以分开验证和确认,并且可以在不同时间(例如,当实现任一种的新版本时等)验证和确认SCA 304和测试工具310。应该理解,虽然本文将测试工具描述成单种测试工具,但可以设想,可以由相同或不同计算机可读介质上的一种或多种测试工具提供一种或多种检验。并且,在一些情况下可以在不同时间验证和确认每种测试工具。
还应该理解,本文所述的SCA 304可以与很宽范围的安全关键应用程序相关联。在本公开的一些方面中,SCA 304是与医疗相关的应用程序。例如,SCA 304可以向用户提供与诊断、治疗和疗法、药物监管和剂量、数据管理(例如,日志,记录、历史、图形、图表、报告等)等相关联的与健康相关的工具/特征(例如,信息、计算、通信等)。
在本公开的一些方面中,SCA 304是与分析物监测和/或确定相关联的应用程序。SCA 304的示例性特征可以包括,例如,如下之一或多种:从样品(例如,唾液、血液、其他体液等)中确定分析物数量或浓度;接收测量数据;管理和/或处理测量数据(例如,登记测量值,根据测量值提供警告,以报告、图形、图表等的形式提供数据的可替代表示);根据测量数据、运动数据、食物摄入量等计算药物剂量(例如,胰岛素块计算);与UDPD 200外部的远程设备通信(例如,将药物剂量和/或监管数据传送给像胰岛素泵那样的药品输送设备;从像植入传感器那样的连续体内监测设备接收测量数据;与分析物计量仪通信等);以及本文所述的其他分析物监测特征等。应该理解,上面列出的特征是示例性的,也可以实现与分析物监测和/或确定相关联的其他特征。在本公开的一些方面中,SCA 304可以与葡萄糖监测和/或确定相关联。在本公开的一些方面中,SCA 304可以与酮监测和/或确定相关联。在发明名称为“Multi-Function Analyte Test Deviceand Methods Therefor(多功能分析物测试设备及其方法)”的国际专利申请PCT/US2010/23076中提供了与分析物监测有关的另外示例性应用,特此通过引用将其全文并入本文中以便用于所有目的。
在初始验证和确认之后,如圆圈标号2所表示,将SCA 304和测试工具310安装在UDPD 200上。例如,用户可以经由互联网、可移除式存储设备(例如,FLASH存储卡、CD-ROM等)、或任何其他适当的机器可读介质、连接、或方法下载SCA 304和测试工具310。在本公开的一些方面中,提供了包含机器可读介质的制品,该机器可读介质具有作为机器可执行指令存储在上面的各种检验。例如,机器可读介质可以具有存储在其中的测试工具,以及在一些情况下也具有SCA。
如前所述,示例性UDPD可以包括个人计算机(例如,台式机、笔记本电脑等)、移动电话(例如,等)、个人数字助理(PDA)、数字音乐播放器(例如,)等。在2008年5月29日公布的发明名称为“Touch Screen Device,Method,andGraphical User Interface for Determining Commands by ApplyingHeuristics(使用试探法确定命令的触摸屏设备、方法和图形用户界面)”的美国专利申请公开US2008/0122796中描述了一些示例性不受控制数据处理设备(例如,)的附加信息和细节,特此通过引用将其全文并入本文中以便用于所有目的。在本公开的一些方面中,提供了包括处理器和可操作地与处理器耦合的存储器的UDPD,其中该存储器具有存储在其中的指令以便在UDPD上容纳SCA。该存储器可以包括本文所述的各种检验中的一种或多种检验的指令。例如,该存储器可以具有存储在其中的测试工具以便对SCA进行各种检验。
在本公开的一些方面中,提供了包括具有处理器和可操作地与处理器耦合的存储器的UDPD的分析物监测系统,其中该存储器具有存储在其中的指令以便在UDPD上容纳SCA。该存储器可以包括本文所述的各种检验中的一种或多种检验的指令。例如,该存储器可以具有存储在其中的测试工具以便对SCA进行各种检验。
在本公开的一些方面中,除了UDPD之外,该分析物监测系统还可以包括具有传感器以便提供来自分析物样品的测量数据的元件。该元件与UDPD通信,将测量数据提供给UDPD。应该理解,该元件可以使用各种有线或无线技术经由无线或有线连接与UDPD通信。在一些情况下,该元件可以是植入或体上分析物传感器。在一些情况下,该元件可以包括条形端口以便接收分析物样品—例如,经由测试条或其他体外敷贴物。在一些情况下,该元件可以是可移除地与UDPD耦合的适配器。
可以将SCA 304和测试工具310可以安装在与向运行SCA的UDPD提供附加功能的元件(例如,适配器)和/或模块通信的UDPD上。在发明名称为“Mobile Phone Display for Continuous AnalyteMoni-toring(用于连续分析物监测的移动电话显示器)”的美国临时申请第61/325,021号中描述了用在UDPD上的适配器的例子和附加信息,特此通过引用将其全文并入本文中以便用于所有目的。此外,在2006年5月9日颁发的发明名称为“Blood Glucose TrackingApparatus and Method(葡萄糖跟踪装置和方法)”的美国专利第7,041,468号中以及在2004年12月16日公布的发明名称为“GlucoseMeasuring Module and Insulin Pump Combination(葡萄糖测量模块和胰岛素泵组合)”的美国专利申请公开第US2004/0245534号中描述了用在UDPD上的分析物监测模块的例子,特此通过引用将两者的全文并入本文中以便用于所有目的。
当一个或多个模块未受到保护时,也可以将SCA 304和测试工具310安装在模块化分析物监测设备上。模块化分析物监测设备包括一个基本模块和可移除地与基本模块耦合以便形成单个集成分析物监测设备的至少一个其他模块。这样,具有不同特征的各种模块可以与基本模块耦合,向基本模块提供那些相应特征。例如如果基本模块是允许用户下载和/或移除软件程序的UDPD,则可以将测试工具310安装在基本模块上,以便提供安装在基本模块上的SCA可以在基本模块上正常运行的一定保证水平。在发明名称为“Modular AnalyteMonitoring Device(模块化分析物监测设备)”的美国临时专利申请第61/325,155号中描述了有关模块化计量仪的例子和附加信息,特此通过引用将其全文并入本文中以便用于所有目的。
图17A-B和18A-B例示了按照本公开的一些方面,与适配器耦合以便获得附加分析物监测能力和可以具有安装在上面的SCA 304和测试工具310的示例性UDPD。图17A和17B例示了包括分析物监测设备、可移除地与运行SCA的UDPD耦合并与其通信的适配器。图17A例示了可移除地与UDPD 200耦合的适配器1701的局部分解透视图以及侧视图。图17B例示了可移除地与UDPD 200耦合的适配器1701的透视图。
适配器1701被显示成包含接合在一起形成适配器和使适配器1701可以安全地与UDPD耦合和从UDPD 200上移走的两片1702和1703。UDPD 200在本示例性实施例中被显示成移动电话。应该理解,UDPD 200可以是各种不受控制数据处理设备—例如,PDA、移动电话(例如,蜂窝式电话)等。这样的设备包括,例如, iPod设备等。
适配器1701被配置成与UDPD 200通信。在一些情况下,适配器1701可以包括无线通信模块和经由无线通信—例如,经由蓝牙、红外或其他无线技术与UDPD 200通信。在一些情况下,适配器1701可以包括在UDPD 200上经由有线连接—例如,经由微型USB端口,或其他通信连接与UDPD 200通信的通信连接器。
适配器1701包括条形端口1704和相关电路,以便接收样品来进行分析物测量。UDPD 200具有存储在存储器内由UDPD 200执行的SCA 304。SCA 304是向UDPD 200提供分析物监测能力的分析物监测应用程序。取决于所实现的特定应用,可以监测像葡萄糖、酮那样的一种或多种分析物。
SCA 304和UDPD 200与适配器1701通信,使用测试条端口1704接收测试条1705并对提供的样品进行测量。例如,如图17B所示,将测试条1705插入适配器1701提供的条形端口1704中。SCA 304处理来自测试条1705的数据并使用UDPD 200的处理器获得测量读数。然后SCA 304经由UDPD 200上的显示器1730向用户表达测量读数。应该理解,附加监测能力也可以由运行在UDPD 200上的SCA 304实现,像本文所述的那些那样—例如,可听见地输出测量读数,登记测量数据,提供警报,计算用药剂量,与药品输送设备通信等。
UDPD 200还具有存储在存储器中的测试工具310(和不一定作为测试工具的一部分实现的任何其他附加检验),以及如本文所述,执行各种检验以达到SCA 304可以正常运行在UDPD 200上的特定置信水平。此外,如本文所述,可以按需要以各种组合和在不同时间启动各种检验。
在一些实施例中,适配器1701可以配置成进行分析物测量(例如,经由板上处理器)和经由与UDPD 200的有线或无线连接将测量读数传送给UDPD 200。UDPD 200运行SCA 304,并与适配器1701通信以接收测量读数并提供像本文所述的那些那样的附加监测能力—例如,显示和/或可听见地输出测量读数,登记测量数据,提供警报,计算用药剂量,与药品输送设备通信等。
图18A和18B例示了包括分析物监测设备、可移除地与运行SCA的UDPD耦合并与其通信的适配器。图18A例示了可移除地与UDPD200耦合的适配器1801的局部分解透视图以及侧视图。图18B例示了可移除地与UDPD 200耦合的适配器1801的透视图。适配器1801使UDPD 200能够与远程设备通信。
适配器1801被显示成包含接合在一起形成适配器和使适配器1801可以安全地与UDPD耦合和从UDPD 200上移走的两片1802和1803。UDPD 200在本示例性实施例中被显示成移动电话。应该理解,UDPD 200可以是各种不受控制数据处理设备—例如,PDA、移动电话(例如,蜂窝式电话)等。这样的设备包括,例如, iPod设备等。
适配器1801被配置成与UDPD 200通信。在一些情况下,适配器1801可以包括无线通信模块和经由无线通信—例如,经由蓝牙、红外或其他无线技术与UDPD 200通信。在一些情况下,适配器1801可以包括在UDPD 200上经由有线连接—例如,经由微型USB端口,或其他通信连接与UDPD 200通信的通信连接器。如图18B所示,适配器1801还经由无线通信模块与远程传感器设备1820通信。远程传感器设备1820被显示成用户1825身上的体上分析物传感器(例如,植入或部分植入分析物传感器)。远程传感器设备1820可以是,例如,用于连续葡萄糖测量(CGM)或按需葡萄糖(God)应用的植入或部分植入分析物传感器。
UDPD 200具有存储在存储器内由UDPD 200执行的SCA 304。SCA 304是向UDPD 200提供分析物监测能力的分析物监测应用程序。取决于所实现的特定应用,可以监测像葡萄糖、酮那样的一种或多种分析物。SCA 304和UDPD 200与适配器1801通信,并且使用适配器1801与远程传感器设备1820通信。远程传感器设备1820获取从用户1825获得的分析物测量数据,并经由适配器1801将数据传输给SCA304和UDPD 200。SCA 304接收测量数据,并提供像本文所述的那些那样的附加监测能力—显示和/或可听见地输出测量读数,登记测量数据,提供警报,计算用药剂量,与药品输送设备通信等。
转回到图3,在安装在UDPD 200上之后,如圆圈标号3所表示,执行测试工具310以确定SCA 304是否正常运行在UDPD 200上。在一些情况下,将测试工具310和SCA 304配置成在SCA 304可自由运行之前启动测试工具310。
术语“可自由运行”和“自由运行”在本文中用于指SCA这样运行,使得用户能够如预期的那样和不受测试工具实现的任何限制地使用SCA。应该理解,SCA的一种或多种安全关键特征可能被“有意”锁定或禁用(例如,由制造商、医生等)不让用户使用,带有有意锁定特征的SCA的运行被认为是自由运行。
但是,如果测试工具限制了SCA的使用,则认为阻止了SCA自由运行。例如,在一些情况下,这可能包括禁用SCA和阻止SCA运行在UDPD上。在一些情况下,这可能包括锁定或禁用SCA的一种或多种安全关键特征。在一些情况下,这可能包括许可SCP运行在UDPD上,使用户仍然可以使用SCA的非安全关键特征,但不能使用SCA的所有安全关键特征。测试工具310上的一种或多种检验可以在SCA 304自由运行之前进行,以便在用户使用安全关键特征之前提供SCA 304可以正常运行在UDPD 200上的特定保证水平。并且,在一些情况下,测试工具310上的一种或多种检验可以在SCA 304自由运行期间和/或之后进行,以便提供SCA 304继续在UDPD 200上正常运行的特定保证水平。
应该理解,术语“许可”在这里是宽泛使用的,在一些情况下,可以包括允许、启用、解锁等。并且,应该理解,术语“阻止”在这里是宽泛使用的,在一些情况下,可以包括限制、禁用、锁定等。
在本公开的一些方面中,测试工具310包含如下检验的一种或多种:安装检验以便确定SCA 304是否正常安装在UDPD 200上;功能检验以便确定SCA 304是否在UDPD 200上具有正常功能;主机完整性检验以便确定SCA 304的完整性是否受到损害;共存检验以便确定SCA 304是否与UDPD 200上的其他程序不兼容;互通性检验以便确定SCA 304是否在UDPD 200上与相关程序正常互通;电源管理检验以便确定UDPD 200的供电能力是否足以以UDPD不突然断电的特定保证水平安全地运行SCA 304;以及环境检验,以便在不同时间(例如,当启动检验时)确定UDPD 200的当前环境和/或确定自当前环境的前一次确定(例如,在与最后一次确定SCA正常运行在UDPD上相关联的时间)以来环境是否发生了变化。而且,测试工具310可以按需要在不同时间—例如,在运行SCA 304之前,在SCA 304正在运行的同时,在预定间隔上,等等—以及以不同组合执行这些检验中的一种或多种检验。
在本公开的一些方面中,执行测试工具310导致执行一种或多种检验来确定SCA 304是否正常运行在UDPD 200上,并相应地控制SCA 304在UDPD 200上的运行。例如,可以将SCA 304和测试工具310配置成当确定SCA 304未正常运行在UDPD 200上时,阻止SCA304自由运行在UDPD上。
在一些情况下,可以在UDPD 200的后台执行测试工具310。在一些情况下,在UDPD 200上,在后台执行测试工具310的同时可以在前台运行SCA 304和/或其他软件程序。而且,应该理解,在一些情况下,在后台执行测试工具可对用户透明。
在一些情况下,如虚线所表示,测试工具310和SCA 304是较大程序模块(本文也称为“程序302”)的一部分。例如,首先验证和确认整个程序302,随后将它安装在UDPD 200上。程序302可以配置成在允许SCA 304自由运行之前启动测试工具310。这样,启动测试工具310,以便确定SCA 304是否可以正常运行(例如,正常安装和具有正常功能)在UDPD 200上,因此相应地控制SCA 304在UDPD200上的运行(例如,许可或阻止SCA 304在UDPD 200上自由运行)。
在一些情况下,SCA 304和测试工具310是最初可以分开验证和确认的分立程序,并且可以在相同或不同时间安装在UDPD 200上。在这样的情况下,SCA 304被配置成在适当时间执行测试工具310。例如,SCA 304可以包括在SCA 304能够自由运行之前启动测试工具310的命令。在一些情况下,如果SCA 304被安装在UDPD 200上而测试工具310未安装,则将SCA 304配置成阻止SCA 304自由运行。
在一些情况下,测试工具310可以包括在SCA 304内。可以将新SCA 304写成包括测试工具310,或可以将现有SCA 304修改成包括测试工具310。在这样的情况下,可以将SCA 304配置成在适当时间启动测试工具。例如,SCA 304可以包括在SCA 304可自由运行之前(例如,在用户可访问安全关键特征之前)执行测试工具310的命令。这样,可以在用户曾经使用SCA 304的安全关键特征之前对SCA 304在UDPD 200上的正常运行做出确定。测试工具310也可以在SCA 304内实现,以便可以按需要一次或多次地或在不同时间调用它。应该理解,SCA 304和测试工具310在本文的一些图形中分开显示是为了例示的目的,测试工具310包括在SCA 304内的实施例也是可应用的。
图4例示了按照本公开的一些方面的UDPD 200可访问的SCA和测试工具的功能方块图。也应该理解,尽管测试工具310和SCA 304在图4中被显示成处在UDPD 200的存储器220中,但任一种或两者可以实施为不一定在UDPD 200本地或是UDPD 200的一部分,但UDPD 200可以在某个时刻以任何适当方式访问的机器可读介质上的机器可执行指令。
UDPD 200在图4中被显示成包括,如前所述,与处理器203、存储器220、显示控制器和显示设备208、和像I/O设备210那样的外围设备耦合的系统总线202。存储器220被示出为包括SCA304和测试工具310。同样,SCA 304和测试工具310可以是较大程序302的一部分。应该理解,存储器220一般指可用于处理器203的任何易失性和/或非易失性存储器,并且可以包括一个或多个存储器组件。而且,SCA 304或测试工具310,或两者可以存储在一个或多个存储器组件中,并且可以一起或相互分开地存储在可移除式或非可移除式存储器中。还应该理解,在一些情况下,SCA 304和测试工具310可以存储在非易失性存储器中,并装入像RAM那样的易失性存储器中供处理器203执行。
在本公开的一些方面中,测试工具310可以包括一个或多个硬件和/或软件模块以便进行本文所述的检验和处理。本文所述的检验和处理可以,例如,由UDPD 200的处理器203执行。应该理解,针对检验所述的操作(包括测试例程和子例程)以及本文所述的处理由主UDPD执行。如图4的示例性实施例所示,测试工具310包括用于安装检验412、功能检验414、环境检验416、主机完整性检验418、共存检验420、互通性检验422和电源管理检验422的模块。启动这些检验以便确定SCA 304是否可以正常运行在UDPD 200上。
可以将测试工具300配置成按需要在不同时间执行一种或多种检验,以执行与每种检验相关联的功能:安装检验以便确定SCA 304是否正常安装在UDPD 200上;功能检验以便确定SCA 304是否在UDPD 200上具有正常功能;主机完整性检验以便确定SCA 304的完整性是否受到损害;共存检验以便确定SCA 304是否与UDPD 200上的其他程序不兼容;互通性检验以便确定SCA 304是否在UDPD 200上与相关程序正常互通;电源管理检验以便确定UDPD 200的供电能力是否足以以UDPD不突然断电的特定保证水平安全地运行SCA 304;以及环境检验以便在不同时间(例如,当启动检验时)确定UDPD 200的当前环境和/或确定自当前环境的前一次确定(例如,在与最后一次确定SCA正常运行在UDPD上相关联的时间)以来环境是否发生了变化。
SCA 304正常运行在UDPD 200上的确定可能需要所实现的每一种检验的特定结果。例如,在一些情况下,SCA 304正常运行在UDPD200上的确定需要安装检验指示SCA得到正常安装,以及需要功能检验指示SCA在UDPD 200上具有正常功能。在一些情况下,SCA 304正常运行在UDPD 200上的确定只需要功能检验指示SCA在UDPD200上具有正常功能(例如,如果已经确定安装正常)。SCA 304未正常运行在UDPD 200上的确定可能由,例如,SCA未得到正常安装的确定或SCA不具有正常功能的确定引起。应该理解,也可以实现另外的检验(例如,主机完整性检验、共存检验、互通性检验、电源管理检验和/或此处不一定讨论的其他检验),SCA 304正常运行在UDPD上的确定也需要它们的特定结果。
UDPD的环境一般指存在于UDPD上的各种软件和/或硬件组件,或它们的配置。例如,环境检验可以识别当前在UDPD上,已经安装,和/或移除和/或修改等的各种软件程序、应用程序、驱动器、硬件组件等。在一些实施例中,可以只考虑软件环境。在一些实施例中,也可以考虑硬件环境。
在一些情况下,将环境检验实现成检验UDPD的环境是否发生了变化,这可以是SCA不再正常运行在UDPD上的可能指示。在这样的情况下,可以执行一种或多种附加检验(例如,功能检验、主机完整性检验、共存检验、互通性检验、电源管理检验等),以确认SCA在新的环境下正常运行在UDPD上。
在一些情况下,如图4所示,测试工具还包括参考数据408。参考数据408包括被测试工具310用于确定SCA 304是否在与SCA 304正常运行在UDPD 200上的特定置信水平相关联的预定参数和要求内运行的数据。例如,参考数据408可以包括要用在检验中的各种测试数据(例如,预定输入数据或请求),以及可接受的或预期从各种检验中得出指示UDPD的正常运行的任何数据、结果、定时值等。应该理解,一些参数和要求可能包含范围和/或包括允许有一定程度偏离的容限。
安装检验—在本公开的一些方面中,可以执行安装检验412以便确定SCA 304是否正常安装在UDPD 200上。因为未正常安装的SCA损害了SCA将正常运行在UDPD上的任何保证,所以可以要求成功安装SCA 304,以便确定SCA 304正常运行在UDPD上。因此,在一些情况下,如果SCA 304未能正常安装在UDPD 200上,则可以确定SCA 304未正常运行在UDPD 200上,并可以阻止SCA 304在UDPD200上自由运行。但是,如果安装检验指示SCA 304正常安装在UDPD200上,SCA 304仍然未必正常运行在UDPD上,在确定SCA 304正常运行在UDPD上之前可能需要另外的检验。
在一些情况下,可以将SCA 304的安装组件(本文也称为“安装SCA组件”)的图像用于确定SCA 304是否正常安装在UDPD 200上。例如,除了主要可执行文件之外,SCA 304的安装包还可以包括加载到在UDPD 200上的多个文件。安装检验412可以将这些文件的每一个视作安装SCA组件,并且将每个安装SCA组件的图像与和针对正常安装预期的数据相对应的参考数据408(本文也称为“参考安装数据”以便将它与可能在参考数据408内的其他数据区分开)相比较。例如,在一些情况下,安装SCA组件的图像可以包括像文件名、版本号、检错和/或纠错数据(例如,循环冗余校验(CRC)值、纠错码(ECC)、校验和等)等那样,有关安装SCA组件的数据。安装检验412将用于每个安装SCA组件的数据与和正常安装相关联的预期数据(例如,如参考安装数据所定义)相比较,以确定是否得到了正常安装。例如,可以将与安装SCA组件相关联的文件名、CRC值和/或版本号与参考安装数据中的相应预期文件名、CRC值和/或版本号相比较。
如果,例如,一个或多个安装SCA组件的图像与参考安装数据不匹配,则安装检验412指示SCA 304未能正常安装在UDPD 200上,这也指示SCA 304未正常运行在UDPD 200上。然后,可以阻止SCA304在UDPD 200上自由运行。在一些情况下,可以报告正常安装的失败(例如,登记和/或传送给UDPD 200的用户)。在一些情况下,可以将失败的报告发送给远程设备—例如,经由互联网。
如果,例如,每个安装SCA组件的图像与参考安装数据匹配,则安装检验指示SCA 304正常安装在UDPD 200上,如果需要的话,可以执行一种或多种其他检验(例如,功能检验、主机完整性检验、共存检验、互通性检验、电源管理检验等)。术语“匹配”在这里宽泛地用于指示落在预定参数和要求(例如,如参考数据所定义)之内。因此,安装检验的结果得到的匹配代表SCA 304正常安装在UDPD200上的特定置信水平。在一些情况下,预定参数和要求需要“精确”匹配。但是,应该理解,在一些情况下,参数和要求可能包含范围和/或允许相对于“精确匹配”要求有一定偏离的容限。于是,术语“不匹配”在这里被宽泛地用于指示未落在预定参数和要求(例如,如参考数据所定义)之内。因此,安装检验的结果得到的不匹配代表SCA304未正常安装在UDPD 200上的特定置信水平。
功能检验—在本公开的一些方面中,可以执行功能检验414以便确定SCA 304是否在UDPD 200上具有正常功能。例如,功能检验414可以检验SCA 304是否在UDPD 200上精确地进行计算(例如,计算、测量等);SCA 304是否正常地将数据显示在UDPD 200的显示器上;和/或SCA 304是否通过UDPD与外部设备正常通信;和/或SCA 304是否在正常时间量内进行这些和/或其他安全关键活动。
进行活动的延误可能造成有害后果,并且可能指示SCA 304在UDPD 200上的运行不正常。例如,为葡萄糖测量提供计算的重大延误可能足以确定SCA 304未正常运行在UDPD 200上。并且,应该理解,在一些情况下,太迅速地进行像计算那样的活动也可能指示功能不正常。功能检验414也可以,例如,检验SCA 304的数据是否正常地显示在UDPD 200的显示器上;和/或SCA 304是否可以正常地在UDPD 200与外部设备之间通信。
如果,例如,确定SCA 304不具有正常功能,则功能检验414指示SCA 304未正常运行在UDPD 200上。然后,可以阻止SCA 304在UDPD 200上自由运行。如果,例如,确定SCA 304具有正常功能,则也可以按需要启动其他检验(或者,如果不需要进行其他检验,则可以许可SCA自由运行)。
环境检验—在本公开的一些方面中,可以执行环境检验416以便确定UDPD 200的当前环境。并且,在一些情况下,可以执行环境检验416以便确定当前环境自SCA 304正常运行在UDPD 200上的最后一次确定以来是否发生了变化。UDPD的环境的变化可能影响SCA340在UDPD 200上的正常运行。因此,在一些情况下,环境检验可以包括识别当前环境,并将它与和SCA 304正常运行在UDPD 200上的最后一次确定相关联的以前存储“当前环境”相比较。
例如,当确定SCA正常运行并许可其自由运行在UDPD 200上时,测试工具310可以启动环境检验416以获得UDPD 200的当前环境。这样,测试工具310以后可以启动环境检验416以确定UDPD 200的“当前环境”自SCA正常运行的这一次确定以来是否发生了变化。应该理解,可以在与进行检验相关联的不同时间—例如,在启动检验之前,在启动检验的同时,或在检验提供了结果之后识别和记录当前环境。
如果确定UDPD 200的环境发生了变化,则SCA 304有可能未正常运行在UDPD 200上。然后,测试工具310可以例如启动要执行的功能检验(或任何其他检验,如果也实现的话)。在一些情况下,在进行功能检验的同时可以许可SCA 304继续自由运行。在一些情况下,在进行功能检验的同时可以阻止SCA 304自由运行。
如果确定UDPD 200的环境未发生变化,则达到SCA 304仍然正常运行在UDPD 200上的特定置信水平。如果UDPD 200的环境未发生变化,则可以例如许可SCA 304继续自由运行。应该理解,尽管作出环境未发生变化的确定,但如果需要的话,可以启动一种或多种检验。
环境检验可以按需要在不同时间启动—例如,在预定时间和/或时间间隔上(在SCA正在运行和/或未运行的同时);和发生了特定事件(例如,当运行SCA 304时,当关闭SCA 304时,或当对UDPD供电时等)。在一些情况下,像功能检验414那样的附加检验可以独立于环境检验416地启动,以及也可以在不同时间(例如,在预定时间和/或发生了特定事件时)启动。
主机完整性检验—在本公开的一些方面中,可以执行主机完整性检验以便确定SCA 304的完整性是否已损坏。损坏的SCA 304损害了SCA 304正常运行在UDPD 200上的任何保证。在一些情况下,当实现主机完整性检验时,SCA 304正常运行在UDPD 200上的确定至少需要SCA 304未损坏的确定。如果SCA 304损坏了,则可以确定SCA304未正常运行在UDPD 200上,以及可以阻止SCA 304在UDPD 200上自由运行。如果确定SCA 304未损坏,则只要进行的或要进行的任何其他所需检验也成功通过,就可以确定SCA 304正常运行并许可其自由运行。
共存检验—除了SCA 304之外,UDPD 200通常还容纳装载在设备上的额外程序。而且,这些程序通常可以在不同时间加入UDPD 200中和/或从UDPD 200中删除。UDPD 200上的一些程序可能不与SCA304一起工作,但可能与SCA 304共享资源,本文将这些程序称为“非相关(nonrelated)”程序。SCA 304和一个或多个非相关程序可能例如访问一个或多个永久数据区。例如,两者可能跟踪数据和时间,从相同存储器设备中读取数据和/或将数据写入相同存储器设备中等。此外,SCA 304和非相关程序两者可能访问相同组件—例如,无线芯片、显示器、音频组件等。
对于一些非相关程序,当与SCA 304共存在UDPD 200上时,可能不影响SCA 304,或以不威胁SCA 304的安全关键性质的方式影响SCA 304。但是,一些程序可能无法与SCA 304共存在UDPD 200上而不损害UDPD 200上的SCA 304的安全关键方面或它的运行。例如,正在运行的非相关程序可能妨碍或显著延迟了SCA 304访问诸如显示测试结果、发出警报声、接入无线通信等的安全关键功能。如果这些功能是安全关键特征,则两个程序在UDPD 200上的共存可能造成潜在地妨碍SCA 304正常运行在UDPD 200上和可能妨碍SCA 304自由运行的安全关键问题。
在一些情况下,SCA 304在特定环境下可以优先访问资源。例如,如果从另一个设备(例如,像分析物监测设备、药物监管设备等那样的医疗设备)接收数据的预期时间超过预定时间量,则可以让SCA 304优先访问UDPD 200的信息输出以便例如激活警报。作为这种优先访问的一部分,例如可以为运行在UDPD 200上的其他模块启动自动保存状态。另外,可以让SCA 304优先访问UDPD 200上的通信端口—以便例如将警报传送给诸如父母、朋友、医生等的第三方。SCA 304可以,例如,优先访问无线通信设备、存储器、处理器和/或可以按优先级排序的任何其他共享资源。
在本公开的一些方面中,可以执行共存检验以便确定SCA 304是否与UDPD 200上的非相关程序不兼容。术语“不兼容”在这里宽泛地指SCA 304和其他程序不能共存在UDPD 200上而不损害UDPD200上的SCA 304的安全关键方面或它的运行。
在一些情况下,当实现共存检验时,SCA 304正常运行在UDPD200上的确定至少需要SCA 304不与任何非相关程序不兼容的确定。如果SCA 304与一个或多个非相关程序不兼容,则可以阻止SCA 304在UDPD 200上自由运行。如果SCA 304不与任何非相关程序不兼容,则只要所进行的或将进行的任何其他所需检验也成功通过,就可以确定SCA 304正常运行因此许可其自由运行在UDPD 200上。
互通性检验—一个或多个程序可以与SCA 304互通以便向SCA304提供功能和能力,本文将这些程序称为相关程序。在本公开的一些方面中,可以执行互通性检验以便确定SCA 304是否在UDPD 200上与相关程序正常互通。互通性问题可能损害SCA 304将正常运行在UDPD 200上的任何保证。在一些情况下,SCA 304正常运行在UDPD200上的确定至少需要SCA 304与相关程序正常互通的确定。如果SCA 304不与相关程序正常互通,则可以确定SCA 304没有正常运行,并且可以阻止SCA 304在UDPD 200上自由运行。如果确定SCA 304正常互通,则只要所进行的或将进行的任何其他所需检验也成功通过,就可以确定SCA 304正常运行在UDPD 200上因此许可其自由运行。
电源管理检验—一些UDPD可能是电池供电的,不一定插入AC电源插座中。因此,从UDPD 200在SCA 304运行期间耗尽电能和断电的意义上来讲,UDPD 200的寿命是短暂的。电池电力可能取决于许多因素—例如,所使用电池的类型和大小、UDPD 200进行的活动的类型和数量等。意外或早期功耗可能损害SCA 304的安全关键性质。
在本公开的一些方面中,可以执行电源管理检验以便确定UDPD200的供电能力是否足以以UDPD不突然断电的特定保证水平安全地运行SCA 304。例如,可以确定供电能力,并将其与使突然断电的风险最小地安全运行SCA 304所需的最小阈值相比较。在一些情况下,SCA 304正常运行的确定至少需要UDPD具有使断电的风险最小地安全运行的足够供电能力的确定。如果UDPD具有足够供电能力,则只要所进行的或需要进行的任何其他所需检验也成功通过,就可以确定SCA 304正常运行在UDPD 200上并许可其自由运行在UDPD 200上。如果UDPD没有足够供电能力,则可以阻止SCA 304自由运行。
在一些实施例中,一种检验可以包括要启动的一个或多个测试例程。图5例示了按照本公开的一些方面的包含一个或多个测试例程的功能检验的方块图。如图所示,功能检验414包括计算测试例程530、定时测试例程532、显示测试例程534、和通信测试例程536。
计算测试例程530确定SCA 304是否在UDPD 200上精确地进行计算—例如,在代表SCA 304在UDPD 200上精确计算的特定置信水平的预定参数和要求内。预定参数和要求可以例如通过参考数据408(本文也称为“参考计算数据”以便将它与可能在参考数据408内的其他数据区分开)来定义。
特定计算可能随在SCA 304内实现的特定安全关键特征而变。对于像医疗应用程序和其他SCA那样的多种应用程序,这些计算可以包括,例如,各种计算、测量、外推等。例如,分析物监测应用程序的计算可以包括但不限于计算分析物(例如,葡萄糖)测量值,计算用药剂量和/或监管时间(例如,从接收的葡萄糖测量值中计算胰岛素剂量),执行各种其他治疗相关算法(例如,趋势计算、各种警告确定等)和/或可应用于分析物监测的其他安全关键计算。
在一些情况下,计算测试例程530的执行可以启动SCA 304要使用预定输入数据(例如,如参考数据408所定义,本文也称为“参考计算输入”以便将它与可能在参考数据408内的其他数据区分开)进行的特定计算。于是,参考计算数据包括这些计算使用参考计算输入的预期或可接受结果。可以比较计算的实际结果和参考计算数据,以便确定是否在UDPD 200上精确地进行计算。
参考计算输入可以模拟,例如,在SCA 304自由运行的同时提供给SCA 304和UDPD 200的安全关键输入数据。例如,当自由运行时,可以将SCA 304和UDPD 200配置成接收来自一个或多个外部设备的数据(例如,来自像葡萄糖监测设备那样的外部分析物监测设备的像葡萄糖测量值那样的分析物测量值),然后对接收的数据进行各种计算。计算测试例程530使用模拟这种接收数据(例如,来自外部设备的分析物测量值)的参考计算输入启动SCA 304和UDPD 200进行的这种计算。然后可以将计算的结果与相应参考计算数据相比较,以确定SCA 304是否在UDPD 200上精确地计算。
如果,例如,确定SCA 304未精确地进行计算(例如,计算的结果与参考计算数据不匹配),则计算测试例程530指示SCA 304在UDPD 200上不具有正常功能,这进一步指示SCA 304未正常运行在UDPD 200上。然后可以阻止SCA 304在UDPD 200上自由运行。
在一些情况下,SCA 304在UDPD 200上具有正常功能的确定至少需要SCA 304精确地进行计算的确定(例如,计算的结果与参考计算数据之间的匹配)。应该理解,尽管使SCA具有正常功能需要一个条件,但如果满足了那个条件,也不一定意味着SCA具有正常功能—可能还需要满足其他条件。例如,在一些情况下,为了使SCA具有正常功能,可能需要SCA 304精确地进行计算(例如,计算的结果与参考计算数据匹配),以及需要SCA及时地进行计算。因此,一个条件的发生不一定意味着SCA具有正常功能。如果,例如,确定SCA 304精确地进行计算(例如,计算的结果与参考计算数据匹配),则可以启动其他检验和/或测试例程(或如果不需要执行其他检验和/或测试例程,则可以许可SCA自由运行)。
定时测试例程532确定SCA 304是否及时地在UDPD 200上进行活动(例如,计算、通信等)—例如,在落在代表SCA 304在UDPD200上及时地进行活动的特定置信水平的预定参数和要求内的时间内。预定参数和要求可以,例如,通过参考数据408(本文也称为“参考定时数据”以便将它与可能在参考数据408内的其他数据区分开)来定义。这些活动可以包括SCA 304实现的各种活动—例如,像上述那样的安全关键计算、将各种结果显示在UDPD 200的显示器上、与外部设备的通信、执行检验和测试例程、它们的任何组合等)。
例如,定时测试例程532可以确定SCA 304进行计算测试例程530启动的计算所花费的时间。在一些情况下,例如,可以记录特定事件的时间戳或日志或事件的持续时间。例如,可以登记或记录与计算测试例程530的执行相关联的各种时间—例如,将参考计算输入提供给SCA 304的时间、和SCA 304提供相应结果的时间(两个时间的差值代表SCA 304在UDPD 200上进行计算所花费的时间)。在一些情况下,要考虑显示信息所花费的额外时间。应该理解,也可以实现定时器或任何其他跟踪时间的合适方法。
然后,可以将定时结果与相应参考定时数据相比较,以确定SCA304是否及时地在UDPD 200上进行活动(例如,计算、通信等)。并且,还应该理解,在一些情况下,在太短的时段内完成活动也可能指示SCA 304未及时在UDPD 200上进行活动。
如果,例如,确定SCA 304未及时在UDPD 200上进行活动(例如,进行活动的时间与参考定时数据不匹配),则定时测试例程532指示SCA 304在UDPD 200上不具有正常功能,这进一步指示SCA 304未正常运行在UDPD 200上。然后可以阻止SCA 304在UDPD 200上自由运行。
在一些情况下,SCA 304在UDPD 200上具有正常功能的确定至少需要SCA 304及时地进行活动(例如,进行活动的时间与参考定时数据的匹配)。例如,如果确定SCA 304在UDPD 200上及时地进行活动(例如,进行活动的时间与参考定时数据匹配),则可以启动其他检验和/或测试例程(或如果不需要执行其他检验和/或测试例程,则可以许可SCA自由运行)。
显示测试例程534确定SCA 304的数据是否正常显示在UDPD200上—例如,在代表SCA 304在UDPD 200上正常显示数据的特定置信水平的预定参数和要求内。预定参数和要求可以,例如,通过参考数据408(本文也称为“参考显示数据”以便将它与可能在参考数据408内的其他数据区分开)来定义。在一些情况下,参考显示数据对应于要显示在UDPD 200的显示器上的计算测试例程的预期结果。
显示测试例程534可以,例如,启动通过参考数据408(本文称为“参考显示输入”以便将它与可能在参考数据408内的其他数据区分开)定义的特定预定图像以便显示在UDPD 200的显示器上。于是,参考显示数据可以包括与参考显示输入相对应的预期输出图像。然后,可以比较显示的实际图像和参考显示数据,以便确定数据是否被正常显示在UDPD 200上(例如,确定显示的实际图像是否与参考显示数据匹配)。
应该理解,术语图像在这里宽泛地用于包括要显示在显示器上的任何形式数据(例如,像素图案、图像文件(例如,JPEG、TIFF、GIF、BMP等)、文本、数字等)。在一些情况下,可以使用显示图案。而且,在一些情况下,显示图案可以用于测试像定时/扫描速率、涂抹、亮度、对比度等那样的各种显示诊断。
显示在UDPD 200上的实际图像可以以多种方式的任何一种确定。在一些情况下,可以采用截屏。例如,显示测试例程534可以包括针对显示在UDPD 200的显示器上的图像启动截屏的屏幕打印功能调用。然后,可以将显示在UDPD 200上的实际图像与参考显示数据相比较,以确定数据是否被正常显示在UDPD 200上。应该理解,屏幕打印功能无需将UDPD与打印机连接,而是例示显示测试例程534可以“读取”通常是只写设备的显示器。
还应该理解,可以将各种比较算法实现成将显示在UDPD 200上的实际图像与参考显示数据相比较。例如,在一些情况下,比较算法可以将显示的实际图像转换成代表性数值或表示。在这样的情况下,例如,参考显示数据可以是参考显示输入的预期代表数值或表示。因此,可以比较两个数值或表示,以确定匹配还是不匹配。在一些情况下,比较算法可以比较图像本身,在该情况下,参考显示数据等同于参考显示输入。应该理解,可以实现各种比较方法。
在一些情况下,可以通过接收识别显示在UDPD 200的显示器上的实际图像的用户输入确定显示在UDPD 200上的实际图像。可以提示用户,例如,确认显示的精确性(例如,输入显示的数字、文本、符号或短语;或提供对显示在显示器上的信息的任何其他形式的确认响应等)。在这样的情况下,例如,用户确认可以起显示的实际图像的作用,因此将其与指示预期显示的东西的参考显示数据相比较。以这种方式,可以确定图像是否正常显示在UDPD上。
例如,可以发出用户验证的请求,以确定数据是否精确地显示在UDPD 200上。例如,可以将验证询问传达(可看见地,可听见地,等等)给用户,提示用户输入显示在UDPD的显示器上的东西(例如,字母数字代码、数字代码、符号、文本、短语等)。通过启动要显示在UDPD 200的显示器上的图像(例如,代码)和接收识别显示的东西的用户输入确定显示在显示器上的实际图像。然后,可以将通过用户输入识别的显示的实际图像与参考显示数据相比较,以确定是否显示了正确图像。
而且,用户输入精确识别显示的实际图像的保证水平可能随实现的验证询问的类型而变。例如,通过让用户提供“是”或“否”反馈可以达到基本保证水平。例如,验证询问可以问用户是否看见了特定图像(例如,“你在显示器上看到汽车了吗”)。应该理解,该图像可以是各种图片、符号、单词、短语、数字等。然后,用户可以通过在UPDP上输入适当答案(例如,键入“是”或“否”或在触摸屏上触摸“是”或“否”按钮等)对该询问作出响应。识别图像是否是汽车的用户输入被接收,并与参考显示数据相比较(例如,“是”的响应指示图像被正常显示在显示器上;而“否”的响应指示图像未被正常显示在显示器上)。
通过使用让用户对多选题作出响应的验证询问可以达到另一种保证水平。数量较多的可用答案选项降低了用户猜测和提供假肯定的机会。例如,验证询问可能会问“你在显示器上看到汽车,树还是数字12?”。然后,用户可以通过选择或输入适当答案对验证询问作出响应。然后,将识别显示在显示器上的实际图像的用户输入与标识预期显示在显示器上的东西的参考显示数据相比较。
通过使用让用户对开放问题或命令作出响应的验证询问可以达到另一种保证水平。例如,验证询问可能会问“你看见什么了?”;“输入你在显示器上看见的文本、代码、符号等”;等等。然后,用户可以通过输入适当答案(例如,键入他们看见的东西;输入显示的代码、符号等;等等)对验证询问作出响应。然后,将识别显示在显示器上的实际图像的用户输入与标识预期显示在显示器上的东西的参考显示数据相比较。
如果,例如,确认UDPD 200未正常显示参考显示输入(例如,显示的实际图像与参考显示数据不匹配),则显示测试例程534指示SCA 304在UDPD 200上不具有正常功能,这进一步指示SCA 304未正常运行在UDPD 200上。然后可以阻止SCA 304在UDPD 200上自由运行。
在一些情况下,SCA 304在UDPD 200上具有正常功能的确定至少需要SCA 304正常显示参考显示输入。例如,如果确定UDPD 200的确正常显示参考显示输入(例如,显示的实际图像与参考显示数据匹配),则可以按需要执行其他检验和/或测试例程(或如果不需要执行其他检验和/或测试例程,则可以许可SCA自由运行)。
在一些实施例中,可以将SCA 304和UDPD 200配置成经由通信链路(例如,有线或无线通信链路)与外部设备通信。可以启动通信测试例程536以便确定SCA 304是否在UDPD 200上与外部设备正常通信。例如,通信测试例程536可以确定SCA 304是否可以正常建立UDPD 200与外部设备之间的通信链路,SCA 304是否可以精确地通信(例如,发送和/或接收数据)等。也可以要求在通信链路上及时地进行通信,以便使SCA 304经由与UDPD的通信链路与外部设备正常地通信。通信测试例程536可以应用于单向和/或双向测试。
SCA 304可以取决于所实现的特定SCA为各种目的与外部设备通信。提前看图7,图7例示了按照本公开的一些方面的经由通信链路与各种外部设备通信的UDPD的方块图。
如图7所示,系统700包含经由通信链路715与分析物监测设备705通信、经由通信链路716与数据处理设备706通信、和经由通信链路717与药品输送设备707通信的UDPD 200。UDPD 200包括分别与外部设备705-707的通信模块730-732形成通信链路715-717的通信模块605。通信模块605和通信模块730-732可以包括例如适当发送器、接收器和/或收发器。应该理解,通信链路715-717可以利用有线技术(例如,USB、以太网或任何其他适当有线技术)或无线技术(例如,蓝牙、红外、射频识别(RFID)或任何其他适当无线技术)来实现。虽然通信模块605用一个方块表示,但应该理解,通信模块605可以包含一种或多种通信技术的一个或多个通信模块。例如,通信模块605可以包括以蓝牙方式与一个外部设备通信的一个蓝牙模块和以红外方式与另一个外部设备通信的另一个红外模块。也应该理解,UDPD 200可以配置成与示出的一个或多个设备通信,或与未示出的另一个外部设备通信。
UDPD 200进一步包括为SCA 304和测试工具310执行各种指令集、和进一步控制通信模块605的运行的处理器203。在一些实施例中,UDPD 200是像那样,上面安装了SCA 304和测试工具310的移动电话。虽然将移动电话用于描述这个特定实施例,但应该理解,可以应用任何UDPD。
分析物监测设备705可以是,例如,像葡萄糖仪那样的葡萄糖监测设备。在一些情况下,分析物监测设备705可以是连续葡萄糖监测(CGM)设备和/或按需葡萄糖(God)设备。例如,CGM设备和/或God设备可以包含允许从病人身上获取葡萄糖测量数据,然后经由像蓝牙那样的无线通信发送给UDPD 200,供SCA 304使用的植入传感器。有关植入传感器的附加信息可以在发明名称为“Compact OnBody Physiological Monitoring Devices And Methods Thereof”(专利代理人案号TS-02-242)的美国专利申请中找到,该专利申请已经转让给本申请的受让人,即,雅培糖尿病护理公司(Abbott Diabetes CareInc.),特此通过引用将其全文并入本文中以便用于所有目的。
药品输送设备707可以是,例如,用于根据从UDPD 200上的SCA304接收的计算剂量输送胰岛素剂量的胰岛素泵。UDPD 200可以接收来自,例如,设备709的葡萄糖测量值,并根据葡萄糖测量值计算推荐胰岛素剂量,然后将推荐剂量发送给药品输送设备707。
数据处理设备706可以是,例如,像个人计算机(例如,台式机、笔记本电脑等)那样的任何类型计算机设备、移动电话(例如, 等)、个人数字助理(PDA)等。UDPD 200可以为了各种目的而与数据处理设备706通信—例如,发送和/或接收测试结果,登记数据,使用数据处理设备706的网络能力等。
如果,例如,确定SCA 304不能在UDPD 200上与外部设备正常通信,则通信测试例程536指示SCA 304在UDPD 200上不具有正常功能,这进一步指示SCA 304未正常运行在UDPD 200上。然后可以阻止SCA 304在UDPD 200上自由运行。
在一些情况下,SCA 304在UDPD 200上具有正常功能的确定需要SCA 304在UDPD 200上与外部设备正常通信。例如,如果确定SCA304在UDPD 200上与外部设备正常通信,则可以按需要启动其他检验和/或测试例程(或如果不需要执行其他检验,则可以许可SCA自由运行)。
在一些实施例中,测试例程可以包括要启动的一个或多个子例程。术语“子例程”和“测试例程”在这里用于简单地区分两者之间的层次,以便有助于理解本文给出的概念。图6例示了按照本公开的一些方面的包含一个或多个子例程的通信测试例程的方块图。如图所示,通信测试例程536包括通信设置子例程638和通信验证子例程640。
启动设置子例程638以便确定SCA 304是否可以正常建立UDPD200与外部设备之间的通信链路。设置子例程638的执行可以启动SCA304建立UDPD 200与外部设备之间的通信链路。例如,SCA 304可以尝试建立UDPD 200与分析物监测设备和/或药品输送设备之间的通信链路。例如,UDPD上的SCA可以与胰岛素泵通信以便提供,例如,剂量数据。应该理解,可以实现各种方法来确定是否正常建立了通信链路—例如,使用握手过程,通过检测来自外部设备的信标信号等。
如果,例如,确定SCA 304可能未正常建立UDPD 200与外部设备之间的通信链路,则通信设置子例程638指示SCA 304未在UDPD200与外部设备之间正常通信,这进一步指示SCA 304未正常运行在UDPD 200上。然后可以阻止SCA 304在UDPD 200上自由运行。
在一些情况下,SCA 304在UDPD 200上正常通信的确定需要SCA 304可以正常建立UDPD 200与外部设备之间的通信链路的确定。例如,如果确定SCA 304可以正常建立UDPD 200与外部设备之间的通信链路,则可以按需要启动其他检验和/或测试例程和/或子例程(或如果不需要执行其他检验和/或测试例程和/或子例程,则可以许可SCA自由运行)。
执行验证子例程640以便确定SCA 304是否在UDPD 200与外部设备之间的通信链路上精确地通信(例如,发送和/或接收数据)—例如,在代表SCA 304在UDPD 200与外部设备之间精确通信的特定置信水平的预定参数和要求内。预定参数和要求可以通过参考数据408(本文也称为“参考通信数据”以便将它与可能在参考数据408内的其他数据区分开)来定义。
在一些情况下,验证子例程640的执行可以启动要使用由验证子例程提供的参考数据(本文称为“参考通信输入”以便将它与可能在参考数据408内的其他数据区分开)在UDPD 200与外部设备之间进行的特定通信。参考通信输入可以是各种数据—例如,测试信号、数据请求等。在一些情况下,验证子例程640的执行可以启动SCA 304向外部设备发出数据以便“反弹”回来。然后,可以将接收的反弹数据与发出的数据相比较,以确定数据是否没有受到任何损害或损坏地被发送和返回。例如,如果SCA 304是设计成与胰岛素泵无线通信的葡萄糖监测应用程序,则验证子例程640的执行可以引起数据发送到胰岛素泵以便反弹回来。然后可以将接收的反弹数据与发送的数据相比较。作为另一个例子,在一些情况下,验证子例程640的执行可以引起SCA 304向外部设备请求数据。例如,如果SCA 304是设计成经由蓝牙与连续葡萄糖监测设备通信的葡萄糖监测应用程序,则验证子例程640的执行可以引起SCA 304在蓝牙链路上向连续葡萄糖监测设备请求数据。
于是,参考通信数据可以包括使用参考通信输入(例如,测试信号、数据请求等)启动的通信的预期或可接受结果。参考通信数据可以包括,例如,预期测试信号(例如,预期“反弹”信号)、响应发送测试信号的预期确认信号、响应数据请求的预期数据、预期数值、预期数据类型(例如,文本、数字、图片/电影文件等)、使用的预期通信协议、它们的任何组合等。
将通信的实际结果(例如,接收的测试信号、测试信号的响应、接收的确认信号、响应数据请求接收的数据、预期数值、接收的数据的类型、使用的通信协议、它们的任何组合等)与参考通信数据相比较,以确定它们是否匹配。然后,验证子例程640可以确定SCA 304是否在UDPD 200与外部设备之间的通信链路上精确地通信。
如果,例如,确定SCA 304未在UDPD 200与外部设备之间的通信链路上精确地通信,则验证子例程640指示SCA 304未在UDPD 200与外部设备之间正常通信,这指示SCA 304在UDPD 200上不具有正常功能,这进一步指示SCA 304未正常运行在UDPD 200上。然后可以阻止SCA 304在UDPD 200上自由运行。
在一些情况下,SCA 304在UDPD 200上正常通信的确定需要SCA 304在UDPD 200与外部设备之间的通信链路上精确地通信的确定。例如,如果确定SCA 304的确在UDPD 200与外部设备之间的通信链路上精确地通信,则可以按需要启动其他检验和/或测试例程和/或子例程(或如果不需要执行其他检验和/或测试例程和/或子例程,则可以许可SCA自由运行)。
可以执行定时测试例程532以便确定SCA 304是否及时地在UDPD 200上与外部设备进行通信—例如,在落在代表SCA 304及时地在UDPD 200上与外部设备通信的特定置信水平的“参考定时数据”内的时间内。
例如,定时测试例程532可以确定SCA 304正常建立由设置子例程638启动的UDPD 200与外部设备之间的通信链路,和/或进行由验证子例程640启动的通信所花费的时间。同样,可以登记或记录与通信测试例程536相关联的各种时间,以便确定SCA 304是否及时进行通信。在一些情况下,定时信息可以被包括在发送给外部设备的参考通信输入(例如,测试信号、数据请求等)中,和/或由在外部设备发送的数据中提供定时信息。这样,可以确定每种单向通信的定时。而且,应该理解,通信测试例程可以包括在通信时间方面完成与定时测试例程532相同的功能的定时子例程。
如果,例如,确定SCA 304在UDPD 200上未及时(例如,时间与参考定时数据不匹配)进行通信(和/或未建立通信链路),则定时测试例程532指示SCA 304未在UDPD 200上正常通信,这指示SCA304在UDPD 200上不具有正常功能,这进一步指示SCA 304未正常运行在UDPD 200上。然后可以阻止SCA 304在UDPD 200上自由运行。
在一些情况下,SCA 304在UDPD 200上正常通信的确定需要SCA 304及时(例如,时间与参考定时数据匹配)进行通信和/或建立通信链路的确定。例如,如果确定SCA 304在UDPD 200上及时进行通信和/或建立通信链路,则可以按需要启动其他检验和/或测试例程(或如果不需要执行其他检验和/或测试例程,则可以许可SCA自由运行)。
在本公开的一些方面中,可以实现回送(loopback)硬件模块以便对UDPD进行各种回送测试。回送测试可以确定,例如,UDPD上像通信端口那样的其他组件是否正常运行。例如,回送模块可以是与UDPD上的通信端口耦合的物理硬件设备,接收来自UDPD的测试通信和返回测试信号。应该理解,通信端口在这里宽泛地用于包含使用任何类型通信技术的任何类型通信插座或插头—例如,包括Mini-USB和Micro-UBS的USB系列;火线;以太网等的任何一种。
例如,测试工具可以包含可以被执行以便将测试信号发送给附有回送模块的UDPD的通信端口的测试例程。回送模块接收测试信号并经由相同通信端口将它“反弹”回来。在一些情况下,回送模块可以与多于一个通信端口耦合,接收第一通信端口中的测试信号,并经由一个或多个其他端口将它发送回来。回送模块例如可以包括开关来路由测试信号。然后,可以再次将接收的反弹信号与原始测试信号相比较,以确定通信硬件是否正常运行在UDPD上。在一些情况下,也可以测试测试信号的定时,看是否在预期时间帧中发送和返回测试信号。应该理解,在一些情况下,可以将这种回送测试的测试例程实现成通信和/或定时测试例程的一部分。还应该理解,在一些情况下,回送模块可以包含在UDPD内实现的硬件和/或软件。
图8例示了按照本公开的一些方面的安装检验的流图。应该理解,上面针对安装检验讨论的细节可应用于图8。如图8所示,在安装检验800的方块805上,识别安装SCA组件(例如,安装在UDPD 200上的SCA 304的多个文件之一)的图像。安装SCA组件的图像可以包括,例如,像文件名、版本号、循环冗余值(CRC)等那样,有关安装SCA组件的数据。
在方块810上,将安装SCA组件的图像与和针对正常安装预期的数据相对应的参考安装数据相比较。例如,可以将与安装SCA组件相关联的文件名、CRC值、和/或版本号与参考安装数据中的相应预期文件名、CRC值、和/或版本号相比较。
如方块815所表示,根据比较的结果,确定安装SCA组件是否得到正常安装。例如,可以确定每个安装SCA组件的图像是否与参考安装数据匹配。
如果,例如,安装SCA组件的图像与参考安装数据不匹配,则如方块820所表示,确定SCA 304未能正常安装在UDPD 200上。然后,可以阻止SCA 304在UDPD 200上自由运行。并且,在一些情况下,这可以包含禁用SCA,以便不能运行在UDPD上。在一些情况下,这可以包含许可SCA运行,以便用户仍然可以使用SCA的非安全关键特征,但不能使用安全关键特征。在一些情况下,可以报告正常安装的失败(例如,登记和/或传送给UDPD的用户等)。在一些情况下,可以将失败的报告发送给远程设备—例如,经由互联网。
如果,例如,安装SCA组件的图像与参考安装数据匹配,则如方块830所表示,确定安装SCA组件正常安装在UDPD 200上,并确定是否存在需要检验的安装SCA组件的任何另外图像。
如果确定存在需要检验的安装SCA组件的另外图像,则如返回到方块810的箭头所表示,识别下一个安装SCA组件,并对下一个安装SCA组件重复该过程。这个过程一直重复到需要检验的所有安装SCA组件都已经得到识别和确定了是否正常安装为止。
当没有剩下另外的安装SCA组件,并且所有安装SCA组件都确定为正常安装时,如方块840所表示,安装检验412指示SCA 304已正常安装在UDPD 200上。在一些情况下,报告SCA 304的正常安装(例如,登记和/或传送给UDPD 200的用户等)。在一些情况下,可以将正常安装的报告发送给远程设备—例如,经由互联网。
图9例示了按照本公开的一些方面的功能检验的流图。应该理解,上面针对功能检验讨论的细节也可应用于图9。如图9所示,在功能检验900的方块905上,运行一个或多个计算测试例程,以便确定SCA304是否在UDPD 200上精确地进行计算。例如,将参考计算输入提供给SCA 304,由UDPD 200上的SCA 304使用参考计算输入启动特定安全关键计算。将计算的结果与参考计算数据相比较,以确定该结果是否落在通过参考计算数据定义的预定参数和要求之内。
同样,特定计算可能随在SCA 304内实现的特定安全关键特征而变。对于像医疗应用程序和其他SCA那样的多种应用程序,这些计算可以包括,例如,各种计算、测量、外推等。例如,分析物监测应用程序的计算可以包括但不限于计算分析物(例如,葡萄糖)测量值,计算用药剂量和/或监管时间(例如,从接收的葡萄糖测量值中计算胰岛素剂量),执行各种其他治疗相关算法(例如,趋势计算、各种警告确定等)和/或可应用于所实现的特定SCA的其他安全关键计算。
在方块910上,确定计算的结果是否与参考计算数据匹配。如果该结果未落在参考计算数据之内,则确定SCA 304未精确地进行计算。这指示SCA 304在UDPD 200上不具有正常功能,因此未正常运行在UDPD 200上。然后,如方块920所表示,可以阻止SCA 304在UDPD200上自由运行。如果该结果的确落在参考计算数据之内,则SCA 304在UDPD 200上精确地进行计算,然后,如方块925所表示,运行一个或多个定时测试例程。
在方块925上,确定在UDPD 200上进行各种活动(例如,方块905的计算)所花费的时间,并将其与参考定时数据相比较。例如,定时测试例程532可以确定SCA 304进行由计算测试例程530启动的计算所花费的时间。在一些情况下,例如,可以记录特定事件的时间戳或日志或事件的持续时间。例如,可以登记或记录与计算测试例程530的执行相关联的各种时间—例如,将参考计算输入提供给SCA 304的时间、和SCA 304提供相应结果的时间(两个时间的差值代表SCA304在UDPD 200上进行计算所花费的时间)。在一些情况下,进行新的活动,并记录开始时间和结束时间,以便确定该活动的持续时间。应该理解,也可以实现定时器或任何其他跟踪时间的合适方法。
在方块930上,确定进行活动(例如,方块905的计算)的时间是否落在参考定时数据之内。如果,例如,该时间未落在参考定时数据之内,则SCA 304在UDPD 200上未及时进行计算,指示SCA 304在UDPD 200上不具有正常功能,因此未正常运行在UDPD 200上。然后,如方块920所表示,可以阻止SCA 304在UDPD 200上自由运行。如果,例如,进行活动(例如,方块905的计算)的时间的确落在参考定时数据之内,则SCA 304在UDPD 200上及时地进行计算,然后,如方块935所表示,可以运行一个或多个显示测试例程。
在方块935上,启动通过参考显示输入定义的特定预定图像以便显示在UDPD 200的显示器上。如方块940所表示,识别显示的实际图像。例如,可以启动截屏来识别显示的实际图像。可以按需要将任何形式的数据显示在显示器上(例如,像素图案、图像文件(jpeg等)、文本、数字等)。在一些情况下,参考显示输入对应于要显示在显示器上的在方块905上进行的计算的预期结果。在一些情况下,可以使用显示图案。然后,如方块950所表示,将显示的实际图像与参考显示数据相比较,以确定显示在UDPD 200上的实际图像是否与参考显示数据匹配。
在可选方块945上,也需要用户验证或交互。例如可以提示用户确认UDPD正常显示数据。例如,可以提示用户输入显示的数字、文本或短语;或提供对显示在显示器上的图像的任何其他形式的确认响应等。根据是否接收到有效用户确认,确定参考显示输入是否正常显示在UDPD 200上。
在方块950上,确定显示在UDPD 200上的实际图像是否正常显示(例如,在通过参考显示数据定义的预定参数和要求之内)。例如,参考显示数据可以包括代表截屏的预期或正确图像。将显示的实际图像与参考显示数据相比较,以确定显示的实际图像是否与参考显示数据匹配。而且,参考显示数据可以包括针对UDPD正常显示数据的用户确认接收的预期或有效用户确认。
如果,例如,显示的实际图像(例如,从屏幕快照中或从用户确认中确定)与参考显示数据不匹配,则SCA 304在UDPD 200上不具有正常功能,这指示SCA 304未正常运行在UDPD 200上。然后,如方块920所表示,可以阻止SCA 304在UDPD 200上自由运行。如果,例如,显示的实际图像(和用户确认)与参考显示数据匹配,则如方块955所表示,SCA 304在UDPD 200上具有正常功能。
图10例示了按照本公开的一些方面的功能检验的流图。显示在图10中的实施例与显示在图9中的功能检验类似,除了显示在图10中的实施例包括通信测试例程之外。为了清楚和简洁起见,在图10的许多细节中精简了图9中的重复描述,但应该理解,上面针对图9中的类似方块的描述也可应用于图10。
在功能检验1000的方块1005上,执行一个或多个计算测试例程。将参考计算输入提供给SCA 304,由UDPD 200上的SCA 304使用参考计算输入启动特定安全关键计算。将计算的结果与参考计算数据相比较,以确定该结果是否落在通过参考计算数据定义的预定参数和要求之内。
在方块1010上,确定计算的结果是否与参考计算数据匹配。如果,例如,该结果未落在参考计算数据之内,则确定SCA 304未精确地进行计算,指示SCA 304在UDPD 200上不具有正常功能,因此未正常运行在UDPD 200上。然后,如方块1020所表示,可以阻止SCA 304在UDPD 200上自由运行。如果,例如,该结果的确落在参考计算数据之内,则SCA 304在UDPD 200上精确地进行计算,然后,如方块1025所表示,运行一个或多个定时测试例程。
在方块1025上,确定在UDPD 200上进行各种活动(例如,方块1005的计算)所花费的时间,并将其与参考定时数据相比较。在一些情况下,确定进行方块1005的计算的时间。例如,可能已经记录了计算的开始时间和结束时间—例如,当提供了参考计算输入时,和确定了结果时。在一些情况下,进行新的活动,并记录开始时间和结束时间,以便确定该活动的持续时间。
在方块1030上,确定进行活动(例如,方块1005的计算)的时间是否落在参考定时数据之内。如果,例如,该时间未落在参考定时数据之内,则SCA 304在UDPD 200上未及时进行计算,指示SCA 304在UDPD 200上不具有正常功能,因此未正常运行在UDPD 200上。然后,如方块1020所表示,可以阻止SCA 304在UDPD 200上自由运行。如果,例如,进行活动(例如,方块1005的计算)的时间的确落在参考定时数据之内,则SCA 304在UDPD 200上及时地进行计算,然后,如方块1031所表示,可以运行一个或多个通信测试例程。
在方块1031上,启动通信测试例程以便确定SCA 304是否在UDPD 200与外部设备之间正常通信。在方块1031上,启动设置子例程以便确定SCA 304是否可以正常建立UDPD 200与外部设备之间的通信链路。设置子例程启动SCA 304建立UDPD 200与外部设备之间的通信链路。
在方块1032上,确定SCA 304是否正常建立了UDPD 200与外部设备之间的通信链路。如果,例如,确定SCA 304可能未正常建立UDPD 200与外部设备之间的通信链路,则通信设置子例程指示SCA304未在UDPD 200与外部设备之间正常通信,这进一步指示SCA 304在UDPD 200上不具有正常功能,这进一步指示SCA 304在UDPD 200上未正常运行。然后,如方块1020所表示,可以阻止SCA 304在UDPD200上自由运行。
如果,例如,确定SCA 304可能正常建立了UDPD 200与外部设备之间的通信链路,则如方块1033所表示,运行验证子例程。验证子例程确定SCA 304是否在UDPD 200与外部设备之间的通信链路上精确地通信(例如,发送和/或接收数据)—例如,在通过参考通信数据定义的预定参数和要求之内。
在UDPD 200与外部设备之间使用参考通信输入(例如,测试信号、反弹信号、数据请求等)启动特定SCA通信。将通信的实际结果(例如,接收的反弹信号、对测试信号的响应、接收的确认信号、响应于数据请求接收的数据、预期数值、接收的数据的类型、使用的通信协议、它们的任何组合等)与参考通信数据相比较。在一些情况下,参考通信数据可以与参考通信输入相同—例如,当实现反弹信号时。
如方块1034所表示,确定通信的实际结果是否与参考通信数据匹配。如果,例如,确定通信的实际结果与参考通信数据不匹配,则SCA304在UDPD 200与外部设备之间的通信链路上未精确地通信,这指示SCA 304在UDPD 200与外部设备之间未正常地通信,这进一步指示SCA 304在UDPD 200上不具有正常功能,这进一步指示SCA 304未正常运行在UDPD 200上。然后,如方块1020所表示,可以阻止SCA 304在UDPD 200上自由运行。
在方块1033上,也可以运行可选定时测试例程,以便确定SCA304是否及时地在UDPD 200上与外部设备进行通信—例如,在落在代表SCA 304及时地在UDPD 200上与外部设备通信的特定置信水平的“参考定时数据”内的时间内。例如,可以确定SCA 304在方块1031中正常建立UDPD 200与外部设备之间的通信链路所花费的时间;和/或可以确定进行在方块1033中启动的通信所花费的时间。
在方块1034上,确定SCA 304是否及时地进行通信(例如,进行在方块1033中启动的通信所花费的时间是否与参考定时数据匹配)。如果,例如,确定SCA 304在UDPD 200上未及时地进行通信(例如,该时间与参考定时数据不匹配),则确定SCA 304未在UDPD 200上正常通信,这指示SCA 304在UDPD 200上不具有正常功能,这进一步指示SCA 304未正常运行在UDPD 200上。然后,如方块1020所表示,可以阻止SCA 304在UDPD 200上自由运行。
如果,例如,通信的实际结果与参考通信数据匹配,则SCA 304在UDPD 200与外部设备之间的通信链路上精确地通信。并且,如果进行通信的定时与参考定时数据匹配,则确定SCA 304在UDPD 200上及时地进行通信。
在方块1035上,运行显示测试例程。根据显示测试例程的执行,启动通过参考显示输入定义的特定预定图像以便显示在UDPD 200的显示器上。如方块1040所表示,识别显示的实际图像。例如,可以启动截屏来识别显示的实际图像。在一些情况下,参考显示输入对应于要显示在显示器上的在方块1005上进行的计算的预期结果。然后,如方块1050所表示,将显示的实际图像与参考显示数据相比较,以确定显示在UDPD 200上的实际图像是否与参考显示数据匹配。
在可选方块1045上,也需要用户验证或交互。可以提示用户,例如,确认UDPD正常显示数据。例如,可以提示用户输入显示的数字、文本或短语;或提供对显示在显示器上的图像的任何其他形式的确认响应等。根据是否接收到有效用户确认,确定参考显示输入是否正常显示在UDPD 200上。在一些情况下,显示测试可能牵涉到远程设备。例如,可能请用户确认在远程显示器上存在显示的信息或在远程显示器上重新输入显示的信息,以便确认整个功能。例如,可以将代码显示在远程设备的显示器上,以及提示用户在远程设备上重新输入代码。
在方块1050上,确定显示在UDPD 200上的实际图像是否在通过参考显示数据定义的预定参数和要求之内。如果,例如,显示的实际图像(和/或用户确认)与参考显示数据不匹配,则SCA 304在UDPD200上不具有正常功能,这指示SCA 304未正常运行在UDPD 200上。然后,如方块1020所表示,可以阻止SCA 304在UDPD 200上自由运行。如果,例如,显示的实际图像(和用户确认)与参考显示数据匹配,则如方块1055所表示,确定SCA 304在UDPD 200上具有正常功能。
应该理解,在一些实施例中,可以在不同时间和以各种组合执行上述检验,以达到SCA正常运行在UDPD上的不同置信水平。图11和图12例示了按照本公开的一些方面在UDPD上容纳SCA的示例性流图。上面针对各种检验、测试例程、和子例程的讨论也可应用于图11和12。
图11例示了按照本公开的一些方面的安装过程的流图。在过程1100的方块1105上,将SCA 304和测试工具310安装在UDPD 200上。在一些情况下,可以一开始就阻止SCA 304在UDPD 200上自由运行,以保证在用户使用SCA 304之前首先进行如下初始检验。
在方块1110上,启动安装检验。例如,在一些情况下,安装测试识别安装的SCA组件的图像并将其与参考安装数据相比较。应该理解,在一些情况下,安装检验也确定测试工具是否也正常安装在UDPD200上。
如方块1115所表示,根据进行的安装测试的结果(例如,安装SCA组件的图像是否与参考安装数据匹配),确定SCA 304是否得到正常安装。如果,例如,确定SCA 304未正常安装在UDPD 200上(例如,安装SCA组件的图像与参考安装数据是否匹配),则报告正常安装的失败并阻止SCA自由运行—例如,如方块1120所表示,禁用SCA304以便不能运行在UDPD 200上。例如,可以登记和/或向用户报告安装失败。在一些情况下,测试工具310可以将失败的报告发送给远程设备—例如,经由互联网。同样,在其他情况下,可以许可SCA 304运行,以便用户仍然可以使用SCA 304的不是安全关键的功能。
如果,例如,在方块1115上确定SCA 304正常安装在UDPD 200上,则如方块1130所表示,运行功能测试,以确定SCA 304在UDPD200上是否具有正常功能。如前所述,功能测试可以包括可以执行的一个或多个测试例程—例如,计算测试例程、定时测试例程、显示测试例程、和/或通信测试例程。
在方块1135上,确定SCA 304在UDPD 200上是否具有正常功能。例如,具有正常功能可能需要SCA 304在UDPD 200上精确计算,SCA 304在UDPD 200上及时地进行活动(例如,计算),SCA 304的数据正常显示在UDPD 200上,和/或SCA 304可以经由外部设备与UDPD之间的通信链路正常地与外部设备通信(例如,可以建立通信链路和及时发送/接收数据)的确定。
如果,例如,确定SCA 304在UDPD 200上不具有正常功能,则如方块1140所表示,确定SCA 304未正常运行在UDPD 200上,然后可以阻止SCA 304在UDPD 200上自由运行。
如果,例如,确定SCA 304具有正常功能,则如方块1150所示,确定SCA 304正常运行在UDPD 200上,并执行环境检验以确定和保存与SCA 304正常运行的确定相关联的UDPD 200的当前环境。然后,可以允许SCA 304自由运行在UDPD 200上。而且,应该理解,在其他实现中可以以不同次序启动这些检验。
图12例示了按照本公开的一些方面的进行各种检验的示例性过程的流图。图12的流图可以,例如,出现在已经允许SCA 304自由运行之后(例如,已经运行了描述在图11中的过程之后)的运行时上。应该理解,在一些情况下,可以在UDPD 200上,在后台运行该过程。例如,可以在SCA 304正在运行的同时在后台,在SCA 304未运行时在后台,在前台运行其他应用程序的同时在后台运行过程1200。而且,应该理解,过程1200可对用户透明。
在过程1200的方块1205上,启动环境检验以确定UDPD 200的“当前环境”自SCA正常运行以及许可其自由运行在UDPD 200上的最后一次确定以来是否发生了变化。环境检验可以在不同时间启动—例如,在预定时间/间隔(例如,许可SCA自由运行在UDPD上之后的预定时间间隔)上,和/或在发生了像当运行SCA时,当关闭SCA之后等那样的特定事件时。
环境检验识别当前环境—例如,任何当前安装的软件程序、应用程序、驱动器、硬件组件等。然后,在方块1210上,将当前环境与和SCA 304正常运行在UDPD 200上的最后一次确定相关联的以前存储的“当前环境”相比较。例如,该比较可以确定当前环境是否与以前存储的当前环境匹配。应该理解,不仅要考虑到新安装的程序,而且要考虑到移除的程序和/或对程序的修改(例如,新版更新、软件修复、固件更新等)。在一些实施例中,可以只考虑软件环境。在其他实施例中,也可以考虑硬件环境。
如方块1220所表示,根据方块1210中的比较,确定UDPD 200的环境自SCA正常运行在UDPD 200上以及许可其自由运行在UDPD200上的最后一次确定以来是否发生了变化。
如果,例如,确定UDPD 200的环境未发生变化,则达到了SCA304仍然正常运行在UDPD 200上的特定置信水平。如方块1245所表示,例如,可以许可SCA 304继续自由运行。可以设想,在一些情况下,如果环境未发生变化,则仍然可以全面地或简略地启动功能检验,以提供SCA 304正常运行的更大保证。
如果,例如,确定UDPD 200的环境发生了变化,则如方块1225所表示,SCA 304有可能未正常运行在UDPD 200上,并且启动功能检验。例如,可以运行计算测试例程、定时测试例程、显示测试例程、和/或通信测试例程,以便确定SCA 304在UDPD 200上是否具有正常功能。在一些情况下,在进行功能检验的同时许可SCA 304继续自由运行。在一些情况下,在进行功能检验的同时阻止SCA 304自由运行。在其他实现中,如果环境发生了变化,也可以启动安装检验。
在方块1230上,确定SCA 304在UDPD 200上是否具有正常功能。例如,具有正常功能可能需要确定SCA 304在UDPD 200上精确计算,SCA 304在UDPD 200上及时地进行活动(例如,计算),SCA304的数据正常显示在UDPD 200上,和/或SCA 304可以经由外部设备与UDPD之间的通信链路正常地与外部设备通信(例如,可以建立功能通信链路和及时精确地传送数据)。
如果,例如,确定SCA 304在UDPD 200上不具有正常功能,则如方块1235所表示,确定SCA 304未正常运行在UDPD 200上,然后可以阻止SCA 304在UDPD 200上自由运行。如果,例如,确定SCA304具有正常功能,则如方块1240所示,保存UDPD 200的当前环境。如方块1245所示,确定SCA 304正常运行在UDPD 200上,然后,可以许可SCA 304自由运行在UDPD 200上。可以在另一个时间和/或发生事件时再次重复该过程。
在本公开的一些方面中,UDPD 200可以包括主机完整性检验,执行主机完整性检验以便确定SCA 304的完整性是否已损坏,因为损坏的SCA 304损害SCA 304正常运行在UDPD 200上的任何保证。在一些情况下,SCA 304正常运行在UDPD 200上的确定需要SCA 304未损坏的确定。如果SCA 304损坏了,则可以确定SCA 304未正常运行在UDPD 200上,以及可以阻止SCA 304在UDPD 200上自由运行。如果确定SCA 304未损坏,则只要所进行的或将进行的任何其他所需检验也成功通过,就可以确定SCA 304正常运行并许可其自由运行。
在一些情况下,提供主机完整性检验,主机完整性检验可以确定SCA 304的码文是否完好无损。图13例示了按照本公开的一些方面的主机完整性检验的流图。在检验1300的方块1305上,计算SCA 304码文的校验和。除了SCA 304码文之外,主机完整性检验还可以检验与SCA 304相关联的其他非易失性和关键数据—例如,像各种检验的参考数据那样的SCA 304需要或使用的数据的完整性。然后,如方块1310所表示,将计算的校验和与参考校验和相比较。参考校验和是未损坏状态下SCA 304码文(和/或与SCA 304相关联的附加数据)的校验和(例如,在制造和测试期间事先计算的和作为用于以后完整性检验用的参考校验和存储的校验和)。在一些情况下,可以将参考校验和存储成参考数据408的一部分。在方块1315上,根据比较确定SCA 304的码文是否损坏。例如,如果计算的校验和与参考校验和匹配,则确定SCA 304未损坏。另一方面,如果计算的校验和与参考校验和不匹配,则确定SCA 304损坏。如果计算的校验和与参考校验和不匹配,则如方块1320所表示,确定SCA 304已损坏,并阻止SCA 304自由运行。如果确定SCA 304未损坏,则只要所进行的或将进行的任何其他所需检验成功通过,就可以许可SCA 304自由运行。
在一些实施例中,可以将主机完整性检验实现成驻留在UDPD200上位于非易失性存储器中的测试模块。可以通过各种方法将主机完整性测试存储在UDPD 200上。例如,可以从CD-ROM、存储棒、其他外部存储设备等经由互联网将主机完整性检验提供给UDPD 200。在一些情况下,可以在包括测试工具和/或SCA 304的安装设备(例如,安装CD-ROM)上提供主机完整性检验。在一些情况下,主机完整性检验可以作为测试工具的一部分包括进来,并且当将测试工具装载在UDPD 200上时存储在UDPD 200上。
可以将主机完整性测试编程为在不同时间启动。在一些情况下,可以在非运行时启动主机完整性测试。例如,可以将主机完整性检验编程为每次在运行SCA 304之前,在预定时间量之后周期性地,或每当软件环境发生变化时等启动。
在一些实施例中,可以作为安装过程的一部分启动主机完整性检验。例如,在图11中,可以在过程1100中的功能检验1130之前,之后,或与其同时启动主机完整性检验。因此,除了安装检验和功能检验的预期结果之外,方块1155还需要主机完整性检验的预期结果(例如,SCA 304码文未损坏)。如果主机完整性检验导致意外结果(例如,SCA 304码文损坏),则阻止SCA 304自由运行。因此,过程1100将确定SCA 304是否正常安装,SCA 304的完整性是否保持,以及SCA304是否具有正常功能。应该理解,也可以包括另外的检验—例如,共存检验、互通性测试、电源管理测试等。
在一些实施例中,可以将主机完整性检验编程为在软件环境发生变化时启动。例如,在图12中,在一些情况下,可以在过程1200中的功能检验1225之前,之后,或与其同时启动主机完整性检验。因此,除了功能检验的预期结果之外,方块1245还需要主机完整性检验的预期结果(例如,SCA 304码文未损坏)。如果主机完整性检验导致意外结果(例如,SCA 304码文损坏),则阻止SCA 304自由运行。因此,过程1200将确定环境是否发生了变化,SCA 304的完整性是否仍然保持,以及SCA 304是否具有正常功能。应该理解,也可以包括另外的检验—例如,共存检验、互通性测试、电源管理测试等。
在本公开的一些方面中,由于涉及SCA 304的安全关键性质,所以可以启动共存检验以便确定SCA 304是否与UDPD 200上的其他程序不兼容。在一些情况下,SCA 304正常运行在UDPD 200上的确定至少需要SCA 304不与非相关程序不兼容的确定。如果SCA 304与一个或多个非相关程序不兼容,则可以阻止SCA 304在UDPD 200上自由运行。如果SCA 304不与任何非相关程序不兼容,则只要所进行的或将进行的任何其他所需检验也成功通过,就可以确定SCA 304正常运行并许可其自由运行在UDPD 200上。
还应该注意到,各种程序在UDPD 200上可能处在不同状态下—例如,未运行,在被动状态下,在主动状态下等。为了运行程序,例如,UDPD 200可以将程序装入易失性存储器(例如,RAM)中,然后执行该程序。在一些情况下,当调用程序时,让程序在主动状态下运行在UDPD 200上。在其他情况下,程序可能被部分取出但不主动运行。程序可以保持在这种被动状态下等待调用,以便将程序带入主动状态。例如,即使一些程序未主动运行,但需要它们是“活着”的—以便例如更新时间,周期性地监测设备,监测通信等。当SCA 304和非相关程序的任一种或两者处在主动或被动状态下,在这些程序之间可能存在安全关键不兼容性。
共存检验识别在它们的主动和/或被动状态下在SCA 304与另一个应用程序之间是否存在任何安全关键不兼容性。如果存在不兼容性,则可以采取适当措施—例如,可以阻止SCA 304在UDPD 200上自由运行。在一些情况下,可以让用户留心不兼容性,并请求用户不使用不兼容程序,或禁用或卸载不兼容程序。
图14例示了按照本公开的一些方面的共存检验的流程图。在检验1400的方块1405上,确定是否有任何非相关程序与SCA 304共享资源。如果未共享资源,则如方块1430所表示,SCA 304不与任何非相关程序不兼容。如果SCA 304与一个或多个非相关程序共享资源,则如方块1410所表示,确定资源的共享是否因造成冲突而损害SCA 304的安全关键方面。例如,共存检验可以依次或同时启动SCA 304与一个或多个非相关程序之间的冲突脚本。冲突脚本可以包含,例如,取出SCA 304和非相关应用程序并让每一种尝试同时访问共享资源。例如,冲突脚本可以包括非相关应用程序和SCA 304尝试同时使用无线通信,同时将信息显示在UDPD 200的显示器上,同时对存储器进行读取和/或写入等。作为另一个例子,SCA可以首先访问资源,随后非相关程序尝试访问同一资源—或反过来。此外,作为另一个例子,如果UDPD 200是移动电话或智能电话,则可以启动冲突脚本来测试在执行各种功能—例如,SCA 304传送数据、SCA 304显示测试测量值、SCA 304发出警报声等的同时,UDPD 200接收的来话呼叫如何影响SCA 304。
在一些情况下,SCA 304可以不造成冲突地与其他程序共享资源。例如,SCA 304在特定环境下可以优先访问资源,因此比使用相同资源的其他程序具有优先权。例如,可以让SCA 304优先访问UDPD 200上的通信端口—例如,经由通信端口将警报传送给另一个设备。SCA304可以,例如,优先访问无线通信设备,优先访问存储器,优先访问处理器,和/或优先访问可以按优先级排序的任何其他共享资源。应该理解,SCA 304的优先访问还可以包括与SCA 304的通信的优先接入。例如,医疗设备(例如,分析物监测设备、药物监管设备等)可以将询问从医疗设备发送到UDPD 200(或反过来),当正常运行时,UDPD 200中断当前运行在UDPD 200上的进程,以便在两个设备之间进行传输(例如,验证准备就绪以便接收数据,等待响应,如果接收到响应则传送数据以及如果未接收到响应则激活警报)。共存检验可以启动各种冲突脚本,以测试资源的共享,以及确定SCA 304是否以超过试图访问相同资源的其他程序的优先级正常访问资源。
应该理解,可以使每个程序处在不同状态(例如,被动或主动),以便确定在各种状态组合的任何一种下是否存在安全关键问题。并且,应该理解,在一些情况下,冲突脚本可以包括访问相同共享资源的多于一个非相关程序和SCA 304。
在方块1415上,确定SCA 304和任何非相关程序是否不兼容。例如,如果使非相关程序在SCA 304已经访问资源的同时访问共享资源,则可以确定非相关程序的试图访问是否足以中断SCA 304的访问,从而损害了SCA 304的安全关键性质。或者,例如,如果使SCA 304在非相关程序已经访问资源的同时访问共享资源,则可以确定SCA304是否可以访问资源,以及是否可以充分地访问资源,以便不损害SCA 304的安全关键性质。如果SCA 304不能与非相关程序共享资源而不损害SCA 304的安全关键方面,则如方块1420所表示,确定SCA304和非相关程序不兼容,并且阻止SCA 304自由运行。例如,如果冲突脚本阻止SCA 304执行任何安全关键功能,或显著延迟SCA 304执行安全关键功能,则可以将非相关应用程序和SCA 304确定为不兼容,应该理解,在一些情况下,可以将测试不兼容的参考数据用于这样的确定。
如前面针对先前的检验所述(例如,禁用SCA和阻止SCA运行在UDPD 200上,许可SCA 304运行但不使用安全关键特征或能力等),可以阻止SCA 304自由运行。另外,在一些情况下,可以许可SCA 304运行而不使用与非相关程序冲突的资源和/或特征。例如,如果冲突的共享资源是蓝牙接收器,则可以许可SCA 304运行而不使用蓝牙通信的功能和/或需要蓝牙通信的特征。在一些情况下,可以将问题通知给用户和/或提示用户解决问题—例如,通知用户不运行不兼容程序,提示用户在被许可使用SCA 304之前卸载或禁用不兼容非相关程序等。
如果SCA 304可以与非相关程序共享资源而不损害SCA 304的安全关键方面,则如方块1425所表示,确定SCA 304不与非相关程序不兼容。然后,只要所进行的或将进行的任何其他所需检验也成功通过,就可以确定SCA 304正常运行在UDPD 200上并许可其自由运行在UDPD 200上。
可以将共存测试编程为在不同时间—例如,运行时和/或非运行时启动。例如,可以将共存检验编程为每次在运行SCA 304之前,在预定时间量之后周期性地,或每当软件环境发生变化时等启动。
在一些实施例中,可以作为安装过程的一部分启动共存检验。例如,在图11中,可以在过程1100中的功能检验1130之前,之后,或与其同时启动共存检验。因此,除了安装检验和功能检验的预期结果之外,方块1155还需要共存检验的预期结果(例如,SCA 304不与任何非相关程序不兼容)。如果共存检验导致意外结果(例如,SCA 304与一个或多个非相关程序不兼容),则可以阻止SCA 304自由运行。因此,过程1100将确定SCA 304是否正确安装,SCA 304是否与UDPD200上的非相关程序兼容,以及SCA 304是否具有正常功能。应该理解,也可以包括另外的检验—例如,主机完整性检验、互通性测试、电源管理测试等。
在一些实施例中,可以将共存检验编程为在软件环境发生变化时启动。例如,在图12中,可以在过程1200中的功能检验1225之前,之后,或与其同时启动共存检验。因此,除了功能检验的预期结果之外,方块1245还需要共存检验的预期结果(例如,SCA 304不与其他非相关程序不兼容)。如果共存检验导致意外结果(例如,SCA 304与非相关程序不兼容),则可以阻止SCA 304自由运行。因此,过程1200将确定环境是否发生了变化,SCA 304是否与UDPD 200上的非相关程序兼容,以及SCA 304是否具有正常功能。应该理解,也可以包括另外的检验—例如,主机完整性检验、互通性测试、电源管理测试等。
在一些实施例中,SCA 304正常运行在UDPD上的确定需要SCA304与相关程序正常互通的确定。如果SCA 304不与其他相关程序正常互通,则可以确定SCA 304未正常运行,因此可以阻止SCA 304在UDPD 200上自由运行。如果确定SCA 304正常互通,则只要所进行的或将进行的任何其他所需检验也成功通过,就可以确定SCA 304正常运行在UDPD上并许可其自由运行。
图15例示了按照本公开的一些方面的互通性检验的流程图。在检验1500的方块1505上,确定是否有任何相关程序与SCA 304一起工作。如果没有相关程序,则如方块1525所表示,SCA 304不与任何相关程序不正常互通。如果存在相关程序,则如方块1510所表示,互通性检验测试相关程序和SCA 304的互通性。应该理解,在一些情况下每次可以测试多于一个相关程序。
例如,取出一个或多个相关程序和SCA 304对它们作正常互通性测试。测试可以包括,例如,验证SCA 304和程序使用正常通信协议通信,精确地和及时地向后和向前传送数据,SCA 304可以正常访问与相关程序相关联的任何特征或能力等。
例如,SCA 304可以是与分析物监测有关的应用程序,提供一些数据测量值和数据测量能力,而附加程序可以提供附加或更深入数据管理能力。SCA 304可以实现将测量值登记在UDPD 200上的存储器中,并且与例如以不同图形格式(例如,图形、图表等)显示所登记测量值的应用程序一起工作。互通性测试可以与图形显示中的相应数值交叉检验,例如,日志中的数值和时间,以确定数据是否精确地传送。
作为另一个例子,SCA 304可以是与分析物监测有关的应用程序,并且与远程传感器设备、分析物计量仪、泵提供者(例如,胰岛素泵设备)等的软件程序互通。测试可以包括,例如,验证SCA 304和相关程序使用正常通信协议通信,精确地和及时地向后和向前传送数据,SCA 304可以正常访问与相关程序相关联的任何特征或能力等。例如可以将参考数据用作输入,以便模拟特定运行时事件和验证模拟事件的结果(例如,将特定参考数据与模拟事件相关联)。
虽然与功能检验(例如,通信测试例程)分开描述了互通性检验,不过可以设想,在一些情况下,互通性检验可以与功能测试(例如,通信测试例程)一起进行,或作为功能测试(例如,通信测试例程)的一部分来实现,以提供SCA 304与外部设备正常互通的一定保证。
在方块1515上,确定SCA 304和相关程序是否正常互通。如果确定SCA 304和相关程序未正常互通,则阻止SCA 304自由运行,如方块1520所表示的。可以阻止SCA 304自由运行,如前所述(例如,禁用SCA和阻止SCA运行在UDPD 200上,许可SCA 304运行但不使用安全关键特征或能力等)。另外,在一些情况下,可以许可SCA304运行而不使用相关程序或它的功能(例如,如果相关程序并不关键或非SCA 304运行所需)。例如,如果相关程序是如上面的例子所述提供附加数据管理能力的程序,则许可SCA 304运行但不使用相关程序或它的功能。在一些情况下,可以将问题通知给用户和/或提示用户解决问题—例如,通知用户不使用相关程序或它的功能,提示用户在被许可使用SCA 304之前卸载或禁用相关程序等。
如果如方块1525所表示,确定SCA 304和相关程序正常互通,则只要所进行的或要求进行的任何其他所需检验也成功通过,就可以确定SCA 304正常运行在UDPD上并许可其自由运行。
应该理解,可以使每个程序处在不同状态(例如,被动或主动),以便确定在各种状态组合的任何一种下是否存在互通性问题。并且,应该理解,在一些情况下,在互通性测试期间可以关于SCA 304测试多于一个相关程序。
可以将互通性检验编程为在不同时间—例如,运行时和/或非运行时启动。例如,可以将互通性检验编程为每次在运行SCA 304之前,在预定时间量之后周期性地,或每当软件环境发生变化时等启动。
在一些实施例中,可以作为安装过程的一部分启动互通性检验。例如,在图11中,可以在过程1100中的功能检验1130之前,之后,或与其同时启动互通性检验。因此,除了安装检验和功能检验的预期结果之外,方块1155还需要互通性检验的预期结果(例如,SCA 304与相关程序正常互通)。如果互通性检验导致意外结果(例如,SCA 304不与相关程序正常互通),则可以阻止SCA 304自由运行。因此,过程1100将确定SCA 304是否正常安装,SCA 304是否与UDPD 200上的相关程序正常互通,以及SCA 304是否具有正常功能。应该理解,也可以包括另外的检验—例如,主机完整性检验、共存检验、电源管理检验等。
在一些实施例中,可以将互通性检验编程为在软件环境发生变化时启动。例如,在图12中,可以在过程1200中的功能检验1225之前,之后,或与其同时启动互通性检验。因此,除了功能检验的预期结果之外,方块1245还需要互通性检验的预期结果(例如,SCA 304与相关程序正常互通)。如果互通性检验导致意外结果(例如,SCA 304不与相关程序正常互通),则可以阻止SCA 304自由运行。因此,过程1200将确定环境是否发生了变化,SCA 304是否与UDPD 200上的相关程序正常互通,以及SCA 304是否仍然具有正常功能。应该理解,也可以包括另外的检验—例如,主机完整性检验、共存检验、电源管理检验等。
在一些实施例中,可以启动电源管理检验,以便确定UDPD 200的供电能力是否足以以UDPD不突然断电的特定保证水平安全地运行SCA 304。例如,可以从保留在电池上的剩余电荷、当前实时耗电率(例如,考虑激活的任何应用程序运行、特征和能力等)、断电或休眠之前的剩余时间等确定供电能力。在需要再充电之前,可以按天、小时、分钟等确定UDPD 200的剩余供电寿命。此外,如果使用SCA304的高耗电特征(例如,无线能力等),可能相应地缩小UDPD 200的剩余供电寿命。然后可以将供电能力与使突然断电的风险最小地安全运行SCA 304所需的最小阈值相比较。
图16例示了按照本公开的一些方面的电源管理检验的流图。在检验1600的方块1605上,确定UDPD 200的供电能力。一旦确定了UDPD 200的供电能力,就如方块1610所表示,将它与使突然断电的风险最小地安全运行SCA 304所需的一个或多个最小阈值量相比较。
在一些情况下,使突然断电的风险最小地安全运行SCA 304所需的最小阈值量可能取决于预定时间量—例如,在制造和测试期间确定并存储成参考数据。例如,测试可以确定SCA 304运行和安全执行安全关键功能需要的最小时间阈值。或者,作为另一个例子,当主动运行时,测试可以确定SCA 304每天、每小时等需要的特定电流量。还可以设想,对于不同特征或功能(例如,使用胰岛素计算器、与胰岛素泵无线通信等)可能存在不同的阈值。
在一些情况下,使突然断电的风险最小地安全运行SCA 304所需的最小阈值量可能取决于SCA 304的历史使用。用户以前的使用历史可以用于确定估计最小阈值要求。例如,用户以前的使用可以被跟踪,并用于确定在一个时间段(例如,几天、几小时、几分钟等)内消耗的平均使用和电量。
在一些情况下,可以通过跟踪用户的使用历史估计SCA 304应用程序所需的功耗阈值。使用历史可以计及特定事件和那些事件所需的电量。例如,使用历史可以计及访问什么特征、访问每种特征多少次、使用的持续时间等。与像葡萄糖监测那样的分析物监测相关联的SCA的示例性事件可以包括但不限于试纸测量、胰岛素输送测量、胰岛素输送、连续葡萄糖测量读数、校准等。例如,可以确定用户的平均使用包括进行十次每日试纸测量,一天五次计算和监管胰岛素,每天五次蓝牙通信等。然后可以确定相应功耗。例如,当SCA 304主动运行时,可以确定SCA 304每天、每小时、每星期等需要的特定毫安数。然后可以将这个确定功耗与针对UDPD 200确定的供电能力相比较,以确定UDPD 200是否可以满足SCA 304所需的供电阈值。例如,如果SCA 304用于接收从每5天插入一次的传感器中得出的CGM测量读数,则可以确定UDPD 200是否具有在该持续时间内使CGM特征保持激活的必需供电能力。
可以设想,在一些情况下,可以分别跟踪各种流动,以便确定每种活动消耗了多少电力。这样,可以按活动计算用户的平均使用,以得出平均耗电量。在一些情况下,可以实现编程治疗程序(例如,由医生),并且根据定制程序计算最小耗电阈值。还可以进一步设想,可以创建和使用多种用户简档—例如,平均每日使用要求的简档、定制治疗程序的简档、连续葡萄糖监测的某些时段特有的简档等。还应该理解,在一些情况下,可以在制造和测试时确定每种活动的功耗—例如,针对不同类型的UDPD—并存储成参考数据。
在方块1615上,根据UDPD 200的供电能力与所需的任何最小阈值量的比较确定UDPD 200是否具有足够的供电能力来使突然断电的风险最小地安全运行SCA 304。如果不满足所需阈值,则如方块1620所表示,阻止SCA自由运行。并且,这可以包括,例如,禁用SCA 304和阻止SCA 304运行在UDPD 200上,许可SCA 304运行但不使用安全关键特征或能力等。在一些情况下,这也可以包括许可SCA 304运行而没有不满足阈值的功能。
在一些实施例中,SCA 304正常运行的确定至少需要UDPD具有足够的供电能力以便使断电的风险最小地安全运行的确定。如果UDPD 200至少具有最小阈值的供电能力,则在方块1625上,确定UDPD 200具有足够供电能力。只要所进行的或需要进行的任何其他所需检验也成功通过,就可以确定SCA 304正常运行在UDPD 200上并许可其在UDPD 200上自由运行。
还可以设想,在一些情况下,可以启动电源管理检验,以便确定UDPD 200的供电能力是否如预期的那样。例如,可以在制造和测试期间确定运行SCA 304的不同类型UDPD的平均耗电率,并将其存储成参考数据。此后,在用户使用期间,电源管理检验可以在运行SCA304的时候监测UDPD 200的耗电率。如果结果相对于参考数据的变化超过预定偏差阈值,则电源管理检验指示SCA 304未正常运行在UDPD 200上,因此阻止SCA 304自由运行。例如,在制造和测试期间可以确定可以使SCA 304运行8小时而不再充电。如果在安装在用户的UDPD200上之后运行电源管理检验,结果得出没有再充电地运行估计2小时,则可能指示在设备上存在可能损害设备的安全关键特征的问题。例如,预期耗电率的主要偏差可能指示存在软件缺陷或病毒。在这样的情况下,例如,可以阻止SCA 304自由运行,并将问题通知用户,或提示用户解决问题(例如,提示用户运行设备的病毒扫描程序)。
可以将电源管理检验编程为在不同时间—例如,运行时和/或非运行时启动。例如,可以将电源管理检验编程为每次在运行SCA 304之前,在预定时间量之后周期性地,或每当软件环境发生变化时等启动。
在一些实施例中,可以作为安装过程的一部分启动电源管理检验。例如,在图11中,可以在过程1100中的功能检验1130之前,之后,或与其同时启动电源管理检验。因此,除了安装检验和功能检验的预期结果之外,方块1155还需要电源管理检验的预期结果(例如,UDPD具有足够的供电能力来安全运行SCA)。如果电源管理检验导致意外结果(例如,UDPD不具有足够的供电能力来安全运行SCA),则阻止SCA 304自由运行。因此,过程1100将确定SCA 304是否正确安装,UDPD200是否具有足够的供电能力来安全运行SCA,以及SCA304是否具有正常功能。应该理解,也可以包括另外的检验—例如,主机完整性检验、共存检验、互通性检验等。
在一些实施例中,可以将电源管理检验编程为在软件环境发生变化时启动。例如,在图12中,可以在过程1200中的功能检验1225之前,之后,或与其同时启动电源管理检验。因此,除了功能检验的预期结果之外,方块1245还需要电源管理检验的预期结果(例如,UDPD具有足够的供电能力来安全运行SCA)。如果电源管理检验导致意外结果(例如,UDPD不具有足够的供电能力来安全运行SCA),则可以阻止SCA 304自由运行。因此,过程1200将确定环境是否发生了变化,UDPD是否具有足够的供电能力来安全运行SCA,以及SCA 304是否仍然具有正常功能。应该理解,也可以包括另外的检验—例如,主机完整性检验、共存检验、互通性检验等。
在上面的整个描述中,为了说明起见,给出了许多特定细节,以便使人们可以透彻理解本发明。但是,对本领域技术人员来说,显而易见,可以在没有这些特定细节中的一些细节的情况下实践本发明。另外,本发明的实施例可以包括如上面给出的各种操作、更少的操作或更多的操作、或次序与本文所述的次序不同的操作。于是,本发明的范围和精神应该按照所附权利要求书以及其合法等同物来判断。
应该理解,上文介绍的技术可以通过由软件和/或固件编程或配置的可编程电路来实现,或它们可以完全通过专用“硬连线”电路或这些形式的组合来实现。这样的专用电路(如果有的话)可以是,例如,一个或多个专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)等的形式。
实现本文介绍的技术的软件或固件可以存储在机器可读存储介质上,并且可以由一个或多个通用或专用可编程微处理器来执行。如本文使用的术语“机器可读介质”包括可以以机器(该机器可以是,例如,计算机、网络设备、蜂窝式电话、个人数字助理(PDA)、制造工具、带有一个或多个处理器的任何设备等)可访问的形式存储信息的任何机制。例如,机器可读介质可以用于存储当被处理器执行时,使处理器可以执行本描述的各种方法的软件指令。机器可读介质包括可记录/不可记录介质(例如,只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪速存储设备;等);或适用于存储机器可读指令的任何类型介质。如本文使用的术语“逻辑”可以包括,例如,专用硬连线电路、与可编程电路结合的软件和/或固件或它们的组合。
上文仅仅例示了本发明的原理。应该理解,本领域技术人员能够设计出尽管本文未明确描述和示出,但体现本发明的原理和包括在本发明的精神和范围之内的各种装置。而且,本文列举的所有例子和条件语言的主要目的是帮助读者理解本发明的原理和本发明人为推动技术进步而贡献的概念,而不应该理解为局限于这样的具体列举例子和条件。此外,本文列举本发明的原理、方面和实施例以及它们的特定例子的所有语句都旨在包含它们的结构和功能两方向的等同物。另外,这样的等同物旨在包括当前已知的等同物以及未来开发的等同物,即与结构无关,开发出来执行相同功能的任何元件。因此,本发明的范围无意局限于本文所示和所述的示例性方面。而且,本发明的范围和精神通过所附权利要求书体现出来。

Claims (40)

1.一种在不受控制数据处理设备上容纳安全关键应用程序的方法,该方法包含:
在不受控制数据处理设备UDPD上安装安全关键应用程序SCA;
借助于测试工具应用程序确定SCA在UDPD上是否正常地安装并具有正常功能;
当验证SCA在UDPD上正常地安装并在UDPD上具有正常功能时,借助于测试工具应用程序许可SCA的所有特征在UDPD上运行;以及
当验证SCA未正常安装在UDPD上或验证SCA在UDPD上不具有正常功能时,借助于测试工具应用程序阻止SCA的特定特征在UDPD上运行,其中所述阻止包含使SCA的安全关键特征不能在UDPD上执行以及使SCA的非安全关键特征能够在UDPD上执行。
2.如权利要求1所述的方法,其中所述SCA的安全关键特征是与医疗相关的应用程序。
3.如权利要求2所述的方法,其中所述与医疗相关的应用程序包含确定或计算与健康相关的信息。
4.如权利要求2所述的方法,其中所述与医疗相关的应用程序包含计算药物剂量。
5.如权利要求2所述的方法,其中所述与医疗相关的应用程序包含从体液中确定分析物浓度。
6.如权利要求1所述的方法,其中所述SCA的安全关键特征包含与UDPD外部的远程设备通信。
7.如权利要求1所述的方法,其中所述SCA的安全关键特征包含从皮下地植入受试者中的传感器接收数据。
8.如权利要求1所述的方法,其中所述测试工具应用程序还至少包含主机完整性检验、共存检验、互通性检验、电源管理检验或环境检验。
9.如权利要求1所述的方法,还包含在将SCA安装在UDPD上的同时将所述测试工具应用程序安装在UDPD上。
10.如权利要求1所述的方法,其中确定SCA在UDPD上是否正常地安装包含:
借助于测试工具应用程序识别UDPD上的SCA组件的图像;以及
借助于测试工具应用程序将SCA组件的图像与参考安装数据相比较。
11.如权利要求10所述的方法,其中将SCA组件的图像与参考安装数据相比较包含:
借助于测试工具应用程序将与SCA组件相关联的检错或纠错数据与参考安装数据中的相应检错或纠错数据相比较;
借助于测试工具应用程序将与SCA组件相关联的文件名与参考安装数据中的相应文件名相比较;或
借助于测试工具应用程序将与SCA组件相关联的版本号与参考安装数据中的相应版本号相比较。
12.如权利要求1所述的方法,其中确定SCA在UDPD上是否具有正常功能包含:
借助于测试工具应用程序启动使用参考计算输入的计算;以及
借助于测试工具应用程序将计算的结果与参考计算数据相比较。
13.如权利要求12所述的方法,其中确定SCA在UDPD上是否具有正常功能还包含:
借助于测试工具应用程序确定使用参考计算输入进行计算的时间;以及
借助于测试工具应用程序将进行计算的时间与参考定时数据相比较。
14.如权利要求1所述的方法,其中确定SCA在UDPD上是否具有正常功能包含:
借助于测试工具应用程序确定进行活动的时间;以及
借助于测试工具应用程序将进行活动的时间与参考定时数据相比较。
15.如权利要求14所述的方法,其中确定SCA在UDPD上是否具有正常功能还包含:
借助于测试工具应用程序启动要显示在UDPD的显示器上的图像;
在UDPD的显示器上显示所述图像;以及
借助于测试工具应用程序将显示的实际图像与参考显示数据相比较。
16.如权利要求15所述的方法,其中确定显示在显示器上的实际图像包含借助于测试工具应用程序启动截屏,其中该截屏是显示的实际图像。
17.如权利要求15所述的方法,其中确定显示在显示器上的实际图像包含借助于测试工具应用程序接收识别显示的实际图像的用户输入。
18.如权利要求1所述的方法,包含:
借助于测试工具应用程序识别UDPD的第一当前环境,该第一当前环境与许可SCA运行在UDPD上时的时间相关联;
借助于测试工具应用程序识别UDPD的第二当前环境,该第二当前环境与许可SCA运行在UDPD上之后的时间相关联;
借助于测试工具应用程序将第二当前环境与第一当前环境相比较以确定环境是否发生了变化;
在确定环境发生了变化之后借助于测试工具应用程序确定SCA在UDPD上是否具有正常功能;
当在确定环境发生了变化之后确定SCA在UDPD上不具有正常功能时,借助于测试工具应用程序阻止SCA的特定特征运行在UDPD上;以及
当在确定环境发生了变化之后确定SCA在UDPD上具有正常功能时,借助于UDPD许可SCA的所有特征运行在UDPD上。
19.如权利要求1所述的方法,其中确定SCA在UDPD上是否具有正常功能包含:
借助于测试工具应用程序启动要显示在UDPD的显示器上的图像,该图像具有验证询问的形式;
借助于测试工具应用程序接收响应于验证询问的用户输入;以及
借助于测试工具应用程序将接收的用户输入与参考显示数据相比较。
20.如权利要求1所述的方法,其中确定SCA在UDPD上是否具有正常功能包含:
借助于测试工具应用程序确定SCA是否在UDPD上与外部设备正常通信。
21.如权利要求20所述的方法,其中确定SCA是否在UDPD上正常通信包含:
借助于测试工具应用程序启动SCA建立UDPD与外部设备之间的通信链路;以及
借助于测试工具应用程序确定是否正常建立了通信链路。
22.如权利要求21所述的方法,其中确定SCA是否在UDPD上正常通信包含:
借助于测试工具应用程序启动SCA与外部设备之间的通信;以及
借助于测试工具应用程序将通信的结果与参考通信数据相比较。
23.如权利要求22所述的方法,其中确定SCA是否在UDPD上正常通信还包含:
借助于测试工具应用程序确定进行通信的时间;以及
借助于测试工具应用程序将进行通信的时间与参考定时数据相比较。
24.如权利要求1所述的方法,包含:
借助于测试工具应用程序识别UDPD的第一当前环境,该第一当前环境与许可SCA运行在UDPD上时的时间相关联;
借助于测试工具应用程序识别UDPD的第二当前环境,该第二当前环境与许可SCA运行在UDPD上之后的时间相关联;
借助于测试工具应用程序将第二当前环境与第一当前环境相比较;以及
借助于测试工具应用程序确定环境是否发生了变化。
25.如权利要求24所述的方法,其中第一当前环境包括:
安装在UDPD上的应用程序;
UDPD上的驱动器;
UDPD上的最后一次安装;或
配置设置。
26.如权利要求24所述的方法,包含:
在确定环境发生了变化之后借助于测试工具应用程序确定SCA在UDPD上是否具有正常功能;
当在确定环境发生了变化之后确定SCA在UDPD上不具有正常功能时,借助于测试工具应用程序阻止SCA的特定特征运行在UDPD上;以及
当在确定环境发生了变化之后确定SCA在UDPD上具有正常功能时,借助于测试工具应用程序许可SCA的所有特征运行在UDPD上。
27.如权利要求26所述的方法,其中识别UDPD的第二当前环境和在确定环境发生了变化之后确定SCA在UDPD上是否具有正常功能是在UDPD的后台进行的。
28.如权利要求26所述的方法,其中识别UDPD的第二当前环境和在确定环境发生了变化之后确定SCA在UDPD上是否具有正常功能是当启动SCA在UDPD上运行时进行的。
29.如权利要求26所述的方法,其中识别UDPD的第二当前环境和在确定环境发生了变化之后确定SCA在UDPD上是否具有正常功能是在自许可SCA运行在UDPD上的时间以来预定时间量之后进行的。
30.如权利要求26所述的方法,其中当确定环境发生了变化时,该方法还包含:
在确定环境发生了变化之后借助于测试工具应用程序确定SCA在UDPD上是否具有正常功能;
当在确定环境发生了变化之后确定SCA在UDPD上不具有正常功能时,借助于测试工具应用程序阻止SCA的特定特征运行在UDPD上;以及
当在确定环境发生了变化之后确定SCA在UDPD上具有正常功能时,借助于测试工具应用程序许可SCA的所有特征运行在UDPD上。
31.如权利要求1所述的方法,包含:
借助于测试工具应用程序确定SCA是否损坏;以及
当确定SCA已损坏时借助于测试工具应用程序阻止SCA的特定特征运行在UDPD上;
其中,确定SCA正常运行在UDPD上进一步需要确定SCA未损坏。
32.如权利要求1所述的方法,包含:
借助于测试工具应用程序确定SCA是否与UDPD上的任何非相关程序不兼容;以及
当确定SCA与非相关程序不兼容时,借助于测试工具应用程序阻止SCA的特定特征运行在UDPD上;
其中确定SCA正常运行在UDPD上进一步需要确定SCA不与任何非相关程序不兼容。
33.如权利要求32所述的方法,其中确定SCA是否与UDPD上的任何非相关程序不兼容包含:
确定SCA是否以超过访问共享资源的较低优先级非相关程序的优先级正常访问共享资源。
34.如权利要求1所述的方法,包含:
借助于测试工具应用程序确定SCA是否与UDPD上的相关程序正常互通;以及
当确定SCA不与相关程序正常互通时,借助于测试工具应用程序阻止SCA的特定特征运行在UDPD上;
其中确定SCA正常运行在UDPD上进一步需要确定SCA与相关程序正常互通。
35.如权利要求1所述的方法,包含:
借助于测试工具应用程序确定UDPD是否具有足够的供电能力使SCA安全运行在UDPD上;以及
当确定UDPD不具有足够的供电能力使SCA安全运行在UDPD上时,借助于测试工具应用程序阻止SCA的特定特征运行在UDPD上;
其中确定SCA正常运行在UDPD上进一步需要确定UDPD具有足够的供电能力使SCA安全运行在UDPD上。
36.如权利要求1所述的方法,其中SCA的非安全关键特征包括向用户传送SCA未正常安装在UDPD上或在UDPD上不具有正常功能。
37.如权利要求1所述的方法,其中SCA是分析物监测应用程序。
38.如权利要求37所述的方法,其中分析物是葡萄糖或酮。
39.如权利要求1所述的方法,其中UDPD是手持数据处理设备。
40.如权利要求9所述的方法,其中所述手持数据处理设备是移动电话、个人数字助理PDA或数字音乐播放器。
CN201510263994.0A 2009-09-08 2010-09-07 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品 Active CN104951647B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US24057809P 2009-09-08 2009-09-08
US61/240,578 2009-09-08
US35926510P 2010-06-28 2010-06-28
US61/359,265 2010-06-28
CN201080029502.7A CN102474443B (zh) 2009-09-08 2010-09-07 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201080029502.7A Division CN102474443B (zh) 2009-09-08 2010-09-07 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品

Publications (2)

Publication Number Publication Date
CN104951647A true CN104951647A (zh) 2015-09-30
CN104951647B CN104951647B (zh) 2018-06-22

Family

ID=43732765

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510263994.0A Active CN104951647B (zh) 2009-09-08 2010-09-07 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品
CN201080029502.7A Active CN102474443B (zh) 2009-09-08 2010-09-07 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201080029502.7A Active CN102474443B (zh) 2009-09-08 2010-09-07 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品

Country Status (9)

Country Link
US (21) US8601465B2 (zh)
EP (6) EP4087196B1 (zh)
CN (2) CN104951647B (zh)
AU (1) AU2010292417B9 (zh)
DK (3) DK4087196T3 (zh)
ES (2) ES2866631T3 (zh)
FI (2) FI3920471T3 (zh)
LT (3) LT2476223T (zh)
WO (1) WO2011031675A1 (zh)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
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)
RU2007127725A (ru) 2004-12-20 2009-01-27 ПРОКСЕНС, ЭлЭлСи (US) Аутентификация по биометрическому ключу персональных данных (pdk)
US8219129B2 (en) 2006-01-06 2012-07-10 Proxense, Llc Dynamic real-time tiered client access
US11206664B2 (en) 2006-01-06 2021-12-21 Proxense, Llc Wireless network synchronization of cells and client devices on a network
US8346335B2 (en) 2008-03-28 2013-01-01 Abbott Diabetes Care Inc. Analyte sensor calibration management
US7904718B2 (en) 2006-05-05 2011-03-08 Proxense, Llc Personal digital key differentiation for secure transactions
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
US8659427B2 (en) 2007-11-09 2014-02-25 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
US8508336B2 (en) 2008-02-14 2013-08-13 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
US8497777B2 (en) 2009-04-15 2013-07-30 Abbott Diabetes Care Inc. Analyte monitoring system having an alert
CA2921304C (en) 2009-07-30 2018-06-05 Tandem Diabetes Care, Inc. Infusion pump system with disposable cartridge having pressure venting and pressure feedback
EP4070728A1 (en) 2009-08-31 2022-10-12 Abbott Diabetes Care, Inc. Displays for a medical device
CN104951647B (zh) 2009-09-08 2018-06-22 艾伯特糖尿病护理公司 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品
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
US8726266B2 (en) 2010-05-24 2014-05-13 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
EP2624745A4 (en) 2010-10-07 2018-05-23 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
US9913599B2 (en) 2011-02-11 2018-03-13 Abbott Diabetes Care Inc. Software applications residing on handheld analyte determining devices
WO2012108936A1 (en) 2011-02-11 2012-08-16 Abbott Diabetes Care Inc. Data synchronization between two or more analyte detecting devices in a database
WO2012108939A1 (en) 2011-02-11 2012-08-16 Abbott Diabetes Care Inc. Feedback from cloud or hcp to payer or patient via meter or cell phone
US9265450B1 (en) 2011-02-21 2016-02-23 Proxense, Llc Proximity-based system for object tracking and automatic application initialization
CA2841086C (en) 2011-09-28 2021-01-26 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
EP3777664A1 (en) 2012-04-24 2021-02-17 Abbott Diabetes Care, Inc. Methods of lag-compensation for analyte measurements, and devices related thereto 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
US10004439B2 (en) 2012-09-21 2018-06-26 Abbott Diabetes Care Inc. In vivo sensors having ceria nanoparticle electrodes
EP2901153A4 (en) 2012-09-26 2016-04-27 Abbott Diabetes Care Inc METHOD AND DEVICE FOR IMPROVING DELAY CORRECTION FUNCTION DURING IN VIVO MEASUREMENT OF ANALYZ CONCENTRATION WITH ANALYZ 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
US9486171B2 (en) 2013-03-15 2016-11-08 Tandem Diabetes Care, Inc. Predictive calibration
US9242043B2 (en) 2013-03-15 2016-01-26 Tandem Diabetes Care, Inc. Field update of an ambulatory infusion pump system
WO2014179343A1 (en) 2013-04-30 2014-11-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
US9867937B2 (en) 2013-09-06 2018-01-16 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
WO2015100439A1 (en) 2013-12-26 2015-07-02 Tandem Diabetes Care, Inc. Integration of infusion pump with remote electronic device
US9486571B2 (en) 2013-12-26 2016-11-08 Tandem Diabetes Care, Inc. Safety processor for wireless control of a drug delivery device
EP3797680A1 (en) 2014-01-10 2021-03-31 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
CA2954503A1 (en) 2014-07-07 2016-01-14 Ascensia Diabetes Care Holdings Ag Methods and apparatus for improved device pairing with a dual use piezoelectric acoustic component and vibration sensor
WO2016019133A1 (en) 2014-07-30 2016-02-04 Tandem Diabetes Care, Inc. Temporary suspension for closed-loop medicament therapy
WO2016019179A1 (en) * 2014-07-31 2016-02-04 Abbott Diabetes Care Inc. Safety mitigations for hosting a safety critical application on an uncontrolled data processing device
CA2957676A1 (en) 2014-08-15 2016-02-18 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
EP3307164B1 (en) 2015-06-15 2021-05-12 Abbott Diabetes Care Inc. Stabilized lactate responsive enzymes, electrodes and sensors, and methods for making and using the same
WO2017031407A1 (en) 2015-08-20 2017-02-23 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
US11091788B2 (en) 2016-03-04 2021-08-17 Abbott Diabetes Care Inc. NAD(P)- dependent responsive enzymes, electrodes and sensors, and methods for making and using the same
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
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软件无线电台中自动生产配置文件的方法
EP3711066A1 (en) 2017-11-17 2020-09-23 Roche Diabetes Care GmbH Method for controlling operation of a medical device in a medical system and medical system
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
CN112469468A (zh) * 2018-09-12 2021-03-09 科利耳有限公司 安全关键电子设备锁
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
CA3205353A1 (en) 2021-01-26 2022-08-04 Shridhara A. Karinka 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
WO2023088782A1 (en) * 2021-11-19 2023-05-25 Biotronik Se & Co. Kg Computer implemented method and system for protecting a patient critical firmware function of an implantable medical device
WO2023110190A1 (en) 2021-12-13 2023-06-22 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

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394871A (en) * 1992-06-25 1995-03-07 Siemens Aktiengesellschaft Medical diagnostics installation
US20060230398A1 (en) * 2002-03-25 2006-10-12 Canon Kabushiki Kaisha Install processing apparatus, processing method, storage medium, and program
US7251812B1 (en) * 2001-10-31 2007-07-31 Microsoft Corporation Dynamic software update
CN101151513A (zh) * 2005-02-09 2008-03-26 音莱特解决方案有限公司 分析物无创检测的方法和装置
US20080127175A1 (en) * 2006-11-01 2008-05-29 Microsoft Corporation Packaging software products as single-file executables containing scripting logic
US20080172665A1 (en) * 2000-05-16 2008-07-17 Palmsource, Inc. Sync-time read only memory image binding for limited resource devices
EP1224543B1 (en) * 1999-09-01 2009-02-18 Microsoft Corporation Fixing applications that are incompatible to the operating system by providing stubs for apis
CN101369303A (zh) * 2008-10-13 2009-02-18 金蝶软件(中国)有限公司 控制并发用户数的方法及系统
US20090120810A1 (en) * 2007-11-02 2009-05-14 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
US20090164838A1 (en) * 2005-11-30 2009-06-25 Mark Haller Microprocessor Memory Management
DE102008003531A1 (de) * 2008-01-08 2009-07-09 Giesecke & Devrient Gmbh Softwareidentifikation

Family Cites Families (126)

* Cited by examiner, † Cited by third party
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
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
US6128774A (en) * 1997-10-28 2000-10-03 Necula; George C. Safe to execute verification of software
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
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
US6604237B1 (en) * 1999-12-14 2003-08-05 International Business Machines Corporation Apparatus for journaling during software deployment and method therefor
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
US6466025B1 (en) * 2000-01-13 2002-10-15 Midtronics, Inc. Alternator tester
US6873268B2 (en) 2000-01-21 2005-03-29 Medtronic Minimed, Inc. Microprocessor controlled 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
US20020019707A1 (en) * 2000-06-26 2002-02-14 Cohen Alan M. 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
US7041468B2 (en) 2001-04-02 2006-05-09 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
WO2003025741A1 (en) * 2001-09-19 2003-03-27 Belovich Steven G Method and system for providing a virus-immune, rule-based
US7532445B2 (en) * 2001-12-14 2009-05-12 Stmicroelectronics Asia Pacific Pte Ltd. Transient voltage clamping circuit
ATE448592T1 (de) * 2002-03-04 2009-11-15 Ericsson Telefon Ab L M Batterieschutzschaltung
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 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
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
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
US7640552B2 (en) * 2004-10-29 2009-12-29 Microsoft Corporation Multimedia filter resilience
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
CA2597254A1 (en) 2005-02-09 2006-08-17 Inlight Solutions, Inc. Methods and apparatus 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
WO2006110991A1 (en) 2005-04-18 2006-10-26 Research In Motion Limited Method and system for controlling software version updates
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
US8533253B2 (en) * 2005-06-09 2013-09-10 Whirlpool Corporation Distributed object-oriented appliance control system
EP2247067B1 (en) * 2005-06-09 2016-05-11 Whirlpool Corporation Appliance with embedded virtual router
US20100121273A1 (en) * 2005-06-22 2010-05-13 Kochanek Patrick M Emergency preservation and resuscitation methods
EP1899814B1 (en) * 2005-06-30 2017-05-03 Sling Media, Inc. Firmware update for consumer electronic device
US9177153B1 (en) * 2005-10-07 2015-11-03 Carnegie Mellon University Verifying integrity and guaranteeing execution of code on untrusted computer platform
US20070185545A1 (en) 2006-02-06 2007-08-09 Medtronic Emergency Response Systems, Inc. Post-download patient data protection in a medical device
US20070266239A1 (en) * 2006-03-08 2007-11-15 David Vismans Method for providing a cryptographically signed command
EP1998840A4 (en) 2006-03-23 2012-02-29 Becton Dickinson Co SYSTEM AND METHOD FOR BETTER MANAGEMENT AND USE OF DIABETES DATA USING A WIRELESS CONNECTIVITY BETWEEN PATIENTS AND HEALTH CAREERS AND DIABETES MANAGEMENT INFORMATION STORAGE
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
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
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
KR20100015389A (ko) * 2007-03-05 2010-02-12 테세이 소프트웨어 디벨롭먼트 케이지, 엘엘씨 형광 램프 어레이에서 전압과 전류를 제어하는 방법 및 펌웨어
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
EP2156348B1 (en) 2007-05-30 2018-08-01 Ascensia Diabetes Care Holdings AG System and method for managing health data
US7996245B2 (en) * 2007-12-07 2011-08-09 Roche Diagnostics Operations, Inc. Patient-centric healthcare information maintenance
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
BRPI0905956A2 (pt) * 2008-02-06 2015-06-30 Capis Sprl Método de determinação de banda de frequência característica de uma doença cardíaca, método para a detecção de doenças cardíacas, dispositivo programável e conjunto de instruções em meio legível por computador
JP5127490B2 (ja) * 2008-02-07 2013-01-23 キヤノン株式会社 画像形成装置、画像形成装置の遠隔更新検証方法及びプログラム
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
US8103718B2 (en) * 2008-07-31 2012-01-24 Microsoft Corporation Content discovery and transfer between mobile communications nodes
US8615752B2 (en) * 2008-12-30 2013-12-24 International Business Machines Corporation System and method for detecting software patch dependencies
US20100198142A1 (en) 2009-02-04 2010-08-05 Abbott Diabetes Care Inc. Multi-Function Analyte Test Device and Methods Therefor
EP3703066A1 (en) * 2009-02-25 2020-09-02 The University of Virginia Patent Foundation Method, system and computer program product for cgm-based prevention of hypoglycemia via hypoglycemia risk assessment and smooth reduction insulin delivery
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
CN104951647B (zh) 2009-09-08 2018-06-22 艾伯特糖尿病护理公司 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品
EP2483824B1 (en) * 2009-09-30 2017-08-16 DreaMed Diabetes Ltd Monitoring device for management of insulin delivery
NZ599873A (en) * 2009-10-19 2014-09-26 Theranos Inc Integrated health data capture and analysis system
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
US8726266B2 (en) * 2010-05-24 2014-05-13 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
US8813061B2 (en) * 2012-10-17 2014-08-19 Movimento Group Module updating device
US20140129686A1 (en) * 2012-11-08 2014-05-08 Nvidia Corporation Mobile computing device configured to filter and detect application profiles, a method of manufacturing the same and an external source for delivering hierarchical filtered application profiles to mobile computing devices
US9124635B2 (en) * 2012-11-30 2015-09-01 Intel Corporation Verified sensor data processing
CN114947834A (zh) * 2013-12-16 2022-08-30 德克斯康公司 用于监测和管理分析物传感器系统电池寿命的系统和方法
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
AU2016291569B2 (en) 2015-07-10 2021-07-08 Abbott Diabetes Care Inc. System, device and method of dynamic glucose profile response to physiological parameters

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394871A (en) * 1992-06-25 1995-03-07 Siemens Aktiengesellschaft Medical diagnostics installation
EP1224543B1 (en) * 1999-09-01 2009-02-18 Microsoft Corporation Fixing applications that are incompatible to the operating system by providing stubs for apis
US20080172665A1 (en) * 2000-05-16 2008-07-17 Palmsource, Inc. Sync-time read only memory image binding for limited resource devices
US7251812B1 (en) * 2001-10-31 2007-07-31 Microsoft Corporation Dynamic software update
US20060230398A1 (en) * 2002-03-25 2006-10-12 Canon Kabushiki Kaisha Install processing apparatus, processing method, storage medium, and program
CN101151513A (zh) * 2005-02-09 2008-03-26 音莱特解决方案有限公司 分析物无创检测的方法和装置
US20090164838A1 (en) * 2005-11-30 2009-06-25 Mark Haller Microprocessor Memory Management
US20080127175A1 (en) * 2006-11-01 2008-05-29 Microsoft Corporation Packaging software products as single-file executables containing scripting logic
US20090120810A1 (en) * 2007-11-02 2009-05-14 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
DE102008003531A1 (de) * 2008-01-08 2009-07-09 Giesecke & Devrient Gmbh Softwareidentifikation
CN101369303A (zh) * 2008-10-13 2009-02-18 金蝶软件(中国)有限公司 控制并发用户数的方法及系统

Also Published As

Publication number Publication date
EP4087195B1 (en) 2023-08-23
LT2476223T (lt) 2021-07-12
EP4276848A3 (en) 2024-01-17
AU2010292417A1 (en) 2012-01-12
EP3940533A1 (en) 2022-01-19
US9529413B2 (en) 2016-12-27
US9524016B2 (en) 2016-12-20
US20150293803A1 (en) 2015-10-15
US20150277999A1 (en) 2015-10-01
US9529414B2 (en) 2016-12-27
EP2476223A1 (en) 2012-07-18
EP4276848A2 (en) 2023-11-15
DK3920471T3 (da) 2024-02-12
EP4087195C0 (en) 2023-08-23
US9552052B2 (en) 2017-01-24
US20190179401A1 (en) 2019-06-13
US9015700B2 (en) 2015-04-21
US20220221927A1 (en) 2022-07-14
US20110126188A1 (en) 2011-05-26
LT3920471T (lt) 2024-02-26
EP4087195A1 (en) 2022-11-09
US20150286562A1 (en) 2015-10-08
US20210365102A1 (en) 2021-11-25
US20150286518A1 (en) 2015-10-08
EP4087196B1 (en) 2023-12-20
CN102474443A (zh) 2012-05-23
CN104951647B (zh) 2018-06-22
ES2866631T3 (es) 2021-10-19
EP3920471A1 (en) 2021-12-08
US20140075246A1 (en) 2014-03-13
US20140082425A1 (en) 2014-03-20
US20150286517A1 (en) 2015-10-08
US20150293804A1 (en) 2015-10-15
US9058431B2 (en) 2015-06-16
EP3920471B1 (en) 2023-11-08
US9519333B2 (en) 2016-12-13
US9015698B2 (en) 2015-04-21
EP2476223B1 (en) 2021-04-14
DK2476223T3 (da) 2021-05-31
FI3920471T3 (fi) 2024-02-07
US9015701B2 (en) 2015-04-21
US9619013B2 (en) 2017-04-11
US20220011851A1 (en) 2022-01-13
ES2965269T3 (es) 2024-04-11
US20150293805A1 (en) 2015-10-15
AU2010292417B2 (en) 2015-02-05
CN102474443B (zh) 2015-05-13
AU2010292417B9 (en) 2015-04-16
US11586273B2 (en) 2023-02-21
FI4087196T3 (fi) 2024-03-18
US9519334B2 (en) 2016-12-13
US9524017B2 (en) 2016-12-20
WO2011031675A1 (en) 2011-03-17
US10241562B2 (en) 2019-03-26
US20150286561A1 (en) 2015-10-08
US11301027B2 (en) 2022-04-12
EP4087196A1 (en) 2022-11-09
US11099627B2 (en) 2021-08-24
US9519335B2 (en) 2016-12-13
DK4087196T3 (da) 2024-02-26
EP2476223A4 (en) 2013-01-02
US20140075429A1 (en) 2014-03-13
US9015699B2 (en) 2015-04-21
US8601465B2 (en) 2013-12-03
US20140082607A1 (en) 2014-03-20
US20140082606A1 (en) 2014-03-20
US20150317186A1 (en) 2015-11-05
US20220391009A1 (en) 2022-12-08
US20150293584A1 (en) 2015-10-15
LT4087196T (lt) 2024-03-25

Similar Documents

Publication Publication Date Title
CN102474443B (zh) 在不受控制数据处理设备上容纳安全关键应用程序的方法和制品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant