CN103701788B - 一种跨平台软总线的通信装置及软总线 - Google Patents

一种跨平台软总线的通信装置及软总线 Download PDF

Info

Publication number
CN103701788B
CN103701788B CN201310706996.3A CN201310706996A CN103701788B CN 103701788 B CN103701788 B CN 103701788B CN 201310706996 A CN201310706996 A CN 201310706996A CN 103701788 B CN103701788 B CN 103701788B
Authority
CN
China
Prior art keywords
thread
communication
flexible bus
data
data queue
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
Application number
CN201310706996.3A
Other languages
English (en)
Other versions
CN103701788A (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.)
SHENZHEN JINHONGWEI TECHNOLOGY CO LTD
Zhuhai Subehart Energy Technology Co ltd
Original Assignee
SHENZHEN JINHONGWEI 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 SHENZHEN JINHONGWEI TECHNOLOGY CO LTD filed Critical SHENZHEN JINHONGWEI TECHNOLOGY CO LTD
Priority to CN201310706996.3A priority Critical patent/CN103701788B/zh
Publication of CN103701788A publication Critical patent/CN103701788A/zh
Application granted granted Critical
Publication of CN103701788B publication Critical patent/CN103701788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)
  • Stored Programmes (AREA)

Abstract

本发明适用于计算机技术领域,提供了一种跨平台软总线的通信装置及软总线,所述装置包括:通信线程单元,用于维护双网相同业务端口的两个不同的连接;线程池容器,用于作为所述通信线程单元的管理容器;数据队列缓存单元,用于缓存接收的数据队列及发送的数据队列;连接处理器,用于预处理所述数据队列;业务适配器,用于归类所述双网相同业务端口的两个不同的连接及当一网段网络异常时协助网络切换。本发明通过通信线程单元、线程池容器、数据队列缓存单元、连接处理器、业务适配器,实现了通信方式的统一化,易于维护。

Description

