使用不可旁路的网关的基于TPM的安全多方计算系统的制作方法

文档序号:22886336发布日期:2020-11-10 18:02阅读:203来源:国知局
使用不可旁路的网关的基于TPM的安全多方计算系统的制作方法

本发明的实施例一般涉及安全多方计算。更具体地说,本发明的实施例涉及使用不可旁路的网关的基于可信平台模块(tpm)的安全多方计算系统。



背景技术:

敏感交易越来越多地由基于云的服务器执行。基于云是指用户可经由因特网从云服务器按需获得的应用、服务或资源的术语。基于云的服务器的多方或多租户性质对于保护多租户计算环境不被不受信任方进行未授权访问的需求日益增加。例如,在计算期间,来自一方的数据可以被不受信任方访问。因此,需要在计算期间保护数据。此外,基于密码的多方计算解决方案是慢的,因此可能是不实用的。



技术实现要素:

在第一方面中,本发明实施例提供一种用于在可信环境中处理数据的计算机实现的方法,所述方法包括:

响应于在服务器的网关处通过网络从用户的用户设备接收的通过执行服务处理用户数据的请求,通过扫描所述用户数据以查找恶意代码来净化所述用户数据;

从多个可信执行环境tee工作器中选择tee工作器,以及由选择的tee工作器发起所述执行服务的执行;

接收来自选择的tee工作器的执行结果;以及

将所述执行结果通过所述网络发送至所述用户的所述用户设备。

在第二方面中,本发明实施例提供一种非暂时性机器可读介质,其中存储有指令,当由处理器执行时,所述指令使得所述处理器执行如第一方面所述的方法。

在第三方面中,本发明实施例提供一种数据处理系统,包括:

处理器;以及

存储器,耦合到所述处理器且用于存储指令,当由所述处理器执行时,所述指令使得所述处理器执行如第一方面所述的方法。

根据本发明实施例提供的方法以及数据处理系统,防止客户端的数据泄漏到多方计算环境中的不受信任方。

附图说明

本公开的实施例通过示例的方式示出并且不限于附图中的图,在附图中相同的附图标记表示相似的元件。

图1是示出根据一个实施例的用于使用不可旁路的网关的安全多方计算的计算系统的系统配置的示例的框图。

图2是示出根据一个实施例的不可旁路的网关的示例的框图。

图3是示出根据一个实施例的用于安全多方计算系统的密钥注册协议的示例的流程图。

图4是示出根据一个实施例的用于安全多方计算系统的执行服务注册协议的示例的流程图。

图5是示出根据一个实施例的客户端-网关数据上传协议的示例的流程图。

图6是示出根据一个实施例的客户端-网关数据下载协议的示例的流程图。

图7是示出根据一个实施例的用于安全多方计算系统的执行服务调用协议的示例的流程图。

图8是示出根据一个实施例的方法的示例的流程图。

图9是示出根据一个实施例的数据处理系统的框图。

具体实施方式

将参考以下讨论的细节描述本公开的各个实施例和方面,并且附图将示出各个实施例。以下描述和附图是本公开的说明并且不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各种实施例的全面理解。然而,在某些情况下,为了提供对本公开的实施例的简要讨论,没有描述公知或常规的细节。

说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。

本公开的实施例公开了一种防止客户端的数据泄漏到多方计算环境中的不受信任方的系统。根据一个实施例,响应于在服务器的网关(例如,不可旁路的网关)处通过网络从用户的用户设备接收到的通过执行服务处理用户数据的请求,系统通过扫描用户数据的恶意代码来净化用户数据。系统从多个可信执行环境(tee)工作器中选择tee工作器,以及通过选择的tee工作器发起执行服务的执行。系统从选择的tee工作器接收执行结果。系统将执行结果发送给用户的用户设备。

