CN110032364A - 数据处理方法、装置、电子设备和计算机存储介质 - Google Patents
数据处理方法、装置、电子设备和计算机存储介质 Download PDFInfo
- Publication number
- CN110032364A CN110032364A CN201910290146.7A CN201910290146A CN110032364A CN 110032364 A CN110032364 A CN 110032364A CN 201910290146 A CN201910290146 A CN 201910290146A CN 110032364 A CN110032364 A CN 110032364A
- Authority
- CN
- China
- Prior art keywords
- program code
- code
- program
- running
- server
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 38
- 230000015654 memory Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 8
- 230000003993 interaction Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
- G06Q50/205—Education administration or guidance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Educational Technology (AREA)
- Strategic Management (AREA)
- Educational Administration (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本发明实施例公开了一种数据处理方法、装置、电子设备和计算机存储介质,该方法包括:获取用于在线编程的程序代码;根据所述程序代码检测终端的代码运行环境;响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。本发明实施例的数据处理方法充分利用终端本地的代码运行环境来运行代码,不仅降低了服务器一端的运算量,节省终端本地和服务器之间的网络传输资源,而且使终端更快速且实时地响应用户编程执行需求,提高用户体验。
Description
技术领域
本发明涉及在线教育技术领域,尤其涉及一种数据处理方法、装置、电子设备和计算机存储介质。
背景技术
随着人工智能技术的不断发展,机器学习和人工智能编程教育也逐渐成为K12教育的一个重要组成部分;然而,实施在线编程教育时,服务器一端需要运行代码,而代码的运行需要大量的计算资源,在计算资源缺乏时,会降低代码运行的效率,从而对在线编程教育的实施带来不利影响。
发明内容
本发明实施例期望提供数据处理的技术方案,以实现在线编程教育的计算资源调度。
本发明实施例提供了一种数据处理方法,应用于终端中,所述方法包括:
获取用于在线编程的程序代码;
根据所述程序代码检测终端的代码运行环境;
响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。
可选地,所述根据所述程序代码检测终端的代码运行环境包括:
检测所述终端的代码运行环境中是否包含运行所述程序代码的本地代理程序;
所述响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果,包括:
响应于所述代码运行环境中包含所述本地代理程序的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
可选地,所述获取用于在线编程的程序代码,包括:
利用所述本地代理程序接收在线编程教育应用发送的所述程序代码。
可选地,所述本地代理程序与所述在线编程教育应用基于WebSocket连接以进行数据交互。
可选地,所述基于所述本地代理程序运行所述程序代码,得到运算结果包括:
基于所述本地代理程序对所述程序代码进行检测;
响应于检测到所述程序代码为预定程序代码的情况,检测所述终端的硬件资源;
响应于所述硬件资源满足预定条件的情况,基于所述硬件资源运行所述程序代码。
可选地,所述响应于所述硬件资源不满足预定条件的情况,所述方法还包括:将所述程序代码发送至服务器,并接收所述服务器返回的运算结果。
可选地,所述将所述程序代码发送至服务器,包括:
利用在线编程教育应用将所述程序代码发送至服务器。
可选地,所述在线编程教育应用与所述服务器基于WebSocket连接以进行数据交互。
可选地,所述方法还包括:所述响应于检测到所述程序代码为非预定程序代码的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
可选地,所述方法还包括:
在运行所述程序代码的过程中,控制所述终端的显示器显示所述程序代码的运行过程。
可选地,所述方法还包括:
将所述运算结果存储在所述终端;
和/或,将所述运算结果发送至服务器。
可选地,所述将所述运算结果发送至服务器,包括:
响应于所述终端的运行环境中包含运行所述程序代码的本地代理程序的情况,利用所述本地代理程序将所述运算结果发送至服务器。
可选地,所述本地代理程序与所述服务器基于超文本传输协议(HyperTextTransfer Protocol,HTTP)连接以进行数据交互。
本发明实施例还提供了一种数据处理装置,所述装置包括获取模块、检测模块和处理模块,其中,
获取模块,用于获取用于在线编程的程序代码;
检测模块,用于根据所述程序代码检测终端的代码运行环境;
处理模块,用于响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。
可选地,所述检测模块,用于检测所述终端的代码运行环境中是否包含运行所述程序代码的本地代理程序;
所述处理模块,用于响应于所述代码运行环境中包含所述本地代理程序的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
可选地,所述获取模块,用于利用所述本地代理程序接收在线编程教育应用发送的所述程序代码。
可选地,所述本地代理程序与所述在线编程教育应用基于WebSocket连接以进行数据交互。
可选地,所述处理模块,用于基于所述本地代理程序对所述程序代码进行检测;响应于检测到所述程序代码为预定程序代码的情况,检测所述终端的硬件资源;响应于所述硬件资源满足预定条件的情况,基于所述硬件资源运行所述程序代码。
可选地,所述处理模块,还用于响应于所述硬件资源不满足预定条件的情况,将所述程序代码发送至服务器,并接收所述服务器返回的运算结果。
可选地,所述处理模块,用于利用在线编程教育应用将所述程序代码发送至服务器。
可选地,所述在线编程教育应用与所述服务器基于WebSocket连接以进行数据交互。
可选地,所述处理模块,还用于响应于检测到所述程序代码为非预定程序代码的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
可选地,所述处理模块,还用于在运行所述程序代码的过程中,控制所述终端的显示器显示所述程序代码的运行过程。
可选地,所述处理模块,还用于将所述运算结果存储在所述终端;和/或,将所述运算结果发送至服务器。
可选地,所述处理模块,用于响应于所述终端的运行环境中包含运行所述程序代码的本地代理程序的情况,利用所述本地代理程序将所述运算结果发送至服务器。
可选地,所述本地代理程序所述服务器基于HTTP连接以进行数据交互。
本发明实施例还提供了一种电子设备,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行上述任意一种数据处理方法。
本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种数据处理方法。
本发明实施例提出的数据处理方法、装置、电子设备和计算机存储介质中,获取用于在线编程的程序代码;根据所述程序代码检测终端的代码运行环境;响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。如此,本发明实施例的数据处理方法充分利用终端本地的代码运行环境来运行代码,不仅降低了服务器一端的运算量,节省终端本地和服务器之间的网络传输资源,而且使终端更快速且实时地响应用户编程执行需求,提高用户体验。
附图说明
图1为本发明实施例的数据处理方法的流程图;
图2为本发明应用实施例的场景结构示意图;
图3为本发明实施例的数据处理装置的组成结构示意图;
图4为本发明实施例的电子设备的结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。
需要说明的是,在本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
例如,本发明实施例提供的数据处理方法包含了一系列的步骤,但是本发明实施例提供的数据处理方法不限于所记载的步骤,同样地,本发明实施例提供的数据处理装置包括了一系列模块,但是本发明实施例提供的装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。
本发明实施例可以应用于终端和服务器组成的计算机***中,并可以与众多其它通用或专用计算***环境或配置一起操作。这里,终端可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***,等等,服务器可以是服务器计算机***小型计算机***﹑大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
终端、服务器等电子设备可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
在本发明的一些实施例中,K12在线编程教育的平台很少侧重于机器学***台服务商要提供人工智能或机器学***台提交的代码完全依赖于服务器实现,因而,对服务器或服务器集群的计算能力具有较高的要求,提高了服务器或服务器集群的成本。另一方面,由于需要实时将用户提交的代码从终端本地发送至服务器一端,因而,需要占用大量网络带宽,在网络带宽有限的情况下,对用户编程执行需求的响应速度会变慢;同时在线教育平台的用户高峰期和闲置期流量差异巨大,在闲置期(如夜间)会浪费大量带宽。
针对上述技术问题,在本发明的一些实施例中,提出了一种数据处理方法,应用于终端中,本发明实施例可以在人工智能教育、在线编程教育、在线编程平台、人工智能平台等场景实施。
图1为本发明实施例的数据处理方法的流程图,如图1所示,该流程可以包括:
步骤101:获取用于在线编程的程序代码。
这里,程序代码表示使用开发工具所支持的语言写出来的源文件,开发工具可以表示用于为特定的软件包、软件框架、硬件平台、操作***等建立应用软件的特殊软件,本发明实施例中,并不对开发工具的种类进行限定;用于在线编程的程序代码包括但不限于人工智能的程序代码、机器学习的程序代码等。
对于本步骤的实现方式,在第一个示例中,可以接收用户进行在线编程时提交的程序代码,例如,用户可以通过基于浏览器的在线编程教育应用平台提交自己编写的程序代码,终端在检测到用户提交程序代码的指令时,读取用户进行在线编程时提交的程序代码。
对于本步骤的实现方式,在第二个示例中,可以在预先存储的程序代码中读取出用于在线编程的程序代码。
对于本步骤的实现方式,在可以接收外部设备发送的用于在线编程的程序代码;这里,外部设备可以是其它终端、服务器等电子设备。
步骤102:根据所述程序代码检测终端的代码运行环境。
这里,终端的代码运行环境可以包括:终端软件计算资源和/或硬件计算资源。在一些实施例中,终端软件计算资源可以表现为程序、应用等形式,硬件计算资源包括但不限于CPU资源、GPU资源等。
步骤103:响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。
在本实施例中,程序代码运行条件可以预先设置,例如,用户可以预先确定需要提交的代码的种类,然后,可以根据需要提交的代码的种类预先设置程序代码运行条件。在实际过程中,用户可以通过人机交互方式将程序代码运行条件输入至终端中。
对于本步骤的实现方式,可以首先判断终端的代码运行环境是否满足程序代码运行条件;当终端的代码运行环境满足程序代码运行条件时,可以基于终端的代码运行环境运行上述程序代码,得到运算结果;当终端的代码运行环境不满足程序代码运行条件时,可以将上述程序代码发送至服务器一端,然后,利用服务器运行上述程序代码,得到运算结果。
实际应用中,步骤101至步骤103可以基于终端的处理器实现,上述处理器可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal ProcessingDevice,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的终端设备,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。
可以看出,采用本发明实施例的技术方案,可以充分利用终端本地的代码运行环境来运行代码,因而,具有以下有益效果:
利用终端本地资源运行程序代码,不仅能够降低服务器一端的运算量,减少了对服务器的依赖,从而减少了服务器计算资源的投入,可以节约服务器的成本;还可以节省终端本地和服务器之间的网络传输资源,可以节约网络传输资源方面的投入;从而使终端更快速且实时地响应用户编程执行需求,提升了用户体验。
在一些实施例中,可以利用本地代理程序接收在线编程教育应用发送的程序代码,本地代理程序的作用是运行上述程序代码。
可选地,本地代理程序与在线编程教育应用基于WebSocket连接以进行数据交互。
本发明实施例中,本地代理程序为在终端上安装的软件,当本地代理程序被驱动运行时,可以提供代码运行服务。
对于本地代理程序的安装方式,示例性地,由于在线编程对应的服务器可以运行程序代码,如此,可以根据服务器运行程序代码的方式,生成本地代理程序,然后,可以将本地代理程序安装至终端本地。
可以看出,通过本地代理程序和在线编程教育应用通信交互,便于本地代理程序获取到用于在线编程的程序代码。
对于根据上述程序代码检测终端的代码运行环境的实现方式,示例性地,可以先检测终端的代码运行环境中是否包含运行程序代码的本地代理程序;在具体实现时,当本地代理程序未安装时,确定终端的代码运行环境中不包含运行程序代码的本地代理程序;当本地代理程序已安装但不能正常运行时,确定终端的代码运行环境中不包含运行程序代码的本地代理程序;本实施中,当终端的代码运行环境中不包含运行程序代码的本地代理程序,说明终端的代码运行环境不满足程序代码运行条件。
当本地代理程序已安装且能正常运行时,确定终端的代码运行环境中包含运行程序代码的本地代理程序。
进一步地,响应于上述代码运行环境中包含本地代理程序的情况,可以基于本地代理程序运行所述程序代码,得到运算结果。
可以看出,本实施例中,通过检测所述终端的代码运行环境中是否包含运行所述程序代码的本地代理程序,可以灵活地确定上述程序代码的运行方式,即,确定在终端本地运行程序代码,还是在服务器一端运行程序代码;也就是说,对于上述程序代码,可以灵活地调度终端本地和服务器的计算资源。
对于基于上述本地代理程序运行上述程序代码,得到运算结果的实现方式。示例性地,可以基于上述本地代理程序对所述程序代码进行检测;响应于检测到上述程序代码为预定程序代码的情况,检测所述终端的硬件资源;响应于终端的硬件资源满足预定条件的情况,基于上述硬件资源运行所述程序代码。可以看出,本实施例中,可以在程序代码为预定程序代码时,充分利用终端的硬件资源来运行代码,可以降低服务器一端的运算量,节省终端本地和服务器之间的网络传输资源。
作为一种实施方式,预定程序代码表示需要基于硬件加速资源运行的代码;当终端的硬件资源包括硬件加速资源时,说明上述硬件资源满足预定条件,当终端的硬件资源包括硬件加速资源时,说明上述硬件资源不满足预定条件。
本实施例中,不对硬件加速资源的种类进行限定,示例性地,硬件加速资源可以是GPU等计算加速硬件。
可以看出,基于硬件加速资源,运行程序代码,可以提升程序代码的运算速度和效率。
需要说明的是,响应于上述程序代码为非预定程序代码的情况,可以直接基于终端当前的代码运行环境运行上述程序代码,得到运算结果;例如,当上述程序代码不需要基于硬件加速资源运行时,可以直接基于终端当前的代码运行环境运行上述程序代码。
需要说明的是,响应于上述硬件资源不满足预定条件的情况,可以将上述程序代码发送至服务器,并接收服务器返回的运算结果。
对于将上述程序代码发送至服务器的实现方式,示例性地,可以利用在线编程教育应用将上述程序代码发送至服务器;在线编程教育应用可以与服务器基于WebSocket连接以进行数据交互。
可以看出,通过在线编程教育应用和服务器的通信交互,便于服务器获取到用于在线编程的程序代码。
本实施例中,上述运算结果包括但不限于程序代码运行的中间结果、程序代码运行的最终结果;这里,程序代码运行的中间结果或程序代码运行的最终结果可以是数据模型、数值、图表等,对此,本实施例并不进行限定。
进一步地,在运行上述程序代码时,还可以控制所述终端的显示器实时显示所述程序代码的运行过程,以便于用户及时获知程序代码运行状况,进而,有利于用户对程序代码进行修改。
实际实施时,在得到运算结果后,还可以将运算结果暂时存储在终端的存储器中;进一步地,还可以将运算结果发送至服务器,例如,可以通过同步存储或异步存储的方式,将运算结果发送至服务器并进行存储。
可以理解的是,如果在用户网络带宽占用率较低时,将运算结果发送至服务器,可以充分利用网络带宽,从而优化了网络带宽利用率;例如,在线教育平台的用户高峰期和闲置期流量差异巨大,如果在在线教育平台的闲置期,将运算结果发送至服务器,可以充分利用在线教育平台的闲置期的带宽,从而优化网络带宽利用率。
对于将上述运算结果发送至服务器的实现方式,示例性地,可以在终端的运行环境中包含运行上述本地代理程序时,利用本地代理程序将运算结果发送至服务器;本地代理程序与服务器可以基于HTTP连接以进行数据交互。
可以看出,通过本地代理程序和服务器的通信交互,便于服务器获取到上述运算结果。
下面通过一个具体的应用实施例对本发明进行进一步说明。
图2为本发明应用实施例的场景结构示意图,如图2所示,终端本地可以安装本地代理程序,终端的计算资源可以包括本地CPU资源和本地GPU资源等;终端本地的存储资源可以时缓冲(Cache)存储器资源或其他存储器资源;在终端本地可以运行基于浏览器的在线编程教育应用,基于浏览器的在线编程教育应用可以与远程服务器集群实现WebSocket连接;如果终端本地安装有本地代理程序,则本地代理程序可以用于调用本地计算资源,并对外暴露为Web服务;例如,如果终端本地安装有本地代理程序,则本地代理程序与基于浏览器的在线编程教育应用可以实现WebSocket连接。也就是说,基于浏览器的在线编程教育应用可以同时访问远程服务器集群和本地代理程序,进而可以充分利用终端本地的计算资源来加速程序代码运行。
参照图2,远程服务器集群可以调用的资源包括但不限于服务器GPU资源、服务器CPU资源、存储资源等;本地代理程序可以通过超文本传输协议(Hyper Text TransferProtocol,HTTP)连接访问服务端管控服务,在一个示例中,服务端管控服务可以将本地代理程序发送的数据存储在服务器中。
基于图2所示的应用场景结构示意图,本发明应用实施例提出了一种远程服务器集群和终端本地的计算资源协同使用的方案,可以解决在线编程教育的计算能力缺乏的问题,可以利用终端本地的计算资源,实现程序程序代码运行过程,例如,利用终端的本地计算资源可以显著加速机器学***台响应能力的同时,可以极大的减少对远程服务器集群计算能力的需求,从而节约成本。
基于图2所示的应用场景结构示意图,本发明应用实施例的数据处理方法可以包括:
在线编程教育应用在接收到用户提交的代码时,检测终端的代码运行环境中是否包含运行所述程序代码的本地代理程序;如果终端的代码运行环境中不包含运行所述程序代码的本地代理程序,则用户提交的代码会被提交至远程服务器集群;如果终端的代码运行环境中包含运行所述程序代码的本地代理程序,则用户提交的代码发送至本地代理程序。
本地代理程序在接收到用户提交的代码后,确定用户提交的代码为预定程序代码,且终端的硬件资源满足预定条件时,基于上述硬件资源运行用户提交的代码。
运行代码得到的运算结果可以被暂存在终端本地上,程序代码运行过程(例如可以时数据模型的训练过程)可以通过WebSocket连接实时地推送到前端应用(即在线编程教育应用),并展现给用户。
进一步地,可以利用同步存储或异步存储方式,将运行代码得到的运算结发送至远程服务器集群并进行存储。
可以看出,采用本发明应用实施例的技术方案,可以在对用户透明的前提下,充分调用终端本地的计算资源,并且用户侧应用(在线编程教育应用)可以更快速、实时地响应用户编程执行需求,同时节省服务器和网络的资源投入。
在前述实施例提出的数据处理方法的基础上,本发明实施例提出了一种数据处理装置。
图3为本发明实施例的数据处理装置的组成结构示意图,如图3所示,所述装置位于电子设备中,所述装置包括:获取模块301、检测模块302和处理模块303,其中,
获取模块301,用于获取用于在线编程的程序代码。
在第一个示例中,获取模块301,可以接收用户进行在线编程时提交的程序代码,例如,用户可以通过基于浏览器的在线编程教育应用平台提交自己编写的程序代码,获取模块301在检测到用户提交程序代码的指令时,可以读取用户进行在线编程时提交的程序代码。
在第二个示例中,获取模块301,可以在预先存储的程序代码中读取出用于在线编程的程序代码。
对于本步骤的实现方式,在第三个示例中,获取模块301可以接收外部设备发送的用于在线编程的程序代码;这里,外部设备可以是其它终端、服务器等电子设备。
检测模块302,用于检测根据所述程序代码检测终端的代码运行环境。
这里,终端的代码运行环境可以包括:终端软件计算资源和/或硬件计算资源。在一些实施例中,终端软件计算资源可以表现为程序、应用等形式,硬件计算资源包括但不限于CPU资源、GPU资源等。
处理模块303,用于响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。
在实际应用中,程序代码运行条件可以预先设置,例如,用户可以预先确定需要提交的代码的种类,然后,可以根据需要提交的代码的种类预先设置程序代码运行条件;实际实施时,用户可以通过人机交互方式将程序代码运行条件输入至终端中。
在一些实施例中,处理模块303,可以首先判断终端的代码运行环境是否满足程序代码运行条件;当终端的代码运行环境满足程序代码运行条件时,可以基于终端的代码运行环境运行上述程序代码,得到运算结果;当终端的代码运行环境不满足程序代码运行条件时,可以将上述程序代码发送至服务器一端,然后,利用服务器运行上述程序代码,得到运算结果。
可以看出,采用本发明实施例的技术方案,可以充分利用终端本地的代码运行环境运行代码,因而,具有以下有益效果:
利用终端本地资源运行程序代码,不仅能够降低服务器一端的运算量,减少了对服务器的依赖,从而减少了服务器计算资源的投入,可以节约服务器的成本;还可以节省终端本地和服务器之间的网络传输资源,可以节约网络传输资源方面的投入;从而使终端更快速且实时地响应用户编程执行需求,提升了用户体验。
在一实施方式中,所述检测模块302,用于检测所述终端的代码运行环境中是否包含运行所述程序代码的本地代理程序;
所述处理模块303,用于响应于所述代码运行环境中包含所述本地代理程序的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
在一实施方式中,所述获取模块301,用于利用所述本地代理程序接收在线编程教育应用发送的所述程序代码。
在一实施方式中,所述本地代理程序与所述在线编程教育应用基于WebSocket连接以进行数据交互。
可以看出,通过本地代理程序和在线编程教育应用通信交互,便于本地代理程序获取到用于在线编程的程序代码。
在一实施方式中,所述处理模块303,用于基于所述本地代理程序对所述程序代码进行检测;响应于检测到所述程序代码为预定程序代码的情况,检测所述终端的硬件资源;响应于所述硬件资源满足预定条件的情况,基于所述硬件资源运行所述程序代码。
可以看出,本实施例中,可以在程序代码为预定程序代码时,充分利用终端的硬件资源来运行代码,可以降低服务器一端的运算量,节省终端本地和服务器之间的网络传输资源。
在一实施方式中,所述处理模块303,还用于响应于所述硬件资源不满足预定条件的情况,将所述程序代码发送至服务器,并接收所述服务器返回的运算结果。
在一实施方式中,所述处理模块303,还用于响应于检测到所述程序代码为非预定程序代码的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
可以看出,本实施例中,可以灵活地确定上述程序代码的运行方式,即,确定在终端本地运行程序代码,还是在服务器一端运行程序代码;也就是说,对于上述程序代码,可以灵活地调度终端本地和服务器的计算资源。
在一实施方式中,所述处理模块303,用于利用在线编程教育应用将所述程序代码发送至服务器。
在一实施方式中,所述在线编程教育应用与所述服务器基于WebSocket连接以进行数据交互。
可以看出,通过在线编程教育应用和服务器的通信交互,便于服务器获取到用于在线编程的程序代码。
在一实施方式中,所述处理模块303,还用于在运行所述程序代码的过程中,控制所述终端的显示器显示所述程序代码的运行过程,如此,便于用户及时获知程序代码运行状况,进而,有利于用户对程序代码进行修改。
在一实施方式中,所述处理模块303,还用于将所述运算结果存储在所述终端;和/或,将所述运算结果发送至服务器。
可以理解的是,如果在用户网络带宽占用率较低时,将运算结果发送至服务器,可以充分利用网络带宽,从而优化了网络带宽利用率;例如,在线教育平台的用户高峰期和闲置期流量差异巨大,如果在在线教育平台的闲置期,将运算结果发送至服务器,可以充分利用在线教育平台的闲置期的带宽,从而优化网络带宽利用率。
在一实施方式中,所述处理模块303,用于响应于所述终端的运行环境中包含运行所述程序代码的本地代理程序的情况,利用所述本地代理程序将所述运算结果发送至服务器。
在一实施方式中,所述本地代理程序所述服务器基于HTTP连接以进行数据交互。
可以看出,通过本地代理程序和服务器的通信交互,便于服务器获取到上述运算结果。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
具体来讲,本实施例中的一种数据处理方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种数据处理方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种数据处理方法。
基于前述实施例相同的技术构思,参见图4,其示出了本发明实施例提供的一种电子设备40,可以包括:存储器41和处理器42;其中,
所述存储器41,用于存储计算机程序和数据;
所述处理器42,用于执行所述存储器中存储的计算机程序,以实现前述实施例的任意一种数据处理方法。
在实际应用中,上述存储器41可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM,快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器42提供指令和数据。
上述处理器42可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
获取用于在线编程的程序代码;
根据所述程序代码检测终端的代码运行环境;
响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述程序代码检测终端的代码运行环境包括:
检测所述终端的代码运行环境中是否包含运行所述程序代码的本地代理程序;
所述响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果,包括:
响应于所述代码运行环境中包含所述本地代理程序的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
3.根据权利要求2所述的方法,其特征在于,所述获取用于在线编程的程序代码,包括:
利用所述本地代理程序接收在线编程教育应用发送的所述程序代码。
4.根据权利要求2所述的方法,其特征在于,所述基于所述本地代理程序运行所述程序代码,得到运算结果包括:
基于所述本地代理程序对所述程序代码进行检测;
响应于检测到所述程序代码为预定程序代码的情况,检测所述终端的硬件资源;
响应于所述硬件资源满足预定条件的情况,基于所述硬件资源运行所述程序代码。
5.根据权利要求4所述的方法,其特征在于,所述响应于所述硬件资源不满足预定条件的情况,所述方法还包括:
将所述程序代码发送至服务器,并接收所述服务器返回的运算结果。
6.根据权利要求5所述的方法,其特征在于,所述将所述程序代码发送至服务器,包括:
利用在线编程教育应用将所述程序代码发送至服务器。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:所述响应于检测到所述程序代码为非预定程序代码的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
8.一种数据处理装置,其特征在于,所述装置包括获取模块、检测模块和处理模块,其中,
获取模块,用于获取用于在线编程的程序代码;
检测模块,用于根据所述程序代码检测终端的代码运行环境;
处理模块,用于响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。
9.一种电子设备,其特征在于,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至7任一项所述的方法。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290146.7A CN110032364B (zh) | 2019-04-11 | 2019-04-11 | 数据处理方法、装置、电子设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290146.7A CN110032364B (zh) | 2019-04-11 | 2019-04-11 | 数据处理方法、装置、电子设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110032364A true CN110032364A (zh) | 2019-07-19 |
CN110032364B CN110032364B (zh) | 2023-08-15 |
Family
ID=67238081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910290146.7A Active CN110032364B (zh) | 2019-04-11 | 2019-04-11 | 数据处理方法、装置、电子设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110032364B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111427551A (zh) * | 2020-02-14 | 2020-07-17 | 深圳市商汤科技有限公司 | 编程平台的用户代码运行方法及平台、设备、存储介质 |
CN113094613A (zh) * | 2021-04-28 | 2021-07-09 | 上海商汤智能科技有限公司 | 在线编程***、在线编程方法及相关产品 |
WO2021218379A1 (zh) * | 2020-04-28 | 2021-11-04 | 上海商汤临港智能科技有限公司 | 一种多媒体互动方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1954295A (zh) * | 2004-05-31 | 2007-04-25 | 国际商业机器公司 | 用于控制分布式处理环境中作业执行的计算机***、方法及程序 |
CN103019837A (zh) * | 2011-09-27 | 2013-04-03 | ***通信集团公司 | 资源调度方法、装置及终端设备 |
CN103092581A (zh) * | 2011-10-28 | 2013-05-08 | 阿里巴巴集团控股有限公司 | 一种Web前端本地开发环境的搭建方法和装置 |
CN106550025A (zh) * | 2016-10-25 | 2017-03-29 | 深圳大学 | 一种移动云计算***的数据处理方法及装置 |
CN107087019A (zh) * | 2017-03-14 | 2017-08-22 | 西安电子科技大学 | 一种端云协同计算架构及任务调度装置及方法 |
US20180013637A1 (en) * | 2016-07-06 | 2018-01-11 | CloudBolt Software Inc. | Cloud computing resource orchestration |
US20180095741A1 (en) * | 2016-10-03 | 2018-04-05 | Avaya Inc. | Web application system and method to dynamically select between local installed and cloud-based resources |
-
2019
- 2019-04-11 CN CN201910290146.7A patent/CN110032364B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1954295A (zh) * | 2004-05-31 | 2007-04-25 | 国际商业机器公司 | 用于控制分布式处理环境中作业执行的计算机***、方法及程序 |
CN103019837A (zh) * | 2011-09-27 | 2013-04-03 | ***通信集团公司 | 资源调度方法、装置及终端设备 |
CN103092581A (zh) * | 2011-10-28 | 2013-05-08 | 阿里巴巴集团控股有限公司 | 一种Web前端本地开发环境的搭建方法和装置 |
US20180013637A1 (en) * | 2016-07-06 | 2018-01-11 | CloudBolt Software Inc. | Cloud computing resource orchestration |
US20180095741A1 (en) * | 2016-10-03 | 2018-04-05 | Avaya Inc. | Web application system and method to dynamically select between local installed and cloud-based resources |
CN106550025A (zh) * | 2016-10-25 | 2017-03-29 | 深圳大学 | 一种移动云计算***的数据处理方法及装置 |
CN107087019A (zh) * | 2017-03-14 | 2017-08-22 | 西安电子科技大学 | 一种端云协同计算架构及任务调度装置及方法 |
Non-Patent Citations (1)
Title |
---|
陈春燕等: "基于云计算的在线编程***设计与实现", 《数码设计》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111427551A (zh) * | 2020-02-14 | 2020-07-17 | 深圳市商汤科技有限公司 | 编程平台的用户代码运行方法及平台、设备、存储介质 |
WO2021218379A1 (zh) * | 2020-04-28 | 2021-11-04 | 上海商汤临港智能科技有限公司 | 一种多媒体互动方法、装置、设备及存储介质 |
CN113094613A (zh) * | 2021-04-28 | 2021-07-09 | 上海商汤智能科技有限公司 | 在线编程***、在线编程方法及相关产品 |
CN113094613B (zh) * | 2021-04-28 | 2024-01-02 | 上海商汤智能科技有限公司 | 在线编程***、在线编程方法及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
CN110032364B (zh) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190164080A1 (en) | Auto-scaling hosted machine learning models for production inference | |
CN110032364A (zh) | 数据处理方法、装置、电子设备和计算机存储介质 | |
CN107179697A (zh) | 一种智能家居设备控制方法、装置及*** | |
KR101610830B1 (ko) | 어플리케이션 실행 장치 및 방법 | |
CN108833510B (zh) | 消息处理方法和装置 | |
CN108234149B (zh) | 一种网络请求的管理方法和装置 | |
CN112579304A (zh) | 基于分布式平台的资源调度方法、装置、设备及介质 | |
CN110187986B (zh) | 一种命令管理方法、***、装置及计算机可读存储介质 | |
CN112988346B (zh) | 任务处理方法、装置、设备及存储介质 | |
CN113806097B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN105335211A (zh) | 一种基于Xen虚拟化集群的FPGA加速器调度***及方法 | |
US11339989B2 (en) | Communication method and device for air conditioner, outdoor unit, indoor unit, and air conditioner | |
CN111488257A (zh) | 一种云服务链路跟踪监控方法、装置、设备及存储介质 | |
CN112199621B (zh) | 快速生成海报的方法、装置及计算机设备 | |
CN105407150A (zh) | 应用程序远程控制方法 | |
CN115981871B (zh) | 一种gpu资源调度方法、装置、设备及存储介质 | |
CN112492055A (zh) | 一种传输协议重定向的方法、装置、设备及可读存储介质 | |
CN112637370B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN104516883A (zh) | 一种网页共享方法、装置及*** | |
CN113326172A (zh) | 一种运维知识的处理方法、装置及设备 | |
CN112612578A (zh) | 一种虚拟机监控方法和装置 | |
CN111314303B (zh) | 直播***、直播***的数据处理方法及装置 | |
CN102253940B (zh) | 树形控件处理数据的方法和装置 | |
CN107454124B (zh) | 设备自动化方法及装置 | |
CN111400060A (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 |