资源描述
目 录
第1章 开发背景及相关技术 1
1.1 系统开发背景 1
1.2 系统开发的目的和意义 1
1.3 开发技术简介 2
1.3.1 开发语言——Java简介 2
1.3.2 Oracle简介 2
1.3.3 TomCat简介 3
1.3.4 开发方案简介 3
第2章 系统分析 5
2.1 可行性分析 5
2.2 系统的总体需求分析 5
2.2.1 无线分析系统的使用范围 5
2.2.2 系统功能描述 5
2.2.3 无线环境分析系统的用户特征 6
2.3系统功能模块需求 6
2.3.1 首页 6
2.3.2 资源配置 6
2.3.3 专项优化 6
2.3.4 拓扑呈现 7
2.3.5 图纸管理 7
2.3.6 系统配置 7
第3章 数据库设计 8
3.1 数据库的设计 8
第4章 系统设计 17
4.1数据库设计 17
4.1.1 系统业务流程图 17
4.1.2 E-R 图设计 17
4.2 系统功能设计 19
4.3 系统界面设计 25
} 39
第5章 系统的测试与维护 40
5.1系统的测试 40
第6章 结论与展望 42
6.1 系统总结 42
6.2 前景展望 42
参考文献 43
致 谢 44
附 录 45
第1章 开发背景及相关技术
1.1 系统开发背景
自从乔布斯把苹果手机iphone带给世人,智能手机就以它不可阻挡的魅力迅速走进大家的生活,联通,移动,电信三大运营商顺势为智能手机提出各种无线网络——例如wlan,td,gsm。但是一个地方无线网络的信号质量会很大程度的影响用户的使用感知,所以很有必要通过一款软件来智能的测试,监控,管理,查看这个地方的无线网络信号质量。所以我们应运制作了这个基于wlan的无线网络分析系统。该系统分为web上面的服务端和智能安卓手机上的客户端两个部分。而我做的是前者web上的服务端,主要功能是将安卓手机上面测试的无线网络数据通过约定端口保存在电脑的数据库中并且在网页上予以显示。
既然是网络分析系统,人们当然希望它能实现网页显示的基本功能和一些管理功能,由于改系统主要是为运营商管理网络信号而制作的,所以该系统的用户一般为联通移动电信等运营商。
1.2 系统开发的目的和意义
无线分析系统是通过电脑像安卓手机下达某个热点的无线测试信息然后接收并且储存测试结果。而web端主要分为首页,资源配置,专项优化拓扑呈现,图纸管理,系统配置五个子功能。本项目开发的目的是应中国移动公司的要求制作一款可以为其测试任意一个热点的无线的软件。
由于传统移动公司的基站主要是用于通讯信号的传送,而现在要求它们要具备为智能手机提供无线上网的功能所以就必须要有一款软件可以安全,可靠,有效,方便的来对一个热点进行测试,本系统就是为了符合以上要求而诞生的。有了这样一个系统之后移动公司的无线网络管理人员就可以在电脑上方便快捷的向基层的测试人员下发热点的测试命令,从而很快的获得准确的测试数据,并且可以直观的通过返回的数据判断该热点的网络质量。
综上所述,该系统对运营商快捷,准确的测试了解自己管理的无线网络质量提供了一个高效的平台。极大的方便了运营商的管理,从而达到节省开支,提高效率的目的。
1.3 开发技术简介
1.3.1 开发语言——Java简介
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。
Java语言的出现以及它与计算机系统平台无关的独特性从根本上改变了计算机应用程序的使用方式,由于Java程序可以不依赖任何现有的某个 .操.作.系.统. 而直接运行在某种机器或CPU(中央处理器)上。[6]
正是由于java的开放性和平台无关性才使得我们选择java来开发这个程序,再加上j2ee在网页开发中的便捷所以才能让这种语言更好的发挥开发的优势。[4]
1.3.2 Oracle简介
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
JDBC(Java Data Base Connection)是Java数据库连接API。简单的说说,JDBC能完成3件事;
(1) 与一个数据库建立连接。
(2) 向数据库发送SQL语句。
(3) 处理数据库返回的结果。[2]
数据库语言我们使用的是SQL。SQL 即Structured Query Language全称是结构化查询语言, SQL Server 2005是微软公司开发的一个大型的关系数据库系统,它为用户提供了一个安全、可靠、易管理和高端的客户/服务器平台,而且SQL语言有统一的操作规范、操作方式集合化、简单智能化、功能强大、语句简洁和简单易学等特点,便于使用者掌握和使用[5]。
1.3.3 TomCat简介
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于它是一款免费的轻量型的软件所以在使用人数不是很多的时候它是使用首选。而且由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可。[7]
1.3.4 开发方案简介
本系统的开发工具是MyEclipse,MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。尤其是在做j2ee开发时对于MyEclipse中的查件的使用会是的开发的速率有很大的提升,所以
JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm)中加入Java程序片段和JSP标记,就构成了JSP页面[9]。
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。[10]
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用[8]
系统采用基于J2EE技术的三层BS Web应用架构,使用MVC架构来进行开发,表现层采用基于Ajax技术的Jquery组件库实现,系统的数据访问操作通过数据集成层的DAO抽象接口访问数据库等数据资源,[1]
本系统是为移动公司开发属于企业级应用程序与简单的桌面应用程序相比较,企业级应用程序一般具有以下特点。
(1)分布式。企业应用程序通常不是运行在单独的个人计算机上,拥有大群的用户,并且对这些用户通过网络进行服务。
(2)安全性。实现应用系统的正常操作和运转,对于企业的成功来说至关重要。但仅仅做到这一点还不够,还必须保证系统运行的安全可靠性。
(3)可扩展性。企业需要时刻跟随着市场的变化而变化所以企业软件也要时刻变化,所以系统的可扩展性是非常重要的。
(4)集成化。信息是企业资产的重要部分,但目前企业多数信息作为数据存放在老的或已经过时的应用系统中。[3]
第2章 系统分析
2.1 可行性分析
可行性分析是通过对项目的内容和条件进行分析,从技术、经济、工程等方面进行调查研究和比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。本系统从以下几个方面内容进行可行性研究。
1.技术可行性:本系统采用了比较实用的Java语言、JSP开发框架和Oracle数据库作为进行开发。
2.经济可行性:本系统主要是针对网络运营商设计的,开发经费对于中国移动公司来说在经济上是可以接受的。
3.操作可行性:主要是管理人员和用户是否支持,操作的难度是否满足用户要求。
综合上述,本系统的开发目的已明确,在经济和技术操作等方面都可行,并且开发成本低,成效明显,因此开发本系统是完全可行的[11]。
2.2 系统的总体需求分析
2.2.1 无线分析系统的使用范围
无线分析系统主要针对中国移动公司测试热点无线网络而开发的,所以其主要适用于各个地方的所有热点以及中国移动的机站信号管理。所以本系统使用于存在中国移动无线网络信号覆盖的范围。
2.2.2 系统功能描述
Wlan优化分析系统实现的是方便移动运营商对无线网络的管理,通过以上对无线分析系统的任务和目标的分析可以看出,一个标准的应用系统主要功能模块分为以下两个:一个web服务端,一个安卓手持终端,web服务端主要是能够实现下达测试任务和存储并查看测试结果的功能,后台管理的功能比较丰富,管理员负责将测试信息添加到数据库,对用户信息有相应操作的权限,管理员最重要的是进行测试数据管理,还有对系统用户的管理。本系统还包括一个图纸管理的功能,主要进行热点的楼层的图纸进行上传和查看。
1.Web服务端的主要功能是:
每个用户都有自己的用户名和密码,这就是各自的登录信息,在服务器开启的情况下,用户可以从网址 http://localhost:8080/login.jsp 登陆界面进入系统,用户名为“admin” 密码为“1” 进入系统后就可以进入相应的操作界面,如果是拥有相应的权限,系统会允许进行相应的操作。用户可以进行资源配置,专项优化,拓扑呈现图纸管理操作,方便简单,管理员还可以进行系统配置操作。
首页功能丰富详细,简单大方,看起来舒适方便,用户可以很清楚看到多个快捷入口以及该系统的大部分应用功能,用户使用过程中还可以自由跳转,查看自己想要的信息,以及可以对有些信息进行修改,大大增加了使用的灵活性。
2. 管理员管理的主要功能是系统配置:
系统配置的主要功能是部门管理,用户管理,权限管理,参数管理,日志管理,重设密码功能。主要是对系统使用者的信息以及权限进行管理。对于拥有管理员权限的用户可以登录服务器端,对系统进行整体的管理和信息更新。
2.2.3 无线环境分析系统的用户特征
Wlan优化分析系统的使用者是网络运营商管理员和网络运营商用户,一个是服务端,一个是客户端,进行了严格的划分,网络运营商的用户会拥有查看信息权限的普通用户,管理员是整个系统的管理人员。
2.3系统功能模块需求
2.3.1 首页
用户登录的是服务端,所以用户界面要求符合用户的使用习惯,让用户感到自然、合理、舒适、简单,由于本系统是优化分析系统,所以在正确输入用户名和密码之后,就可以进入登陆的首页了。首页中提供了弱覆盖分析,AP无线查询,经纬度核查,拓扑呈现,综合干扰分析,信号分布分析,辅助设计工具七项快捷入口,可以让用户快捷直观的享受本系统带来的服务。还有弱覆盖分析,经纬度核查,信号分布分析
2.3.2 资源配置
资源配置分为经纬度核查和AP任务查询。经纬度核查拥有查询热点和地址的功能可以在百度地图提供的API上面实现定点查询,页面分为全部,已核查,未核查三个部分。并且可以导出数据。
AP任务查询可以查询测试的AP任务,可以新增和查看删除AP任务。
2.3.3 专项优化
专项优化分为AP无线查询,弱覆盖分析信号分布分析,综合干扰分析四项。
AP无线查询具有查询热点AP和IP地址。如果一个AP上传了图纸的话还可以点击拓扑定位查看他的图纸。
弱覆盖分析可以查询已有的城市和一定时间粒度内的信号弱覆盖情况,也可以导出数据。
信号分布分析可以查询已有城市的一定时间粒度内的信号分布情况,也可以导出数据。
综合干扰分析可以查询已有城市的一定时间粒度内的信号综合干扰情况。也可以导出查询的数据。
2.3.4 拓扑呈现
拓扑呈现可以使用百度地图的API,在百度地图API上面呈现想要查询的热点。也可以输入一个自己想要查询的热点进行呈现。
2.3.5 图纸管理
图纸管理分为图纸管理和图纸导入两个部分。
图纸导入可以为一个热点导入图纸,而图纸管理可以查询修改删除图纸,并且可以查询一个二级热点的图纸。
2.3.6 系统配置
系统配置分为,部门管理,用户管理,权限分配,参数管理,日志管理重设密码六个部分。
部门管理可以为管理者添加所属部门,并且带有修改删除用户部门的功能。
用户管理可以对本系统的用户进行管理,具有添加删除修改用户信息的功能。
权限分配可以为需要的用户分配应有的权限,本系统默认有一个用户名为admin的用户拥有所有权限。
参数管理可以为端口配置相应的参数。
日志管理可以记录下来用户登录本系统所做的操作,并且有查询邪恶删除功能。
重设密码可以为用户修改密码所用。
第3章 数据库设计
3.1 数据库的设计
通过对系统功能的分析可知,本系统主要包括如下的数据库信息:
(1)用户表:该表保存了系统用户的基本信息,属性有用户编号、用户名称、用户类型、用户性别。其中用户编号为主码,它是用户信息的唯一标识。表结构如表1所示。
系统数据库表结构如下:
表1 用户表(UserInfo)
序号
名称
数据表(字段)
说明
数据类型
表单类型
1
用户名
SYS_USER(USER_NAME)
用户用来登录系统的唯一标识
String
Text
2
密码
SYS_USER(USER_PASSWORD)
每个用户名对应的唯一密码
String
Text
3
权限
SYS_USER_RIGHT(RIGHT_ID)
用户所具有的权限
String
——
表2 经纬度核查表(Check)
序号
名称
数据表(字段)
说明
数据类型
表单类型
1
热点名称
AC_LAT_LONG(ACNAME)
热点的名称
String
Text
2
热点地址
AC_LAT_LONG(ACLOVATION)
热点的地址
String
Text
3
系统中经纬度
AC_LAT_LONG(ORIGINALLOCATION)
AP在系统中保存的经纬度(原始导入的经纬度大小)
String
Text
4
解析后经纬度
AC_LAT_LONG(CHECKEDLOCATION)
针对热点地址或热点名称,通过Google GeoCoding API解析后的经纬度大小
String
Text
5
准确度
AC_LAT_LONG(DISTANCE)
表示两个经纬度地点之间的实际距离大小,单位米
double
Text
表3 弱覆盖分析表(Weak coverage)
序号
名称
数据表(字段)
说明
数据类型
表单类型
1
城市
AC_CLASS_ASSOCIATE(STRCITY)
热点所在城市名称
String
Select
2
区县
AC_CLASS_ASSOCIATE(COUNTRY)
热点所在城市的区县名称
String
Select
3
热点名称
AC_CLASS_ASSOCIATE(CLASSONEAC,CLASSTWOAC)
(一级或二级)热点名称
String
Text
4
AP数量
RM_DEVICE(DEVICE_ID)
统计一级或二级热点区域中的AP总数量
Number
Text
5
是否弱覆盖
NHM_AP_RSSI_KPI_x(RSSI)
热点是否处于弱覆盖状态(只要有一个AP是弱覆盖,对应值为“是”)
String
Text
6
弱覆盖AP数量
NHM_AP_RSSI_KPI_x(RSSI)
判断热点下处于弱覆盖状态的AP总数量
Number
Text
7
用户数
无
连接该热点的用户总数
Number
Text
8
信噪比
NHM_AP_RSSI_KPI_x(RSN)
热点下的所有AP的信噪比累加
Number
Text
9
场强
NHM_AP_RSSI_KPI_x(RSSI)
热点下的所有AP的场强累加
Number
Text
10
信道质量
NHM_CHANNEL_CHANGE(QUALITY)
热点下所有AP的信道质量的累加
Number
Text
11
时间粒度
无
可以指定查询分析的数据表的时间粒度
String
Select
12
起止时间
NHM_AP_RSSI_KPI_x(TIMESTAMP)
AP无线性能属性不同时间粒度表中的AP性能统计时间
String
Select
补充说明:
① NHM_AP_RSSI_KPI_x中的“x”表示所统计的时间粒度表,x=DAY|HOUR;
②“无”表示通过其他方式得到数据的具体值
③有些数据是通过对应字段进行一定处理后得到,如“弱覆盖AP数量、是否弱覆盖”等,具体算法见下面“相关算法”
表4 综合干扰分析表(Analysis)
序号
名称
数据表(字段)
说明
数据类型
表单类型
1
城市
AC_CLASS_ASSOCIATE(STRCITY)
热点所在城市名称
String
Select
2
区县
AC_CLASS_ASSOCIATE(COUNTRY)
热点所在城市的区县名称
String
Select
3
热点名称
AC_CLASS_ASSOCIATE(CLASSONEAC,CLASSTWOAC)
(一级或二级)热点名称
String
Text
4
AP数量
RM_DEVICE(DEVICE_ID)
统计一级或二级热点区域中的AP总数量
Number
Text
5
热点类型
AC_CLASS_ASSOCIATE(AC_TYPE)
二级热点的具体类型
String
Text
6
被干扰AP数量
NHM_CHANNEL_CHANGE(QUALITY)
热点中被干扰的AP的总数
Number
Text
7
信道质量
NHM_CHANNEL_CHANGE(QUALITY)
热点下所有AP的信道质量的累加
Number
Text
8
时间粒度
无
可以指定查询分析的数据表的时间粒度
String
Select
9
起止时间
NHM_AP_RSSI_KPI_x(TIMESTAMP)
AP无线性能属性不同时间粒度表中的AP性能统计时间
String
Select
补充说明:
① NHM_AP_RSSI_KPI_x中的“x”表示所要统计的时间粒度表,x=DAY | HOUR;
②“无”表示通过其他方式得到数据的具体值;
③有些数据是通过对应字段进行一定处理后得到,如“弱覆盖AP数量、是否弱覆盖”等,具体算法见下面“相关算法”
表5 信号分布分析表(Signal)
序号
名称
数据表(字段)
说明
数据类型
表单类型
1
城市
AC_CLASS_ASSOCIATE(STRCITY)
热点所在城市名称
String
Select
2
区县数量
AC_CLASS_ASSOCIATE(COUNTRY)
热点所在城市的区县的数量
Number
Text
3
热点数据量
AC_CLASS_ASSOCIATE(CLASSONEAC,CLASSTWOAC)
该城市(区县)的(一级或二级)热点数量总和
Number
Text
4
AP数量
RM_DEVICE(DEVICE_ID)
(一级或二级)热点区域中关联的AP数量
Number
Text
5
平均信号强度
NHM_AP_RSSI_KPI_x(RSN)
对热点下AP的场强数据求平均值
Number
Text
6
用户数
无
连接该热点的用户总数
Number
Text
7
平均信噪比
NHM_AP_RSSI_KPI_x(RSSI)
对热点下AP的信噪比数据求平均值
Number
Text
8
场强
NHM_AP_RSSI_KPI_x(RSN)
对热点下AP的场强求平均值
Number
Text
9
信道质量
NHM_CHANNEL_CHANGE(QUALITY)
热点下所有AP的信道质量的累加
Number
Text
10
区县
AC_CLASS_ASSOCIATE(STRCOUNTRY)
热点所在区县的名称
String
Text
11
时间粒度
无
可以指定查询分析的数据表的时间粒度
String
Text
12
起止时间
NHM_AP_RSSI_KPI_x(TIMESTAMP)
AP无线性能属性不同时间粒度表中的AP性能统计时间
String
Text
补充说明:
① NHM_AP_RSSI_KPI_x中的“x”表示所要统计的时间粒度表,x=DAY | HOUR;
②“无”表示通过其他方式得到数据的具体值;
③有些数据是通过对应字段进行一定处理后得到,如“弱覆盖AP数量、是否弱覆盖”等,具体算法见下面“相关算法”
表6 AP无线查询表(AP Wireless query)
序号
名称
数据表(字段)
说明
数据类型
表单类型
1
城市
RM_DEVICE(CITY)
AP所在城市名称
String
Select
2
区县
RM_DEVICE(COUNTRY)
AP所在区县的名称
String
Select
3
热点
RM_DEVICE(AC_NAME)
所属二级热点名称
String
Select
4
AP名称
RM_DEVICE(DEVICE_NAME)
热点对应的AP名称
String
Select
5
平均上行信号强度
——
——
Number
Text
6
平均上行信噪比
——
——
Number
Text
7
信道质量
NHM_CHANNEL_CHANGE(QUALITY)
AP的信道质量
Number
Text
8
信噪比
NHM_AP_RSSI_KPI_HOUR(RSN)
AP的信噪比(小时粒度)
Number
Text
9
场强
NHM_AP_RSSI_KPI_HOUR(RSSI)
AP的场强大小(小时粒度)
Number
Text
10
IP地址
AC_DEVICE (IP_ADDR)
AP设备的IP地址
String
Text
表7 拓扑呈现(Present)
序号
名称
数据表(字段)
说明
数据类型
表单类型
1
热点
AC_CLASS_ASSOCIATE(CLASSONEAC,CLASSTWOAC)
(一级或二级)热点名称
String
Text
2
信号终端
RM_AP_SSID_NEIGHBOUR(MAC_ADDRESS)
——
——
3
频点
NHM_CHANNEL_CHANGE(CHANNEL)
AP设备设置的频点(信道号)
Number
Text
4
SSID
AC_DEVICE(SSID)
AP的服务SSID名称
String
Text
5
场强
NHM_AP_RSSI_KPI_HOUR(RSSI)
AP的场强大小(小时粒度)
Number
Text
6
信噪比
NHM_AP_RSSI_KPI_HOUR(RSN)
AP的信噪比(小时粒度)
Number
Text
7
发射功率
——
——
8
信道质量
NHM_CHANNEL_CHANGE(QUALITY)
AP的信道质量
Number
Text
表8 图纸导入表(AP Wireless query)
表名
ac_cad_info
列名
数据类型
空
约束条件及含义
strId
VARCHAR2(50)
N
自动生成的主键字段
acName
VARCHAR2(50)
N
热点名称
cadName
VARCHAR2(50)
Y
图纸名称
cadPic
VARCHAR2(50)
Y
CAD图纸保存文件名
strCreator
VARCHAR2(50)
Y
创建记录的人员用户名
dtCreatTime
DATE
Y
创建记录的时间
补充说明
表8 AP经纬度核查表(AP Verification)
表名
ac_lat_long
列名
数据类型
空
约束条件及含义
strId
VARCHAR2(50)
N
自动生成的主键字段
acName
VARCHAR2(50)
N
热点名称
acLocation
VARCHAR2(100)
Y
热点地址
originalLocation
VARCHAR2(50)
Y
热点的系统中经纬度大小,经度纬度之间用英文半角“,”隔开
checkedLocation
VARCHAR2(50)
Y
热点被解析后的经纬度大小,经纬度之间用英文半角“,”隔开
distance
NUMBER
Y
系统中经纬度和解析后经纬度之间的实际距离大小(单位米)
strCreator
VARCHAR2(50)
Y
创建记录的人员用户名
dtCreatTime
DATE
Y
创建记录的时间
补充说明
如果解析后经纬度为空,则distance为0;如果系统中经纬度为空,则distance为10000000000.
第4章 系统设计
4.1数据库设计
4.1.1 系统业务流程图
图1系统业务流程图
4.1.2 E-R 图设计
在初步E-R图中,可能存在一些冗余的数据的实体间冗余的联系。所谓的冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。[5]在设计系统时需要对整个系统的E-R 图进行设计:
图2测试任务E-R图
图3系统用户E-R图
4.2 系统功能设计
1. 系统功能图
系统的应用结构采用客户端-服务端模式。客户端通过浏览器访问值服务端进行相关操作:
系统所有应用基于互联网;
系统管理员通过有线(无线)网络与服务器相连,完成“WLAN优化分析系统平台”的各项管理操作。
整个系统的功能方框图如图4所示:
图8 系统层次框架图
图4系统设计表
2. 接口设计
①.用户接口
身份验证:在用户使用本系统之初,首先需要登录,即进行身份认证。此时,用户需要输入自己的用户名和密码。若不成功,系统会提示重新输入,若成功,则进入各功能界面。
用户信息管理:对用户的信息进行管理。例如:用户编号、用户名称、密码、用户类型、性别等信息进行的管理。
②.外部接口
硬件接口:支持数据库操作。
软件接口:运行于Windows 2000/XP或更高的版本的操作系统之上,服务器需要安装数据库。
③.内部接口
ResultServlet.java该接口用于获得是否成功读取测试结果。
private void execute(HttpServletRequest req, HttpServletResponse resp) throws IOException, SQLException
{
Globa globa = new Globa();
ResultXML result = new ResultXML(globa,true);
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String content = req.getParameter("testResult");
if(content !="" && content != null ){
InputStream is = new ByteArrayInputStream(content.getBytes("UTF-8"));//注意content的值是否为空,做判断。
boolean i = result.readresult(is);
if(i == true){
resp.getWriter().write(returnResult("OK").toString());
}else {
resp.getWriter().write(returnResult("NO").toString());
}
}else{
resp.getWriter().write(returnResult("NO").toString());
}
globa.closeCon();
}
private StringBuffer returnResult(String result)
{
StringBuffer sbReturnContent = new StringBuffer("<?xml version='1.0' encoding='utf-8'?> ");
sbReturnContent.append("<info>");
sbReturnContent.append("<result>"+result+"</result>");
sbReturnContent.append("</info>");
return sbReturnContent;
}
FetchTaskServlet.Java该接口用于向手机客户端返回数据库中的测试任务信息。
private void execute(HttpServletRequest req, HttpServletResponse resp) throws IOException
{
Globa globa = new Globa();
StringBuffer sbReturn = new StringBuffer("<?xml version='1.0' encoding='utf-8'?> ");
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
try
{
Task task = new Task(globa,false);
Vector<Task> vctAd = new Vector<Task>();
vctAd = task.listLastState(" ", 0, 0);
sbReturn.append("<info>");
if (vctAd!=null && vctAd.size() > 0)
{
// sbReturn.append("<task>");
for (int i = 0; i < vctAd.size(); i++)
{
System.out.println("12222"+vctAd.size());
task = vctAd.get(i);
if (task!=null)
{
sbReturn.append(returnTask(task));
}
}
// sbReturn.append("</task>");
}
sbReturn.append("</info>");
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} finally
{
// 关闭数据库连接对象
globa.closeCon();
System.out.println(sbReturn.toString());
resp.getWriter().println(sbReturn.toString());
}
}
private StringBuffer returnTask(Task task)
{
StringBuffer sbReturnContent = new StringBuffer();
if (task!=null)
{
sbReturnContent.append("<task>");
sbReturnContent.append("<strId>" + task.getStrId() + "</strId>");
sbReturnContent.append("<strName>" + task.getStrName() + "</strName>");
sbReturnContent.append("<strMac>" + task.getStrMac() + "</strMac>");
sbReturnContent.append("<strTestContent>" + task.getStrTestContent() + "</strTestContent>");
sbReturnContent.append("<strDesc>" + task.getStr
展开阅读全文