用于计算机系统的自动安装和操作环境配置的系统、方法和设备与流程

文档序号:19816567发布日期:2020-01-31 19:21阅读:183来源:国知局
用于计算机系统的自动安装和操作环境配置的系统、方法和设备与流程

相关申请

本申请要求2017年2月7日提交的美国专利申请15/426,094的权益,其全部内容通过引用并入本文而不会引起否定。

本公开的实施例大体涉及用于安全安装和配置计算机程序的设备、系统和方法,更具体地涉及在诸如汽车系统的专用设备上安全安装程序。

背景

随着计算机技术多年来更广泛地传播并且变得越来越可负担得起,其也变得越来越复杂,因为提供了越来越多的需要本地或远程完成的功能和任务,例如通过设备、系统、本地服务器、台式计算机、和/或远程地通过采用基于云的计算。

在计算机系统投入使用之前,必须安装和配置一系列软件产品,包括操作系统。由于高复杂性,软件产品和操作环境的安装和配置是一项艰巨、昂贵且耗时的任务。因此,这种系统的安装和配置通常由熟练的信息技术it专业人员执行,这些it专业人员做出许多配置决策以确保系统的各种计算机化设备的互操作性。然而,手动安装是劳动密集型的并且需要大量时间和人力资源。与声明的功能一起,许多程序包含引起有意或无意副作用的计算机代码,这不仅可能损害与程序相关联的特定子系统,而且可能损害其他此类系统。特别是,当在汽车子系统上安装程序时,由于某些子系统的灵敏度,例如制动器或转向机构,这种副作用可能是灾难性的。网络攻击还引入了故意有害组件的危险,其中攻击者使用错误、漏洞或由于一个或多个用户的不足够小心的处理来攻击系统。

简述

本公开主题的一个示例性实施例是一种用于在汽车的计算机化系统内安装计算机程序的系统,包括:模拟器,包括多个子系统,每个子系统模仿相应的汽车子系统;场景库,存储要执行的一个或多个场景,从而激活一个或多个子系统;场景执行模块,用于执行场景库中存储的一个或多个场景,从而激活一个或多个子系统;和安装程序,配置为在模拟器上安装计算机程序。在系统内,安装程序可选地进一步配置为在汽车上安装计算机程序。在该系统内,模拟器可选地包括:场景管理模块,用于存储用于测试场景库内的子系统的一个或多个场景;场景执行模块,用于执行场景,从而激活子系统;以及监视模块,用于观察进出子系统的输入和输出指令。在该系统内,每个系统可选地包括:相应的汽车子系统的模型;以及用于与其他子系统或与场景执行模块通信的接口。在系统内,场景库可选地包括用于激活一个或多个场景的脚本。在系统内,脚本可选地包括用于场景的激活参数的指令。在系统内,场景库可选地包括一个或多个场景或脚本的停止标准。在该系统内,汽车子系统可选地选自由引擎;传动装置;转向机构;娱乐系统;空调;前照灯和信号系统组成的组。

本公开主题的另一示例性实施例是一种用于在汽车的计算机化系统内安装计算机程序的方法,包括:在包括多个子系统的模拟器上安装计算机程序,每个子系统模拟汽车子系统;从场景库执行场景,从而在一个或多个子系统中激活,直到满足停止标准;监测传输到任何子系统或从任何子系统接收的输入和输出;并且在所述执行成功完成的情况下,将计算机程序安装在至少一个汽车子系统上。在该方法中,停止标准可选地选自由以下组成的组:已发现问题;已经发现了一个根据所要求的汽车安全等级不能容忍的问题;已发送或接收未经授权的消息;已从未经授权的来源或在错误的时间发送或接收消息;预定的时间段已经过去;每个子系统在至少一段预定的时间可操作;每个子系统接收或输出至少预定数量的指令或指示。在该方法中,安装计算机程序可选地包括:由一个或多个专用处理器执行专用安装和配置计算机程序产品的一组指令,其中该组指令的执行导致启动引擎的履行,该启动引擎安装和配置了操作环境的多个操作模块。

本公开主题的又一示例性实施例是一种计算机程序产品,包括存有程序指令的计算机可读存储介质,该程序指令在由处理器读取时,使得处理器执行包括以下步骤的方法:在包括多个子系统的模拟器上安装计算机程序,每个子系统模拟一个汽车子系统;从场景库执行场景,从而激活至少一个子系统,直到满足停止标准;以及监测传输到任何子系统或从任何子系统接收的输入和输出;并且在所述执行成功完成的情况下,将计算机程序安装在一个或多个汽车子系统上。