图1是示出根据一个实施例的用于使用不可旁路的网关的安全多方计算的计算系统的系统配置的示例的框图。参考图1,系统配置100包括但不限于通过网络103通信地耦合到数据处理服务器104的一个或多个客户端设备101-102。客户端设备101-102可以是任何类型的客户端设备,诸如个人电脑(例如,台式机、笔记本电脑和平板电脑)、“薄”客户端、个人数字助理(pda)、web使能的电器、智能手表或移动电话(例如,智能电话)等。可替换地,客户端设备101-102可以是其它服务器。网络103可以是任何类型的网络,诸如局域网(lan)、广域网(wan)(诸如因特网)、或其组合,可以是有线或无线的。客户端设备101-102、数据处理服务器104和管理服务服务器160之间通过网络103的通信可以例如经由tls/ssl保护。

数据处理服务器(例如,主机)104可以是任何类型的服务器或服务器群集,诸如web或云服务器、应用服务器、后端服务器或其组合。服务器104可以包括允许客户端(诸如客户端设备101-102)访问由服务器104、密钥管理服务器160、服务供应商161或云运营商162提供的资源或服务的接口。例如,服务器104可以是云服务器或由云运营商162操作的数据中心的服务器。服务器104可以向客户端提供各种云服务,诸如例如云存储、云计算服务、大数据服务、建模服务、机器学习训练服务、数据挖掘服务等。服务器104可以被配置为通过云的软件即服务(saas)或平台即服务(paas)系统的一部分,云可以是私有云、公共云或混合云。接口可以包括web接口、应用编程接口(api)和/或命令行接口(cli)。

数据处理服务器104可以包括ram磁盘文件系统(ramfs)121和一个或多个cpu(未示出),cpu配备有用于安全启动的安全模块,诸如可信平台模块(tpm)120。tpm是端点设备上的专用芯片,其存储特定于主机系统的加密密钥(例如rsa加密密钥),用于硬件认证。每个tpm芯片可以包括一个或多个rsa密钥对(例如,公开和私有密钥对),称为背书密钥(ek)或背书信任状(ec),即根密钥。密钥对被保存在tpm芯片内部,并且不能被软件访问。然后,在执行固件和软件的关键部分之前,可以由ek或ec对它们进行散列以保护系统免遭未经授权的固件和软件修改。主机上的tpm芯片因此可以被用作服务器104的安全启动的可信根,从而服务器104的操作系统或执行环境(例如,tee工作器108-109)可以被信任。

数据处理服务器104可以包括不可旁路的网关106(例如,网关)和一个或多个可信执行环境108-109。不可旁路的网关106可以是受信网关,其对所有网络业务进行调节,包括客户端101-102与tee工作器108-109、kms160与tee工作器108-109、以及服务供应商161与tee工作器108-109之间的数据业务和访问控制业务。此外,网关106可以实施4a服务(例如,认证、授权、审计或帐户),以及可以基于调节的网络业务执行代码分析、防火墙服务和数据净化,以减轻潜在的漏洞利用。

在一个实施例中,网关106可以与客户端设备101-102通信以促进客户端请求。网关106可以启动诸如环境108-109的可信执行环境,以针对不同的客户端和/或客户端请求执行各种执行服务。这里,可信执行环境(tee)是沙箱式的执行环境,它们彼此隔离并且与服务器104的操作系统隔离。在一个实施例中,tee可以与操作系统并行运行,以确保用于tee中加载的代码和数据的保密性和完整性。在一个实施例中,tee可以是使用独立内核、联网和/或输入/输出执行操作系统级虚拟化的运行时容器(例如,kata容器)。在另一实施例中,tee可以使用硬件(例如tpm)和软件(例如intel软件保护扩展(sgx))两者以进一步保护数据和代码。

