本发明属于通用软件架构设计领域,尤其涉及基于组件的软件设计的信息分发方法。
背景技术:
继面向对象的设计方法之后,基于组件的软件开发方法(Component-Based Development)正在逐步成为软件设计领域新的趋势。组件是指利用某种编程手段,将人们所关注的却又不便于让最终用户直接操作的细节进行封装,同时对各种业务逻辑规则进行了实现,用于处理用户的内部操作细节。基于组件化设计模式的软件可以用类似搭积木的方式实现程序的组装或者重构,可以缩短开发周期、提高开发效率、增强程序稳定性。
对于多信息接入的应用系统,接入的信息数量繁多,格式也均有不同,在信息接入和使用上,以往的设计方法常以成功接入为目的,软件中多处使用同一数据时需要进行多次接入和解析,造成了资源的浪费;也有着高耦合、重用性和扩展性差的特点。
技术实现要素:
发明目的:针对现有技术中存在的问题,本发明公开了一种柔性化的组件异步信息分发方法,该方法在基于组件的软件设计架构下进行柔性化多线程自动分发信息,可以大幅度提高信息分发的效率和稳定性。
技术方案:本发明公开了一种柔性化的组件异步信息分发方法,其技术方案包括如下步骤:
步骤1、应用系统启动时读取配置文件,根据配置依次加载组件,并获取各组件所订阅的信息流标识(identification,ID);所述配置文件中记录了应用系统所需的组件、组件与信息流和信息通道之间的对应关系;
步骤2、根据配置获取与各组件相关的信息通道标识;
步骤3、为各信息通道建立对应的信息接入线程,并为每个信息接入线程建立专有的信息处理区;
步骤4、为每个信息处理区建立信息分发线程;
步骤5、每个信息分发线程对信息处理区进行监听,当任一信息接入线程有接入信息,对应的信息分发线程对信息处理区中信息进行分析,获取该条接入信息的信息流标识;根据配置文件中的组件与信息流的订阅关系,反向查询订阅该信息流的所有组件;
步骤6、将信息流送入所有符合反向查询条件的组件,实现信息自动分发。
步骤1中配置文件的生成包括如下步骤:
(11)为应用系统中每个组件分配系统内唯一组件标识;
(12)为应用系统中每个信息通道分配系统内唯一信息通道标识;
(13)为应用系统中每种信息流分配系统内唯一信息流标识;
(14)建立应用系统内所有信息通道与信息流的对照关系,建立系统内所有组件对信息流的订阅关系;
(15)根据步骤(14)建立每个组件与信息通道的反向对照关系;
(16)将应用系统中每个组件、组件与信息通道的反向对照关系和组件对信息流的订阅关系记录在配置文件中。
信息接入线程可能接收到无效信息,为除去无效信息,步骤5中,接入信息进入信息处理区前进行信息来源和格式正确性校验,校验成功后进入信息处理区,否则将此接入信息丢弃。
有益效果:与现有技术相比,本发明具有以下优点:1、应用系统获取组件与信息通道、信息流的对应关系采用读取配置文件的方式,便于配置的修改;2、同系统内使用统一的组件标识、信息通道标识和信息流标识,使本发明有很好的兼容性和扩展性,有利于业务的动态扩充;3、各组件接口一致,进行动态自动加载,具有统一的信息接入接口;4、信息接入和分发采用多线程并发处理,将信息接入通道与业务解耦合,可同时响应多种情报的同时接入,并能异步的进行情报与组件间自动一对多、多对一及多对多分发,提高了信息接入及信息分发效率;5、实现了数据来源和去向的有效屏蔽,使得系统内各组件得以便捷获取所需的数据;6、灵活的组件及信息流配置,使得信息的接入通道完全可配,当某一接入信息的通道发生变化时,仅需要调整相应的信息流配置即可;同时支持组成软件组件的灵活配置及信息接入的动态重组,具有很好的可扩展性和信息分发的高效性。
附图说明
图1为本发明技术方案流程图;
图2实施例中组件与信息流订阅关系图;
图3实施例中信息通道与信息流对照关系图;
图4实施例中组件与信息通道、信息流对应关系配置示意图;
图5实施例中组件异步信息分发工作原理示意图。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明。
如图1所示,为本发明技术方案的流程图。本实施例以雷达录取终端显控软件中普遍使用的雷达航迹、点迹情报为例,对本发明技术方案进行详细说明。
步骤1、显控软件在启动时先读取配置文件,根据配置依次加载组件,并获取各组件所订阅的信息流标识。本实施例中配置文件的生成包括如下步骤:
11、为雷达录取终端显控软件中每个组件分配系统内唯一组件标识,用于在系统内唯一区分组件并集中管理;
如系统需接入雷达航迹情报,显示软件必备雷达航迹态势显示组件、雷达航迹表页组件;如系统需接入雷达点迹情报,显示软件必备雷达点迹态势显示组件。这三个组件都是同类系统的通用组件,其标识在同类系统内唯一。本实施例假定界面层组件标识范围为100~199,雷达航迹态势显示组件标识为100;雷达航迹表页组件标识为101;雷达点迹态势显示组件标识为102。
12、为接入系统的每个信息通道分配系统内唯一信息通道标识,用于在系统内唯一区分信息通道并集中管理;
雷达航迹情报通过雷达航迹情报信息通道接入,雷达点迹情报通过雷达点迹情报信息通道接入,以上信息通道在系统内通道号唯一。本实施例中雷达航迹情报接入信息通道标识为10;雷达点迹情报接入信息通道标识为11。
13、为接入系统的每种信息流分配系统内唯一信息标识,用于在系统内唯一区分信息流并集中管理;
雷达航迹情报和雷达点迹情报都属于雷达情报范畴,假定给雷达航迹情报划分的ID范围为0x0500~0x0539,雷达航迹情报一般包括雷达航迹信息、雷达航迹计数、雷达航迹干预回复等,其中雷达航迹信息标识为0x0500,雷达航迹计数信息标识为0x0501,雷达航迹干预回复信息标识为0x0502;雷达点迹情报一般包括雷达点迹信息、雷达点迹计数等,其中雷达点迹信息标识为0x0510,雷达点迹计数信息标识为0x0511。
14、建立系统内所有信息通道与信息流的对照关系,建立系统内所有组件对信息流的订阅关系;
本实施例中的三个组件所需信息流订阅关系如图2所示。其中雷达航迹态势显示组件需订阅雷达航迹信息、雷达航迹计数信息和雷达航迹干预回复信息;雷达航迹表页组件仅需订阅雷达航迹信息和雷达航迹计数信息;雷达点迹态势显示组件需订阅雷达点迹信息和雷达点迹计数信息。信息通道标识与信息流标识的关系图如图3所示,雷达航迹情报信息通道可接入雷达航迹信息、雷达航迹计数信息和雷达航迹干预回复信息。雷达点迹情报信息通道可接入雷达点迹信息和雷达点迹计数信息。
15、根据上述步骤14建立组件与信息通道的反向对照关系,并形成配置文件。
16、以雷达航迹态势显示组件的配置关系为例,形成的整体配置如图4所示。
步骤2、显控软件根据配置获取与各组件相关的信息通道标识,本实施例中三个组件共包括两个信息通道,分别是雷达航迹情报信息通道和雷达点迹情报信息通道。
步骤3、为各信息通道建立对应的信息接入线程,并为每个信息接入线程建立专有的信息处理区;根据步骤2,显控软件将建立雷达航迹情报接入线程和雷达点迹情报接入线程,每个线程配备信息处理区。
步骤4、为每个信息处理区建立信息分发线程,建立信息分发多线程并行处理;对步骤3建立的两个信息处理区,分别建立雷达航迹情报分发线程和雷达点迹情报分发线程。
步骤5、每个信息分发线程对信息处理区进行监听,当任一信息接入线程有接入信息,对应的信息分发线程通过对信息处理区的监听,对信息进行分析,获取该条接入信息的信息流标识,依据配置文件中的组件与信息流的订阅关系,反向查询订阅该信息流的所有组件;本实施例中组件异步信息分发工作原理示例过程如图5所示。以雷达航迹信息(标识为0x0500)为例,该信息流通过雷达航迹情报接入信息通道(标识为10)接入后,进行信息来源和格式正确性校验,校验成功后进入信息处理区,通过反向查询技术查询预先订阅了该信息流的组件,为雷达航迹态势显示组件(标识为100)和雷达航迹表页组件(标识为101)。
步骤6、将信息送入所有符合反向查询条件的组件内部,实现信息自动分发;本实施例中雷达航迹信息通过雷达航迹情报分发线程分发到雷达航迹态势显示组件和雷达航迹表页组件内部。