CN112988127A - Cdn业务定制方法及系统 - Google Patents

Cdn业务定制方法及系统 Download PDF

Info

Publication number
CN112988127A
CN112988127A CN202110118453.4A CN202110118453A CN112988127A CN 112988127 A CN112988127 A CN 112988127A CN 202110118453 A CN202110118453 A CN 202110118453A CN 112988127 A CN112988127 A CN 112988127A
Authority
CN
China
Prior art keywords
service
cdn
service logic
logic
customization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110118453.4A
Other languages
English (en)
Inventor
佘江宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN202110118453.4A priority Critical patent/CN112988127A/zh
Publication of CN112988127A publication Critical patent/CN112988127A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施方式涉及内容分发网络领域,公开了一种CDN业务定制方法,包括:接收由CDN用户下发的业务逻辑,其中,所述业务逻辑对应至少两个执行阶段的业务定制;根据所述具有业务定制的执行阶段在CDN节点加载所述业务逻辑;在接收与所述业务逻辑对应的用户请求时,按照所述业务逻辑的处理顺序先后在所述具有业务定制的执行阶段执行所述业务逻辑,对所述用户请求进行处理。本发明实施方式还公开了一种CDN业务定制系统。本发明实施方式提供的CDN业务定制方法及系统,可以缩短CDN定制业务的交付周期。

Description

