CN105138398A - 同步通信模式下socket通信与进程管理通用平台及方法 - Google Patents

同步通信模式下socket通信与进程管理通用平台及方法 Download PDF

Info

Publication number
CN105138398A
CN105138398A CN201510642428.0A CN201510642428A CN105138398A CN 105138398 A CN105138398 A CN 105138398A CN 201510642428 A CN201510642428 A CN 201510642428A CN 105138398 A CN105138398 A CN 105138398A
Authority
CN
China
Prior art keywords
platform
descriptor
socket
service processes
management
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.)
Granted
Application number
CN201510642428.0A
Other languages
English (en)
Other versions
CN105138398B (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.)
SHANDONG MASSCLOUDS QICHUANG INFORMATION TECHNOLOGY Co Ltd
Original Assignee
SHANDONG MASSCLOUDS QICHUANG INFORMATION 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 SHANDONG MASSCLOUDS QICHUANG INFORMATION TECHNOLOGY Co Ltd filed Critical SHANDONG MASSCLOUDS QICHUANG INFORMATION TECHNOLOGY Co Ltd
Priority to CN201510642428.0A priority Critical patent/CN105138398B/zh
Publication of CN105138398A publication Critical patent/CN105138398A/zh
Application granted granted Critical
Publication of CN105138398B publication Critical patent/CN105138398B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了同步通信模式下SOCKET通信与进程管理通用平台及方法,创建一组进程,包括一个平台进程、一个诊断进程、一组服务进程;平台进程通过SOCKET监听描述符等待客户端连接请求,通过SOCKET管理描述符等待用户操作指令、服务进程的交易耗时数据或诊断进程的汇报,采用IO多路复用技术同时兼顾SOCKET监听描述符及SOCKET管理描述符;本发明简化SOCKET通信程序的开发,开发人员无需关心SOCKET通信与进程管理等编程技术细节,专注于业务逻辑的实现,提高开发效率并降低开发门槛。

Description