在一个实施例中,系统100包括计算服务器节点的集群,以及服务器104是集群中的计算服务器节点中的一个。为了维持可靠性和可扩展性的阈值,集群可以是可靠的、复制的、冗余的和容错的(raft)集群。注意,raft是指允许节点的集合(例如,包括服务器104)以作为可以幸免于它的节点成员中的一些的故障的相干组工作的一致算法。例如,服务器104的网关106可以作为raft集群的一部分执行raft服务。作为raft服务的一部分,网关106可以维持集群中的节点之间的复制的日志和/或状态机的一致的副本,从而即使集群中的少数节点发生故障,在客户端101-102看来,它们与单个可靠的机器交互。可以通过选择领导节点维护集群中的节点之间的状态机和/或复制的日志的一致性,其中领导节点负责到跟随者节点的状态机/日志复制。领导通过发送心跳消息定期通知跟随者其存在。每个跟随者具有其期望来自领导的心跳的超时。在接收到心跳时重置超时。如果没有接收到心跳,则跟随者改变其状态以选择新的领导。此处,来自客户端设备101的服务请求可以由网关106记录,而请求的状态可以记录在状态机中。状态机/日志可由选择的领导节点在集群中的服务器节点之间复制。记录的状态机/日志可以确保在服务器104随后变得不可操作的情况下,客户端请求可以由群集中的节点的任一个服务。

在一个实施例中,网关106可以与密钥管理服务器(kms)160通信以获得加密密钥。kms160可以是任何类型的服务器。服务器160可以包括接口(例如,api或cli),以允许数据处理服务器104访问由服务器160提供的密钥管理服务,诸如用于非对称密钥、对称密钥和会话密钥的密钥生成、认证/验证和密钥检索服务。例如,网关106可以从kms160请求并获得用于tee工作器108-109中的任一个的专用密钥对。网关106然后可以提供密钥服务,诸如用于与网关106通信的各种实体(例如,客户端设备101-102和tee工作器108-109)的用于加密密钥的请求,并且将这些密钥维持在网关106内的受保护列表中。在一个实施例中,kms160在诸如intelsgx飞地之类的安全飞地中执行。在另一实施例中,kms160可以通过使用sgx远程证明来证明tee工作器,从而确保tee工作器是可信的。尽管被示为单个服务器,但是在一些实施例中,密钥管理服务器160可以表示许多服务器,或者可以与数据处理服务器104集成。

服务供应商161可以是任何类型的服务器。在一个实施例中,网关106可以与服务供应商161通信以获得表示执行器/软件可执行程序/代码的执行服务二进制文件,以执行由客户端设备101-102请求的各种服务,而不会向服务供应商161泄漏客户端数据。一些执行服务可包括扫描代码的计算服务、大数据分析、建模、机器学习(人工智能)推理/训练任务等。类似于服务器160,服务供应商161可以包括允许数据处理服务器104访问由服务器161提供的服务二进制文件的接口(例如,api或cli)。尽管被示为单个服务器,但是在一些实施例中,服务供应商161可表示许多服务器,或者可以与kms160和/或数据处理服务器104集成。

云运营商162可以向数据处理服务器104提供云操作服务。这样的服务包括服务器104可以是其一部分的云网络的管理、供应和配置。尽管被示为单个服务器,但是在一些实施例中,云运营商162可以表示许多服务器,或者可以与kms160、服务供应商161和/或数据处理服务器104集成。

图2是示出根据一个实施例的不可旁路的网关的示例的框图。网关106可以专用于对于主机服务器104调解所有网络流量并且这些网络流量必须通过网关106,例如网关106是不可旁路的。在一个实施例中,网关106包括诸如请求接收器201、数据防火墙/净化器203、tee工作器选择器/启动器205、执行结果检索器/发送器207的模块。请求接收器201可以从客户端设备101-102接收客户端请求。客户端请求可以包括客户端数据和待使用客户端数据执行的执行服务的标识符/名称。数据防火墙/净化器203可以扫描和净化接收的客户端数据。客户端数据可以被扫描和/或标示用于去除恶意代码,或者可以访问、控制或修改服务器104的功能的代码。另外,数据防火墙/净化器203可以充当防火墙,并且监视用于异常活动的流量数据以防止恶意入侵。tee工作器选择器/启动器205可以选择或启动tee工作器(例如图1的tee工作器108-109)以服务于客户端请求。执行结果接收器/发送器207可以从选择的tee工作器接收针对所请求的执行服务的执行结果并且将执行结果发送到请求客户端设备101-102。

图3是示出根据一个实施例的用于安全多方计算系统的密钥注册协议的示例的流程图。密钥注册协议可以由图1的系统100执行。密钥注册协议可以是kms160与网关,诸如图1的网关106之间的通信协议。网关106可以请求密钥以加密/解密客户端数据,或者将密钥与需要认证其身份的实体相关联。例如,网关106可以请求密钥以加密/解密客户端数据并且将加密的客户端数据保存在ramfs121中,从而可以在稍后的时间检索客户端数据。对于实体认证,实体的示例包括但不限于tee工作器、客户端设备和连接到网络的其他主机服务器。参考图3,示例300由网关106通过kms160注册对称密钥或非对称密钥对。在一个实施例中,在操作301处,网关106与kms160通信并且执行用于通信的tls握手。在tls握手期间,通信双方(这里是网关106和kms160)交换消息以相互确认/验证。双方可以建立加密算法并且就待用于通信会话的会话密钥达成一致意见。

虽然网关106可以是安全实体,因为它是使用安全模块(例如tpm)使用可信根启动的,但是kms160可能不知道该安全启动。类似地,kms160可能不被网关106信任。

在一个实施例中,在操作302处,网关106对kms160进行证明以确保kms160是受信任实体。取决于kms160支持的可用证明,证明可以包括tpm密钥证明,或者各种其它类型的证明,诸如来自intelsgx、armtrustzone、amd(安全加密虚拟化)sev等的证明。例如,如果kms160在intelsgx飞地中执行,则证明可以是sgx远程证明。在操作303处,网关106对网关106进行证明以确保网关106是受信任实体。在一个实施例中,为了增加系统的可扩展性,基于软件的虚拟tpm可以被图1的实体中的任一个,诸如网关106、kms160或服务供应商161使用,以支持多个主机或服务供应商。

在操作304处,网关106从kms160请求密钥。此处,密钥可以是对称密钥或非对称密钥对。在操作305处,kms160生成新密钥。在操作306处,kms160对密钥进行签名,以及在操作307处,kms160将签名的密钥分发给网关106。注意,网关106可以将密钥记录在受保护列表中(例如,在与操作系统的存储器分离的受保护存储器中),并且可以识别被发布给相应的客户端数据或实体的特定密钥。因此,网关106可以被视为为服务器104提供密钥生成和维护服务。注意,上述操作中的一些可以是可选的,诸如用于tls握手、证明和密钥对的签名的操作。

图4是示出根据一个实施例的用于安全多方计算系统的执行服务注册协议的示例的流程图。执行服务注册协议可以是服务供应商(例如,图1的sp161)和网关(例如,图1的网关106)之间的通信协议,用于将执行服务注册为tee工作器从而执行服务对于与网关通信的客户端可用。执行服务注册协议示例400可由图1的系统100执行。参照图4,在一个实施例中,在操作401处,sp161对网关106进行tls握手和证明。与上述类似,证明可以是基于tpm的或网关106可用的任何其它类型的证明。在操作402处,sp161向网关106发送具有服务描述的服务二进制文件。在一个实施例中,服务描述包括验证服务二进制文件的签名。在操作403处,网关106验证服务二进制文件的完整性(例如,服务二进制文件包括所有期望的数据分组),并扫描二进制文件以查找恶意代码。例如,网关106可以验证服务二进制文件的校验和。网关106可以进一步验证数据的真实性,例如服务二进制文件与sp161相关联。在操作404处,网关106将服务二进制文件注册为tee工作器(诸如tee工作器108)。在操作405处,网关106将确认发送到sp161。注意,不同的执行服务可以被注册为一个或多个tee工作器以服务于客户端请求。注意,以上操作中的一些可以是可选的,诸如用于tls握手和证明的操作。

