CN110032364A - 数据处理方法、装置、电子设备和计算机存储介质 - Google Patents

数据处理方法、装置、电子设备和计算机存储介质 Download PDF

Info

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
terminal
running environment
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
Application number
CN201910290146.7A
Other languages
English (en)
Other versions
CN110032364B (zh
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.)
Shanghai Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Intelligent 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 Shanghai Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Priority to CN201910290146.7A priority Critical patent/CN110032364B/zh
Publication of CN110032364A publication Critical patent/CN110032364A/zh
Application granted granted Critical
Publication of CN110032364B publication Critical patent/CN110032364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • G06Q50/205Education 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)
  • Electrically Operated Instructional Devices (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种数据处理方法、装置、电子设备和计算机存储介质,该方法包括:获取用于在线编程的程序代码;根据所述程序代码检测终端的代码运行环境;响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。本发明实施例的数据处理方法充分利用终端本地的代码运行环境来运行代码,不仅降低了服务器一端的运算量,节省终端本地和服务器之间的网络传输资源,而且使终端更快速且实时地响应用户编程执行需求,提高用户体验。

Description

数据处理方法、装置、电子设备和计算机存储介质
技术领域
本发明涉及在线教育技术领域,尤其涉及一种数据处理方法、装置、电子设备和计算机存储介质。
背景技术
随着人工智能技术的不断发展,机器学习和人工智能编程教育也逐渐成为K12教育的一个重要组成部分;然而,实施在线编程教育时,服务器一端需要运行代码,而代码的运行需要大量的计算资源,在计算资源缺乏时,会降低代码运行的效率,从而对在线编程教育的实施带来不利影响。
发明内容
本发明实施例期望提供数据处理的技术方案,以实现在线编程教育的计算资源调度。
本发明实施例提供了一种数据处理方法,应用于终端中,所述方法包括:
获取用于在线编程的程序代码;
根据所述程序代码检测终端的代码运行环境;
响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。
可选地,所述根据所述程序代码检测终端的代码运行环境包括:
检测所述终端的代码运行环境中是否包含运行所述程序代码的本地代理程序;
所述响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果,包括:
响应于所述代码运行环境中包含所述本地代理程序的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
可选地,所述获取用于在线编程的程序代码,包括:
利用所述本地代理程序接收在线编程教育应用发送的所述程序代码。
可选地,所述本地代理程序与所述在线编程教育应用基于WebSocket连接以进行数据交互。
可选地,所述基于所述本地代理程序运行所述程序代码,得到运算结果包括:
基于所述本地代理程序对所述程序代码进行检测;
响应于检测到所述程序代码为预定程序代码的情况,检测所述终端的硬件资源;
响应于所述硬件资源满足预定条件的情况,基于所述硬件资源运行所述程序代码。
可选地,所述响应于所述硬件资源不满足预定条件的情况,所述方法还包括:将所述程序代码发送至服务器,并接收所述服务器返回的运算结果。
可选地,所述将所述程序代码发送至服务器,包括:
利用在线编程教育应用将所述程序代码发送至服务器。
可选地,所述在线编程教育应用与所述服务器基于WebSocket连接以进行数据交互。
可选地,所述方法还包括:所述响应于检测到所述程序代码为非预定程序代码的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
可选地,所述方法还包括:
在运行所述程序代码的过程中,控制所述终端的显示器显示所述程序代码的运行过程。
可选地,所述方法还包括:
将所述运算结果存储在所述终端;
和/或,将所述运算结果发送至服务器。
可选地,所述将所述运算结果发送至服务器,包括:
响应于所述终端的运行环境中包含运行所述程序代码的本地代理程序的情况,利用所述本地代理程序将所述运算结果发送至服务器。
可选地,所述本地代理程序与所述服务器基于超文本传输协议(HyperTextTransfer Protocol,HTTP)连接以进行数据交互。
本发明实施例还提供了一种数据处理装置,所述装置包括获取模块、检测模块和处理模块,其中,
获取模块,用于获取用于在线编程的程序代码;
检测模块,用于根据所述程序代码检测终端的代码运行环境;
处理模块,用于响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。
可选地,所述检测模块,用于检测所述终端的代码运行环境中是否包含运行所述程序代码的本地代理程序;
所述处理模块,用于响应于所述代码运行环境中包含所述本地代理程序的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
可选地,所述获取模块,用于利用所述本地代理程序接收在线编程教育应用发送的所述程序代码。
可选地,所述本地代理程序与所述在线编程教育应用基于WebSocket连接以进行数据交互。
可选地,所述处理模块,用于基于所述本地代理程序对所述程序代码进行检测;响应于检测到所述程序代码为预定程序代码的情况,检测所述终端的硬件资源;响应于所述硬件资源满足预定条件的情况,基于所述硬件资源运行所述程序代码。
可选地,所述处理模块,还用于响应于所述硬件资源不满足预定条件的情况,将所述程序代码发送至服务器,并接收所述服务器返回的运算结果。
可选地,所述处理模块,用于利用在线编程教育应用将所述程序代码发送至服务器。
可选地,所述在线编程教育应用与所述服务器基于WebSocket连接以进行数据交互。
可选地,所述处理模块,还用于响应于检测到所述程序代码为非预定程序代码的情况,基于所述本地代理程序运行所述程序代码,得到运算结果。
可选地,所述处理模块,还用于在运行所述程序代码的过程中,控制所述终端的显示器显示所述程序代码的运行过程。
可选地,所述处理模块,还用于将所述运算结果存储在所述终端;和/或,将所述运算结果发送至服务器。
可选地,所述处理模块,用于响应于所述终端的运行环境中包含运行所述程序代码的本地代理程序的情况,利用所述本地代理程序将所述运算结果发送至服务器。
可选地,所述本地代理程序所述服务器基于HTTP连接以进行数据交互。
本发明实施例还提供了一种电子设备,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行上述任意一种数据处理方法。
本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种数据处理方法。
本发明实施例提出的数据处理方法、装置、电子设备和计算机存储介质中,获取用于在线编程的程序代码;根据所述程序代码检测终端的代码运行环境;响应于所述代码运行环境满足程序代码运行条件的情况,基于所述代码运行环境运行所述程序代码,得到运算结果。如此,本发明实施例的数据处理方法充分利用终端本地的代码运行环境来运行代码,不仅降低了服务器一端的运算量,节省终端本地和服务器之间的网络传输资源,而且使终端更快速且实时地响应用户编程执行需求,提高用户体验。
附图说明
图1为本发明实施例的数据处理方法的流程图;
图2为本发明应用实施例的场景结构示意图;
图3为本发明实施例的数据处理装置的组成结构示意图;
图4为本发明实施例的电子设备的结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。
需要说明的是,在本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
例如,本发明实施例提供的数据处理方法包含了一系列的步骤,但是本发明实施例提供的数据处理方法不限于所记载的步骤,同样地,本发明实施例提供的数据处理装置包括了一系列模块,但是本发明实施例提供的装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。
本发明实施例可以应用于终端和服务器组成的计算机系统中,并可以与众多其它通用或专用计算系统环境或配置一起操作。这里,终端可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统,等等,服务器可以是服务器计算机系统小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
在本发明的一些实施例中,K12在线编程教育的平台很少侧重于机器学习和人工智能编程,其中一个重要原因是计算资源缺乏。具体地说,机器学习需要大量的计算资源,例如需要使用图形处理器(Graphics Processing Unit,GPU);如果在线编程教育平台服务商要提供人工智能或机器学习方面的教育,则需要在服务器一端储备和提供大量计算资源,这就会造成成本的激增,从而难以实现在线编程教育的大面积推广和普及。一方面,用户基于在线编程教育平台提交的代码完全依赖于服务器实现,因而,对服务器或服务器集群的计算能力具有较高的要求,提高了服务器或服务器集群的成本。另一方面,由于需要实时将用户提交的代码从终端本地发送至服务器一端,因而,需要占用大量网络带宽,在网络带宽有限的情况下,对用户编程执行需求的响应速度会变慢;同时在线教育平台的用户高峰期和闲置期流量差异巨大,在闲置期(如夜间)会浪费大量带宽。
针对上述技术问题,在本发明的一些实施例中,提出了一种数据处理方法,应用于终端中,本发明实施例可以在人工智能教育、在线编程教育、在线编程平台、人工智能平台等场景实施。
图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任一项所述的方法。
CN201910290146.7A 2019-04-11 2019-04-11 数据处理方法、装置、电子设备和计算机存储介质 Active CN110032364B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
陈春燕等: "基于云计算的在线编程系统设计与实现", 《数码设计》 *

Cited By (4)

* Cited by examiner, † Cited by third party
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
US11327814B2 (en) Semaphores for serverless computing
US9244735B2 (en) Managing resource allocation or configuration parameters of a model building component to build analytic models to increase the utility of data analysis applications
CN110032364A (zh) 数据处理方法、装置、电子设备和计算机存储介质
CN107678852B (zh) 基于流数据实时计算的方法、系统、设备及存储介质
CN109388667A (zh) 组件化大数据处理方法、系统及计算机可读存储介质
CN105095414A (zh) 用于预测网络搜索量的方法和装置
CN108595698A (zh) 图片加载方法、终端设备及介质
EP4163801A1 (en) Auxiliary implementation method and apparatus for online prediction using machine learning model
CN112181678A (zh) 业务数据的处理方法、装置和系统、存储介质、电子装置
CN107453916A (zh) 一种拓扑实现方法及一种云消息服务监控平台
CN104299170B (zh) 间歇性能源海量数据处理方法
CN110262810A (zh) 一种安装应用的方法与设备
CN113919490A (zh) 推理引擎的适配方法、装置及电子设备
CN113326172B (zh) 一种运维知识的处理方法、装置及设备
CN104516883A (zh) 一种网页共享方法、装置及系统
CN114245173A (zh) 一种图像压缩方法、装置、终端设备和存储介质
JP7082195B2 (ja) 擬似システムとしてのクラウド・コンピューティング・データの表現および解析
CN103067458A (zh) 控制方法及终端设备、服务器
US11755957B2 (en) Multitemporal data analysis
CN114237915B (zh) 分布式环境下基于机器学习的数据修复方法、装置及设备
US20230251608A1 (en) Optimal control of dynamic systems via linearizable deep learning
US11620132B2 (en) Reusing an operand received from a first-in-first-out (FIFO) buffer according to an operand specifier value specified in a predefined field of an instruction
US20200394532A1 (en) Detaching Social Media Content Creation from Publication
CN112799902A (zh) 日志输出重定向方法、装置及相关设备
CN114371909A (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