同步通信模式下SOCKET通信与进程管理通用平台及方法
技术领域
本发明涉及同步通信模式下SOCKET通信与进程管理通用平台及方法。
背景技术
在TCP/IP网络层次模型中,SOCKET是应用层与传输层之间的一个软件抽象层,是诸多网络通信编程技术的基础,应用广泛,具有低成本、低资源消耗、跨平台等特点而备受青睐。
但是SOCKET编程有其技术门槛,编写稳健的SOCKET通信程序需要了解其技术特点,规避特有的技术风险,融合相关的进程、内存、信号、锁等管理技术,需要一定的技术功底。
为简化SOCKET编程,提高编程效率,业界提供了一些开源的C/C++网络开发库,如ACE、Boost的ASIO、libevent。
ACE是一个大型的中间件产品,过于庞大,SOCKET通信只是其庞大功能集合中的功能之一,学习门槛很高。
ASIO是一个C++版本的异步IO库,封装了SOCKET的常用操作,依赖Boost,要求开发人员熟悉C++、Boost,支持多线程并发处理,但是需要开发人员自行创建与管理线程并考虑线程安全。
libevent是对IO多路复用技术的进一步封装,采用事件驱动的运行机制,本身不包含进程或线程的管理,另外需要开发人员自行创建并管理SOCKET描述符。
上述三个开发库都不适合简单通用的网络程序开发场景:在单位内部或外部,需要开发部署网络通信程序进行数据交换,采用自行约定的通信协议,而开发人员水平一般,不熟悉SOCKET通信机制、进程管理、信号、锁等编程技术,此时快速开发部署稳健的通信程序比较困难。
发明内容
为解决现有技术存在的不足,本发明公开了同步通信模式下SOCKET通信与进程管理通用平台及方法,融合SOCKET通信与进程管理功能,开发人员用以快速开发部署网络通信程序,无需关心SOCKET通信与进程管理等技术细节,专注于业务逻辑的实现,提高开发效率并降低开发门槛;对于网络服务程序,可以通过配置参数指定服务进程的数目,实现处理能力的灵活扩展;采用多个进程而不是线程并发运行,开发人员无需考虑线程安全,进一步降低开发门槛;平台运行内置诊断模块,实时监控整个平台的繁忙比率,达到设定阈值时在线增减服务进程的数目,实现处理能力的动态扩展;实时监控平台的运行状况,对于异常终止或僵死的服务进程自动予以重启,确保整个平台稳定持续运行;另外包含一个直观简易的运行监视界面,可以实时查看平台全局信息与服务进程的处理状态。
为实现上述目的,本发明的具体方案如下:
SOCKET通信与进程管理通用平台发布为一个静态库文件,附带一组头文件、配套资料及代码样例,提供编程接口供开发人员编程调用,支持各种类UNIX操作系统,支持C/C++开发语言。
与客户端的通信协议支持TCP、UDP,采用同步通信模式,支持长连接、短连接。
TCP(TransmissionControlProtocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议;UDP(UserDatagramProtocol,用户数据报协议),是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
长连接表示通信连接的持续性,通信双方在单个连接中交换多个报文;与之相对,短连接表示通信双方在单个连接中只交换一次报文,交换完毕关闭当前连接,下次交换报文时重新创建网络连接;
同步通信模式时,客户端发送请求后,同步等待服务端的应答,在此之前不会发送新的请求报文。
同步通信模式下SOCKET通信与进程管理通用方法,包括以下步骤:
平台运行时创建一组进程,包括一个平台进程、一个诊断进程、一组服务进程;
平台进程通过SOCKET监听描述符等待客户端连接请求,通过SOCKET管理描述符等待用户操作指令与服务进程的交易耗时数据以及诊断进程的汇报,采用IO多路复用技术同时兼顾SOCKET监听描述符及SOCKET管理描述符这两个描述符;
诊断进程运行时周期性检测各个服务进程的运行状态,对于单个周期运行持续时间超过设定时限的服务进程,强行杀死并向平台进程汇报,由平台进程予以重启;实时监控各个服务进程存活与否,如果服务进程异常终止则向平台进程汇报,由平台进程予以重启;同时实时监控整个平台的繁忙比率,达到设定阈值时向平台进程汇报,由平台进程在线增减服务进程。
同步通信模式下SOCKET通信与进程管理通用方法在平台运行创建进程前还包括:
编写编译程序:按照项目要求更改样例代码,编写个性化业务处理逻辑,调用编程接口注册业务逻辑回调函数,调用平台入口函数;编写完毕与开发平台提供的静态库文件联合编译,生成平台程序与运行监视程序;
程序部署:按照项目要求调整开发平台附带的样例配置文件,提供必需的配置参数,定制平台运行行为。
进一步的,服务进程的数目由配置参数决定,平台进程根据配置文件中的平台关键字创建进程管理共享内存、信号灯,创建一个SOCKET监听描述符、一个SOCKET管理描述符、一组描述符传递通道、一个空闲通道,对于UDP通信协议额外创建一个令牌通道。
进一步的,在通信平台的配置文件中添加透明转发参数,指定目标的IP及端口,客户端发起连接请求时,首先依然由平台进程接受,通过空闲通道转发给空闲的服务进程,服务进程接收客户端描述符,之后建立与目标的SOCKET连接,得到目标描述符,然后采用IO多路复用技术(poll系统调用)同时兼顾这两个描述符;
其中任何一个描述符具备可以读取的数据时,服务进程读取数据,并发送给另外一个描述符,周而复始;服务进程收到客户端描述符之后,与客户端的后续交互不再通过平台进程,而是直接对话;任何一方关闭连接时,整个通信流程结束,回到初始状态。
进一步的,同步通信模式下SOCKET通信与进程管理通用方法,还包括运行监视的步骤,运行时启动监视界面,从平台的进程管理共享内存中提取平台全局信息,在屏幕上实时直观显示,采用定时信号驱动周期性自动刷新,其中,平台全局信息包括:服务进程数目、繁忙比率,以及每个服务进程的运行信息,每个服务进程的运行信息包括:进程编号、进程ID、通信报头信息、当前状态、单个周期运行持续时间、开发人员设定的自定义信息。
进一步的,服务进程启动时在空闲通道中登记自己的进程编号,并等待读取自己专属的描述符传递通道,客户端请求到达时,由平台进程通过SOCKET监听描述符接受,从空闲通道中提取第一个服务进程编号,通过进程编号对应的描述符传递通道发送客户端描述符,对应的服务进程接收客户端描述符,处理请求的业务逻辑,之后向客户端返回应答结果,最后再次在空闲通道中登记自己的进程编号。
进一步的,用户指令要求开启统计分析功能时,平台框架分配一段局部内存,之后从服务进程接收的交易耗时数据在其中记录,用户指令要求显示统计分析结果时,平台框架从中导出所有的交易耗时数据由用户指令进一步加工显示,用户指令要求关闭统计分析功能时,平台框架释放之前分配的内存。
同步通信模式下SOCKET通信与进程管理通用平台,包括:
进程管理模块,用于创建一组进程,包括一个平台进程、一个诊断进程、一组服务进程;平台进程通过SOCKET监听描述符等待客户端连接请求,通过SOCKET管理描述符等待用户操作指令与服务进程的交易耗时数据以及诊断进程的汇报,采用IO多路复用技术同时兼顾SOCKET监听描述符及SOCKET管理描述符这两个描述符;
诊断模块,用于诊断进程运行时周期性检测各个服务进程的运行状态,对于单个周期运行持续时间超过设定时限的服务进程,强行杀死并向平台进程汇报,由平台进程予以重启;实时监控各个服务进程存活与否,如果服务进程异常终止则向平台进程汇报,由平台进程予以重启;同时实时监控整个平台的繁忙比率,达到设定阈值时向平台进程汇报,由平台进程在线增减服务进程。
上述同步通信模式下SOCKET通信与进程管理通用平台,还包括:
配置参数管理模块:平台运行依赖一个配置文件指导自己的运行行为,配置文件中包含一组配置参数,有些参数是必须的,有些参数是可选的,如果可选参数没有配置,平台将使用其缺省值,配置参数包括平台类型、平台关键字、服务进程数目、服务端口、同步异步通信模式、长连接标志、通信报头格式定义、单个报文最大长度、服务进程繁忙比率上限下限、一组日志参数、一组通信超时参数等,通信超时参数用以控制网络通信时限,避免接收或发送报文时长时间阻塞。
用户指令处理模块:通过命令行启动或停止平台,平台启动后可以查看平台运行概要信息,如:平台类型、平台关键字、服务端口、通信模式、服务进程数目、上次增减服务进程的时间、当前日志级别、诊断进程ID、已运行时间等,可以查看单个槽位中服务进程的详细信息,在线更新平台的配置参数;在SOCKET服务场景中,可以在线增减服务进程,可以在线开启关闭统计分析功能,以便跟踪交易请求在服务进程中的处理耗时,可以查看统计结果,如:交易处理最小时间、最大时间、平均时间等,并根据交易请求代码分组,维护人员可以根据耗时最长的交易处理记录进一步定位内在原因。
日志管理模块,平台中每个进程对应一组日志文件,可以根据日志级别过滤日志信息,减少磁盘空间占用,提高性能并突出重要的日志信息,日志文件可以根据日期命名,可以设定日志文件的上限尺寸,超过设定上限时,自动备份并打开一个新的日志文件,原有备份副本被覆盖,可以设定循环使用的日志文件的数目,避免持续消耗磁盘空间,实现日志文件的自我管理,无需管理员手工定期清理日志信息。
透明转发模块,用于在通信平台的配置文件中添加透明转发参数,指定目标的IP及端口,客户端发起连接请求时,首先依然由平台进程接受,通过空闲通道转发给空闲的服务进程,服务进程接收客户端描述符,之后建立与目标的SOCKET连接,得到目标描述符,然后采用IO多路复用技术(poll系统调用)同时兼顾这两个描述符;
其中任何一个描述符具备可以读取的数据时,服务进程读取数据,并发送给另外一个描述符,周而复始;服务进程收到客户端描述符之后,与客户端的后续交互不再通过平台进程,而是直接对话;任何一方关闭连接时,整个通信流程结束,回到初始状态。
进一步的,进程管理模块中服务进程的数目由配置参数决定,平台进程根据配置文件中的平台关键字创建进程管理共享内存、信号灯,创建一个SOCKET监听描述符、一个SOCKET管理描述符、一组描述符传递通道、一个空闲通道,对于UDP通信协议额外创建一个令牌通道。
进一步的,同步通信模式下SOCKET通信与进程管理通用平台,还包括运行监视模块,用于运行时启动监视界面,从平台的进程管理共享内存中提取平台全局信息,在屏幕上实时直观显示,采用定时信号驱动周期性自动刷新,其中,平台全局信息包括:服务进程数目、繁忙比率,以及每个服务进程的运行信息,每个服务进程的运行信息包括:进程编号、进程ID、通信报头信息、当前状态、单个周期运行持续时间、开发人员设定的自定义信息。
进一步的,进程管理模块中的服务进程启动时在空闲通道中登记自己的进程编号,并等待读取自己专属的描述符传递通道,客户端请求到达时,由平台进程通过SOCKET监听描述符接受,从空闲通道中提取第一个服务进程编号,通过进程编号对应的描述符传递通道发送客户端描述符,对应的服务进程接收客户端描述符,处理请求的业务逻辑,之后向客户端返回应答结果,最后再次在空闲通道中登记自己的进程编号。
进一步的,同步通信模式下SOCKET通信与进程管理通用平台,还包括统计分析模块,用于用户指令要求开启统计分析功能时,平台框架分配一段局部内存,之后从服务进程接收的交易耗时数据在其中记录,用户指令要求显示统计分析结果时,平台框架从中导出所有的交易耗时数据由用户指令进一步加工显示,用户指令要求关闭统计分析功能时,平台框架释放之前分配的内存。
本发明的有益效果:
1简化SOCKET通信程序的开发,开发人员无需关心SOCKET通信与进程管理等编程技术细节,专注于业务逻辑的实现,提高开发效率并降低开发门槛。
2平台运行支持自我诊断,自动重启异常终止或僵死的服务进程,确保整个平台持续稳定运行;在SOCKET服务场景中实时监控整个平台的繁忙比率,达到设定阈值时在线增减服务进程的数目,实现处理能力的动态扩展。
3运行时可以通过监视界面实时直观查看平台全局信息与每个服务进程的运行信息,采用定时信号驱动周期性自动刷新。
4过载保护功能,服务进程数目达到设定的最大数目并且每个服务进程都处于繁忙状态时,不再接受客户端的新的连接请求,避免整个平台或服务器因过载而异常。
5支持TCP与UDP协议;支持长连接、短连接通信模式。
6内置透明转发模块,充当代理的角色,可以将客户端的请求透明转发到指定的目标地址与端口,从客户端的角度来看,自己是直接连接目标地址与端口。
7灵活的日志管理,可以根据日志级别过滤日志信息,可以设定循环使用的日志文件的数目,避免持续消耗磁盘空间,实现日志文件的自我管理,无需管理员手工定期清理日志信息。
8通信报头的格式可灵活配置,报头字段的数据类型支持整型与字符型,开发人员可以根据字段序号读取或设置报头字段的内容,方便编程,支持定长、变长报文。
9开发人员可以在进程管理共享内存中记录交易关键信息,有效控制多个服务进程同时处理相关交易时产生的冲突。
10支持通过SOCKET端口传递文件内容,便于开发人员编程通过同一个通道传递文件;
11开发平台自身支持中英文两种语言,通过环境变量控制切换,全面切换屏幕显示与日志记录采用的语言。
附图说明
图1为开发流程示意图;
图2为同步通信模式SOCKET服务整体架构示意图;
图3为自我诊断流程图;
图4为透明转发示意图。
具体实施方式:
下面结合附图对本发明进行详细说明:
如图1所示,描述使用开发平台开发应用程序的整体流程。
开发平台发布为一个静态库文件,附带了配套资料、静态库文件、头文件、样例源代码、样例Makefile、样例配置文件,提供编程接口供开发人员编程调用,支持各种类UNIX操作系统,支持C/C++开发语言。
开发人员阅读配套资料,了解开发平台编程接口与运行机制。
结合项目需求完善修改样例源代码,编写个性化业务处理逻辑,调用编程接口注册业务逻辑回调函数,生成最终的源程序。
开发人员可以注册平台初始化逻辑、平台终止逻辑、服务进程初始化逻辑、客户端请求处理逻辑、等待客户端连接请求超时后的处理逻辑等个性化功能逻辑,进一步丰富平台功能,功能逻辑大多是可选的,开发人员按需注册,每个逻辑实现为一个独立的回调函数,注册过程相当于为平台注入了对应的扩展功能,平台运行时,在特定的运行上下文会调用开发人员事先注册的相应功能逻辑。
完善修改样例Makefile,执行make命令编译项目工程,编译源程序并连接静态库文件,生成最终的执行程序。
平台运行依赖一个配置文件指导自己的运行行为,配置文件中包含一组配置参数,完善修改样例配置文件,与执行程序一起发布运行,运行时可以通过运行监视界面实时查看整个平台的运行状态。
make是一个命令工具,它解释Makefile中的指令完成目标工程的编译,在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。
如图2所示,描述同步通信模式SOCKET服务整体架构示意图。
在同一台机器上可以同时运行多个平台,通过平台关键字区分,平台关键字唯一标识一个平台。
开发平台自身支持中英文两种语言,通过环境变量控制切换,全面切换屏幕显示与日志记录采用的语言;
平台运行依赖一个配置文件指导自己的运行行为,上述平台关键字、平台类型、通信协议、通信模式作为配置参数在配置文件中定义。
共享内存机制采用类UNIX系统内置支持的SystemV标准的sharedmemory,为协调多个进程对共享内存的同步访问,采用SystemV标准的信号灯semaphore作为加锁同步机制。
平台程序运行时,控制逻辑由开发平台接管,创建管理设施,如:进程管理共享内存、信号灯等,启用自我诊断功能,此后整个平台进入自我管理的运行状态,在特定的运行上下文会调用开发人员事先注册的相应功能逻辑,此时可以通过运行监视界面实时查看整个平台的运行状态。
平台运行时创建一组进程(一个平台进程、一个诊断进程、一组服务进程),服务进程的数目由配置参数决定,平台进程根据配置文件中的平台关键字创建进程管理共享内存、信号灯,创建一个SOCKET监听描述符、一个SOCKET管理描述符、一组描述符传递通道、一个空闲通道,对于UDP通信协议额外创建一个令牌通道,平台进程通过SOCKET监听描述符等待客户端连接请求,通过SOCKET管理描述符等待用户操作指令、服务进程的交易耗时数据或诊断进程的汇报,采用IO多路复用技术(poll系统调用)同时兼顾这两个描述符。
配置文件中包含一组配置参数,有些参数是必须的,有些参数是可选的,如果可选参数没有配置,平台将使用其缺省值,配置参数包括平台关键字、服务进程数目、服务端口、通信报头格式定义、单个报文最大长度、服务进程繁忙比率上限下限、一组日志参数、一组通信超时参数等。
一个关键的配置参数是通信报头格式定义,只有正确的定义了通信双方约定的通信格式,平台才能自动读取客户端的请求报文,通信报文由两部分组成:报头、报体,其中报头表示通信报文的元数据,报体表示具体的通信数据;报头格式定义通信报头中的字段组成,由逗号分隔的报头字段定义组成,每个报头字段定义由冒号分隔的4部分组成:标识:长度:数据类型:对齐方式;“标识”表示报头字段的含义(如:存放整个通信报文的长度),“长度”表示报头字段自身的长度占用,“数据类型”表示报头字段中携带数据的类型,支持字符型或整型,“对齐方式”表示数据的对齐与补齐方式,平台根据报头中的报文长度字段读取整个通信报文;
进程管理共享内存包含平台全局信息,如:平台类型、服务进程数目、服务端口、日志级别、服务进程繁忙比率,繁忙比率上限下限、平台进程ID、诊断进程ID、用户ID、启动时间、上次增加进程时间、同步异步通信模式标志等,以及一组管理槽位,每个服务进程占用其中一个槽位,存放服务进程的私有信息,如:进程ID、运行状态、用户ID、组ID、执行时间和执行时限信息等;
信号灯作为多个进程同时访问进程管理共享内存时的同步加锁机制,避免共享内存数据读写混乱,只有两个取值0和1(0表示加锁,1表示解锁);
描述符传递通道与空闲通道协作,用以传递客户端的连接请求描述符,描述符传递通道采用UNIX域SOCKET机制实现,空闲通道可以采用普通的管道机制实现;
服务进程启动时在空闲通道中登记自己的进程编号,并等待读取自己专属的描述符传递通道,客户端请求到达时,由平台进程通过SOCKET监听描述符接受,从空闲通道中提取第一个服务进程编号,通过进程编号对应的描述符传递通道发送客户端描述符,对应的服务进程接收客户端描述符,处理请求的业务逻辑,之后向客户端返回应答结果,最后再次在空闲通道中登记自己的进程编号;
空闲通道空时,表示每个服务进程都处于繁忙状态时,整个平台的繁忙比率达到100%,此时诊断进程会驱使平台进程增加服务进程,但是如果服务进程数目达到设定的最大数目时,将不再新增服务进程,此时不再接受客户端的新的连接请求,实现过载保护功能,避免整个平台或服务器因过载而异常;
对于UDP通信协议,令牌通道用以同步平台进程与服务进程对SOCKET监听描述符的争用,令牌通道中初始放入一个令牌,平台进程从中提取令牌,服务进程读取客户端请求报文后再次放入一个令牌,避免多个进程同时读取客户端请求报文;
由平台进程对外统一接受客户端请求,并通过描述符传递通道将客户端的请求描述符转交给空闲的服务进程,而不是多个服务进程同时抢夺客户端请求,可以避免某些版本的类UNIX系统中的惊群效应,所谓惊群效应指多个进程同时等待同一个描述符的事件,当描述符的事件触发时,所有等待这个事件的进程都被唤醒,但是只有一个进程能成功处理这个事件,其他进程都会失败,由此导致无谓的进程调度,降低系统性能;
对于UDP通信协议,平台进程并不接受客户端连接,因为UDP协议是无连接的,平台进程只是探测客户端的请求到达,通过描述符传递通道向空闲的服务进程发送一个通知,由具体的服务进程负责接收客户端请求报文。
用户操作指令通过命令行启动或停止平台,在线控制平台行为;平台运行时查看运行概要信息,如:平台类型、平台关键字、服务端口、通信模式、服务进程数目、上次增减服务进程的时间、当前日志级别、诊断进程ID、已运行时间等,查看单个槽位中服务进程的详细信息,在线更新平台的配置参数,在线增减服务进程,在线开启关闭交易统计分析功能,以便跟踪交易请求在服务进程中的处理耗时,查看交易统计分析结果,如:交易处理最小时间、最大时间、平均时间等,并根据交易请求代码分组,维护人员可以根据耗时最长的交易处理记录进一步定位内在原因;
其中,在线增减服务进程及交易统计分析相关功能需要平台进程的协助,向平台进程发送相应的指令,由平台进程执行请求的操作;
用户指令要求开启统计分析功能时,平台框架分配一段局部内存,之后从服务进程接收的交易耗时数据在其中记录,用户指令要求显示统计分析结果时,平台框架从中导出所有的交易耗时数据由用户指令进一步加工显示,用户指令要求关闭统计分析功能时,平台框架释放之前分配的内存;
诊断进程运行时周期性检测各个服务进程的运行状态,对于单个周期运行持续时间超过设定时限的服务进程,强行杀死并向平台进程汇报,由平台进程予以重启,避免服务进程的无限期挂起,确保服务行为可控;实时监控各个服务进程存活与否,如果服务进程异常终止则向平台进程汇报,由平台进程予以重启,确保整个平台持续稳定运行;同时实时监控整个平台的繁忙比率,达到设定阈值时向平台进程汇报,在线增减服务进程的数目,实现处理能力的动态扩展;
运行监视程序运行时启动监视界面,从平台的进程管理共享内存中提取平台全局信息,如服务进程数目、繁忙比率,以及每个服务进程的运行信息,如:进程编号、进程ID、通信报头信息、当前状态、单个周期运行持续时间、开发人员设定的自定义信息等,在屏幕上实时直观显示,采用定时信号驱动周期性自动刷新。
如图3所示,自我诊断模块运行时读取命令行指定的配置文件,获取管理参数(如平台关键字、睡眠间隔等),之后后台常驻执行,连接进程管理共享内存,从中提取服务进程运行信息,周期性检测各个进程的运行状态;自我诊断模块的表现形式就是诊断进程。
为避免自我诊断模块重复启动造成的混乱,程序启动后在一个文件(通常放置在/var/run目录下)中记录当前进程的进程ID,并对文件本身加锁,重复启动的自我诊断模块再次对同一个文件加锁时,因失败退出,自我诊断模块退出(无论正常或异常退出)时,文件锁自动释放;
进程管理共享内存中记录着服务进程的进程ID,自我诊断模块据以判断进程存活与否,如果服务进程异常终止,则通知平台进程对其重新启动,确保整个平台持续稳定运行;
进程管理共享内存中记录着服务进程的单个周期运行开始时间、执行时限信息,自我诊断模块据以计算服务进程的单个周期运行持续时间,对于超过设定时限的进程,强行杀死,并通知平台进程对其重新启动,避免进程的无限期挂起,确保服务行为可控;
在SOCKET服务场景中,自我诊断模块实时监控整个平台的繁忙比率,达到设定阈值时向平台进程汇报,在线增减服务进程的数目,实现处理能力的动态扩展。
如图4所示,透明转发平台以SOCKET服务同步通信模式运行,为了突出与客户端及目标之间的协作关系,图中简化了通信平台自身的一些细节。
在通信平台的配置文件中添加透明转发参数,指定目标的IP及端口,客户端发起连接请求时,首先依然由平台进程接受,通过空闲通道转发给空闲的服务进程,服务进程接收客户端描述符,之后建立与目标的SOCKET连接,得到目标描述符,然后采用IO多路复用技术(poll系统调用)同时兼顾这两个描述符;
其中任何一个描述符具备可以读取的数据时,服务进程读取数据,并发送给另外一个描述符,周而复始。
服务进程收到客户端描述符之后,与客户端的后续交互不再通过平台进程,而是直接对话。
任何一方关闭连接时,整个通信流程结束,回到初始状态。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (10)

1.同步通信模式下SOCKET通信与进程管理通用方法,其特征是,包括以下步骤:
创建一组进程,包括一个平台进程、一个诊断进程、一组服务进程;
平台进程通过SOCKET监听描述符等待客户端连接请求,通过SOCKET管理描述符等待用户操作指令与服务进程的交易耗时数据以及诊断进程的汇报,采用IO多路复用技术同时兼顾SOCKET监听描述符及SOCKET管理描述符这两个描述符;
诊断进程运行时周期性检测各个服务进程的运行状态,对于单个周期运行持续时间超过设定时限的服务进程,强行杀死并向平台进程汇报,由平台进程予以重启;实时监控各个服务进程存活与否,如果服务进程异常终止则向平台进程汇报,由平台进程予以重启;同时实时监控整个平台的繁忙比率,达到设定阈值时向平台进程汇报。
2.如权利要求1所述的同步通信模式下SOCKET通信与进程管理通用方法,其特征是,服务进程的数目由配置参数决定,平台进程根据配置文件中的平台关键字创建进程管理共享内存、信号灯,创建一个SOCKET监听描述符、一个SOCKET管理描述符、一组描述符传递通道、一个空闲通道,对于UDP通信协议额外创建一个令牌通道。
3.如权利要求2所述的同步通信模式下SOCKET通信与进程管理通用方法,其特征是,在配置文件中添加透明转发参数,指定目标的IP及端口,客户端发起连接请求时,首先依然由平台进程接受,通过空闲通道转发给空闲的服务进程,服务进程接收客户端描述符,之后建立与目标的SOCKET连接,得到目标描述符,然后采用IO多路复用技术同时兼顾这两个描述符;
其中任何一个描述符具备可以读取的数据时,服务进程读取数据,并发送给另外一个描述符,周而复始;服务进程收到客户端描述符之后,与客户端的后续交互不再通过平台进程,而是直接对话;任何一方关闭连接时,整个通信流程结束,回到初始状态。
4.如权利要求3所述的同步通信模式下SOCKET通信与进程管理通用方法,其特征是,服务进程启动时在空闲通道中登记自己的进程编号,并等待读取自己专属的描述符传递通道,客户端请求到达时,由平台进程通过SOCKET监听描述符接受,从空闲通道中提取第一个服务进程编号,通过进程编号对应的描述符传递通道发送客户端描述符,对应的服务进程接收客户端描述符,处理请求的业务逻辑,之后向客户端返回应答结果,最后再次在空闲通道中登记自己的进程编号。
5.如权利要求1所述的同步通信模式下SOCKET通信与进程管理通用方法,其特征是,用户指令要求开启统计分析功能时,平台框架分配一段局部内存,之后从服务进程接收的交易耗时数据在其中记录,用户指令要求显示统计分析结果时,平台框架从中导出所有的交易耗时数据由用户指令进一步加工显示,用户指令要求关闭统计分析功能时,平台框架释放之前分配的内存。
6.同步通信模式下SOCKET通信与进程管理通用平台,其特征是,包括:
进程管理模块,用于创建一组进程,包括一个平台进程、一个诊断进程、一组服务进程;平台进程通过SOCKET监听描述符等待客户端连接请求,通过SOCKET管理描述符等待用户操作指令及服务进程的交易耗时数据以及诊断进程的汇报,采用IO多路复用技术同时兼顾SOCKET监听描述符及SOCKET管理描述符这两个描述符;
诊断模块,用于诊断进程运行时周期性检测各个服务进程的运行状态,对于单个周期运行持续时间超过设定时限的服务进程,强行杀死并向平台进程汇报,由平台进程予以重启;实时监控各个服务进程存活与否,如果服务进程异常终止则向平台进程汇报,由平台进程予以重启;同时实时监控整个平台的繁忙比率,达到设定阈值时向平台进程汇报。
7.如权利要求6所述的同步通信模式下SOCKET通信与进程管理通用平台,其特征是,进程管理模块中服务进程的数目由配置参数决定,平台进程根据配置文件中的平台关键字创建进程管理共享内存、信号灯,创建一个SOCKET监听描述符、一个SOCKET管理描述符、一组描述符传递通道、一个空闲通道,对于UDP通信协议额外创建一个令牌通道。
8.如权利要求6所述的同步通信模式下SOCKET通信与进程管理通用平台,其特征是,上述同步通信模式下SOCKET通信与进程管理通用平台还包括透明转发模块,用于在配置文件中添加透明转发参数,指定目标的IP及端口,客户端发起连接请求时,首先依然由平台进程接受,通过空闲通道转发给空闲的服务进程,服务进程接收客户端描述符,之后建立与目标的SOCKET连接,得到目标描述符,然后采用IO多路复用技术同时兼顾这两个描述符;
其中任何一个描述符具备可以读取的数据时,服务进程读取数据,并发送给另外一个描述符,周而复始;服务进程收到客户端描述符之后,与客户端的后续交互不再通过平台进程,而是直接对话;任何一方关闭连接时,整个通信流程结束,回到初始状态。
9.如权利要求7所述的同步通信模式下SOCKET通信与进程管理通用平台,其特征是,进程管理模块中服务进程启动时在空闲通道中登记自己的进程编号,并等待读取自己专属的描述符传递通道,客户端请求到达时,由平台进程通过SOCKET监听描述符接受,从空闲通道中提取第一个服务进程编号,通过进程编号对应的描述符传递通道发送客户端描述符,对应的服务进程接收客户端描述符,处理请求的业务逻辑,之后向客户端返回应答结果,最后再次在空闲通道中登记自己的进程编号。
10.如权利要求6所述的同步通信模式下SOCKET通信与进程管理通用平台,其特征是,同步通信模式下SOCKET通信与进程管理通用平台,还包括统计分析模块,用于用户指令要求开启统计分析功能时,平台框架分配一段局部内存,之后从服务进程接收的交易耗时数据在其中记录,用户指令要求显示统计分析结果时,平台框架从中导出所有的交易耗时数据由用户指令进一步加工显示,用户指令要求关闭统计分析功能时,平台框架释放之前分配的内存。
CN201510642428.0A 2015-09-30 2015-09-30 同步通信模式下socket通信与进程管理通用平台及方法 Active CN105138398B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510642428.0A CN105138398B (zh) 2015-09-30 2015-09-30 同步通信模式下socket通信与进程管理通用平台及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510642428.0A CN105138398B (zh) 2015-09-30 2015-09-30 同步通信模式下socket通信与进程管理通用平台及方法

Publications (2)

Publication Number Publication Date
CN105138398A true CN105138398A (zh) 2015-12-09
CN105138398B CN105138398B (zh) 2019-09-27

Family

ID=54723754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510642428.0A Active CN105138398B (zh) 2015-09-30 2015-09-30 同步通信模式下socket通信与进程管理通用平台及方法

Country Status (1)

Country Link
CN (1) CN105138398B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598756A (zh) * 2016-12-13 2017-04-26 重庆川仪自动化股份有限公司 不同应用程序之间的数据交互方法
CN110096340A (zh) * 2018-01-29 2019-08-06 北京世纪好未来教育科技有限公司 定时任务处理方法及装置
CN112187581A (zh) * 2020-09-29 2021-01-05 北京百度网讯科技有限公司 服务信息处理方法、装置、设备及计算机存储介质
CN112549023A (zh) * 2020-11-25 2021-03-26 浙江同善人工智能技术有限公司 基于TCP socket接口工业机器人示教器模式与协程控制方法
CN113032170A (zh) * 2021-05-31 2021-06-25 天地伟业技术有限公司 一种网络摄像机的多模块通讯处理方法及电子设备
CN113296848A (zh) * 2021-06-22 2021-08-24 中国农业银行股份有限公司 一种业务处理方法及装置
CN113468036A (zh) * 2021-07-15 2021-10-01 上海晶赞融宣科技有限公司 任务执行耗时分析方法及装置、存储介质、终端
CN113505011A (zh) * 2021-09-08 2021-10-15 北京鲸鲮信息系统技术有限公司 权限同步方法、装置、电子设备与存储介质
CN114598687A (zh) * 2022-01-19 2022-06-07 深圳智游网安科技有限公司 一种https数据包的抓取方法、系统及终端
CN115757006A (zh) * 2022-09-27 2023-03-07 郑州云智信安安全技术有限公司 基于端口队列特征判断进程运行状态的方法及装置
CN117407182A (zh) * 2023-12-14 2024-01-16 沐曦集成电路(南京)有限公司 一种基于Poll指令的进程同步方法、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097455A1 (en) * 2001-11-21 2003-05-22 International Business Machines Corporation Method for continuous I/O request processing in an asynchronous environment
CN101272402A (zh) * 2008-05-14 2008-09-24 深圳市同洲电子股份有限公司 一种数据传输的方法、装置及系统
CN103746977A (zh) * 2013-12-27 2014-04-23 东软熙康健康科技有限公司 一种Linux服务器的连接方法和装置
CN104268025A (zh) * 2014-09-30 2015-01-07 珠海市君天电子科技有限公司 一种进程间通信的方法及系统、服务器
CN104331327A (zh) * 2014-12-02 2015-02-04 山东乾云启创信息科技有限公司 大规模虚拟化环境中任务调度的优化方法及优化系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097455A1 (en) * 2001-11-21 2003-05-22 International Business Machines Corporation Method for continuous I/O request processing in an asynchronous environment
CN101272402A (zh) * 2008-05-14 2008-09-24 深圳市同洲电子股份有限公司 一种数据传输的方法、装置及系统
CN103746977A (zh) * 2013-12-27 2014-04-23 东软熙康健康科技有限公司 一种Linux服务器的连接方法和装置
CN104268025A (zh) * 2014-09-30 2015-01-07 珠海市君天电子科技有限公司 一种进程间通信的方法及系统、服务器
CN104331327A (zh) * 2014-12-02 2015-02-04 山东乾云启创信息科技有限公司 大规模虚拟化环境中任务调度的优化方法及优化系统

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598756A (zh) * 2016-12-13 2017-04-26 重庆川仪自动化股份有限公司 不同应用程序之间的数据交互方法
CN110096340A (zh) * 2018-01-29 2019-08-06 北京世纪好未来教育科技有限公司 定时任务处理方法及装置
CN112187581A (zh) * 2020-09-29 2021-01-05 北京百度网讯科技有限公司 服务信息处理方法、装置、设备及计算机存储介质
US11663037B2 (en) 2020-09-29 2023-05-30 Beijing Baidu Netcom Science And Technology Co., Ltd. Service information processing method, apparatus, device and computer storage medium
CN112187581B (zh) * 2020-09-29 2022-08-02 北京百度网讯科技有限公司 服务信息处理方法、装置、设备及计算机存储介质
CN112549023B (zh) * 2020-11-25 2022-05-27 浙江同善人工智能技术有限公司 基于TCP socket接口工业机器人示教器模式与协程控制方法
CN112549023A (zh) * 2020-11-25 2021-03-26 浙江同善人工智能技术有限公司 基于TCP socket接口工业机器人示教器模式与协程控制方法
CN113032170A (zh) * 2021-05-31 2021-06-25 天地伟业技术有限公司 一种网络摄像机的多模块通讯处理方法及电子设备
CN113296848A (zh) * 2021-06-22 2021-08-24 中国农业银行股份有限公司 一种业务处理方法及装置
CN113468036A (zh) * 2021-07-15 2021-10-01 上海晶赞融宣科技有限公司 任务执行耗时分析方法及装置、存储介质、终端
CN113468036B (zh) * 2021-07-15 2023-11-24 上海晶赞融宣科技有限公司 任务执行耗时分析方法及装置、存储介质、终端
CN113505011A (zh) * 2021-09-08 2021-10-15 北京鲸鲮信息系统技术有限公司 权限同步方法、装置、电子设备与存储介质
CN114598687A (zh) * 2022-01-19 2022-06-07 深圳智游网安科技有限公司 一种https数据包的抓取方法、系统及终端
CN114598687B (zh) * 2022-01-19 2024-02-23 深圳智游网安科技有限公司 一种https数据包的抓取方法、系统及终端
CN115757006A (zh) * 2022-09-27 2023-03-07 郑州云智信安安全技术有限公司 基于端口队列特征判断进程运行状态的方法及装置
CN115757006B (zh) * 2022-09-27 2023-08-08 郑州云智信安安全技术有限公司 基于端口队列特征判断进程运行状态的方法及装置
CN117407182A (zh) * 2023-12-14 2024-01-16 沐曦集成电路(南京)有限公司 一种基于Poll指令的进程同步方法、系统、设备及介质
CN117407182B (zh) * 2023-12-14 2024-03-12 沐曦集成电路(南京)有限公司 一种基于Poll指令的进程同步方法、系统、设备及介质

Also Published As

Publication number Publication date
CN105138398B (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
CN105138398A (zh) 同步通信模式下socket通信与进程管理通用平台及方法
CN105357266A (zh) 适合多种场景的socket通信与进程管理通用平台及方法
CN105357273A (zh) 异步通信模式下socket通信与进程管理通用平台及方法
CN101799751B (zh) 一种构建主机监控代理软件的方法
Schmidt et al. C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks
EP0952521B1 (en) Method for tracking configuration changes in networks of computer systems through historical monitoring of configuration status of devices on the network
CN110971614A (zh) 物联网适配方法、系统、计算机设备及存储介质
CN105204936A (zh) 常驻进程管理通用平台及方法
US20080307265A1 (en) Method for Managing a Software Process, Method and System for Redistribution or for Continuity of Operation in a Multi-Computer Architecture
CN106850260A (zh) 一种虚拟化资源管理平台的部署方法和装置
US7424525B2 (en) Managing headless computer systems
CN104615489B (zh) 一种多节点数据交互的实现方法
CN100465907C (zh) 一种cmos参数的设置维护装置及方法
CN112667362B (zh) Kubernetes上部署Kubernetes虚拟机集群的方法与系统
CN109194617A (zh) Xml报文的自动解析、封装方法和装置
CN102064954A (zh) 一种分布式容错系统、设备和方法
CN104778042A (zh) 一种基于事件流处理和插件式开发框架的流数据处理方法
CN103731328B (zh) 基于Linux共享内存实现家庭网关数据通信的系统及方法
CN110309231A (zh) 一种跨机房的数据同步方法及系统
CN109656726A (zh) 一种适用于数据中心的工业信息交互系统及方法
CN106371846A (zh) 基于网络数据和消息中间件的快速开发方法和业务系统
WO2023125755A1 (zh) 基于大规模集群的服务请求处理方法、装置、设备及介质
CN103870280A (zh) 基于flex与jsp的网页无缝结合处理方法
CN106155859A (zh) 一种监控管理系统、信息处理方法及高密度服务器
CN107911442A (zh) 接收响应接口交互方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Xinluo Avenue high tech Zone of Ji'nan City, Shandong province 250101 silver bearing No. 2008 building B block 1001

Applicant after: SHANDONG QIANYUN QICHUANG INFORMATION TECHNOLOGY Co.,Ltd.

Address before: Xinluo Avenue high tech Zone of Ji'nan City, Shandong province 250101 silver bearing No. 2008 building B block 1001

Applicant before: SHANDONG MASSCLOUDS CO.,LTD.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: General platform and method of socket communication and process management in synchronous communication mode

Effective date of registration: 20210129

Granted publication date: 20190927

Pledgee: Jinan Rural Commercial Bank Co.,Ltd. Runfeng sub branch

Pledgor: SHANDONG QIANYUN QICHUANG INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2021980000858

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20220517

Granted publication date: 20190927

Pledgee: Jinan Rural Commercial Bank Co.,Ltd. Runfeng sub branch

Pledgor: SHANDONG QIANYUN QICHUANG INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2021980000858

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Common platform and method for socket communication and process management under synchronous communication mode

Effective date of registration: 20220610

Granted publication date: 20190927

Pledgee: Jinan Rural Commercial Bank Co.,Ltd. Runfeng sub branch

Pledgor: SHANDONG QIANYUN QICHUANG INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2022980007550

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230717

Granted publication date: 20190927

Pledgee: Jinan Rural Commercial Bank Co.,Ltd. Runfeng sub branch

Pledgor: SHANDONG QIANYUN QICHUANG INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2022980007550