图5是示出根据一个实施例的客户端-网关数据上传协议的示例的流程图。客户端-网关数据上传协议可以是客户端(例如,客户端设备101-102)和网关(图1的网关106)之间的通信协议,用于客户端将客户端数据上传到网关。客户端-网关数据上传协议示例500可以由图1的系统100执行。客户端数据可在客户端调用执行服务之前或同时被上传。参照图5,在操作501处,客户端101对网关106进行tls握手和证明。与上述类似,证明可以是基于tpm的或网关106可用的任何其它类型的证明。在操作502处,客户端将客户端数据上传到网关106。客户端数据可以是调用执行服务的输入数据。在操作503处,网关106从kms检索密钥以加密客户端数据。密钥可通过密钥注册协议(例如图3中所示的示例)被检索。参照图5,在操作504处,网关106加密客户端数据。在操作505处,网关106将加密的客户端数据保存到ramfs121或网关106可访问的任何存储器系统,并且生成用于客户端数据的通用唯一标识符(uuid)。在操作505处,网关106将uuid返回给客户端101。然后,uuid可以由客户端101使用以随后召回上传的客户端数据以调用执行服务。

图6是示出根据一个实施例的客户端-网关数据下载协议的示例的流程图。客户端-网关数据下载协议可以是客户端(例如,客户端设备101-102)和网关(图1的网关106)之间的通信协议,用于客户端从网关下载数据(例如,执行结果)。客户端-网关数据下载协议示例600可以由图1的系统100执行。客户端可以从网关106下载与客户端相关的任何数据。参照图6,在操作601处,客户端101对网关106进行tls握手和证明。与上述类似,该证明可以是基于tpm的或网关106可用的任何其它类型的证明。在操作602处,客户端通过uuid向网关106发送数据请求。在操作603处,网关106从ramfs121检索对应于uuid的数据。在操作604处,网关106确定与数据相关联的加密密钥并解密数据。在操作605处,网关106将数据返回给客户端101。

图7是示出根据一个实施例的用于安全多方计算系统的执行服务调用协议的示例的流程图。执行服务调用协议可以是客户端设备(例如,客户端设备101-102)和网关(例如,图1的网关106)之间的通信协议,用于使用网关调用执行服务,从而执行服务可以由网关的tee工作器执行。执行服务调用协议示例700可由图1的系统100执行。参考图7,在一个实施例中,在操作701处,客户端设备101发送服务请求以及对网关106进行tls握手和证明。与上述类似,证明可以是基于tpm的或网关106可用的任何其它类型的证明。在操作702处,客户端设备101向网关106发送服务id和数据uuid。在一个实施例中,服务id包括标识要由服务器104执行的执行服务的唯一名称或标识符。数据uuid可以是标识作为执行服务的输入数据的ramfs121上的客户端数据的uuid。在操作703处,网关106使用uuid从ramfs121检索数据,解密数据,以及通过扫描数据以查找恶意代码而进一步净化数据。在一个实施例中,输入数据作为客户端请求的一部分由客户端设备101直接发送到网关106。在操作704处,网关106选择为特定执行服务注册的tee工作器(例如,tee工作器108)以服务客户端请求。在操作705处,网关106将检索的数据发送到tee工作器108以及开始服务执行。在操作706处,tee工作器使用数据执行执行服务。在完成执行时,在操作707处,tee工作器将执行结果返回给网关106。在操作708处,网关106加密并且本地保存执行结果的副本,例如保存到ramfs121上。此外,网关106生成uuid并且将uuid与执行结果相关联。在操作709处,网关106将执行结果或与执行结果相关联的uuid返回给客户端设备101。注意,uuid可以通过映射表被映射到执行结果以及映射表可以通过网关106被维持。注意,一些操作可以是可选的,诸如用于tls握手和证明的操作。

