CN118426854A - 使用云计算运行应用程序的方法、电子设备和存储介质 - Google Patents
使用云计算运行应用程序的方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN118426854A CN118426854A CN202310089086.9A CN202310089086A CN118426854A CN 118426854 A CN118426854 A CN 118426854A CN 202310089086 A CN202310089086 A CN 202310089086A CN 118426854 A CN118426854 A CN 118426854A
- Authority
- CN
- China
- Prior art keywords
- shared
- application
- file
- working container
- target
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000008569 process Effects 0.000 claims description 13
- 238000013461 design Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012795 verification Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- XUKUURHRXDUEBC-KAYWLYCHSA-N Atorvastatin Chemical compound C=1C=CC=CC=1C1=C(C=2C=CC(F)=CC=2)N(CC[C@@H](O)C[C@@H](O)CC(O)=O)C(C(C)C)=C1C(=O)NC1=CC=CC=C1 XUKUURHRXDUEBC-KAYWLYCHSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 208000025967 Dissociative Identity disease Diseases 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种使用云计算运行应用程序的方法,所述方法包括:接收来自用户的运行第一应用程序的第一请求;解析所述第一请求以确定所述第一应用程序的个性部分和共享部分,其中,所述共享部分存储在共享存储中;在工作容器中运行所述个性部分;关联所述共享部分到所述工作容器;以及调用所述工作容器和所述共享部分运行所述第一应用程序。采用本方法能够提高应用程序的启动速度。
Description
技术领域
本申请涉及计算机软件技术领域,尤其涉及一种使用云计算运行应用程序的方法、电子设备和存储介质。
背景技术
近年来,伴随着芯片设计规模的增大,在验证过程中本地算力在一些情况下会捉襟见肘。此外,验证过程通常涉及多种工具,例如,软件仿真器、形式化验证工具、硬件仿真器(包括原型验证装置)。完整的芯片设计会涉及更多的工具。
因此,在芯片设计行业,一方面存在着部分工具在特定时段的计算资源紧缺,另一方面又存在着由于工具链过于长而导致部分工具无法充分利用计算资源的情况。将各种应用程序上云作为云计算资源提供成了一种解决上述问题的可行方案。
然而,应用程序的上云后,其容器镜像过大,而过大的容器镜像在本地拉取时会额外增加时间,会导致容器镜像的启动速度变慢,在使用应用程序的过程中会额外增加不必要的等待时间。因此,如何提高容器镜像和应用程序的启动速度,成为亟待解决的问题。
发明内容
有鉴于此,本申请提出了一种使用云计算运行应用程序的方法、电子设备和存储介质。
本申请第一方面,提供了一种使用云计算运行应用程序的方法,所述方法包括:接收来自用户的运行第一应用程序的第一请求;解析所述第一请求以确定所述第一应用程序的个性部分和共享部分,其中,所述共享部分存储在共享存储中;在工作容器中运行所述个性部分;关联所述共享部分到所述工作容器;以及调用所述工作容器和所述共享部分运行所述第一应用程序。
本申请第二方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
本申请的第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算装置的一组指令,该组指令用于使所述计算装置执行第一方面所述的方法。
本申请提供的一种使用云计算运行应用程序的方法、电子设备和存储介质,通过将运行第一应用程序过程中所用的个性部分和共享部分分别放在工作容器和共享存储中。多个应用程序的共享部分都存储在一个共享存储,并且通过映射的方式使得共享部分可以被工作容器读取。因此,无需将过大的共享部分再拉取至节点的工作容器中,减少了云系统内部的数据读写,提高了运行速度。在运行第一应用程序时,可以仅仅运行所用的个性部分,并将共享部分关联到工作容器中,最后利用工作容器和共享部分来共同运行第一应用程序,在处理过程中仅运行使用到的个性化部分,共享部分无需重新拉取运行,能够提高第一应用程序的启动速度。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A示出了根据本申请实施例的一种计算装置的示意图;
图1B示出了根据本申请实施例的一种云系统的示意图;
图1C示出了根据本申请实施例的一种EDA计算系统的示意图;
图2A示出了根据本申请实施例的工作容器和共享存储之间的示意图;
图2B示出了根据本申请实施例的运行第一应用程序的示意图;
图3A示出了根据本申请实施例的共享存储的示意图;
图3B示出了根据本申请实施例的第二请求的示意图;
图4示出了根据本申请实施例的使用云计算运行应用程序的方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
图1A示出了根据本申请实施例的一种计算装置100的示意图。如图1A所示,计算装置100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在计算装置内部的通信连接。
处理器102可以是中央处理器(Centra l Process i ng Un it,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(App l icat ion Specifi cI ntegrated Ci rcuit,AS I C)、或者一个或多个集成电路。处理器102可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1A所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令、TCL对象的列表、计算机代码、对象的属性与属性的值或者容器镜像等)。如图1A所示,存储器存储的数据可以包括程序指令(例如,用于实现本申请的解析第一请求和第二请求的程序指令或者运行第一应用程序的程序指令)以及要处理的数据(例如,存储器可以存储在第一应用程序中的个性部分和共享部分等)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向计算装置100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、Wi Fi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(N I C)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将计算装置100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在计算装置100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PC I-E总线)等。
需要说明的是,尽管上述计算装置架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该计算装置架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述计算装置架构中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图1B示出了根据本申请实施例的一种云系统120的示意图。
如图1B所示,云系统120可以包括多个云服务器(122、124)。这些云服务器例如可以是图1A所示的计算装置100或者由云计算服务器提供的计算机。云系统120可以用于提供云计算资源。因此,云系统120在本申请中也被称为云计算资源120。
图1C示出了根据本申请实施例的一种EDA计算系统130的示意图。
本申请的EDA计算系统130可以是一个本地的计算系统,并且可以包括计算装置132以及本地计算资源134。
计算装置132可以是如图1A所示的计算装置100。计算装置132可以向用户提供资源管理器,并提供连接到云系统120的接口和连接到计算资源134a和134b的接口。本地主机132还可以将不同的运算任务相应地分配到云端或本地。
在一些实施例中,本地计算资源134可以包括服务器134a或硬件验证工具134b的至少一种。多个EDA任务可以部分在云计算资源120上执行,可以部分在本地计算资源134上执行。可以理解的是,多个EDA任务也可以仅在云计算资源120上执行或者仅在本地计算资源134上执行。
服务器134a可以是如图1A所示的主机100。在一些实施例中,服务器134a可以运行至少一种EDA软件工具(例如,软件仿真器(s imu l ator)、形式验证工具等)。服务器134a还可以作为硬件验证工具134b的主机,用于与硬件验证工具134b协同完成验证任务并读取验证结果。
硬件验证工具134b可以示例性地包括原型验证板、硬件仿真器(emu l ator)等硬件验证工具。
尽管图1C中仅使出有限数量的本地计算资源134,但是本领域技术人员可以理解任意数量的本地计算资源134可以根据实际需要而提供。也就是说,可以存在多个服务器134a和多个硬件验证工具134b。服务器134a和硬件验证工具134b也不一定采用一一配对的形式来提供。例如,一台服务器134a可以与多台硬件验证工具对接。
如上所述,在应用程序上云的过程中,其容器镜像(也就是应用程序自身以及该应用程序所使用的环境)过大(几GB到几十GB)。这对Kubernetes集群管理应用容器造成很大的困难,比如说Kubernetes在应用程序的容器异常后可快速重启,甚至在其他节点拉起,但是过大的容器镜像会导致启动速度变慢。如果需要在其他节点启动,而且在其他节点不存在镜像的情况下,那么Kubernetes先从镜像仓库将容器镜像拉取到节点上,然后再启动,前后将消耗好几分钟,甚至十几分钟的时间。另外,用户在使用应用程序的过程中,会用到除应用程序自身之外的其他类型的工具,如果这些工具未在制作镜像时包含进去,那他们需要重新制作镜像,而且在启动应用程序时需要拉取新的镜像,导致整个更新流程很耗时间(制作新镜像和更新应用程序的时间),另外就是这些镜像的存储会消耗大量的存储空间。
同时,对于EDA工具上云这一特殊情景,用户对于EDA工具的使用时高度一致。也就是说,在芯片设计行业,A用户需要频繁使用数字仿真器,B用户同样频繁使用数字仿真器。这意味着,同一个应用程序会被不同的用户反复调用。另一种情形是,以调试工具为例,调试工具通常具有非常多的功能(或工具),不同用户在使用时可能会调用不同的功能,但是调试工具的基座代码是相同的。这些基座代码通常是以头文件形式存在。在现有技术中,云系统会为每个用户创建独立的镜像,而这些镜像十分庞大,启动速度慢,用户体验不好。
此外,由于几乎所有的应用程序都是由C或者C++语言编写,所以即使是不同的应用之间也会存在相同的头文件。
因此,如何在云计算场景下快速地启动应用程序成为亟待解决的技术问题。
鉴于此,有鉴于上述技术问题和用户的实际使用情况,本申请实施例提供了一种使用云计算运行应用程序的方法、电子设备和存储介质。
如上所述,由于在云系统上运行的应用程序存在较多相同的代码(例如,相同的头文件或者其他代码),所以本申请实施例将一个应用程序分为共享部分和个性部分。共享部分可以包括由各种应用程序都需要调用的头文件产生的文件(例如,这部分代码的可执行代码)以及由一个应用程序(例如,EDA程序)的不同功能所依赖的基座代码产生的文件(例如,这部分代码的可执行文件)。
图2A示出了根据本申请实施例的工作容器和共享存储之间的示意图。工作容器和共享存储都是在云系统120上运行。在本申请的上下文中,容器(例如,工作容器)是指包括应用程序的代码(也称为镜像)、使用环境在内的、可以独立运行的云计算单元。云系统120可以为一个容器分配必要的计算资源。如上所述,应用程序可以包括共享部分和个性部分。云系统120可以将一个应用程序划分为共享部分和个性部分。可以理解的是,当无人使用时,应用程序(包括共享部分和个性部分)通常是存储在共享存储202中。当云系统120从用户接收到启动一个应用程序的请求时,云系统120可以为该用户生成一个工作容器210。例如,该工作容器210可以被配置在节点200上。该节点200可以包括专属于该用户的CPU资源、存储资源和内存资源等。该节点200可以包括一个或多个计算装置100,甚至包括部分的计算装置100。这个工作容器210可以包括配置为该应用程序使用的计算资源(包括CPU资源、内存资源和存储资源等)。云系统120还可以提供一个共享存储202。共享存储202可以与多个工作容器210连接。云系统120可以将一个或多个应用程序的共享部分222和224放在共享存储202中。可以理解的是,共享存储202也可以仅存储一个应用的共享部分。在用户使用过程中,最难预测的是用户会用到什么工具,比如使用bash(重击)、csh、vim(文本编辑器)、或emacs(编辑器宏)等等,为了降低用户想添加自己的工具导致更新到应用程序的共享部分中,可以将其抽取为独立的一个部分,该部分可以为个性部分。因此,可以从共享存储202中获取与该应用程序对应的个性部分206,将该个性部分206结合该应用程序的使用环境配置为工作容器210。通常情况下,共享存储202是一直在云系统120中运行的,而工作容器210只有在用户需要调用时才被配置并运行在节点200上。共享部分222或者共享部分224和个性部分206以及它们的依赖包通常可以是镜像。
在一些实施例中,共享存储202例如可以是NFS(Network Fi l e System)网络文件系统。
图2B示出了根据本申请实施例的运行第一应用程序的示意图。
节点200可以从用户的客户端230接收用户运行第一应用程序的第一请求232。节点200接收到第一请求232后,解析该第一请求232,确定该第一请求232所调用的第一应用程序的个性部分212和共享部分226。如上述实施例所提到的,共享部分226通常存储在共享存储202中。在一些实施例中,工作容器210中可以运行多个个性部分206。因此,需要在工作容器210中找到该第一应用程序的个性部分212,并在工作容器210中运行该个性部分212。第一应用程序的个性部分212通常包括在多个应用程序对应的个性部分206中。
另外,工作容器中的个性部分212通常为本次运行第一应用程序时所使用到的工具。可以将共享部分226关联到工作容器210中。根据工作容器210中的个性部分212和共享部分226运行所述第一应用程序。因为工作容器210中运行了个性部分212,可以通过该个性部分212调用共享部分226,通过上述方式即可完成第一应用程序的运行。
在一些实施例中,用户可以在自己的工作机上,通过Kubernetes的客户端,比如kubect l,启动云系统120中的节点200,然后以交互式的方式进入工作容器中,然后可以将需要进行调试的程序对应的设计文件从共享存储中挂载至工作容器中。在本申请的上下文中,挂载意味着将共享存储中的文件的地址关联到工作容器,从而使得工作容器可以直接读取共享存储中的文件,而无需将共享存储的文件从共享存储传输到工作容器。并且用户可以直接在工作机中编辑或者修改该设计文件,修改或者编辑完成后,可以在工作机上通过docker命令启动共享存储中的共享部分,为了方便,可以在工作容器中提供脚本,隐藏掉docker命令,用户可以直接调用此脚本启动共享部分。并根据设计文件并调用共享部分和工作容器中的个性部分来运行用户需要进行调试的程序。
图3A示出了根据本申请实施例的共享存储202的示意图。
共享存储202中可以运行多个应用程序所对应的共享部分222,而每个共享部分222可以包括多个共享文件(例如,图3A中的共享文件2221、共享文件2223或者共享文件2225)。当共享存储202中运行了多个共享文件时,可以在多个共享文件中确定与第一应用程序的共享部分226对应的第一目标共享文件。第一目标共享文件可以为多个也可以为一个。并且共享存储202可以确定该第一目标共享文件在第一应用程序的运行过程中是否是只读文件。只读文件通常可以是只允许读取,不允许修改的文件。若是只读文件,则共享存储202可以将该第一目标共享文件的地址发送给工作容器210,以使第一目标共享文件和工作容器210关联。在运行第一应用程序时,可以直接根据该第一目标共享文件的地址直接使用该第一目标共享文件。若不是只读文件,则通常情况下,该第一目标共享文件是需要进行修改的文件。因此可以将第一目标共享文件进行复制,将复制后的第一目标共享文件关联到工作容器210。通常情况下,还可以接收修改指令,利用修改指令以及工作容器210对复制后的第一目标共享文件进行修改或者编辑,然后将修改或者编辑后的第一目标共享文件的地址,将修改或者编辑后的第一目标共享文件关联到工作容器210中。后续可以调用工作容器210和修改或者编辑后的第一目标共享文件以运行第一应用程序。若没有修改指令,则可以直接将复制后的第一目标共享文件关联到工作容器210。
以下描述一种将共享文件关联到工作容器的示例性方式。
在一些实施例中,可以从regi stry(一种存储信息的表)拉取共享部分,pu l l操作将返回共享部分中各个层(例如,图3A中的共享文件2221、共享文件2223或者共享文件2225)的I D,然后利用docker daemon使用到的存储驱动,比如over l ay2。通过修改此存储驱动,可以使该存储驱动根据层的I D在共享存储202上寻找此层对应的文件(非压缩,regi stry存在共享部分的层时,以非压缩存储),然后挂载到对应位置,对应只读的层,直接引用,即可以直接根据该层的地址挂载到对应地址,不需要COW(copy on wr i te)。但如果不是只读的层时,存储驱动将调用NFS存储的COW接口形成一个可读写层,对该不是只读的层先进行复制,复制之后可以对复制得到的层进行修改或者编辑,进而可以将进行修改或者编辑后的层挂载到对应位置。
这样,根据第一目标共享文件是否只读,对其采用不同的操作。针对第一目标共享文件为只读文件,可以直接利用第一目标共享文件的地址将第一目标共享文件关联至工作容器中,无需拉取第一目标共享文件,能够提高第一应用程序的启动速度。另外针对第一目标共享文件不是只读文件,可以对其进行复制,可以充分利用共享存储202的COW(copy onwr i te)能力,能够不用通过网络拉取第一目标共享文件,极大缩短获取第一目标共享文件的时间,从而降低第一应用程序的启动时间。
在一些实施例中,共享存储202中的共享部分可以包括主程序文件。主程序文件通常也可以是共享文件其中的一种类型。主程序文件的确定过程可以包括:获取多个不同时间段内的应用程序的共享文件,确定每个共享文件中对应的二进制文件,对多个共享文件对应的二进制文件进行去重,得到主程序文件。
例如,可以将vi vado(一种应用集成环境工具)的应用程序对应的二进制文件独立出来,是因为应用程序前后版本的迭代变化并不是很大,特别是dai l y bu i l d(每日构建)的情况下,每天都有一个新版本。独立出来后放入存储里,可以利用存储的去冗余能力(dedup l i cat i on),将重复的部分去掉,做到最大限度降低存储容量,进而来得到最终的主程序文件。
在一些实施例中,共享存储202中共享部分中的共享文件还可以包括应用程序的主程序文件所对应的依赖库镜像。依赖库镜像通常也可以是共享文件的其中一种类型。由于应用程序通常都是由编程语言(例如,C++或者C语言)编写的,不同的应用程序有可能会使用到相同的依赖包,为了提高应用程序的启动效率,可以将每个依赖包制作成一个共享文件,这样不同的应用程序可以共享相同的依赖包,避免拉取的开销。而且在容器中存在单个image(容器中的可运行的基本单元)的情况下,加入新的依赖库镜像,在重新生成共享文件后,可以仅拉取新的依赖库镜像的共享文件,不至于所有的共享文件都要重新拉取。
图3B示出了根据本申请实施例的第二请求的示意图。在本方案中,如果还存在用户需要再利用云系统120来运行第二应用程序。该用户可以和发送第一请求232的是同一个用户,也可以不是同一个用户。在本实施例中以和发送第一请求232的用户不是同一个用户进行举例说明。云系统120可以接收在客户端240中该用户运行第二应用程序的第二请求242。云系统120接收到第二请求242后,解析该第二请求242,确定当前第二应用程序的个性部分214和共享部分228。如上述实施例所提到的,共享部分228通常一直存储在共享存储202中。因此共享部分228无需进行处理,只需要在共享存储202中找到该第二应用程序所对应的共享部分228即可。响应于与第一请求232不同的第二请求242,云系统120可以启动工作容器310,用于运行与第二请求242对应的工作容器310中的个性部分214,并且建立与共享存储202中的共享部分228的连接。找到共享部分228之后,云系统120可以在共享存储202中的多个共享文件(例如,图3A中的共享文件2221、共享文件2223或者共享文件2225)中确定与该第二应用程序的共享部分228对应的第二目标共享文件。第一应用程序和第二应用程序通常情况下可以是相同的应用程序,因此第一应用程序的共享部分226和第二应用程序的共享部分228通常是相同的部分,因此,第二目标共享文件通常情况下和第一目标共享文件是同一个文件。然后,运行第二应用程序的方法同上述实施例中运行第一应用程序的方法相同,在此不进行重复赘述。可以理解的是,上述方法也可以使用云系统120中的节点200来实现。
这样,在运行第二应用程序时,可以直接在共享存储202中确定第二目标共享文件,在存在运行多个应用程序的请求时,可以直接在共享存储中确定其对应的目标共享文件,无需从共享存储中进行拉取,并且直接将目标共享文件和工作容器进行关联后,即可调用工作容器和共享存储运行对应的应用程序,能够降低应用程序的运行时的启动时间。
在一些实施例中,第一应用程序和第二应用程序是逻辑系统设计中的调试程序,例如,vdbg、vi vado、synp l i fy、vcom等。工作容器210中可以包括调试程序所用到的多个调试工具中的一种。调试工具例如可以包括:bash、csh、vim、或emacs等。
图4示出了根据本申请实施例的使用云计算运行应用程序的方法400的流程图。方法400可以由例如图1C所示的计算装置132执行,更具体地,可以由在计算装置132上运行的图2A的云系统120执行。该应用程序可以是与逻辑系统设计有关的应用程序,例如调试程序;也可以是其他应用程序。方法400可以包括如下步骤。
在步骤S402中,云系统120接收来自用户的运行第一应用程序的第一请求(例如,图2B中的第一请求232或图3B中的第一请求232)。
在步骤S404中,云系统120解析所述第一请求以确定第一应用程序的个性部分(例如,图2B中的个性部分212,或者图3B中的个性部分212)和共享部分(例如,图2B中的共享部分226或者图3B中的共享部分226)。其中,共享部分存储在共享存储中(例如,图2A、图2B和图3A中的共享存储202)。
在步骤S406中,云系统120在工作容器(例如,图2A和图2B中的工作容器210)中运行个性部分(例如,图2B中的个性部分212)。工作容器可以根据第一请求来创建。
在步骤S408中,云系统120关联所述共享部分(例如,图2A、图2B和图3A中的共享部分222、共享部分224、共享部分226)到工作容器(例如,图2A和图2B中的工作容器210)。也就是说,让共享部分和工作容器建立连接,从而使得它们可以作为一个整体去运行。例如,工作容器中的个性部分处理的中间结果可以被发送到共享存储的共享部分进行进一步的处理,反之亦然。
在一些实施例中,所述共享存储(例如,图2A、图2B和图3A中的共享存储202)中存储多个共享文件(例如,图3A中的共享文件2221、共享文件2223和共享文件2225)。可以理解的是,共享文件可以是只读文件或者不是只读文件(即,又可以进行读操作又可以进行写操作)。相应地,所述关联所述共享部分到所述工作容器进一步包括:在所述多个共享文件((例如,图3A中的共享文件2221、共享文件2223和共享文件2225))中确定与所述第一应用程序的共享部分(例如,图2B中的共享部分226或者图3B中的共享部分226)对应的第一目标共享文件;确定所述第一目标共享文件在所述第一应用程序的运行过程中是否是只读文件;以及响应于所述第一目标共享文件在所述第一应用程序的运行过程中是只读文件,向所述工作容器提供所述第一目标共享文件的地址以使得所述第一目标共享文件关联到所述工作容器(例如,图2A和图2B中的工作容器210)。这样,只读的共享文件无需被专门复制到工作容器,而是可以留在共享存储中,从而避免了共享存储和工作容器之间的频繁的文件传输,减少了系统的工作负荷。
在一些实施例中,响应于所述第一目标共享文件在所述第一应用程序的运行过程中不是只读文件,复制所述第一目标共享文件;将复制的第一目标共享文件关联到所述工作容器(例如,图2A和图2B中的工作容器210)。
在一些实施例中,所述共享部分(例如,例如,图2A、图2B和图3A中的共享部分222、共享部分224、共享部分226)中包括主程序文件。
在步骤S410中,调用工作容器和共享部分运行所述第一应用程序。
在一些实施例中,所述方法可以进一步包括:接收来自用户的运行第二应用程序的第二请求(例如,图3B中的第二请求242);解析所述第二请求以确定所述第二应用程序的个性部分(例如,图3B中的个性部分214)和共享部分(例如,图3B中的共享部分228);在所述共享部分的多个共享文件(例如,图3A中的共享文件2221、共享文件2223和共享文件2225)中确定与所述第二应用程序的共享部分(例如,图3B中的共享部分228)对应的第二目标共享文件。
在一些实施例中,所述第二目标共享文件和所述第一目标共享文件是同一文件。所述第一应用程序和第二应用程序是逻辑系统设计的调试程序,所述工作容器包括所述调试程序中的多个调试工具的一种。
这样,通过将运行第一应用程序过程中所用的个性部分和共享部分分别放在工作容器和共享存储中。共享部分存储在共享存储中,共享存储中的共享部分通常是一直在线的。在运行第一应用程序时,通过将共享部分的存储地址关联到工作容器,可以无需将过大的共享部分所对应的容器镜像再拉取至节点中,提高可以提高共享文件的处理速度。相比之下,现有技术需要将第一应用程序完整地载入到工作容器中。由于本申请实施例在运行第一应用程序时,可以仅仅运行所用的个性部分,并将共享部分关联到工作容器中,最后利用工作容器和共享部分来共同运行第一应用程序,所以在处理过程中仅运行使用到的个性化部分,共享部分无需重新拉取运行,能够提高第一应用程序的启动速度。
本申请实施例还提供一种电子设备。该电子设备可以是图1C的计算装置132。该电子设备可以包括存储器,用于存储一组指令;以及至少一个处理器,配置为执行该组指令以使得所述电子设备执行方法400。
本申请实施例还提供一种非暂态计算机可读存储介质。所述非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使所述计算机执行方法400。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述对本申请特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种使用云计算运行应用程序的方法,其特征在于,所述方法包括:
接收来自用户的运行第一应用程序的第一请求;
解析所述第一请求以确定所述第一应用程序的个性部分和共享部分,其中,所述共享部分存储在共享存储中;
在工作容器中运行所述个性部分;
关联所述共享部分到所述工作容器;以及
调用所述工作容器和所述共享部分运行所述第一应用程序。
2.如权利要求1所述的方法,其特征在于,所述共享存储中存储多个共享文件,所述关联所述共享部分到所述工作容器进一步包括:
在所述多个共享文件中确定与所述第一应用程序的共享部分对应的第一目标共享文件;
确定所述第一目标共享文件在所述第一应用程序的运行过程中是否是只读文件;以及
响应于所述第一目标共享文件在所述第一应用程序的运行过程中是只读文件,向所述工作容器提供所述第一目标共享文件的地址以使得所述第一目标共享文件关联到所述工作容器。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:响应于所述第一目标共享文件在所述第一应用程序的运行过程中不是只读文件,复制所述第一目标共享文件;
将复制的第一目标共享文件关联到所述工作容器。
4.如权利要求1所述的方法,其特征在于,所述共享部分中包括主程序文件。
5.如权利要求2所述的方法,其特征在于,所述方法进一步包括:
接收来自用户的运行第二应用程序的第二请求;
解析所述第二请求以确定所述第二应用程序的个性部分和共享部分;
在所述共享部分的多个共享文件中确定与所述第二应用程序的共享部分对应的第二目标共享文件。
6.如权利要求5所述的方法,其特征在于,所述第二目标共享文件和所述第一目标共享文件是同一文件。
7.如权利要求5所述的方法,其特征在于,所述第一应用程序和第二应用程序是逻辑系统设计的调试程序,所述工作容器包括所述调试程序中的多个调试工具的一种。
8.根据权利要求1至7中任一项的方法,其特征在于,所述工作容器中的多个调试工具包括:文本编辑器、编辑器宏、重击或csh。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8中任一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行根据权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310089086.9A CN118426854A (zh) | 2023-01-31 | 2023-01-31 | 使用云计算运行应用程序的方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310089086.9A CN118426854A (zh) | 2023-01-31 | 2023-01-31 | 使用云计算运行应用程序的方法、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118426854A true CN118426854A (zh) | 2024-08-02 |
Family
ID=92330100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310089086.9A Pending CN118426854A (zh) | 2023-01-31 | 2023-01-31 | 使用云计算运行应用程序的方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118426854A (zh) |
-
2023
- 2023-01-31 CN CN202310089086.9A patent/CN118426854A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413288B (zh) | 应用部署方法、装置、服务器及存储介质 | |
US9558016B2 (en) | Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product | |
US8505034B2 (en) | Automated service interface optimization | |
CN104866383A (zh) | 一种接口调用方法、装置及终端 | |
JP5898685B2 (ja) | ドキュメント編集コマンドのシリアル化 | |
US20230153158A1 (en) | Method, apparatus, system, and storage medium for performing eda task | |
US10185648B2 (en) | Preservation of modifications after overlay removal from a container | |
US11307839B2 (en) | Updating of container-based applications | |
CN115237436A (zh) | 应用部署方法、装置、电子设备及可读存储介质 | |
CN112579049B (zh) | 基于云平台的定制软件产品化管理方法及装置 | |
CN112235132A (zh) | 动态配置服务的方法、装置、介质以及服务器 | |
CN115291946A (zh) | 鸿蒙系统移植方法、装置、电子设备及可读介质 | |
US11755294B2 (en) | Systems and methods for generating service access points for RTE services in code or other RTE service information for use with the code | |
CN117908980A (zh) | 基于Kubernetes资源对象的快速配置方法和系统 | |
CN111367512B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN117234582A (zh) | 一种项目代码处理方法、装置、电子设备及存储介质 | |
CN116382713A (zh) | 构建应用镜像的方法、系统、设备和存储介质 | |
CN118426854A (zh) | 使用云计算运行应用程序的方法、电子设备和存储介质 | |
CN117251118B (zh) | 支持虚拟NVMe仿真与集成方法及系统 | |
CN115202830B (zh) | 根文件系统的准备方法、系统、计算设备及可读存储介质 | |
CN112328213B (zh) | 一种在线软件开发过程的隔离方法、设备及介质 | |
US20240152371A1 (en) | Dynamic re-execution of parts of a containerized application pipeline | |
US20240160501A1 (en) | Interoperability between actor frameworks and asynchronous frameworks | |
CN104050290B (zh) | 读取和写入用于hadoop计算的数据的方法和系统 | |
CN116126471A (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 |