首页> 中国专利> 多云服务网格中的服务业务复制和动态策略实施

多云服务网格中的服务业务复制和动态策略实施

摘要

在实施例中,一种数据处理方法包括:在被编程为实现位索引显式复制(BIER)协议的BIER复制器节点处,从数据源接收标识服务级多播组地址的多播流分组;使用BIER复制器节点,根据BIER协议复制该多播流分组,并将两个或更多个复制的分组流发送到被编程为实现BIER的两个或更多个BIER接收器节点;使用该两个或更多个BIER接收器节点,将两个或更多个复制的分组流发送到两个或更多个接收器。其他实施例可以使用经修改的现场操作、管理及维护(iOAM)技术,包括:使用源,封装iOAM报头并在报头中放置以下项中的一者:复制器策略的标识符;以符号化语言表述的复制器策略的定义;在一个或多个BIER复制器节点处接收iOAM报头;在特定一个复制器节点处执行以下项中的一者:读取复制器策略的标识符,检索与该标识符匹配的预定义分组复制策略,并执行该预定义分组复制策略以动态调整该特定一个BIER复制器节点的分组处理行为;或者对符号化语言形式的复制器策略的定义进行解析以产生新的分组复制策略,并执行该新的分组复制策略以动态调整该特定一个BIER复制器节点的分组处理行为。

著录项

  • 公开/公告号CN112567698A

    专利类型发明专利

  • 公开/公告日2021-03-26

    原文格式PDF

  • 申请/专利权人 思科技术公司;

    申请/专利号CN201980053245.1

  • 申请日2019-08-21

  • 分类号H04L12/801(20060101);H04L12/931(20060101);H04L29/06(20060101);

  • 代理机构11258 北京东方亿思知识产权代理有限责任公司;

  • 代理人李丽

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 10:22:47

说明书

本PCT国际申请是于2018年8月21日提交的美国申请No.16/107,040的继续申请,其全部内容通过引用并入本文。

技术领域

本公开属于由计算机实现的微服务(micro-service)的技术领域,其中微服务使用分组交换电信网络和/或多云网络在彼此之间传送服务请求和响应。另一技术领域是多播分组数据通信,其中,针对第7层服务实现多播。另一技术领域是在网络互连(internetworking)中的位索引显式复制(BIER)协议。另一技术领域是网络互连和网络管理中的现场操作、管理及维护(In-Site Operations,Administration,and Maintenance,iOAM)协议。

背景技术

本节描述的方法是可以被实行的途径,但不一定是先前已被构思或实行的途径。因此,除非另有说明,否则不应假设本节中描述的任何途径仅因其被包含在本节中而被视为现有技术。

在使用网络的分布式计算系统中,尤其是使用云或多云环境的那些分布式计算系统中,经常需要在软件中实现的服务与应用,而不是像路由器和交换机这样的网络互连元件,之间进行多播通信。目前,这种一对多的通信(如果有的话)是在应用层实现的。应用程序和/或服务被编程为从单个源向多个不同的接收者发送重复的单播应用消息。这种途径在网络资源和带宽的使用方面效率非常低。它还会将不必要的业务引入分组交换网络,这影响整体设备和网络性能。

当应用被实现为具有许多连接的服务或微服务,从而在逻辑上形成服务的网状网络时,这些问题变得尖锐。

因此,需要有效地处理针对应用的多播业务。示例包括语音和视频应用。

附图说明

在附图中:

图1是示出服务网格的两部分图。

图2示出了在示例服务网格中执行的BIER和iOAM操作的组合。

图3是示出可用于实现实施例的示例计算机系统的框图。

具体实施方式

在下面的描述中,出于解释的目的而阐述了许多具体细节,以便提供对本实施例的透彻理解。然而,将清楚的是,可以在没有这些具体细节的情况下实践本实施例。在其他情况下,为了避免不必要地模糊本实施例,而以框图形式示出公知的结构和设备。根据下述提纲来在以下章节中描述实施例:

总体概述

结构概述

功能概述

某些实施例的益处

实现方式示例-硬件概述

总体概述

本公开提供了一种数字数据处理系统和计算机实现的方法,该方法能够在服务网格内引入类似网络层多播的分组递送的有效性。在该上下文中,“服务网格(servicemesh)”指的是彼此通信的多个服务或微服务,这些服务或微服务可以包括应用程序或可以是应用程序的组件。当每个服务与所有其他服务通信时,可以形成完整的服务网格,但这不是所有实施例中所必需的。微服务可以支持诸如语音和视频之类的应用。此外,实施例使用位索引显式复制(BIER)协议和iOAM(现场操作、管理及维护)协议来使得能够在服务网格中进行类似多播的分组递送,同时还提供用于对转发策略的带内定义进行递送的手段。BIER部分地在互联网协会的征求意见(Request For Comments,RFC)8279、8296和RFC 8401中被定义,并由互联网工程任务组管理。