图8是示出根据一个实施例的方法的示例的流程图。过程800可由可包括软件、硬件或其组合的处理逻辑执行。例如,过程800可以由图1的数据处理服务器(例如,主机)104的网关106执行。参考图8,在框801处,响应于在服务器的网关处通过网络从用户的用户设备接收的通过执行服务处理用户数据的请求,处理逻辑通过扫描用户数据以查找恶意代码来净化用户数据。在框802处,处理逻辑从多个tee工作器中选择tee工作器以及通过选择的tee工作器发起执行服务的执行。在框803处,处理逻辑从选择的tee工作器接收执行结果。在框804处,处理逻辑将执行结果发送到用户的用户设备。

在一个实施例中,请求是从与多个用户相关联的多个用户设备接收的多个请求中的一个,并且其中请求的每一个在多个tee工作器中的相应一个中被处理。在一个实施例中,在用户设备发送请求之前,通过用户设备证明网关是可信的。

在一个实施例中,处理逻辑还在调用用于客户端请求的执行服务之前使用网关注册执行服务。在另一实施例中,注册服务包括响应于从服务供应商接收服务的服务二进制文件和描述,验证服务二进制文件的完整性和真实性;扫描服务二进制文件以查找恶意代码;以及将服务二进制文件注册为多个tee工作器中的一个。在另一实施例中,在服务供应商向网关发送服务二进制文件之前,服务供应商将网关证明为可信的。

在一个实施例中,处理逻辑还从密钥管理服务器(kms)获得加密客户端数据的密钥。在另一实施例中,获得密钥包括:通过网关向kms发送获取密钥的请求;从kms接收密钥,其中kms生成对称密钥或密钥对,以及其中通过kms为网关签名密钥以验证密钥的真实性。在另一实施例中,在网关发送请求以及kms接收请求之前,处理逻辑还将kms证明为受信实体,以及kms将网关证明为受信实体。

在一个实施例中,网关对网关的网络流量实施认证、授权、审计和计费。在一个实施例中,网关提供可靠的、复制的、冗余的和容错的(raft)服务。在一个实施例中,网关是不可旁路的网关。

图9是示出可与本发明的一个实施例一起使用的数据处理系统的示例的框图。例如,系统1500可以表示执行上述过程或方法中的任何一个的上述数据处理系统中的任何一个,诸如,例如上述客户端设备或服务器,诸如,例如,如上所述的客户端101-102和服务器104。

系统1500可以包括许多不同的组件。这些组件可以被实现为集成电路(ic)、其部分、分立电子设备、或适用于诸如计算系统的主板或内插式卡的电路板的其它模块、或被实现为以其它方式并入计算系统的机箱内的组件。

还应当注意,系统1500旨在示出计算机系统的许多组件的高级视图。然而,应当理解的是,在某些实施方式中可以存在额外的组件,并且此外,在其他实施方式中可以出现所示组件的不同布置。系统1500可以表示台式机、笔记本电脑、平板计算机、服务器、移动电话、媒体播放器、个人数字助理(pda)、智能手表、个人通信器、游戏设备、网络路由器或集线器、无线接入点(ap)或中继器、机顶盒或其组合。此外,虽然仅示出单个机器或系统,但是术语“机器”或“系统”还应当被认为包括单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一个或多个的机器或系统的任何集合。