附图的几个视图的简要说明

从以下结合附图的详细描述中将更全面地了解和理解本发明所公开的主题,其中相应或相似的数字或字母表示相应或相似的部件。除非另外指出,否则附图提供了本公开的示例性实施例或本公开的各个方面,并且不限制本公开的范围。附图中:

图1示出了根据本主题的一些示例性实施例的用于在汽车系统上安全安装计算机程序的系统的概括框图。

图2示出了根据本主题的一些示例性实施例的用于在汽车系统上安全安装计算机程序的方法的概括流程图;和

图3示出了根据本主题的一些示例性实施例的安装系统的详细框图。

详细说明

以下描述涉及用于安全安装和配置计算机化环境的自动启动设备、系统和方法。

本说明书中使用的术语“模拟器”应该被广泛地解释为涵盖使计算机系统(“主机”)能够像另一个计算机系统(“客户”)那样工作的任何类型的硬件或软件。模拟器通常使主机系统能够运行软件或使用为客户系统设计的外围设备。模拟可以指由电子设备执行计算机程序以模仿另一程序或设备的能力。常见用途包括启用为客户系统编写的软件的用途,例如打印机、计算机游戏等。硬件模拟器是一种采用硬件设备形式的模拟器。

诸如汽车的现代系统在其许多系统中利用多个处理器和其他计算机化组件。该系统包括诸如娱乐系统的非关键系统,但也包括诸如制动器、转向、巡航控制、距离维护等的关键系统。在许多情况下,通过在一个或多个汽车系统中安装软件部件,例如作为软件更新,解决了问题或将新特征引入任何子系统。

因此,由本公开的主题处理的一个问题涉及在存在软件部件安装的情况下汽车子系统的安全性。例如,汽车制造商、维修店或任何用户可能希望安装较新版本的娱乐系统软件或插件。然而,娱乐系统软件可能包括能损坏娱乐系统的有害的计算机代码,甚至是汽车的其他子系统,包括关键系统。有害代码可能是无意的,例如错误;或者有意的,例如设计用于造成这种损坏的病毒,例如,控制此类子系统并发送可能是错误的、未经授权的、不合时宜的指令等,例如锁定制动器、发送错误的转向命令、损坏显示器,使得驾驶员可能超速、激活闪光灯等。进一步的问题可能是由于操作系统中的错误,该错误在加载特定程序时可能导致意外和可能危险的行为。

系统的安全性也可能受到网络攻击的威胁,网络攻击可能通过已安装的程序或漏洞或其他错误侵入系统。通过接管汽车、以危险方式激活代码、收集信息等网络攻击可能造成巨大的破坏。

由本公开的主题处理的另一个问题涉及系统的简单和无缝安装的需要,特别是诸如汽车内的计算机化系统和部件的系统。该问题的一种技术解决方案涉及避免旨在安装在汽车中的硬件或软件部件中所包含的危险,其中部件尚未经过完全测试并且被发现是安全的。该解决方案包括创建模拟汽车的各种系统的模拟器,以及在这些模拟器上安装部件。然后执行部件并且可以监视各种子系统的输入和输出,直到已经执行了足够的测试,或者直到已经满足另一个停止标准,例如已经检测到问题。

一旦在模拟器上执行了部件而没有任何问题,或者至少没有发现任何严重问题,可以假设这些部件是安全的,并且可以安装在实际的汽车上。

安装可以自动进行以减少手动安装所需的安装工时,特别是当部件需要安装在多个车辆上时。

现在参考图1,其示出了用于在汽车系统上安全安装计算机程序的系统的概括框图。

该系统包括安装程序1000,该安装程序1000接收要安装在汽车或汽车子系统内的计算机程序1001,例如可执行文件、库、应用程序、插件等。安装程序1000可以作为下面图3的启动设备3200来执行,但不限于这种安装程序,并且可以使用任何其他手动、自动或半自动安装程序。

该系统还包括模拟器1002,模拟汽车内的多个系统。模拟器1002可选地是包括一个或多个处理器1012和一个或多个存储设备1010的计算平台,每个模拟器1002可以是易变的或不易变的。

