专利名称:一种大规模、多线程通信服务器的制作方法
技术领域:
本实用新型涉及一种通信服务器,尤其是涉及一种大规模、多线程通信服务器。
背景技术:
随着因特网的飞速发展,提供给人们的网络服务和内容日趋丰富多彩,如Email, FTP, WWW等,上述应用在传输层的实现均是相同的,其都是通过TCP/IP协议进行数据传输; 而在应用层上,则根据不同的需要遵照RFC规范,将数据以不同的形式展现给用户。随着 Internet用户数的不断增加,如何提高服务器的工作效率以满足不断倍增的访问量,已成 为服务器程序设计的首要问题。 现在大多通信服务系统都存在单台通信服务器并发服务容量小,高峰时刻信息延 时严重,系统运行时间长等问题,在系统容量和稳定性方面都待改进。同时各个厂家的通信 协议不同,国家也没有相关的设计规范,大多数系统只支持一种GPS移动终端,当需要支持 多种终端时,由于最初没有相关设计,兼容新的终端后,很容易造成系统的可维护性变差, 甚至系统的性能也会大大降低,同时开发周期比较长且开发费用高。 目前,Internet中的各种服务已广泛地使用客户机(即客户端)/服务器模型,如 目录服务、文件服务、地址解析等。首先,由客户即客户端发出请求,服务器响应请求。这 个过程看似简单,但是客户与服务器之间进行通信,必须建立一个全相关。实际操作过程 中,客户的本地地址和本地端口都可以知道,服务器的地址是全局唯一的,也可以知道。但
服务器的端口是由服务器主机独立分配的,客户进程无法知道,实际上客户与服务器间的 连接过程如下TCP/IP协议规定,将服务器的端口分为保留端口和自由端口两种类型,其 中保留端口只占少数,以全局方式分配。每一标准服务器都拥有一个全局公认的端口,如 FTP(File Transfer Protocol)端口号为21, HTTP (Hyper Text Transfer Protocol)为80。 不同机器的同一服务器的端口号相同,因此客户进程可以与WWW服务器的公认端口80建立 连接,进行超文本传输。通信服务器在通信的过程中,需要频繁地查询和读写其中的数据信 息。传统服务器必须先启动并建立本地半相关后,再调用接收请求函数,其次进入阻塞等待 状态后,方能接收客户请求,建立连接。具体而言,传统的通信服务器由一个主线程担任监 听线程,收到连接请求时,会在为此连接创建一个新线程后再继续进行监听,因而上述现有 常规通信服务器在处理大规模连接请求时,由于其频繁地创建和销毁线程,因而对服务器 本身的性能影响很大。
实用新型内容本实用新型所要解决的技术问题在于针对上述现有技术中的不足,提供一种大规 模、多线程通信服务器,其设计合理、使用操作简便且使用效果好、响应速度快,能实现多线 程并发通信,有效克服了传统通信服务器所存在的单台通信服务器并发服务容量小、高峰 时刻信息延时严重、系统运行时间长等实际问题。 为解决上述技术问题,本实用新型采用的技术方案是一种大规模、多线程通信服务器,包括中央处理器,其特征在于还包括按时间先后顺序对多个客户端所发送连接请求 数据进行队列式存储并按先后顺序逐一输出的数据缓冲池,和由中央处理器启动时所预先 创建的多个空闲线程组成并具有按照链表方式动态创建与注销线程功能的服务线程池;所 述数据缓冲池和服务线程池均与中央处理器相接,中央处理器与客户端间通过数据接口电 路进行连接。 所述数据接口电路为有线和/或无线数据接口 。 本实用新型与现有技术相比具有以下优点 1、设计合理且使用操作简便,主要包括中央处理器即CPU以及分别与CPU相接的 数据缓冲池和服务线程池,其中数据缓冲池为可以存储任何数据的队列,接收用户的请求 信息。服务线程池由在服务器启动时预先创建的多个空闲线程组成,这些线程同时等待数 据缓冲池中的数据。当数据缓冲池中有数据就绪时,由系统选取一个空闲线程,获取数据, 并根据这些数据完成相应的操作。采用服务线程池可以降低系统创建线程和销毁线程的开 销,因而不仅能避免将大量的CPU时间消耗在线程切换和内存调页上,而且能够用数目很 少的线程处理大量客户端的并发请求。 2、使用效果好,响应速度快,多处数据结构采用以空间换时间的设计思想,能有效 适应大规模并发数据的数据通信需要。例如,在监控技术领域中,多个监控通信模块与监控 中心的连接数不会太大,而各连接间的数据流量大且协议统一,所以每个连接适合采用独 立线程阻塞Winsock通信方式实现,主线程启动Cblocking Socket的连接侦听和第一个监 控通信线程,监控通信线程阻塞等候接收连接;当收到连接后马上启动第2个监控通信线 程并在Acc印t函数中调用阻塞,等候下一个连接。依此类推,在任何时候总有一个监控通 信线程在等候新的连接。因而,采用本实用新型所述的实现方法,可以支持多个监控中心并 发操作,并具有良好的请求响应能力.除监控通信线程外,其他各线程均采用事件驱动的 结构。综上所述,采用消息触发不仅可以使程序具有良好的性能,而且在没有消息到达时, 线程可被挂起,不占用CPU资源,有助于提高整个系统的效率.监控线程因为通信流量较 大,且其主要工作集中在Socket(即插座)的读写操作上,采用阻塞调用不会明显增加CPU 的负担,但却可以大幅度降低程序实现时的复杂性,提高协议运行的可靠性。实际通信时, 通信服务器的主要连接方式以TCP "长连接"为主,客户端连接上服务器后就一直保持此连 接,阻塞方式通信能够适应其"链接时间长,通信密度低"的特点。采用阻塞方式通信,操作 系统会剥夺阻塞线程的剩余时间并交给其它线程,实现多线程并发通信。 3、实用价值高,本实用新型为一种高性能开放式通信服务器,其通过对服务器结 构进行可重用设计和对服务器性能方面进行优化设计后,极大地提高了单机服务的性能和 稳定性,并能迅速兼容新的GPS设备,从而使系统的营运费用进一步降低,对系统的应用推 广具有重要的实际意义和广阔的商业前景。核心部件网,据交换机的通信服务器系统的性 能进行整体设计。 综上所述,本实用新型设计合理、使用操作简便且使用效果好、响应速度快,能实 现多线程并发通信,有效克服传统通信服务器所存在的单台通信服务器并发服务容量小、 高峰时刻信息延时严重、系统运行时间长等实际问题。 下面通过附图和实施例,对本实用新型的技术方案做进一步的详细描述。
图1为本实用新型的结构框图。
附图标记说明 1-中央处理器;2-数据缓冲池;3_服务线程池; 4-客户端; 5-数据接口电路;6-多线程服务器。
具体实施方式如图1所示,本实用新型包括中央处理器l,还包括按时间先后顺序对多个客户端 4所发送连接请求数据进行队列式存储并按先后顺序逐一输出的数据缓冲池2,和由中央 处理器1启动时所预先创建的多个空闲线程组成并具有按照链表方式动态创建与注销线 程功能的服务线程池3。所述数据缓冲池2和服务线程池3均与中央处理器1相接,中央处 理器1与客户端4间通过数据接口电路5进行连接。所述数据缓冲池2的数据存取采用先 进先出的机制,由一个队列模板类来实现。所述服务线程池3由于要动态地创建和注销线 程,因而由一个链表模板类实现。综上,由中央处理器1、数据缓冲池2、服务线程池3和数 据接口电路5组成一个多线程服务器6。 所述数据接口电路5为有线和/或无线数据接口 。 以上所述,仅是本实用新型的较佳实施例,并非对本实用新型作任何限制,凡是根 据本实用新型技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍 属于本实用新型技术方案的保护范围内。
权利要求一种大规模、多线程通信服务器,包括中央处理器(1),其特征在于还包括按时间先后顺序对多个客户端(4)所发送连接请求数据进行队列式存储并按先后顺序逐一输出的数据缓冲池(2),和由中央处理器(1)启动时所预先创建的多个空闲线程组成并具有按照链表方式动态创建与注销线程功能的服务线程池(3);所述数据缓冲池(2)和服务线程池(3)均与中央处理器(1)相接,中央处理器(1)与客户端(4)间通过数据接口电路(5)进行连接。
2. 按照权利要求1所述的一种大规模、多线程通信服务器,其特征在于所述数据接口电路(5)为有线和/或无线数据接口 。
专利摘要本实用新型公开了一种大规模、多线程通信服务器,包括中央处理器,还包括按时间先后顺序对多个客户端所发送连接请求数据进行队列式存储并按先后顺序逐一输出的数据缓冲池,和由中央处理器启动时所预先创建的多个空闲线程组成并具有按照链表方式动态创建与注销线程功能的服务线程池;所述数据缓冲池和服务线程池均与中央处理器相接,中央处理器与客户端间通过数据接口电路进行连接。本实用新型设计合理、使用操作简便且使用效果好、响应速度快,能实现多线程并发通信,有效克服了传统通信服务器所存在的单台通信服务器并发服务容量小、高峰时刻信息延时严重、系统运行时间长等实际问题。
文档编号H04L29/06GK201491032SQ200920034299
公开日2010年5月26日 申请日期2009年8月21日 优先权日2009年8月21日
发明者李士宁, 李志刚, 蒙海军, 高涛 申请人:西安迅腾科技有限责任公司