技术领域
[0001] 本
发明涉及一种用于操作网络的方法,其中较高级别服务功能-服务-是通过组合网络的较低级别服务功能-模
块-来组成的,其中至少两个模块根据用于提供和/或监视和/或优化服务的策略进行交互。此外,本发明涉及对应的网络以及一种在该方法中使用的协调器。
背景技术
[0002] 最近,在运营商网络环境下,“服务功能链”已经引起了相当大的关注。这个想法是通过组合-=“链接”-较低级别服务功能来组成较高级别服务。一个示例是视频分发服务,其从用户端开始链接
家长控制功能、
视频编码转换功能和缓存。添加诸如NAT(网络地址转换)或
防火墙之类的通用网络服务功能得到更大的服务功能链。
[0003] 很明显,这些服务功能彼此之间相互隔离,只能经由成行地通过它们的业务数据平面进行交互。然而,一般来说,功能可能会更密切地进行交互。在面向服务的体系结构空间中,这已经提出有相当长的一段时间了。在那里,服务公开了公共API(应用程序编程
接口),其可以被其它网络服务调用。诸如BPEL(业务流程执行语言)等协调语言通过定义调用各个网络服务的顺序和控制逻辑来组成较高级别服务。为了本发明的目的,将较低级别服务称为“模块”。这些可以组成较高级别服务,从现在开始较高级别服务简单地称之为“服务”。
[0004] 这类模块化服务的好处之一是可以独立扩展各个模块,并将其重新安置到
基础架构中的不同物理机器上。这意味着模块可以并置在同一台物理机器上,但它们也可以通过本地甚至广域网络分开。如果服务的两个或更多个模块在物理上分开的情况下进行交互,则必须经由网络通信来使能该交互,所述网络通信如远程过程调用(RPC)或具象状态传输(REST)调用。显然,如果模块通过高延迟或拥塞的网络进行交互,则总体服务的性能将受到影响。然而,在服务编译时,服务开发人员并不知晓并且不希望知晓模块在基础架构中的最终
位置,因此无法以在模块交互粒度(得到提高的服务
质量)与模块间通信性能之间进行合理折中的方式来设计他的服务。因此,他必须假设模块是并置的(这允许模块之间的丰富交互),或者假设模块“以某种方式”在物理上分开(这将限
制模块之间的交互量)。更糟糕的是,在实际部署之前知道模块放置是不可能的,因为面向服务的体系结构、微服务或服务功能链的想法恰好是模块可以在运行时重新安置。这意味着,曾经是低延迟的本地套接字连接在服务寿命期限内很容易变成高延迟的广域网连接。
[0005] 在下面解释服务功能链的三个示例:
[0006] 示例1:VoIP
服务器VNF(虚拟网络功能)提供了API以公开分组丢失、连续分组丢失和每个会话使用的编
解码器。监控VNF,例如Nagios提供了API以公开沿着特定路径的延迟和抖动测量。VoIP控制应用程序
访问VoIP服务器VNF并监控VNF以计算不同VoIP会话的平均意见分数MOS。取决于VoIP控制应用程序与VoIP服务器和探测器有多近,它将或者要求仅有限的KPI(关键性能指标),而忽略其它指标,例如来自服务器的分组丢失KPI和来自Nagios的延迟,导致相当粗略的MOS近似,或者它将适配其轮询
频率,例如介于1/s到1/分钟之间,或者它将要求所有KPI获得更具表现
力的MOS计算。
[0007] 示例2:在RAN(无线电接入网络)的情况下,
控制器VNF和回程控制器VNF(不必是整个RAN/BH的控制器,而是区域控制器)相隔很远,它们基于负载
阈值进行相互操作,即只有事情需要紧急处理(特定的RAN小区拥塞或回程拥塞)时它们才互相交谈以找到联合解决方案。即便如此,它们也许只能为受影响的RAN
站点交换聚合负载KPI。另一个极端是,它们可以进行连续和复杂的协商以决定哪些UE(用户设备)切换到另一个站点,如何改变天线倾斜、eNB功率电平等,或者如何重新路由或重新定义回程中的隧道以达到最佳的每个UE端对端性能。
[0008] 示例3:网络的不同部分中的一组探测器VNF克隆来自相应数据平面的随机分组,并将它们发送到IDS(智能决策系统)系统或分析引擎。取决于探测器和IDS VNF有多近,实际数据会话的
采样率可能会有所不同,并且IDS的准确性也会有所不同。
[0009] 已知的使用服务功能链的操作网络的方法和对应的网络显示了在灵活性和效率方面的
缺陷。
[0010] 因此,本发明的目的是改进和进一步开发用于操作网络的方法以及对应的网络,以便以简单且安全的方式提高效率和灵活性。
发明内容
[0011] 根据本发明,上述目的通过一种用于操作网络的方法来实现,
[0012] 其中较高级别服务功能-服务-是通过组合网络的较低级别服务功能-模块-来组成的,
[0013] 其中至少两个模块根据用于提供和/或监视和/或优化服务的策略进行交互,并且[0014] 其中模块知晓相对于至少一个其它模块的位置和/或接近度,用于根据对位置和/或接近度的这种知晓以及所述策略来决定和/或改变在运行时:
[0015] -模块之间的交互的量和/或类型,和/或
[0016] -至少一个模块的位置。
[0017] 此外,上述目的通过一种网络来实现,
[0018] 其中较高级别服务功能-服务-是通过组合网络的较低级别服务功能-模块-来组成的,
[0019] 其中至少两个模块被设计用于根据用于提供和/或监视和/或优化服务的策略进行交互,并且
[0020] 其中模块知晓相对于至少一个其它模块的位置和/或接近度,用于根据对位置和/或接近度的这种知晓以及所述策略来决定和/或改变在运行时:
[0021] -模块之间的交互的量和/或类型,和/或
[0022] -至少一个模块的位置。
[0023] 此外,要求保护一种在上述方法内使用的协调器,其中所述协调器被设计用于向所述模块提供所述知晓,其中所述协调器知晓各个模块各自的操作点,并且其中所述协调器基于网络内的各个操作点来放置模块。
[0024] 根据本发明,已经认识到有可能提供一种通过模块使用服务功能链来操作网络的非常有效和灵活的方法,其中所述模块知晓相对于至少一个其它模块的位置和/或接近度。该知晓可被用于决定和/或改变在运行时模块之间交互的量和/或类型以及/或者用于决定和/或改变至少一个模块的位置。接近的模块可以选择彼此之间丰富的交互,而相距甚远的模块可以选择粗粒度交互,甚至根本没有交互。这种决定和/或改变取决于位置和/或接近度并且取决于所述政策。
[0025] 因此,通过简单地提供模块相对于至少一个其它模块的位置知晓和/或接近度知晓,可以以简单且安全的方式提高该方法的效率和灵活性。
[0026] 根据本发明的
实施例,所述知晓可以由底层
中间件使能或提供,可以是管理程序层的一部分,或者可以由模块本身经由延迟或模块间测量来获得。一般来说,模块获得位置知晓或接近度知晓的方式可以取决于
软件生态系统。
[0027] 根据另一个实施例,所述知晓可以由协调器或服务协调器功能给予或提供给模块。这种协调器或服务协调器功能可以提供对模块的有效且灵活的管理以及所述模块的位置和/或接近度知晓。
[0028] 在另一个实施例内,所述知晓可以经由相应模块的API基元传输给模块。该实施例提供了向模块传输所述知晓的非常简单且安全的方式。
[0029] 根据另一个实施例,可以按照度量来表示位置或接近度信息。然而,在表达位置或接近度信息方面也存在其它可能性。
[0030] 在另一个实施例内,可以按照模块之间的延迟、跳数或网络带宽来表示接近度信息。在要求保护的方法和网络内使用的位置或接近度信息的表示方面存在不同的合适的可能性。
[0031] 根据另一个实施例,该服务可以是移动边缘计算MEC应用。
[0032] 在另一个实施例内,模块可以是在MEC
节点上运行的知晓RAN的视频编码转换模块。这样的模块有权经由MEC接口访问本地RAN信息。
[0033] 根据另一个实施例,协调器或服务协调器功能可以知晓各个模块的各个操作点。可以将操作点定义为模块间接近度与“效益度量”之间的依赖性
声明,该效益度量用于捕获给定接近度对可能的模块性能质量的影响,该模块性能质量继而由模块之间的交互粒度确定。
[0034] 在另一个实施例内,模块可以基于相对于至少一个其它模块的位置和/或接近度来适配它们的操作点。模块可以在
存储器中维护其操作点。
[0035] 根据另一个实施例,适配可以由模块经由状态模式并且经由维护它们的各个操作点的状态机来实现,其中模块内部的状态机可以根据所述模块与另一个模块或另外多个模块的接近度来更新。
[0036] 在另一个实施例内,模块可以根据其内部状态来实现预定义的动作。这种动作可以获得某些RAN信息。
[0037] 根据另一实施例,可以通过网络通信以适合的方式使能模块之间的交互,该方式可以取决于个体应用或应用领域。
[0038] 本发明的实施例提供了一种方法和系统或网络,其中服务图中的模块可以是知晓接近度的,并且可以使用该接近度信息来适配它们的操作点,即与服务图中的相邻模块的网络通信的量和/或粒度。
[0039] 根据该方法和网络的实施例,其中模块之间的链接主要示出交互依赖性的服务图的规范是可能的。例如,这样的规范可以揭示不同的操作点,即取决于给定的“接近度度量”的“效益度量”,使得协调器可以对模块放置进行例如帕累托最优决策。这样的协调器在做出放置决策时可以考虑服务图中的不同操作点。
[0040] 在另一个实施例内,协调器可以在网络的物理基础架构上放置模块。此外,模块可以在服务图中了解它们与其各个邻居的接近度。基于确定的接近度值,模块可以适配它们的操作点。
[0041] 在
现有技术内,通信交互的粒度必须在服务设计时固定。在本发明的实施例内,该粒度可以在运行时期间动态地改变。这在网络功能虚拟化NFV时代是高度相关的,在NFV时代虚拟模块-VNF-可在运行时动态地重新分配。
附图说明
[0042] 存在若干种方法来以有利的方式设计和进一步开发本发明的教导。为此,参考附图所示的本发明实施例的示例的以下解释。在附图中
[0043] 图1示出了根据本发明实施例的网络结构图。
具体实施方式
[0044] 在本发明的实施例中,模块知晓相对于另一个模块的位置和/或接近度,并使用该知晓来决定并且可能改变在运行时模块之间的交互量。接近的模块会选择彼此之间的利用许多RPC的丰富交互,而相隔甚远的模块会选择粗粒度交互,甚至根本没有交互。为了完成它们自己的工作,在没有与依赖关系图中的相邻模块的交互的情况下,模块将不得不基于自己的测量、关于上下文变量的估计(如果与其它模块更接近,则其他模块可能已经更精确地提供所述上下文变量)等等来采取自主行为。根据本发明,丰富的交互与粗略的交互可以根据变化的模块放置而在服务的运行时期间改变。
[0045] 在实际的部署或实施例中,模块获得位置知晓或接近度知晓的方式取决于软件生态系统。例如,这种知晓例如可以通过诸如CORBA及其后来者之类的底层中间件来实现,它可以是管理程序层的一部分,诸如在Java远程方法调用的情况下的Java VM,它可以由模块本身经由延迟或其它模块间测量获得,它也可以通过服务协调器功能给予模块,在ETSI NFV体系结构中,NFVO(NFV协调器)会经由VNFM(VNF管理器)提供该指令。本发明对获得该知晓的确切方法没有任何限制,但为了便于解释,将在下文中假设知晓由协调器产生并通知给模块。可以按照不同度量表示位置信息或接近度信息。可以按照模块之间的延迟表示接近度。它也可以用跳数、网络带宽或其它度量来表示。
[0046] 在图1中,模块B和C是并置的。由于它们通过来自协调器的通知(例如经由每个模块的专用API基元)来知晓这个事实,它们将使用丰富的协作模式,这可能涉及许多RPC。虽然模块B和C都与模块A有交互依赖关系,但交互可能会较粗略,因为模块A位于不同的物理机器上,即节点1上,虽然它们经由高速网络连接。由于模块C和D经由低速网络连接进行连接,因此它们可能会选择更粗的交互粒度,或者它们可能没有任何RPC交互,无论如何导致纯数据平面转发关系。
[0047] 与本发明实施例一起使用的众所周知的示例是移动边缘计算MEC程序,诸如知晓RAN的视频编码转换模块。如果该模块在MEC节点上运行,则它将经由MEC接口访问本地RAN信息。如果协调器决定将其放置得远离RAN,例如放置在汇聚网络计算节点中,则编码转换模块通常或者具有对远程MEC接口的有限的访问(有些厂商建议将有限的RAN信息进一步散布到汇聚网络中),或者它必须对其本身进行一定程度的RAN测量(诸如应用程序级延迟监视)或者求助于RAN无关的方法(诸如访问本地TCP堆栈信息)。从这个示例中,可以清楚地看到模块(这里是编码转换模块和MEC“模块”)之间的接近度如何导致不同的操作点,即不同的交互粒度。
[0048] 为了使协调器作出明智的模块放置决定,需要知晓各个模块的不同操作点。在本上下文中的操作点被定义为在模块间接近度与“效益度量”之间的依赖性声明,该效益度量用于捕获给定接近度对可能的模块性能质量的影响,该模块性能质量继而由模块之间的交互粒度确定。因此,在服务图中-即在切换到用于服务执行的协调器的服务规范中-必须针对模块之间的每个链接明确公开这些操作点。
[0049] 仅靠位置知晓或邻近知晓本身是不够的。模块也需要能够处理这些信息,即适配它。作为一个实施例,这可以经由所谓的状态模式来实现,参见https://en.wikipedia.org/wiki/State_pattern。这意味着模块针对它们各自的操作点维护状态机。取决于模块与服务图中其它相邻模块的接近度,更新模块内部状态机。然后模块将根据其内部状态来不同地实现特定的动作-诸如在上面的示例中获取某些RAN信息。
[0050] 在本文阐述的本发明的许多
修改和其它实施例将被本发明所属领域的技术人员想到,其具有在前面的描述和相关附图中呈现的教示的益处。因此,应该理解的是,本发明不限于所公开的特定实施例,并且修改和其它实施例旨在被包括在所附
权利要求的范围内。虽然本文使用了特定的术语,但它们仅用于一般性和描述性的意义,而不是为了限制的目的。