RNSServer- 服务端开发框架
产品背景
随着信息技术的发展,物联网的发展也实现了由概念阶段到实用阶段的跨越。越来越多的工业嵌入式设备接入互联网,就需要有一套管理系统来管理这些接入互联网的设备。传统的设备商擅长制造设备,但是网络应用服务器的开发却不是这些厂家的长项。因此它们迫切需要一套可以快速应用的网络服务器开发框架。因此,RNS(Rapid Network Server)开发框架应运而生。基于RNS,可以快速搭建管理这些设备的应用系统。
功能特性
系统结构
系统分为服务端、管理端、设备端。服务端管理与设备的连接,暂存设备的状态数据并向设备发送特定的数据。管理端可以查看设备列表,控制设备的状态等。设备端模拟如下图所示:
协议设计
通信协议采用类HTTP协议。最大限度复用已有代码。
技术原理
系统采用IOCP编程模型设计。IOCP全称I/O Completion Port,中文译为I/O完成端口。IOCP是一个异步I/O的API,它可以高效地将I/O事件通知给应用程序。与使用select()或是其它异步方法不同的是,一个套接字[socket]与一个完成端口关联了起来,然后就可继续进行正常的Winsock操作了。然而,当一个事件发生的时候,此完成端口就将被操作系统加入一个队列中。然后应用程序可以对核心层进行查询以得到此完成端口。优点是帮助维持重复使用的内存池。去除删除线程创建/终结负担。利于管理,分配线程,控制并发,最小化的线程上下文切换。优化线程调度,提高CPU和内存缓冲的命中率。