在一个实施例中,系统1500包括经由总线或互连1510连接的处理器1501、存储器1503和设备1505-1508。处理器1501可以表示单个处理器或其中包括单个处理器核或多个处理器核的多个处理器。处理器1501可表示一个或多个通用处理器,诸如微处理器、中央处理单元(cpu)等。更特别地,处理器1501可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实现其它指令集的处理器、或实现指令集的组合的处理器。处理器1501还可以是一个或多个专用处理器,诸如专用集成电路(asic)、蜂窝或基带处理器、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器、图形处理器、通信处理器、密码处理器、协处理器、嵌入式处理器或能够处理指令的任何其它类型的逻辑。

处理器1501可以是低功率多核处理器插槽,诸如超低电压处理器,其可以充当主处理单元和中央集线器,用于与系统的各种组件通信。这种处理器可以实现为片上系统(soc)。处理器1501被配置为执行用于执行本文所讨论的操作和步骤的指令。系统1500可进一步包括与可选的图形子系统1504通信的图形接口,图形子系统1504可包括显示控制器、图形处理器和/或显示设备。

处理器1501可与存储器1503通信,在一个实施例中,存储器1503可经由多个存储器设备实现以提供给定量的系统存储器。存储器1503可包括一个或多个易失性存储(或存储器)设备,诸如随机存取存储器(ram)、动态ram(dram)、同步dram(sdram)、静态ram(sram)或其他类型的存储设备。存储器1503可以存储包括由处理器1501或任何其它设备执行的指令序列的信息。例如,各种操作系统、设备驱动器、固件(例如,输入输出基本系统或bios)和/或应用程序的可执行代码和/或数据可以被加载到存储器1503中,并由处理器1501执行。操作系统可以是任何类型的操作系统诸如,例如来自微软操作系统、来自苹果的mac来自或诸如vxworks的其它实时或嵌入式操作系统。

系统1500还可包括io设备,诸如设备1505-1508,包括网络接口设备1505、可选的输入设备1506和其它可选的io设备1507。网络接口设备1505可包括无线收发器和/或网络接口卡(nic)。无线收发器可以是wifi收发器、红外收发器、蓝牙收发器、wimax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(gps)收发器)或其它射频(rf)收发器,或其组合。nic可以是以太网卡。

输入设备1506可包括鼠标、触摸板、触敏屏(其可与显示设备1504集成)、诸如指示笔的指示器设备、和/或键盘(例如,作为触敏屏的一部分显示的物理键盘或虚拟键盘)。例如,输入设备1506可包括耦合到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器可以例如使用多种触摸灵敏度技术中的任何一种检测其接触和移动或中断,多种触摸灵敏度技术包括但不限于电容性、电阻性、红外和表面声波技术,以及用于确定与触摸屏的一个或多个接触点的其它接近传感器阵列或其它元件。

io设备1507可包括音频设备。音频设备可包括扬声器和/或麦克风,以促进语音使能功能,诸如语音识别、语音复制、数字记录和/或电话功能。其它io设备1507还可包括通用串行总线(usb)端口、并行端口、串行端口、打印机、网络接口、总线桥(例如pci-pci桥)、传感器(例如,诸如加速度计、陀螺仪、磁力计、光传感器、罗盘、接近传感器等的运动传感器)或其组合。装置1507可以进一步包括成像处理子系统(例如,相机),其可包括光学传感器,诸如电荷耦合器件(ccd)或互补金属氧化物半导体(cmos)光学传感器,用于促进相机功能,诸如记录照片和视频剪辑。某些传感器可以经由传感器集线器(未示出)耦合到互连1510,而诸如键盘或热传感器的其它设备可以由嵌入式控制器(未示出)控制,这取决于系统1500的具体配置或设计。

为了提供诸如数据、应用程序、一个或多个操作系统等信息的持久存储,大容量存储器(未图示)也可耦合到处理器1501。在各种实施例中,为了使能更薄和更轻的系统设计以及改进系统响应性,该大容量存储器可经由固态装置(ssd)实现。然而,在其它实施例中,大容量存储可主要使用具有较少量ssd存储以充当ssd高速缓存的硬盘驱动器(hdd)实现,以在断电事件期间启用上下文状态和其它此类信息的非易失性存储,使得在系统活动的重新启动时可发生快速上电。此外,闪存设备可以例如经由串行外围接口(spi)耦合到处理器1501。该闪存设备可以提供系统软件的非易失性存储,包括基本输入/输出软件(bios)以及系统的其它固件。

存储设备1508可包括计算机可访问存储介质1509(也称为机器可读存储介质或计算机可读介质),在其上存储体现本文所述的方法或功能中的任何一个或多个的一组或多组指令或软件(例如,模块、单元和/或逻辑1528)。处理模块/单元/逻辑1528可以表示上述组件中的任何一个,诸如,例如图1的网关106或主机服务器104。在由数据处理系统1500执行处理模块/单元/逻辑1528期间,处理模块/单元/逻辑1528还可以完全或至少部分地驻留在存储器1503内和/或处理器1501内,存储器1503和处理器1501也构成机器可访问存储介质。处理模块/单元/逻辑1528还可以经由网络接口设备1505通过网络被发送或接收。

计算机可读存储介质1509还可用于持久地存储上述某些软件功能。尽管在示例性实施例中将计算机可读存储介质1509示出为单个介质,但是术语“计算机可读存储介质”应当被理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应当被理解为包括能够存储或编码用于由机器执行的指令集并且使得机器执行本公开的方法中的任何一个或多个的任何介质。术语“计算机可读存储介质”因此应被理解为包括但不限于固态存储器、光和磁介质、或任何其它非瞬态机器可读介质。

处理模块/单元/逻辑1528、组件和本文所述的其他特征可以被实现为分立硬件组件或者被集成在诸如asic、fpga、dsp或类似设备之类的硬件组件的功能中。另外,处理模块/单元/逻辑1528可以被实现为硬件设备内的固件或功能电路。此外,处理模块/单元/逻辑1528可以以硬件设备和软件组件的任何组合实现。

注意,尽管系统1500使用数据处理系统的各种组件被示出,但它不旨在表示互连组件的任何特定体系结构或方式;因为这些细节与本公开的实施例没有密切关系。还将理解的是,具有更少组件或可能更多组件的网络计算机、手持式计算机、移动电话、服务器和/或其它数据处理系统也可与本公开的实施例一起使用。

已经根据对计算机存储器内的数据位的操作的算法和符号表示呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作实质传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是导致期望结果的自相容操作序列。这些操作是需要对物理量进行物理操作的那些操作。

然而,应当记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从以上讨论中显而易见的是,应当理解的是,在整个说明书中,使用诸如所附权利要求书中所阐述的术语的讨论指的是计算机系统或类似电子计算设备的动作和处理,所述计算机系统或类似电子计算设备将计算机系统的寄存器和存储器内表示为物理(电子)量的数据操纵和变换成计算机系统存储器或寄存器或其它这样的信息存储、传输或显示设备内类似地表示为物理量的其它数据。

图中所示的技术可以使用在一个或多个电子设备上存储和执行的代码和数据实现。这样的电子设备使用计算机可读介质存储和传送(内部地和/或通过网络使用其他电子设备)代码和数据,所述计算机可读介质诸如非瞬态计算机可读存储介质(例如,磁盘、光盘、随机存取存储器、只读存储器、闪存设备、相变存储器)和瞬态计算机可读传输介质(例如,电、光、声或其他形式的传播信号,诸如载波、红外信号、数字信号)。

在前述附图中描述的过程或方法可以由包括硬件(例如,电路、专用逻辑等)、软件(例如,包括在非暂时性计算机可读介质上)或两者的组合的处理逻辑来执行。尽管以上根据一些顺序操作描述了过程或方法,但是应当理解的是,可以以不同的顺序执行所述的一些操作。此外,一些操作可以并行地而不是顺序地执行。

在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显然,在不背离如所附权利要求书中所阐述的本公开的更宽的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。

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