《虚拟校园》软件系统架构说明Word下载.docx
- 文档编号:20496061
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:35
- 大小:447.63KB
《虚拟校园》软件系统架构说明Word下载.docx
《《虚拟校园》软件系统架构说明Word下载.docx》由会员分享,可在线阅读,更多相关《《虚拟校园》软件系统架构说明Word下载.docx(35页珍藏版)》请在冰豆网上搜索。
3)数据库容量:
1G
4)系统用户容量的需求:
静态用户(注册用户):
5000以上,动态用户(在线用
户):
500以上,并发数:
100以上
5)系统运行时间,7×
24小时不间断运行
●2系统采用的相关协议、技术和理论
2.1软件涉及的协议、技术和理论
开发一个系统仅仅有了好的创意,对于整个系统的成功还远远不够。
开发语言和环境的选择也是至关重要的。
开发环境的特点和运行方式能否很好的满足系统功能需求,能否为整个系统的资源提供最优化解决方案,是程序开发人员必须解决的问题。
它是决定整个系统性能好坏的重要因素之一。
除此之外,程序采用的模块化结构和程序的具体算法对于系统也是至关重要。
本系统中我们小组选择ECHO2+MYSQL+TOMCAT组合开发环境。
2.1.1关于echo2
Echo2(Ajax技术的开
框架用它做出的系统是一个单页面系统,所有的界面更新都是通过不停的更
新DOM来实现,而且系统只有一个URL,用户很难通过URL来非法进去系统
内部。
它通过一个强大的基于Ajax的展现(rendering)引擎,将程序员用
Java编写的代码转换成浏览器需要的HTML。
这个强大引擎包括两个部分:
服务器端和客户端。
服务器端引擎主要功能如下:
1.接收并处理客户端数据;
2.将服务器端组件和数据转换成XML
客户端引擎主要功能如下:
1.向服务器端发送相关数据;
2.解析服务器端返回的XML;
3.根据解析结果更新页面DOM节点;
Echo2包括其扩展组件库EchoPointNG和Echo2Extras,提供了非常丰富和非常绚丽的基本组件和扩展组件,使开发者基本不需要开发自己的组件就能非常出色的构建炫丽的客户端效果。
另外,Echo2还提供了ServerPush的一种模式,可以模拟C/S系统中的ServerPush的效果。
为了让开发者方便的看到服务器和客户端的通信情况,以及客户端DOM节点的状态,Echo2还提供了一个Debug模式。
这对我们开发B/S系统非常方便。
Echo2是EchoWeb框架的下一代版本。
一个可以用于开发基于Web胖客户端应用程序的框架。
图1,Echo2
2.1.2Ajax技术原理
Ajax由HTML、JavaScript™技术、DHTML和DOM组成,这一杰出的方法可以将笨拙的Web界面转化成交互性的Ajax应用程序。
Ajax不仅仅是一种时尚,它是一种构建网站的强大方法,而且不像学习一种全新的语言那样困难。
AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的webservice接口,并在客户端采用JavaScript处理来自服务器的响应。
因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。
同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。
Ajax应用程序的优势在于:
1.通过异步模式,提升了用户体验
2.优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
3.Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。
2.1.3MYSQL数据库软件
MYSQL是一个真正的多用户、多线程SQL数据库服务器。
SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。
MYSQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序MYSQLD和很多不同的客户程序和库组成。
2.1.4APACHETOMCAT服务器程序
Tomcat是一个免费的开源的SERVLET容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的SERVLET和JSP规范总能在Tomcat中得到体现。
Tomcat被JAVAWORLD杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。
与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件。
在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的WEBAPP目录下,Tomcat会自动检测到这个文件,并将其解压。
2.2开发工具
在本系统的开发过程中,采用了如下工具及软件:
△MySQL5.0
△ApacheTomcat5.5+JDK1.5
△Eclipsej2ee版
△JDBCforMYSQL
●3虚拟校园学习系统的总体设计框架
本系统采用ECHO2/Ajax技术实现的,用户的操作几乎是立即更新的。
因为我们按桌面程序的思维设计Web应用,我们不愿意让用户总是等待。
系统是一个基于WEB的应用程序,这就注定了本系统必须要以B/S架构为主要架构。
本系统采用Echo2框架,Echo2还提供了ServerPush的一种模式,可以模拟C/S系统中的ServerPush效果,当服务器收到外部事件以后更新客户端数据;
特定时间间隔更新客户端数据。
服务器发送功能具体的实现包括多用户交互程序。
它保持程序的用户们根据状态信息或者新闻来更新数据,并且当长时间运行时提供反馈。
因此可以说本系统就是一个应用程序,不是传统意义上的网站。
3.1.1系统功能的模块化设计
1)作品展示
学生用户可以将自己的作品发布到平台上,提供大家评论参考以及互相学习,可展示的作品比如自己写的文章、做的FLASH、写的算法或者程序等等。
用户可以管理自己发布的作品,包括对作品的删除和修改。
2)精品库
教师可以通过查看展示作品里的优秀作品,把它们放到精品库里,让所有的教师或者学生下载。
3)自我测试
用户选择一些考试,评定下自己的实力,测试自己。
4)注册登陆
用户应当能够方便注册成为学生,能够方便登陆系统,登陆后能方便修改自己的密码以及个人信息,登陆后能够退出登陆(注销登陆信息)。
5)网络硬盘
提供给用户空间,让他们上传资料。
6)邮件系统
用户之间可以互相发送站内信息,比如学生请教教师或者教师回复学生等。
7)聊天室模块
当前所有在线用户可以在聊天室中讨论问题
8)论坛模块
学生可以在论坛中发帖寻求帮助或者回答别人提出的问题
9)管理员系统
管理员对系统涉及的所有基础信息进行管理
10)教研室系统
老师在教研室中对涉及自身的所有信息进行管理,例如管理自己班级的学生信息、查看本班学生的作业和考试情况、上传学习资料供本班学生下载等等。
学生在教研室中进入自己老师的空间查看老师布置的作业,答疑,下载老师上传的课件等等。
11)学习室系统
此模块只有学生才能进入,学生对设计自身的所有信息进行管理,例如发布自己的作品、发送邮件、使用网络硬盘等等。
3.1.2用户功能的接口描述
该系统的主要用户分为教师、学生和管理员,他们对系统中的不同模块具有不相同的操作及其权限,设计的教师接口为教研室,其中集成了教师对系统所有模块的操作及其权限。
学生接口为学习室,其中集成了学生对系统模块的操作及其权限。
管理员接口为管理员后台,可以维护系统干净和进行数据库的操作。
1)教研室系统
个人信息系统:
显示及修改教师的所有基本信息。
作业系统:
教师可以查看、下载已经提交的作业以及布置新的作业。
信息发布:
教师给系统注册的所有用户可以发送站内信息。
考试安排:
教师可以安排考试。
学习资源:
教师可以上传学习资源到公共资源库。
学生作品管理:
教师可以将自己学生中的比较优秀的展示作品添加到精品库。
精品库:
教师可以下载或者删除精品库里的资料。
网络硬盘:
教师可以上传或者下载个人资料。
2)学习室系统
个人信息系统:
显示及修改该学生的所有基本信息。
学生可以上传、查看、下载自己已提交的作业。
学生可以给系统注册的所有用户发送站内信息。
自我测试:
学生进行自我测试。
教师空间:
学生可以进入教师空间,在系统的公共资源库中查找并下载资料、给老师发送邮件等。
作品展示:
学生可浏览大家已展示的作品,并展示自己的作品和删除自己已展出的作品。
学生可上传或者下载个人资料。
3)管理员系统
在此系统中管理员对所有设计系统的基本信息进行管理
学生用户管理:
教师用户管理:
作品,精品管理:
系统公告管理:
论坛管理:
3.1.3系统主要界面功能和一致性风格的设计
根据用户需求,需要对系统中大量的数据进行添加、删除、检索、显示等操作,设计中将信息管理技术引入WEB系统。
根据检索数据的特征,系统设计了两种可以进行重复检索的界面:
一种是需要输入关键字的检索界面,如:
学习资源模块中的资源搜索,另一种是不需要输入关键字,需要建立下拉列表,用户从中选择关键词的检索界面,如作品展示、精品库等。
另外,对于系统中各模块内容的显示,统一设计了可进行多种选择排序的显示方式。
3.1.4系统数据库设计
系统核心数据库如下所示
论坛数据库E-R图
系统的最终关系模型主要有
1)教师(帐号,密码,姓名,性别,简介,学院,教研室,上次登陆时间,代课班级)
2)学生(学号,密码,姓名,性别,出生年月,学院,班级,上次登陆时间,指导老师账号)
3)作品(作品号,作品名,关键字,作者学号,作品种类,上传时间,存储路径,文件大小,描述,作者姓名,指导老师姓名)
4)作业(作业号,作业标题,附件路径,批语,学生,教师,班级,状态,日期)
5)论坛帖子(发帖编号,主题,内容,发帖人,发帖时间,最后回复人,浏览次数,回复次数,附件存储路径)
由于关系模型太多,只列出较为典型的集中关系模型,恕不一一列出。
如果想看具体的数据库内容,请查看数据库文件。
●4主要模块的设计与实现
4.1数据库连接方式和数据编码格式
在本系统中,系统对数据库的操作主要是通过JDBCforMYSQL驱动程序进行连接操作。
JDBC,全称为JavaDatabaseConnectivitystandard,它是一个面向对象的应用程序接口(API),通过它可访问各类关系数据库。
JDBC也是java核心类库的一部分。
数据库的访问流程:
JDBCDriverManager->
局部JDBC驱动->
客户端数据库->
数据库服务器->
返回查询结果,这种访问事实上是转换JDBC调用为相应的数据库的客户端API调用,这种方式的访问需要相应的数据库提供商提供相应的JDBC驱动程序,但是有一种好处,可以独立于ODBC,方便性就大大提高了。
privateConnectionFactory()
{dbconfig=newDataBaseConfig();
dbconfig.setDbName(Res.get("
dbname"
));
dbconfig.setDriverName(Res.get("
dbdriver"
dbconfig.setPassword(Res.get("
dbpwd"
dbconfig.setUser(Res.get("
dbuser"
dbconfig.setType(DataBaseConfig.CONNECT_TYPE_NORMAL);
dbconfig.setUrl(Res.get("
dburl"
}
{
Class.forName("
com.myql.jdbc.Driver"
).newInstance();
Stringurl="
jdbc:
mysql:
//localhost:
3306/campus"
;
Stringuser="
username"
Stringpassword="
password"
Connectionconn=DriverManager.getConnection(url,user,password);
}
在数据库的操作中,本系统主要用到了Statement类和ResultSet类对数据库进行插入、查询、删除等操作。
相关定义的代码如下:
Statementstmt=conn.createStatement();
Stringsql="
select*fromtablenamewheretable_id=5"
ResultSetrs=stmt.executeQuery(sql);
在数据编码方面,通常使用的编码格式有许多,比如说:
UTF-8,GBK,gb2312,iso8859-1,Unicode,等等。
每个编码格式的编码方式都不同,支持的字符集也有较大的区别。
在本系统中,客户端采用gb2312规范的编码格式,是考虑到几乎所有的用户均使用windows操作系统和IE浏览器,对gb2312的支持最好;
而服务器端和数据库采用UTF-8编码格式,这是因为,UTF-8在兼容性方面有出色表现,同时,Tomcat和MYSQL数据库的默认编码格式也是UTF-8,它能使系统运行在一个稳定的环境下。
编码格式的声明,以及编码的转换等
在数据的传输和存储中,通常有一些涉及到文本格式的内容需要存储,比如:
个人笔记的内容,专题讨论的内容,都是需要保留诸如回车、空格等控制文本格式的元素的。
在本系统中采用了如下代码进行转换:
publicStringturn(Stringstr)
{while(str.indexOf("
\n"
)!
=-1){//替换回车为<
br>
str=str.substring(0,str.indexOf("
))+"
<
"
+str.substring(str.indexOf("
)+1);
}
while(str.indexOf("
"
=-1){//替换空格为&
nbsp;
&
returnstr;
}
4.2登陆注册模块的设计与实现
在基于B/S架构的WEB程序中,用户注册、登陆以及用户个人信息的管理构成了整个系统最为基本的模块,一切其它的模块和功能,无一不是建立在用户注册、登陆等身份验证的基础上的。
在本系统中,此模块起到了关键性的作用,因为一切的权限,教师和学生的身份识别,登陆用户的资料管理等等,都通过这个模块来实现。
本模块的结构图如图所示。
注:
教师信息因为更新频率很低,故教师信息由管理员在数据库中直接添加。
4.2.1学生注册模块
学生注册界面为
学生用户提交注册信息后,系统根据学生所提交的信息进行验证,比如学号格式,邮箱地址格式是否正确、信息是否完整等等。
通过验证后在数据库中添加该学生用户。
代码核心部分如下所示
protectedvoidregister(){
Stringid=idTf.getText();
Stringpwd=pwdTf.getText();
Stringpwdr=confirmpwdTf.getText();
Stringname=nameTf.getText();
Booleansex=sexCombox.getSelectedIndex()==0?
true:
false;
intschool=schoolCombox.getSelectedIndex()+1;
if(classCombox.getSelectedItem()!
=null)
cla=classCombox.getSelectedItem().toString();
}
Stringemail=emailTf.getText();
booleanagreement=agreementCb.isSelected();
if(agreement){
Stringidregx=Util.getIdRegx();
Stringpwdregx=Util.getPasswordRegx();
Stringnameregx=Util.getNameRegx();
Stringclassregx=Util.getClassRegx();
Stringemailregx=Util.getEmailRegx();
booleanok=true;
if(!
Util.match(idregx,id)){
ok=false;
idInfoLabel.setForeground(Color.RED);
idInfoLabel.setText(Res.get("
reg.iderr"
}else{
idInfoLabel.setForeground(Color.BLACK);
reg.idok"
}
//pwd
pwd.equals(pwdr)){
pwdInfoLabel.setForeground(Color.RED);
pwdInfoLabel.setText(Res.get("
ferr"
//
if(!
Util.match(pwdregx,pwd)){
ok=false;
pwdInfoLabel.setForeground(Color.RED);
pwdInfoLabel.setText(Res.get("
reg.pwderr"
}else{
pwdInfoLabel.setForeground(Color.BLACK);
reg.pwdok"
}
//name
Util.match(nameregx,name)){
nameInfoLabel.setForeground(Color.RED);
nameInfoLabel.setText(Res.get("
reg.nameerr"
nameInfoLabel.setForeground(Color.BLACK);
reg.nameok"
//class
Util.match(classregx,cla)){
classInfoLabel.setForeground(Color.RED);
classInfoLabel.setText(Res.get("
reg.classerr"
classInfoLabel.setForeground(Color.BLACK);
reg.classok"
Util.match(emailregx,email)){
emailInfoLabel.setForeground(Color.RED);
emailInfoLabel.setText(Res.get("
reg.emailerr"
emailInfoLabel.setForeground(Color.BLACK);
reg.emailok"
if(teaName.length()<
3)
{
ok=false;
teaCheck.setForeground(Color.RED);
teaCheck.setText("
请选择老师"
);
}else
teaCheck.setForeground(Color.BLACK);
成功"
//ok
if(ok){
StudentDataBasedb=StudentDataBase.Instance();
intd=Integer.parseInt(id);
if(db.contain(d)){
idInfoLabel.setForeground(Color.RED);
idIn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟校园 虚拟 校园 软件 系统 架构 说明