一种面向服务网络的服务路由器及服务网络系统
技术领域
本发明属于服务计算领域,具体涉及一种面向服务网络的服务路由器,及包含该服务路由器的服务网络系统。
背景技术
随着面向服务思想和实践的日益普及,以及大数据、云计算和物联网的兴起,包括计算、存储在内等多项软件业务普遍呈现出服务化的趋势。在这一过程中,服务的形态发生重大变化,表现为由小到大的、由简单到复杂的演化过程,具体由传统技术领域的Web服务发展为以先进IT技术为支撑、软件与物理业务过程相结合的现代化服务。同时服务的构成也更加复杂化,由相对分散、以服务提供商的组织为单位的服务组织形式进一步发展为面向领域的复杂服务网络,形成整合的服务生态系统。复杂服务网络的构建以及服务网络内海量服务的查询、寻址和组合等都是亟待解决的问题。
服务网络的构建也对基于TCP/IP的传统的互联网技术提出了更多、更深刻的挑战。互联网最初的目标是为了追求网络的互联以实现硬件资源的共享,由于最开始的通信需求发生在两台实体设备之间,为了确定设备的位置,互联网通过IP地址来标识不同的设备以支持设备间的数据通信,同时IP协议以其自身的简单性降低了网络互联的成本、增强了网络的适应性。然而随着技术的进步以及信息化的普及,硬件共享的需求早已逐渐下降,信息共享成为主要目标。用户关注的不再是内容存储在哪里,而是内容本身,以及内容检索与传输的速度、质量和安全性。目前的IP网络架构仍然根据设备地址进行信息内容的检索和传送,这样做在适应上层应用的变化上显得低效。在这种情况下目前已经出现了CDN、P2P等技术,这些技术的出现表明IP网络有向以内容为中心的网络架构转变的趋势,CDN、P2P可以认为是互联网为了适应这种转变而打的补丁。
未来网络不仅仅承载信息的传输,而且将承载海量和差异化的服务,网络传输和服务已经开始融为一体,针对这种情况,面向资源、以内容为中心的网络架构成为目前研究的热点。该网络架构让用户将注意力集中在需要的内容而不是位置上,对所请求的数据和内容进行命名和编址,不需要根据主机的位置进行寻址和路由、提高了内容组织、存储和传递的效率。
发明内容
本发明的目的是提供一种面向服务网络的,基于该服务路由器作为支撑载体来构建服务网络,并利用该服务路由器为服务网络内海量服务的查询、寻址和组合等问题提供解决方案。
为达到上述目的,本发明提供如下技术方案:
一种面向服务网络的服务路由器,包括:
路由构件,用于服务的定位、寻址,以及服务请求消息的转发;
注册中心构件,用于服务信息的存储、索引,以及支持服务的查询、注册和组合;
消息处理构件,用于服务路由器与外部的消息通信,以及内部路由组件和注册中心组件的通信。
与网络层的数据包路由不同的是,本发明的路由构件工作在网络层之上,主要用于服务网络中服务的定位和寻址,以及服务请求消息的转发。具体地,所述路由构件包括:
控制平面,通过与路由索引表交互,实现路由管理、路由定位与路由更新;
路由索引表,作为路由构件的核心数据结构,包括转发表、缓存索引表以及请求状态表;
数据通道,用于路由消息的解析、转换和封装。
不同于IP网络中基于IP地址前缀的路由,本发明中,基于服务网络中服务的名字前缀构建路由构件对服务网络中服务的路由,服务网络中各路由构件之间采用基于OSPF扩展的动态路由协议,通过Opaque LSA在链路状态交换的过程中同时发布各服务路由器内的名字前缀信息,并据此建立服务网络内名字前缀到服务路由器地址的映射,实现服务网络内按照服务名字进行路由的功能,同时能够很好的兼容原IP网络的路由协议。
上述消息处理构件作为整个服务路由器对外的消息出入口以及服务路由器内部构件之间的消息通道,主要用于服务路由器与外部的通信以及服务路由器内部组件之间的通信。具体地,所述服务路由器接收的消息经消息处理构件初步解析和预处理后,根据消息类型将预处理后的消息转送到路由构件或注册中心构件。该消息处理构件使得路由构件和注册中心构件互相解耦,作为独立的逻辑功能构件,互相无需感知对方的存在,从而让整个服务路由器更加易于管理和扩展。
其中,所述注册中心构件包括:
存储和索引模块,用于服务基本信息的存储和索引,以及对所存储的海量服务信息进行数据挖掘,以支持其它模块的功能,比如通过特征提取和聚类等,为标准服务模块进行服务抽象和统一提供支持;
服务查询模块,用于查询输入的处理以及查询条件的组合和优化;
服务组合模块,包括服务组合描述语言的编译器和服务组合执行引擎,用于实现符合用户描述的服务组合功能;
标准服务模块,用于对广泛使用的、功能相同或近似的服务进行抽象和统一,提供一致的标准服务接口。
上述存储和索引模块支持多种数据库及索引引擎,同时还支持多种大数据分析引擎。其中,服务组合描述语言包含于服务统一描述语言。
所述标准服务模块还用于解决用户在面临众多近似功能的服务时的选择困惑,使用基于规则的方法或者人工智能技术自动生成一致的标准化服务。此外,所述标准服务模块能够基于用户的限定条件以及各服务的状态,智能映射所选的标准服务到服务路由器内最佳的实体服务。
一种网络服务系统,包括服务消费者、服务提供者、上述服务路由器,其中,所述服务路由器与服务路由器和服务消费者通信。
本发明的有益技术效果在于:
本发明提出的服务路由器作为构建服务网络的支撑载体,为服务网络中服务的定位、查询和组合等问题给出了高效的解决方案,同时提出的标准化服务能很大程度简化服务消费者的服务消费过程。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
图1为服务路由器的整体架构示意图。
图2为路由索引表示意图。
图3为路由数据包转发流程示意图。
图4为携带名字前缀信息的Opaque LSA的消息报文格式。
图5为服务网络系统中一个简单的服务路由器的网络拓扑示意图。
图6为图5所示服务网络中某时刻某路由器的名字前缀表和路由表。
图7为服务组合模块基本处理流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
图1为本发明所述的服务路由器的整体架构示意图,如图1所示,服务路由器包括以下构件:路由构件(router)、注册中心构件(registry)、以及消息处理构件(server)。其中,路由构件用于服务的定位和寻址,以及服务请求消息的转发;注册中心构件用于服务信息的存储、索引,以及支持服务的查询、注册和组合等;消息处理构件用于服务路由器与外部的消息通信,以及内部路由组件和注册中心组件的通信。
具体地,消息处理构件作为整个服务路由器对外的消息出入口,以及路由器内部构件之间的消息通道,主要用于服务路由器与外部的通信以及服务路由器内部组件之间的通信。服务路由器会接收到多种类型的消息,这些消息均先经过消息处理构件,由消息处理构件初步解析和预处理后,再根据类型传送给路由构件或者注册中心构件。消息处理构件使得路由构件和注册中心构件互相解耦,作为独立的逻辑功能构件,互相无需感知对方的存在,从而让整个服务路由器更加易于管理和扩展。
与网络层的数据包路由不同的是,本实施例提供的路由构件工作在网络层之上,主要用于服务网络中服务的定位和寻址,以及服务请求消息的转发,具体包含控制平面、路由索引表和数据通道。其中,控制平面主要是通过与路由索引表交互,实现路由管理、路由定位与路由更新等功能;路由索引表是路由构件内的一些核心数据结构,如图2所示,包括转发表(FBI),缓存索引表(CIT),请求状态表(PIT);数据通道用于路由消息的解析、转换和封装。
以下具体介绍服务网络系统内基于服务路由组件的数据包路由查找过程:
首先,服务网络是一种内容中心网络,服务作为主要内容成为网络处理的基本对象,将服务的存储地址、安全性和可访问性与服务内容分离开;并且以名字作为对服务索引的唯一依据进行服务路由。
其次,服务网络中的服务命名采用类似URL的层次化的命名机制,一个名字由多个词元组成,每个词元是一个可变长的字符串,各个词元之间通过定界符进行区分。相比扁平的命名机制,采用层次化命名主要是因为层次化的命名机制有利于控制路由表的规模。在IP网络中,IP路由表通过IP前缀聚合来减少前缀表项的个数。与之类似,层次化的名字前缀也可以进行聚合,从而减少服务路由表的表项数目,防止路由表的条目数爆炸。同时,层次化的名字结构有利于服务提供者在同一个命名空间下发布自己的服务,便于标识和统一管理,同时支持服务提供者自定义内容进行交互扩展。
然后,路由构件处理的数据包可分为两类:服务请求数据包和服务回复数据包。服务消费者发送服务请求包,其中包含所请求的服务名字和参数,经服务网络路由后,到达服务提供者,服务提供者根据请求回复结果,同样经过服务网络路由返回到服务消费者。服务路由器为了提供更好的服务,存储了三种逻辑结构来维护状态信息(见图2):转发表(FIB)、请求状态表(PIT)、缓存索引表(CIT)。
转发表与IP网络中的路由转发表类似,记录服务请求数据包将被转发的下一跳的服务路由哈希,以及相应的路由路径度量值,包括时延、带宽、负载情况等。通过名字前缀聚合路由表,同时执行最长前缀匹配算法实现路由表查找。
请求状态表中存储那些还没有收到服务响应的有特殊需求的服务请求数据包的状态信息,以类似<名字前缀,源地址哈希,其它属性>的格式存储。其中“名字前缀”是聚合后的路由前缀,源地址哈希为请求同一服务的不同请求方的地址标识。
缓存索引表存储近期被服务路由缓存的高频服务请求的回复内容,采用<名字,数据指针>的格式进行存储。“名字”为服务发布在服务网络中的名字,“数据指针”指向实际存储数据的物理内存的位置。
最后,对于服务请求数据包和服务回复数据包的转发机制如图3所示:路由构件收到服务请求数据包后,首先根据服务请求数据包的服务名字和参数、以及过期时间,在缓存索引表中进行查找,如果命中,且符合条件,则直接返回查找结果给服务请求方;如果缓存索引表中不存在查找结果,或者查找结果不符合条件,则在请求状态表中进行查找;如果找到对应的表项,说明具有相同内容,说明相同的请求数据包已经被转发过,但是还没有收到相应的回复,因此在对应的表项增加该请求的源地址,并丢弃该服务请求数据包,不再转发;如果没有查找到,需要为该请求添加新的服务请求状态表项,并继续在转发表中进行查找;如果在转发表中查找到多条路径,则由相应的路由算法根据路径度量值选择合适的转发路径;若转发表也没有找到相应的名字路由信息,则丢弃该服务请求数据包。
路由构件收到服务回复数据包后,根据服务回复数据包中携带的名字,在请求状态表中检索,获取对应请求方的源地址,将结果转发出去;对于符合条件的结果进行缓存,并设置对应的缓存索引表;如果没有找到,或者对应的内容已经被转发,那么丢弃该服务回复数据包。
路由构件对服务网络中服务的路由,不同于IP网络中基于IP地址前缀的路由,而是基于服务网络中服务的名字前缀;网络中各路由构件之间采用基于OSPF扩展的动态路由协议,具体的,OSPF是一种链路状态路由协议,网络中的路由器通过聚合全网的链路状态信息构造链路状态数据库,该数据库利用网络中的链路状态通告泛洪信息不断进行更新,达到收敛后全网的所有路由器都包含一份相同的链路状态数据库,并在此基础上执行最短路径算法计算出到达各个节点的最优路径,当网络的拓扑发生任何变化时,路由表都会被重新进行计算。
OSPF支持一类Opaque LSA(Link State Advertisement)来支持应用功能的扩展。Opaque LSA报文在标准的LSA首部后面包含应用专属的域信息,如图4所示,Opaque LSA报文携带了路由器内的名字前缀信息。利用这一点在链路状态交换的过程中同时发布各路由器内的名字前缀信息,并据此建立服务网络内名字前缀到路由器地址的映射,实现服务网络内按照服务名字进行路由的功能,同时能够很好的兼容原IP网络的路由协议。以图5所示的网络拓扑为例,运行上述的扩展的OSPF协议后,网络中某台路由器的名字前缀表和路由表如图6所示,通过这两张表可以构建出路由构件中的FIB。
注册中心构件包含服务基本信息的存储和索引模块、服务查询模块、服务组合模块以及标准服务模块。其中,存储和索引模块属于底层模块,主要用于服务基本信息的存储和索引,以及对所存储的大规模服务信息的数据挖掘,以支持其它模块的功能;服务查询模块用于查询输入的处理以及查询条件的组合和优化;服务组合模块包括服务组合描述语言的编译器和服务组合执行引擎,用于实现符合用户描述的服务组合功能;标准服务模块用于对广泛使用的、功能相同或近似的服务进行抽象和统一,提供一致的标准服务接口。
具体地,存储和索引模块支持多种数据库及索引引擎,同时还支持多种大数据分析引擎。
标准服务模块用于解决用户在面临众多近似功能的服务时的选择困惑,使用基于规则的方法或者使用人工智能技术生成一致的标准化服务;在系统早期服务数量较少的情况下,主要通过基于规则的方法人工生成标准服务,当系统内积累的服务数量达到一定规模以后,可以通过机器学习等人工智能技术进行自动生成。
所生成的标准化服务会在存储模块中与普通服务分开存储,在检索发生时默认同时检索普通服务和标准服务。
标准服务模块能够基于用户的限定条件以及各服务的状态,智能映射所选的标准服务到当前系统内最佳的实体服务。
图7所示为服务组合模块的基本执行流程:该模块的输入为用户通过使用图形化工具或者直接通过服务组合描述语言提交的服务组合的需求,这些需求描述经过服务组合描述语言编译器的检查、验证后翻译成可被服务组合执行引擎执行的指令,最终由服务组合引擎完成执行并返回结果。服务之间的组合关系一般通过有向无环图进行建模。组合服务构建完毕后可以存储起来以后直接使用,也可以作为基本构建块参与组合形成更复杂的组合服务。
所述服务组合描述语言包含于服务统一描述语言。
以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。