3 软件设计
3.1 内核创建及裁剪
Windows CE是一个开放的、可裁减的、32位的实时嵌入式窗口操作系统。因此要实现Web Server功能必须对内核裁剪。除了实现基本的WINCE 5.0功能外,还需要在定制内核时在Platform内添加DM9000网卡驱动,串口驱动,USB驱动,MFC,SDK(标准工具集)、HTFPD和SOAP协议等系统必备驱动和协议。Windows CE上Web Server的通信协议是HTTP协议,HTTP的消息机制是基于请求一应答模式。
HTTP协议工作原理:数据包经过网络传送到DM9000AEP的以太网控制器后,经系统内部控制器的TCP/IP堆栈对数据包进行解析,然后对其打包或解包,但这些数据包还必须经Web服务器处理。
3.2 Web服务器设计
HTTPD服务器的工作流程如图5所示。系统采用HTTPD多线程并发服务器结构的设计思想,其工作特点是为每个客户机请求分配一个线程,即服务器在同时处理多人请求。由每个线程处理客户机的请求。在请求处理完毕后,子线程退出。服务器接收子线程的退出信号为其他的客户机请求分配资源。
图5中,HTTPD服务器由main()函数开始,首先配置文件,设置用户ID函数和组ID函数,通过getopt(argc,argv,"s:f:p:u:g:")函数获取配置选项,读取配置。其中:s为standalone服务器运行方式;f为config_fie即配置文件;p为端口号,HTTPD默认端口号为80;u为用户ID即uid;g为组ID,即gid。
然后判断是否工作在standalone.服务器运行方式上,如果是则运行standalone_main()函数,如果不是则访问process request()函数。
|