一种高并发的SOME/IP协议栈服务器实现方法技术

技术编号:36223968 阅读:19 留言:0更新日期:2023-01-04 12:22
本发明专利技术提供一种高并发的SOME/IP协议栈服务器实现方法,具体包括:在操作系统中设置用于提供服务的服务器;服务器的主进程在启动的同时创建进程池或线程池;进程池或线程池中的每个子进程或子线程一次只处理一个客户端请求;其中,当服务器的主进程接收到来自客户端的请求任务时,将客户端的请求任务分发给进程池的子进程或线程池的子线程进行处理;处理完客户端请求后,子进程或子线程并不释放,继续获取下一个待处理的客户端请求并继续处理。通过采用本发明专利技术的技术方案,能够并发处理多个客户端请求业务,提升service端同时监听client套接字数目,降低CPU开销,提高service响应client请求速度,提高了服务器整体性能。提高了服务器整体性能。提高了服务器整体性能。

【技术实现步骤摘要】
一种高并发的SOME/IP协议栈服务器实现方法


[0001]本专利技术涉及车载AUTOSAR通信领域,具体涉及一种高并发的SOME/IP协议栈服务器实现方法。

技术介绍

[0002]随着ADAS技术、高品质车载娱乐、OTA等技术对网络带宽需求爆发式增长,具有高带宽、低延时的以太网技术被引入车机AUTOSAR标准。SOME/IP(Scalable service

Oriented Middleware over IP)为车载ECU之间以太网通信提供了解决方案,使得车载以太网成为车内网络通信的主流。SOME/IP协议是专门针对汽车领域所设计的面向服务通信的标准协议,具有灵活性、可扩展性和软硬件解耦,因此可用于实现汽车载诊断、娱乐、安全相关等功能。SOA面向服务架构(Service

Oriented Architectures,SOA)将汽车ECU上实现的功能抽象为服务并向外提供服务调用的接口,使其它ECU能够订阅或使用该ECU提供的服务,实现服务和应用之间松散耦合,屏蔽软硬件异构性,达到软件动态部署目的,具有服务高可复用性,提高平台互操作性等特性。
[0003]但是,由于汽车上拥有众多ECU,单个或若干个ECU组合起来负责向外提供某种服务功能或者通过同一个ECU内的多个服务组成起来提供某种功能,在ECU资源有限的情况下,每个ECU同一时刻产生的数据可能被较多的ECU使用,如摄像头拍摄的图像同时要传给自动驾驶主机、环视主机、域控制器等,这些都需要图像数据。当一个ECU面对众多客户端所需服务时,传统处理方法效率低下,并且系统开销大,响应速度慢,严重影响用户体验和系统运行。

技术实现思路

