[发明专利]一种基于报文分类的同步并发通信方法及系统有效
申请号: | 201510149217.3 | 申请日: | 2015-04-01 |
公开(公告)号: | CN104702627B | 公开(公告)日: | 2017-12-26 |
发明(设计)人: | 苗升伍;杨毅;马如明;王伟江 | 申请(专利权)人: | 南京天溯自动化控制系统有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 江苏银创律师事务所32242 | 代理人: | 孙计良 |
地址: | 210019 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 报文 分类 同步 并发 通信 方法 系统 | ||
技术领域
本发明涉及C/S系统中服务器的并发处理技术。
背景技术
随着计算机网络与通信技术的不断发展和应用,新的网络通信技术、编程方法不断涌现,而在底层服务程序中,大多数程序是客户端/服务器(Client/Server)模式,程序之间势必会牵涉到进程间的通讯问题。随着应用的不断广泛、及接入的数据不断增多,程序之间务必会进行很频繁的数据交换。而在进程间通信的方法中,最受欢迎的包括socket通信、命名管道。socket方式一般选择TCP或UDP方式,其中,TCP是面向连接的,必须先与目标程序建立连接才能进行通信,在建立连接过程中要经过三次握手,而关闭连接则需要经过四次握手。TCP信息包还需要在数据前增加20个字节的报文头,额外开销大,且传输较慢,对资源的消耗也较多;而UDP是面向无连接的,虽然报文头只有8个字节,额外开销小,比TCP传输更快,但不能保证报文的顺序接收与数据的可靠性。因此,比较可靠、效率比较高的方式为命名管道方式。
公开号为CN103197968A的专利文献《一种融合同步异步特点的线程池处理方法及系统》公开了:对互联网上大量的任务请求,通过线程池进行异步处理,使之互相不受影响且等待时间短,同时单用户操作实现同步处理,符合按业务顺序输出的要求,而且对重要性高的任务请求,具备优先处理的优选机制。该专利文献所公开的技术可以解决互联网上大量任务请求下的异步处理。但对于同步的处理只能实现单用户的操作。随着通讯服务的不断发展,应用程序不仅要满足点与点之间的实时消息交互,还要实现通讯数据、图片、文件、实时语音与视频的传输等功能,对于这些传输的处理要严格遵守顺序关系。因此,该专利文献所公开的技术无法有效解决用户的同步处理请求。
公开号为CN103338156A的专利文献《一种基于线程池的命名管道服务器并发通信方法》公开了:当输入消息缓冲区不为空时,业务逻辑线程池从中取出一个输入消息,并根据消息内定义的操作类型,进行对应的操作;当操作完成后,线程池将相应的操作结果打包生成一个输出消息,并将其保存到输出消息缓冲区;当服务器端的写线程监测到输出消息缓冲区存在输出消息时,则从该队列中获取输出消息,然后根据消息中的通信标识,将相应的操作结果返回到对应的客户端。该专利文献所公开的技术提高了任务请求的并发性,但其只是处理了异步请求,对于同步要求较高的场合无法实现。且处理任务请求的是业务逻辑线程池,目前环境下,系统需要接入更多的业务、或其它厂家的系统,业务繁多、变化较快,业务逻辑线程需要不停的变化,导致程序不稳定。
总而言之,对于任务请求较多、任务请求时间较短、一次任务请求的数据量较小的情况下,如何高效的把业务数据按顺序返回,并能支持良好的扩展性,是现有技术存在的一个急需解决的大问题。
发明内容
本发明所要解决的问题:客户端程序、服务器程序进行通信时,提供一种基于报文分类的同步并发通信方法及系统,提高程序间的并发能力、实时性、数据传输可靠性。
为解决上述问题,本发明采用的方案如下:
根据本发明的一种基于报文分类的同步并发通信方法,其特征在于,包括以下步骤:
S11:服务端创建S4L_Pipe和多个S2A_Pipe,并将S4L_Pipe和S2A_Pipe分配至各自独立的线程中;其中,S4L_Pipe为命名管道,用于监听客户端通讯连接;S2A_Pipe为命名管道,用于与代理端通讯;
S12:代理端创建A2C_TaskPool、A4L_Pipe和多个A2S_Pipe,并将A4L_Pipe和A2S_Pipe分配至各自独立的线程中;其中,A2C_TaskPool为用于与客户端通讯的线程池;A4L_Pipe为命名管道,用于监听与客户端通讯连接;A2S_Pipe为与S2A_Pipe一一对应并建立连接的命名管道,用于与服务端通讯;A2S_Pipe所分配的线程为A2S_Task;
S21:代理端通过A4L_Pipe接收到客户端命名管道连接请求时,代理端从A2C_TaskPool中提取一空闲线程分配给该客户端作为A2C_Task,A2C_Task建立A2C_Pipe;其中,A2C_Task为用于与客户端通讯的线程;A2C_Pipe为命名管道,用于与客户端通讯;
S22:A2C_Task通过A2C_Pipe接收客户端发出的数据请求报文,并将数据请求报文置于请求报文队列内;
S23:A2S_Task从请求报文队列中提取数据请求报文,并通过A2S_Pipe将数据报文请求发送至服务端;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京天溯自动化控制系统有限公司,未经南京天溯自动化控制系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510149217.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:模具分步顶出装置
- 下一篇:汽车大中型模具滑块内含斜顶结构