CN111339529A - 低代码的业务编排构件运行的管理框架与方法、计算设备及介质 - Google Patents
低代码的业务编排构件运行的管理框架与方法、计算设备及介质 Download PDFInfo
- Publication number
- CN111339529A CN111339529A CN202010176259.7A CN202010176259A CN111339529A CN 111339529 A CN111339529 A CN 111339529A CN 202010176259 A CN202010176259 A CN 202010176259A CN 111339529 A CN111339529 A CN 111339529A
- Authority
- CN
- China
- Prior art keywords
- component
- sandbox
- dam
- execution context
- components
- 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
Images
Classifications
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种低代码的业务编排构件运行的管理框架与方法、计算设备及介质。其中的方法包括:DAM启动至少一个构件时,为每个构件分别启动一个沙箱,将各构件加载到各沙箱;由沙箱依据对应构件的执行上下文对该构件与沙箱外部资源的交互进行管理;所述执行上下文是DAM依据各个构件的配置文件所创建;由DAM对构件的生命周期进行管理,并相应对沙箱的资源进行管理。可实现对获得的各个构件在沙箱中的加载、运行等进行管理,提升安全性。
Description
技术领域
本发明涉及计算机信息领域,尤其涉及一种低代码的业务编排构件运行的管理框架与方法、计算设备及介质。
背景技术
市面上主流几个低代码编程技术都已经发展了10多年到20多年,OFBiz理念从1999年开始,Mendix平台从2005开始,Odoo开始于2008年之前。这些框架和技术经过10多年的发展沉淀,框架本身越来越复杂,组件越来越丰富,社区开发者也越来越多,同时也面临着各种问题的极限。
例如,OFBiz项目多年来在各种领域中的广泛使用,框架已经扩展积累了很多高度抽象的业务构件。在保持框架稳定的前提下,一些改进的想法,一些扩展机制还有来源于外部竞争对手的比较等都现实存在着。很多的想法都被要求包含在OFBiz中,但是随着开源项目的发展特别是社区用户和贡献者的分解,OFBiz逐步变的其基础部分很难去改变。
而在低代码编程领域随着AI参与到构件,组件市场决策中,以及随着企业信息化进程的加快,以及智慧物联网操作系统的普及,结合5G和物联网等技术,将带来更多企业急需的信息化改造升级,越来越多企业应用在需要快速开发的同时,更需要能快速迭代的能力,需要实现更方便的构件的编排能力。
在低代码编程领域,如上面提到各个平台对应的各个开放社区,已经积累了很多的开放性的构件,各个构件作为丰富的、开放性的资源存在,可以供各个技术人员根据需要进行下载,使技术人员可方便的获得平台提供的这些构件,并使用获得的构件方便的编排出自己的业务,如流程或应用。
但构件的开放性也带来了安全的要求,在业务编排中,如何对所获得的各个构件的加载、运行进行管理,以确保安全性,是本发明所要解决的技术问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种低代码的业务编排构件运行的管理框架与方法、计算设备及介质,以能对获得的各个构件在沙箱中的加载、运行等进行管理,提升安全性。
本发明提供了一种低代码的业务编排构件运行的管理框架,包括动态构件管理模块DAM、用于加载各构件的各沙箱、Map堆栈,其中:
所述DAM用于将各个构件发送的对其他构件的访问进行解析和转发,以及用于根据业务的编排对所各个构件的生命周期进行管理,以及用于根据各构件的配置文件创建对应的各执行上下文;
所述沙箱用于根据DAM创建的构件的执行上下文为构件在沙箱中配置运行环境;
所述Map堆栈用于存储各个构件的执行上下文。
由上,通过DAM进行构件生命周期的管理,实现对获得的各个构件的加载、运行进行管理,并且通过沙箱的方式,降低了构件运行中对系统安全的威胁、构件之间相互干扰等各种安全问题。且,通过Map堆栈,确保构件与构件之间,构件与系统之间很容易进行交互。
本发明还提供了一种低代码的业务编排构件运行的管理方法,包括:
DAM启动至少一个构件时,为每个构件分别启动一个沙箱,将各构件加载到各沙箱;
由沙箱依据对应构件的执行上下文对该构件与沙箱外部资源的交互进行管理;所述执行上下文是DAM依据各个构件的配置文件所创建;
由DAM对构件的生命周期进行管理,并相应对沙箱的资源进行管理。
由上,通过DAM进行构件生命周期的管理,实现对获得的各个构件的加载、运行进行管理,并且通过沙箱的方式,降低了构件运行中对系统安全的威胁、构件之间相互干扰等各种安全问题。
其中,还包括:通过一Map堆栈维护各构件的所述执行上下文。
由上,通过Map堆栈,确保构件与构件之间,构件与系统之间很容易进行交互。
其中,所述为每个构件分别启动一个沙箱的步骤时包括:
根据构件的配置文件创建该构件的执行上下文;
根据该执行上下文在启动的沙箱中配置运行该构件的环境。
其中,所述相应对沙箱的资源进行管理包括:当构件的生命周期结束、构件被销毁时,释放该沙箱。
其中,所述每个构件发出的对其他构件的访问,由DAM进行解析和转发。
其中,所述由沙箱依据对应构件的执行上下文对该构件与沙箱外部资源的交互进行管理包括:
对构件要发出的所述访问、对接收的来自其他构件的访问进行权限检查。
本发明还提供了一种计算设备,包括:
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行上述各方案任一所述的方法。
本发明还提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行上述各方案中任一所述的方法。
综上所述,本发明的目的在于通过本发明提供的框架、方法,来实现对这些构件进行管理,以使这些构件在加载时、运行时,这些构件,尤其是第三方的构件能够被安全的访问。具体来说,包括但不限于下述有益效果:
1、通过本发明将各构件运行于沙箱中,降低了构件运行中对系统安全威胁,构件之间相互干扰等,提升了安全性。
2、通过Map堆栈,确保构件与构件之间,构件与系统之间很容易进行交互,例如一个构件很容易的通过URI去访问父构件的数据,通过调用构件链的方式调用或者包含方式,能够向下找到当前的构件。
3、本发明通过为各个构件配置各个沙箱(相当于沙箱的分布式分配,而并非如现有技术通常将所有构件运行在同一个沙箱(配置也麻烦,需要资源也多,资源回收技术繁琐)。本发明为各个构件分别构件沙箱,这种类似分布式沙箱的结构,不需大资源去构建沙箱,仅需要时构建,构件生命周期结束后沙箱资源即被回收,在安全的前提下,相对于为全部构件构成的完整业务来构建一个沙箱,本发明的方式降低了构建沙箱所需资源的需求。
附图说明
图1为低代码的业务编排构件运行的管理框架的示意图。
图2为低代码的业务编排构件运行的管理方法的流程示意图。
图3为低代码的业务编排构件运行的管理方法的一具体实施方式的流程示意图。
图4为用于运行低代码的业务编排构件运行的管理方法的计算设备的结构性示意性图。
具体实施方式
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三等”或模块A、模块B、模块C等,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S21、S22……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
本发明在低代码编程技术领域里面,通过动态构件管理模块(DAM,DynamicArtifacts Management)对构件生命周期进行管理,包括加载、运行、卸载的管理;并且,通过各沙箱来使被加载运行的各个构件在各沙箱中运行,以实现安全性;以及通过一Map堆栈来记录各个构件的执行上下文,以使得可通过查找执行上下文方式访问其他构件或被其他构件所访问。通过本发明,实现了对构件的生命周期的管理,并使得构件可以在沙箱这一安全的环境下,与本已有系统里的其他构件进行更安全的访问、交互或控制。下面将结合附图对本发明进行详细说明。
如图1示出了本发明提供的低代码的业务编排构件运行的管理框架,包括DAM、运行各构件的各沙箱、Map堆栈。下面,对该低代码的业务编排构件运行的管理框架进行说明,其中:
各个构件可实现各自的功能,每个构件可以通过一段xml文件实现,该xml文件包含一脚本(Script)或其他代码,该脚本或代码可以是某实体(entities)、界面(screens)、表单(forms)、服务(services)等类型,以在被执行时实现该构件对应的功能,该脚本即构成所述构件。对各个构件的访问,如构件之间的访问方法,可以通过URI调用的方式进行。
DAM用于根据业务的编排对各个构件的生命周期进行管理,例如,根据业务的编排执行何时加载某构件,何时释放某构件,以使所编排的业务的得以实现。具体来说,构件的生命周期指的是构件被触发时所包括的构件的加载、运行状态、待定状态、销毁等过程,DAM根据业务的编排来管理各个构件的生命周期,以在业务需要时调用对应的构件,以及该构件运行结束不再使用时销毁(或称卸载)该构件,以释放沙箱资源、Map堆栈资源等。
DAM还用于根据构件的配置文件(Manifest)创建对应的执行上下文,以使沙箱依据该执行上下文配置运行该构件的环境。
DAM还用于对来自于各个构件的URI进行解析和转发。
各个沙箱,即各个独立的运行环境,被分别创建给各个构件,以使各个构件运行于各个沙箱中(不能随便与外部交互),沙箱提供一个限制该构件对系统资源的访问权限,避免将系统的全部功能和资源无限制的完全暴露给构件。具体来说,当一构件被启动时,就要创建一沙箱,使该构件加载、运行于该沙箱中,并当该构件运行周期结束被销毁时,该沙箱资源被回收。
沙箱通过DAM创建的执行上下文在沙箱中配置运行构件的环境,以实现对应构件的与沙箱外部资源的交互,包括访问、调用等。具体来说,所述执行上下文,即指运行该构件(xml中的代码)的环境,执行上下文包括:所定义的用于访问外部构件的接口参数、可被访问的接口参数,即用于实现与其他构件的交互接口,以及相应权限的声明。通过DAM依据构件的配置文件(Manifest)创建所述执行上下文,沙箱依据该执行上下文配置运行该构件的环境,来实现在沙箱环境下对构件的一些基本信息和应有的权限的管理,包括管理该构件可以访问外部哪些构件,以及具有哪些权限的构件可以访问该构件。
Map堆栈(执行上下文堆栈),存储有各个Map(执行上下文),每个Map里记载有为对应构件创建的执行上下文(Execution Context)。当某构件被加载到沙箱后,为该构件创建的执行上下文被记载到一Map中并入Map堆栈,当该构件被销毁时,对应的Map则出Map堆栈以释放资源。
对应图1所述的框架,如图2示出了本发明提供的低代码的业务编排构件运行的管理方法,包括以下步骤:
S21:当业务编排系统的DAM初始启动一个或多个构件时,为各构件分别创建一个沙箱,将各构件加载到各沙箱。
S22:另一方面,在创建沙箱过程中,将DAM依据各个构件配置文件(Maninfest)所创建的执行上下文压入Map堆栈中,通过Map堆栈维护各构件的执行上下文。
S23:由沙箱依据对应构件的执行上下文对该构件与沙箱外部资源的交互进行管理,例如:
各构件在各所述沙箱内运行,构件需声明访问沙箱外资源或其他构件(如一serveice构件要访问网络访问、读写磁盘构件)时,沙箱通过执行上下文中的声明的信息,如定义的接口、声明的权限来对构件的该访问执行相应的管理。
S24:由DAM对构件的生命周期进行管理,并对沙箱、Map堆栈的资源进行管理。例如对某构件的加载、运行状态、待定状态、销毁等过程进行管理,以及对沙箱的创建、释放进行管理,以及对执行上下文压入Map堆栈或从Map堆栈释放该执行上下文进行管理。
由上,通过本发明,基于各构件运行于沙箱中,不用担心构件运行中对系统安全威胁,构件之间相互干扰等各种安全问题。通过Map堆栈,确保构件与构件之间,构件与系统之间很容易进行交互,例如一个构件很容易的通过URI去访问父构件的数据,通过调用构件链的方式调用或者包含方式,能够向下找到当前的构件。
下面参见图3示出的低代码的业务编排构件运行的管理方法的一具体实施方式,对本发明进一步进行介绍。该例子中,以构件A、构件B、DAM,以及一登入模块为例进行说明。
首先,参照图3示出的流程图,介绍为一构件创建沙箱的过程,具体如下:
S31:当登入模块需要访问构件A时,该模块向外发送一URI,该URI中记载有启动构件A的请求。
S32:DAM接收所述URI,并解析出该URI的地址及指令内容,当确定出指令内容为要启动构件A时,DAM与构件A进行通信,获取构件A的配置文件(Manifest)。其中,manifest文件的本质是xml配置文件,该文件中记载有该构件的配置信息,如所定义的接口参数(访问、交互)信息、声明的权限信息。
S33:DAM启动一沙箱,并将构件A的manifest文件注入到该沙箱,即根据该manifest创建构件A的执行上下文,根据该执行上下文在沙箱中配置运行该构件的环境,包括配置用于访问沙箱外部构件的接口参数、可被访问的接口参数,即定义构件之间的交互接口,以及声明访问的权限等。通过创建所述执行上下文,来实现在沙箱环境下对构件的一些基本信息和应有的权限的管理,以使沙箱可以根据执行上下文管理该构件可以访问外部哪些构件,以及具有哪些权限的构件可以访问该构件。
例如,本例中当构件A为临时任务管理的Service构件,所创建的执行上下文Map可以如下:
Map<String,AuthzAction>authzActionByName=Collections.unmodifiableMap(Stream.of(
new SimpleEntry<>("view",AUTHZA_VIEW),
new SimpleEntry<>("create",AUTHZA_CREATE),
new SimpleEntry<>("update",AUTHZA_UPDATE),
new SimpleEntry<>("delete",AUTHZA_DELETE),
new SimpleEntry<>("all",AUTHZA_ALL)).collect(Collectors.toMap(SimpleEntry::getKey,SimpleEntry::getValue)));
其中,上述定义了"view"、"create"、"update"、"delete"、"all"接口,并为这些接口声明了权限。
另一方面,如图1所示,DAM将所创建的构件A的执行上下文压入Map堆栈中。
S34:在所启动的沙箱中加载构件A,使该构件A在沙箱中并运行。同时DAM执行对构件A的生命周期的管理,以及对沙箱、Map堆栈资源进行管理。
该生命周期管理举例说明如下:例如当构件加载到沙箱并运行后,在超过设定的第一时间(如10秒)该构件未与外部进行过交互,如该构件未被调用,则会将该构件的生命的状态转为待定状态,当被调用时又会转入运行状态,如果该构件处于待定状态超过设定的第二时间(如1天)均未转入运行状态,则销毁该构件,并释放沙箱、以及释放Map堆栈中的对应的Map,以回收资源。
下面继续参照该图3,以步骤S34所启动的构件在其生命周期内需要访问构件B为例,介绍沙箱内的构件与外部交互的方法,具体如下:
S35:当在运行在沙箱中的构件A需要访问构件B,如要启动构件B时,构件A向外发送一URI,该URI中记载有访问构件B的请求。其中,沙箱会对依据执行上下文中所定义的接口信息和声明的权限信息对该URI进行权限检查,以放行或拦截该URI的发送。
S36:当DAM接收所述URI时,解析出该URI的指令内容,当确定出指令内容为构件A要访问构件B时,DAM首先确认MAP堆栈中是否记载有构件B的执行上下文,若有表示已经为构件B构件了沙箱,则执行步骤S40;否则执行下一步。
S37:DAM与构件B进行通信,获取构件B的配置文件(Manifest)文件。
S38:DAM启动一沙箱,并将构件B的manifest文件注入到该沙箱,即根据该manifest创建构件B的执行上下文,根据该执行上下文在沙箱中配置运行该构件的环境,包括配置用于访问沙箱外部构件的接口参数、可被访问的接口参数,即定义构件之间的交互接口,以及声明访问的权限等。
例如,本例中构件B为通知中心的Service构件,它的执行上下文Map可以如下:
Map<String,AuthzAction>authzActionByName=Collections.unmodifiableMap(Stream.of(
new SimpleEntry<>("view",AUTHZA_VIEW),
new SimpleEntry<>("message",AUTHZA_ALL)).collect(Collectors.toMap(SimpleEntry::getKey,SimpleEntry::getValue)))
其中,上述定义了"view"、"message"接口,并为各接口声明了权限。
另一方面,DAM将所创建的构件B的执行上下文压入Map堆栈中。如图1示出了在Map堆栈中示出了依照顺序压入的构件A、构件B的Map。
S39:在所启动的沙箱中加载构件B,使该构件B在沙箱中并运行。同时DAM执行对构件B的生命周期的管理,以及对沙箱、Map堆栈资源进行管理。
S40:在构件B的生命状态处于运行时,当接收到DAM转发的构件A发送的URI时,构件B的沙箱还要对该URI进行权限检查,具体的,沙箱会对依据执行上下文中所定义的接口信息和声明的权限信息对接收的URI进行权限检查,以放行或拦截该URI的接收。
由上,通过本发明,基于各构件运行于沙箱中,不用担心构件运行中对系统安全威胁,构件之间相互干扰等各种安全问题。通过Map堆栈,确保构件与构件之间,构件与系统之间很容易进行交互,例如一个构件很容易的通过URI去访问父构件的数据,通过调用构件链的方式调用或者包含方式,能够向下找到当前的构件。
图4是本发明实施例提供的一种计算设备1500的结构性示意性图,用于运行本发明所述的低代码的业务编排构件运行的管理方法。该计算设备1500包括:处理器1510、存储器1520、通信接口1530、总线1550。
应理解,图4所示的计算设备1500中的通信接口1530可以用于与其他设备之间进行通信。
其中,该处理器1510可以与存储器1520连接。该存储器1520可以用于存储该程序代码和数据。因此,该存储器1520可以是处理器1510内部的存储单元,也可以是与处理器1510独立的外部存储单元,还可以是包括处理器1510内部的存储单元和与处理器1510独立的外部存储单元的部件。
可选的,计算设备1500还可以包括总线1550。其中,存储器1520、通信接口1530可以通过总线1550与处理器1510连接。总线1550可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线1550可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本发明实施例中,该处理器1510可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器1510采用一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
该存储器1520可以包括只读存储器和随机存取存储器,并向处理器1510提供指令和数据。处理器1510的一部分还可以包括非易失性随机存取存储器。例如,处理器1510还可以存储设备类型的信息。
在计算设备1500运行时,所述处理器1510执行所述存储器1520中的计算机执行指令执行上述方法的操作步骤。
应理解,根据本发明实施例的计算设备1500可以对应于执行根据本发明各实施例的方法中的相应主体,并且计算设备1500中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种多样化问题生成方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,均属于本发明保护范畴。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种低代码的业务编排构件运行的管理框架,其特征在于,包括动态构件管理模块DAM、用于加载各构件的各沙箱、Map堆栈,其中:
所述DAM用于将各个构件发送的对其他构件的访问进行解析和转发,以及用于根据业务的编排对所各个构件的生命周期进行管理,以及用于根据各构件的配置文件创建对应的各执行上下文;
所述沙箱用于根据DAM创建的构件的执行上下文为构件在沙箱中配置运行环境;
所述Map堆栈用于存储各个构件的执行上下文。
2.一种低代码的业务编排构件运行的管理方法,其特征在于,包括:
DAM启动至少一个构件时,为每个构件分别启动一个沙箱,将各构件加载到各沙箱;
由沙箱依据对应构件的执行上下文对该构件与沙箱外部资源的交互进行管理;所述执行上下文是DAM依据各个构件的配置文件所创建;
由DAM对构件的生命周期进行管理,并相应对沙箱的资源进行管理。
3.根据权利要求2所述的方法,其特征在于,还包括:
通过一Map堆栈维护各构件的所述执行上下文。
4.根据权利要求3所述的方法,其特征在于,所述为每个构件分别启动一个沙箱的步骤时包括:
根据构件的配置文件创建该构件的执行上下文;
根据该执行上下文在启动的沙箱中配置运行该构件的环境。
5.根据权利要求2或4所述的方法,其特征在于,所述相应对沙箱的资源进行管理包括:当构件的生命周期结束、构件被销毁时,释放该沙箱。
6.根据权利要求2所述的方法,其特征在于,所述每个构件发出的对其他构件的访问,由DAM进行解析和转发。
7.根据权利要求6所述的方法,其特征在于,所述由沙箱依据对应构件的执行上下文对该构件与沙箱外部资源的交互进行管理包括:
对构件要发出的所述访问、对接收的来自其他构件的访问进行权限检查。
8.一种计算设备,其特征在于,包括:
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求2至7任一所述的方法。
9.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机执行权利要求2至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010176259.7A CN111339529B (zh) | 2020-03-13 | 2020-03-13 | 低代码的业务编排构件运行的管理系统、方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010176259.7A CN111339529B (zh) | 2020-03-13 | 2020-03-13 | 低代码的业务编排构件运行的管理系统、方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111339529A true CN111339529A (zh) | 2020-06-26 |
CN111339529B CN111339529B (zh) | 2022-09-30 |
Family
ID=71182337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010176259.7A Active CN111339529B (zh) | 2020-03-13 | 2020-03-13 | 低代码的业务编排构件运行的管理系统、方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111339529B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672213A (zh) * | 2021-08-27 | 2021-11-19 | 优维科技(深圳)有限公司 | 一种基于构件的低代码编排方法及系统 |
CN114816559A (zh) * | 2022-03-07 | 2022-07-29 | 支付宝(杭州)信息技术有限公司 | 模块加载方法、装置、存储介质及电子设备 |
CN115658041A (zh) * | 2022-12-27 | 2023-01-31 | 南京国睿信维软件有限公司 | 基于在线业务流程编排的低代码增强业务实现方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200641607A (en) * | 2005-01-18 | 2006-12-01 | Ibm | Intrusion detection system |
CN103092697A (zh) * | 2010-12-17 | 2013-05-08 | 微软公司 | 用于主存有状态和无状态中间软件组件的多承租人高密度容器服务 |
US20140075567A1 (en) * | 2009-01-28 | 2014-03-13 | Headwater Partners I Llc | Service Processor Configurations for Enhancing or Augmenting System Software of a Mobile Communications Device |
CN104054086A (zh) * | 2012-01-17 | 2014-09-17 | 苹果公司 | 针对一个或多个沙箱化应用程序的文件系统访问 |
CN104375494A (zh) * | 2014-12-02 | 2015-02-25 | 北京奇虎科技有限公司 | 安全沙箱构造方法及装置 |
CN107368339A (zh) * | 2017-07-25 | 2017-11-21 | 上海携程商务有限公司 | 容器入口程序运行方法、系统、设备及存储介质 |
CN108021400A (zh) * | 2017-11-29 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、计算机存储介质及设备 |
CN108377263A (zh) * | 2018-02-02 | 2018-08-07 | 北京杰思安全科技有限公司 | 自适应的私有云沙箱设置方法、设备及介质 |
CN108985086A (zh) * | 2018-07-18 | 2018-12-11 | 中软信息系统工程有限公司 | 应用程序权限控制方法、装置及电子设备 |
CN110197064A (zh) * | 2019-02-18 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 进程处理方法和装置、存储介质及电子装置 |
CN110569096A (zh) * | 2019-08-20 | 2019-12-13 | 上海沣沅星科技有限公司 | 去代码化制作人机交互界面的系统、方法、介质及设备 |
CN110826053A (zh) * | 2019-10-11 | 2020-02-21 | 北京市天元网络技术股份有限公司 | 基于容器的数据沙箱运算结果安全输出方法以及装置 |
CN110825448A (zh) * | 2019-09-18 | 2020-02-21 | 五八有限公司 | 实现多业务模块相互调用的方法、装置、电子设备和存储介质 |
-
2020
- 2020-03-13 CN CN202010176259.7A patent/CN111339529B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200641607A (en) * | 2005-01-18 | 2006-12-01 | Ibm | Intrusion detection system |
US20140075567A1 (en) * | 2009-01-28 | 2014-03-13 | Headwater Partners I Llc | Service Processor Configurations for Enhancing or Augmenting System Software of a Mobile Communications Device |
CN103092697A (zh) * | 2010-12-17 | 2013-05-08 | 微软公司 | 用于主存有状态和无状态中间软件组件的多承租人高密度容器服务 |
CN104054086A (zh) * | 2012-01-17 | 2014-09-17 | 苹果公司 | 针对一个或多个沙箱化应用程序的文件系统访问 |
CN104375494A (zh) * | 2014-12-02 | 2015-02-25 | 北京奇虎科技有限公司 | 安全沙箱构造方法及装置 |
CN107368339A (zh) * | 2017-07-25 | 2017-11-21 | 上海携程商务有限公司 | 容器入口程序运行方法、系统、设备及存储介质 |
CN108021400A (zh) * | 2017-11-29 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、计算机存储介质及设备 |
CN108377263A (zh) * | 2018-02-02 | 2018-08-07 | 北京杰思安全科技有限公司 | 自适应的私有云沙箱设置方法、设备及介质 |
CN108985086A (zh) * | 2018-07-18 | 2018-12-11 | 中软信息系统工程有限公司 | 应用程序权限控制方法、装置及电子设备 |
CN110197064A (zh) * | 2019-02-18 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 进程处理方法和装置、存储介质及电子装置 |
CN110569096A (zh) * | 2019-08-20 | 2019-12-13 | 上海沣沅星科技有限公司 | 去代码化制作人机交互界面的系统、方法、介质及设备 |
CN110825448A (zh) * | 2019-09-18 | 2020-02-21 | 五八有限公司 | 实现多业务模块相互调用的方法、装置、电子设备和存储介质 |
CN110826053A (zh) * | 2019-10-11 | 2020-02-21 | 北京市天元网络技术股份有限公司 | 基于容器的数据沙箱运算结果安全输出方法以及装置 |
Non-Patent Citations (3)
Title |
---|
PATRICK CARTER等: "CuriousDroid: Automated User Interface Interaction for Android Application Analysis Sandboxes", 《INTERNATIONAL CONFERENCE ON FINANCIAL CRYPTOGRAPHY AND DATA SECURITY》 * |
杨世江等: "Java Web构件开发及在监测系统中的应用", 《计算机应用》 * |
沈月东: "Android重打包应用行为分析系统设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672213A (zh) * | 2021-08-27 | 2021-11-19 | 优维科技(深圳)有限公司 | 一种基于构件的低代码编排方法及系统 |
CN114816559A (zh) * | 2022-03-07 | 2022-07-29 | 支付宝(杭州)信息技术有限公司 | 模块加载方法、装置、存储介质及电子设备 |
CN114816559B (zh) * | 2022-03-07 | 2024-07-02 | 支付宝(杭州)信息技术有限公司 | 模块加载方法、装置、存储介质及电子设备 |
CN115658041A (zh) * | 2022-12-27 | 2023-01-31 | 南京国睿信维软件有限公司 | 基于在线业务流程编排的低代码增强业务实现方法 |
CN115658041B (zh) * | 2022-12-27 | 2023-08-22 | 南京国睿信维软件有限公司 | 基于在线业务流程编排的低代码增强业务实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111339529B (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11216256B2 (en) | Determining based on static compiler analysis that execution of compiler code would result in unacceptable program behavior | |
CN111339529B (zh) | 低代码的业务编排构件运行的管理系统、方法及计算设备 | |
Holla et al. | Android based mobile application development and its security | |
Wen et al. | Rise of the planet of serverless computing: A systematic review | |
CN110502222B (zh) | 外发依赖内部基础库的aar方法、装置、介质和设备 | |
US20150149980A1 (en) | Service model-oriented software operation platform and operation method thereof | |
US10936468B1 (en) | System and method of automatic software release termination based on customized reporting static code analysis | |
Armando et al. | Enabling BYOD through secure meta-market | |
Armando et al. | Android permissions unleashed | |
CN108399331A (zh) | 应用进程试用方法和系统 | |
Puder et al. | Exposing native device APIs to web apps | |
Chen et al. | A comparative study of smartphone and smartwatch apps | |
Milicevic et al. | Model-based, event-driven programming paradigm for interactive web applications | |
Ahmadpanah et al. | Securing node-red applications | |
US8738773B2 (en) | Securing event flow in a user interface hierarchy | |
Abbadini et al. | Lightweight cloud application sandboxing | |
Moreira et al. | Supporting adaptable distributed systems with FORMAware | |
Nedeltcheva et al. | Challenges towards modeling and generating infrastructure-as-code | |
Bueno et al. | Quarkus Cookbook | |
Guha et al. | Fission: Secure dynamic code-splitting for JavaScript | |
Abdelrazek et al. | Adaptive security for software systems | |
Hu et al. | Elix: Path-selective taint analysis for extracting mobile app links | |
Salvia et al. | Intents analysis of Android apps for confidentiality leakage detection | |
Vavru et al. | Android programming: Complete application programming guide | |
Labouardy | Hands-On Serverless Applications with Go: Build real-world, production-ready applications with AWS Lambda |
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 |