1.系统概述
1.1 业务背景
web服务提供了可供浏览的网页,对浏览web服务的需求是本程序的背景,当然现在已经有很多web服务器的很好的实现,本程序也不可能说做得比知名的那些要好,在这里程序的目的是为了锻炼网络程序设计与实践和软件系统设计与开发实践能力。
1.2 总体目标
实现一个web服务器,能够提供让标准浏览器用HTTP协议来进行访问的网页,并且能够支持多线程非阻塞的服务,最后会提供一个web服务器程序。
2.系统分析和设计
2.1 系统概述
2.1.1 业务需求描述为标准浏览器提供web服务
能够接受http请求并返回html网页
能够支持多线程非阻塞的访问
2.1.2 外部接口需求硬件接口:无直接硬件接口,只通过OS等软件接口与硬件间接交互
软件接口:相应的JDK、JVM环境,以及标准的浏览器软件
通讯接口: HTTP协议
2.1.3 非功能性需求Web服务器要求响应时间要短
安全可靠
2.1.4 约束条件
开发环境
Eclipse-Java IDE,windows7系统
整个项目由Java开发,所以要求系统装有相应的JDK、JVM环境,另外,web服务器要求系统有http协议的接口,web客户端即为标准的浏览器软件
开发规范
文件命能清楚的描述其功能
代码中的空格与空行上下保持一致
有适量且清楚的注释
界面整洁,方便使用
所有函数及变量有能描述其功能的名字
应注意代码的简洁和优化
2.2 用例模型
2.2.1 用例图
2.2.2 详细描述用例名称
Web浏览器查看网页
参与者与关注点
Web浏览器(用户):希望得到快速的响应,能够看到正确的网页。Web服务器:希望能够快速正确地完成浏览器请求,并且能够处理多用户同时访问的场景。
事件流
主成功场景(或基本流程): 用户在浏览器中输入要访问的网址:http://localhost:6789/13S103066.html; web服务器解析HTTP协议请求; web服务器处理该请求并通过TCP连接向浏览器返回目标网页html文件;浏览器解析并显示该html文件;用户看到该网页;完成。 扩展(或替代流程): 传递网页的TCP连接建立失败:web服务器报错给服务器管理员,管理员检查服务器状态是否异常;Web服务器没有响应(浏览器无法连接到服务器):检查web服务器是否已经运行、网址是否输入正确。
前置条件
Web浏览器已运行
2.3 领域类图
2.3.1 Web(TCP)类图
2.3.2 Web(TCP)核心顺序图
2.4 体系结构设计
2.5 程序流程图
2.6 测试截图
3.总结
综上所述,程序实现了一个支持多线程访问的Web服务器。在简单规模的测试及使用下,程序运行正确且良好,在较大用户数下表现得一般,响应时间不是很好。作为一个学习网络程序设计的程序已经完成了目标。
这次作业中,复习了很多计算机网络的相关知识的同时也学到了很多新的实践方面的知识,锻炼了编程能力,感谢老师的辛勤付出。