模拟器1002包括多个子系统,例如子系统1(1004)和子系统2(1004'),每个子系统模拟至少一个汽车子系统或其一部分。一些示例性非限制性子系统包括引擎、传动装置、转向机构、娱乐系统、前照灯和信号系统、空调或其他。应当理解,尽管图1示出了两个子系统,但这不是限制并且子系统的实际数量可以显著更大。

因此,每个子系统包括物理或数学模型,例如子系统(1004)的模型1024或子系统2(1004')的模型1024'。

每个子系统还包括接口,例如子系统1(1004)的接口1028或子系统2(1004')的接口1028'。每个子系统通过其各自的接口与其他子系统或向场景执行模块1016通信,例如接收指令并且提供输出或指令。

安装程序1000还可以被配置为在子系统1004、1004'中的任何一个上安装计算机程序1001。

模拟器1002与场景库1008相关联,例如在存储设备上存储(例如存储设备1010或另一个)场景库1008,包括用于激活一个或多个子系统1004、1004'中的一组或多组计算机指令。场景库1008可以包括诸如加速、制动、在有或没有激活闪光灯的情况下改变车道、给汽车加油、改变无线电台上的站点等。

模拟器1002可以包括处理器1012,其可以是任何通用或专用处理器。处理器可以被配置为根据存储在与处理器1012相关联的非暂时性计算机可读存储器(例如存储设备1010)上的计算机可读指令来执行若干功能模块。这些功能模块在下文中描述为包括在处理器1012中。功能模块包含其中。处理器1012可以包括场景管理模块1014,用于确定或接收指示,该指示可以标识场景库1008中存储的哪个场景的指令,以及什么执行参数(例如什么持续时间、时间、顺序、并行度、随机度等。场景管理模块114可以从用户接收或帮助用户准备用于执行场景的一个或多个脚本。场景管理模块1014还可以确定用于停止场景执行的一个或多个停止标准。停止标准可以是但不限于以下任何非限制性示例:已发现问题并且特别是已发送或接收未授权消息,已从未授权来源或在错误时间发送消息,预定的时间段已经过去,每个子系统可操作至少预定的时间段,每个子系统接收或发送至少预定数量的指令或指示等。停止标准可能取决于所需的安全车级别。该级别可以是与组件相关的,例如在可能不能容忍发动机的问题时,可能限于娱乐系统的问题。

处理器1012可以包括场景执行模块1016,用于根据场景管理模块1014确定的参数从场景库1008执行场景。场景执行模块1016可以通过监视接口1028、1028'监视场景执行,并观察进出每个子系统1004、1004'的输入和输出指令。

如场景管理模块1014所确定的,场景可以以任何预定或随机顺序或其组合连续地或间歇地等执行。可以执行和监视场景直到满足定义的停止标准。

处理器1012可以包括监视模块1020,用于监视发送到子系统1004、1004'中的任何一个或从子系统1004、1004'中的任何一个接收的输入和输出。因此,监视模块1020可以检查每个这样的消息或指令,并确定是否接收到意外消息、来自未授权源的消息或者在意外时机发送的消息以及来自哪个源,从而确定安装的计算机程序1001是否导致有害或冒险的行为。例如,安装在汽车收音机上的计算机程序1001不应该向任何其他系统发送任何消息,特别是不向任何关键系统发送,例如引擎、传动装置、转向或甚至闪光灯。

一旦执行了场景,直到满足一个或多个停止标准,取决于参数,如果没有观察到任何问题或意外行为,例如符合所需的汽车安全级别,安装程序可以在实际的汽车或汽车系统1032上安装计算机程序1001。否则,如果已经遇到问题,计算机程序1001将不会安装在汽车或汽车系统1032上,并且可以调查问题的根源。

应当理解,如下面结合图3详细描述的,安装程序1000可以操作在多个车辆上以自动方式安装计算机程序1001,自动方式需要比手动安装更少的时间和人力资源。

现在参考图2,其示出了用于在汽车上安全安装计算机程序的方法的概括流程图。

安装程序1000可以在模拟器1002上安装(块2000)计算机程序或其部件,例如库。计算机程序或其部分可以安装在模拟器1002的一个或多个子系统上。

场景执行模块1016可以执行(块2004)由场景管理模块1014接收、确定或存储的一个或多个场景。

在整个执行(块2004)期间,监视模块可以监视(块2006)执行并确定是否已经满足停止标准(块2008)。监视可以包括检查进出每个子系统的输入和输出指令,并在正确的时机验证从授权的源接收指令。例如,如果从娱乐系统或闪烁系统向引擎发送指令,则可能存在问题。监视输入和输出指令或消息还可以用于检测网络攻击,该网络攻击导致一个或多个部件以未授权的方式动作,从未授权的源接收指令或以未授权的方式传输指令等。

当满足停止标准时,可以确定(块2012)执行是否已成功完成,即是否是计算机程序被认为是安全的。可能是这种情况,例如如果所有必需的场景已经执行了所需的持续时间或所需的功能并且没有检测到任何问题。如果计算机程序是安全的,则可以在汽车或汽车系统上安装(块2016)。否则,如果出现问题,则可以调查问题的根源(块2020)。

参考图3,示出了用于在多个用户设备3400上安装程序的计算机化系统3000,其中一个或多个这样的用户设备可以是汽车。系统3000可以是图1的安装程序1000的实施例。系统3000可以包括互联网提供商3300和启动设备3200,启动设备3200使得能够自动安装,和/或配置软件和/或模块以使计算机化系统3100的各种部分和/或设备可操作。启动设备3200可以例如包括多个操作模块,操作模块包括例如电子邮件服务模块3202、网页服务模块3204、防火墙模块3206、数据备份模块3208、文件/用户管理模块3210、视频会议模块3212、防病毒模块3214、代理服务模块3216和/或监控模块3218,监控模块3218可以是闭路摄像机监控模块;和wi-fi接入点模块3230。

网络服务模块3204可以包括网络设计模块(未示出),用于帮助管理员设计与计算机化系统3100相关联的商业门户网站。启动设备3200、互联网提供商3300和终端用户设备3400可以被配置为通过通信网络3900彼此通信。通常,数据可以通过网络3900从互联网提供商3300和/或客户端3400提供,并通过代理服务模块3216、防火墙模块3206、防病毒模块3214和内部/外部ip交换机3232,用于将数据分配给启动设备3200的各个模块(例如,任务)。(并连接到外部pc客户端(如果不通过wi-fi)

启动设备3200可以采用多个嵌入式或专用处理器3236(例如,3236a和3236b),其采用例如精简指令集计算(risc)架构或由启动设备3200的处理器允许的嵌入式或专用的任何其他处理器架构(例如,处理器)。

在实施例中,启动设备3200包括的处理器可能只是或仅仅是专用处理器。因此,启动设备3200可以没有任何通用处理器。在一个实施例中,启动设备3200仅包括仅采用risc架构的处理器。

在一个实施例中,当执行存储在启动设备3200的存储设备(未示出)中的一组指令时,多个专用处理器可以导致执行上述模块。换句话说,模块可以由多个(例如,risc或cisc)专用处理器或执行相应指令集的专用处理器组来实现。在一个实施例中,模块可以仅由多个(例如,risc或cisc)专用处理器或执行相应指令集的专用处理器组来实现。

在一些实施例中,每个模块可以由相应的专门用途的专用处理器和/或专门用途的专用处理器组实现,这样用于实现第一模块的专用处理器或专用处理器组没有被采用,甚至没有部分地被采用用于实现第二模块。换句话说,启动设备3200可以被认为是采用多个专用嵌入式处理器(依赖于模块功能的合适处理器)的计算机化设备,用于实现模块的过程和/或功能。用于实现模块的专用处理器可以安装在包括启动设备3200的单个主板(未示出)上。

启动设备3200可以包括输入/输出模块3220,其体现例如图形和/或音频用户界面,用于引导启动设备3200的管理员配置系统3100的模块和操作环境。启动设备3200还可以包括电源模块3226,电源模块3226能够为各种模块供电。电源模块3226可以包括电源供应3234(例如,用于将启动设备3200连接到电网),并且可选地,包括例如由不间断电源或ups实现的电源备用电池3235,用于在电源供应3234从电网接收供电故障的情况下提供备用。启动设备3200还可以包括通信模块(未示出)。

在一个实施例中,启动设备3200的模块是预安装的,从而避免了安装系统3100的配置可能需要的任何附加软件的需要。

启动设备3200被配置成使得其供电引起预定系统配置程序的启动,如下文所概述的,该预定系统配置程序可以完全自动(也称为“自动模式”)或半自动(也称为“半自动模式”)执行。在一个实施例中,启动装置3200可选择性地在自动或半自动操作模式下操作。术语“模式”和“操作模式”可以互换使用。在初始过程中,配置程序可以包括启动设备3200与互联网提供商3300的可操作连接。当处于自动模式时,启动设备3200可以自动检测到它与互联网提供商3300连接并向后者提供必要的身份标识(例如,与启动设备3200相关联的互联网协议(ip)地址)。当设置为以半自动模式操作时,输入/输出模块3220可以提示管理员提供ip地址/或授权使用检测到的ip地址。在自动模式下,默认情况下会对检测到的ip地址进行授权。在半自动模式下,一旦连接,输入模块可以向管理员提供基于网络的配置接口并提示他/她输入静态ip地址,以及可选地提供授权凭证例如管理员从互联网提供商3300获得的用户名和密码。相应地,启动设备3200可以引导管理员进行网络服务模块3204的配置。在自动模式中,可以由启动设备3200自动检测静态ip地址。

在一个实施例中,在自动模式中,可以自动分配授权凭证。例如,基于预先存储的用户名,可以自动创建用户名。在一个实施例中,可以自动创建密码和/或其他质询-响应认证保护(例如,随机地或以伪随机方式),并且分别将其分配给自动创建的用户名。

应注意,术语“相关”和“分配”可互换使用。

一旦被授权,在半自动模式中,启动设备3200可以提示管理员定义wi-fi接入。在自动模式中,默认定义可以由定义wi-fi接入的启动设备3200分配。

此后,在半自动模式中,启动设备3200可以通过用户接口3220提示管理员配置用户的邮箱地址(即,电子邮件服务模块3202)并进一步提示管理员关联电子文件(即,配置文件/用户管理模块3210)并为系统3100的用户创建的数据分配备份存储(即,配置数据备份模块3208)。在(完全)自动模式中,可以自动定义用户的邮箱地址(例如,基于预先存储的域名和用户名)。在自动模式中,可以根据预定义的默认设置来完成电子文件关联以及向每个用户分配备份存储。

另外,启动设备3200可以提示管理员为系统3100的用户定义系统许可和/或授权。为此目的,启动设备3200可以经由输入/输出模块3120向管理员呈现各种选项和/或许可级别(例如,启用或禁用远程访问),该输入/输出模块3120可配置并且可分别由管理员分配给终端用户设备3400的用户。此外,启动设备3200可以提示管理员定义防火墙模块3206、防病毒模块3214、代理服务模块3216和摄像机监控模块3218的配置。在一个实施例中,在自动模式中,默认授权和/或安全级别可以与每个用户名以及默认配置文件/用户管理配置相关联。例如,在自动模式中,可以根据预定义的设置为每个“常规”用户相同地定义系统许可和/或授权。但是,对于被识别为“管理员”的用户而不是“常规”或非管理员的用户,系统许可和/或授权定义可能不同。定义为“管理员”的用户的许可/授权定义也可以根据预定义的设置自动配置。在一个实施例中,各种许可/授权配置设置可以由启动设备3200预定义并呈现给管理员以分配相应的不同级别的授权。此外,在自动模式中,防火墙模块3206、防病毒模块3214、代理服务模块3216和摄像机监控模块3218可以根据存储在启动存储器3222中的预定义设置自动配置。在一些实施例中,在半自动模式中,启动设备3200可以提示管理员配置视频会议模块3212。附加或替代模块可以由启动设备3200经由用户接口3220配置,以确保系统3100的适当可操作性。在自动模式中,可以预定义默认设置并将其用于配置视频会议模块3212。

除了由互联网提供商3300预定义的那些配置和服务之外,系统3100的所有配置和服务可以经由用户接口3220在启动设备3200处和/或通过启动设备3200定义,而不需要例如采用基于云的服务。考虑到前述,可选地排除存储,仅启动设备3200可以完全合并并提供计算机化系统的全范围的服务器功能和服务,例如商业环境的系统3100。在一个实施例中,存储可以专门地并入本地服务器(未示出)中。在一个实施例中,在自动模式中,自动安装和操作环境配置可以为20个或更少终端用户设备3400例如花费大约60分钟或更短、45分钟或更短、30分钟或更短、20分钟或更短、15分钟或更短、10分钟或更短或者5分钟或更短。

在一个实施例中,在自动模式中,自动安装和操作环境配置可以为30、40、50、60或100个或更少终端用户设备3400例如花费大约60分钟或更短、45分钟或更短、30分钟或更短、20分钟或更短、15分钟或更短、10分钟或更短、5分钟或更短。对于例如30,40,50,60或100个终端用户设备3400或更少,或者更少,或者5分钟或更短。

因此,每个终端用户设备3400的平均设定时间可以是总时间除以根据任何上述示例由启动设备3200自动安装和配置的终端用户设备3400的数量。

在一个实施例中,用于建立类似系统3100的系统的每个终端用户设备3400的平均自动安装和配置时间,因此可以例如是3分钟或更短、2分钟或更短、2.25分钟或更短、1.5分钟或更短、1.125分钟或更短、1分钟或更短、0.75分钟或更短、0.66分钟或更短、0.5分钟或更短、0.375分钟或更短、0.33分钟或更短;0.25分钟或更短、0.15分钟或更短时间;或0.125分钟或更短。

启动设备3200的启动存储器3222可以包括一组指令,当例如通过相应的(例如,risc)处理器执行这组指令时,可以使得计算机化系统3100的方法、过程和/或操作的执行自动化地和/或被引导地安装和配置。这种方法、过程和/或操作在此可以由启动引擎3224实现,该启动引擎3224协调不同模块的配置程序。该组指令可以是可以基于网络的专用和特定软件。专用软件的指令集可以由启动设备执行,以根据例如由管理员和/或客户端3400(例如,通过基于网络的gui)施加的要求和/或约束来安装和配置系统的所有模块。在一些实施例中,可以通过执行各种软件的相应指令集彼此独立地设定模块。

在一个实施例中,计算机化系统3100可以指包括在车辆设备中的系统,例如汽车的操作系统;固定装置;和/或在住所内。在一个实施例中,启动设备3200可以在车辆(未示出)上并且可操作,以提供例如用于设定车辆的操作系统的引导,包括例如车辆娱乐和/或通信系统。

在一个实施例中,启动设备3200可用于设定建筑物自动化(例如,警报系统、运动检测器、温度传感器、湿度传感器、火警传感器、空调系统、照明、娱乐和/或通信系统、监控摄像机、浇水、宠物喂养等。回到图3,由启动设备3200进行的家庭自动化配置不应被解释为例如限于监控模块3218。

在一个实施例中,启动设备3200的部件可以容纳在加固的外壳(未示出)中,加固的外壳允许启动设备3200在恶劣的环境条件下可展开和使用。

上面讨论的各种特征和步骤,以及每个这样的特征或步骤的其他已知等同物,可以由本领域普通技术人员混合和匹配,以执行根据本文所述原理的方法。尽管已经在某些实施例和示例的上下文中提供了本公开,但是本领域技术人员将理解,本公开超出了具体描述的实施例,延伸到其他备选的实施例和/或用途以及其明显的修改和等同物。因此,本公开不旨在受本文实施例的具体公开内容的限制。例如,可以配置或以其他方式编程任何数字计算机系统或设备(例如,计算机化系统3100)以实现本公开的方法,并且在特定数字计算机系统被配置为实现这样的方法的程度上,其在本公开的范围和精神以内。一旦数字计算机系统被编程为根据来自实现本公开的方法的程序软件的计算机可执行指令来执行特定功能,它实际上变成了特别是本公开的方法的实施例的专用计算机。实现此目的所需的技术是本领域技术人员公知的因此在此不再进一步描述。本公开的方法和/或过程可以实现为计算机程序产品,例如在信息载体中,例如在非暂时性计算机可读或非暂时性机器可读存储设备中和/或传播信号中,有形地体现的计算机程序,用于由数据处理设备执行或控制数据处理设备的操作,所述数据处理设备包括例如一个或多个可编程处理器和/或一个或多个计算机。术语“非暂时性计算机可读存储设备”和“非暂时性机器可读存储设备”包括分配介质、中间存储介质、计算机的执行存储器,以及能够存储以供实现本公开的方法的实施例的计算机程序稍后阅读的任何其他介质或设备。术语“非暂时性”用于排除暂时的传播信号,但另外包括适用于该应用的任何易变或不易变的计算机存储器技术。

可以部署计算机程序产品以在一个计算机上或在一个站点的多个计算机上执行,或者分布在多个站点上并通过通信网络互连。

实现本公开的方法的一个实施例的计算机可执行指令可以在非暂时性计算机可读介质上分配给用户,并且通常被复制到硬盘或其他存储介质上。当要执行这样的指令程序时,通常将其加载到计算机的随机接入存储器中,从而将计算机配置成根据本公开的方法动作。所有这些操作对于本领域技术人员来说是公知的,因此这里不再进一步描述。术语“计算机可读介质”包括分配介质、中间存储介质、计算机的执行存储器、以及能够存储以供实现本公开的方法的实施例的计算机程序稍后阅读的任何其他介质或设备。

术语“引擎”可以包括或实现一个或多个计算机模块,其中模块可以是与更大系统接合的独立硬件和/或软件部件(alanfreedman,thecomputerglossary268,(第8版1998))。这种模块可以由电路或控制器呈现,该电路或控制器被编程为使系统实现如本文所公开的方法、过程和/或操作。模块包括一个或多个机器可执行指令。例如,模块可以实现为硬件电路,其包括例如定制的vlsi电路或门阵列、诸如逻辑芯片、晶体管或其他分立部件的现成半导体。模块还可以在可编程硬件设备中实现,例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等。

在适用的情况下,尽管可以使用流程图和框图来描述实施例,但是该技术不限于那些图表或相应的描述。例如,流程不需要移动通过每个所示的框或状态,或者以所示和所述的完全相同的顺序移动。

应当理解,在权利要求或说明书中所指的“一”或“一个”元素,这种引用不应被解释为仅存在一个该元件。

除非另有说明,否则在用于选择的选项列表的最后两个成员之间使用表达“和/或”,表示选择一个或多个列出的选项是适当的并且可以进行。

本发明可以是系统、方法和/或计算机程序产品。该计算机程序产品可以包括计算机可读存储介质(或介质),其上具有计算机可读程序指令,用于使处理器执行本发明的各方面。

计算机可读存储介质可以是有形设备,其可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是但不限于例如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机接入存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机接入存储器(sram)、便携式光盘只读存储器(cd-rom)、数字通用光盘(dvd)、记忆棒、软盘、机械编码设备例如在其上记录有指令的凹槽中的穿孔卡或凸起结构,以及前述的任何合适的组合。这里使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)或通过电线传输的电信号。

这里描述的计算机可读程序指令可以经由网络(例如因特网、局域网、广域网和/或无线网络)从计算机可读存储介质或外部计算机或外部存储设备下载到相应的计算/处理设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或以一种或多种编程语言的任意组合编写的源代码或目标代码,包括诸如smalltalk,c++等的面向对象的编程语言,以及诸如“c”编程语言或类似编程语言的常规程序编程语言。计算机可读程序指令可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分地在用户的计算机上并且部分地在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息以个性化电子电路来执行计算机可读程序指令,以执行本发明的各方面。

这里参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。将理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。

这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得指令通过计算机的处理器或其他可编程数据处理装置执行。指令创建用于实现流程图和/或框图中块指定的功能/动作的方法。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指示计算机、可编程数据处理装置和/或其他设备以特定方式起作用,使得具有指令存储在其中的计算机可读存储介质包括一种制品,该制品包括实现流程图和/或框图中块指定的功能/动作的各方面的指令。

计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图中的块指定的功能/动作。

附图中的流程图和框图显示了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图或框图中的每个块可以表示模块、段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,块中提到的功能可以不按图中所示的顺序发生。例如,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图示的每个块以及框图和/或流程图图示中的块的组合,可以由执行特定功能或动作的专用基于硬件的系统来实现,或者执行专用硬件和计算机指令的组合。

这里使用的术语仅用于描述特定实施例的目的,而不是要限制本发明。如这里所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元素和/或部件的存在,但不排除存在或者添加一个或多个其他特征、整数、步骤、操作、元素、部件和/或其组。

以下权利要求中的所有方法或步骤加功能元素的相应结构、材料、动作和等同物,旨在包括用于结合具体要求保护的其他要求保护的元素执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了对本发明的描述,但是并不旨在穷举或将本发明限于所公开的形式。在不脱离本发明的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并且使本领域普通技术人员能够理解本发明的各种实施例,其具有适合于预期的特定用途的各种修改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1