本公开假设熟悉并了解对BIER和iOAM的常规使用,并专注于这些协议在不同计算领域的新且意想不到的应用。这些协议先前没有被用在服务网格中来使得能够进行类似多播的分组递送并同时允许带内策略选择。BIER报头包括熵字段,该熵字段在常规上被用于提供复制节点处的简单转发调整。例如,它可用于对业务进行着色或标记,以使得标记有相同熵值的业务在相同路径上被发送。但是,它先前没有被用于传输策略定义,这代表与报头的所有先前定义的目的有所不同。

在实施例中,BIER和iOAM被用于使得能够在服务网格内进行类似多播的分组递送,同时还提供用于对转发策略的带内定义进行递送的手段。此外,基于iOAM的机制触发在BIER复制器上的动态策略实施。在实施例中,BIER位掩码业务分发适用于服务网格部署。在实施例中,更新附接盒(Sidecar)功能以并入BIER复制器能力。在实施例中,以与传输层无关的方式来提供跨云平台进行的与协议无关的类似多播的分组递送。提供了在服务网格内使用iOAM进行的到复制器功能的带内策略递送。符号化策略定义语言可以携带策略信息,其范围从针对已定义策略的策略标识符一直到完整的策略规范。虽然描述了用于与iOAM一起使用的某些实施例,但在其他实施例中,诸如SRv6或NSH之类的其他元数据使能协议可被用于在不同于服务网格网络的网络中进行策略递送。

实施例具有在多播协议(比如,PIM(协议无关多播,RFC 7761),mLDP(多播标签分发协议),或RSVP-TE/P2MP(资源预留协议-业务工程、RFC 3209、点对多点RFC 4875))的网络中不需要直接支持的益处。

在实施例中,一种数据处理方法包括:在被编程为实现位索引显式复制(BIER)协议的BIER复制器节点处,从数据源接收多播流分组,该多播流分组标识服务级多播组地址;使用BIER复制器节点,根据BIER协议来复制多播流分组并将两个或更多个复制的分组流发送到被编程为实现BIER的两个或更多个BIER接收器节点;使用该两个或更多个BIER接收器节点,将该两个或更多个复制的分组流发送到两个或更多个接收器。其他实施例可以使用经修改的iOAM(现场操作、管理及维护)技术,包括:使用源来封装iOAM报头并在该报头中放置以下项中的一者:复制器策略的标识符;以符号化语言表述的复制器策略的定义;在BIER复制器节点中的一者或多者处接收该iOAM报头;在复制器节点中的特定复制器节点处,执行以下项中的一者:读取复制器策略的标识符,检索与该标识符匹配的预定义分组复制策略,并执行该预定义分组复制策略以对BIER复制器节点中的该特定BIER复制器节点的分组处理行为进行动态调整;或者对符号化语言形式的复制器策略的定义进行解析以产生新的分组复制策略,并执行该新的分组复制策略以对BIER复制器节点中的该特定BIER复制器节点的分组处理行为进行动态调整。

结构概述

图1是示出服务网格的两部分图。视图(A)是在OSI网络参考模型的第7层处的示例服务网格的表示,并且视图(B)是同一服务网格在第2层到第4层处使用网络互连设备和软件的实现方式。视图(A)表示微服务如何进行交互的逻辑视图,但它不表示网络中用于支持微服务之间的通信的实际实现方式。

首先参照视图(A),在实施例中,示例服务网格102包括多个微服务MS1、MS2、MS3、MS4、MS5、MS6、MS7,这些微服务通过线所指示的路径而逻辑耦合。微服务MS1、MS2、MS3、MS4、MS5、MS6、MS7中的每一个可以包括单独的计算机程序、进程或其他软件元件。微服务MS1、MS2、MS3、MS4、MS5、MS6、MS7中的一个或多个可以涉及相同的更广泛的应用程序,并且可以由该程序实例化或启动。诸如MS3之类的微服务之一通过重复的单播分组来与其他微服务通信。在实施例中,使用类似多播的分组。

现在转到视图(B),在实施例中,视图(A)的服务网格102可以在使用一个或多个复制器节点112、114的网络中实现,一个或多个复制器节点112、114通过箭头所指示的路径与一个或多个接收器节点116通信。每个复制器112、114可以在存储器中存储策略以支配复制器的转发操作。服务网格102和实现方式110两者都可以使用公有云基础设施、私有云基础设施、或多云基础设施中的路由器、交换机、或其他网络互连元件来托管。在非云企业网或校园网中的实现也是可能的。

在实施例中,诸如MS3之类的特定微服务可以发送包括iOAM策略报头字段的iOAM消息。在一个实施例中,iOAM策略报头字段可以携带策略标识符,该策略标识符指定已经在特定复制器112、114上定义和安装的策略。这种消息的效果是请求接收该消息的复制器112、114加载并使用预定义策略来转发源自微服务MS3并定向到一个或多个接收器116的消息。