一种跨平台软总线的通信装置及软总线
技术领域
本发明属于计算机技术领域,尤其涉及一种跨平台软总线的通信装置及软总线。
背景技术
随着电力软件功能模块化设计的发展,模块之间网络通信交互是必须面对的问题。由于不同开发人员开发不同模块而采用各自风格的通信开发模式,而且当每个开发人员重新开发通信模块时,还会发生多人犯同样错误的问题,从而影响了开发效率。而且由于每个开发人员的编程风格和编程经验的不同,每个人输出的通信代码会存在较大差异,在出现问题的时候较难维护,也会出现多人重复犯同样错误的情况。
综上所述,现有技术中的通信模块差异大,难以维护。
发明内容
本发明实施例的目的在于提供一种跨平台软总线的通信装置,旨在解决现有技术中的通信模块差异大,难以维护的问题。
本发明实施例是这样实现的,一种跨平台软总线的通信装置,所述装置包括:
通信线程单元,用于维护双网相同业务端口的两个不同的连接;
线程池容器,用于作为所述通信线程单元的管理容器;
数据队列缓存单元,用于缓存接收的数据队列及发送的数据队列;
连接处理器,用于预处理所述数据队列;
业务适配器,用于归类所述双网相同业务端口的两个不同的连接及当一网段网络异常时协助网络切换。
本发明实施例还提供了一种软总线,所述软总线包括上述的装置。
本发明实施例与现有技术相比,有益效果在于:通过通信线程单元、线程池容器、数据队列缓存单元、连接处理器、业务适配器,实现了通信方式的统一化,易于维护。
附图说明
图1是本发明实施例提供的跨平台软总线的通信装置的逻辑结构示意图;
图2是本发明实施例提供的跨平台软总线的通信装置的通信线程单元的线程分类示意图;
图3是本发明实施例提供的跨平台软总线的通信装置的线程池容器的示意图;
图4是本发明实施例提供的跨平台软总线的通信装置的线程与连接处理器和适配器关系示意图;
图5是本发明实施例提供的软总线的应用部署示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供的实施方案如下:
请参阅图1至图4,本发明实施例提供了一种跨平台软总线的通信装置,所述装置包括:
通信线程单元101,用于维护双网相同业务端口的两个不同的连接;
线程池容器102,用于作为所述通信线程单元的管理容器;
数据队列缓存单元103,用于缓存接收的数据队列及发送的数据队列;
连接处理器104,用于预处理所述数据队列;
业务适配器105,用于归类所述双网相同业务端口的两个不同的连接及当一网段网络异常时协助网络切换。
本实施例中,通信线程单元101中,将通信线程分为两大类,三个小类,即TCP线程和UDP线程2个大类,TCP服务角色、TCP客户端角色和UDP线程3个小类。每个线程负责维护双网相同业务端口的两个不同的连接(TCP线程)。
本实施例中,线程池容器102,作为各种类型通信线程的管理容器,或称线程管理员。线程池容器102负责对通信线程如TCP线程和UDP线程进行创建、销毁、查询、调度、重用、回收等管理任务。线程池容器102也是软总线同其他软件模块的交互界面,其他模块使用软总线就是通过线程池容器102对外开放的接口来进行的。线程池容器102,将线程池分工作线程池和缓存线程池两个线程池;工作线程池即正在进行通信工作的线程容器,缓存线程池是备用线程容器;当有新的连接建立时,则将所述缓存线程池中的相应线程调度到所述工作线程池中,当有连接断开时,则释放所述工作线程中的相应线程,并将释放的线程回收为缓存线程,调度到所述缓存线程池中。
本实施例中,数据队列缓存单元103,作为每个连接待处理的数据缓存池,用于缓存接收数据队列和发送数据队列,数据队列缓存单元103与TCP发送缓冲和接收缓冲类似,通过缓存接收数据队列和发送数据队列,可确保在数据高峰的时候不会因暂时数据处理能力的不足对数据通信的影响或丢失数据。
本实施例中,连接处理器104,具体用于对数据队列进行维护、操作的数据预处理,也就是数据队列的直接管理者。
本实施例中,数据分为两种业务类型,当同第三方***通信时,采用不带报文头的数据类型,在内部***中采用带报文头的数据类型。在内部***中采用带报文头的数据类型有助于防止非法数据对***的干扰,保证连接的合法性,当有非法的连接时将会被断开。
本实施例中,业务适配器105是专门为支持双网通信而设置的。
所述通信线程单元采用ACE跨平台通信技术。
本实施例中,所述通信线程单元101包括对外提供接口的XPCOM组件。
本实施例中,所述装置还包括:
心跳检测单元,用于发送自定义心跳消息,当在预定时间内未收到响应消息或正常的通信数据包时,则重新建立连接或切换网络。
本实施例中,跨平台软总线的通信装置具体为C/C++语言下的跨平台软总线的通信装置。
本实施例的跨平台软总线的通信装置,采用ACE跨平台通信技术。利用ACE跨平台通信特性,针对ACE机制较复杂,熟练掌握、使用较难的特点,采用面向对象技术对其再封装,再次降低使用复杂性。
本实施例的跨平台软总线的通信装置,采用线程池。ACE不仅对跨平台通信socket编程进行了封装,还使得线程这个概念在各平台上进行了抽象,使得多线程的编程可以非常简单。即使在不支持线程的平台上也能够运行该多线程代码。对socket连接的管理采用线程池方式管理通信线程单元101同其他模块之间的通信通道,有了线程池容器102的管理,socket网络通信资源就能得到很好的管理,避免由于失误造成资源浪费的现象。
本实施例的跨平台软总线的通信装置,采用XPCOM跨平台组件技术。XPCOM是一个跨平台组件模型,它的全称为Cross Platform Component Object Module。XPCOM实现了一个框架(framework),这个框架中,它允许开发者打破单一整体的软件项目,而分解为多个更小的模块化碎片(pieces),这些碎片也即组件(components)。XPCOM组件对外提供接口,对于XPCOM接口,需要考虑2个因素:
(1)、接口与按照契约(Contract)编程:一个接口在组件与客户程序之间达成契约。并没有任何强制措施保证认同这个契约, 但是忽略它会是致命的。在基于组件的编程中, 组件保证它提供的接口是不变的。不同版本的组件都要提供同样的访问方法。这就与使用它的客户程序达成了一种契约. 从这种角度来说, 基于组件的编程通常也称为按照契约编程。
(2)接口与封装:组件边界之间的抽象对软件的可维护性与可重用性是至关重要的。
本实施例的跨平台软总线的通信装置,采用面向对象技术,利用面向对象的三个基本特征(封装、继承、多态)可以使软件实现易维护、高质量、高效率、易扩展的目的和好处。同时由于ACE和XPCOM也都采用的面向对象技术,所以软总线采用面向对象技术也可以使软总线从整体框架上看是一个面向对象技术的聚合体,实现结构清晰,代码整洁的效果。
本实施例的跨平台软总线的通信装置,支持双网技术。电力软件特别是监控软件,为了保证通信可靠性,通常采用双网架构。软总线支持双网就能保证程序模块在一个网段瘫痪的情况下无缝切换到另一个网段运行,不丢失数据包,从而保证通信可靠性。
本实施例的跨平台软总线的通信装置,利用心跳检测单元。可判断TCP连接是否稳定,在通道闲时发送自定义心跳,对方收到后马上回复心跳。如果在规定的时间段内未能收到对方的心跳信息或正常通信数据包,则判断该连接已经断掉,自动重新建立连接或切换网段。
本实施例的跨平台软总线的通信装置,采用双数据类型模式。一种数据类型作为***内部数据,带内部数据报文头(对内通信,支持双网);另一种数据类型作为同第三方通信数据格式(对外通信,不支持双网),不带数据报文头,这个在连接建立后确定。
本实施例的跨平台软总线的通信装置,可以应用于以下场景:电网调度自动化***主站***各服务模块之间的通信中间件;配电自动化***主站***各服务模块之间的通信中间件;变电站自动化***主站***各服务模块之间的通信中间件;集控站主站***各服务模块之间的通信中间件;其他监控***各服务模块之间的通信中间件。
本实施例的跨平台软总线的通信装置,可作为动态库和***软件一起部署到服务器或PC上,在***软件需要进行网络通信时,向软总线请求创建网络连接,即向软总线中的线程管理员请求调度线程并进行相应的连接处理。
本实施例提供的跨平台软总线的通信装置,采用组件技术、单元化技术和面向对象技术,以动态库的形态提供给开发人员和运行环境,从而实现解决电力软件单元化开发过程中对于通信功能的跨平台和重用要求问题的目的。跨平台技术保证软件能在混合平台环境下运行。
本实施例提供的跨平台软总线的通信装置,使用者只需要使用软件对外提供的接口就可以非常方便地进行网络编程,将通信容错处理等工作交给软总线内部处理,保证不会因通信原因引起健壮性降低。
本发明实施例还提供了一种软总线,所述软总线包括上述的装置。
图5示意了本实施例提供的软总线在软件架构中的部署位置,软总线作为动态库和***软件一起部署到服务器或PC上,在***软件需要进行网络通信时,向软总线请求创建网络连接,即向软总线中的线程管理员请求调度线程并进行相应的连接处理。
本发明的跨平台软总线的通信装置及软总线,通过通信线程单元、线程池容器、数据队列缓存单元、连接处理器、业务适配器,实现了通信方式的统一化,易于维护。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种跨平台软总线的通信装置,其特征在于,所述装置包括:
通信线程单元,用于维护双网相同业务端口的两个不同的连接;
线程池容器,用于作为所述通信线程单元的管理容器;
数据队列缓存单元,用于缓存接收的数据队列及发送的数据队列;
连接处理器,用于预处理所述数据队列;
业务适配器,用于归类所述双网相同业务端口的两个不同的连接及当一网段网络异常时协助网络切换;
所述通信装置,采用双数据类型模式;一种数据类型作为***内部数据,带内部数据报文头;另一种数据类型作为同第三方通信数据格式,不带数据报文头;
所述通信线程单元包括TCP线程和UDP线程;
所述线程池容器用于对所述TCP线程和UDP线程进行创建、销毁、查询、调度、重用或回收;
所述线程池容器包括工作线程池和缓存线程池;
当有新的连接建立时,则将所述缓存线程池中的相应线程调度到所述工作线程池中,当有连接断开时,则释放所述工作线程中的相应线程,并将释放的线程调度到所述缓存线程池中;
所述通信线程单元采用ACE跨平台通信技术;
所述通信线程单元包括对外提供接口的XPCOM组件;
所述装置还包括:
心跳检测单元,用于发送自定义心跳消息,当在预定时间内未收到响应消息或正常的通信数据包时,则重新建立连接或切换网络。
2.一种软总线,其特征在于,所述软总线包括权利要求1所述的装置。
CN201310706996.3A 2013-12-20 2013-12-20 一种跨平台软总线的通信装置及软总线 Active CN103701788B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310706996.3A CN103701788B (zh) 2013-12-20 2013-12-20 一种跨平台软总线的通信装置及软总线

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310706996.3A CN103701788B (zh) 2013-12-20 2013-12-20 一种跨平台软总线的通信装置及软总线

Publications (2)

Publication Number Publication Date
CN103701788A CN103701788A (zh) 2014-04-02
CN103701788B true CN103701788B (zh) 2017-09-26

Family

ID=50363185

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310706996.3A Active CN103701788B (zh) 2013-12-20 2013-12-20 一种跨平台软总线的通信装置及软总线

Country Status (1)

Country Link
CN (1) CN103701788B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106325991B (zh) * 2016-08-19 2020-04-03 东软集团股份有限公司 流程引擎的指令调度方法及装置
CN110572436B (zh) * 2019-08-12 2020-09-22 浙江讯盟科技有限公司 多地跨集群的服务器部署方法及***
CN111555800B (zh) * 2020-05-15 2021-07-20 北京光润通科技发展有限公司 一种千兆双光口服务器适配器
CN116821944B (zh) * 2023-08-31 2023-11-14 中电安世(成都)科技有限公司 一种基于数据元件的数据处理方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101097653A (zh) * 2007-07-17 2008-01-02 东北大学 电能质量与电力***故障检测录波装置及方法
CN101710734A (zh) * 2009-11-06 2010-05-19 深圳南瑞科技有限公司 变电站监控双网切换设备
CN102957739A (zh) * 2012-02-08 2013-03-06 深圳市金宏威技术股份有限公司 用于电动汽车充电站监控***中的通信方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101097653A (zh) * 2007-07-17 2008-01-02 东北大学 电能质量与电力***故障检测录波装置及方法
CN101710734A (zh) * 2009-11-06 2010-05-19 深圳南瑞科技有限公司 变电站监控双网切换设备
CN102957739A (zh) * 2012-02-08 2013-03-06 深圳市金宏威技术股份有限公司 用于电动汽车充电站监控***中的通信方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《一个基于ACE的微总线的设计与实现》;程德蓉;《重庆科技学院学报(自然科学版)》;20061230;第8卷(第4期);第77-80页 *
《基于软总线的微总线研究及在远程教学平台的应用》;程德蓉;《中国优秀硕士学位论文全文库》;20071115(第5期);正文第3页第1.2.2节、第7页第1.2.4节-第8页第1.4节、第9页第2.1节、第13页第3.1节-第16页最后一段、第29页第5.1.2节-第36页最后一段、第44页第6.2.1节及附图2.1、图6.2 *

Also Published As

Publication number Publication date
CN103701788A (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
CN102377814B (zh) 针对嵌入式操作***的远程协助服务方法
CN104243481B (zh) 一种用电信息采集前置数据处理的方法及***
CN103701788B (zh) 一种跨平台软总线的通信装置及软总线
CN104461575B (zh) 一种网页脚本语言跨移动操作***平台原生接口调用的装置及方法
CN101697536B (zh) 穿透正向物理隔离装置大数据量实时传输的方法
CN104683352A (zh) 一种具有双通道摆渡的工业通讯隔离网闸
CN102946376B (zh) 一种异步通讯的实现方法
CN107608755A (zh) 为了优化群集特定配置的使用而按进程类型在群集之间分割进程
CN104038390B (zh) 一种基于netlink的linux服务器集群统一外设事件监听方法
CN103618741A (zh) 一种tcp长连接通信***及方法
CN101741912A (zh) 一种处理计算任务的方法、网络设备及分布式网络***
CN106775993A (zh) 一种物理机迁移至云计算平台的方法及***
CN104111874A (zh) 一种云计算环境中虚拟主机的高并发高可靠负载均衡软件架构设计
CN105282128A (zh) 一种基于长连接的双向调用方法及***
CN107995043A (zh) 基于混合云平台的应用灾备***及灾备配置方法
CN105321121A (zh) 基于电力云平台的用电信息采集***
CN102314382A (zh) 一种紧急探查***信息的方法及模块
CN203135901U (zh) 加密机管理装置
CN106843963A (zh) K‑ux操作***上自动部署java应用程序的装置及方法
CN104836831B (zh) 一种用于物联网的物体服务方法
CN106789099A (zh) 基于pcie的高速隔离网络方法及终端
CN104393985A (zh) 一种基于多网卡技术的密码机
CN205986955U (zh) 智慧城市物联网云数据对接管理装置
CN104217314A (zh) 路由信息抓取方法和装置
CN116192863B (zh) 微服务流量处理方法、dpu服务网格部署方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 518000 Guangdong city of Shenzhen province Nanshan District South Road No. 9 nine Wei new software park building 8 floor 701-712 room 7

Patentee after: Shenzhen Jinhongwei Technology Co.,Ltd.

Address before: 518000 Guangdong city of Shenzhen province Nanshan District South Road No. 9 nine Wei new software park building 8 floor 701-712 room 7

Patentee before: SHENZHEN GOLDEN HIGHWAY TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200201

Address after: 401-410, floor 4, building 5, No.66, Keji 1st Road, Tangjiawan Town, Xiangzhou District, Zhuhai City, Guangdong Province

Patentee after: Zhuhai subehart Energy Technology Co.,Ltd.

Address before: 518000 Guangdong city of Shenzhen province Nanshan District South Road No. 9 nine Wei new software park building 8 floor 701-712 room 7

Patentee before: Shenzhen Jinhongwei Technology Co.,Ltd.