一种封闭容器生成方法、装置及设备转让专利

申请号 : CN201810037676.6

文献号 : CN108319872B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢师王瀛杨谋鹏宋诗雨李文涛

申请人 : 湖北省楚天云有限公司

摘要 :

本申请公开了一种封闭容器生成方法、装置及设备。该封闭容器生成方法中,当接收到容器创建指令后,创建容器;获取所述容器自生成的密钥,并将所述密钥存储于为所述容器分配的内存中;利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘;为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器,其中,所述访问权限仅限采用所述容器部署的应用自身访问。本申请避免了服务器本身或其余用户从封闭容器中提取应用程序相关文件;以保证创建容器后,除了通过应用本身的接口,其它任何方式都无法获取容器内资料,以实现容器完全对外封闭,使容器内部应用本身的源码包不被外界截取,使应用本身得到最大限度的安全保护。

权利要求 :

1.一种封闭容器生成方法,包括:当接收到容器创建指令后,创建容器,并为该容器分配磁盘、内存以及网络资源;

所述容器创建后,获取所述容器生成的密钥,并将所述密钥存储于为所述容器分配的内存中;

利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘;

为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器,其中,所述访问权限仅限采用所述容器部署的应用自身访问。

2.根据权利要求1所述的方法,还包括:当接收到自身访问请求时,通过所述封闭容器的接口获取所述内存中存储的密钥;

根据所述密钥对所述磁盘进行解密,以实现对所述封闭容器的访问。

3.根据权利要求1所述的方法,还包括:当接收到外界访问请求时,对用于部署第三方应用的容器进行访问。

4.根据权利要求1所述的方法,还包括:当接收到容器删除指令时,销毁所述封闭容器。

5.根据权利要求4所述的方法,当接收到容器删除指令时,销毁所述封闭容器,包括:通过所述封闭容器的接口清除所述封闭容器部署的应用;

格式化所述磁盘;

回收所述内存。

6.一种封闭容器生成装置,包括:创建模块,用于当接收到容器创建指令后,创建容器,并为该容器分配磁盘、内存以及网络资源;

密钥存储模块,用于获取所述容器创建后生成的密钥,并将所述密钥存储于为所述容器分配的内存中;

加密模块,用于利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘;

生成模块,用于为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器,其中,所述访问权限仅限采用所述容器部署的应用自身访问。

7.根据权利要求6所述的装置,还包括:密钥获取模块,用于当接收到自身访问请求时,通过所述封闭容器的接口获取所述内存中存储的密钥;

容器访问模块,根据所述密钥对所述磁盘进行解密,以实现对所述封闭容器的访问。

8.根据权利要求6所述的装置,还包括:第三方访问模块,用于当接收到外界访问请求时,对用于部署第三方应用的容器进行访问。

9.根据权利要求6所述的装置,还包括 :容器销毁模块,当接收到容器删除指令时,销毁所述封闭容器。

10.根据权利要求9所述的装置,所述容器销毁模块,具体用于:通过所述封闭容器的接口清除所述封闭容器部署的应用;格式化所述磁盘;回收所述内存。

11.一种封闭容器生成设备,包括:存储器,存储封闭容器生成程序;

通讯接口,接收容器创建指令;

处理器,在通讯接口接收到容器创建指令后,调用存储器中存储的封闭程序生成程序,并执行:当接收到容器创建指令后,创建容器,并为该容器分配磁盘、内存以及网络资源;

获取所述容器创建后生成的密钥,并将所述密钥存储于为所述容器分配的内存中;

利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘;

为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器,其中,所述访问权限仅限采用所述容器部署的应用自身访问。

说明书 :

一种封闭容器生成方法、装置及设备

技术领域

[0001] 本申请涉及通信技术领域,尤其涉及一种封闭容器生成方法、装置及设备。

背景技术

[0002] 目前,云计算技术可以通过互联网的相关服务的增加、使用和交付模式,提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池,这些资源能够被快速提供,从而实现高速的运算能力,并且用户可以按照自己的需求进行运算,只需投入很少的管理工作。
[0003] 随着云计算技术的发展,云平台本身采用容器技术部署应用,而容器依附在计算机集群中,因此,为了最大限度地保护应用本身不受侵害,容器本身需要绝对安全,应用本身的源码包也需做到无法被外界截取。
[0004] 而现有技术中,容器在创建后,通过查找容器宿主机,可检索到容器所在物理位置,进而可获取到容器内部的资料,例如,应用在容器内部署后,应用可执行文件包、应用所需的依赖及应用启动所产生的启动文件等均可通过查找容器宿主机,而被容器外部环境获取,使应用本身安全存在隐患,特别是应用可执行的文件包可能被截取。

发明内容

[0005] 本说明书实施例提供一种封闭容器生成方法、装置及设备,用以保证容器在被创建后,除应用本身的出口,其它任何方式都无法获取容器内资料,实现容器完全对外封闭。
[0006] 本说明书实施例提供的一种封闭容器生成方法,所述方法包括:
[0007] 当接收到容器创建指令后,创建容器;
[0008] 获取所述容器生成的密钥,并将所述密钥存储于为所述容器分配的内存中;
[0009] 利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘;
[0010] 为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器,其中,所述访问权限仅限采用所述容器部署的应用自身访问。
[0011] 基于同样思想,本说明书实施例还提供的一种封闭容器生成装置,所述装置包括:
[0012] 创建模块,用于当接收到容器创建指令后,创建容器;
[0013] 密钥获取模块,用于获取所述容器生成的密钥,并将所述密钥存储于为所述容器分配的内存中;
[0014] 加密模块,用于利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘;
[0015] 生成模块,用于为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器,其中,所述访问权限仅限采用所述容器部署的应用自身访问。
[0016] 此外,本说明书实施例还提供的一种封闭容器生成设备,包括:
[0017] 存储器,存储封闭容器生成程序;
[0018] 通讯接口,接收容器创建指令;
[0019] 处理器,在通讯接口接收到容器创建指令后,调用存储器中存储的封闭程序生成程序,并执行:
[0020] 当接收到容器创建指令后,创建容器;
[0021] 获取所述容器生成的密钥,并将所述密钥存储于为所述容器分配的内存中;
[0022] 利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘;
[0023] 为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器,其中,所述访问权限仅限采用所述容器部署的应用自身访问。
[0024] 本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0025] 当云平台采用容器技术部署应用时,需要预先创建封闭容器,封闭容器生成设备接收到容器创建指令后,通过为封闭容器分配内存与磁盘等存储资源,同时将该封闭容器生成的密钥存储于内存中,并对磁盘进行加密,并赋予仅允许在该容器中部署的应用,才能访问内存及加密磁盘的权限;使封闭容器,除应用本身的出口,任何第三方途径都无法获取磁盘内的资料,实现容器完全对外隔离,避免了其余用户从封闭容器中提取应用程序相关文件,以保证封闭容器源码包无法被外界截取,同时,宿主机在完成封闭容器的创建操作后,也无法直接获取磁盘信息,使应用本身得到最大限度的安全保护。
[0026] 此外,本申请还可以通过销毁所述封闭容器,以保证应用本身不被窃取;通过容器接口进行访问,使应用无法直接操作磁盘和内存,进一步提高了磁盘信息的安全性,同时不阻止应用本身访问其它第三方存储的机制,保证了应用部署的灵活性。

附图说明

[0027] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0028] 图1为本说明书实施例提供的封闭容器生成方法所基于的架构示意图;
[0029] 图2为本说明书实施例提供的封闭容器生成过程示意图;
[0030] 图3为本说明书实施例提供的另一种封闭容器生成过程示意图;
[0031] 图4为本说明书实施例提供的在实际应用中的封闭容器生成流程示意图;
[0032] 图5为本说明书实施例提供的用于封闭容器生成流程的应用访问过程示意图;
[0033] 图6为本说明书实施例提供的用于封闭容器生成流程的容器销毁过程示意图;
[0034] 图7为本说明书实施例提供的应用部署装置结构示意图。

具体实施方式

[0035] 为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0036] 在本说明书中的一个或多个实施例中,封闭容器生成的方法可以应用到对容器安全需求较高的容器创建工作。
[0037] 具体地,本实施例所述的容器是应用服务器中位于组件和平台之间的接口集合,本实施例特指云平台下为启动应用而构建的容器,一个容器对应且只对应一个应用。
[0038] 所述应用指可供企业及个人使用的计算机软件。用户可以利用容器技术部署应用包,将应用本身部署于容器中,其中,部署的应用包可以包括应用可执行文件包、应用所需的依赖以及应用启动所产生的启动文件等。
[0039] 所述封闭容器可以是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,例如JAVA中Tomcat容器。具体的,本实施例中所述的封闭容器不同于其他容器,其不仅配置有用于管理应用程序完整生命周期的安全机制,还配置于仅限采用该容器部署的应用自身访问的访问权限,具备很高的安全性能,从而保证了容器本身从生成阶段到销毁阶段整个生命周期内的安全运行。
[0040] 在本说明书的一个或多个实施例中,所述封闭容器的生成是在进行应用部署的过程中完成的,可采用如图1所示的架构。
[0041] 所述架构包括客户端和服务器端。其中,所述的客户端用于与服务器端进行信息交互,进而实现相应的功能。客户端可以运行于PC(Personal Computer)端、移动终端和可穿戴设备等终端,这里并不应构成对本申请的限定。
[0042] 所述的服务器端,可以是云端服务器,也可以采用分布式集群的架构;用于接收客户端的访问请求,并根据访问请求执行相应的计算,同时将采用容器技术部署应用相关的业务分发反馈至客户端。
[0043] 下面基于如图1所示的架构,来描述本说明书实施例中提供的封闭容器生成方法的具体过程,在图1中至少可包括:客户端和服务器端。
[0044] 本说明书实施例中提供一种封闭容器生成方法,可以由服务器端执行,如图2所示,具体包括以下步骤:
[0045] 步骤S201:当接收到容器创建指令后,创建容器。
[0046] 本实施例中,所述封闭容器生成方法可以由接收的容器创建指令驱动开启。其中,封闭容器的生成是在采用容器技术进行应用部署的操作过程中完成的,用户可以通过点击客户端的预设开始按钮,使服务器进行应用部署操作。在进行应用部署的过程中,首先需要通过在服务器中生成一个位于组件和平台之间的封闭接口集合,也就是封闭容器,来启动部署的应用,一个容器仅部署一个应用,即一个容器内部署应用的数量为一个。创建的容器将需要部署的应用包封装起来,以与服务器中的其他信息隔离开来。
[0047] 进一步的,在进行应用部署时,由于应用与容器一一对应,可选的,可以根据部署应用中的标识信息来确定对应需要创建的容器,并生成对应容器的创建指令。进一步的,服务器会接收到该容器创建指令,并根据该容器创建指令在服务器中通过公用方法预先创建一个容器,例如JAVA中的Tomcat容器,并为该容器分配磁盘、内存以及网络资源等容器内启动应用所必须的条件,其中,部署的应用包可存放于该容器的磁盘中。
[0048] 步骤S202,获取所述容器生成的密钥,并将所述密钥存储于为所述容器分配的内存中。
[0049] 具体的,在容器创建完成后,为了更大限度的保护应用本身的安全性,与部署的应用本身对应创建的容器本身会自动启动密钥生成脚本,生成密钥,其中,不同的应用创建不同的容器,生成不同的密钥。优选的,该密钥可以用于对部署的应用包文件进行加密,增加应用本身的安全性。进一步的,启动密钥生成脚本生成的密钥可以采用对称算法生成对称密钥,也可以采用非对称算法生成非对称密钥。其中,对称密钥仅包括一个私钥,要求发送和接收数据的双方必使用相同的密钥对明文进行加密和解密运算,也就是采用同一密钥对应用包文件进行加密和解密运算,优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难;非对称密钥包括一对公钥和私钥,公钥信息与私钥信息是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),使用一对密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥,信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密,或者信息发送者用私钥去加密,而信息接收者则用公钥去解密,非对称密钥机制灵活,但加密和解密速度却比对称密钥慢得多。
[0050] 本实施例中,在容器创建完成后,容器本身会自动启动密钥生成脚本,生成密钥信息,优选的,本实施例中生成的密钥可以采用非对称算法生成的非对称密钥。进一步的,获取容器本身自动生成的密钥,并将该密钥信息存储于为该容器创建时分配的内存资源中,便于后续对该密钥信息进行访问。
[0051] 步骤S203,利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘。
[0052] 具体的,在采用容器技术部署应用时,部署的应用包可以存放于为该容器创建时分配的磁盘中,其中,部署的应用包可以包括应用可执行文件包、应用所需的依赖以及应用启动所产生的启动文件。在获取到容器自动生成的密钥时,为了进一步保护应用本身的安全性,需要利用该获取的密钥对为容器创建时分配的磁盘进行加密,得到加密后的磁盘,也就是对磁盘中存放的部署的应用包中的应用可执行文件包、应用所需的依赖以及应用启动所产生的启动文件等应用文件进行加密,使容器宿主机在容器创建完成后,也无法直接获取磁盘中的应用包信息,有效的保障了应用本身的安全性。
[0053] 步骤S204,为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器。
[0054] 具体的,将密钥存入内存,并对磁盘进行加密后,为了进一步保护应用的安全性,本实施例还可以为内存及加密磁盘配置访问权限,也就是为创建的容器配置访问权限,以限制可以访问该容器的对象。其中,访问权限仅限采用所述容器部署的应用自身访问。进一步的,可以限制容器的整个生命周期中各个阶段分别对应的访问权限;所述容器的生命周期包括创建容器实例阶段、容器启动阶段、容器停止阶段及容器删除阶段。本实施例中可以对上述各个阶段配置不同的访问权限,以更好的匹配不同使用场景下的使用需求。
[0055] 在一些实施例中,为了保证容器中的内部资料与服务器中其余服务相互独立,互不干预,可以将访问权限配置为仅允许采用该容器部署的应用自身访问,从而使该容器变为封闭容器,除应用自身的出口,任何第三方途径都无法获取磁盘内的资料,实现容器完全对外封闭,为该封闭容器中的内容提供最大限度的保护。
[0056] 在一些实施例中,步骤S202和步骤S203的执行顺序确定,而步骤S204的执行顺序可以在步骤S203之后,也可以在步骤S202之前,也就是可以先生成密钥存储到内存中,并对磁盘进行加密,在为内存与磁盘配置访问权限,也可以先为容器中的内存与磁盘配置访问权限,再生成密钥存储到内存中,并对磁盘进行加密。
[0057] 本说明书实施例中在上述实施例的基础上提供另一种封闭容器生成过程,如图3所示,具体包括以下步骤:
[0058] 步骤S301,当接收到容器创建指令后,创建容器。
[0059] 步骤S302,获取所述容器生成的密钥,并将所述密钥存储于为所述容器分配的内存中。
[0060] 步骤S303,利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘。
[0061] 步骤S304,为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器。
[0062] 步骤S305,判断是否接收到自身访问请求。当接收到自身访问请求时,执行步骤S306;当接收到外界访问请求时,执行步骤S307。
[0063] 具体的,应用访问包括两种情况,一种是应用对容器进行访问,属于自身访问;一种是应用对第三方存储进行访问,属于外界访问。
[0064] 步骤S306,通过所述封闭容器的接口获取所述内存中存储的密钥,根据所述密钥对所述磁盘进行解密,以实现对所述封闭容器的访问。
[0065] 具体的,在采用该封闭容器进行应用部署的过程中,应用需要访问封闭容器内存放的资料时,服务器接收到自身访问请求时,将该自身访问请求发送给该封闭容器的容器接口,判断是否为对应的应用进行访问,其他应用进行的访问会得到限制,在确定为对应的应用进行访问时,容器接口获取该封闭容器的内存中预先存储的密钥,并通过该密钥对磁盘信息进行解密,得到解密后的部署的应用包,也就是得到应用可执行文件包、应用所需的依赖以及应用启动所产生的启动文件等应用文件,实现对该封闭容器的访问。进一步的,应用访问容器自身磁盘及内存,实际上经过的是容器接口进行访问,应用本身无法直接操作磁盘和内存,进一步保障了应用包的安全性。
[0066] 步骤S307,对用于部署第三方应用的容器进行访问。
[0067] 具体的,在进行应用部署的过程中,需要访问第三方应用对应的数据信息时,服务器会接收到外界访问请求,此时不需要通过容器接口,可以直接对其他容器所占用的存储空间对第三方的数据信息进行访问。其中,第三方应用的数据信息可以包括数据库、第三方的对象存储及缓存存储等。进一步的,封闭容器不阻止应用本身访问其它第三方存储的机制,有效的保障了应用部署的灵活性。
[0068] 步骤S308,当接收到容器删除指令时,销毁所述封闭容器。
[0069] 具体的,在应用部署完成,或应用文件停止运行时,会对部署的应用包和运行的应用文件进行销毁,进一步的需要对该应用对应的封闭容器进行销毁。需要进行销毁时,服务器会接收到容器删除指令,并自动触发封闭容器的销毁机制,封闭容器会自发的销毁对应的应用本身,有效避免了其他对象对应用包内容的窃取。
[0070] 进一步的,当接收到容器删除指令时,销毁所述封闭容器,包括:通过所述封闭容器的接口清除所述封闭容器部署的应用;格式化所述磁盘;回收所述内存。
[0071] 进一步的,自动触发封闭容器的销毁机制后,服务器首先通过该封闭容器的接口清除在该封闭容器中部署的应用,具体的,先停止该部署的应用,然后删除该应用本身的安装包及应用启动所依赖的组件包,也就是删除所有的应用可执行文件包、应用所需的依赖以及应用启动所产生的启动文件等应用文件,删除完成后,对该封闭容器中的磁盘进行格式化,然后回收内存,完毕后销毁该封闭容器。进一步的,该封闭容器通过对其内部部署的应用状况来对容器进行销毁,从而有效的保障了应用本身。
[0072] 基于上述内容,在实际应用中,一个完整的封闭容器生成过程可如如图4所示。其中,服务器优选为服务云平台(Platform-as-a-Service,PaaS),PaaS云平台是一种提供应用服务引擎,将软件研发的平台作为服务的云计算平台,如应用程序接口服务或应用运行时服务,用户基于这些服务构建业务应用。具体的,如图4所示,包括以下步骤:
[0073] 容器创建:PaaS云平台通过公用方法创建容器,并为容器分配磁盘、内存及网络资源等容器内应用启动所必须的条件。
[0074] 生成密钥存储:容器构建完成后,容器本身自动启动密钥生成脚本,生成密钥,密钥将储存于为容器分配的内存段内。
[0075] 加密磁盘:容器启动对分配的磁盘区块加密。
[0076] 应用访问:加密完成后,所有对容器磁盘的访问,必须先获取密钥,通过密钥访问。
[0077] 容器销毁:PaaS云平台发出删除指令,删除应用时,清除应用,格式化磁盘,回收内存,并清除容器。
[0078] 在上述实施例的基础上,本实施例还提供了一种应用访问逻辑,如图5所示,该应用访问逻辑具体包括:
[0079] 对容器进行访问:容器接口接收应用访问请求时,于内存中获取密钥;容器取得密钥后,通过密钥获取磁盘访问权,执行应用的访问操作;应用本身无特殊处理即可访问容器,容器与应用为一对一关系。
[0080] 对第三方进行访问:应用对第三方存储的访问,包含数据库、第三方的对象存储及缓存存储等,无需经过容器接口。
[0081] 在上述实施例的基础上,本实施例还提供了一种容器销毁逻辑,如图6所示,该容器销毁逻辑具体包括:
[0082] PaaS云平台发起容器删除指令;
[0083] 容器接口先清除应用,具体为先停止应用,然后删除应用本身的安装包及应用启动所依赖的组件包;
[0084] 删除成功后,对磁盘格式化,然后回收内存;
[0085] 完毕后销毁容器。
[0086] 此外,本说明书实施例还提供一种封闭容器生成装置,如图7所示,所述装置包括:
[0087] 创建模块701,用于当接收到容器创建指令后,创建容器;
[0088] 密钥存储模块702,用于获取所述容器生成的密钥,并将所述密钥存储于为所述容器分配的内存中;
[0089] 加密模块703,用于利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘;
[0090] 生成模块704,用于为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器,其中,所述访问权限仅限采用所述容器部署的应用自身访问。
[0091] 在上述实施例的基础上,所述装置还包括,密钥获取模块,用于当接收到自身访问请求时,通过所述封闭容器的接口获取所述内存中存储的密钥;容器访问模块,用于根据所述密钥对所述磁盘进行解密,以实现对所述封闭容器的访问。
[0092] 在上述实施例的基础上,所述装置还包括,第三方访问模块,用于当接收到外界访问请求时,对部署第三方应用的容器进行访问。
[0093] 在上述实施例的基础上,所述装置还包括,容器销毁模块,当接收到容器删除指令时,销毁所述封闭容器。
[0094] 在上述实施例的基础上,所述容器销毁模块,具体用于:通过所述封闭容器的接口清除所述封闭容器部署的应用;格式化所述磁盘;回收所述内存。
[0095] 此外,本说明书实施例在还提供一种封闭容器生成设备,包括:
[0096] 存储器,存储封闭容器生成程序;
[0097] 通讯接口,接收容器创建指令;
[0098] 处理器,在通讯接口接收到容器创建指令后,调用存储器中存储的封闭程序生成程序,并执行:
[0099] 当接收到容器创建指令后,创建容器;
[0100] 获取所述容器生成的密钥,并将所述密钥存储于为所述容器分配的内存中;
[0101] 利用所述密钥对为所述容器分配的磁盘进行加密,得到加密后的磁盘;
[0102] 为所述内存及所述加密后的磁盘配置访问权限,生成封闭容器,其中,所述访问权限仅限采用所述容器部署的应用自身访问。
[0103] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和介质类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,这里就不再一一赘述。
[0104] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤或模块可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0105] 在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0106] 控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0107] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体地,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0108] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0109] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0110] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0111] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0112] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0113] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0114] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0115] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信编号和载波。
[0116] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0117] 本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0118] 本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0119] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0120] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利范围之中。