CDN业务定制方法及系统
技术领域
本发明涉及内容分发网络技术领域,特别涉及一种CDN业务定制方法及系统。
背景技术
内容分发网络(Content Delivery Network,CDN)是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容。
随着互联网业务的发展,目前很多业务通常需要同时对两个或以上的执行阶段进行业务的定制,才能实现相应的业务功能,例如,在互联网的广告投放中,广告投放商(CDN用户)通常需要根据不同地区的用户投放不同的广告,在定制相应的CDN业务时,就需要在请求接入阶段获取用户所在的地区信息,在响应请求阶段再根据用户的地区信息推送相应的广告,如此,就需要在请求接入阶段和响应请求阶段进行相应的业务定制。
对于涉及到两个或两个以上执行阶段的CDN定制业务,传统的做法是由CDN用户将定制的需求提供给CDN服务商,由CDN服务商进行相应的开发。然而,由于这些定制的CDN业务涉及到CDN两个或以上的执行阶段,通常需要改动多个代码模块,在开发这些定制的CDN业务时,需要CDN服务商多人配合对不同的代码模块进行开发,在开发完之后还需要进行代码的联合调试;另外,CDN服务商可能对CDN用户定制的需求理解上有偏差,就会使得开发的CDN业务不符合CDN用户的要求,需要多次沟通调整,导致CDN定制的业务的交付周期较长。
发明内容
本发明实施方式的目的在于提供一种CDN业务定制方法及系统,可以缩短CDN定制业务的交付周期。
为解决上述技术问题,本发明的实施方式提供了一种CDN业务定制方法,包括:接收由CDN用户下发的业务逻辑,其中,业务逻辑对应至少两个执行阶段的业务定制;根据具有业务定制的执行阶段在CDN节点加载业务逻辑;在接收与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑,对用户请求进行处理。
本发明的实施方式还提供了一种CDN业务定制系统,接收模块,用于接收由CDN用户编写并下发的业务逻辑,其中,业务逻辑对应至少两个执行阶段的业务定制;加载模块,用于根据具有业务定制的执行阶段在CDN节点加载业务逻辑;处理模块,用于在接收与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑,对用户请求进行处理。
本发明实施方式相对于相关技术而言,通过接收由CDN用户于下发的业务逻辑,根据具有业务定制的执行阶段在CDN节点加载业务逻辑,在接收到与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑,对用户请求进行处理。由于不同的执行阶段均可以由CDN用户自行编写后下发,因此不需要CDN服务商多人配合进行开发,也不需要在开发完之后进行代码的联合调试;并且,由于CDN用户更清楚自己的定制需求,因此不存在理解上的偏差,开发的CDN业务也会符合CDN用户的要求,不需要多次沟通调整,从而缩短CDN定制业务的交付周期;同时,由于业务逻辑对应至少两个执行阶段的业务定制,因此可以提前确定业务逻辑与执行顺序,避免单独选择执行阶段带来的误操作,影响CDN节点原有的作业流程;另外,多个执行阶段的业务逻辑支持复杂多样的定制功能,也可以在不同的执行阶段之间进行数据交互。
另外,根据具有业务定制的执行阶段在CDN节点中加载业务逻辑,包括:CDN节点根据具有业务定制的执行阶段分别创建任务线程并加载业务逻辑。通过在具有业务定制的执行阶段创建相应的任务线程并加载业务逻辑,可以在不同的执行阶段实现不同的定制化功能。
另外,方法还包括:CDN节点根据业务逻辑中对应的不同业务定制的执行阶段,将业务逻辑加载在不同的任务线程。通过根据不同业务定制的执行阶段将业务逻辑加载至不同的任务线程,可以在不同的执行阶段实现不同的定制化功能。
另外,方法还包括:当CDN用户下发的不同业务逻辑中包含相同执行阶段时,CDN节点在相同执行阶段将不同业务逻辑加载在同一任务线程。采用同一个任务线程可以保证不同业务逻辑中有顺序先后关系,避免采用多个任务线程无法确保执行顺序的先后。
另外,业务逻辑包括触发条件,在接收与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑,对用户请求进行处理,包括:在接收符合触发条件且执行阶段与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后,在具有业务定制的执行阶段执行业务逻辑对用户请求进行处理。通过触发条件和执行阶段进行判断,可以获取到与业务逻辑对应的用户请求,从而针对对应的用户请求实现相应的定制化功能。
另外,在接收与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑,对用户请求进行处理,包括:当CDN节点没有命中缓存时,由任务线程进行回源,以对用户请求进行处理。通过任务线程来执行回源,而不是采用CDN节点的缓存进程来回源,可以使缓存进程不再跟业务耦合,提高缓存进程的运行效率。
另外,业务逻辑的处理顺序为请求接入阶段、回源转发阶段、回源响应阶段和请求响应阶段。通过预设的执行顺序依次执行业务逻辑,可以保证业务逻辑的执行顺序满足CDN业务的需要。
另外,根据具有业务定制的执行阶段在CDN节点加载业务逻辑,包括:识别业务逻辑中固定的执行阶段之间的逻辑顺序,按照逻辑顺序加载业务逻辑。
另外,方法还包括:按在执行完当前执行阶段的业务逻辑后,将当前执行阶段的关联信息传递至下一需要关联信息且具有业务定制的执行阶段,以供下一需要关联信息且具有业务定制的执行阶段根据关联信息和业务逻辑处理用户请求。通过将当前执行阶段的关联信息传递至下一需要关联信息且具有业务定制的执行阶段,可以实现两个或以上执行阶段的关联处理,进而实现较为复杂的定制化功能。
另外,将当前执行阶段的关联信息传递至下一需要关联信息且具有业务定制的执行阶段,包括:将当前执行阶段的关联信息通过用户请求的请求头或业务逻辑的内置变量传递至下一需要关联信息且具有业务定制的执行阶段。通过请求头或业务逻辑的内置变量来传递关联信息,可以有效实现关联信息在不同执行阶段的传递,从而实现不同执行阶段的关联处理。
另外,业务逻辑包括由CDN用户根据在线编辑平台的预设脚本语言编写得到的业务脚本。由于脚本语言较为简单,因此CDN用户利用预设脚本语言编写业务逻辑对应的业务脚本,可以降低CDN用户编写业务逻辑的难度,提高业务逻辑编写的效率。
另外,根据具有业务定制的执行阶段在CDN节点加载业务逻辑,包括:将业务脚本的语言转换为CDN节点可以识别的语言,得到转换后的业务脚本;在CDN节点中业务逻辑具有业务定制的执行阶段加载转换后的业务脚本。通过将业务脚本的语言转换为CDN节点可识别的脚本语言,一方面可以使CDN用户在编写业务逻辑时采用较为简单的脚本语言,降低业务逻辑编写的难度;另一方面可以使业务脚本与CDN节点相适应,从而顺利加载业务脚本以实现相应的业务逻辑。
另外,在CDN节点中业务逻辑具有业务定制的执行阶段加载业务逻辑之前,还包括:将业务逻辑翻译为CDN节点可以识别的业务逻辑,并在翻译的过程中注入测试代码;根据测试代码对业务逻辑进行测试;若测试的结果为通过,则执行根据具有业务定制的执行阶段在CDN节点加载业务逻辑的步骤。由于是在业务逻辑翻译的过程中注入测试代码,因此CDN用户只需要编写业务逻辑即可,无需花费较多时间在业务逻辑的测试上,可以减少CDN用户在定制业务的负担,提高CDN定制业务的交付效率;另外,由于是在加载业务逻辑前进行测试,因此可以保证业务逻辑在CDN节点运行时的稳定性并符合CDN节点的运行要求。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是本发明第一实施方式提供的CDN业务定制方法的流程示意图;
图2是CDN业务定制方法中涉及的执行阶段的示意图;
图3是本发明第二实施方式提供的CDN业务定制方法的流程示意图;
图4是本发明第三实施方式提供的CDN业务定制系统的结构示意图;
图5是本发明第三实施方式提供的CDN业务定制系统的具体示例图;
图6是本发明第四实施方式提供的服务端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种CDN业务定制方法,通过接收由CDN用户下发的业务逻辑,根据具有业务定制的执行阶段在CDN节点加载业务逻辑,在接收到与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑,对用户请求进行处理。由于不同的执行阶段均可以由CDN用户自行编写后下发,因此不需要CDN服务商多人配合进行开发,也不需要在开发完之后进行代码的联合调试;并且,由于CDN用户更清楚自己的定制需求,因此不存在理解上的偏差,开发的CDN业务也会更加符合CDN用户的要求,不需要多次沟通调整,从而缩短CDN定制业务的交付周期。
应当说明的是,本发明实施方式提供的CDN业务定制方法的执行主体为CDN节点,其中,CDN节点可以由单个CDN服务器或多个CDN服务器组成的集群来实现。
本发明实施方式提供的CDN业务定制方法的具体流程如图1所示,包括以下步骤:
S101:接收由CDN用户下发的业务逻辑,其中,业务逻辑对应至少两个执行阶段的业务定制。
可选地,CDN用户下发业务逻辑时,可以通过与CDN节点连接的服务平台编写业务逻辑,再将编写好的业务逻辑发送至CDN节点。CDN用户的下发动作之前,还可以包括编写业务逻辑的动作,可以是根据在线编辑平台的预设脚本语言,由CDN用户自行编写或者由第三方编写后交付所述CDN用户,而不是由CDN服务商自行编写。其中,CDN用户一般是指企业用户,也可以普通个人用户,只要该CDN用户涉及到CDN业务即可。
应当说明的是,业务逻辑可以包括代码文件和对应的配置信息,其中,代码文件以代码形式描述业务的处理逻辑,配置信息可以包括代码文件的执行条件或启动参数等。
由于CDN用户有多个,相应的业务逻辑也会有多个,为了实现对这些业务逻辑及CDN用户的管理,CDN节点在接收到CDN用户下发的业务逻辑后,可保存至CDN节点的指定位置。实际应用中,可以是由CDN中心管理平台接收CDN用户下发的业务逻辑,再将业务逻辑下发至各个CDN节点,由CDN节点进行相应的保存。
目前,很多业务都需要对两个或以上的执行阶段进行定制,才能实现相应的功能。例如,在实现CDN防盗链的功能时,需要在请求接入阶段进行一些加密字符串的校验,在回源转发阶段,需要将请求中加密字符串替换为解密后的鉴权字段和信息字段,这样才能从源站获取到相应的内容;又例如,在实现CDN防盗链且限速的功能时,除了需要在请求接入阶段和回源转发阶段进行定制外,还需要在校验通过后获取限速值,然后在请求响应阶段根据限速值进行相应的限速。
请参考图2,其为CDN业务定制方法中涉及的执行阶段的示意图,包括请求接入阶段、回源转发阶段、回源响应阶段和请求响应阶段四个执行阶段。本发明实施方式中,业务逻辑具体定制的执行阶段可以根据业务的实际需要进行设置,例如,请求接入阶段和请求响应阶段,请求接入阶段和回源转发阶段,或者,请求接入阶段、回源转发阶段和请求响应阶段等组合,此处不做具体限制。
S102:根据具有业务定制的执行阶段在CDN节点加载业务逻辑。
可选地,业务逻辑的配置信息中还包括业务逻辑的执行阶段信息,CDN节点可根据配置信息确认具有业务定制的执行阶段,再在具有业务定制的执行阶段加载业务逻辑。
在一个例子中,S102可以包括:识别业务逻辑中固定的执行阶段之间的逻辑顺序,按照所述逻辑顺序加载业务逻辑。因为在业务逻辑中有多个执行阶段,所以按照请求的正常顺序,需要在不同的执行阶段分别加载业务逻辑。
可选地,S102可以包括:CDN节点根据具有业务定制的执行阶段分别创建任务线程并加载业务逻辑。更具体地,S102可以包括:CDN节点根据业务逻辑中对应的不同业务定制的执行阶段,将业务逻辑加载在不同的任务线程。例如,若业务逻辑具有业务定制的执行阶段为请求接入阶段和请求响应阶段,则在请求接入阶段和请求响应阶段分别创建一任务线程,并将业务逻辑分别加载至请求接入阶段和请求响应阶段创建的任务线程中。应当说明的是,其它没有业务定制的执行阶段按照CDN节点本身的逻辑执行即可。
通过在具有业务定制的执行阶段创建相应的任务线程并加载业务逻辑,可以在不同的执行阶段实现不同的定制化功能。
可选地,当CDN用户下发的不同业务逻辑中包含相同执行阶段时,CDN节点在相同执行阶段将不同业务逻辑加载在同一任务线程。例如,CDN用户下发了业务逻辑A和业务逻辑B,其中业务逻辑A和业务逻辑B均包含有请求接入阶段,则CDN节点在请求接入阶段将业务逻辑A和业务逻辑B加载至同一个任务线程。可以理解的是,如果采用多个任务线程来加载多个相同执行阶段的不同业务逻辑,则可能无法确保执行顺序的先后。
S103:在接收与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑,对用户请求进行处理。
其中,用户请求具体可以为应用层协议的请求,例如是http或https请求等,用户请求的具体形式此处不做限制。
可选地,业务逻辑包括触发条件,S103包括:在接收符合触发条件且执行阶段与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑对用户请求进行处理。
其中,触发条件包括域名、定制请求头或定制URL参数等,具体的触发条件可以由CDN用户根据实际需要进行设置,此处不做具体限制。
例如,若业务逻辑的触发条件为用户请求的域名为A域名且用户请求的执行阶段在请求接入阶段,则接收到域名为www.A.com且处于请求接入阶段的用户请求时,CDN节点可以判定接收到与业务逻辑对应的用户请求;又例如,若业务逻辑的触发条件为用户请求的域名为A域名、请求IP地址为上海区域的IP地址且用户请求的执行阶段在回源转发阶段,则接收到域名为www.A.com、IP地址为上海区域的IP地址且处于回源转发阶段的用户请求时,CDN节点可以判定接收到与业务逻辑对应的用户请求。
可选地,业务逻辑的处理顺序为请求接入阶段、回源转发阶段、回源响应阶段和请求响应阶段,在按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑对用户请求进行处理时,是指按照业务逻辑的处理顺序先后在每一个具有业务定制的执行阶段执行业务逻辑以对用户请求进行处理。例如,若业务逻辑包括请求接入阶段和回源响应阶段,则先后在请求接入阶段和回源响应阶段执行业务逻辑对用户请求进行处理。
由于一个业务逻辑包括两个以上执行阶段,而后面的执行阶段可能需要用到前面的执行阶段的信息,例如在实现CDN防盗链的功能时,请求接入阶段校验得到解密后的鉴权字段和信息字段,在回源转发阶段用于替换请求中的加密字符串,其中,解密后鉴权字段和信息字段就是后面的执行阶段需要用到的信息。
可选地,在执行完当前执行阶段的业务逻辑后,将当前执行阶段的关联信息传递至下一需要关联信息且具有业务定制的执行阶段,以供下一需要关联信息且具有业务定制的执行阶段根据关联信息和业务逻辑处理用户请求。其中,关联信息是指后面的执行阶段需要用到的由前面的执行阶段得到的信息,例如上述的解密后鉴权字段和信息字段。通过将当前执行阶段的关联信息传递至下一需要关联信息且具有业务定制的执行阶段,可以实现两个或以上执行阶段的关联处理,进而实现较为复杂的定制化功能。
可选地,在将关联信息传递至下一需要关联信息且具有业务定制的执行阶段时,可以是将当前执行阶段的关联信息通过用户请求的请求头或业务逻辑的内置变量传递至下一需要关联信息且具有业务定制的执行阶段。其中,业务逻辑的内置变量是指业务逻辑的代码文件里面的变量,可以在前面的执行阶段进行赋值,从而后面的执行阶段可以根据赋值进行相应的处理或判断。由于不同执行阶段的业务逻辑均是在同一进程内执行的,而进程内的数据是可以共享的,因此后面的执行阶段可以根据共享的数据获取到前面的执行阶段所赋的值。例如,在请求接入阶段得到一个关联信息A,而这关联信息A在请求响应阶段要使用,则可以将关联信息A通过业务逻辑的内置变量传递至请求响应阶段,从而实现关联信息的传递。当以请求头的形式传递关联信息时,可以是在用户请求中增加一个自定义的头部(请求头),从而使下一需要关联信息且具有业务定制的执行阶段的任务线程执行时,根据自定义的请求头获得相应的关联信息。通过请求头或业务逻辑的内置变量来传递关联信息,可以有效实现关联信息在不同执行阶段的传递,从而实现不同执行阶段的关联处理。
可选地,若CDN节点没有命中缓存需要回源时,由加载业务逻辑的任务线程进行回源。应当说明的是,在进行回源的操作时,一般是通过CDN节点的缓存进程来回源,而本发明实施方式通过任务线程来执行回源,可以使缓存进程不再跟业务耦合,提高缓存进程的运行效率。
本发明实施方式中,对业务逻辑所用的语言不做具体限制,当业务逻辑所用的语言为CDN节点所用的语言时,则业务逻辑在CDN节点上加载前不需要经过翻译。但如果使用CDN节点所用的语言时,这些业务逻辑可以越权做很多业务之外的事情,当业务逻辑本身出现问题也会影响到CDN节点的原有服务,会严重影响CDN节点的安全性,因此CDN用户编写的业务逻辑优先采用与CDN节点不同的语言。
由于本发明实施方式提供的CDN业务定制方法是由CDN用户自行根据CDN业务的定制需求编写业务逻辑,为了降低业务逻辑编写的难度,使一般的CDN用户也可以编写业务逻辑,可选地,业务逻辑包括由CDN用户根据在线编辑平台的预设脚本语言编写得到的业务脚本。由于脚本语言的难度较低,较容易掌握,因此,一般的CDN用户均可以使用预设脚本语言编写业务逻辑。
由于CDN节点一般使用的是较为高级的语言,与在线编辑平台的预设脚本语言不同,因此采用预设脚本语言编写的业务脚本在CDN节点加载之前,可以使用翻译器进行翻译。可选地,S102具体可以包括:将业务脚本的语言转换为CDN节点可以识别的语言,得到转换后的业务脚本,在CDN节点中业务逻辑具有业务定制的执行阶段加载转换后的业务脚本。在将业务脚本的语言转换为CDN节点可以识别的语言后,得到转换后的业务脚本即为CDN节点可以执行的代码,从而可以在CDN节点上加载。通过将业务脚本的语言转换为CDN节点可识别的脚本语言,一方面可以使CDN用户在编写业务逻辑时采用较为简单的脚本语言,降低业务逻辑编写的难度;另一方面可以使业务脚本与CDN节点相适应,从而顺利加载业务脚本以实现相应的业务逻辑。
本发明实施方式提供的CDN业务定制方法,通过接收由CDN用户于下发的业务逻辑,根据具有业务定制的执行阶段在CDN节点加载业务逻辑,在接收到与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑,对用户请求进行处理。由于不同的执行阶段均可以由CDN用户自行编写后下发,因此不需要CDN服务商多人配合进行开发,也不需要在开发完之后进行代码的联合调试;并且,由于CDN用户更清楚自己的定制需求,因此不存在理解上的偏差,开发的CDN业务也会符合CDN用户的要求,不需要多次沟通调整,从而缩短CDN定制业务的交付周期;同时,由于业务逻辑对应至少两个执行阶段的业务定制,因此可以提前确定业务逻辑与执行顺序,避免单独选择执行阶段带来的误操作,影响CDN节点原有的作业流程;另外,多个执行阶段的业务逻辑支持复杂多样的定制功能,也可以在不同的执行阶段之间进行数据交互。
本发明的第二实施方式涉及一种CDN业务定制方法。在本发明实施方式中,在加载业务逻辑之前,先对业务逻辑进行翻译,并在翻译的过程中注入测试代码进行测试,在测试通过后,再加载业务逻辑。
本发明实施方式提供的CDN业务定制方法的具体流程如图3所示,包括以下步骤:
S201:接收由CDN用户下发的业务逻辑,其中,业务逻辑对应至少两个执行阶段的业务定制。
S201与第一实施方式中的S101相同,具体可以参见第一实施方式中的相关描述,为了避免重复,这里不再赘述。
S202:将业务逻辑翻译为CDN节点可以识别的业务逻辑,并在翻译的过程中注入测试代码。
在将业务逻辑翻译为CDN节点可以识别的业务逻辑时,可以通过相应的翻译工具进行翻译即可,具体采用的翻译工具此处不做具体限制。例如,若业务逻辑为业务脚本形式,则可以通过脚本翻译器对业务逻辑翻译即可。
可选地,注入的测试代码可以为以下任意一种或组合:业务逻辑翻译前的行号、业务逻辑中每个函数的进入点和退出点、业务逻辑中每条语句执行的时间点、业务逻辑中条件执行的时间点、测试通过的阈值、Exit函数、Assert函数和Trace函数。当然,也可以是其它内容的测试代码,此处不做具体限制。
S203:根据测试代码对业务逻辑进行测试。
可选地,在注入测试代码后,CDN节点可以在预设的测试框架运行测试脚本,从而对注入测试代码后的业务逻辑进行测试。其中,预设的测试框架可以是在指定的服务器上运行。
S204:若测试的结果为通过,则根据具有业务定制的执行阶段在CDN节点加载业务逻辑。
可选地,CDN节点可设置相应的测试阈值,若每一项测试指标均达到相应的测试阈值,则判定测试的结果为通过,再在CDN节点中业务逻辑具有业务定制的执行阶段加载业务逻辑。若某一项或多项测试指标未达到相应的测试阈值,则判定测试的结果为不通过,则可以将测试不通过的具体信息反馈给CDN用户,由CDN用户修改后再进行测试。
S205:在接收与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑,对用户请求进行处理。
其中,S205与第一实施方式中的S103相同,具体可以参见第一实施方式中的相关描述,为了避免重复,这里不再赘述。
本发明实施方式提供的CDN业务定制方法,通过在加载业务逻辑之前,先对业务逻辑进行翻译,并在翻译的过程中注入测试代码进行测试,在测试通过后再加载业务逻辑。由于是在业务逻辑翻译的过程中注入测试代码,因此CDN用户只需要编写业务逻辑即可,无需花费较多时间在业务逻辑的测试上,可以减少CDN用户在定制业务的负担,提高CDN定制业务的交付效率;另外,由于是在加载业务逻辑前进行测试,因此可以保证业务逻辑在CDN节点运行时的稳定性并符合CDN节点的运行要求。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施方式涉及一种CDN业务定制系统300,如图4所示,接收模块301、加载模块302和处理模块303,各模块功能详细说明如下:
接收模块301,用于接收由CDN用户编写并下发的业务逻辑,其中,业务逻辑对应至少两个执行阶段的业务定制;
加载模块302,用于根据具有业务定制的执行阶段在CDN节点加载业务逻辑;
处理模块303,用于在接收与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑,对用户请求进行处理。
进一步地,本发明实施方式提供的CDN业务定制系统还包括在线编辑平台,其中,在线编辑平台用于:
提供CDN用户编写业务逻辑的平台,并将业务逻辑下发至CDN节点;在线编辑平台包括预设脚本语言,CDN用户根据预设脚本语言编写业务逻辑。
进一步地,CDN节点包括任务线程,加载模块302根据具有业务定制的执行阶段将业务逻辑加载至任务线程;任务线程,用于当CDN节点没有命中缓存时,由任务线程进行回源,以对用户请求进行处理。
进一步地,本发明实施方式提供的CDN业务定制系统还包括识别模块,用于识别业务逻辑中固定的执行阶段之间的逻辑顺序,按照逻辑顺序加载业务逻辑。
进一步地,加载模块302具体用于根据具有业务定制的执行阶段分别创建任务线程并加载业务逻辑。
进一步地,加载模块302具体用于根据业务逻辑中对应的不同业务定制的执行阶段,将业务逻辑加载在不同的任务线程。
进一步地,加载模块302还用于当CDN用户下发的不同业务逻辑中包含相同执行阶段时,在相同执行阶段将不同业务逻辑加载在同一任务线程。
进一步地,处理模块303具体用于在接收符合触发条件且执行阶段与业务逻辑对应的用户请求时,按照业务逻辑的处理顺序先后在具有业务定制的执行阶段执行业务逻辑对用户请求进行处理。
进一步地,业务逻辑的处理顺序为请求接入阶段、回源转发阶段、回源响应阶段和请求响应阶段。
进一步地,本发明实施方式提供的CDN业务定制系统还包括关联模块,用于在执行完当前执行阶段的业务逻辑后,将当前执行阶段的关联信息传递至下一需要关联信息且具有业务定制的执行阶段,以供下一需要关联信息且具有业务定制的执行阶段根据关联信息和业务逻辑处理用户请求。
进一步地,关联模块还用于将当前执行阶段的关联信息通过用户请求的请求头或业务逻辑的内置变量传递至下一需要关联信息且具有业务定制的执行阶段。
进一步地,业务逻辑包括由CDN用户根据在线编辑平台的预设脚本语言编写得到的业务脚本。
进一步地,加载模块302具体用于将业务脚本的语言转换为CDN节点可以识别的语言,得到转换后的业务脚本;在CDN节点中业务逻辑具有业务定制的执行阶段加载转换后的业务脚本。
进一步地,本发明实施方式提供的CDN业务定制系统还包括测试模块,用于将业务逻辑翻译为CDN节点可以识别的业务逻辑,并在翻译的过程中注入测试代码;根据测试代码对业务逻辑进行测试;若测试的结果为通过,则执行根据具有业务定制的执行阶段在CDN节点加载业务逻辑的步骤。
请参考图5,其为本发明实施方式提供的CDN业务定制系统300的具体示例图。具体地,管理节点、翻译器模块和脚本下发通道具体可以部署在CDN的中心管理节点上,而格式化模块和处理模块可以部署在CDN的边缘节点上。其中,管理节点用于对在线编辑平台生成的业务脚本进行版本管理,同时也可以对外提供翻译、测试、预部署、审批、部署等功能的接口;翻译器模块用于将业务脚本的语言转换为CDN节点可以识别的语言,并可以注入测试代码;脚本下发通道用于将业务脚本从CDN的中心管理节点下发至CDN的边缘节点;格式化模块用于将下发的业务脚本文件转换为CDN边缘节点可以解析和识别的格式;处理模块为部署在CDN边缘节点的软件,用于加载业务脚本,使业务脚本生效并提供对应执行阶段的处理。
不难发现,本实施方式为与前述实施方式相对应的系统实施例,本实施方式可与前述实施方式互相配合实施。前述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在前述实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明第四实施方式涉及一种服务端,如图6所示,包括至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行上述的CDN业务定制方法。
其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器401和存储器402的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器401。
处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器402可以被用于存储处理器401在执行操作时所使用的数据。
本发明第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (17)

