服务器概要设计.docx
服务器概要设计全文共5页,当前为第1页。目录功能概述2网络通信层3连接生命周期的管理3接口3异步IO缓冲内存池3本地数据与字节流数据的互相转换4信令和通信数据结构5伪代码定义5命令管理7数据有效性检测8文件传输通道9日志10功能概述服务器主要业务功能是连接物管和终端,为社区物管和管理中心提供管理功能,使其能够统一管理终端。服务器的功能模块包括:数据管理,数据包括房屋数据、住户数据、配租数据、门禁卡数据、终端配置数据等;状态管理,服务器需要维持物管和终端的连接,保持连接状态的可增删改查;命令管理,物管和终端之间的交互命令有确认机制,命令通过服务器传递,服务器需要保证命令传递的可靠性;数据有效性检测,服务器需要定期检测一些数据的有效性,包括配租数据是否〔临近〕到期、门禁卡白名单数据与终端定期交换等;文件传输通道,包括软件版本升级、数据文件传输等;日志。网络通信层负责业务命令和数据的发送接收。由于物管、终端和服务器之间命令和数据需要精确送达,所有业务都采用TCP来实现。 IOCP模型是Windows服务器开发中性能最好的非阻塞异步IO模型,所以通信层采用IOCP模型构建。Windows下有五种非阻塞I/O模型:选择〔Select〕、异步选择〔WSAAsyncSelect〕、事件选择〔WSAEventSelect〕、重叠I/O〔Overlapped I/O〕和完成端服务器概要设计全文共5页,当前为第2页。口〔Completion Port>。Select是同步IO模型,同时处理的任务有限〔上限1024〕,不符合处理成千上万连接的要求;WSAAsyncSelect也是同步IO模型,以接收Windows消息为基础,不符合服务器控制台程序要求;WSAEventSelect也是同步IO模型,需要创建与连接数等同的事件内核对象,资源未能高效利用,也排除在外;上面三种IO模型其实是一回事,都是类select模型,适合开发小型服务器或者客户端程序,而不适合需要接受成千上万连接的服务器程序。Overlapped I/O是异步IO模型,但是它需要程序员关心线程池的实现和调度〔类似Linu