在线程序包运行方法、装置、电子设备及存储介质与流程

专利查询5天前  12



1.本技术涉及计算机技术领域,尤其涉及一种在线程序包运行方法、装置、电子设备及存储介质。


背景技术:

2.jar包,即程序包,是一种将java程序打包而成的文件包。jar包的在线运行是指:将jar包上传到数据平台,在数据平台上在线运行该jar包。
3.目前,通常使用命令方式在线运行jar包,具体包括:在数据平台上安装jar包运行环境,将用户上传的jar包存放在指定位置并调用数据平台中预先写好的运行命令或者脚本运行jar包。
4.然而,在利用命令方式运行jar包时,需要调用数据平台的常驻服务才能够与数据平台的资源进行对接,这就导致用户需要了解常驻服务的接口规则才能够实现上述对常驻服务的调用,增加了用户使用成本,并且,数据平台需要对常驻服务进行维护,从而增加了数据平台的维护成本。


技术实现要素:

5.本技术实施例的目的在于提供一种在线程序包运行方法、装置、电子设备及存储介质,以解决现有技术中的利用命令方式运行jar包时需要调用数据平台的常驻服务才能够与数据平台的资源进行对接,导致数据平台需要对常驻服务进行维护,从而增加数据平台维护成本的问题。具体技术方案如下:
6.第一方面,提供了一种在线程序包运行方法,所述方法包括:
7.接收外部上传的原始程序包;
8.利用预置的软件开发工具包sdk对所述原始程序包进行封装,得到集成有所述sdk和所述原始程序包的目标程序包,所述sdk中定义有用于调用平台中资源的调用接口;
9.当接收到程序运行指令时,运行所述目标程序包;其中,所述程序运行指令携带资源信息,在运行所述目标程序包的过程中,利用所述sdk中的所述调用接口调用所述平台中与所述资源信息对应的资源。
10.在一个可能的实施方式中,所述运行所述目标程序包,包括:
11.利用所述sdk,以反射机制运行所述目标程序包。
12.在一个可能的实施方式中,所述接收外部上传的原始程序包,包括:
13.输出可视化界面,所述可视化界面上至少包括用于上传程序包的控件;
14.通过所述可视化界面接收外部上传的原始程序包。
15.在一个可能的实施方式中,所述方法还包括:
16.当检测到对所述可视化界面中第一对象的触发操作时,触发中断指令,所述第一对象为所述可视化界面中,用于指示中断运行程序包的按钮;
17.基于所述中断指令,中断运行所述目标程序包。
18.在一个可能的实施方式中,所述方法还包括:
19.当检测到对所述可视化界面中第二对象的触发操作时,触发所述程序运行指令,所述第二对象为所述可视化界面中,用于指示运行程序包的按钮。
20.在一个可能的实施方式中,所述输出可视化界面,包括:
21.向所述平台发送网页获取请求,以使所述平台响应所述网页获取请求返回数据平台页面,所述数据平台页面中集成有在线运行组件;
22.当在所述数据平台页面上检测到对所述在线运行组件的触发操作时,启动所述在线运行组件,并输出所述在线运行组件对应的可视化界面。
23.在一个可能的实施方式中,所述方法还包括:
24.在所述目标程序包运行中断或结束后,获取运行所述目标程序包过程中产生的执行日志;
25.通过所述可视化界面输出所述执行日志。
26.第二方面,提供了一种在线程序包运行装置,所述装置包括:
27.接收模块,用于接收外部上传的原始程序包;
28.封装模块,用于利用预置的软件开发工具包sdk对所述原始程序包进行封装,得到集成有所述sdk和所述原始程序包的目标程序包,所述sdk中定义有用于调用平台中资源的调用接口;
29.运行模块,用于当接收到程序运行指令时,运行所述目标程序包;其中,所述程序运行指令携带资源信息,在运行所述目标程序包的过程中,利用所述sdk中的所述调用接口调用所述平台中与所述资源信息对应的资源。
30.在一个可能的实施方式中,所述运行模块,具体用于:
31.利用所述sdk,以反射机制运行所述目标程序包。
32.在一个可能的实施方式中,所述接收外部上传的原始程序包,包括:
33.输出可视化界面,所述可视化界面上至少包括用于上传程序包的控件;
34.通过所述可视化界面接收外部上传的原始程序包。
35.在一个可能的实施方式中,所述装置还包括第一触发模块,所述第一触发模块,用于:
36.当检测到对所述可视化界面中第一对象的触发操作时,触发中断指令,所述第一对象为所述可视化界面中,用于指示中断运行程序包的按钮;
37.基于所述中断指令,中断运行所述目标程序包。
38.在一个可能的实施方式中,所述装置还包括第二触发模块,所述第二触发模块,用于:
39.当检测到对所述可视化界面中第二对象的触发操作时,触发所述程序运行指令,所述第二对象为所述可视化界面中,用于指示运行程序包的按钮。
40.在一个可能的实施方式中,所述所述运行模块,还用于:
41.向所述平台发送网页获取请求,以使所述平台响应所述网页获取请求返回数据平台页面,所述数据平台页面中集成有在线运行组件;
42.当在所述数据平台页面上检测到对所述在线运行组件的触发操作时,启动所述在线运行组件,并输出所述在线运行组件对应的可视化界面。
43.在一个可能的实施方式中,所述装置还包括输出模块,所述输出模块,用于:
44.在所述目标程序包运行中断或结束后,获取运行所述目标程序包过程中产生的执行日志;
45.通过所述可视化界面输出所述执行日志。
46.第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
47.存储器,用于存放计算机程序;
48.处理器,用于执行存储器上所存放的程序时,实现第一方面任一项所述的在线程序包运行方法步骤。
49.第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的在线程序包运行方法步骤。
50.第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的在线程序包运行方法。
51.本技术实施例提供的技术方案,通过接收外部上传的原始程序包,利用预置的sdk对原始程序包进行封装,得到集成有sdk和原始程序包的目标程序包,当接收到程序运行指令时,运行目标程序包,由于sdk中定义有用于调用平台中资源的调用接口,因此,在运行目标程序包的过程中,数据平台可直接利用sdk调用平台中与程序运行指令携带资源信息对应的资源。由此可见,相较于现有技术而言,本技术技术方案中,在线运行程序包时,可以利用其中已封装的sdk直接调用平台的资源,而无需新建常驻服务供用户调用,如此,无需数据平台维护常驻服务,从而减少了数据平台的维护成本。
52.当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
53.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
54.图1为本技术实施例提供的一种平台系统的结构示意图;
55.图2为本技术实施例提供的一种可视化界面的结构示意图;
56.图3为本技术实施例提供的一种在线程序包运行方法的流程图;
57.图4为本技术实施例提供的一种在线程序包运行装置的结构示意图;
58.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
59.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
60.为便于理解,以下首先对本技术实施例涉及的数据平台的系统架构进行说明:
61.参见图1,为本技术实施例涉及的数据平台的架构示意图。如图1所示,数据平台包括前端组件100、封装组件200、运行组件300及平台资源库400。
62.其中,前端组件100,可向用户提供可视化界面101。如图2所示,为可视化界面101的一种示例。
63.基于图2所示例的可视化界面101,其中至少包括用于上传程序包的控件。在实践中,用户则可通过该可视化界面101向数据平台上传程序包(为描述方便,以下称为原始程序包)。
64.可视化界面101上还可以包括但不限于用于输入动态参数、切换数据源以及设置运行资源的控件。在实践中,用户则可通过该可视化界面101输入动态参数、切换数据源以及设置运行资源。
65.封装组件200,用于利用预置的sdk(software development kit,软件开发工具包)对原始程序包进行封装,得到集成有该sdk和原始程序包的目标程序包。这里需要说明的是,预置的sdk中定义有用于调用数据平台中资源的调用接口;
66.运行后台300,用于当接收到程序运行指令时,运行目标程序包;其中,程序运行指令携带资源信息,那么,在运行目标程序包的过程中,可利用sdk调用数据平台中与资源信息对应的资源。
67.至此,完成图1所示数据平台的描述。
68.下面结合附图以具体实施例对本技术提供的在线程序包运行方法做进一步的解释说明,实施例并不构成对本技术实施例的限定。
69.参见图3,为本技术实施例提供的一种在线程序包运行方法的实施例流程图。作为一个实施例,该流程可应用于图1所示例的平台系统,如图3所示,该流程可包括以下步骤:
70.s101,接收外部上传的原始程序包。
71.上述原始程序包指用户按照常规方式开发而得到的程序包。外部是相对于图1所示例的平台系统而言的,一般指用户或者由用户控制的电子设备。
72.基于图1所示例的数据平台,在本技术实施例的一种实施方式中,数据平台可以通过以下方式接收外部上传的原始程序包:输出图2所示例的可视化界面,通过该可视化界面接收外部上传的原始程序包。
73.具体地,可通过以下步骤实现输出可视化界面:
74.步骤一,向所述平台发送网页获取请求,以使所述平台响应所述网页获取请求返回数据平台页面,所述数据平台页面中集成有在线运行组件;
75.步骤二,当在所述数据平台页面上检测到对所述在线运行组件的触发操作时,启动所述在线运行组件,并输出所述在线运行组件对应的可视化界面。
76.其中,当平台运行时,可向平台发送网页获取请求,平台接收到请求后,可响应该请求返回对应的数据平台页面,其中,该数据平台页面中集成有用于输出可视化界面的在线运行组件。
77.当在数据平台页面上检测到对在线运行组件的触发操作时,例如,用户在数据平台页面上点击用于触发在线运行组件的按钮,则启动在线运行组件,并输出该在线运行组件对应的可视化界面。
78.由此可见,本技术实施例提供的技术方案,用户可以通过可视化界面实现向数据平台上传原始程序包的操作,操作过程方便简单,能够提高用户体验。
79.s102,利用预置的sdk对原始程序包进行封装,得到集成有sdk和原始程序包的目标程序包,sdk中定义有用于调用平台中资源的调用接口。
80.由s102中的描述可见,本技术实施例中,可预先在平台系统中设置sdk,该sdk中定义有用于调用平台中资源的调用接口。具体的,基于sdk定义调用接口的语法为:class runjar{def exec():unit={}},可在exec方法中调用sdk预定义好的api接口以获取平台中的资源。这里,资源包括数据平台提供的数据源和运行资源,其中,数据源例如为数据库,运行资源例如为内存或cpu等。
81.本技术实施例中,数据平台在接收到外部上传的原始程序包后,可以利用预置的sdk对原始程序包进行封装,得到集成有该sdk和原始程序包的目标程序包。
82.s103,当接收到程序运行指令时,运行目标程序包;其中,程序运行指令携带资源信息,在运行目标程序包的过程中,利用所述sdk中的所述调用接口调用所述平台中与所述资源信息对应的资源。
83.在一实施例中,上述资源信息指资源的唯一标识,例如资源的id或名称。
84.程序运行指令可以是用户输入的,用于指示平台系统运行目标程序包的指令。进一步的,程序运行指令中可携带有资源信息以及用户输入的动态参数。其中,动态参数为用户希望通过目标程序包进行计算的参数,例如,目标程序包中封装了阳历和农历日期之间的转换功能,当用户想要知道某一个阳历日期所对应的农历日期,可在图2所示例的可视化界面中输入该阳历日期,该阳历日期则为上述所描述的动态参数。
85.在本技术s103方案中,用户可通过点击图2所示可视化界面中的按钮来实现触发程序运行指令。具体的,当检测到对可视化界面中第二对象的触发操作时,触发程序运行指令,第二对象为可视化界面中,用于指示运行程序包的按钮,例如图2中的“运行”按钮。
86.数据平台在接收到程序运行指令时,可通过运行组件建立对应的运行任务,然后,在该运行任务中利用sdk运行目标程序包,并且,在运行目标程序包的过程中,可以利用sdk中的调用接口调用平台中与资源信息对应的资源。其中,sdk的运行程序包的语法为:
87.val clazz=class.forname(“runjar”)
88.clazz.getmethod(“exec”),classof[array[string]]).invoke(clazz.newinstance(),args)。
[0089]
进一步,在本技术实施例的一种实施方式中,可以利用sdk,以反射机制运行目标程序包。通过该种处理,可以提高程序的可拔插性,从而提高程序的灵活性。
[0090]
由此可见,本技术实施例提供的技术方案可以使用户触发程序运行指令的操作更加直观、方便,从而提高用户体验。
[0091]
此外,运行组件在得到目标程序包的运行结果后,可将该运行结果通过可视化界面进行输出,以供用户查看。
[0092]
本技术实施例提供的技术方案,通过接收外部上传的原始程序包,利用预置的sdk对原始程序包进行封装,得到集成有sdk和原始程序包的目标程序包,当接收到程序运行指令时,运行目标程序包,由于sdk中定义有用于调用平台中资源的调用接口,因此,在运行目标程序包的过程中,数据平台可直接利用sdk调用平台中与程序运行指令携带资源信息对
应的资源。由此可见,相较于现有技术而言,本技术技术方案中,在线运行程序包时,可以利用其中已封装的sdk直接调用平台的资源,而无需新建常驻服务供用户调用,如此,无需数据平台维护常驻服务,从而减少了数据平台的维护成本。
[0093]
此外,在实践中,数据平台上可同时存储有多个目标程序包,当一个用户想同时运行多个目标程序包,或多个用户想同时运行一个目标程序包,再或多个用户想同时运行多个目标程序包时,会出现数据平台接收到多个程序运行指令的情况。其中,一个程序运行指令对应一个用户以及该用户想要运行的一个目标程序包。
[0094]
对此,在本技术实施例的一种实施方式中,数据平台在接收到多个程序运行指令时,可针对每个程序运行指令,分别建立对应的运行任务,在运行任务中,利用sdk运行与程序运行指令对应的目标程序包。
[0095]
由此可见,在本技术实施例中,数据平台的运行组件可针对每个程序运行指令创建对应的运行任务,每个运行任务中运行对应的目标程序包。如此可以实现任务隔离,提高处理效率。
[0096]
进一步优选的,运行组件可以将目标程序包提交给大数据分布式计算系统进行计算,从而解决高并发运行的问题,并且可以提高计算速度。
[0097]
此外,在实践中,还存在用户想要中断目标程序包运行的情况。对此,在本技术实施例的一种实施方式中,当检测到对可视化界面中第一对象的触发操作时,触发中断指令,数据平台则基于中断指令,中断运行目标程序包。其中,第一对象为可视化界面中,用于指示中断运行程序包的按钮,例如图2中所示例的“中断”按钮。
[0098]
进一步的,上述可视化界面中可包括多个中断按钮(图2中并未示出),不同的中断按钮可对应不同的中断逻辑。基于此,当检测到对可视化界面中任一中断按钮被触发时,触发中断指令,数据平台则基于该中断指令,利用与被触发的中断按钮对应的中断逻辑中断目标程序包的运行。
[0099]
由此可见,通过本技术实施例提供的技术方案可以实现用户一键中断运行目标程序包,操作简单,且对于非专业人员来说,使用预先固定好中断逻辑中断运行程序包,比用户自行操作更安全、专业且不容易出错,还可以降低用户使用成本。
[0100]
此外,在本技术又一实施例中,方法还可以包括以下步骤:
[0101]
步骤一,在目标程序包运行中断或结束后,获取运行目标程序包过程中产生的执行日志;
[0102]
步骤二,通过可视化界面输出执行日志。
[0103]
由上述步骤可见,在本技术实施例中,在目标程序包运行中断或结束后,数据平台可以自动获取运行该目标程序包过程中产生的执行日志,然后通过可视化界面输出该执行日志,从而方便用户查看,进而方便用户根据执行日志进行调试,降低维护成本。
[0104]
与前述服务处理方法的实施例相对应,本技术还提供服务处理装置的实施例框图。
[0105]
参见图4,为本技术实施例提供的一种服务处理装置的实施例框图,该装置包括:
[0106]
接收模块201,用于接收外部上传的原始程序包;
[0107]
封装模块202,用于利用预置的软件开发工具包sdk对所述原始程序包进行封装,得到集成有所述sdk和所述原始程序包的目标程序包,所述sdk中定义有用于调用平台中资
interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0132]
通信接口用于上述电子设备与其他设备之间的通信。
[0133]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0134]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0135]
在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一在线程序包运行方法的步骤。
[0136]
在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一在线程序包运行方法。
[0137]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0138]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0139]
以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术
将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

