将离线处理逻辑迁移至实时处理框架的方法和装置的制造方法

文档序号:9432312阅读:300来源:国知局
将离线处理逻辑迁移至实时处理框架的方法和装置的制造方法
【技术领域】
[0001]本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及将离线处理逻辑迀移至实时处理框架的方法和装置。
【背景技术】
[0002]离线处理逻辑,可以指用于处理离线用户数据的逻辑(例如程序代码等)。而随着网络技术的发展,在较短的时间内对用户实时需求的响应变得日益重要。这样一来,便产生了将已有的离线处理逻辑应用至实时处理用户在线数据的需求。
[0003]现有技术中,在将离线处理逻辑迀移至实时处理框架时,通常可以采用如下的三种方案:
[0004](I)依托已有的基于离线处理逻辑的分布式计算框架和分布式文件系统,实时消息传递服务进行开发。
[0005](2)针对实时处理框架重新开发处理逻辑,完全转变为实时框架算法的一部分。
[0006](3)依托实时处理框架,添加封装逻辑,封装逻辑用于在实时处理框架和已有逻辑之间进行数据格式转换,一般输入输出参数均为字符串向量。
[0007]然而,如上所述的三种方案分别存在如下的缺陷:
[0008]针对上述方案(I),其需要开发人员对接不同的离线处理逻辑,形成不同的解决方案,迀移效率低。
[0009]针对上述方案(2),其需要基于不同的实时处理框架的架构设计,对已有处理逻辑进行迀移,通用性较差。
[0010]针对上述方案(3),尽管其不需要开发人员熟悉实时处理框架的架构设计,但是仍然需要进行开发工作,且需要在字符串和其它数据类型之间进行转换,还需要大量字符串拷贝动作,性能代价严重。

【发明内容】

[0011]本申请的目的在于提出一种改进的将离线处理逻辑迀移至实时处理框架的方法和装置,来解决以上【背景技术】部分提到的技术问题。
[0012]第一方面,本申请提供了一种将离线处理逻辑迀移至实时处理框架的方法,包括:获取离线处理逻辑的函数签名;编译离线处理逻辑生成第一动态链接库文件;基于离线处理逻辑的函数签名和第一动态链接库文件,生成实时处理框架下的封装函数;以及将封装函数编译为第二动态链接库文件以供实时配置。
[0013]在一些实施例中,获取离线处理逻辑的函数签名包括:对离线处理逻辑所包含的函数进行词法分析生成离线处理逻辑的单词序列;以及从单词序列中,提取离线处理逻辑的函数签名。
[0014]在一些实施例中,函数签名至少包括所述离线处理逻辑中所包含函数的函数名以及返回值类型。
[0015]在一些实施例中,基于离线处理逻辑的函数签名和第一动态链接库文件,生成实时处理框架下的封装函数包括:基于离线处理逻辑的函数签名,获取离线处理逻辑中所包含函数的输入参数名称和返回值;以及获取第一动态链接库文件中的与离线处理逻辑中所包含函数对应的函数指针。
[0016]在一些实施例中,获取第一动态链接库文件中的与离线处理逻辑中所包含函数对应的函数指针包括:打开第一动态链接库文件;从第一动态链接库文件中获取与离线处理逻辑中所包含函数对应的函数指针;以及将函数指针存储至预定存储位置以供实时调用。
[0017]第二方面,本申请提供了一种将离线处理逻辑迀移至实时处理框架的装置,包括:获取模块,配置用于获取离线处理逻辑的函数签名;第一编译模块,配置用于编译离线处理逻辑生成第一动态链接库文件;封装函数生成模块,配置用于基于离线处理逻辑的函数签名和第一动态链接库文件,生成实时处理框架下的封装函数;以及第二编译模块,配置用于将封装函数编译为第二动态链接库文件以供实时配置。
[0018]在一些实施例中,获取模块进一步配置用于:对离线处理逻辑所包含的函数进行词法分析生成离线处理逻辑的单词序列;以及从单词序列中,提取离线处理逻辑的函数签名。
[0019]在一些实施例中,函数签名至少包括所述离线处理逻辑中所包含函数的函数名以及返回值类型。
[0020]在一些实施例中,封装函数生成模块进一步配置用于:基于离线处理逻辑的函数签名,获取离线处理逻辑中所包含函数的输入参数名称和返回值;以及获取第一动态链接库文件中的与离线处理逻辑中所包含函数对应的函数指针。
[0021]在一些实施例中,封装函数生成模块在获取第一动态链接库文件中的与离线处理逻辑中所包含函数对应的函数指针时,进一步配置用于:打开第一动态链接库文件;从第一动态链接库文件中获取与离线处理逻辑中所包含函数对应的函数指针;以及将函数指针存储至预定存储位置以供实时调用。
[0022]本申请提供的将离线处理逻辑迀移至实时处理框架的方法和装置,通过获取离线处理逻辑的函数签名并将离线处理逻辑编译生成第一动态链接库文件,再基于离线处理逻辑的函数签名和第一动态链接库文件,生成实时处理框架下的封装函数;最后将封装函数编译为第二动态链接库文件以供实时配置,从而实现了离线处理逻辑到实时处理框架的迀移,且迀移效率高、通用性强、计算代价小。
【附图说明】
[0023]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0024]图1是本申请可以应用于其中的示例性系统架构图;
[0025]图2是本申请的将离线处理逻辑迀移至实时处理框架的方法的一个实施例的示意性流程图;
[0026]图3是本申请的将离线处理逻辑迀移至实时处理框架的方法中,基于离线处理逻辑的函数签名和第一动态链接库文件,生成实时处理框架下的封装函数的一种实现方式的示意性流程图;
[0027]图4是本申请的将离线处理逻辑迀移至实时处理框架的装置的一个实施例的示意性结构图;
[0028]图5是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
【具体实施方式】
[0029]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
[0030]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0031]图1示出了可以应用本申请的将离线处理逻辑迀移至实时处理框架的方法和装置的实施例的示例性系统架构100。
[0032]如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0033]用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103之间也可以通过与网络104相同或相似的网络(图中未示出)来进行数据相互。
[0034]终端设备101、102、103可以是作为分布式计算系统的其中一个计算节点的电子设备,包括但不限于各种类型的计算设备。
[0035]服务器105可以是提供各种服务的服务器,例如从终端设备101、102、103获取用于处理用户的离线数据的离线处理逻辑,并对这些离线处理逻辑进行重新封装处理的服务器。
[0036]需要说明的是,本申请实施例所提供的将离线处理逻辑迀移至实时处理框架的方法一般由服务器105执行,相应地,将离线处理逻辑迀移至实时处理框架的装置一般设置于服务器105中。
[0037]应该理解,图1中
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1