1.一种CDN业务定制方法,其特征在于,包括:
接收由CDN用户下发的业务逻辑,其中,所述业务逻辑对应至少两个执行阶段的业务定制;
根据所述具有业务定制的执行阶段在CDN节点加载所述业务逻辑;
在接收与所述业务逻辑对应的用户请求时,按照所述业务逻辑的处理顺序先后在所述具有业务定制的执行阶段执行所述业务逻辑,对所述用户请求进行处理。
2.根据权利要求1所述的CDN业务定制方法,其特征在于,所述根据所述具有业务定制的执行阶段在CDN节点中加载所述业务逻辑,包括:
所述CDN节点根据所述具有业务定制的执行阶段分别创建任务线程并加载所述业务逻辑。
3.根据权利要求2所述的CDN业务定制方法,其特征在于,还包括:
所述CDN节点根据所述业务逻辑中对应的不同业务定制的执行阶段,将所述业务逻辑加载在不同的所述任务线程。
4.根据权利要求2所述的CDN业务定制方法,其特征在于,还包括:
当所述CDN用户下发的不同业务逻辑中包含相同执行阶段时,所述CDN节点在所述相同执行阶段将所述不同业务逻辑加载在同一所述任务线程。
5.根据权利要求1-4任一项所述的CDN业务定制方法,其特征在于,所述业务逻辑包括触发条件,所述在接收与所述业务逻辑对应的用户请求时,按照所述业务逻辑的处理顺序先后在所述具有业务定制的执行阶段执行所述业务逻辑,对所述用户请求进行处理,包括:
在接收符合所述触发条件且执行阶段与所述业务逻辑对应的用户请求时,按照所述业务逻辑的处理顺序先后,在所述具有业务定制的执行阶段执行所述业务逻辑对所述用户请求进行处理。
6.根据权利要求5所述的CDN业务定制方法,其特征在于,所述在接收与所述业务逻辑对应的用户请求时,按照所述业务逻辑的处理顺序先后,在所述具有业务定制的执行阶段执行所述业务逻辑对所述用户请求进行处理,包括:
当所述CDN节点没有命中缓存时,由所述任务线程进行回源,以对所述用户请求进行处理。
7.根据权利要求1-4任一项所述的CDN业务定制方法,其特征在于,所述业务逻辑的处理顺序为请求接入阶段、回源转发阶段、回源响应阶段和请求响应阶段。
8.根据权利要求7所述的CDN业务定制方法,其特征在于,所述根据所述具有业务定制的执行阶段在CDN节点加载所述业务逻辑,包括:
识别所述业务逻辑中固定的执行阶段之间的逻辑顺序,按照所述逻辑顺序加载所述业务逻辑。
9.根据权利要求1所述的CDN业务定制方法,其特征在于,还包括:
在执行完当前执行阶段的业务逻辑后,将当前执行阶段的关联信息传递至下一需要所述关联信息且具有业务定制的执行阶段,以供下一需要所述关联信息且具有业务定制的执行阶段根据所述关联信息和所述业务逻辑处理所述用户请求。
10.根据权利要求9所述的CDN业务定制方法,其特征在于,所述将当前执行阶段的关联信息传递至下一需要关联信息且具有业务定制的执行阶段,包括:
将当前执行阶段的关联信息通过所述用户请求的请求头或所述业务逻辑的内置变量传递至下一需要所述关联信息且具有业务定制的执行阶段。
11.根据权利要求1所述的CDN业务定制方法,其特征在于,所述业务逻辑包括由所述CDN用户根据在线编辑平台的预设脚本语言编写得到的业务脚本。
12.根据权利要求11所述的CDN业务定制方法,其特征在于,所述根据所述具有业务定制的执行阶段在CDN节点加载所述业务逻辑,包括:
将所述业务脚本的语言转换为所述CDN节点可以识别的语言,得到转换后的业务脚本;
在所述CDN节点中所述业务逻辑具有业务定制的执行阶段加载所述转换后的业务脚本。
13.根据权利要求1所述的CDN业务定制方法,其特征在于,在所述在CDN节点中所述业务逻辑具有业务定制的执行阶段加载所述业务逻辑之前,还包括:
将业务逻辑翻译为所述CDN节点可以识别的业务逻辑,并在翻译的过程中注入测试代码;
根据所述测试代码对所述业务逻辑进行测试;
若测试的结果为通过,则执行所述根据所述具有业务定制的执行阶段在CDN节点加载所述业务逻辑的步骤。
14.一种CDN业务定制系统,其特征在于,包括;
接收模块,用于接收由CDN用户编写并下发的业务逻辑,其中,所述业务逻辑对应至少两个执行阶段的业务定制;
加载模块,用于根据所述具有业务定制的执行阶段在CDN节点加载所述业务逻辑;
处理模块,用于在接收与所述业务逻辑对应的用户请求时,按照所述业务逻辑的处理顺序先后在所述具有业务定制的执行阶段执行所述业务逻辑,对所述用户请求进行处理。
15.根据权利要求14所述的CDN业务定制系统,其特征在于,还包括:
在线编辑平台,用于提供CDN用户编写业务逻辑的平台,并将所述业务逻辑下发至所述CDN节点;所述在线编辑平台包括预设脚本语言,所述CDN用户根据所述预设脚本语言编写所述业务逻辑。
16.根据权利要求14所述的CDN业务定制系统,其特征在于,包括,所述CDN节点包括任务线程,所述加载模块根据所述具有业务定制的执行阶段将所述业务逻辑加载至所述任务线程;所述任务线程,用于当所述CDN节点没有命中缓存时,由所述任务线程进行回源,以对所述用户请求进行处理。
17.根据权利要求14所述的CDN业务定制系统,其特征在于,还包括:
识别模块,用于识别所述业务逻辑中固定的执行阶段之间的逻辑顺序,按照所述逻辑顺序加载所述业务逻辑。
CN202110118453.4A 2021-01-28 2021-01-28 Cdn业务定制方法及系统 Pending CN112988127A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110118453.4A CN112988127A (zh) 2021-01-28 2021-01-28 Cdn业务定制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110118453.4A CN112988127A (zh) 2021-01-28 2021-01-28 Cdn业务定制方法及系统

Publications (1)

Publication Number Publication Date
CN112988127A true CN112988127A (zh) 2021-06-18

Family

ID=76345664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110118453.4A Pending CN112988127A (zh) 2021-01-28 2021-01-28 Cdn业务定制方法及系统

Country Status (1)

Country Link
CN (1) CN112988127A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174690A (zh) * 2022-09-08 2022-10-11 中国人民解放军国防科技大学 一种弱网或断网情况下大流量业务加速系统及方法
CN115842722A (zh) * 2021-09-18 2023-03-24 贵州白山云科技股份有限公司 业务实现方法、装置、系统、计算机设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984409A (zh) * 2010-11-10 2011-03-09 南京南瑞继保电气有限公司 一种用于Linux系统测试代码注入的方法
CN103036977A (zh) * 2012-12-13 2013-04-10 北京奇虎科技有限公司 基于内容分发网络的业务推送方法及推送系统
CN105577714A (zh) * 2014-10-13 2016-05-11 中兴通讯股份有限公司 基于软件定义网络实现内容分发网络的方法及系统
US20170168783A1 (en) * 2015-12-10 2017-06-15 Sap Se Generating logic with scripting language in software as a service enterprise resource planning
CN108028853A (zh) * 2015-09-11 2018-05-11 亚马逊科技公司 用于边缘位置处的可定制的事件触发计算的系统、方法和计算机可读存储介质
US10805652B1 (en) * 2019-03-29 2020-10-13 Amazon Technologies, Inc. Stateful server-less multi-tenant computing at the edge

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984409A (zh) * 2010-11-10 2011-03-09 南京南瑞继保电气有限公司 一种用于Linux系统测试代码注入的方法
CN103036977A (zh) * 2012-12-13 2013-04-10 北京奇虎科技有限公司 基于内容分发网络的业务推送方法及推送系统
CN105577714A (zh) * 2014-10-13 2016-05-11 中兴通讯股份有限公司 基于软件定义网络实现内容分发网络的方法及系统
CN108028853A (zh) * 2015-09-11 2018-05-11 亚马逊科技公司 用于边缘位置处的可定制的事件触发计算的系统、方法和计算机可读存储介质
US20170168783A1 (en) * 2015-12-10 2017-06-15 Sap Se Generating logic with scripting language in software as a service enterprise resource planning
US10805652B1 (en) * 2019-03-29 2020-10-13 Amazon Technologies, Inc. Stateful server-less multi-tenant computing at the edge

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115842722A (zh) * 2021-09-18 2023-03-24 贵州白山云科技股份有限公司 业务实现方法、装置、系统、计算机设备及存储介质
CN115174690A (zh) * 2022-09-08 2022-10-11 中国人民解放军国防科技大学 一种弱网或断网情况下大流量业务加速系统及方法