技术特征:
1.一种在线程序包运行方法,其特征在于,所述方法包括:接收外部上传的原始程序包;利用预置的软件开发工具包sdk对所述原始程序包进行封装,得到集成有所述sdk和所述原始程序包的目标程序包,所述sdk中定义有用于调用平台中资源的调用接口;当接收到程序运行指令时,运行所述目标程序包;其中,所述程序运行指令携带资源信息,在运行所述目标程序包的过程中,利用所述sdk中的所述调用接口调用所述平台中与所述资源信息对应的资源。2.根据权利要求1所述的方法,其特征在于,所述运行所述目标程序包,包括:利用所述sdk,以反射机制运行所述目标程序包。3.根据权利要求1所述的方法,其特征在于,所述接收外部上传的原始程序包,包括:输出可视化界面,所述可视化界面上至少包括用于上传程序包的控件;通过所述可视化界面接收外部上传的原始程序包。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当检测到对所述可视化界面中第一对象的触发操作时,触发中断指令,所述第一对象为所述可视化界面中,用于指示中断运行程序包的按钮;基于所述中断指令,中断运行所述目标程序包。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:当检测到对所述可视化界面中第二对象的触发操作时,触发所述程序运行指令,所述第二对象为所述可视化界面中,用于指示运行程序包的按钮。6.根据权利要求3所述的方法,其特征在于,所述输出可视化界面,包括:向所述平台发送网页获取请求,以使所述平台响应所述网页获取请求返回数据平台页面,所述数据平台页面中集成有在线运行组件;当在所述数据平台页面上检测到对所述在线运行组件的触发操作时,启动所述在线运行组件,并输出所述在线运行组件对应的可视化界面。7.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述目标程序包运行中断或结束后,获取运行所述目标程序包过程中产生的执行日志;通过所述可视化界面输出所述执行日志。8.一种在线程序包运行装置,其特征在于,所述装置包括:接收模块,用于接收外部上传的原始程序包;封装模块,用于利用预置的软件开发工具包sdk对所述原始程序包进行封装,得到集成有所述sdk和所述原始程序包的目标程序包,所述sdk中定义有用于调用平台中资源的调用接口;运行模块,用于当接收到程序运行指令时,运行所述目标程序包;其中,所述程序运行指令携带资源信息,在运行所述目标程序包的过程中,利用所述sdk中的所述调用接口调用所述平台中与所述资源信息对应的资源。9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。

技术总结
本申请提供了一种在线程序包运行方法、装置、电子设备及存储介质,属于计算机技术领域。本申请通过接收外部上传的原始程序包;利用预置的软件开发工具包SDK对所述原始程序包进行封装,得到集成有所述SDK和所述原始程序包的目标程序包,所述SDK中定义有用于调用平台中资源的调用接口;当接收到程序运行指令时,运行所述目标程序包;其中,所述程序运行指令携带资源信息,在运行所述目标程序包的过程中,利用所述SDK中的所述调用接口调用所述平台中与所述资源信息对应的资源。由此,可以减少能够实现在线运行程序包的数据平台的维护成本。够实现在线运行程序包的数据平台的维护成本。够实现在线运行程序包的数据平台的维护成本。


技术研发人员:高松
受保护的技术使用者:北京金山云网络技术有限公司
技术研发日:2021.11.24
技术公布日:2022/3/7

最新回复(0)