买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】用于数据中介的方法和装置_瑞典爱立信有限公司_201580075771.X 

申请/专利权人:瑞典爱立信有限公司

申请日:2015-02-10

公开(公告)日:2020-07-14

公开(公告)号:CN107251537B

主分类号:H04L12/14(20060101)

分类号:H04L12/14(20060101);H04M15/00(20060101);H04W4/24(20090101)

优先权:

专利状态码:有效-授权

法律状态:2020.07.14#授权;2018.01.26#实质审查的生效;2017.10.13#公开

摘要:本文的教导公开了一种用于电信网络中的数据中介的方法和装置,并且以下述方式提供了对传入数据流的有利处理:减少了处理所需的解码量,并且相应地减少了传送经处理的数据流所需的重编码量。这些教导使用工作数据结构,该工作数据结构提供用于处理数据流中的目标数据项的存储器高效数据结构,并且例如在包括一个或多个通信接口在内的数据中介节点中实现,通信接口例如用于接收用于数据中介处理的传入数据流,以及用于将经处理数据流向目标收件方发送。

主权项:1.一种在中介节点10处进行处理的方法200,所述中介节点10被配置为用于电信网络8中的数据中介操作,所述方法200包括:接收202传入数据流,所述传入数据流包括根据第一编码来编码的且根据所定义的分级结构来布置的编码数据项;将所述传入数据流存储204为存储数据流,所述存储数据流在不解码的情况下被存储在工作数据结构40的根节点120处,所述工作数据结构40定义了与所述存储数据流中编码的多个数据项相对应的另外的节点122;识别206所述存储数据流中作为数据中介处理的目标的目标数据项;基于以下各项来提取208所述目标数据项:沿着遍历路径遍历208A所述存储数据流的所定义的分级结构,直到到达所述目标数据项为止;以及对于在到达所述目标数据项之前沿着所述遍历路径遇到的每个中间数据项,在不进行解码的情况下将所述中间数据项从所述根节点120移动208B到所述工作数据结构40中对应的另外的节点122;对于所述目标数据项,对所述目标数据项进行解码208C,并且使用经解码的目标数据项来填充所述工作数据结构40中对应的另外的节点122;以及提供210所述工作数据结构40,以便处理经解码的目标数据项。

全文数据:用于数据中介的方法和装置技术领域[G001]本发明总体涉及电信网络,且具体涉及电信网络中的数据中介mediation。背景技术[0002]电信网络和其他复杂处理系统中的操作的几乎每个方面都涉及对数据的收集、处理和传输。通常,由于带宽、安全性等原因,数据被编码或以其他方式封装,以在联网节点之间传输。因此,在针对产生、处理、编码和解码数据的重复且持续的需要的驱动下,这种系统中产生了显著的计算负担。[0003]在某些示例环境中,例如在电信网络中的中介系统内的“数据中介”领域中,负担尤其严重。网络数据是任何网络运营商的所有营收保证操作的使能成分,且其必须完整和正确,以便网络运营商执行策略、产生计费和账单信息,并采取广泛范围的其他动作中的任何动作,例如市场分析、服务保证、网络规划等。[0004]在电信网络环境中,中介系统在网络中收集、格式化和分发数据,用于各个活动,包括计费和账单、欺诈检测和统计分析。典型的中介系统与各种类型的节点包括接入和核心网络节点)对接,以例如用于保护与在网络内发生的可计费电信事件相关联的计费数据记录CDR。相应地,中介系统向各种操作支持系统0SS服务器提供这些数据或这些数据的聚合或修改集合。0SS服务器执行“后台”活动,例如针对通信服务的维护和预配置支持。还向各种商务支持系统BSS服务器提供相同或其他的中介数据。BSS服务器通常提供面向订户的服务,例如账单和订单管理功能。[0005]在特定示例中,中介系统从面向核心网和或接入网的各种“南向”(southbound接口收集数据。中介系统对所收集的数据应用各种处理,例如整合、共同相关(corelation或相关、丰富化等,并且在面向各种BSS和OSS服务器的一个或多个“北向”接口上发送经处理的数据。[0005]在许多场景中,向中介系统传入的数据以TLV格式编码,其中,TLV是指类型Type、长度(Length和值Value。诸如ASN.l、Diameter、Radius、移动自组织网络、MANET等协议都支持以TLV格式表示的数据。TLV编码数据需要在处理前解码。TLV解码提供了一种基于对象的表示,以便该数据的“用户”更容易地操纵。这里,术语“用户”具有专门的含义,因为其表示参与某种数据处理的处理或功能。经常在这种处理之后,得到的数据必须根据适用的规范来进行重新编码,以便传递给另一个节点或用户,例如用于进一步的操纵或归档。[0007]通常,所涉及的数据记录涉及多个单独的数据字段或数据项。例如,参见以下两个文件,其提供了基于以下第三代合作伙伴计划3GPP规范的用于网络中CDR的表示的相关规范:3GPPTS32_297:ChargingDataRecordCDRfileformatandtransfer,vl2_2.0、以及3GPPTS32.298:ChargingDataRecordCDRparameterdescription。与接收复杂的编码数据结构、对它们进行解码、对从解码数据中选择的数据项进行处理、然后将数据重新编码以便向另一个节点或处理传输相关联地消耗了大量计算负载和处理时间。[0008]据信,典型的中介系统可能花费多达其百分之四十到百分之五十的时间来执行数据解码和编码,并且已经尝试去至少解决该处理开销的某些方面。参见例如Karlsson的美国专利No.8,819,135,其使用一种选择性解析的形式来提高在处理从数据通信网络传入的数据流时的效率。Little的美国专利No.8,526,618在接收机提供了处理编码消息的另一己知示例。而且,在稍微不同的环境中,可能有用地参考用于被称为“SAX”或“XML的简单API”的XML文档解析算法的广泛可用文献。发明内容[0009]本文的教导公开了一种用于电信网络中的数据中介的方法和装置,并且提供了以下述方式对传入数据流的有利处理:其减少了处理所需的解码量,并且相应地减少了为了传送经处理的数据流所需的重编码量。这些教导使用工作数据结构,该工作数据结构提供用于处理数据流中的目标数据项的存储器高效数据结构,并且实现了这些教导。这些教导例如在包括一个或多个通信接口在内的数据中介节点中实现,该一个或多个通信接口例如用于接收用于数据中介处理的传入数据流,以及用于将经处理的数据流发送给目标接收方。[0010]一种在中介节点处进行处理的示例方法,所述中介节点被配置为用于电信网络中的数据中介操作,所述方法包括接收传入数据流。传入数据流包括根据第一编码来编码的且根据定义的分级结构来布置的编码数据项。方法还包括将传入数据流存储为存储数据流,其中,所述传入数据流最初在不解码的情况下被存储在工作数据结构的根节点处,所述工作数据结构定义了与存储数据流中编码的多个数据项相对应的另外的节点。方法还包括识别存储数据流中的目标数据项,即作为数据中介处理的目标的数据项。此外,方法包括基于沿着遍历路径遍历存储数据流的所定义的分级结构,直到到达目标数据项为止,来提取目标数据项。[0011]对于在到达目标数据项之前沿着遍历路径遇到的每个中间数据项,方法包括在不进行解码的情况下将中间数据项从根节点移动到工作数据结构中对应的另外的节点。对于目标数据项,方法包括对目标数据项进行解码,并且使用经解码的目标数据项来填充工作数据结构中对应的另外的节点。该方法附加地包括提供工作数据结构,以便处理经解码的目标数据项,例如根据给定工作流程中定义的操作进行处理。[0012]根据本文公开的实施例的示例中介节点被配置用于电信网络中的数据中介操作,并且其包括通信接口和与通信接口有效关联的处理电路。通信接口被配置为接收传入数据流,所述传入数据流包括根据第一编码来编码的且根据定义的分级结构来布置的编码数据项。相应地,处理电路被配置为将传入数据流存储为存储数据流,其中,所述存储数据流在不解码的情况下被存储在工作数据结构的根节点处,所述工作数据结构定义了与存储数据流中编码的多个数据项相对应的另外的节点。[0013]处理电路还被配置为:基于被配置为沿着遍历路径遍历存储数据流的所定义的分级结构直到达到目标数据项为止,识别存储数据流中的目标数据项并提取目标数据项。对于在到达目标数据项之前沿着遍历路径遇到的每个中间数据项,处理电路被配置为在不进行解码的情况下将中间数据项从根节点移动到工作数据结构中对应的另外的节点。对于目标数据项,处理电路被配置为对目标数据项进行解码,并使用经解码的目标数据项来填充工作数据结构中对应的另外的节点,并且还被配置为提供工作数据结构,以便处理经解码的目标数据项。例如,它将工作数据结构传递给给定的“处理作业”或其他功能,或者使工作数据结构可用于该处理。[0014]在另一个实施例中,中介节点被配置用于电信网络中的数据中介操作,并且包括适于接收传入数据流的装置,所述传入数据流包括根据第一编码来编码的且根据所定义的分级结构来布置的编码数据项。中介节点还包括适于将传入数据流存储为存储数据流的装置,其中,所述传入数据流在不解码的情况下被存储在工作数据结构的根节点处,所述工作数据结构定义了与存储数据流中编码的多个数据项相对应的另外的节点。[0015]中介节点还包括适于识别存储数据流中用于数据中介处理的目标的目标数据项的装置,以及所述装置适于基于沿着遍历路径遍历存储数据流的所定义的分级结构,直到达到目标数据项为止,来提取目标数据项。对于在到达目标数据项之前沿着遍历路径遇到的每个中间数据项,中介节点适于在不进行解码的情况下将中间数据项从根节点移动到工作数据结构中对应的另外的节点。对于目标数据项,中介节点适于对目标数据项进行解码,并使用经解码的目标数据项来填充工作数据结构中对应的另外的节点,并且提供工作数据结构,以便处理经解码的目标数据项。[0016]在另一示例性实现中,例如可以在数字处理电路中实现,中介节点包括第一模块,所述第一模块被配置为接收传入数据流,所述传入数据流包括根据第一编码来编码的且根据所定义的分级结构来布置的编码数据项。中介节点还包括被配置为将传入数据流存储为存储数据流的第二模块。这里,存储数据流在不解码的情况下被存储在工作数据结构的根节点处,工作数据结构定义了与存储数据流中编码的多个数据项相对应的另外的节点。中介节点包括第三模块,所述第三模块被配置为识别存储数据流中的目标数据项,该数据项是数据中介处理的目标。[0017]相应地,中介节点包括第四模块,所述第四模块被配置为基于沿着遍历路径遍历存储数据流的所定义的分级结构,直到到达目标数据项为止,来提取目标数据项。对于在到达目标数据项之前沿着遍历路径遇到的每个中间数据项,第四模块被配置为在不进行解码的情况下将中间数据项从根节点移动到工作数据结构中对应的另外的节点。对于目标数据项,第四模块被配置为对目标数据项进行解码,并且使用经解码的目标数据项来填充工作数据结构中对应的另外的节点。此外,中介节点包括第五模块,所述第五模块被配置为提供工作数据结构,以便处理经解码的目标数据项。[0018]当然,本发明不限于上述特征和优点。事实上,本领域的技术人员可在阅读下面的详细描述并查看附图时认识到其它特征和优点。附图说明[0019]图1是在示例性电信网络的环境中示出的中介节点的一个实施例的框图。[0020]图2是数据中介的方法的一个实施例的逻辑流程图。[0021]图3是在中介节点中实现的处理电路或模块的一个实施例的框图。[0022]图4是关于传入数据流处理的在中介节点中实现的处理流程的一个实施例的数据流程图。[0023]图5是与己知用于电信网络中的某些数据编码操作的类型长度值TLV编码相关联的数据结构的示意图。[0024]图6是例如在本文教导的一个或多个实施例中使用的、用于对经TLV编码的示例传入数据流进行处理的示例遍历路径的示意图。[0025]图7是传入数据流的示例表示,其被构造为具有多个数据项或字段并且具有用于这些数据项或字段的分级数据结构或布置的编码字节流。[0026]图S是根据图7的传入数据流的包含节点和对应的节点数据在内的工作数据结构的一个实施例的示意图。具体实施方式[0027]图1示出了根据示例实施例描绘的包括数据调节节点10在内的或者与数据中介节点10相关联的电信网络8。作为示例,电信网络8以下称为“网络8”)包括网际协议IP多媒体子系统或IMS12、电路交换核心网络14、演进分组核心或“EPC”网络16、以及一个或多个无线电接入网络或RANI8。在一个或多个示例中,RAN或RAN18包括演进通用陆地无线电接入网络或E-UTRAN,用于向诸如“用户设备”或UE之类的各种订户设备提供无线通信链路。[0028]示例网络8还包括一个或多个商务支持系统BSS服务器20和一个或多个操作支持系统0SS服务器22。相应地,数据中介节点10可以被理解为占用中介角色,其中,它从MSI2、核心网络14、EPC16和RAN18中的一个或多个接收网络数据,对该数据执行一个或多个中介操作,并将所得到的经处理的数据传送到BSS服务器20和或0SS服务器22。这里,术语“网络数据”是指计费数据记录CDR和或在向网络8的订户预配置和提供通信服务的基础上的其他账单、操作和管理数据。更广泛地说,为了一个或多个目的,数据中介节点10收集、格式化和分发基本上任何类型的网络数据。示例目的包括计费和账单、欺诈检测、性能分析、网络规划或其他统计分析。[0029]数据中介节点10的所示实施例(以下称为“中介节点10”)包括通信接口30,通信接口30被配置为接收包括根据第一编码来编码的并且根据所定义的分级结构来布置的编码数据项在内的传入数据流。此外,中介节点10包括与通信接口30有效关联的处理电路32。处理电路32还包括存储设备34或者与存储设备34相关联,在一个或多个实施例中,存储设备34存储计算机程序36和某些配置数据38。[0030]在至少一些实施例中,处理电路32包括处理电路(例如微处理器、DSP、FPGA、ASIC等),其被配置为至少部分地基于处理电路32执行包括计算机程序3e在内的计算机程序指令来执行本文教导的处理操作。该处理还可以通过配置数据38来控制或以其他方式通知,其中该数据可以包括所谓的“工作流程”指令。如稍后将解释的,工作流程是对特定传入数据或特定类型的传入数据执行的所定义的任务或一组任务。[0031]存储设备34包括一种或多种类型的计算机可读介质,并且可以包括诸如SRAM和或DRAM之类的易失性存储器。附加地或备选地,存储设备34包括诸如闪存、EEPR0M、固态盘等的非易失性存储器。在任何情况下,在使用计算机程序36的实施例中,存储设备34提供用于计算机程序36的非暂时性存储。这里,术语“非暂时性存储”不一定表示永久性存储,而是表示至少有一些持续时间的“持久”存储。因此,该术语不包括仅在传播信号中对信息的“存储”。[0032]无论是包括编程电路还是固定电路或者编程和固定电路的某些组合,处理电路32被配置为将传入数据流存储为存储数据流。具体地,传入数据流最初在不解码的情况下被存储在工作数据结构4〇的根节点处,该工作数据结构40定义了与存储数据流中编码的多个数据项相对应的另外的节点I22。工作数据结构40可以被生成并保存在处理电路32的工作存储器中,作为关于传入数据流执行的运行时处理run-timeprocessing的一部分。[0033]在非限制性示例实施例中,中介节点1〇包括用户接口42。例如,用户接口42包括键盘和显示器或其他输入输出设备或电路,或者包括到具有输入输出设备的另一个计算机系统的网络接口。在任何情况下,用户接口42是可以创建、删除、修改和保存工作流程定义以供中介节点1〇使用的机制的非限制性示例。这里,“工作流程”是任务定义,并且它指定要对某些数据项执行某些处理,并且可以包括中介节点10针对传入它的某些类型的数据流所要遵循的许多ahostof处理指令。[0034]针对正在讨论的示例性数据流及其相应的存储数据流,处理电路32被配置为:识别存储数据流中的以数据中介处理为目标的目标数据项,以及基于被配置为执行以经解码形式获得目标数据项的若干操作或动作来提取目标数据项。这些操作避免了不必要的解码并提供有利的存储器管理如将进一步说明的那样,这种处理在提取目标数据项期间,利用从根节点移动的编码数据项来预填充Prep-popu1ate工作数据结构40中的对应节点。预填充例如有助于对目标是任何预填充数据项的同一数据流进行任何进一步处理。[0035]更具体地,在示例实施例中,处理电路32被配置为:基于被配置为沿着遍历路径遍历存储数据流的所定义的分级结构直到达到目标数据项为止,从根节点中保存的存储数据流中提取目标数据项。对于在到达目标数据项之前沿着遍历路径遇到的每个中间数据项,处理电路32被配置为在不进行解码的情况下将中间数据项从根节点移动到工作数据结构40中对应的另外的节点。此外,对于目标数据项,处理电路32被配置为对目标数据项进行解码,并且使用经解码的目标数据项来填充工作数据结构40中对应的另外的节点。此外,处理电路32被配置为提供工作数据结构40,以便处理经解码的目标数据项。[0036]在上面的环境中,应当理解,工作数据结构40的“另外的节点”对应于存储数据流中的相应数据项,并且工作数据结构40具有树结构或反映存储数据流中的数据项之间的分级或关系的其他布置。当然,工作数据结构40可能不是完全建好的,相反,处理电路32可以只实例化工作数据结构40中保存具有经解码形式的目标数据项和保存具有经编码形式的中间数据项所必需的那些数量的分支和节点。在目标多于一个数据项的程度上,应当理解,工作数据结构40将被构建有对应于每个遍历路径的其它节点,g卩,引导至每个目标数据项的分级数据结构路径。[0037]这里值得强调的是,只有目标数据项被解码。也就是说,目标数据项从根节点移动、被解码并以经解码形式存储在工作数据结构40中其所对应的另外的节点中。中间数据项也从根节点移动并存储在工作数据结构40中对应的另外的节点中,但是它们不被解码。将数据项从根节点“移动”到其对应的另外的节点包括释放或重新使用为该数据项分配的根节点存储器。例如,所涉及的根节点存储器可以在逻辑上被重新定义为对应的另外的节点,例如使用指针或其他数据结构管理值,或者所涉及的根节点存储器可以被释放回到存储器池中,并且可以进行新的存储器分配以用于对应的另外的节点。在任何情况下,应当理解,将数据项从根节点移动到对应的另外的节点是以存储器高效的方式完成的。[0038]考虑配置数据38包括工作流程定义在内的工作示例,该工作流程识别要对所定义类型的传入数据流执行的一个或多个处理动作,并且假设在中介节点10处接收到这种传入数据流。处理电路32在工作数据结构40的根节点中以编码形式来存储传入数据流。处理电路32识别存储数据流中作为处理目标的一个或多个数据项。对于每个目标数据项,处理电路32遍历存储数据流中所定义的分级结构,例如树结构或其他父子对象结构,直到其达到目标数据项为止。处理电路32提取目标数据项,对其进行解码,并将其移动到工作数据结构40中的对应节点。此外,对于处理电路32在通向目标数据项的遍历路径上遇到的每个数据项这些项被称为中间数据项),处理电路32将中间数据项移动到工作数据结构40中的对应节点,但不对其解码。[0039]这种处理的最终结果是:工作数据结构40的根节点保存任何剩余的数据项,即,不作为中间数据项或目标数据项从根节点移动的数据项。剩余的数据项仍然具有其编码形式,并保留了它们在存储数据流内的分级关系。然而,根节点不再保存来自存储数据流中的、曾被识别为目标数据项或遇到的中间数据项的任何数据项。更具体地,每个目标数据项被移动到工作数据结构40中对应的另外的节点,并以经解码形式存储在那里,并且每个中间数据项被移动到工作数据结构40中对应的另外的节点,并以经编码形式存储在那里。因为工作数据结构40的这些另外的节点根据原始传入数据流的所定义的分级数据结构来体现或以其他方式在逻辑上相互链接,所以保留了剩余的数据项、目标数据项和中间数据项之间的分级关系。这种对分级数据关系的保留是在处理目标数据项之后对传出数据流进行重新编码的关键。[0040]因此,在接收到用于处理的给定传入数据流之后,处理电路32根据上述教导构建工作数据结构40。这样,处理电路32识别目标数据项,并相应地构建工作数据结构40。提供所生成的包括其以经解码形式保存的一个或多个目标数据项在内的工作数据结构40,以便根据一个或多个工作流程定义进行处理。这种处理可以由处理电路32或中介节点10中的其他电路来执行。[0041]工作流程处理导致对目标数据项的修改或对新数据项的创建,并且工作数据结构40可以被更新以反映该处理的结果,或者可以创建新的工作数据结构40。这里,可以注意到:可以将多于一个的工作流程或至少多于一个的处理操作应用于任何给定的工作数据结构40。此外,这种处理可以使用所得到的任何新的工作数据结构40。因为每个进一步的处理操作都可能涉及在先前处理中己涉及的一个或多个数据项,即曾在先前处理中成为目标或被遍历的数据项,进一步处理中涉及的具体数据项可能已经从根节点移动到工作数据结构中的其对应节点,因而避免了需要再次执行这些动作,且从而提高了进一步处理的效率。[0042]还将理解,一旦对给定的工作数据结构40执行了所有处理,则可以根据与所涉及的数据类型的传输相关联的任何标准或协议,将其中包含的数据“重新打包”。例如,考虑传入数据流包括CDR的情况。在根据上述教导构建了用于CDR的工作数据结构40之后,并且在完成了为了处理CDR所定义的处理操作之后,可以将工作数据结构40中保持的数据项重新编码为新的或经修改的CDR,该新的或经修改的⑶R包括通过所应用的处理而获得的任何新的或经修改的数据。然后,可以使用用于在中介节点8内或由中介节点8交换的任何其他⑶R的相同协议,将新编码的⑶R发送到目标接收方。就此而言,“目标接收方”可以是在中介节点10内执行的另一个计算处理、功能或工作流程,或者目标接收方可以在中介节点10的外部例如BSS应用服务器20之一或0SS应用服务器22之一)。[0043]因此,对于包括一个或多个经解码的目标数据项在内的给定的工作数据结构40,并且假设针对给定的工作数据结构4〇的全部所需处理至少针对给定的工作流程都已经完成,处理电路32是被配置为形成传出数据流。处理电路32基于被配置为将所述处理之后的经解码的目标数据项或由所述处理生成的对应的导出数据项重编码为新编码的数据项,来形成传出数据流。处理电路32还被配置为将新编码的数据项与先前移动到工作数据结构40中对应的另外的节点的中间数据项、以及未从根节点移动的任何剩余的数据项聚合,并且向目标接收方提供传出数据流。[0044]作为一般命题,对于任何给定的传入数据流或对应的存储数据流,处理电路32被配置为通过访问针对所定义的处理工作流程来存储的工作流程信息来识别目标数据项,其中所定义的处理工作流程指示目标数据项。所定义的处理工作流程可以将任何数量的数据项识别为“目标数据项”,并且处理电路32被配置为提取每个目标数据项,并且根据到每个目标数据项的遍历路径,执行上述针对每个目标数据项的移动和填充的操作。[0045]在至少一些实施例中,传入数据流包括使用类型长度值TLV编码来编码的字节流。TLV编码将字节流的分级结构定义为树结构。相应地,通往TLV编码字节流中的给定数据项的遍历路径延伸经过树结构中到达目标数据项所需的多个级别。[0046]更一般地,在传入数据流的所定义的分级结构包括树结构的情况下,一个或多个实施例中的处理电路32被配置为以下述方式来遍历所定义的分级树结构:从树结构的基础级别开始,以广度优先遍历的方式,前进至到达目标数据项所需的树结构中多个接下来的级别。因此,在树结构的每个级别处的广度优先遍历从该级别的第一数据项开始,并且前进通过该级别的每个接下来的数据项,直到遇到目标数据项为止,在这种情况下,遍历结束,或者直到遇到位于遍历路径上的容器数据项为止,在这种情况下,遍历前进到树结构的下一级别的第一个被包含的数据项,并且在该下一级别处重新开始广度优先遍历。这里,应当理解,“容器数据项”包含一个或多个不同的数据项,例如“子”数据对象,并且实际上可以包含其他容器数据项。[0047]所构思的遍历技术可以被理解为,沿着传入数据流的编码分级所允许的最直接或最短遍历路径下钻drilldown。如上所述,传入数据流可以是包括与网络8中的可计费事件相关联的多个数据项在内的CDR。在特定示例中,应用于传入CDR的第一编码包括使用例如基本编码规则或BER的抽象语法符号一ASN.1编码。[0048]图2示出了中介节点10处进行处理的示例方法200,该中介节点10被配置用于电信网络8中的数据中介操作。方法步骤中的一个或多个可以按照不同于示例逻辑流程图所建议的顺序来执行。此外,可以重复方法200的全部或部分,以根据多个期望的处理操作来处理给定的传入数据流,并且可以针对多个传入数据流中的每一个来重复方法2〇〇和或针对不同的传入数据流并行地执行方法200。此外,应当理解,方法200可以与其他正在进行的处理操作合作或作为其一部分来执行。[0049]方法200包括接收框202包括根据第一编码来编码的且根据所定义的分级结构来布置的编码数据项在内的传入数据流。方法200还包括将传入数据流存储框204为存储数据流,该存储数据流在不解码的情况下被存储在工作数据结构40的根节点处,该工作数据结构40定义了与存储数据流中编码的多个数据项相对应的另外的节点。[0050]方法200还包括识别框206存储数据流中作为数据中介处理目标的目标数据项。此外,方法200包括提取框208目标数据项。[0051]该提取包括沿着遍历路径遍历框208A存储数据流的所定义的分级结构,直到到达目标数据项为止。对于在到达目标数据项之前沿着遍历路径遇到的每个中间数据项,方法200包括在不进行解码的情况下将中间数据项从根节点移动框208B到工作数据结构40中对应的另外的节点。对于目标数据项,方法200包括对目标数据项进行解码框208C,并且使用经解码的目标数据项来填充工作数据结构40中对应的另外的节点。此外,方法200包括提供框210工作数据结构40,以便处理经解码的目标数据项。[0052]图3示出了功能处理模块布置,其中中介节点10包括被配置为接收传入数据流的第一模块或接收模块50。传入数据流包括根据第一编码来编码的且根据所定义的分级结构来布置的编码数据项。中介节点10还包括被配置为将传入数据流存储为存储数据流的第二模块或存储模块52。存储数据流在不解码的情况下被存储在工作数据结构40的根节点处,工作数据结构40定义了与存储数据流中编码的多个数据项相对应的另外的节点。[0053]根据所示的实施例,中介节点10包括被配置为识别存储数据流中作为数据中介处理目标的目标数据项的第三模块或识别模块54。此外,中介节点10包括被配置为提取目标数据项的第四模块或提取模块56。该提取基于沿着遍历路径遍历存储数据流的所定义的分级结构,直到到达目标数据项为止。对于在到达目标数据项之前沿着遍历路径遇到的每个中间数据项,提取模块56在不进行解码的情况下将中间数据项从根节点移动到工作数据结构40中对应的另外的节点。对于目标数据项,提取模块56对目标数据项进行解码,并且使用经解码的目标数据项来填充工作数据结构40中对应的另外的节点。作为这种布置的补充,中介节点10还包括第五模块或提供模块58,其被配置为提供工作数据结构40,以便处理经解码的目标数据项。[0054]如图所示,该处理可以根据图3所示的一个或多个工作流程如存储设备34中存储的一个或多个工作流程60来执行。注意,工作数据结构40可以至少暂时被保持在工作存储器中,例如可以用于运行时实例化和使用工作数据结构40。[0055]此外,尽管在图中没有具体示出,但是可以根据需要多次处理工作数据结构40的根节点中保存的存储数据流,以针对一个工作流程或针对两个或更多个工作流程来提取多于一个数据项。因此,多个工作流程或多个处理操作可能涉及同一个工作数据结构40,并且可以根据需要多次执行本文描述的路径遍历操作,以提取所有目标数据项,且每一次遍历都受益于与之前的遍历有重叠的任何路径。[0056]在完成工作流程处理之后,另一个处理或节点可能需要处理结果,并且中介节点10包括第六模块或聚合模块60。聚合模块60将经解码的目标数据项或由此获得的数据项与曾被填充到工作数据结构40中它们各自节点中但未解码的中间数据项、以及根节点中以经编码形式留下的数据项聚合在一起。该聚合将被理解为包括对经解码的目标数据项或由此获得的新的数据项的重编码。重编码通常将遵循或以其他方式保留传入数据流的数据分级。以这种方式,可以处理给定类型的传入数据流例如给定的传入字节流),以形成具有相同结构和格式的新的或经修改的数据流,然后,新的或经修改的数据流可以被重编码成与传入字节流兼容的形式,以便向另外的处理或节点传递。[0057]经处理的数据的目标接收方可以在中介节点10内,例如,在该中介节点1〇中,一个数据中介处理向另一个数据中介处理提供结果的情况下,或者目标接收方可以在中介节点10的外部。在任一情况下,一个或多个实施例中的处理电路32被配置为:以与编码和父换协议兼容的方式,跨处理边界来传递经处理的数据流,其中该编码和交互协议通常适用于这些边界和所涉及的数据类型。例如,由中介节点10内的处理电路32实现的每个“用户处理”可以执行传入数据流处理,并提供具有与传入数据流相同的编码和或结构的对应传出数据流。这里,“用户处理”可以被定义为由给定的工作流程60定义的功能或功能集合。[0058]图4是根据本文教导的一个或多个实施例的数据流程图,并且提供了在不同用户处理的环境中的有用说明。可以看出,如上述示例所述,传入字节流经历多个处理步骤或操作。该处理涉及对目标数据项针对给定的工作流程或作业来指定的无论什么处理所需要的目标数据项)的有利提取,并且在没有不必要的解码的情况下进行提取,同时保持用于所存储的数据的紧凑存储器占用。[0059]更具体地,可以看出,工作流程信息被解析,以识别传入字节流中作为工作流程信息规定的处理操作的目标需要)的特定数据项。图中的工作数据结构4〇简称“\ros”)在处理存储器例如工作存储器)中实例化。WDS结构反映了由传入字节流表示的数据项和对应的数据分级,其存储在WDS的根节点中,但不解码。[0060]如上所述,执行路径遍历处理。简言之,工作流程信息直接或间接地识别传入字节流中所需要的具有解码形式的特定数据项,以执行由工作流程60定义的处理。中介节点10提取这些目标数据项,并将它们从根节点移动到其在WDS中对应的节点,并在此将它们保存为解码形式以便处理。中间数据项,即在通往目标数据项的遍历路径上遇到的但不是工作流程处理所需的那些数据项,也从根节点移动到其在WDS中对应的节点,但是它们被移动但没有解码。[0061]执行由定义了所示“用户处理”的可适用工作流程60来定义的“用户处理”。因此,与原始传入数据流相比,WDS可以并且通常将保存经导出或经修改的数据。在需要提供数据流的修改版本以保存记录或进一步处理的程度上,可以看出可以将“传输编码”应用于WDS,以形成根据适用于所构思传输的任何协议或标准来编码和结构化的传出数据流。在至少一个实施例中,以与用于原始传入数据流的类似方式来重编码具有其经修改或经处理的数据的WDS,这意味着传出数据流与曾跟原始原始传入数据流兼容的任何接收方处理或节点都兼容。[0062]上述多个示例假设了传入数据流是CDR,但是这些示例是非限制性的。中介节点10可以接收和处理另一类型或其他类型的传入数据流,作为上述⑶R类型的补充或替代。在一个示例中,中介节点10接收作为CDR的传入数据流,并且还接收包含电信网络8的各种性能数据在内的传入数据流。一般地,在一个或多个实施例中,中介节点收集来自不同网络域的计费和性能数据,并且将该数据和或导出的数据向多个BSS应用和服务保证应用分发。例如,在其收集具有其各种传入形式的这些数据后,中介节点10在向下游应用分发数据和任何处理结果之前,执行对这种数据的聚合、丰富化和或相关处理。[0063]为了更好地了解上述示例中所讨论的中介节点方法和装置如何执行这样的处理操作,考虑图5,其示出了示例TLV编码数据的分级数据结构。示出的结构对于…^^服编码来说是典型的。[00M]这时,假设中介节点接收包括如图5所示的示例TLV编码数据在内的传入数据流,可以看出各种数据元素也称为数据项或字段被映射到数据对象上。再次,这些数据对象是BER-TLV编码的。在本工作示例中所讨论的编码在ISOIEC8825标准中定义。这里,“ISO”表示国际标准组织,且“IEC”表示国际电工委员会。[0065]在TLV编码中,每个数据项用三个字段来表示:标签、长度和值。“标签”定义了数据类型,“长度”定义了对象的总数据长度,且“值”表示编码数据。当数据对象的值字段由一个单数据元素组成时,称为原始数据对象。当数据对象的值字段递归地封装了一个或多个其他数据对象时,称为构造数据对象。为了本讨论的目的,构造数据对象也可以被称为“容器数据项”,以指示其包含一个或多个其他数据对象。这些构造的数据对象之一内的数据对象也可以被称为“被包含数据项”。[0066]考虑到这些规则,假设在中介节点10处接收到由图5的TLV编码数据表示的传入数据流,并且假设给定的工作流程以数据项022作为处理的目标。因此,根据本文的教导,中介节点10将遍历传入数据流的分级结构,以到达数据项022,数据项022将被提取并以经解码形式填充在工作数据结构40中对应的节点中,该工作数据结构40体现了经编码的传入数据流的分级结构。[0067]图6示出了在该示例中讨论的遍历路径,其中,由传入数据流定义的结构的第一分级级别包括由“TAG0”(标签0、“LEN0”(长度0和“VALUE0”(值0表示的数据项0。这里,VALUE0是数据项0的数据有效载荷。数据项〇是容器数据项,因为它包含数据项01和02,并且同一分级级别上可能还有更多的数据项,如数据结构中在数据项02之后的“不读取”(NOTREAD部分中的省略号所暗示的。进而,数据项02自身是容器数据项,因为它包含数据项021和022,并且同一分级级别上可能坯有更多的数据项,如数据结构中在数据项022之后的“不读取”NOTREAD部分中的省略号所暗示的。[0068]工作数据结构40包括最初在不进行任何“解包”或解码的情况下用传入数据流填充的根节点,并且使用广度优先算法来遍历存储数据流的分级结构。因此,中介节点10遍历第一分级级别,直到其找到数据项01为止,其将数据项01识别为包含数据项022。从数据项01起,其下降一个分级级别,并且开始寻找数据项022或者寻找包含数据项022在内的数据项。因此,其在数据项01中遍历,以到达数据项02,此时其再下降一个分级级别,这时,其在数据项021中遍历,以到达目标数据项022。[0069]应当理解:工作数据结构40具有用于整个传入数据流的根节点,然后具有包含沿着遍历路径遇到的作为中间节点的数据项01和02在内的各个分叉节点。数据项01从根节点存储设备移动到工作数据结构40的分级中的对应节点,但是不解码。数据项〇2也一样。[0070]针对数据项〇21和022来填充其他分级分支节点,其中021节点包括具有经编码形式的作为另一个中间数据项的数据项021,而022节点包括具有经解码形式的作为目标数据项的数据项022。请注意,传入数据流的“不读取”部分中的数据项不会从根节点移动,g卩,这些剩余的数据项不会从根节点移动,因为在遍历路径上没有遇到它们,它们也不是处理的目标。当然,可以针对作为处理目标的一个或多个其他数据项,对同一数据流进行再次处理或迭代处理,并且可以通过用任何新的中间数据项和或目标数据项在工作数据结构40中添加填充节点来递增地执行对工作数据结构40的更多填充。[0071]上述处理可以被理解为一种“刚好及时(justintime”解码的形式,其中中介节点10确定通往传入数据流例如,具有TLV编码格式的传入字节流)中包括的目标数据项的路径。在上述示例中,中介节点10将通往数据项022的遍历路径确定为“数据项0—数据项01—数据项02—数据项021—数据项022”。一旦获知遍历路径,路径迭代开始,并且包括示例实现中的三个动作。[0072]作为第一动作,中介节点10使用广度优先搜索BFS算法来执行对树结构进行解析的可中断广度优先搜索。BFS算法在遇到目标数据项或遇到容器数据项的位置处中断。假设遇到容器数据项,则BFS在下一分级级别处继续检查遇到的数据项。作为第二动作或操作,中介节点10执行值填充,其中,其在不解码的情况下将中间数据项分配给工作数据结构40中对应的节点。其使用在遍历路径上其遇到的作为中间数据项的编码数据项来填充工作数据结构40。作为第三动作,中介节点10对目标数据项执行实际解码,并填充工作数据结构40中对应的节点。[0073]在许多情况下,例如在给定的传入数据流包括大量多个数据项,但具有相对较短的通向目标数据项的遍历路径的情况下,传入数据流中的大部分数据项以编码形式留在了工作数据结构40的根节点中。没有处理被“浪费”在这些剩余的数据项上,并且极少的处理花费在中间数据项上,中间数据项只是从根节点移动到其在工作数据结构40中的对应节点。另外,花费在实际解码上的处理被保留,仅用于处理那些被工作流程当作处理目标的数据项。[0074]图7示出了根据本文教导的样本ASN.1模板,其具有可被分配给工作数据结构40的样本数据。具体地,该示意图示出了样本数据的十六进制字节流表示,例如,其可以被接收,作为传入数据流,并存储在工作数据结构40的根节点中。例如,中介节点10接收该十六进制字节流,并且中介节点10已知样本ASN.1模板应用于所接收的字节流。[0075]图8示出了相应的实例化工作数据结构40,其包括与所接收的字节流中的编码数据的分级结构相对应的级别〇、级别1和级别2节点。工作数据结构40的级别0包括根节点120,其最初保存具有经编码形式的字节流。级别1包括作为路径遍历的一部分而被填充的三个节点122。可以看出,这三个级别1节点122中的每一个对应于字节流中在该分级级别的不同数据项。级别2包括另外的三个节点122,并且同样这三个另外的节点122中的每一个对应于字节流中存在于该数据分级级别的给定的数据项。[0076]在用于实例化工作数据结构40的数据结构定义的意义上,存在表示传入字节流的分级数据项所需的所有节点。这种布置完全考虑到了所接收的字节流的分级结构。然而,仅填充对应于中间数据项和目标数据项的节点122。此外,用于中间数据项的节点122用经编码数据来填充,并且只有用于目标数据项的节点122用经解码数据来填充。[0077]在图8的示例中,右下方的节点122保存“userlD”数据项的节点)是“被处理数据项”,即,其是数据处理的目标。因此,假设userlD用户ID是唯一的目标数据项,则只有其对应的节点122将保存经解码的数据。假设在通往userlD数据项的遍历中遇到了作为中间节点的如图所示的其他级别节点和级别2节点,则将用仍为经编码形式的它们各个数据项来填充这些节点。中间数据项和目标数据项将被从根节点120移出,相比于将其留在根节点120中以及将其填充到另一个节点122中,这节省了存储器。[0078]本文的教导不限于ASN.1BER规范,也不限于计费数据记录的数据类型,而是代之以适用于基本上任何类型的TLV结构化数据。与常规的对整个数据结构和所有被包含数据项进行编码和解码相比,采用这些教导来处理该数据提供了端到端性能改进,显著降低了存储器利用率,显著降低了CHJ利用率,显著降低了分布式处理系统中的编码解码“开销”,并且相应地降低了数据中介节点的整体硬件需求。[0079]应该注意,本领域技术人员在知晓前面描述和关联附图中提出的教导的情况下将想到所公开发明的修改和其他实施例。因此,应当理解本发明不受限于所公开的具体实施例,且修改和其他实施例预期被包括在本公开的范围内。虽然本文可能使用了具体术语,但是其仅用于一般性或描述性意义,且不用于限制目的。

权利要求:1.一种在中介节点(10处进行处理的方法200,所述中介节点(10被配置为用于电信网络8中的数据中介操作,所述方法200包括:接收202传入数据流,所述传入数据流包括根据第一编码来编码的且根据所定义的分级结构来布置的编码数据项;将所述传入数据流存储2〇4为存储数据流,所述存储数据流在不解码的情况下被存储在工作数据结构40的根节点(120处,所述工作数据结构40定义了与所述存储数据流中编码的多个数据项相对应的另外的节点(122;识别206所述存储数据流中作为数据中介处理的目标的目标数据项;基于以下各项来提取208所述目标数据项:沿着遍历路径遍历208A所述存储数据流的所定义的分级结构,直到到达所述目标数据项为止;以及对于在到达所述目标数据项之前沿着所述遍历路径遇到的每个中间数据项,在不进行解码的情况下将所述中间数据项从所述根节点(120移动208B到所述工作数据结构40中对应的另外的节点(122;对于所述目标数据项,对所述目标数据项进行解码208C,并且使用经解码的目标数据项来填充所述工作数据结构40中对应的另外的节点(122;以及提供210所述工作数据结构40,以便处理经解码的目标数据项。2.根据权利要求1所述的方法200,还包括:通过以下方式来形成传出数据流:将在所述处理之后的经解码的目标数据项或对应的导出数据项重编码为新编码数据项,并且将所述新编码数据项与先前移动到所述工作数据结构40中对应的另外的节点(122的中间数据项和未被从所述根节点(120移动的任何剩余数据项聚合,以及向目标收件方提供传出数据流。3.根据权利要求1或2所述的方法200,其中,识别(206所述目标数据项包括:访问用于所定义的处理工作流程(60的所存储的工作流程信息,其中,所定义的处理工作流程60指示所述目标数据项。4.根据权利要求3所述的方法200,其中,所定义的处理工作流程60将所述目标数据项指示为两个或更多个目标数据项之一,并且所述方法200包括:提取每个目标数据项,以及根据通往每个目标数据项的遍历路径来执行针对每个目标数据项的所述移动和填充的步骤。5.根据权利要求1〜4中任一项所述的方法200,其中,所述传入数据流包括使用类型长度值“TLV”编码来编码的字节流,所述TLV编码将所定义的分级结构定义为树结构,并且所述遍历路径延伸经过所述树结构中与为了到达所述目标数据项所需的一样多的级别。6.根据权利要求1〜5中任一项所述的方法(200,其中,所定义的分级结构包括树结构,并且遍历所定义的分级结构包括:从所述树结构的基础级别开始,经由广度优先遍历前进至所述树结构中与为了到达所述目标数据项所需一样多的接下来的级别,使得在所述树结构的每一级别上广度优先遍历从该级别的第一数据项开始并前进经过该级别的每个接下来的数据项,直到遇到所述目标数据项为止,在该情况下遍历结束,或者直到遇到位于遍历路径上的容器数据项为止,在该情况下遍历前进到所述树结构的下一级别的第一个被包含数据项并且在该下一级别重新开始广度优先遍历。7.根据权利要求1〜6中任一项所述的方法200,其中,所述传入数据流是经编码的计费数据记录,所述计费数据记录包括与电信网络8中的可计费事件相关联的多个数据项。8.根据权利要求1〜7中任一项所述的方法200,其中,所述第一编码包括抽象语法符号一“ASN.1”编码。9.一种被配置用于电信网络(8中的数据中介操作的中介节点(10,所述中介节点10包括:通信接口(30,被配置为接收传入数据流,所述传入数据流包括根据第一编码来编码的且根据所定义的分级结构来布置的编码数据项;处理电路32,与所述通信接口(30有效关联,并被配置为:将所述传入数据流存储为存储数据流,所述存储数据流在不解码的情况下被存储在工作数据结构40的根节点(120处,所述工作数据结构40定义了与所述存储数据流中编码的多个数据项相对应的另外的节点(122;识别所述存储数据流中作为数据中介处理的目标的目标数据项;基于被配置如下来提取所述目标数据项:沿着遍历路径来遍历所述存储数据流的所定义的分级结构,直到到达所述目标数据项为止;以及对于在到达所述目标数据项之前沿着所述遍历路径遇到的每个中间数据项,在不进行解码的情况下将所述中间数据项从所述根节点(120移动到所述工作数据结构40中对应的另外的节点(122;对于所述目标数据项,对所述目标数据项进行解码,并且使用经解码的目标数据项来填充所述工作数据结构40中对应的另外的节点122;以及提供所述工作数据结构40,以便处理经解码的目标数据项。10.根据权利要求9所述的中介节点(10,其中,所述处理电路32还被配置为基于被配置如下来形成传出数据流:将在所述处理之后的经解码的目标数据项或由所述处理生成的对应的导出数据项重编码为新编码数据项;以及将所述新编码数据项与先前被移动到所述工作数据结构(40中对应的另外的节点122的中间数据项、以及未从所述根节点(120移动的任何剩余数据项聚合,以及向目标收件方提供所述传出数据流。11.根据权利要求9或10所述的中介节点(10,其中,所述处理电路32被配置为通过访问用于所定义的处理工作流程60的所存储的工作流程信息来识别所述目标数据项,所定义的处理工作流程60指示所述目标数据项。12.根据权利要求11所述的中介节点(10,其中,所定义的处理工作流程60将所述目标数据项指示为两个或更多个目标数据项之一,并且所述处理电路32被配置为:提取每个目标数据项,以及根据通往每个目标数据项的遍历路径来执行针对每个目标数据项的所述移动和填充的操作。13.根据权利要求9〜I2中任一项所述的中介节点(10,其中,所述传入数据流包括使用类型长度值“TLV”编码来编码的字节流,所述TLV编码将所定义的分级结构定义为树结构,并且所述遍历路径延伸经过所述树结构中与为了到达所述目标数据项所需一样多的级别。14.根据权利要求9〜13中任一项所述的中介节点(10,其中,所定义的分级结构包括树结构,并且所述处理电路32被配置为以下述方式遍历所定义的分级树结构:从所述树结构的基础级别开始,并经由广度优先遍历前进至所述树结构中与为了到达所述目标数据项所需一样多的接下来的级别,使得在所述树结构的每一级别上,广度优先遍历从该级别的第一数据项开始并前进经过该级别的每个接下来的数据项,直到遇到所述目标数据项为止,在该情况下遍历结束,或者直到遇到位于所述遍历路径上的容器数据项,在该情况下遍历前进到所述树结构的下一级别的第一个被包含数据项,并且在该下一级别重新开始广度优先遍历。15.根据权利要求9〜14中任一项所述的中介节点(10,其中,所述传入数据流是经编码的计费数据记录,所述计费数据记录包括与所述电信网络中的可计费事件相关联的多个数据项。16.根据权利要求9〜15中任一项所述的中介节点(10,其中,所述第一编码包括抽象语法符号一“ASN•1”编码。17.—种被配置用于电信网络(8中的数据中介操作的中介节点(10,所述中介节点10包括适于以下操作的装置32,34:接收传入数据流,所述传入数据流包括根据第一编码来编码的且根据所定义的分级结构来布置的编码数据项;将所述传入数据流存储为存储数据流,所述存储数据流在不解码的情况下被存储在工作数据结构40的根节点(120处,所述工作数据结构40定义了与所述存储数据流中编码的多个数据项相对应的另外的节点(122;识别所述存储数据流中作为数据中介处理的目标的目标数据项;基于以下各项来提取所述目标数据项:沿着遍历路径来遍历所述存储数据流的所定义的分级结构,直到到达所述目标数据项为止;以及对于在到达所述目标数据项之前沿着所述遍历路径遇到的每个中间数据项,在不进行解码的情况下将所述中间数据项从所述根节点(120移动到所述工作数据结构40中对应的另外的节点(122;对于所述目标数据项,对所述目标数据项进行解码,并用经解码的目标数据项来填充所述工作数据结构40中对应的另外的节点(122;以及提供所述工作数据结构40,以便处理经解码的目标数据项。18.—种被配置用于电信网络(8中的数据中介操作的中介节点(10,所述中介节点10包括:第一模块50,被配置为接收传入数据流,所述传入数据流包括根据第一编码来编码的且根据所定义的分级结构来布置的编码数据项;第二模块52,被配置为将所述传入数据流存储为存储数据流,所述存储数据流在不解码的情况下被存储在工作数据结构40的根节点(120处,所述工作数据结构40定义了与所述存储数据流中编码的多个数据项相对应的另外的节点(122;第三模块54,被配置为识别所述存储数据流中作为数据中介处理的目标的目标数据项;第四模块¢6,被配置为基于以下各项来提取所述目标数据项:沿着遍历路径来遍历所述存储数据流的所定义的分级结构,直到到达所述目标数据项为止;以及对于在到达所述目标数据项之前沿着所述遍历路径遇到的每个中间数据项,在不进行解码的情况下将所述中间数据项从所述根节点(120移动到所述工作数据结构40中对应的另外的节点(122;对于所述目标数据项,对所述目标数据项进行解码,并用经解码的目标数据项来填充所述工作数据结构4〇中对应的另外的节点(122;以及第五模块58,被配置为提供所述工作数据结构40,以便处理经解码的目标数据项。

百度查询: 瑞典爱立信有限公司 用于数据中介的方法和装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。