CN114691235A - 一种支持插件间数据自由交互的方法 - Google Patents

一种支持插件间数据自由交互的方法 Download PDF

Info

Publication number
CN114691235A
CN114691235A CN202210285200.0A CN202210285200A CN114691235A CN 114691235 A CN114691235 A CN 114691235A CN 202210285200 A CN202210285200 A CN 202210285200A CN 114691235 A CN114691235 A CN 114691235A
Authority
CN
China
Prior art keywords
plug
ins
request
message
data interaction
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
CN202210285200.0A
Other languages
English (en)
Other versions
CN114691235B (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 Gene Automation Technology Co ltd
Original Assignee
Shanghai Gene Automation 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 Gene Automation Technology Co ltd filed Critical Shanghai Gene Automation Technology Co ltd
Priority to CN202210285200.0A priority Critical patent/CN114691235B/zh
Publication of CN114691235A publication Critical patent/CN114691235A/zh
Application granted granted Critical
Publication of CN114691235B publication Critical patent/CN114691235B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

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 And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种支持插件间数据自由交互的方法,其具体步骤为:由主程序加载数据交互插件,当数据交互插件启动后开始扫描系统内已加载插件,根据插件开放的数据源接口以结构体形式储存在数据交互插件队列中,为后续的请求消息提供查找判断条件;请求插件也可以根据队列存储的内容过滤出要请求的插件数据源;数据交互插件进入等待状态,将接收到的其它插件的请求消息加入请求队列;本发明为了更好的满足插件与插件之间,插件与主程序之间的数据交互,以及后期编译、维护等工作,因此将系统中有关数据交互的处理逻辑剥离出来,以插件的形式单独封装。主程序和插件通过数据交互处理插件开放的公共接口可以查询目标插件提供的数据服务、并请求目标插件的数据服务、订阅目标插件数据服务。

Description

一种支持插件间数据自由交互的方法
技术领域
本发明涉及数据交换方法,尤其涉及一种支持插件间数据自由交互的方法。
背景技术
插件式软件体系结构下插件是可独立开发的程序模块,它能够动态地插入到系统中,并且可以被自由地删除和替换。因此它能够提高软件开发的并行性和开发效率,降低设计开发难度,缩短开发周期。
通常情况下插件之间的数据交互和通信由各自插件管理维护,但是也因此增加了插件之间的耦合度,违背了插件设计之初可以自由删除和替换的理念。或者是统一在主程序下管理和维护,虽然减少了插件之间的耦合,但是随着插件数量的不断增加,插件之间的数据交互频率和交互数据也随之提升,消耗更多的主程序的资源。并且以上方法都有一个共同的缺点就是每次的维护修改都会导致系统的重新编译。
现今插件交互方法不能满足以下要求:
在不改变插件耦合的情况下支持插件与插件之间,插件与主程序之间的通信。
独立于主程序和插件体系之外,减少与插件和主程序之间的耦合。
独立的维护和编译
数据交互和通信调度上,应满足插件对插件,插件对主程序等多种数据交互模式,同时快速、及时响应通信资源分配以及回收工作。
算法上应当满足资源分配管理,快速建立与过程监控,同时能根据交互请求建立对应的通信链接,分配所需要的内存资源。支持高频率、高并发的要求。
发明内容
根据以上技术问题,本发明提供一种支持插件间数据自由交互的方法,其具体步骤为:
1、数据交互插件在启动后扫描系统内已加载的其它请求插件,将请求插件开放的数据源、设置接口函数指针及获取接口函数指针以结构体形式储存在数据交互插件的查阅队列中,为后续的请求消息提供查找判断条件;
2、请求插件根据查阅队列存储的内容过滤出要请求的其它插件下的数据源,向数据交互插件发送请求消息;
3、数据交互插件进入等待状态,将接收到的其它请求插件的请求消息加入请求消息队列;
4、数据交互插件开辟消息处理线程处理请求消息队列内容,主动请求线程处理主动请求消息队列,订阅线程处理请阅请求消息队列后进入等待消息状态,当消息队列有消息进入时消息处理线程根据请求消息类型处理分发到主动请求队列或者订阅请求队列中分别处理。
5、当主动请求队列有消息时,主动请求线程取出主动请求消息队列的消息,根据解析的消息内容执行设置或者获取某个数据源操作成功后根据消息内容存储的请求地址返回请求结果,并将此条消息从当前主动请求队列中移除;
6、当订阅消息队列有消息进入时,订阅线程从订阅请求消息队列取出未处理的消息,根据此次请求消息解析出的内容会开辟出专门用于处理此次订阅请求消息的线程用以循环处理此消息。同时在接收到订阅请求消息停止的信号后时关闭此次订阅线程,并将其从订阅请求消息队列中移除此消息。
所述主程序、数据交互处理插件、其它插件组成系统,所述数据交互处理插件联通主程序和其它插件之间的数据交互处或者其它插件与插件之间的数据交互。所述其它插件为N个,N≥1,所述其它插件为插件1、插件2、插件3………插件N。
所述数据交互处理插件包括控制模块、扫描模块、消息处理模块、消息分发模块,所述控制模块分别和扫描模块、消息处理模块、消息分发模块联通,所述扫描模块和其它插件联通,所述消息分发模块和其它插件联通。
本发明的有益效果为:本发明为了更好的满足插件与插件之间,插件与主程序之间的数据交互,以及后期编译、维护等工作,因此以插件的形式单独封装系统中有关数据交互的处理逻辑。主程序和插件通过数据交互处理插件开放的公共接口可以查询目标插件提供的数据服务、并请求目标插件的数据服务、订阅目标插件数据服务。
本发明功能移植简单,兼容性高,可以快速部署到其它工程内。以插件的实现方法,低耦合、编译和维护难度低。提供一致性高,统一的数据交互接口。本发明采用模块化处理,及时高效的响应请求服务。
附图说明
图1为本发明结构示意图;
图2为发明原理结构图;
具体实施方式
实施例1
主程序、数据交互处理插件、插件数据源组成插件间数据自由交互系统,所述主程序和数据交互处理插件联通,所述数据交互处理插件联通和插件数据源联通,所述插件数据源为N个,N≥1,所述插件数据源为插件1、插件2、插件3………插件N。所述数据交互处理插件包括控制模块、扫描模块、消息处理模块、消息分发模块,所述控制模块分别和扫描模块、消息处理模块、消息分发模块联通,所述扫描模块和其它插件联通,所述消息分发模块和其它插件联通。
插件间数据自由交互系统,其具体使用步骤为:
1、数据交互插件在启动后扫描系统内已加载的其它请求插件,将请求插件开放的数据源、设置接口函数指针及获取接口函数指针以结构体形式储存在数据交互插件的查阅队列中,为后续的请求消息提供查找判断条件;
2、请求插件根据查阅队列存储的内容过滤出要请求的其它插件下的数据源,向数据交互插件发送请求消息;
3、数据交互插件进入等待状态,将接收到的其它请求插件的请求消息加入请求消息队列;
4、数据交互插件开辟消息处理线程处理请求消息队列内容,主动请求线程处理主动请求消息队列,订阅线程处理请阅请求消息队列后进入等待消息状态,当消息队列有消息进入时消息处理线程根据请求消息类型处理分发到主动请求队列或者订阅请求队列中分别处理。
5、当主动请求队列有消息时,主动请求线程取出主动请求消息队列的消息,根据解析的消息内容执行设置或者获取某个数据源操作成功后根据消息内容存储的请求地址返回请求结果,并将此条消息从当前主动请求队列中移除;
6、当订阅消息队列有消息进入时,订阅线程从订阅请求消息队列取出未处理的消息,根据此次请求消息解析出的内容会开辟出专门用于处理此次订阅请求消息的线程用以循环处理此消息。同时在接收到订阅请求消息停止的信号后时关闭此次订阅线程,并将其从订阅请求消息队列中移除此消息。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本发明提到的各个部件为现有领域常见技术,本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (4)

1.一种支持插件间数据自由交互的方法,其具体步骤为:
一、数据交互插件在启动后扫描系统内已加载的其它请求插件,将请求插件开放的数据源、设置接口函数指针及获取接口函数指针以结构体形式储存在数据交互插件的查阅队列中,为后续的请求消息提供查找判断条件;
二、请求插件根据查阅队列存储的内容过滤出要请求的其它插件下的数据源,向数据交互插件发送请求消息;
三、数据交互插件进入等待状态,将接收到的其它请求插件的请求消息加入请求消息队列;
四、数据交互插件开辟消息处理线程处理请求消息队列内容,主动请求线程处理主动请求消息队列,订阅线程处理请阅请求消息队列后进入等待消息状态,当消息队列有消息进入时消息处理线程根据请求消息类型处理分发到主动请求队列或者订阅请求队列中分别处理。
五、当主动请求队列有消息时,主动请求线程取出主动请求消息队列的消息,根据解析的消息内容执行设置或者获取某个数据源操作成功后根据消息内容存储的请求地址返回请求结果,并将此条消息从当前主动请求队列中移除;
六、当订阅消息队列有消息进入时,订阅线程从订阅请求消息队列取出未处理的消息,根据此次请求消息解析出的内容会开辟出专门用于处理此次订阅请求消息的线程用以循环处理此消息。同时在接收到订阅请求消息停止的信号后时关闭此次订阅线程,并将其从订阅请求消息队列中移除此消息。
2.按照权利要求1所述的一种支持插件间数据自由交互的方法,其特征在于所述主程序、数据交互处理插件、其它插件组成系统,所述数据交互处理插件联通主程序和其它插件之间的数据交互处或者其它插件与插件之间的数据交互。
3.按照权利要求1所述的一种支持插件间数据自由交互的方法,其特征在于所述其它插件为N个,N≥1,所述其它插件为插件1、插件2、插件3………插件N。
4.按照权利要求1所述的一种支持插件间数据自由交互的方法,其特征在于所述数据交互处理插件包括控制模块、扫描模块、消息处理模块、消息分发模块,所述控制模块分别和扫描模块、消息处理模块、消息分发模块联通,所述扫描模块和其它插件联通,所述消息分发模块和其它插件联通。
CN202210285200.0A 2022-03-22 2022-03-22 一种支持插件间数据自由交互的方法 Active CN114691235B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210285200.0A CN114691235B (zh) 2022-03-22 2022-03-22 一种支持插件间数据自由交互的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210285200.0A CN114691235B (zh) 2022-03-22 2022-03-22 一种支持插件间数据自由交互的方法

Publications (2)

Publication Number Publication Date
CN114691235A true CN114691235A (zh) 2022-07-01
CN114691235B CN114691235B (zh) 2024-03-22

Family

ID=82138371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210285200.0A Active CN114691235B (zh) 2022-03-22 2022-03-22 一种支持插件间数据自由交互的方法

Country Status (1)

Country Link
CN (1) CN114691235B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360292A (zh) * 2011-09-29 2012-02-22 广东高新兴通信股份有限公司 一种基于插件化接入设备的管理系统
CN102682014A (zh) * 2011-03-14 2012-09-19 腾讯科技(深圳)有限公司 在浏览器上实现的开放式插件管理平台及插件管理方法
CN103645901A (zh) * 2013-12-16 2014-03-19 上海证券交易所 一种基于事件链的用户界面插件化交互方法
US20150007134A1 (en) * 2012-03-16 2015-01-01 Tencent Technology (Shenzhen) Company Limited Method, Apparatus And Computer Storage Medium For Plug-In Management And Control
CN104778042A (zh) * 2015-03-30 2015-07-15 江苏省邮电规划设计院有限责任公司 一种基于事件流处理和插件式开发框架的流数据处理方法
US20160014196A1 (en) * 2014-07-10 2016-01-14 Red Hat Israel, Ltd. Authenticator plugin interface
CN109240758A (zh) * 2018-07-25 2019-01-18 武汉精测电子集团股份有限公司 一种支持插件接口同步异步统一调用的方法及微内核架构
CN109542043A (zh) * 2018-10-31 2019-03-29 武汉华中数控股份有限公司 一种基于插件的数控系统管理方法及装置
CN109901885A (zh) * 2019-01-22 2019-06-18 中电和瑞科技有限公司 一种数据交互方法、插件管理器与计算机可读存储介质
US20210240497A1 (en) * 2020-01-30 2021-08-05 Hewlett Packard Enterprise Development Lp Plugin framework to support zero touch management of heterogeneous infrastructure elements across distributed data centers
CN113867833A (zh) * 2021-09-15 2021-12-31 素泰智能科技(上海)有限公司 一种异构环境下的插件运行方法及系统
CN114064152A (zh) * 2021-11-26 2022-02-18 中船重工(武汉)凌久电子有限责任公司 基于动态加载的嵌入式多核调试系统及其调试方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682014A (zh) * 2011-03-14 2012-09-19 腾讯科技(深圳)有限公司 在浏览器上实现的开放式插件管理平台及插件管理方法
CN102360292A (zh) * 2011-09-29 2012-02-22 广东高新兴通信股份有限公司 一种基于插件化接入设备的管理系统
US20150007134A1 (en) * 2012-03-16 2015-01-01 Tencent Technology (Shenzhen) Company Limited Method, Apparatus And Computer Storage Medium For Plug-In Management And Control
CN103645901A (zh) * 2013-12-16 2014-03-19 上海证券交易所 一种基于事件链的用户界面插件化交互方法
US20160014196A1 (en) * 2014-07-10 2016-01-14 Red Hat Israel, Ltd. Authenticator plugin interface
CN104778042A (zh) * 2015-03-30 2015-07-15 江苏省邮电规划设计院有限责任公司 一种基于事件流处理和插件式开发框架的流数据处理方法
CN109240758A (zh) * 2018-07-25 2019-01-18 武汉精测电子集团股份有限公司 一种支持插件接口同步异步统一调用的方法及微内核架构
CN109542043A (zh) * 2018-10-31 2019-03-29 武汉华中数控股份有限公司 一种基于插件的数控系统管理方法及装置
CN109901885A (zh) * 2019-01-22 2019-06-18 中电和瑞科技有限公司 一种数据交互方法、插件管理器与计算机可读存储介质
US20210240497A1 (en) * 2020-01-30 2021-08-05 Hewlett Packard Enterprise Development Lp Plugin framework to support zero touch management of heterogeneous infrastructure elements across distributed data centers
CN113867833A (zh) * 2021-09-15 2021-12-31 素泰智能科技(上海)有限公司 一种异构环境下的插件运行方法及系统
CN114064152A (zh) * 2021-11-26 2022-02-18 中船重工(武汉)凌久电子有限责任公司 基于动态加载的嵌入式多核调试系统及其调试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李佳锋 等: ""基于工作流引擎的指挥控制软件插件集成方法"", 《第九届中国指挥控制大会论文集中国指挥与控制学会》, 5 July 2021 (2021-07-05), pages 366 - 381 *
王天一 等: ""分布式实时系统数据分发服务DDS技术研究"", 《电子科技》, 31 August 2020 (2020-08-31), pages 40 - 45 *

Also Published As

Publication number Publication date
CN114691235B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
CN101707399B (zh) 电能信息采集方法及系统
CN100487660C (zh) 一种多线程处理器动态内存管理系统及方法
CN101222709B (zh) 一种手机应用程序快速启动的方法
CN102420714A (zh) 测试管理方法、测试管理系统总控制中心及测试管理系统
CN111314212B (zh) 一种基于Netty与插件机制的API网关及控制方法
CN110308987B (zh) 一种更新容器云上分布式训练任务连接参数的方法
CN105808638A (zh) 数据处理方法和系统
CN113937894A (zh) 一种基于云边协同的电力智能终端管理系统及方法
CN114691235B (zh) 一种支持插件间数据自由交互的方法
CN111404818A (zh) 一种面向通用多核网络处理器的路由协议优化方法
CN101944033A (zh) 一种嵌入式系统中动态支持多种协议的装置及方法
CN113515363B (zh) 面向异型任务高并发的多层次数据处理系统动态调度平台
CN113472848A (zh) 一种虚拟机和容器的网络融合方法、装置及相关设备
CN112199432A (zh) 一种基于分布式的高性能数据etl装置及控制方法
CN102130968A (zh) 水资源监控通信系统及方法
WO2023185390A1 (zh) 基站版本下载的方法、网管服务器、基站、设备和介质
CN116974994A (zh) 一种基于集群的高效能文件协作系统
CN114745424B (zh) 一种面向异构网络的多维感知数据采集系统及方法
CN115391034A (zh) 一种基于分布式集群datax的任务处理方法及系统
CN102243652A (zh) 一种数据库连接管理方法及装置
CN112231119B (zh) 一种基于分布式的云管理系统数据中台服务设计方法
CN109508354A (zh) 一种并行处理系统
CN111324473B (zh) 可实现高并发处理交易信息的拍卖交易系统
CN110531724B (zh) 一种基于智能电网调度控制系统的遥测自动采样定义方法
CN114579298A (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