一种基于TCP通信协议的分布式异构语言间的通讯方法技术

技术编号:36535443 阅读:13 留言:0更新日期:2023-02-01 16:20
一种基于TCP通信协议的分布式异构语言间的通讯方法,属于异构语言通讯技术领域,解决了在跨编程语言和跨平台的工业软件之间进行消息通讯以及响应的问题,本发明专利技术解决该技术问题的要点为:设计通讯中消息数据的格式、响应数据的格式和通讯模块,通过消息数据的格式、响应数据的格式和通讯模块进行消息传输,在同平台上,异构语言间的通讯通过TCP通讯协议传递特定格式的消息字符串与响应字符串完成,在不同平台上,将不同软件之间的消息通讯剥离成单独的通讯中间件,实现异构语言的软件与中间件之间的通讯,本发明专利技术主要用于实现在异构语言的工业软件之间进行消息通讯以及响应。的工业软件之间进行消息通讯以及响应。的工业软件之间进行消息通讯以及响应。

【技术实现步骤摘要】
一种基于TCP通信协议的分布式异构语言间的通讯方法


[0001]本专利技术涉及异构语言通讯
,特别是涉及一种基于TCP通信协议的分布式异构语言间的通讯方法。

技术介绍

[0002]如今的工业生产,常常需要多个工业软件之间进行消息的通讯以及响应,目前大多数不同工业软件由不同语言编写,也有可能是运行在不同的操作系统上,而单一软件系统的功能往往已经十分完善,为了消息通信而对软件进行重构并不现实。因此目前非常需要解决在跨编程语言和跨平台的工业软件之间进行消息通讯以及响应的问题。
[0003]传统的异构语言通讯是以文件作为消息存储的中间件,在文件目录中生成两个文件,分别对应消息队列和响应队列的读写,命令发送方对消息文件有写权而对响应文件有读权;命令接收及响应方对命令文件有读权而对响应文件有写权。消息发送方将消息写入到消息文件,并监听响应文件的改变;接收方始终监听消息文件的改变,执行每一条新加入到消息文件中的命令,并且将结果写入到相应队列中,如此完成消息间的传递与响应。对于跨平台的需求,文件的方法需要不同的平台共同挂载同一块磁盘存储区,在此磁盘存储区中设立消息和响应文件。
[0004]传统的以文件作为异构语言软件之间消息通讯媒介的数据流程如图1所示,这种对于磁盘频繁读写的方法消息传递效率较低。而对于消息的响应,由于软件间是通过检测文件的改变来响应消息,不同语言间对于文件读写锁的控制也不相同,有可能造成消息丢失的错误,进而造成消息队列与响应队列不匹配,此时需要发送方在超时后重新发送命令,极大的降低了系统通讯效率,而在消息传递密集的实例中,在长时间的通讯后消息文件和响应文件都会变得相当庞大,需要单独开发旧消息以及响应的清除模块,增加了软件的复杂度。而考虑到跨平台,不同系统之间对于文件内编码格式的兼容性各不相同,异构软件之间依然需要对平台进行判断,费时费力。

技术实现思路

[0005]本专利技术提出一种基于TCP通信协议的分布式异构语言间的通讯方法,解决了现有技术存在的在跨编程语言和跨平台的工业软件之间进行消息通讯以及响应的问题。
[0006]一种基于TCP通信协议的分布式异构语言间的通讯方法,所述通讯方法基于TCP通信协议实现,所述通信协议中的数据包括消息数据和响应数据,其中:所述消息数据的格式为一个单行的字符串,所述响应数据的格式为一个单行字符串或多行的字符串;在同平台上,所述异构语言间的通讯通过所述通信协议传递所述消息数据的字符串与所述响应数据的字符串完成;在不同平台上,将不同软件之间的消息通讯剥离成单独的通讯中间件,实现异构语言的软件与中间件间的通讯,实现基于TCP通信协议的分布式异构语言间的通讯方法。
[0007]优选地,所述消息数据的格式为一个单行的字符串,所述单行的字符串包括多个
子串。
[0008]优选地,所述多个子串包括:发送地址、接收地址、消息类型、消息内容、各个参数。
[0009]优选地,所述各个参数记录和传递响应数据。
[0010]优选地,所述响应数据的格式为一个单行字符串或多行的字符串,所述字符串为json格式。
[0011]优选地,所述json格式的字段包括:消息发送方Messager、消息响应方Responser、消息类型MessageType、消息具体内容Message、消息内容中的参数Param、响应结果State、响应的具体内容Response。
[0012]优选地,所述TCP通信协议包括主体部分和连接部分,所述主体部分维护所有其他平台的工业软件的连接以及接受消息提供软件的消息,将所述消息广播到多个接受软件进行响应;所述连接部分为代码库。
[0013]优选地,所述代码库与客户端程序所使用的编程语言相同。
[0014]优选地,所述主体部分和所述连接部分包括所述消息数据和所述响应数据。
[0015]优选地,所述通讯中间件为一个TCP通讯服务器,所述中间件使用的接口为Socket接口。
[0016]本专利技术提出了一种基于TCP通信协议的分布式异构语言间的通讯方法,制定了一种异构语言的工业软件之间消息通讯格式以及接收格式,通过此种格式实现消息的传输。在同平台上,本专利技术通过TCP协议传递特定格式消息与响应字符串来实现异构语言的软件间的通讯。在不同平台上,本专利技术将不同软件之间的消息通讯剥离成单独的通讯中间件,让需要进行通讯的软件与中间件进行通讯,多对多的应用场景可以提高软件效率和安全性,以应对分布式软件的通讯需求。
[0017]本专利技术设计工业软件传输的消息格式,响应软件可以根据消息类型和消息内容这种多级分类迅速定位到需要响应的类以及需要调用的响应函数,提升软件接收消息后的解析以及响应效率;本专利技术中间件的运用使得软件在需要广播消息时只需将消息发送给中间件即可,而不需要软件本身进行广播,降低工业软件本身负担;本专利技术通过TCP协议进行通讯时消息不会使用到硬盘,通讯效率高,响应速度快,对系统要求低。
附图说明
[0018]图1为
技术介绍
中所述的传统的以文件作为异构语言软件之间消息通讯媒介的数据流程图;
[0019]图2为实施方式二、实施方式三所述的消息数据格式字符串示意图;
[0020]图3为实施方式四所述的响应消息的具体格式示意图;
[0021]图4为实施方式五所述的响应数据格式字符串示意图;
[0022]图5为实施方式八实现的多对多通讯流程图;
[0023]图6为实施方式一所述的消息通讯中间件的模块功能示意图;
[0024]图7为实施方式一所述的分布式异构语言通讯技术各模块关系示意图。
具体实施方式
[0025]实施方式一:参照图6、图7说明本实施方式。
[0026]本实施方式所述的一种基于TCP通信协议的分布式异构语言间的通讯方法,所述通讯方法基于TCP通信协议实现,所述通信协议中的数据包括消息数据和响应数据,其中:所述消息数据的格式为一个单行的字符串,所述响应数据的格式为一个单行字符串或多行的字符串;在同平台上,所述异构语言间的通讯通过所述通信协议传递所述消息数据的字符串与所述响应数据的字符串完成;在不同平台上,将不同软件之间的消息通讯剥离成单独的通讯中间件,实现异构语言的软件与中间件间的通讯,实现基于TCP通信协议的分布式异构语言间的通讯方法。
[0027]具体地:
[0028]所述在同平台上,所述异构语言间的通讯通过所述TCP通信协议传递所述消息数据格式的字符串与所述响应数据格式的字符串完成,具体为:
[0029]首先需要发送消息的工控机软件通过Connector类中的getConnection方法通过Socket实现与本机开设的服务端进行长连接,然后通过SendOrder方法将需要发送的消息发送至中间件程序,中间件对发送消息字符串的接收地址部分进行解析,然后转发至对应的接收服务器,接收端工控机软件通过实现OnOrderReceived接口获取到发送方发送的消息,并且解析出消息类型、消息内容及参数,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于TCP通信协议的分布式异构语言间的通讯方法,其特征在于,所述通讯方法基于TCP通信协议实现,所述通信协议中的数据包括消息数据和响应数据,其中:所述消息数据的格式为一个单行的字符串,所述响应数据的格式为一个单行字符串或多行的字符串;在同平台上,所述异构语言间的通讯通过所述通信协议传递所述消息数据的字符串与所述响应数据的字符串完成;在不同平台上,将不同软件之间的消息通讯剥离成单独的通讯中间件,实现异构语言的软件与中间件间的通讯,实现基于TCP通信协议的分布式异构语言间的通讯方法。2.根据权利要求1所述的一种基于TCP通信协议的分布式异构语言间的通讯方法,其特征在于,所述消息数据的格式为一个单行的字符串,所述单行的字符串包括多个子串。3.根据权利要求2所述的一种基于TCP通信协议的分布式异构语言间的通讯方法,其特征在于,所述多个子串包括:发送地址、接收地址、消息类型、消息内容、各个参数。4.根据权利要求3所述的一种基于TCP通信协议的分布式异构语言间的通讯方法,其特征在于,所述各个参数记录和传递响应数据。5.根据权利要求1所述的一种基于TCP通信协议的分布式异构语言间的通讯方法,其特征在于,所述响应数据的格式为一个单行字符串或多行的字符串,...

【专利技术属性】
技术研发人员:唐滨何佳霖李宝君
申请(专利权)人:哈尔滨工程大学
类型:发明
国别省市:

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

1