Similar Documents

Publication Publication Date Title
CN112104709B (zh) 智能合约的处理方法、装置、介质及电子设备
US8386608B1 (en) Service scripting framework
CN108804514A (zh) 一种网页加载方法、服务器和网页加载系统
CN112988127A (zh) Cdn业务定制方法及系统
CN113076502A (zh) 一种基于请求标识的参数控制方法与系统
US11086637B1 (en) Configuration transformation and delivery
US20090299938A1 (en) Rules engine for aspect services
CN103577180B (zh) 数据处理方法及装置
CN104239508A (zh) 数据查询方法和装置
US11797271B2 (en) Dynamic web-based integrated development environment
US20150113502A1 (en) Method and system for encapsulation of application
CN112988378A (zh) 业务处理方法及装置
US20150113506A1 (en) Method and system for adaptive loading of application
CN113779004A (zh) 一种数据校验的方法和装置
US10606569B2 (en) Declarative configuration elements
CN117008920A (zh) 引擎系统、请求处理方法、装置、计算机设备及存储介质
CN112988126A (zh) Cdn业务定制方法及系统
CN106936643B (zh) 一种设备联动方法以及终端设备
KR101383050B1 (ko) 어플리케이션 번역 방법 및 장치
CN113760274B (zh) 一种前端组件逻辑注入方法和装置
US8180854B2 (en) Aspect services
CN114064176A (zh) 一种视图交互方法、装置、电子设备及计算机可读介质
CN114489698A (zh) 应用程序安装方法和装置
CN112783778A (zh) 测试方法、装置、网络设备及存储介质
CN112612531A (zh) 应用程序启动方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination