CN111770170B - 请求处理方法、装置、设备和计算机存储介质 - Google Patents
请求处理方法、装置、设备和计算机存储介质 Download PDFInfo
- Publication number
- CN111770170B CN111770170B CN202010603582.8A CN202010603582A CN111770170B CN 111770170 B CN111770170 B CN 111770170B CN 202010603582 A CN202010603582 A CN 202010603582A CN 111770170 B CN111770170 B CN 111770170B
- Authority
- CN
- China
- Prior art keywords
- code
- cdn
- request
- dynamic code
- dynamic
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请公开了一种请求处理方法、装置、设备和计算机存储介质,涉及云计算技术领域。请求处理方法包括:接收内容分发网络CDN请求;获取所述网络CDN请求对应的动态代码,所述动态代码为预先配置的代码;对所述动态代码进行实时编译,获得编译代码;执行所述编译代码。本申请实施例提供的请求处理方法,能够提高CND***的请求处理的灵活性,无并发限制。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及边缘***技术领域。
背景技术
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。在CDN边缘***中,一般使用脚本语言进行静态的定制化计算,比如Lua语言,需要把相关代码静态部署到所有边缘节点上去,并且需要边缘***重新加载这些代码。这些代码必须经过严格的测试灰度流程,因为目前的边缘***缺乏完善的代码风险控制能力,这样大大限制了CDN边缘***的研发效率。在边缘计算的能力越来越不可或缺的今天,CDN边缘***研发的方式方法,已经成为增大工作成本的重要原因。
发明内容
本公开提供了一种请求处理方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种请求处理方法,包括:
接收内容分发网络CDN请求;
获取网络CDN请求对应的动态代码;动态代码为预先配置的代码;
对动态代码进行实时编译,获得编译代码;
执行编译代码。
根据本公开的一方面,提供了一种请求处理装置,包括:
请求接收模块:用于接收内容分发网络CDN请求;
获取模块:用于获取网络CDN请求对应的动态代码;动态代码为预先配置的代码;
编译模块:用于对动态代码进行实时编译,获得编译代码;
执行模块:用于执行编译代码。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本申请任意一项实施例所提供的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行本申请任意一项实施例所提供的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。
本申请能够在CDN***内通过动态代码执行请求,从而能够对CDN***进行灵活控制,动态代码在CDN边缘***内部的CDN边缘节点上获取,无并发限制,自然性能高、占用资源少。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请实施例的请求处理方法示意图;
图2是根据本申请实施例的请求处理方法在一具体场景下的示意图;
图3是根据本申请一示例的请求处理方法示意图;
图4是根据本申请另一实施例的请求执行装置示意图;
图5是根据本申请实施例的请求执行装置示意图;
图6是根据本申请另一实施例的请求执行装置示意图;
图7是用来实现本申请实施例的请求处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1示出了根据本申请一种实施例的请求处理方法流程示意图,如图1所示,包括以下步骤:
步骤101:接收内容分发网络CDN请求。
步骤102:获取网络CDN请求对应的动态代码;动态代码为预先配置的代码。
步骤103:对动态代码进行实时编译,获得编译代码。
步骤104:执行编译代码。
本实施例中,网络CDN请求可以是用户发送到CDN边缘节点的请求,用于对CDN代码进行部署。网络CDN请求的具体内容可以是由CDN***的客户进行定制的。
获取网络CDN请求对应的动态代码可以由用户定制,比如,文件名改写,添加跨域头,referer(引用)黑白名单,限速反馈控制,404自定义页面,A/B Test(A/B测试)控制。网络CDN请求中的内容可以用于获得动态代码。比如,用户请求对文件名进行改写,发送关于CDN节点的网络CDN请求,然后根据网络CDN请求确定CDN节点,然后从CDN节点获取对应的用于改写文件名的动态代码。同时,本申请实施例通过动态代码执行用户的请求,提供通用灵活的CDN边缘***控制能力;动态代码在CDN边缘***内部的CDN边缘节点上获取,无并发限制,自然性能高、占用资源少。
由于本申请实施例采用动态代码进行部署,动态代码在程序运行过程中随时可以更改,从而提高了CDN***的代码部署的灵活性,动态代码定制化程度很高,降低了研发成本。
本实施例中,动态代码为代码中可由用户自己进行定义的内容,比如,是否缓存,是否采用防盗链等。
本实施例中,编译代码可以是在CDN节点上可执行的语言格式的代码。
本实施例中,对动态代码进行实时编译,获得编译代码,可以是将第一语言格式的动态代码进行实时编译,将第一语言的动态代码转换为第二语言格式的编译代码。比如,将JavaScript格式的动态代码进行实时编译,转换为C语言格式的编译代码。
本实施例中,能够根据用户发送的网络CDN请求,获得动态代码,然后将动态代码编译为CDN***可执行的代码,从而用户能够对CDN***的部署的代码进行定制,根据自身需求设置一些参数,实现CDN***中代码的可定制性。本实施例支持的场景非常丰富,可使用流行的JavaScript语言,定制化程度很高,降低了研发成本。
在一种实施方式中,请求处理方法包括:
接收内容分发网络CDN请求;
根据网络CDN请求中的域名信息,从域名信息对应的CDN边缘节点中获取动态代码;
对动态代码进行实时编译,获得编译代码;
执行编译代码。
本实施例中,域名信息可以对应一个具体的CDN边缘服务器(即CDN边缘节点)。网络CDN请求可以通过客户端发送。在域名信息对应的CDN边缘节点中,预先存储有动态代码,可由运维人员编写存储。
具体的,本实施例中,比如对应的文件名改写请求,运维人员编写并存储与之对应的动态代码到CDN边缘服务器中。用户发送关于改写文件名的网络CDN请求到CDN边缘***,根据该网络CDN请求,确定的域名信息,在域名信息对应的CDN边缘***节点中获取动态代码。
本实施例中,能够根据网络CDN请求从对应的CDN边缘节点中获取动态代码,从而实现动态代码的可定制。
在另一种实施方式中,请求处理方法包括:
接收内容分发网络CDN请求;
获取网络CDN请求对应的动态代码;动态代码为预先配置的代码;
通过对动态代码进行静态检测,确定动态代码是否包括不安全特征;
在静态检测结果不包括不安全特征的情况下,对动态代码进行动态计算,生成编译代码;
执行编译代码。
本实施例中,对动态代码进行静态检测,具体可以是确定请求是否满足配置规则,从而拒绝违规的网络CDN请求。比如,检测是否存在网址恶意改写、盗用网址等内容。
本申请实施例中,对动态代码进行静态检测,从而能够判断代码或中是否存在违规内容,进而在检测到违规内容之后,可以直接结束处理,保证代码执行过程的安全性。提高代码风险控制能力。
在本申请另一种实时方式中,请求处理方法包括:
接收内容分发网络CDN请求;
获取网络CDN请求对应的动态代码;动态代码为预先配置的代码;
通过对动态代码进行静态检测,确定动态代码是否包括不安全特征;
在静态检测结果不包括不安全特征的情况下,创建用于执行网络CDN请求的JS虚拟机;
将动态代码和动态代码结合生成的第三动态代码加入JS虚拟机;
对动态代码进行实时编译,生成编译代码;
执行编译代码。
本实施例中,创建用于执行网络CDN请求的JS虚拟机,具体可以是创建用于执行网络CDN请求的程序JavaScript虚拟机,提供动态代码的编译环境。
本实施例中,对动态代码进行实时编译,生成编译代码,可以是对动态代码进行实时编译,将JavaScript语言的动态代码转换成C语言的编译代码。
本实施例中,对动态代码进行实时编译时,逐句进行编译,将编译的内容放入缓存,代码实时上传,每个网络CDN请求生命周期独占的JavaScript虚拟机,代码执行逻辑高度隔离,无耦合。
本实施例中,能够在JavaScript虚拟机中对动态代码进行实时编译,生成编译代码,从而实时执行编译代码,使得能够在用户请求CDN边缘节点的同时执行用户定制的动态代码,提高了代码执行效率。
在实时编译过程中,基于ECMAScript标准实现的JavaScript编译器进行实时编译,深度嵌入到CDN边缘***中,性能高,成本低,无并发限制。使用流行的JavaScript语言,支持的场景非常丰富,包括:跨域访问、重定向、访问控制、IP黑白名单、Referer黑白名单、UA黑白名单、限速、鉴权、子请求、修改请求URI(Uniform Resource Identifier,统一资源标识符)、修改请求ARGS、修改请求Header、修改响应Header(标头)、A/B Test。
在一种实施方式中,执行编译代码,包括:
在JS虚拟机中执行编译代码。
本实施例中,在JS虚拟机中执行编译代码,使得用户定制的动态代码能够得到执行。由于JavaScript为流行的语言,因此,支持的场景非常丰富。
在本申请另一种实施方式中,如图2所示,请求处理方法包括:
步骤101:接收内容分发网络CDN请求。
步骤102:获取网络CDN请求对应的动态代码;动态代码为预先配置的代码。
步骤103:对动态代码进行实时编译,获得编译代码。
步骤104:执行编译代码。
步骤201:检测用于执行编译代码的资源的占用率。
步骤202:在占用率超过设定阈值的情况下,终止执行编译代码。
本实施例中,在执行编译代码时的资源的占用率超过设定阈值的情况下,终止执行编译代码,从而能够进一步防止不安全、恶意抢占资源的代码被执行,提高边缘***的代码执行过程的安全性。
在本申请一种示例中,请求处理方法包括:
步骤301:接收内容分发网络CDN请求。网络CDN请求可以通过客户端比如浏览器发送,具体比如可以是发送http报文请求。
步骤302:获取网络CDN请求对应的动态代码;动态代码为预先配置的代码。在本示例中,静态计算可以指CDN提供的基础服务能力,比如缓存控制等。
步骤303:对动态代码进行静态检测,判断是否执行动态计算。检测代码是否存在安全隐患,若存在,则不继续执行动态计算。
步骤304:在判断执行动态计算的情况下,对动态代码进行动态计算。
步骤305:创建用于执行网络CDN请求的JS虚拟机。在本示例中,若存在多个请求,则针对每个请求创建一个JS虚拟机。
步骤306:将动态代码加入JS虚拟机。
步骤307:对动态代码进行实时编译,生成编译代码。
步骤308:检测用于执行编译代码的资源的占用率。
步骤309:在占用率超过设定阈值的情况下,终止执行编译代码。终止执行编译代码后,结束请求,返回异常状态码。计算结束,还需继续执行请求,比如传递给上游。
步骤310:在占用率不超过设定阈值的情况下,继续执行编译代码,直到执行完毕。
本申请实施例还提供一种请求处理装置,如图4所示,包括:
请求接收模块401:用于接收内容分发网络CDN请求;
获取模块402:用于获取网络CDN请求对应的动态代码;动态代码为预先配置的代码;
编译模块403:用于对动态代码进行实时编译,获得编译代码;
执行模块404:用于执行编译代码。
在一种实施方式中,处理装置仍包括图4所示的请求接收模块401、获取模块402、编译模块403和执行模块404,在此基础上,获取模块还用于:
根据网络CDN请求中的域名信息,从域名信息对应的CDN边缘节点中获取动态代码。
在一种实施方式中,处理装置仍包括图4所示的请求接收模块401、获取模块402、编译模块403和执行模块404,在此基础上,如图5所示,编译模块403还包括:
检测单元501:用于通过对动态代码进行静态检测,确定动态代码是否包括不安全特征;
静态检测处理单元502:用于在静态检测结果不包括不安全特征的情况下,对动态代码进行动态计算,生成编译代码。
处理装置仍包括图4所示的请求接收模块401、获取模块402、编译模块403和执行模块404,在此基础上,如图6所示,静态检测处理单元502还包括:
创建子单元601:用于创建用于执行网络CDN请求的JS虚拟机;
加入子单元602:用于将动态代码加入JS虚拟机;
实时处理子单元603:用于对动态代码进行实时编译,生成编译代码。
处理装置仍包括图4所示的请求接收模块401、获取模块402、编译模块403和执行模块404,在此基础上,执行模块404还用于:
在JS虚拟机中执行编译代码。
处理装置仍包括图4所示的请求接收模块401、获取模块402、编译模块403和执行模块404,在此基础上,如图7所示,装置还包括:
占用率检测模块701:用于检测用于执行编译代码的资源的占用率;
终止执行模块702:用于在占用率超过设定阈值的情况下,终止执行编译代码。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图8所示,是根据本申请实施例的请求处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图8中以一个处理器801为例。
存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的请求处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的请求处理方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的请求处理方法对应的程序指令/模块(例如,图4所示的请求接收模块401、获取模块402、编译模块403和执行模块404)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的请求处理方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据视频请求执行电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至视频请求执行电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
请求处理方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置803可接收输入的数字或字符信息,以及产生与视频请求执行电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或编译,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请能够在CDN***内通过动态代码执行请求,从而能够对CDN***进行灵活控制,动态代码在CDN边缘***内部的CDN边缘节点上获取,无并发限制,自然性能高、占用资源少。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种请求处理方法,其特征在于,包括:
接收内容分发网络CDN请求;
根据所述CDN请求确定CDN节点,从所述CDN节点获取对应的动态代码,所述动态代码为预先配置的代码;所述动态代码为代码中自定义的内容;
通过对所述动态代码进行静态检测,确定所述动态代码是否包括不安全特征;
在静态检测结果不包括不安全特征的情况下,创建用于执行所述网络CDN请求的JS虚拟机;
将所述动态代码加入所述JS虚拟机;
对所述动态代码进行实时编译,获得编译代码;
执行所述编译代码。
2.根据权利要求1所述的方法,其中,从所述CDN节点获取对应的动态代码,包括:
根据所述网络CDN请求中的域名信息,从所述域名信息对应的CDN边缘节点中获取所述动态代码。
3.根据权利要求1所述的方法,其中,执行所述编译代码,包括:
在所述JS虚拟机中执行所述编译代码。
4.根据权利要求1至3中任一项所述的方法,其中,还包括:
检测用于执行所述编译代码的资源的占用率;
在所述占用率超过设定阈值的情况下,终止执行所述编译代码。
5.一种请求处理装置,包括:
请求接收模块:用于接收内容分发网络CDN请求;
获取模块:用于根据所述CDN请求确定CDN节点,从所述CDN节点获取对应的动态代码;所述动态代码为预先配置的代码;所述动态代码为代码中自定义的内容;
编译模块,用于通过对所述动态代码进行静态检测,确定所述动态代码是否包括不安全特征,在静态检测结果不包括不安全特征的情况下,创建用于执行所述网络CDN请求的JS虚拟机,将所述动态代码加入所述JS虚拟机,对所述动态代码进行实时编译,获得编译代码;
执行模块:用于执行所述编译代码。
6.根据权利要求5所述的装置,其中,所述获取模块还用于:
根据所述网络CDN请求中的域名信息,从所述域名信息对应的CDN边缘节点中获取所述动态代码。
7.根据权利要求5所述的装置,其中,所述执行模块还用于:
在所述JS虚拟机中执行所述编译代码。
8.根据权利要求5至7中任一项所述的装置,其中,所述装置还包括:
占用率检测模块:用于检测用于执行所述编译代码的资源的占用率;
终止执行模块:用于在所述占用率超过设定阈值的情况下,终止执行所述编译代码。
9.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010603582.8A CN111770170B (zh) | 2020-06-29 | 2020-06-29 | 请求处理方法、装置、设备和计算机存储介质 |
KR1020210038371A KR102572013B1 (ko) | 2020-06-29 | 2021-03-24 | 요청 처리 방법,장치,기기, 컴퓨터 저장매체 및 컴퓨터 프로그램 |
EP21169626.5A EP3872630B1 (en) | 2020-06-29 | 2021-04-21 | Request processing method and apparatus, electronic device, and computer storage medium |
US17/243,639 US11689630B2 (en) | 2020-06-29 | 2021-04-29 | Request processing method and apparatus, electronic device, and computer storage medium |
JP2021098546A JP2021166060A (ja) | 2020-06-29 | 2021-06-14 | リクエストの処理方法、装置、設備、コンピュータ記憶媒体、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010603582.8A CN111770170B (zh) | 2020-06-29 | 2020-06-29 | 请求处理方法、装置、设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111770170A CN111770170A (zh) | 2020-10-13 |
CN111770170B true CN111770170B (zh) | 2023-04-07 |
Family
ID=72722909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010603582.8A Active CN111770170B (zh) | 2020-06-29 | 2020-06-29 | 请求处理方法、装置、设备和计算机存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11689630B2 (zh) |
EP (1) | EP3872630B1 (zh) |
JP (1) | JP2021166060A (zh) |
KR (1) | KR102572013B1 (zh) |
CN (1) | CN111770170B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115474197A (zh) * | 2021-05-24 | 2022-12-13 | 中移(成都)信息通信科技有限公司 | 访问虚拟电子设备的方法及装置、电子设备、存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104081350A (zh) * | 2012-02-03 | 2014-10-01 | 苹果公司 | 使用动态编程语言的元数据的运行时优化 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU7944100A (en) * | 1999-10-25 | 2001-05-08 | Sanctum Ltd. | Method and system for verifying a client request |
JP2006502465A (ja) * | 2002-01-11 | 2006-01-19 | アカマイ テクノロジーズ インコーポレイテッド | コンテンツ配信ネットワーク(CDN)で使用するためのJavaアプリケーションフレームワーク |
US7660896B1 (en) * | 2003-04-15 | 2010-02-09 | Akamai Technologies, Inc. | Method of load balancing edge-enabled applications in a content delivery network (CDN) |
US8423662B1 (en) * | 2003-04-28 | 2013-04-16 | Akamai Technologies, Inc. | Forward request queuing in a distributed edge processing environment |
JP2005070884A (ja) | 2003-08-28 | 2005-03-17 | Ntt Docomo Inc | 課金ポリシー生成装置、メタデータ配信サーバ、有料情報配信サーバ、有料情報配信システム、課金ポリシー生成方法、及び、有料情報課金方法 |
US8145521B2 (en) | 2008-07-15 | 2012-03-27 | Google Inc. | Geographic and keyword context in embedded applications |
US20120191840A1 (en) * | 2009-09-25 | 2012-07-26 | Vladislav Gordon | Managing Application State Information By Means Of A Uniform Resource Identifier (URI) |
US20120089700A1 (en) * | 2010-10-10 | 2012-04-12 | Contendo, Inc. | Proxy server configured for hierarchical caching and dynamic site acceleration and custom object and associated method |
US8898780B2 (en) | 2011-11-07 | 2014-11-25 | Qualcomm Incorporated | Encoding labels in values to capture information flows |
US9110751B2 (en) * | 2012-02-13 | 2015-08-18 | Microsoft Technology Licensing, Llc | Generating and caching software code |
US9237190B2 (en) * | 2012-04-18 | 2016-01-12 | Samsung Electronics Co., Ltd. | Node and method for generating shortened name robust against change in hierarchical name in content-centric network (CCN) |
US9992260B1 (en) * | 2012-08-31 | 2018-06-05 | Fastly Inc. | Configuration change processing for content request handling in content delivery node |
US10701148B2 (en) * | 2012-12-13 | 2020-06-30 | Level 3 Communications, Llc | Content delivery framework having storage services |
US9841960B2 (en) * | 2015-03-30 | 2017-12-12 | Ca, Inc. | Dynamic provision of debuggable program code |
CN104935660B (zh) | 2015-06-17 | 2018-11-06 | 北京智友信诚科技有限公司 | 一种云程序开发运行***、方法及装置 |
US10666574B2 (en) | 2015-09-28 | 2020-05-26 | Amazon Technologies, Inc. | Distributed stream-based database triggers |
KR102492871B1 (ko) * | 2015-12-15 | 2023-01-30 | 삼성전자주식회사 | 사용자 단말장치, 서버, 및 그 어플리케이션 실행 방법 |
US10754701B1 (en) * | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US9830449B1 (en) * | 2015-12-16 | 2017-11-28 | Amazon Technologies, Inc. | Execution locations for request-driven code |
KR101665008B1 (ko) * | 2016-01-28 | 2016-10-24 | 한국과학기술정보연구원 | 데이터 분석 장치 및 방법 |
US10742596B2 (en) * | 2016-03-04 | 2020-08-11 | Cisco Technology, Inc. | Method and system for reducing a collision probability of hash-based names using a publisher identifier |
US10872142B1 (en) * | 2018-03-02 | 2020-12-22 | Amazon Technologies, Inc. | Localized identity management in limited communication networks |
US11068281B2 (en) * | 2018-03-02 | 2021-07-20 | Fastly, Inc. | Isolating applications at the edge |
US10979439B1 (en) * | 2018-03-02 | 2021-04-13 | Amazon Technologies, Inc. | Identity management for coordinated devices in a networked environment |
CN108769743B (zh) * | 2018-05-11 | 2020-11-06 | 中兴通讯股份有限公司 | 一种视频播放控制方法、***、节点和计算机存储介质 |
US10331462B1 (en) * | 2018-11-06 | 2019-06-25 | Cloudflare, Inc. | Cloud computing platform that executes third-party code in a distributed cloud computing network |
CN109885990B (zh) * | 2019-03-11 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 脚本管理方法 |
US11151009B2 (en) * | 2019-07-25 | 2021-10-19 | Deepfactor, Inc. | Systems, methods, and computer-readable media for processing telemetry events related to operation of an application |
CN110851135A (zh) * | 2019-09-12 | 2020-02-28 | 中国平安财产保险股份有限公司 | 应用程序自动构建上传方法、装置及计算机设备、存储介质 |
CN110727504B (zh) * | 2019-10-21 | 2022-04-22 | 百度在线网络技术(北京)有限公司 | 代码执行方法、装置和渲染设备 |
CN110944048B (zh) | 2019-11-29 | 2022-06-24 | 腾讯科技(深圳)有限公司 | 业务逻辑配置方法及装置 |
CN111008019B (zh) * | 2019-12-06 | 2021-07-02 | 北京百度网讯科技有限公司 | 小程序的Web化运行方法、装置、设备及介质 |
WO2021188862A1 (en) * | 2020-03-20 | 2021-09-23 | Section.io Incorporated | Systems, methods, computing platforms, and storage media for administering a distributed edge computing system utilizing an adaptive edge engine |
-
2020
- 2020-06-29 CN CN202010603582.8A patent/CN111770170B/zh active Active
-
2021
- 2021-03-24 KR KR1020210038371A patent/KR102572013B1/ko active IP Right Grant
- 2021-04-21 EP EP21169626.5A patent/EP3872630B1/en active Active
- 2021-04-29 US US17/243,639 patent/US11689630B2/en active Active
- 2021-06-14 JP JP2021098546A patent/JP2021166060A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104081350A (zh) * | 2012-02-03 | 2014-10-01 | 苹果公司 | 使用动态编程语言的元数据的运行时优化 |
Non-Patent Citations (2)
Title |
---|
Tarik Taleb等.On Multi-Access Edge Computing: A Survey of the Emerging 5G Network Edge Cloud Architecture and Orchestration.IEEE Communications Surveys & Tutorials.2017,全文. * |
李娜.一个ARM即时编译器的设计与实现.商洛学院学报.(第02期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
JP2021166060A (ja) | 2021-10-14 |
EP3872630A2 (en) | 2021-09-01 |
EP3872630A3 (en) | 2021-11-17 |
EP3872630B1 (en) | 2023-11-01 |
US20210274017A1 (en) | 2021-09-02 |
CN111770170A (zh) | 2020-10-13 |
KR20210040333A (ko) | 2021-04-13 |
KR102572013B1 (ko) | 2023-08-29 |
US11689630B2 (en) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11194572B2 (en) | Managing external feeds in an event-based computing system | |
US9329858B2 (en) | Managing access to resource versions in shared computing environments | |
US20180039516A1 (en) | Heterogeneous auto-scaling using homogeneous auto-scaling groups | |
US10461772B1 (en) | Code conversion | |
US20190199663A1 (en) | Chat message processing | |
US20190065619A1 (en) | Scalable server-side rendering | |
CN111770176B (zh) | 流量调度方法及装置 | |
CN110727434A (zh) | 渲染方法、装置、电子设备及存储介质 | |
CN111865720B (zh) | 用于处理请求的方法、装置、设备以及存储介质 | |
CN111881387A (zh) | 用于小程序的数据处理方法、装置、设备和介质 | |
KR20220015323A (ko) | 호스팅 애플리케이션의 컴파일 최적화 방법, 장치, 전자 기기 및 판독 가능 저장 매체 | |
US20160274777A1 (en) | Intelligent taskbar shortcut menu for webpage control | |
CN112651741A (zh) | 基于区块链的数据处理方法和装置 | |
CN112328301A (zh) | 维护运行环境一致性的方法、装置、存储介质及电子设备 | |
CN112015468A (zh) | 一种接口文档处理方法、装置、电子设备以及存储介质 | |
CN109828830B (zh) | 用于管理容器的方法和装置 | |
CN111770170B (zh) | 请求处理方法、装置、设备和计算机存储介质 | |
US11349729B2 (en) | Network service requests | |
CN111615171B (zh) | 无线局域网的接入方法和装置 | |
WO2023169193A1 (zh) | 用于生成智能合约的方法和装置 | |
US11381665B2 (en) | Tracking client sessions in publish and subscribe systems using a shared repository | |
CN115865974A (zh) | 边缘设备、云端设备、边缘计算***及方法和存储介质 | |
US20190036835A1 (en) | Client side information to influence service level for client system | |
CN112052347A (zh) | 图像存储方法、装置以及电子设备 | |
CN112559001A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |