一种基于工厂方法模式和动态加载模块的数据通信方法技术

技术编号:21484868 阅读:27 留言:0更新日期:2019-06-29 06:33
本发明专利技术公开了一种基于工厂方法模式和动态加载模块的数据通信方法,包括如下步骤:获取数据输入端的第一通信协议信息和数据输出端的第二通信协议信息;工厂根据所述第一通信协议信息和第二通信协议信息选择加载相应的通信功能模块的动态链接库;所述动态链接库根据读取到的参数点配置文件信息、第一通信协议信息和第二通信协议信息,分别构造出对应于所述第一通信协议和第二通信协议的输入端通信模块和输出端通信模块;激活处理数据的后台线程,以将所述输入端通信模块自所述数据输入端获取的实时数据进行封装,并通过所述数据输出端通信模块将封装后的数据经由所述数据输出端发送至目的地址。

【技术实现步骤摘要】
一种基于工厂方法模式和动态加载模块的数据通信方法
本专利技术涉及一种数据通信方法,尤其涉及一种基于工厂方法模式和动态加载模块的数据通信方法。
技术介绍
工厂方法模式,又称工厂模式、多态工厂模式和虚拟构造器模式,是通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象。工厂方法模式把具体产品的创建推迟到工厂类的子类(具体工厂)中,此时工厂类不再负责所有产品的创建,而只是给出具体工厂必须实现的接口。在添加新的产品时,无需修改工厂类逻辑,而是扩展一个新的工厂子类即可。这样在保持了封装对象创建过程的优点的同时,依然符合开放封闭原则。长期以来,对有关数据通信功能的需求,一直是电力、能源等行业的重点和痛点。在目前的行业内,针对各类国际/国内的标准通信规约(协议),不乏成熟稳定的解决方案。但依然存在以下两个主要缺点:1.只能适配一种或少数几种通信规约,无法扩展。一旦出现新的通信规约,只能对软件产品进行重构甚至重新开发。2.采用简单工厂模式来匹配不同的通信规约。这一类产品能够适配的通信规约数量也许不算很少,但仍无法避免简单工厂模式自身的缺陷(不符合开放封闭原则),即出现新的通信规约时,需要修改工厂类逻辑,需要改动产品代码并重新编译。如此一来,将无法保证产品原有的性能及稳定性。
技术实现思路
本专利技术针对现有技术的弊端,提供一种基于工厂方法模式和动态加载模块的数据通信方法。本专利技术所述基于工厂方法模式和动态加载模块的数据通信方法,在数据输入端执行第一通信协议,在数据输出端执行第二通信协议,包括如下步骤:步骤一,获取数据输入端的第一通信协议信息和数据输出端的第二通信协议信息;步骤二,工厂根据所述第一通信协议信息和第二通信协议信息选择加载相应的通信功能模块的动态链接库;步骤三,所述动态链接库根据读取到的参数点配置文件信息、第一通信协议信息和第二通信协议信息,分别构造出对应于所述第一通信协议和第二通信协议的输入端通信模块和输出端通信模块;步骤四,激活处理数据的后台线程,以将所述输入端通信模块自所述数据输入端获取的实时数据进行封装,并通过所述数据输出端通信模块将封装后的数据经由所述数据输出端发送至目的地址。本专利技术所述的基于工厂方法模式和动态加载模块的数据通信方法的步骤一中,通过读取主配置文件来获取第一通信协议信息和第二通信协议信息。本专利技术所述的基于工厂方法模式和动态加载模块的数据通信方法的步骤二中,工厂根据所述第一通信协议信息和第二通信协议信息按预先指定的路径查找到既有的、相应的通信功能模块的动态链接库。本专利技术所述的基于工厂方法模式和动态加载模块的数据通信方法的步骤二中,若预先指定的路径中不存在既有的、相应的通信功能模块的动态链接库,则依据工厂中预定的规范、以及第一通信协议信息和第二通信协议信息而编译出新的动态链接库,并将该新的动态链接库按所述预先指定的路径存放。本专利技术所述的基于工厂方法模式和动态加载模块的数据通信方法的步骤四中,所述后台线程以主动请求或者订阅方式自所述输入端通信模块获取实时数据。本专利技术所述的基于工厂方法模式和动态加载模块的数据通信方法的步骤四中,根据所述主配置文件的参数信息确定是否对实时数据进行二次处理。本专利技术所述的基于工厂方法模式和动态加载模块的数据通信方法的步骤四中,根据所述数据输出端通信模块对数据格式的要求对实时数据进行封装。本专利技术所述的基于工厂方法模式和动态加载模块的数据通信方法中,能够适配多类通信协议并进行数据交互,可以解决现有技术中为了适配新的通信协议而需要修改并重新编译代码的扩展性差的缺陷。附图说明图1为本专利技术所述基于工厂方法模式和动态加载模块的数据通信方法的流程示意图;图2为应用本专利技术所述基于工厂方法模式和动态加载模块的数据通信方法将Modbus协议读取的数据写入MySQL数据库的流程示意图;图3为应用本专利技术所述基于工厂方法模式和动态加载模块的数据通信方法实现新增加Oracle功能模块动态链接库,并将104协议读取的数据写入Oracle数据库的流程示意图。具体实施方式下面结合附图对本专利技术做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。如图1所示,本专利技术所述的基于工厂方法模式和动态加载模块的数据通信方法,是为了应对数据输入端的通信协议与数据输出端的通信协议不同的情况,即在数据输入端执行第一通信协议,在数据输出端执行第二通信协议。于是,为了能够适配多类通信协议并进行数据交互,如图1所示,本专利技术包括如下步骤:步骤101,获取数据输入端的第一通信协议信息和数据输出端的第二通信协议信息。在本步骤101中,可通过读取主配置文件来获取第一通信协议信息和第二通信协议信息。下表1中为主配置文件信息结构,从表中可以看出,通过其中的特定的字段名所对应的含义信息,可以实现通过读取主配置文件来获取第一通信协议信息和第二通信协议信息。表1:字段名含义INPUT/BasePath第一通信协议(多个)配置文件的子文件夹IO/Output第二通信协议类型配置文件的文件名步骤102,工厂根据所述第一通信协议信息和第二通信协议信息选择加载相应的通信功能模块的动态链接库。本步骤中,工厂根据所述第一通信协议信息和第二通信协议信息按预先指定的路径查找到既有的、相应的通信功能模块的动态链接库。若找到该既有的、相应的通信功能模块的动态链接库,则进行加载,以备后续步骤使用。若不存在此类动态链接库,则可给出相应的提示。但是,本专利技术是为了实现不同通信协议之间的数据交互,那么可重建相应的新的动态链接库,即若预先指定的路径中不存在既有的、相应的通信功能模块的动态链接库,则依据工厂中预定的规范、以及第一通信协议信息和第二通信协议信息而编译出新的动态链接库,并将该新的动态链接库按所述预先指定的路径存放。也就是说,如果出现尚未开发的通信协议,只需要依据工厂中已约定的规范,针对该协议进行开发测试,完毕后编译成动态链接库而进行加载调用,之后进行正常的数据交互及处理流程。所有的操作步骤,均不涉及对现有产品代码的修改和编译,不会影响产品原有的各类特性。步骤103,所述动态链接库根据读取到的参数点配置文件信息、第一通信协议信息和第二通信协议信息,分别构造出对应于所述第一通信协议和第二通信协议的输入端通信模块和输出端通信模块。如下表2所示,参数点配置文件结构中,不同的列对应了不同的信息,表2:列A参数点索引列B参数点在第一通信协议中的地址列C参数点在第二通信协议中的地址列D参数点描述列E参数点倍率列F参数点偏移量列G往后附加信息,由具体的通信协议进行解析本步骤中,通过读取参数点配置文件信息来获取参数点的信息列表,以供构造输入端通信模块和输出端通信模块时使用。前述被加载的动态链接库通过读取通信协议子配置文件中的信息(文件路径从表1中读取),结合已读入的参数点信息,初始化构造各自对应的通信模块。步骤104,激活处理数据的后台线程,以将所述输入端通信模块自所述数据输入端获取的实时数据进行封装,并通过所述数据输出端通信模块将封装后的数据经由所述数据输出端发送至目的地址。本步骤中,所述后台线程以主动请求或者订阅方式自所述输入端通信模块获取实时数据。本步骤中,至于对实时数据是否进行二次处理,例如是否进行倍率处理或者偏移量处理,还需根据具体的通信本文档来自技高网...

【技术保护点】
1.一种基于工厂方法模式和动态加载模块的数据通信方法,在数据输入端执行第一通信协议,在数据输出端执行第二通信协议,其特征在于,包括如下步骤:步骤一,获取数据输入端的第一通信协议信息和数据输出端的第二通信协议信息;步骤二,工厂根据所述第一通信协议信息和第二通信协议信息选择加载相应的通信功能模块的动态链接库;步骤三,所述动态链接库根据读取到的参数点配置文件信息、第一通信协议信息和第二通信协议信息,分别构造出对应于所述第一通信协议和第二通信协议的输入端通信模块和输出端通信模块;步骤四,激活处理数据的后台线程,以将所述输入端通信模块自所述数据输入端获取的实时数据进行封装,并通过所述数据输出端通信模块将封装后的数据经由所述数据输出端发送至目的地址。

【技术特征摘要】
1.一种基于工厂方法模式和动态加载模块的数据通信方法,在数据输入端执行第一通信协议,在数据输出端执行第二通信协议,其特征在于,包括如下步骤:步骤一,获取数据输入端的第一通信协议信息和数据输出端的第二通信协议信息;步骤二,工厂根据所述第一通信协议信息和第二通信协议信息选择加载相应的通信功能模块的动态链接库;步骤三,所述动态链接库根据读取到的参数点配置文件信息、第一通信协议信息和第二通信协议信息,分别构造出对应于所述第一通信协议和第二通信协议的输入端通信模块和输出端通信模块;步骤四,激活处理数据的后台线程,以将所述输入端通信模块自所述数据输入端获取的实时数据进行封装,并通过所述数据输出端通信模块将封装后的数据经由所述数据输出端发送至目的地址。2.如权利要求1所述的基于工厂方法模式和动态加载模块的数据通信方法,其特征在于,所述步骤一中,通过读取主配置文件来获取第一通信协议信息和第二通信协议信息。3.如权利要求1所述的基于工厂方法模式和动态加载模块的数据通信方法,其特征在于,所...

【专利技术属性】
技术研发人员:刘兴革佘秋野
申请(专利权)人:利兴凯北京能源系统技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1