CN103176795B - 一种基于插件技术在信息分发软件数据过滤中的应用方法 - Google Patents
一种基于插件技术在信息分发软件数据过滤中的应用方法 Download PDFInfo
- Publication number
- CN103176795B CN103176795B CN201310042521.9A CN201310042521A CN103176795B CN 103176795 B CN103176795 B CN 103176795B CN 201310042521 A CN201310042521 A CN 201310042521A CN 103176795 B CN103176795 B CN 103176795B
- Authority
- CN
- China
- Prior art keywords
- information
- plug
- condition
- data
- distribution
- 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.)
- Active
Links
Abstract
本发明具体公开了一种基于插件技术在信息分发软件数据过滤中的应用方法,该方法包括在系统中定义所有种类信息的类型标示符,信源方在发送数据和用户方在订阅数据时指明本数据的信息类型;在系统中定义所有类别订阅条件的标示符,用户方在订阅请求中指明订阅条件;定义订阅条件的数据结构;插件开发;软件集成与调用过程。本发明中利用插件技术,通过设计合理的插件接口和调用规范,再利用插件动态加载和调用机制,实现信息分发软件的条件匹配和过滤功能。当系统中加入新的信息类型时,信息分发软件的宿主程序不需作任何改动,不仅有利于减少软件模块之间的耦合度,而且能够提高信息分发软件的灵活性和可扩展性,从而提高信息分发软件的适用性。
Description
技术领域
本发明涉及软件系统集成与功能扩展技术领域,具体涉及一种基于插件技术在信息分发软件数据过滤中的应用方法。
背景技术
信息分发软件提供以网络为中心的系统动态接入、信息按需分发,是全军共用信息基础设施中的一个核心服务。
信息分发软件能够根据用户提出的订阅请求,对系统中产生的各类信息进行过滤和匹配,最终分发至用户端,从而为用户提供精准的信息服务,根据不同种类信息包含的属性和字段不同,订阅条件与信息类型紧密关联,典型的订阅条件包括,区域、敌我属性、目标国籍、目标类型、目标高度、威胁等级等,且订阅条件可以根据信息类型的增加而扩充,其中不同条件类型的多个条件为“并且”关系,同条件类型的多个子条件为“或者”关系。
由上述可知,依据用户方的订阅条件对接收到的信源信息进行匹配过滤是信息分发软件的一个重要功能,通常情况下,信源发送数据信息时,需要通过对报头的相关属性值进行赋值用以区分不同的信息类型。
目前的研究中,信息分发软件在实现条件匹配过滤时,按照接收到的数据的不同信息类型分别进行解析,然后再进行匹配过滤,如果增加新的数据信息类型,则需要对报头的相关属性值重新设计,并增加相应信息类型的解析程序,最终导致需要修改信息分发软件的业务处理逻辑,而且影响数据过滤功能与信息分发功能之间的紧密耦合,使软件的灵活性和可扩展性大大降低。
因此,基于上述问题,本发明提出一种基于插件技术在信息分发软件数据过滤中的应用方法,通过插件机制实现条件匹配过滤功能,通过利用软件功能之间的解耦,提高软件的灵活性和可扩展性,而且插件的增加和修改操作不会影响到主程序,进而增强主程序的适用性。
发明内容
发明目的:本发明的目的是提供一种基于插件技术在信息分发软件数据过滤中的应用方法,解决现有的信息分发软件中对报文条件匹配功能的高度集成,进而解决软件功能在可扩展性和灵活性方面的不足。
技术方案:为达到上述发明目的,一种基于插件技术在信息分发软件数据过滤中的应用方法,该方法包括以下步骤:
步骤1、在系统中定义所有种类信息的类型标示符,信源方在发送数据和用户方在订阅数据时指明本数据的信息类型。
步骤2、在系统中定义所有类别订阅条件的标示符,用户方在订阅请求中指明订阅条件。
步骤3、定义订阅条件的数据结构。
步骤4、定义插件接口,即信息分发软件的插件接口包含三个接口函数,第一个接口函数用于获取该插件所能处理的信息类型,第二个接口函数用于向插件赋予匹配条件,第三个接口函数用于获取插件的匹配结果。
步骤5、插件开发。
步骤6、软件集成与调用过程。
所述步骤1中,信息类型的种类能扩充。
所述步骤2中,根据不同种类信息包含的属性和字段不同,订阅条件与信息类型之间具有关联性,其中典型的订阅条件包括,区域、敌我属性、目标国籍、目标类型、目标高度、威胁等级且订阅条件能扩展。
所述步骤5中,根据步骤4定义的三个接口函数,插件的开发包括以下步骤,
步骤(5-1)明确该插件能够解析处理的信息类型列表,即编写接口函数1,返回能够处理的信息类型标识符数组和数组长度。
步骤(5-2)利用调用方提供的订阅条件参数(即函数输入参数)对插件进行初始化,即通过接口函数2使插件获得订阅条件参数。
步骤(5-3)获得调用方传入的数据(即函数输入参数),根据上一步骤中获得的订阅条件参数,调用条件匹配接口函数3,返回值表示该数据是否匹配成功。
所述步骤6中,软件集成与调用过程包括以下步骤,
步骤(6-1)信息分发软件宿主程序启动,并调用函数动态装载本地的插件库(动态链接库),调用函数获得接口函数地址。
步骤(6-2)运行过程中,信息分发软件接收各信息源发送的数据。
步骤(6-3)解析数据的信息报头以获得信息类型,根据信息类型选择相应的条件匹配插件,若支持此信息类型的插件不存在,则进行步骤(6-7)。
步骤(6-4)将用户提交的订阅条件作为插件接口函数2的输入参数,对插件进行初始化。
步骤(6-5)插件获得信源的数据后,首先对数据进行解码,然后按照订阅条件列表逐一对数据进行匹配。
步骤(6-6)若存在一个订阅条件不匹配,则立即返回FALSE(错误提示),否则继续与下一订阅条件进行匹配,若同一订阅条件下有多个子条件,则数据信息满足一个子条件,即可继续匹配下一个订阅条件,若匹配完并且满足所有的订阅条件则返回TRUE(正确提示),否则返FALSE(错误提示)。
步骤(6-7)结束。
与现有技术相比,本发明的有益效果在于:本发明中利用插件技术,通过设计合理的插件接口和调用规范,再利用插件动态加载和调用机制,实现信息分发软件的条件匹配和过滤功能。当系统中加入新的信息类型时,只需按照插件接口规范增加能够处理该信息的插件即可,信息分发软件的宿主程序不需作任何改动,不仅有利于减少软件模块之间的耦合度,而且能够提高信息分发软件的灵活性和可扩展性,从而进一步提高信息分发软件的适用性。
附图说明
图1是本发明实施例中分发软件中设计插件条件匹配流程示意图;
图2是本发明实施例中信息分发软件调用插件的软件集成示意图;
图3是一般分发软件中不采用插件进行条件匹配的对比软件集成示意图。
具体实施方式
下面结合附图和具体实施例对本发明所提供的一种基于插件技术在信息分发软件数据过滤中的应用方法做详细说明。
如图1、图2所示,一种基于插件技术在信息分发软件数据过滤中的应用方法,该方法包括以下步骤:
步骤1、在系统中定义所有种类信息的类型标示符,信源方在发送数据和用户方在订阅数据时指明本数据的信息类型。
步骤2、在系统中定义所有类别订阅条件的标示符,用户方在订阅请求中指明订阅条件。
步骤3、定义订阅条件的数据结构,本发明方法采用一种通用的数据结构描述订阅条件,如表1所示(表1为订阅条件数据结构),
其中,子条件DispatchConditionPara描述如表2所示(表2为子条件DispatchConditionPara参数说明),
假设用户在订阅请求中最多包含MAX_CONDITION_NUM个订阅条件,则条件定义如下:
DispathConditionm_Condition[MAX_CONDITION_NUM];
以区域为例说明订阅条件的具体使用方法:
设数组m_Condition的第一个元素为“区域”条件,则m_Condition[0]中条件类型标识符“ConditionType”的取值为订阅条件“区域”所对应的标识符(在步骤二中定义)。区域包括多边形、圆(包含环形、扇形),因此“区域”条件的子条件类型“ConditionSubType”又可取值为“多边形”和“圆(包含环形、扇形)”,若有多个区域则将ConditionSubType赋值为“0”以进行分隔。多边形包含N》3个点的位置信息,每个点的位置信息由经度(Value1)和纬度(Value2)组成。类似地,圆(环形或者扇形)包含3个要素,分别是:圆心位置(经度(Value1)、纬度(Value2))、半径(取值范围Value1《R《Value2,Value1=0则表示是圆,否则为环)、角度(取值范围Value1《θ《Value2,Value1=0且Value2=360则表示是圆,否则为扇形)。
设m_Condition[0]对应的区域信息包含一个三角形和一个圆,则m_Condition[0]中条件参数个数“ParaNum”取值为7(分别对应3个点、一个分隔符0、一个圆心、一个半径、一个角度),对应了数组“Para”中的7个元素。这7个元素包含点、圆心、半径、角度四个子条件类型,由参数“ConditionSubType”的取值来区分。当“ConditionSubType”的取值表示“点”或者“圆心”时,“Value1”和“Value2”分别表示经度和纬度值;当“ConditionSubType”对应的取值表示半径或者角度时,“Value1”和“Value2”分别表示该子条件类型的最小值和最大值所构成的取值范围。
对于订阅条件数组中条件类型标识符“ConditionType”的取值不为“区域”时,则子条件DispatchConditionPara中“ConditionSubType”均取值为0,表示无子条件;“Value1”=“Value2”,表示该条件类型对应的取值。
步骤4、定义插件接口,即信息分发软件的插件接口包含三个接口函数,第一个接口函数用于获取该插件所能处理的信息类型,第二个接口函数用于向插件赋予匹配条件,第三个接口函数用于获取插件的匹配结果,具体接口定义如表3所示(表3为插件接口函数定义),
步骤5、插件开发,根据步骤4定义的三个接口函数,插件的开发包括以下步骤,
步骤(5-1)明确该插件能够解析处理的信息类型列表,即编写接口函数1,返回能够处理的信息类型标识符数组和数组长度。
步骤(5-2)利用调用方提供的订阅条件参数(即函数输入参数)对插件进行初始化,即通过接口函数2使插件获得订阅条件参数。
步骤(5-3)获得调用方传入的数据(即函数输入参数),根据上一步骤中获得的订阅条件参数,调用条件匹配接口函数3,返回值表示该数据是否匹配成功,其中,调用方传入的数据“lpMsgData”用数据结构“DispatchUserMsg”表示,如表4所示(表4为传入的数据结构定义),
其中,信息报头“MSGHEAD”定义如表5所示(表5为信息头结构定义),
步骤6、软件集成与调用过程包括以下步骤,
步骤(6-1)信息分发软件宿主程序启动,并调用LoadLibrary函数动态装载本地的插件库(动态链接库),调用GetProcAddress函数获得接口函数地址。
步骤(6-2)运行过程中,信息分发软件接收各信息源发送的数据。
步骤(6-3)解析数据的信息报头以获得信息类型,根据信息类型选择相应的条件匹配插件,若支持此信息类型的插件不存在,则进行步骤(6-7)。
步骤(6-4)将用户提交的订阅条件作为插件接口函数2的输入参数,对插件进行初始化。
步骤(6-5)插件获得信源的数据后,首先对数据进行解码,然后按照订阅条件列表逐一对数据进行匹配。
步骤(6-6)若存在一个订阅条件不匹配,则立即返回FALSE(错误提示),否则继续与下一订阅条件进行匹配,若同一订阅条件下有多个子条件,则数据信息满足一个子条件,即可继续匹配下一个订阅条件,若匹配完并且满足所有的订阅条件则返回TRUE(正确提示),否则返FALSE(错误提示)。
步骤(6-7)结束。
其中,步骤1中,信息类型的种类能扩充。
步骤2中,根据不同种类信息包含的属性和字段不同,订阅条件与信息类型之间具有关联性,其中典型的订阅条件包括,区域、敌我属性、目标国籍、目标类型、目标高度、威胁等级等,且订阅条件能扩展。
进一步如图3所示,一般分发软件中不采用插件进行条件匹配的对比软件集成示意图,其条件匹配过滤功能集成于信息分发软件中,对接收到的信源的数据信息按顺序进行解析报头、解析报文、条件匹配、返回匹配结果等过程,步骤比较简单,但软件集成度很高,不利于程序的功能扩展,灵活性较差,需要处理新的信息类型时,需要对信息分发软件进行较大的修改,即通过增加相应的信息类型和解析处理程序,然后对信息分发软件重新编译运行。
表6为本发明与无插件的信息分发软件优越性对比,
应当指出,以上所述仅是本发明的优选实施方式,具体实现该技术方案的方法和途径很多,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种基于插件技术在信息分发软件数据过滤中的应用方法,其特征在于,该应用方法包括以下步骤:
步骤1、在系统中定义所有种类信息的类型标示符,信源方在发送数据和用户方在订阅数据时指明本数据的信息类型;
步骤2、在系统中定义所有类别订阅条件的标示符,用户方在订阅请求中指明订阅条件;
步骤3、定义订阅条件的数据结构;
步骤4、定义插件接口,即信息分发软件的插件接口包含三个接口函数,第一个接口函数用于获取该插件所能处理的信息类型,第二个接口函数用于向插件赋予匹配条件,第三个接口函数用于获取插件的匹配结果;
步骤5、插件开发;所述步骤5中,根据步骤4定义的三个接口函数,插件的开发包括以下步骤,
步骤(5-1)明确该插件能够解析处理的信息类型列表,即编写接口函数1,返回能够处理的信息类型标示符数组和数组长度;
步骤(5-2)利用调用方提供的订阅条件参数对插件进行初始化,即通过接口函数2使插件获得订阅条件参数;
步骤(5-3)获得调用方传入的数据,根据上一步骤中获得的订阅条件参数,调用条件匹配接口函数3,返回值表示该数据是否匹配成功;
步骤6、软件集成与调用过程。
2.根据权利要求1所述的基于插件技术在信息分发软件数据过滤中的应用方法,其特征在于:所述步骤1中,信息类型的种类能扩充。
3.根据权利要求1所述的基于插件技术在信息分发软件数据过滤中的应用方法,其特征在于:
所述步骤2中,根据不同种类信息包含的属性和字段不同,订阅条件与信息类型之间具有关联性,其中典型的订阅条件包括,区域、敌我属性、目标国籍、目标类型、目标高度、威胁等级且订阅条件能扩展。
4.根据权利要求1所述的基于插件技术在信息分发软件数据过滤中的应用方法,其特征在于:
所述步骤6中,软件集成与调用过程包括以下步骤,
步骤(6-1)信息分发软件宿主程序启动,并调用函数动态装载本地的插件库,调用函数获得接口函数地址;
步骤(6-2)运行过程中,信息分发软件接收各信息源发送的数据;
步骤(6-3)解析数据的信息报头以获得信息类型,根据信息类型选择相应的条件匹配插件,若支持此信息类型的插件不存在,则进行步骤(6-7);
步骤(6-4)将用户提交的订阅条件作为插件接口函数2的输入参数,对插件进行初始化;
步骤(6-5)插件获得信源的数据后,首先对数据进行解码,然后按照订阅条件列表逐一对数据进行匹配;
步骤(6-6)若存在一个订阅条件不匹配,则立即返回FALSE(错误提示),否则继续与下一订阅条件进行匹配,若同一订阅条件下有多个子条件,则数据信息满足一个子条件,即可继续匹配下一个订阅条件,若匹配完并且满足所有的订阅条件则返回TRUE(正确提示),否则返FALSE(错误提示);
步骤(6-7)结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310042521.9A CN103176795B (zh) | 2013-02-04 | 2013-02-04 | 一种基于插件技术在信息分发软件数据过滤中的应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310042521.9A CN103176795B (zh) | 2013-02-04 | 2013-02-04 | 一种基于插件技术在信息分发软件数据过滤中的应用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103176795A CN103176795A (zh) | 2013-06-26 |
CN103176795B true CN103176795B (zh) | 2016-03-02 |
Family
ID=48636700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310042521.9A Active CN103176795B (zh) | 2013-02-04 | 2013-02-04 | 一种基于插件技术在信息分发软件数据过滤中的应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103176795B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406834A (zh) * | 2015-07-30 | 2017-02-15 | 中兴通讯股份有限公司 | 一种管理应用系统的方法、装置和系统 |
CN107181715B (zh) * | 2016-03-09 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 一种业务校验方法和装置 |
CN108614820B (zh) * | 2016-12-09 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 实现流式源数据解析的方法和装置 |
CN111245872B (zh) * | 2018-11-28 | 2023-10-13 | 北京亿阳信通科技有限公司 | 一种顺序消息过滤分发平台和方法 |
CN109861998B (zh) * | 2019-01-21 | 2021-06-11 | 成都新橙北斗智联有限公司 | 一种基于北斗短报文协议的插件式动态解析系统及方法 |
CN110457024B (zh) * | 2019-07-29 | 2020-09-22 | 南京控维通信科技有限公司 | 基于VUE的前端请求和更新数据的插件iwebData实现方法 |
CN111026735B (zh) * | 2019-12-10 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置、设备及介质 |
CN111859127A (zh) * | 2020-07-13 | 2020-10-30 | 海尔优家智能科技(北京)有限公司 | 消费数据的订阅方法、装置及存储介质 |
CN113706209A (zh) * | 2021-08-31 | 2021-11-26 | 北京达佳互联信息技术有限公司 | 运营数据处理方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477575A (zh) * | 2002-07-26 | 2004-02-25 | �Ҵ���˾ | 从公布/订阅服务接收电子消息的方法和系统 |
CN102035893A (zh) * | 2010-12-23 | 2011-04-27 | 中国农业银行股份有限公司 | 一种服务器主动推送数据的方法和系统 |
CN102033743A (zh) * | 2010-09-02 | 2011-04-27 | 西安赛斐软件科技有限公司 | 一种应用插件扩充模型驱动开发能力的系统及其方法 |
CN102880699A (zh) * | 2012-09-21 | 2013-01-16 | 中国电子科技集团公司第二十八研究所 | 一种基于全局信息集约的态势共享方法 |
-
2013
- 2013-02-04 CN CN201310042521.9A patent/CN103176795B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477575A (zh) * | 2002-07-26 | 2004-02-25 | �Ҵ���˾ | 从公布/订阅服务接收电子消息的方法和系统 |
CN102033743A (zh) * | 2010-09-02 | 2011-04-27 | 西安赛斐软件科技有限公司 | 一种应用插件扩充模型驱动开发能力的系统及其方法 |
CN102035893A (zh) * | 2010-12-23 | 2011-04-27 | 中国农业银行股份有限公司 | 一种服务器主动推送数据的方法和系统 |
CN102880699A (zh) * | 2012-09-21 | 2013-01-16 | 中国电子科技集团公司第二十八研究所 | 一种基于全局信息集约的态势共享方法 |
Non-Patent Citations (2)
Title |
---|
基于SOA架构的信息分发平台的设计与实现;耿海龙等;《智能计算机与应用》;20111030;第1卷(第3期);第17-20页 * |
基于过滤的态势信息分发方法;宛海宁等;《计算机工程与设计》;20090131;第197-199页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103176795A (zh) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103176795B (zh) | 一种基于插件技术在信息分发软件数据过滤中的应用方法 | |
CN102272776B (zh) | 用于型式辨识处理器的总线 | |
US9654577B2 (en) | Techniques to generate mass push notifications | |
US20150199512A1 (en) | Apparatus and method for detecting abnormal behavior | |
US10157089B2 (en) | Event queue management for embedded systems | |
CN110909025A (zh) | 数据库的查询方法、查询装置及终端 | |
CN104166738A (zh) | 数据库查询处理的方法及装置 | |
CN101657793A (zh) | 用于配置防火墙的方法、系统和计算机程序 | |
US20180227352A1 (en) | Distributed applications and related protocols for cross device experiences | |
CN105740405B (zh) | 存储数据的方法和装置 | |
US10313450B2 (en) | Method for transparently connecting augmented network socket operations | |
CN104123173A (zh) | 一种实现虚拟机间通信的方法及装置 | |
US10911469B1 (en) | Dynamic fraudulent user blacklist to detect fraudulent user activity with near real-time capabilities | |
CN101819524B (zh) | Rfid阅读器的访问方法及其接口驱动设备 | |
US8751478B1 (en) | Systems and methods for associating brands with search queries that produce search results with malicious websites | |
CN116028455A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
US7107432B2 (en) | VLIW processor with data spilling means | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
US20190050607A1 (en) | Usb device filtering | |
CN113312675A (zh) | 属性校验方法、装置、电子设备及存储介质 | |
CN109274758B (zh) | 一种请求消息的处理方法及计算设备 | |
CN102656564A (zh) | 降低应用处理中的开销 | |
CN109471595A (zh) | 一种数据读写方法和系统 | |
CN105376273A (zh) | 一种标准化云服务接口及方法 | |
CN115658351B (zh) | 2d拷贝方法、装置、电子设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |