具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,kubernetes提供的容器调度方案中,调度工作会与应用服务争抢计算资源,还会带来网络吞吐下降及网络延时等问题,影响应用服务的访问性能。为此,本申请的一些实施例中:对容器调度系统的架构进行了改进,其中,工作节点中的网路代理组件可在目标应用服务的创建过程中,为所述目标应用服务确定虚拟访问地址以及转发规则;并通过所述管控通道将所述目标应用服务对应的虚拟访问地址以及转发规则配置到所述物理网卡中;基于此,装配在工作节点上的物理网卡则可在接收到针对所述目标应用服务的访问请求的情况下,按照所述目标应用服务对应的转发规则,将所述目标应用服务的虚拟访问地址转换为物理地址,以将所述访问请求调度至所述物理地址下的目标容器组POD。据此,本申请实施例中,针对容器云平台的应用服务访问请求,可由物理网卡执行调度工作,这样调度工作不再需要与应用服务争抢工作节点上的计算资源,另外,物理网卡具有更高的转发性能,这可有效提高网络吞吐、降低网络延时,从而,可改善容器云平台的应用服务访问性能。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的一种容器调度系统的结构示意图。如图1所示,该系统包括:工作节点10和物理网卡20,其中,物理网卡20插接在工作节点10上。
以下先对容器调度过程中涉及到的几个概念进行说明。
容器:是一种轻量级、可移植、自包含的软件打包技术,它使得应用服务可以在几乎任何地方以相同方式运行。
虚拟访问地址:作为应用服务的虚拟访问入口,例如,在Kubernetes网络结构中,虚拟访问地址可采用集群cluster IP。
容器组:Pod是容器调度系统中部署应用或服务的最小的基本单位。一个Pod可封装多个容器(也可以只有一个容器)、可存储资源、可拥有一个独立的网络IP以及管理控制容器运行方式的策略选项。对于一个应用服务来说,可存在一个或多个POD为其提供支持。
物理网卡:本实施例中的物理网卡是指具有独立的处理器,能够支持编程定制化功能的智能网卡。
其它概念将在后文中进行穿插说明。
在容器云平台上,可包含若干集群。在集群中,至少可包含两类节点,控制节点(monitor)和工作节点10。其中,控制节点可作为集群状态的管理者,维护整个集群的状态;工作节点10,可与控制节点通信,是集群中承担工作负载的节点,可以是虚拟机也可以是物理机。目前,一个集群中可运行若干应用服务,支持同一应用服务的一组POD可抽象为一个服务service,service可为应用服务提供统一的访问入口,其中,一个service对应的多个POD可能分布在多个工作节点上。
为便于描述,本实施例中,将从针对目标应用服务进行一次容器调度过程的维度进行技术方案的描述,因此,图1中未对容器调度系统中的工作节点10和物理网卡20进行数量上的限定,其中,目标应用服务可以是集群中运行的若干应用服务中的任意一个。应当理解的是,容器云平台上的各个工作节点10上都可部署本实施例提供的容器调度方案。
基于此,本实施例中,工作节点10上的网路代理组件11,可在目标应用服务的创建过程中,为目标应用服务确定虚拟访问地址以及转发规则。网路代理组件11的这部分工作内容与其在现有容器调度方案中的工作内容一致。以kubernetes环境为例,网路代理组件11(kube-proxy)可基于不同的转发技术(用户态转发/iptable/ipvs等),为目标应用服务生成合适的转发规则。其中,转发规则中包含目标应用的虚拟访问地址与支持目标应用的至少一个容器组30的物理地址之间的转发关系。虚拟访问地址可作为前文中service为应用服务提供的统一的访问入口。
本实施例中,可在网路代理组件11和物理网卡20之间部署管控通道,管控通道可尽量采用场景的流控协议,比如openflow、P4、eBPF等协议,当然,本实施例并不限于此,网路代理组件11和物理网卡20之间还可约定其它通行协议。
基于此,网路代理组件11可通过管控通道将目标应用服务对应的虚拟访问地址以及转发规则配置到物理网卡20中。其中,管控通道可采用加密通道的形式,这样,网路代理组件11可通过管控通道,将目标应用服务对应的虚拟访问地址以及转发规则加密传输至物理网卡20中,以保证目标应用服务对应的虚拟访问地址以及转发规则的安全性。另外,网路代理组件11还可采用签名、加密等技术,为目标应用服务对应的虚拟访问地址以及转发规则配置鉴权信息,并将鉴权信息同步提供给物理网卡20,对物理网卡20来说,则可对网路代理组件11进行鉴权;在网路代理组件11鉴权成功的情况下,允许网路代理组件11配置和/或更新目标应用服务对应的虚拟访问地址以及转发规则。
至此,网路代理组件11的工作结束,不再参与后续的调度工作。可知,本实施例中,工作节点10中的网路代理组件11只需要完成一部分管控面的工作即可,而不需要承担具体的调度工作,从而可更专注于为应用服务提供资源支持,这可有效改善工作节点10上的资源争抢问题,提高针对应用服务的资源使用率,进而改善应用服务的运行性能。
进一步,本实施例中物理网卡20还可内置安全审计模块,若确定网路代理组件11提供的转发规则存在安全问题,例如,有可能造成大的功能障碍等,则可拒绝网路代理组件11配置和/或更新目标应用服务对应的转发规则。其中,安全审计模块中的处理逻辑可根据实际需要进行自定义。
本实施例中,可预先为物理网卡20编写管控面程序,并写入物理网卡20中,以使物理网卡20具备支持按照转发规则进行容器调度的能力。这样,物理网卡20可在接收到针对目标应用服务的访问请求的情况下,按照目标应用服务对应的转发规则,将目标应用服务的虚拟访问地址转换为物理地址;将访问请求调度至物理地址下的目标容器组30,以访问运行在目标容器组POD中的目标应用服务。
随着物理网卡20的处理能力越来越高,物理网卡20执行的调度工作的效率也可越来越高,经过实践发现,应用本实施例提供的容器调度方案后,物理网卡20的转发性能相对于纯IP直访的延时损失极低,甚至接近于0,这也验证了本实施例提供的容器调度方案对应用服务访问性能的提升作用。
其中,本实施例中不限于发起访问请求的发起方的物理实现、位置等属性,发起方可以是网络中的任意POD、工作节点10或其它安装有相关应用程序app的客户端等。在集群中,目标应用服务的虚拟访问地址可指向至少一个工作节点,因此,发起方基于目标应用服务的虚拟访问地址发起访问请求后,该访问请求将首先被调配至虚拟访问地址指向的至少一个工作节点中的某一个目标节点(对应于图1中的工作节点10),该调配过程可采用传统的集群内负载均衡方式,本实施例在此不再详述。之后,目标节点可按照上述的容器调度方案,利用物理网卡在节点内实现从sevice到POD的访问,以完成对访问请求的调度。
图2为本申请一示例性实施例提供的一种访问过程的逻辑示意图。参考图2,在确定访问请求流向工作节点10的情况下,发起方可向本实施例中的物理网卡20发起针对目标应用服务的访问请求,例如,发起方和物理网卡20之间可采用五元组的形式区分不同会话,这样,发起方可在针对目标应用服务的访问请求中携带五元组,其中,五元组中的源地址(IP/端口)采用发起方的物理地址,目的地址(IP/端口)则采用目标应用服务对应的虚拟访问地址。
在此基础上,物理网卡20可通过访问请求中携带的目的地址来判断该访问请求是否为针对目标应用服务的访问请求,如果是,则可按照目标应用服务对应的转发规则,将目标应用服务的虚拟访问地址转换为物理地址;将访问请求调度至物理地址下的目标容器组30,以访问运行在目标容器组30中的目标应用服务。至于容器组内的各个容器,则可通过物理网卡的网关功能实现调度,最终,访问请求可被调度至工作节点10中支持目标应用服务的容器上。
综上,本实施例中,对容器调度系统的架构进行了改进,其中,工作节点10中的网路代理组件11可在目标应用服务的创建过程中,为所述目标应用服务确定虚拟访问地址以及转发规则;并通过所述管控通道将所述目标应用服务对应的虚拟访问地址以及转发规则配置到所述物理网卡20中;基于此,装配在工作节点10上的物理网卡20则可在接收到针对所述目标应用服务的访问请求的情况下,按照所述目标应用服务对应的转发规则,将所述目标应用服务的虚拟访问地址转换为物理地址,以将所述访问请求调度至所述物理地址下的目标容器组30。据此,本申请实施例中,针对容器云平台的应用服务访问请求,可由工作节点10中的网路代理组件11执行管控面工作,由物理网卡20执行调度工作,这样调度工作不再需要与应用服务争抢工作节点10上的计算资源,另外,物理网卡20具有更高的转发性能,这可有效提高网络吞吐、降低网络延时,从而,通过这种软硬件紧密协作的方式,可有效改善容器云平台的应用服务访问性能。
在上述或下述实施例中,正如前文提及的工作节点上装配有物理网卡,这样,工作节点上的一个容器组内的多个容器可共用一个物理网卡,因此,一个容器组可作为一个整体对外提供一个物理地址。基于此,容器调度系统中还可包含资源管理服务器40,资源管理服务器40可在目标应用服务的创建过程中,为目标应用服务分配虚拟访问地址;确定用于支持目标应用服务的至少一个容器组30的物理地址;将目标应用服务的虚拟访问地址以及至少一个容器组30的物理地址提供给工作节点10中的网路代理组件11,当然,资源管理服务器40还可将目标应用服务的虚拟访问地址以及至少一个容器组30的物理地址提供给集群中的其它工作节点中的网路代理组件。资源管理服务器40的这部分工作内容可与其在现有容器调度方案中的工作内容一致。例如,在kubernetes环境中,资源管理服务器40可以是apisever,资源管理服务器40可对应用服务进行发现,对网络中的容器/容器组的信息进行监听并为应用服务分配唯一入口等,apiserver可为每个service创建一个clusterIP,作为相应应用服务的虚拟访问地址。
在此基础上,网路代理组件11可在为目标应用服务确定虚拟访问地址以及转发规则的过程中:根据目标应用服务对应的虚拟访问地址和至少一个容器组30的物理地址,构建目标应用服务对应的转发规则,也即是,建立目标应用服务对应的虚拟访问地址和至少一个容器组30的物理地址之间的转发关系。实际应用中,应用服务的实现模式可能有多种:用户态转发模式、iptable模式、IPVS模式等,本实施例中,网路代理组件11可支持各种实现模式,在不同的实现模式下,网路代理组件11构建出的转发规则存在差别而已。
本实施例中,网路代理组件11可监听资源管理服务器40提供的目标应用服务对应的至少一个容器组30的信息,若监听到所述资源管理服务器40提供的所述目标应用服务对应的至少一个容器组30发生变化,则可根据变化后的容器组30更新所述目标应用服务在所述物理网卡20中的对应的转发规则。也即是,网路代理组件11可通过侦听资源管理服务器40的消息,确定最新的转发规则,并与物理网卡20中已有的转发规则进行比对,可通过增/删等操作更新物理网卡20中的转发规则,以使物理网卡20中获得转发规则与资源管理服务器40监听到的信息保持适配,进而保证调度的准确性。
综上,本实施例中,网路代理组件11可对物理网卡20中目标应用服务的虚拟访问地址和转发规则进行管控,在转发规则发生变化的情况下,及时更新物理网卡20,以保证调度工作的准确性。
在上述或下述实施例中,容器调度系统还可支持目标应用服务的回包过程。图3为本申请一示例性实施例提供的一种回包过程的逻辑示意图。物理网卡20在成功将针对目标应用服务的访问请求调度至一个容器组30后,该容器组30将返回回流数据包,回流数据包需要准确转发至该访问请求的发起方。
本实施例中,在前述的访问过程中,物理网卡20可记录一次访问请求对应的五元组,在此基础上,参考图3,与访问过程对称地,在回包过程中,物理网卡20和目标容器组30之间也可采用五元组的形式区分不同会话,其中,目标容器组30可在回流数据包中携带五元组,其中,五元组中的源地址(IP/端口)采用目标容器组30的物理地址,目的地址(IP/端口)则采用访问请求的发起方对应的物理地址。
基于此,物理网卡20可接收目标容器组30响应访问请求所产生的回流数据包;将回流数据包中的源访问地址转换为目标应用服务对应的虚拟访问地址后,将回流数据包返回给访问请求的发起方。其中,目标容器组30是指响应本次访问请求的容器组30,这样,物理网卡20和目标容器组之间
其中,对于物理网卡20来说,其接收到的回流数据包可能是多个,为此,物理网卡20需要区分回流数据包所对应的应用服务。本实施例中,物理网卡20可在接收到一个回流数据包情况下,基于在访问过程中记录的访问请求对应的五元组中的源地址,对回流数据包中携带的目的地址进行适配,从而确定出回流数据包所对应的访问请求,也即是,回流数据包所属的会话。这样,针对目标应用服务,物理网卡20可解析目标容器组30发送的数据包;若数据包的包头信息中包含的目的地址为发起方的物理地址,则确定数据包为目标容器组30响应访问请求所产生的回流数据包。
综上,本实施例中,物理网卡可基于应用服务对应的虚拟访问地址和转发规则,将回流数据包中的源地址(物理地址)转换回虚拟访问地址,从而再使用基于虚拟访问地址的五元组与访问请求的发起方之间进行回包会话,这是的物理网卡可将接收到的回流数据包准确转发至访问请求的发起方,保证应用服务的访问性能。
图4为本申请另一示例性实施例提供的一种容器调度方法的流程示意图,该方法可由前述的容器调度系统执行,在该容器调度系统中,软硬件紧密协作。参考图4,该方法包括:
步骤400、在目标应用服务的创建过程中,为目标应用服务确定虚拟访问地址以及转发规则;
步骤401、通过管控通道将目标应用服务对应的虚拟访问地址以及转发规则配置到物理网卡中;
步骤402、在物理网卡中,按照转发规则,将针对目标应用服务的访问请求调度至虚拟访问地址关联的物理地址下的目标容器组POD,以访问运行在目标容器组POD中的目标应用服务。
在一可选实施例中,该方法可包括:
在目标应用服务的创建过程中,利用容器调度系统中的资源管理服务器为目标应用服务分配虚拟访问地址并确定用于支持目标应用服务的至少一个容器组POD的物理地址;
根据目标应用服务对应的虚拟访问地址和至少一个容器组POD的物理地址,构建目标应用服务对应的转发规则。
在一可选实施例中,该方法还可包括:
若监听到资源管理服务器提供的目标应用服务对应的至少一个容器组POD发生变化,则根据变化后的容器组POD更新目标应用服务在物理网卡中的对应的转发规则。
在一可选实施例中,该方法还可包括:
在物理网卡中,接收目标容器组POD响应访问请求所产生的回流数据包,并将回流数据包中的源访问地址转换为目标应用服务对应的虚拟访问地址后,将回流数据包返回给访问请求的发起方。
在一可选实施例中,该方法还可包括:
在物理网卡中,解析目标容器组POD发送的数据包;
若数据包的包头信息中包含的目的地址为发起方的物理地址,则确定数据包为目标容器组POD响应访问请求所产生的回流数据包。
在一可选实施例中,该方法还可包括:
在物理网卡中,对网路代理组件进行鉴权;
在网路代理组件鉴权成功的情况下,允许网路代理组件配置和/或更新目标应用服务对应的虚拟访问地址以及转发规则。
在一可选实施例中,该方法可包括:
通过管控通道,将目标应用服务对应的虚拟访问地址以及转发规则加密传输至物理网卡中。
值得说明的是,上述关于容器调度方法各实施例中的技术细节,可参考前述的系统实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤400至步骤402的执行主体可以为设备A;又比如,步骤400和401的执行主体可以为设备A,步骤402的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。
图5为本申请又一示例性实施例提供的一种物理网卡的结构示意图。如图5所示,该物理网卡可包括:存储器50、处理器51以及通信组件52。
处理器51,与存储器50和通信组件52耦合,用于执行存储器50中的计算机程序,以用于:
在目标应用服务的创建过程中,通过通信组件从物理网卡所处的工作节点上运行的网路代理组件中获取目标应用服务对应的虚拟访问地址以及转发规则;
在通过通信组件接收到针对目标应用服务的访问请求的情况下,按照目标应用服务对应的转发规则,将目标应用服务的虚拟访问地址转换为物理地址;将访问请求调度至物理地址下的目标容器组POD,以访问运行在目标容器组POD中的目标应用服务。
在一可选实施例中,处理器51还用于:
接收网路代理组件发起的转发规则更新请求,更新请求中包括根据资源管理服务器提供的目标应用服务对应变化后的至少一个容器组POD构建的新的转发规则。
在一可选实施例中,处理器51还用于:
接收目标容器组POD响应访问请求所产生的回流数据包;
将回流数据包中的源访问地址转换为目标应用服务对应的虚拟访问地址后,将回流数据包返回给访问请求的发起方。
在一可选实施例中,处理器51还用于:
解析目标容器组POD发送的数据包;
若数据包的包头信息中包含的目的地址为发起方的物理地址,则确定数据包为目标容器组POD响应访问请求所产生的回流数据包。
在一可选实施例中,处理器51还用于:
对网路代理组件进行鉴权;
在网路代理组件鉴权成功的情况下,允许网路代理组件配置和/或更新目标应用服务对应的虚拟访问地址以及转发规则。
在一可选实施例中,处理器51还用于:
通过管控通道,加密接收网路代理组件发送的目标应用服务对应的虚拟访问地址以及转发规则。
进一步,如图5所示,该物理网卡还包括:电源组件53等其它组件。图5中仅示意性给出部分组件,并不意味着物理网卡只包括图所示组件。
值得说明的是,上述关于物理网卡各实施例中的技术细节,可参考前述的系统实施例中关于物理网卡的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
图6为本申请又一示例性实施例提供的一种节点的结构示意图。如图6所示,该节点可包括:存储器60、处理器61以及通信组件62,该节点上部署有至少一个容器组POD。
处理器61,与存储器60和通信组件62耦合,用于执行存储器60中的计算机程序,以用于在目标应用服务的创建过程中,为目标应用服务确定虚拟访问地址以及转发规则;通过通信组件将目标应用服务对应的虚拟访问地址以及转发规则配置到装配在节点上的物理网卡中,以利用物理网卡按照转发规则,将针对目标应用服务的访问请求调度至虚拟访问地址关联的物理地址下的目标容器组POD,以访问运行在目标容器组POD中的目标应用服务。
在一可选实施例中,处理器61用于:从容器调度系统中的资源管理服务器中获取为目标应用服务分配虚拟访问地址以及支持目标应用服务的至少一个容器组POD的物理地址;
根据目标应用服务对应的虚拟访问地址和至少一个容器组POD的物理地址,构建目标应用服务对应的转发规则。
在一可选实施例中,处理器61还用于:若监听到资源管理服务器提供的目标应用服务对应的至少一个容器组POD发生变化,则根据变化后的容器组POD更新目标应用服务在物理网卡中的对应的转发规则。
在一可选实施例中,处理器61用于:
通过管控通道,将目标应用服务对应的虚拟访问地址以及转发规则加密传输至物理网卡中。
进一步,如图6所示,该节点还包括:电源组件63等其它组件。图6中仅示意性给出部分组件,并不意味着节点只包括图所示组件。
值得说明的是,上述关于节点各实施例中的技术细节,可参考前述的系统实施例中关于工作节点的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
上述图5和6中的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
上述图5和6中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图5和6中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。