插件加载方法、装置、电子设备、存储介质与流程

文档序号:28920610发布日期:2022-02-16 13:04阅读:97来源:国知局
插件加载方法、装置、电子设备、存储介质与流程

1.本发明涉及计算机技术领域,尤其涉及一种插件加载方法、装置、电子设备、存储介质。


背景技术:

2.插件能够扩展集成系统的功能,被广泛的应用于集成系统。然而,目前集成系统的插件的功能耦合度较高,代码调用混乱,一个插件的修改或者失效往往会影响到其他插件,甚至严重影响整个集成系统的稳定性。


技术实现要素:

3.本发明要解决的技术问题是为了克服现有技术中集成系统的插件耦合度较高的缺陷,提供一种插件加载方法、装置、电子设备、存储介质。
4.本发明是通过下述技术方案来解决上述技术问题:
5.第一方面,提供一种插件加载方法,应用于集成系统,所述集成系统包括多个相互独立的插件,每个插件用于实现一个业务功能,每个插件包括用于实现所述业务功能的执行任务;所述插件加载方法包括:
6.在接收到业务服务请求的情况下,确定用于响应所述业务服务请求的目标插件;
7.激活所述目标插件的执行任务,以由被激活的执行任务启动线程,实现对所述业务服务请求的响应。
8.可选地,所述执行任务包括:内置任务和自定义任务;
9.各个插件的内置任务的逻辑代码相同;
10.所述自定义任务的逻辑代码与所属于的插件的业务功能相对应。
11.可选地,所述内置任务的数量为多个;激活所述目标插件的执行任务,包括:
12.激活多个内置任务中的全部或者部分内置任务,每个被激活的内置任务启动一个线程;
13.和/或,所述自定义任务的数量为多个;激活所述目标插件的执行任务,包括:
14.激活多个自定义任务中的全部或者部分内置任务,每个被激活的自定义任务启动一个线程。
15.可选地,还包括:
16.在接收到针对所述自定义任务的第一修改请求的情况下,根据所述第一修改请求修改所述自定义任务。
17.可选地,所述各个插件还包括配置信息;
18.所述配置信息用于确定所述执行任务的逻辑代码中的可调参数。
19.可选地,还包括:
20.在接收到针对所述配置信息的第二修改请求的情况下,根据所述第二修改请求修改所述配置信息。
21.第二方面,提供一种插件加载装置,应用于集成系统,所述集成系统包括多个相互独立的插件,每个插件用于实现一个业务功能,每个插件包括用于实现所述业务功能的执行任务;所述插件加载方法包括:
22.确定模块,用于在接收到业务服务请求的情况下,确定用于响应所述业务服务请求的目标插件;
23.激活模块,用于激活所述目标插件的执行任务,以由被激活的执行任务启动线程,实现对所述业务服务请求的响应。
24.可选地,所述执行任务包括:内置任务和自定义任务;
25.各个插件的内置任务的逻辑代码相同;
26.所述自定义任务的逻辑代码与所属于的插件的业务功能相对应。
27.可选地,所述内置任务的数量为多个;所述激活模块具体用于:
28.激活多个内置任务中的全部或者部分内置任务,每个被激活的内置任务启动一个线程;
29.和/或,所述自定义任务的数量为多个;激活模块具体用于:
30.激活多个自定义任务中的全部或者部分内置任务,每个被激活的自定义任务启动一个线程。
31.可选地,还包括:
32.第一修改模块,用于在接收到针对所述自定义任务的第一修改请求的情况下,根据所述第一修改请求修改所述自定义任务。
33.可选地,所述各个插件还包括配置信息;
34.所述配置信息用于确定所述执行任务的逻辑代码中的可调参数。
35.可选地,还包括:
36.第二修改模块,用于在接收到针对所述配置信息的第二修改请求的情况下,根据所述第二修改请求修改所述配置信息。
37.第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的插件加载方法。
38.第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的插件加载方法。
39.本发明的积极进步效果在于:本发明实施例中,集成系统加载的插件,与其他插件不存在依赖关系,也即各个插件相互独立,且每个插件只实现一个业务功能,从而一个插件的修改或者失效不会影响到其他插件,不会对整个集成系统造成影响或者影响很小,确保了集成系统运行的稳定性。
附图说明
40.图1为本发明一示例性实施例提供的一种插件加载方法的流程图;
41.图2为本发明一示例性实施例提供的一种插件加载方法的场景示意图;
42.图3为本发明一示例性实施例提供的一种插件加载装置的模块示意图;
43.图4为本发明一示例性实施例提供的一种电子设备的结构示意图。
具体实施方式
44.下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
45.本发明实施例提供一种插件加载方法,该插件加载方法应用于集成系统,集成系统可以但不限于是scada(supervisory control and data acquisition,数据采集与监视控制)系统。集成系统包括多个相互独立的插件,每个插件用于实现一个业务功能,每个插件包括用于实现业务功能的执行任务。各个插件还可以包括配置信息,该配置信息用于确定执行任务的逻辑代码中的可调参数,例如,执行任务的执行频率、执行条件、执行次数等。配置信息可以记录于插件的配置文件中。
46.本发明实施例中,在开发集成系统的插件时,开发人员将集成系统需要扩展的功能拆分为一个插件能够独立实现的最小功能单元,对于每个最小功能单元,编写用于实现该最小功能单元的插件的逻辑代码,使得每个插件只实现一个业务功能,且各个插件相互独立,也即各个插件与其他插件不存在依赖关系。由于每个插件只实现一个业务功能,且各个插件相互独立,实现了对插件的功能解耦、业务隔离,可以对插件进行热插拔,启停一个插件对于其他插件不会产生影响。
47.图1为本发明一示例性实施例提供的一种插件加载方法的流程图,该插件加载方法使用上述开发的插件实现,参见图1,该插件加载方法包括以下步骤:
48.步骤101、在接收到业务服务请求的情况下,确定用于响应业务服务请求的目标插件。
49.不同的业务服务请求,实现的业务功能不同,所需的插件不同。举例来说,对于数据传输的业务服务请求,所需的插件为数据传输插件;对于数据存储的业务服务请求,所需的插件为数据存储插件;对于数据处理的业务服务请求,所需的插件为数据处理插件。
50.在一个实施例中,可以预先配置业务服务请求与插件的对应关系,当接收到业务服务请求时,则根据该对应关系,确定对应于接收到的业务服务请求的目标插件。
51.需要说明的是,一项业务服务请求可以对应一个插件,也可以对应多个插件,本发明实施例对此不作特别限定。
52.步骤102、激活目标插件的执行任务,以由被激活的执行任务启动线程,实现对业务服务请求的响应。
53.本发明实施例中,集成系统加载的插件,与其他插件不存在依赖关系,也即各个插件相互独立,且每个插件只实现一个业务功能,也即每个插件各司其事,各行其是,从而一个插件的修改或者失效不会影响到其他插件,不会对整个集成系统造成影响或者影响很小,确保了集成系统运行的稳定性。另外,相互独立的插件也便于开发维护。
54.在一个实施例中,执行任务包括:内置任务(actor)和自定义任务(task)。各个插件的内置任务的逻辑代码相同;自定义任务的逻辑代码与所属于的插件的业务功能相对应。
55.在插件开发时,将执行任务分为内置任务和自定义任务,内置任务的逻辑代码由插件的开发人员编写,并提供编辑自定义任务的全部或者部分逻辑代码的接口,以供集成系统的运维人员根据实际需求编写或者修改自定义任务的逻辑代码,实现插件的业务功能的个性化定义,功能扩展,满足各种使用场景的需求。
56.需要说明的是,内置任务的数量可以是一个,也可以是多个。同样,自定义任务的数量可以是一个,也可以是多个。
57.在一个实施例中,内置任务的数量为多个,多个内置任务可以被同时激活,以启动多个线程,实现业务多线程执行。其中,每个被激活的内置任务启动一个线程。
58.在一个实施例中,自定义任务的数量为多个,多个自定义任务可以被同时激活,以启动多个线程,实现业务多线程执行。其中,每个被激活的自定义任务启动一个线程。
59.在一个实施例中,为集成系统的运维人员开放自定义任务的修改接口,以便于运维人员对自定义系统的逻辑代码进行修改。具体的,运维人员可以通过该接口发送针对自定义任务的第一修改请求至集成系统,集成系统则在接收到针对自定义任务的第一修改请求的情况下,根据第一修改请求修改自定义任务。
60.在一个实施例中,为集成系统的运维人员开放配置信息的修改接口,以便于运维人员对执行任务的配置信息进行修改。具体的,运维人员可以通过该接口发送针对配置信息的第二修改请求至集成系统,集成系统则在接收到针对配置信息的第二修改请求的情况下,根据第二修改请求修改配置信息。
61.其中,自定义任务的修改接口与配置信息的修改接口可以采用同一个接口,也可以采用两个接口。接口例如可以是页面api(application programming interface,应用程序接口)接口。
62.图2为本发明一示例性实施例提供的一种插件加载方法的场景示意图,图中以文件传输场景为例,通过2个插件的交互,对插件加载的过程作进一步说明。
63.文件传输场景下,文件传输服务,集成framwork(集成),实现文件传输需要至少两个插件,一个部署于client(客户端)用来发送文件的插件,一个部署于server(服务端)用来接收文件的插件。
64.客户端的scada系统在接收到文件传输的业务服务请求时,确定用于响应业务服务请求的目标插件为用来发送文件的插件a,则启动插件a,插件a启动时会激活该插件的actor,多个actor可以同时被激活,被激活的多个actor各自启动一个线程来发送scada的实时数据文件,实现文件的多线程传输,提高文件传输效率。另外,还可以激活一个actor以启动一个线程监控历史数据发送是否畅通,还可以激活一个actor以启动一个线程监控客户端的scada系统的运行状况。
65.根据需要,插件a启动时还激活该插件的task用来保证其他特殊的任务,例如发送scada系统的历史数据文件,actor与task相互独立。
66.服务端服务的scada系统在接收到文件传输的业务服务请求时,确定用于响应业务服务请求的目标插件为用来接收文件的插件b,则启动插件b,插件b启动时会激活该插件的actor,多个actor可以同时被激活,被激活的多个actor各自启动一个线程来接收scada的实时数据文件,实现文件的多线程传输,提高文件传输效率。另外,还可以激活一个actor以启动一个线程回复接收实时数据文件是否畅通,还可以激活一个actor以启动一个线程监控服务端的scada系统的运行状况。
67.根据需要,插件b启动时还激活该插件的task用来保证其他特殊的任务,例如接收scada系统的历史数据文件,并存放到指定目录,记录信息。
68.至此一个完整的文件传输服务启动完成。
69.下面以数据处理场景为例,对插件加载的过程作进一步说明。
70.数据处理场景下,实现数据处理需要一个插件,以该插件部署于服务端的scada系统为例。
71.服务端的scada系统在接收到数据处理的业务服务请求时,确定用于响应业务服务请求的目标插件为用来数据处理的插件c,则启动插件c,插件c启动时会激活该插件的actor,多个actor可以同时被激活,被激活的多个actor各自启动一个线程来处理数据,例如,部分被激活的actor启动线程以处理消费者产生的数据,部分被激活的actor启动线程以处理生产者产生的数据。
72.生产者只是产生一个需要处理的数据,数据量少且处理简单,可以使用一个或者少量被激活的actor用来处理生产者产生的数据即可。消费者产生的数据比较复杂,数据量较多,可以使用多个被激活的actor用来处理消费者产生的数据,还可以激活若干task以处理消费者产生的数据,实现多线程的数据处理,提高数据处理效率。
73.数据处理服务启动完成。
74.在文件传输场景以及数据处理场景,采用不同的插件实现对应的业务功能,由于插件a和插件b相互独立,互不影响,二者之间不会影响双方的业务。其中,actor和/或task的激活时机、数量等激活机理可以定义于插件的配置文件中,以便于插件启动时,根据配置文件中的配置信息激活actor和/或task。
75.与插件加载方法实施例相对应,本发明还提供了插件加载装置的实施例。
76.图3为本发明一示例性实施例提供的一种插件加载装置的模块示意图,该插件加载装置应用于集成系统,所述集成系统包括多个相互独立的插件,每个插件用于实现一个业务功能,每个插件包括用于实现所述业务功能的执行任务;所述插件加载方法包括:
77.确定模块31,用于在接收到业务服务请求的情况下,确定用于响应所述业务服务请求的目标插件;
78.激活模块32,用于激活所述目标插件的执行任务,以由被激活的执行任务启动线程,实现对所述业务服务请求的响应。
79.可选地,所述执行任务包括:内置任务和自定义任务;
80.各个插件的内置任务的逻辑代码相同;
81.所述自定义任务的逻辑代码与所属于的插件的业务功能相对应。
82.可选地,所述内置任务的数量为多个;所述激活模块具体用于:
83.激活多个内置任务中的全部或者部分内置任务,每个被激活的内置任务启动一个线程;
84.和/或,所述自定义任务的数量为多个;激活模块具体用于:
85.激活多个自定义任务中的全部或者部分内置任务,每个被激活的自定义任务启动一个线程。
86.可选地,还包括:
87.第一修改模块,用于在接收到针对所述自定义任务的第一修改请求的情况下,根据所述第一修改请求修改所述自定义任务。
88.可选地,所述各个插件还包括配置信息;
89.所述配置信息用于确定所述执行任务的逻辑代码中的可调参数。
90.可选地,还包括:
91.第二修改模块,用于在接收到针对所述配置信息的第二修改请求的情况下,根据所述第二修改请求修改所述配置信息。
92.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
93.图4是本发明一示例实施例示出的一种电子设备的结构示意图,示出了适于用来实现本发明实施方式的示例性电子设备40的框图。图4显示的电子设备40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
94.如图4所示,电子设备40可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备40的组件可以包括但不限于:上述至少一个处理器41、上述至少一个存储器42、连接不同系统组件(包括存储器42和处理器41)的总线43。
95.总线43包括数据总线、地址总线和控制总线。
96.存储器42可以包括易失性存储器,例如随机存取存储器(ram)421和/或高速缓存存储器422,还可以进一步包括只读存储器(rom)423。
97.存储器42还可以包括具有一组(至少一个)程序模块424的程序工具425(或实用工具),这样的程序模块424包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
98.处理器41通过运行存储在存储器42中的计算机程序,从而执行各种功能应用以及数据处理,例如上述任一实施例所提供的方法。
99.电子设备40也可以与一个或多个外部设备44(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口45进行。并且,模型生成的电子设备40还可以通过网络适配器46与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器46通过总线43与模型生成的电子设备40的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的电子设备40使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
100.应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
101.本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所提供的方法的步骤。
102.其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
103.在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现上述任一实施例提供的方法的步骤。
104.其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
105.虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1