可替代地,iOAM策略报头字段可以显式地指定用于在特定复制器112、114上进行策略实施的策略特性。这种消息的效果是请求接收该消息的复制器112、114对被包含在报头字段中的特定策略指令进行解析,并使用经解析的策略指令来转发源自微服务MS3并定向到一个或多个接收器116的消息。

在几种场景下,实施例可以用于促进针对微服务的类似多播的业务分发。首先,一个微服务可以作为源进行操作,而一些或所有剩余的微服务作为接收器进行操作。其次,多播业务可以来自服务网格外部,但仍在云计算设施的控制域内部,并且需要由网格内的微服务来处理。第三,在微服务网格外部并在云控制域外部的源可以以微服务作为接收器,比如对管理操作而言。

图2示出了在示例服务网格中执行的BIER和iOAM操作的组合。在图2的示例中,具有多播服务消息收发的服务网格200包括数据源201,该数据源201可以托管在服务网格200之内或在其外部。数据源201可以包括微服务、应用程序、或被编程为向多个接收器214、216、218中的任何接收器发送消息的任何其他软件元件。数据源201和接收器214、216、218两者都可以被实现为单个的计算机、程序、其他软件元件、进程、或应用。

服务网格200还包括BIER控制器202,该BIER控制器202通信地耦合到一个或多个BIER复制器节点204、206。BIER复制器节点204、206耦合到一个或多个BIER接收器208、210、212,并且这些接收器通常位于服务网格200之内。出于本地通信的目的,每个BIER接收器节点208、210、212唯一地与一个或多个接收器214、216、218中的特定接收器相关联。例如,BIER接收器节点208管理接收器214,BIER接收器节点210管理接收器216,并且BIER接收器节点212管理接收器218。特定接收器214、216、218与仅一个BIER接收器节点208、210、212相关联并由其管理。然而,特定的BIER接收器节点208、210、212可以管理大量接收器或管理一组接收器。

在其中容器化软件框架被用来对微服务的执行进行管理的一个实施例中,可以与虚拟化容器框架相协作地、使用影子容器来实现BIER控制器202,BIER复制器节点204、206,以及一个或多个BIER接收器208、210、212中的每一者,其中该影子容器与管理微服务的主容器相关联地执行。例如,被配置为对数据平面和控制平面业务的各方面进行管理的代理容器或额外容器可以耦合到或关联于微服务在其中执行的其他容器。在实施例中,数据源201和接收器214、216、218中的每一者在不同的虚拟化容器中执行。虚拟化容器化框架的示例包括:DOCKER、APACHE MESOS、RKT、和GARDEN。

服务网格200中的元件在逻辑和/或物理上被耦合在控制和数据平面路径上,控制和数据平面路径由箭头指示并被在图例220中定义。由不同线条样式指示的路径指示:经由复制器节点204、206从源201到一个或多个接收器214、216、218的业务复制;诸如接收器节点208、210、212之类的BIER使能网络元件与BIER控制器202之间的BIER控制平面业务,其可以包括接收器节点从接收器214、216、218接收的加入消息;以及已经从接收器214、216、218收集的这种多播信息(例如,组成员资格或加入信息)从BIER控制器202到复制器节点204、206和源201的传输。

在实施例中,携带有实质性微服务消息的iOAM消息将触发BIER复制器节点204、206上的策略实施。此途径认识到,以每个流的方式进行的带内策略实施对于动态、按需和不断变化的容器环境而言可以是重要的。复制器节点204、206上的静态定义的策略可能改变得不够快,不足以应对容器环境的动态行为。然而,在实施例中,对iOAM的修改支持将策略定义传输到复制器节点204、206。复制器节点204、206然后使用策略定义来增强BIER转发。

功能概述

图2中用数字1、2和3示出了由BIER组件执行的示例操作,并且经修改的iOAM操作被表示为A、B和C。BIER操作包括:

操作1.源201准备要传输到两个或更多个接收器214、216、218的数据。例如,假设源201将用于多播组237.1.2.3的多播流发送到复制器节点204,并将用于多播组237.4.5的多播流发送到复制器节点206。注意,单个源201可以发起定向到不同多播组的多个多播流,并且可以将它们引导到不同的复制器节点204、206。源201查询BIER控制器202以获得针对复制器节点204、206中一者或多者的地址或其他转发数据,复制器节点204、206中的这一者或多者能够转发到能够到达接收器214、216、218的接收器节点208、210、212。源201查询BIER控制器202以及出于此目的对拓扑数据进行的管理的具体方式并不重要。在实施例中,基于源201从BIER控制器202接收的信息,源将一个或多个分组转发到服务网格内的一组复制器节点204、206。转发是使用单播执行的。

操作2.每个BIER复制器节点204、206执行对其从源201接收的业务的复制。该复制基于位掩码,该位掩码是由BIER控制器202基于接收器214、216、218针对特定多播组定义的。每个复制器节点204、206使用带内策略实施来动态调整复制操作。每个复制器节点204、206可以包括允许基于向量图树或其他数据结构来转发业务的虚拟转发器引擎、虚拟交换机、或其他业务转发器,并被编程为利用关于针对多播组的加入请求的信息来更新BIER控制器202,其中针对多播组的加入请求源自接收器214、216、218并被从BIER接收器节点208、210、212转发到BIER复制器节点204、206。在互联网上的域FD.IO处描述了虚拟转发器的示例。在一个实施例中可以使用Vswitch OVS。

操作3.每个BIER接收器208、210、212主要执行两个功能。首先,每个BIER接收器208、210、212负责执行其本地连接的应用的加入,这些本地连接的应用请求多播分组。在此上下文中,“加入”可以指IGMP加入操作。在接收到加入之后,BIER接收器208、210、212向BIER控制器202通知如下特定端点的身份:这些特定端点正在请求指定多播组的多播流。此外,当BIER接收器208、210、212从BIER复制器节点204、206接收复制的消息时,BIER接收器208、210、212将复制的消息转发到BIER接收器208、210、212所管理的那些特定接收器216。

上述步骤定义了在服务网格中使用BIER原理的类似多播转发的一个实施例。在实施例中,可以使用iOAM的修改来优化服务网格内的业务复制。在实施例中,处理iOAM分组或消息的节点被编程为加载具有每跳策略定义的iOAM报头。在一个实施例中,策略是使用JavaScript对象表示法(JavaScript Object Notation,JSON)来定义的,并且JSON元素被携带在iOAM报头中。图2中被表示为A、B、C的以下操作可以用在一个实施例中,并且示出了具有经修改的iOAM的分组流,以提供带内策略实施和定义。

操作A.用复制器节点的策略信息来封装并定义iOAM报头。源201添加具有策略定义的iOAM报头,这些策略定义对于特定的分组或流而言是有效的。稍后跨复制器节点204、206使用策略来定义如下情况:在该情况下,分组被复制并朝着接收器216转发,或被转发到进一步分发分组的其他复制器节点。

操作B.策略定义经由iOAM被传输并在复制器节点内被执行,以动态地调整复制器节点的行为。特定复制器节点204、206检查策略数据。响应于该检查,复制器节点204、206或者基于策略标识符来选择已安装的策略,或者动态且即时地安装iOAM报头中所指定的策略,以用于分组或流以及任何连续的分组或流。与在其他情境中使用BIER的在先途径不同,该操作在如下方面是独特的:其允许基于作为使用iOAM的实际数据流的一部分而传输的详细信息来动态地读取、安装和利用策略。

操作C.附加策略信息被递送以保证准确处理在源处的BIER递送的多播分组。在最接近服务网格的边缘并因此最接近接收器214、216、218中的一个或多个的BIER接收器节点208、210、212处,另一复制器节点(未示出)执行最终复制操作以将分组转发到特定的接收器214、216、218。该接收器位于不同的多个云内或者跨不同的多个云。该另一复制器节点可以是独立节点,或者可以被合并在BIER接收器节点208、210、212内。

在一个实施例中,本文描述的技术被用在多云环境中。在这样的环境中,实现方式不能依赖跨云的特征同等(parity)来递送多播分组。不同的云可能不会实现所有常规的多播转发协议。在本文描述的解决方案中,底层网络不需要支持多播递送。替代地,本文描述的过程可以由多云环境的租户或管理员控制和启用。

在一个实施例中,智能控制器可以基于输入参数来自动确定复制器在云网络中的布置,这些输入参数可以通过机器学习来静态定义或动态确定。作为自动机器学习途径的示例,假设位于一个云网络内的源201正在基于负载平衡或优化技术而跨两个不同的云向复制器节点204、206发送单播分组。然后,这些分组以最接近接收器的方式被复制,无论是在私有云内,还是在跨公有云使用的环境中都是如此。此途径降低了不必要的带宽利用率开销,并提供跨多个云的智能及动态的业务分发。因此,各实施例可以在知晓源和接收器的情况下提供自动的复制器节点布置,以在多云服务网格内提供优化的递送。

在实施例中,业务流可以使用iOAM报头来以每个复制器的方式携带策略信息,以动态且按需地调整业务转发行为。在一个实施例中,策略数据被存储在对基于BIER的环境进行管理的SDN控制器(图1、图2中未示出)中,并且被定期地分发到BIER控制器202。iOAM报头提供有用的结构来携带复制器节点上的预定义策略的策略标识符,或者携带在复制器处被动态应用的策略要求的定义。策略数据可以包括QoS参数、SLA信息或每租户/每服务的详细信息。

在一个实施例中,iOAM报头指定根据人类可读的符号化策略定义语言来表述的策略,这种策略定义语言可由与其实现方式、供应商、制造商或操作模型无关的设备来解析和实现。策略定义语言可以提供可用于定义与业务相关的策略参数的构造,同时还接受诸如租户/服务标识符或针对非高峰/高峰时间的时间范围之类的可选参数。表1定义了将JSON用作基本语言的示例策略:

表1-示例符号化策略定义

虽然本发明的范围在所附权利要求书中限定,但是基于前述描述,至少已经公开了以下编号条款的技术:

1.一种数据处理方法,包括:在位索引显式复制(BIER)复制器节点处从数据源接收多播流分组,该BIER复制器节点被编程为实现BIER协议,该多播流分组标识服务级多播组地址的;使用BIER复制器节点,根据BIER协议复制多播流分组,并将两个或更多个复制的分组流发送到两个或更多个BIER接收器节点,该两个或更多个BIER接收器节点被编程为实现BIER;使用该两个或更多个BIER接收器节点,将该两个或更多个复制的分组流发送到两个或更多个接收器。

2.根据条款1所述的方法,还包括:在通信地耦合到源、BIER复制器节点和两个或更多个BIER接收器节点的BIER控制器节点处,接收来自源的查询,该查询请求如下BIER复制器节点的标识信息:该BIER复制器节点负责转发到服务级多播组的地址;基于该服务级多播组的地址,从多个其他BIER复制器节点中确定该BIER复制器节点的标识信息;BIER控制器节点向源发送响应,该响应提供BIER复制器节点的标识信息。

3.根据条款1所述的方法,还包括,在一个或多个BIER接收器节点处进行以下操作:从一个或多个接收器接收指示加入服务级多播组的一个或多个加入请求;向通信地耦合到两个或更多个BIER接收器节点的BIER控制器节点发送一个或多个更新消息,到该BIER控制器的该一个或多个更新消息标识该一个或多个加入请求。

4.根据条款3所述的方法,还包括:在BIER控制器处,响应于该一个或多个更新消息,将经由两个或更多个BIER接收器节点从接收器收集到的多播信息发送到一个或多个BIER复制器节点并发送到源。

5.根据条款1所述的方法,其中,源和接收器中的每一者包括微服务。

6.根据条款1所述的方法,还包括:使用该源,封装iOAM(现场操作、管理及维护)报头并在该报头中放置以下各项中的一者:复制器策略的标识符,以符号化语言表述的复制器策略的定义;在一个或多个BIER复制器节点处接收该iOAM报头;在这些复制器节点中的特定复制器节点处执行以下各项中的一者:读取复制器策略的标识符,检索与该标识符匹配的预定义分组复制策略,并执行该预定义分组复制策略以动态调整这些BIER复制器节点中的该特定复制器节点的分组处理行为;或者对符号化语言形式的复制器策略的定义进行解析以产生新的分组复制策略,并执行该新的分组复制策略以动态调整这些BIER复制器节点中的该特定复制器节点的分组处理行为。

7.根据条款1所述的方法,还包括:使用源来封装iOAM(现场操作、管理及维护)报头并在该报头中放置以符号化语言表述的复制器策略的定义;在BIER复制器节点中的一者或多者处接收该iOAM报头;在复制器节点中的特定复制器节点处进行以下操作:解析符号化语言形式的复制器策略的定义以产生新的分组复制策略,并执行该新的分组复制策略以动态调整这些BIER复制器节点中的该特定BIER复制器节点的分组处理行为;将从该新的分组复制策略导出的策略信息发送到BIER接收器节点中的一者多多者。

8.根据条款1所述的方法,其中,接收器是计算机。

某些实施例的益处。

各实施例改进了如下软件元件之间的数字数据通信服务:这些软件元件作为微服务进行操作并且在诸如服务网格之类的复杂拓扑中彼此通信。具体地说,各实施例使得诸如微服务或其他程序之类的源能够使用类似多播的技术来传输与应用相关的消息流,即使微服务在逻辑上被定义在OSI参考模型的第7层而非第2层、第3层或第4层处的网格中。本文的新技术不使用或要求使用常规的IP多播协议(其可能不存在于所有网络中或不是跨云实现的),而是使用BIER控制器、BIER复制器节点和BIER接收器节点来复制、接收和转发应用或服务业务到已加入服务多播组的接收器。此外,BIER接收器从接收器接收IGMP加入消息并更新复制器节点,该复制器节点然后更新BIER控制器。这种改进准许大型、复杂的微服务程序网格有效地进行通信,而不必使用重复的单播消息。其结果是,穿过所有网络链路的消息更少,并且单个源到达大量接收器所需的CPU周期更少、存储器和存储装置也更少。

通过以新的且先前未定义的方式使用iOAM报头来携带符号化语言形式的策略标识符或策略定义,各实施例还允许对复制器策略的动态分发。该途径允许策略与业务的紧密耦合,并且还以高效且不需要对新协议、协议中的新字段、或新消息集进行定义的方式携带策略标识符或定义。取而代之的是,可以以新的方式对现有的iOAM封装和解封装实现方式进行重用来携带针对服务网格多播业务的策略,这些现有的iOAM封装和解封装实现方式是出于与针对这种业务的策略定义不同的目的而存在于网络节点中的。

实现方式示例-硬件概述

根据一个实施例,本文描述的技术由至少一个计算设备实现。这些技术可以是使用至少一个服务器计算机和/或其他计算设备的组合来全部或部分实现的,这些其他计算设备是使用诸如分组数据网络之类的网络来耦合的。计算设备可以被硬连线以执行这些技术,或者可以包括被持久编程为执行这些技术的数字电子设备(比如,至少一个专用集成电路(ASIC)或现场可编程门阵列(FPGA)),或者可以包括被编程为根据固件、存储器、其他存储装置、或其组合中的程序指令来执行这些技术的至少一个通用硬件处理器。这样的计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制的编程相组合,以实现所描述的技术。计算设备可以是服务器计算机、工作站、个人计算机、便携式计算机系统、手持设备、移动计算设备、可穿戴设备、身体安装或可植入设备、智能电话、智能电器、网络互连设备、诸如机器人或无人地面或空中载具之类的自主或半自主设备、结合硬连线和/或程序逻辑以实现所描述技术的任何其他电子设备、数据中心中的一个或多个虚拟计算机器或实例、和/或服务器计算机和/或个人计算机的网络。

图3是示出可用于实现实施例的示例计算机系统的框图。在图3的示例中,计算机系统300和用于以硬件、软件、或硬件与软件的组合实现所公开技术的指令被示意性地表示为例如方框和圆圈,其细节级别与本公开涉及的本领域普通技术人员通常用于关于计算机架构和计算机系统实现方式进行传达的细节级别相同。

计算机系统300包括输入/输出(I/O)子系统302,该输入/输出(I/O)子系统302可以包括用于在计算机系统300的组件之间通过电子信号路径传送信息和/或指令的总线和/或(一个或多个)其他通信机构。I/O子系统302可以包括I/O控制器、存储器控制器、和至少一个I/O端口。电子信号路径在附图中被示意性地表示为例如线、单向箭头、或双向箭头。

至少一个硬件处理器304耦合到I/O子系统302,以处理信息和指令。硬件处理器304可以包括例如通用微处理器或微控制器,和/或专用微处理器,例如,嵌入式系统或图形处理单元(GPU)或数字信号处理器、或ARM处理器。处理器304可以包括集成算术逻辑单元(ALU)或者可以耦合到单独的ALU。

计算机系统300包括存储器306的一个或多个单元(比如,主存储器),其耦合到I/O子系统302,以电子地数字存储要由处理器304执行的数据和指令。存储器306可以包括易失性存储器,比如,各种形式的随机存取存储器(RAM)或其他动态存储设备。存储器306还可以用于在要由处理器304执行的指令的执行期间存储临时变量或其他中间信息。当被存储在处理器304可访问的非暂态计算机可读存储介质中时,这样的指令可以将计算机系统300呈现为专用机器,该专用机器被定制为执行指令中指定的操作。

计算机系统300还包括非易失性存储器(比如只读存储器(ROM)308)或耦合到I/O子系统302的用于存储针对处理器304的信息和指令的其他静态存储设备。ROM 308可以包括各种形式的可编程ROM(PROM),比如,可擦除PROM(EPROM)或电可擦除PROM(EEPROM)。永久存储装置310的单元可以包括各种形式的非易失性RAM(NVRAM)(比如,闪存)、或者固态存储装置、磁盘或光盘(比如,CD-ROM或DVD-ROM),并且可以耦合到I/O子系统302以用于存储信息和指令。存储装置310是可用于存储指令和数据的非暂态计算机可读介质的示例,这些指令和数据当被处理器304执行时,使得执行计算机实现的方法以执行本文的技术。

存储器306、ROM 308、或存储装置310中的指令可以包括被组织为模块、方法、对象、函数、例程或调用的一组或多组指令。这些指令可以被组织为一个或多个计算机程序、操作系统服务、或包括移动app的应用程序。这些指令可以包括:操作系统和/或系统软件;用于支持多媒体、编程或其他功能的一个或多个库;用于实现TCP/IP、HTTP或其他通信协议的数据协议指令或堆栈;用于对使用HTML、XML、JPEG、MPEG或PNG编码的文件进行解析或呈现的文件格式处理指令;用于对针对图形用户界面(GUI)、命令行界面或文本用户界面的命令进行呈现或解释的用户界面指令;诸如办公套件、互联网访问应用、设计及制造应用、图形应用、音频应用、软件工程应用、教育应用、游戏或各种应用之类的应用软件。这些指令可以实现web服务器、web应用服务器或web客户端。指令可以被组织为表示层、应用层和数据存储层,比如,使用结构化查询语言(SQL)或不使用SQL的关系数据库系统、对象存储、图形数据库、平坦文件系统、或其他数据存储。

计算机系统300可以经由I/O子系统302耦合到至少一个输出设备312。在一个实施例中,输出设备312是数字计算机显示器。可以在各种实施例中使用的显示器的示例包括触摸屏显示器或发光二极管(LED)显示器或液晶显示器(LCD)、或电子纸显示器。可替代地或除显示设备之外,计算机系统300还可以包括(一种或多种)其他类型的输出设备312。其他输出设备312的示例包括打印机、票证打印机、绘图仪、投影仪、声卡或视频卡、扬声器、蜂鸣器或压电设备或其他可听设备、灯或LED或LCD指示器、触觉设备、致动器或伺服系统。

至少一个输入设备314耦合到I/O子系统302,以向处理器304传送信号、数据、命令选择或手势。输入设备314的示例包括触摸屏、麦克风、静止和视频数字相机、字母数字和其他键、小键盘、键盘、图形输入板、图像扫描仪、操纵杆、时钟、开关、按钮、拨盘、滑动装置和/或各种类型的传感器(例如,力传感器、运动传感器、热传感器、加速计、陀螺仪、和惯性测量单元(IMU)传感器)和/或各种类型的收发器(例如,诸如蜂窝或Wi-Fi、射频(RF)或红外(IR)之类的无线收发器,和全球定位系统(GPS)收发器)。

另一种类型的输入设备是控制设备316,可替代地或除输入功能之外,其还可以执行光标控制或其他自动控制功能,例如在显示屏上的图形界面中的导航。控制设备316可以是触摸板、鼠标、跟踪球或光标方向键,用于向处理器304传送方向信息和命令选择并用于控制输出设备(例如,显示器)312上的光标移动。输入设备可以在两个轴(即,第一轴(例如,x)和第二轴(例如,y))上具有至少两个自由度,这允许该设备指定平面中的位置。另一种类型的输入设备是有线、无线或光学控制设备,比如,操纵杆、识别笔(wand)、控制台、方向盘、踏板、换档机构、或其他类型的控制设备。输入设备314可以包括多个不同输入设备的组合,例如,摄像机和深度传感器。

在另一实施例中,计算机系统300可以包括物联网(IoT)设备,其中,输出设备312、输入设备314和控制设备316中的一个或多个被省略。或者,在这样的实施例中,输入设备314可以包括一个或多个相机、运动检测器、温度计、麦克风、地震检测器、其他传感器或检测器、测量设备或编码器,并且输出设备312可以包括专用显示器(比如,单行LED或LCD显示器)、一个或多个指示器、显示面板、仪表、阀、螺线管、致动器或伺服系统。

当计算机系统300是移动计算设备时,输入设备314可以包括耦合到全球定位系统(GPS)模块的GPS接收器,该GPS模块能够对多个GPS卫星进行三角测量,针对计算机系统300的地球物理位置确定并生成地理位置或定位数据(比如经纬度值)。输出设备312可以包括硬件、软件、固件和接口,用于生成指向主机324或服务器330的位置报告分组、通知、脉冲或心跳信号、或其他反复数据传输,它们单独或与其他特定于应用的数据相组合地指定计算机系统300的位置。

计算机系统300可以使用定制化的硬连线逻辑、至少一个ASIC、GPU或FPGA、固件和/或程序指令或逻辑来实现本文描述的技术,这些指令或逻辑当被加载并与计算机系统相组合地使用或执行时,使得或编程计算机系统以作为专用机器进行操作。根据一个实施例,本文的技术由计算机系统300响应于处理器304执行主存储器306中所包含的至少一个指令的至少一个序列而被执行。这样的指令可以被从诸如存储装置310之类的另一存储介质读入到主存储器306中。主存储器306中所包含的指令序列的执行使得处理器304执行本文描述的过程步骤。在替代实施例中,可以使用硬连线电路来代替软件指令或与软件指令组合使用。

本文使用的术语“存储介质”指的是存储使机器以特定方式进行操作的数据和/或指令的任何非暂态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,例如存储装置310。易失性介质包括动态存储器,例如存储器306。常见形式的存储介质包括例如硬盘、固态驱动器、闪速驱动器、磁数据存储介质、任何光学或物理数据存储介质、存储器芯片等。

存储介质与传输介质不同,但可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括构成I/O子系统302的总线的线。传输介质还可以采用声波或光波的形式,例如在无线电波和红外数据通信期间生成的那些。

在将至少一个指令的至少一个序列载送到处理器304以供执行时可以涉及各种形式的介质。例如,指令最初可以承载在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过诸如光纤或同轴电缆或电话线之类的通信链路发送指令。在计算机系统300本地的调制解调器或路由器可以在通信链路上接收数据,并将数据转换成计算机系统300可以读取的格式。例如,诸如射频天线或红外检测器之类的接收器可以接收无线或光信号中携带的数据,并且适当的电路可以将数据提供给I/O子系统302,比如将数据放在总线上。I/O子系统302将数据载送到存储器306,处理器304从存储器306取回并执行指令。由存储器306接收的指令可以可选地在被处理器304执行之前或之后存储在存储装置310上。

计算机系统300还包括耦合到总线302的通信接口318。通信接口318提供到(一个或多个)网络链路320的双向数据通信耦合,该(一个或多个)网络链路320直接或间接连接到至少一个通信网络(例如,网络322或互联网上的公有或私有云)。例如,通信接口318可以是以太网联网接口、综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器、或用于提供到相应类型的通信线路的数据通信连接的调制解调器,例如以太网电缆或任何种类的金属电缆、或者光纤线路或电话线路。网络322广泛地表示局域网(LAN)、广域网(WAN)、校园网、网络互连、或其任何组合。通信接口318可以包括:用于提供到兼容LAN的数据通信连接的LAN卡,或者被有线连接以根据蜂窝无线电电话无线联网标准发送或接收蜂窝数据的蜂窝无线电电话接口,或者被有线连接以根据卫星无线联网标准发送或接收数字数据的卫星无线电接口。在任何这样的实现方式中,通信接口318通过信号路径发送和接收电气、电磁或光信号,这些信号携带表示各种类型的信息的数字数据流。

网络链路320通常使用例如卫星、蜂窝、Wi-Fi、或蓝牙技术提供到其他数据设备的直接或通过至少一个网络进行的电气、电磁或光数据通信。例如,网络链路320可以提供通过网络322到主机计算机324的连接。

此外,网络链路320可以经由由互联网服务提供商(ISP)326运营的网络互连设备和/或计算机提供通过网络322或到其他计算设备的连接。ISP 326通过被表示为互联网328的全球分组数据通信网络来提供数据通信服务。服务器计算机330可以耦合到互联网328。服务器330广泛地表示具有或不具有管理程序的任何计算机、数据中心、虚拟机或虚拟计算实例,或者执行诸如DOCKER或KUBERNETES之类的容器化程序系统的计算机。服务器330可以表示电子数字服务,该电子数字服务是使用多于一个的计算机或实例来实现的并且通过发送web服务请求、具有HTTP有效载荷中的参数的统一资源定位符(URL)串、API调用、app服务调用、或其他服务调用来被访问和使用。计算机系统300和服务器330可以形成分布式计算系统的元件,该分布式计算系统包括协作以执行任务或执行应用或服务的其他计算机、处理集群、服务器农场、或其他计算机组织。服务器330可以包括被组织为模块、方法、对象、函数、例程或调用的一个或多个指令集。指令可以被组织为一个或多个计算机程序、操作系统服务、或包括移动app的应用程序。指令可以包括操作系统和/或系统软件;用于支持多媒体、编程或其他功能的一个或多个库;用于实现TCP/IP、HTTP或其他通信协议的数据协议指令或堆栈;用于对使用HTML、XML、JPEG、MPEG或PNG编码的文件进行解析或呈现的文件格式处理指令;用于对针对图形用户界面(GUI)、命令行界面或文本用户界面的命令进行呈现或解释的用户界面指令;诸如办公套件、互联网访问应用、设计及制造应用、图形应用、音频应用、软件工程应用、教育应用、游戏或各种应用之类的应用软件。服务器330可以包括web应用服务器,其托管表示层、应用层和数据存储层,比如,使用结构化查询语言(SQL)或不使用SQL的关系数据库系统、对象存储、图形数据库、平坦文件系统、或其他数据存储。

计算机系统300可以通过(一个或多个)网络、网络链路320和通信接口318发送消息并接收数据和指令(包括程序代码)。在互联网示例中,服务器330可以通过互联网328、ISP 326、本地网络322和通信接口318发送针对应用程序的请求代码。所接收的代码可以在其被接收时由处理器304执行,和/或被存储在存储装置310或其他非易失性存储装置中以供稍后执行。

本章节中描述的指令的执行可以实现以正被执行的计算机程序的实例的形式的进程,该进程由程序代码及其当前活动组成。取决于操作系统(OS),进程可以由并发执行指令的多个执行线程组成。在此上下文中,计算机程序是指令的被动集合,而进程可以是那些指令的实际执行。若干进程可以与同一程序相关联;例如,打开同一程序的若干实例通常意味着不止一个进程正被执行。可以实现多任务以允许多个进程共享处理器304。当每个处理器304或处理器的核心一次执行单个任务时,计算机系统300可以被编程为实现多任务,以允许每个处理器在正被执行的任务之间切换,而不必等待每个任务完成。在实施例中,当任务执行输入/输出操作时、当任务指示其可以被切换时、或者在硬件中断时,可以执行切换。可以通过快速执行上下文切换以同时提供多个进程的并发执行的发生,来实现分时以允许对交互式用户应用的快速响应。在实施例中,为了安全性和可靠性,操作系统可以阻止独立进程之间的直接通信,从而提供严格调解且受控的进程间通信功能。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号