[0004]基于现有技术中存在的缺陷之一,本专利技术提供一种高并发的SOME/IP协议栈服务器实现方法,包括:
[0005]在操作系统中设置用于提供服务的服务器;
[0006]服务器的主进程在启动的同时创建进程池或线程池;
[0007]进程池或线程池中的每个子进程或子线程一次只处理一个客户端请求;其中,当服务器的主进程接收到来自客户端的请求任务时,将客户端的请求任务分发给进程池的子进程或线程池的子线程进行处理;
[0008]处理完客户端请求后,子进程或子线程并不释放,继续获取下一个待处理的客户端请求并继续处理。
[0009]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,当有新的客户端请求连接到来时,服务器的主进程以非阻塞方式检查文件上是否可进行I/O操作,服务器的主进程接受并将新返回的连接套字节分发给进程池选定一个子进程或线程池的选定一个子线程;
[0010]与客户端对应的套字节上的任何I/O操作都由被选中的子进程或子线程来处理,
直到客户端关闭连接。
[0011]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,服务器的主进程使用消息队列向进程池或线程池分发套字节;服务器的主进程向消息队列写数据。
[0012]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,进程池中的子进程或线程池中的子线程检测到消息队列上有数据可读时,分析是否是一个新的客户请求连接;
[0013]若是,把该新的套字节上的读写事件注册到自己的I/O事件模型的事件表中。
[0014]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,进程池中的每个进程或线程池中的每个线程使用预设方式监听分发的套接字,是否有可执行I/O操作,每个子进程或子线程都维持自己的循环,各自独立监听不同事件。
[0015]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,当进程池中的每个子进程或线程线池中的每个子线程监听的分发的套接字有读写的事件,对应的子进程或子线程处理该套接字的读写事件及业务。
[0016]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,服务器的主进程监听与客户端关联的套字节,连接套字节由进程池的子进程或线程池子线程来管理。
[0017]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,进程池或线程池中的子进程或字线程数目在服务器的主进程启动后保持不变。
[0018]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,进程池的单个进程或线程池的单个线程处理多个客户端请求;
[0019]单个进程或单个线程同时监听多个套接字文件描述符上的I/O事件。
[0020]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,进程池中的子进程或线程池的子线程数目和CPU的核数一致并绑定。
[0021]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,当进程池中子进程或线程池中的子线程同时监听处于消息队列的多个套字节,判断与客户端关联的套字节优先级,高优先级的套字节先被子进程或子线程处理。
[0022]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,预设方式包括:
[0023]子线程或子进程将需要进行I/O操作的套字节添加到Select函数中,然后阻塞等待Select函数系统调用返回;
[0024]当数据到达时,套接字被激活,Select函数返回;
[0025]子线程或子进程正式发起读请求,读取数据并继续执行。
[0026]一种高并发的SOME/IP协议栈服务器实现方法,进一步优选地,预设方式包括:多路I/O复用机制,多用复用I/O至少包括:poll、epoll、kqueue中的一种。
[0027]有益效果:
[0028]本专利技术提供的服务器及架构是使用I/O处理单元和多个业务单元之间协调完成客户请求任务的方法,通过使用进程池或线程池实现并发。服务器程序在启动的同时创建好进程池或线程池,进程池或线程池中的子进程或线程数目一定,进程池或线程池中的每个子进程或子线程一次只处理一个客户端请求。处理完客户端请求后,子进程或子线程并不会终止,而是获取下一个待处理的客户端请求继续处理,如此类推。单个子进程或子线程中处理多个客户端请求进程池或线程池的单个进程或线程处理多个客户端请求。单个子进程
或子线程同时管理多个socket文件描述符上的I/O事件。通过采用上述方式,能够并发处理多个客户端请求业务,提升service端同时监听client套接字数目,降低CPU开销,提高service响应client请求速度,提高了服务器整体性能
附图说明
[0029]以下附图仅对本专利技术做示意性说明和解释,并不限定本专利技术的范围。
[0030]图1为本专利技术一实施例中服务器监听客户端并分发任务的示意图。
[0031]图2为本专利技术一实施例中服务器的主进程分发已连接的套字节任务的示意图。
[0032]图3为本专利技术一实施例中服务器的主进程功能模块结构示意图。
[0033]图4为本专利技术一实施例中服务器的子进程或子线程功能模块结构示意图。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高并发的SOME/IP协议栈服务器实现方法,其特征在于,包括:在操作系统中设置用于提供服务的服务器;服务器的主进程在启动的同时创建进程池或线程池;进程池或线程池中的每个子进程或子线程一次只处理一个客户端请求;其中,当服务器的主进程接收到来自客户端的请求任务时,将客户端的请求任务分发给进程池的子进程或线程池的子线程进行处理;处理完客户端请求后,子进程或子线程并不释放,继续获取下一个待处理的客户端请求并继续处理。2.如权利要求1所述一种高并发的SOME/IP协议栈服务器实现方法,其特征在于,当有新的客户端请求连接到来时,服务器的主进程以非阻塞方式检查文件上是否可进行I/O操作,服务器的主进程接受并将新返回的连接套字节分发给进程池选定一个子进程或线程池选定一个子线程;与客户端对应的套字节上的任何I/O操作都由被选中的子进程或子线程来处理,直到客户端关闭连接。3.如权利要求1所述一种高并发的SOME/IP协议栈服务器实现方法,其特征在于,服务器的主进程使用消息队列向进程池或线程池分发套字节;服务器的主进程向消息队列写数据。4.如权利要求3所述一种高并发的SOME/IP协议栈服务器实现方法,其特征在于,进程池中的子进程或线程池中的子线程检测到消息队列上有数据可读时,分析是否是一个新的客户端请求连接;若是,把该新的套字节上的读写事件注册到自己的I/O事件模型的事件表中。5.如权利要求1所述一种高并发的SOME/IP协议栈服务器实现方法,其特征在于,进程池中的每个进程或线程池中的每个线程使用预设方式监听分发的套接字,是否有可执行I/O操作,每个子进程或子线程都维持自己的循环,各自独立监听不同事件。6.如权利要求1所述一种高并发的SOME/IP协议栈服务器实现方法,其特征在于,当进程池中的每...

【专利技术属性】
技术研发人员:肖文平金德刚
申请(专利权)人:上海赫千电子科技有限公司
类型:发明
国别省市:

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

1