基于Java的网络教学电子白板的设计与实现_第1页
基于Java的网络教学电子白板的设计与实现_第2页
基于Java的网络教学电子白板的设计与实现_第3页
基于Java的网络教学电子白板的设计与实现_第4页
基于Java的网络教学电子白板的设计与实现_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、xx 学院 20 xx20 xx 届届 毕毕 业业 设设 计(论文)计(论文) 设计(论文)题设计(论文)题 目目 基于 java 的网络教学电子白板 的设计与实现 院院 系系 名名 称称 计算机科学与技术系 专业(班级)专业(班级) 计算机科学与技术 姓名(学号)姓名(学号) 指导教师指导教师 系负责人系负责人 二二 o xx 年六月五年六月五日日 i 摘摘 要要 进入 21 世纪,随着科学技术的迅速发展,计算机作为实现现代化管理的重要手段 和工具,正向着网络化和智能化方向发展,其应用范围越来越广泛,在教学和科研等领 域也正发挥着越来越重要的作用。如今,在很多高校内,计算机软件和网络系统己经

2、成 为教学管理的重要工具。 为了拓展教学空间,本文设计和实现了一个基于浏览器/服务器架构的,即时的电子 教学软件网络教学电子白板。该网络教学白板实现了用户的登录、交谈室选择、退 出交谈室、文字交谈、图形传输的功能。 本设计是基于 java 语言,在 myeclipse 和 tomcat 构建的开发平台下开发的应用程序。 在设计中应用了 java 网络技术、java 多线程技术、jsp 技术。由于本系统采用了 mvc 系 统架构模式进行开发,使系统具有良好的延展性和可维护性。在试运行中,本网络教学 电子白板的易用性和实用性为老师和同学在网络上完成同步教学工作提供方便。 关键词:关键词:b/sb/

3、s,电子白板,电子白板,tcp/iptcp/ip 协议协议, javajava 多线程技术多线程技术 ii abstract in 21st century, along with the rapid development of science and technology, the computer as a realization of the important method and the tool of modern management is developing to the intellectualization and network, and its applicatio

4、n is more and more widely spread and it plays an important role in domain of teaching and scientific research. nowadays, in many universities, computer software and network systems become important way to organize teaching activities. to expand the space of education , a system was researched and de

5、signed ?. it is a real time and interact system applied in network from the features of the teaching:whiteboard . the system in this paper is designed on the base of modern internet technology, with a b/s structure. it has the implementation of the users login, chat room options, quit chat rooms, te

6、xt chat, graphics transmission functions. the system in this paper is realized using java techniques. on the development platform of tomcat and the myeclipse, the applications named as whiteboard was researched and designed. the impotant techniques applied in the system are introduced and explained

7、in this paper, including java network programming,java multi-thread programming and jsp web pages.the code was realized adequately reduplicate using and greatly reduces the exploitation time and work force due to using the mvc model.by trialing,it is proveded that the whiteboard usability can help b

8、oth the teacher and student finish work much more easier in network . keywords: b/s,whiteboard , multi-thread iii 目目 录录 摘 要 .i abstract .ii 目 录 .iii 第一章 绪论 .1 1.1 研究背景.1 1.2 研究目的和意义.2 1.3 研究现状.2 1.4 论文主要工作.3 第二章 系统分析 .4 2.1 需求分析 .4 2.1.1 功能要求 .4 2.1.2 定义用例 .4 2.1.3 类对象建模 .5 2.1.3 建立对象关系模型 .11 2.2 可行

9、性分析 .12 2.2.1 问题的提出.12 2.2.2 问题的解决方法和思路 .12 2.3 开发环境介绍.14 2.3.1 统一建模语言.14 2.3.2 java2 技术 .14 2.3.3 j2ee.16 第三章 系统设计 .19 3.1 概要设计 .19 3.1.1 划分子系统.19 3.1.2 处理并发操作.19 3.1.3 子系统之间的通信.19 3.1.4 系统资源的管理和控制 .19 3.2 详细设计.20 3.2.1 人机交互设计.20 3.2.2 任务管理设计.22 3.2.3 对象设计.25 3.2.4 类/对象关系设计.27 3.2.5 功能实现.35 第四章 关键技

10、术分析 .40 4.1 多线程网络通信技术的实现.42 4.1.1 技术分析 .42 4.1.2 关键算法和流程图 .43 4.2 图形信息的定义和传输.44 4.2.1 技术分析 .44 4.1.2 流程图 .46 第五章 系统调试与测试 .47 iv 5.1 测试方法.47 5.1.1 软件测试.47 5.1.2 系统测试.47 5.2 测试环境和条件.48 5.3 测试数据和结果.48 5.3.1 服务器端测试 .48 5.3.2 客户端端测试 .49 5.4 结果的分析与评价.51 参考文献 .53 致 谢 .54 附 录 .55 1 第一章第一章 绪论绪论 1.11.1 研究背景研究

11、背景 随着互联网的发展, 标志着“ 联网、易用、时尚”为特征的后 p c 时代的到来。人 们利用电脑和互联网的时间越来越多,以“ 社区( communit) 、“ 内容(content)”及 “商务(commerce)”为主要特征的网络即时通讯,最大程度地体现了网络给人们生活带 来的变化,使得人们之间的沟通更加方便、快捷。 即时通讯系统(instant messenger,im)是一种在后 pc 时代兴起的,以 interet 网络为基 础的,允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线状态 的网络应用软件。1996 年 11 月四位以色列籍的年轻人成立的 mirabil

12、is 公司,推出了全世 界第一款即时通信软件 icq,取意为“我在找你”(i seek you),到现在 icq 已经在全球 即时通信市场上占有非常重要的地位。这款即时通信软件支持在 interet 上聊天、发送信 息、传输文件等功能。icq 最大的特点就是可以通过互联网进行信息的即时交流,既可以 结识新朋友,也可以随时呼叫好友,还能即时传送文字、视音频信息和发送文件。类似 的软件还有在国外比较流行的 skey 和国内最流行的 qq 聊天软件。 即时通讯软件的最大特点是能够实现在网上进行信息的实时交流。它的产生有着深 刻的社会原因。人们都有渴望社交、获得社会尊重、实现自我的需求,这正是即时通信

13、 软件流行的原动力,而物质文明的日益发达所带来的副作用,又使得人们习惯与周围的 人保持距离,以致人们更愿意对陌生人敞开心扉,在网络中可以跨越年龄、身份、行业、 地域的限制,达到人与人、人与信息之间的零距离交流。从这点上讲,即时通信系统的 出现改变了人们的沟通方式和交友文化,大大拓展了个人生活交流的空间。 即时通讯软件的互动性高于 bbs 和 e-mail,它比电话严肃,比 e-mail 轻松。利用它 可以实时传送文字信息、语音信息和发送文件。另外,它还可以作为单位内部联络的一 种方式,可以用来召开网络会议,比起实地的会议,不仅快捷,而且节省开支。 近年来,随着无线通信的快速发展,移动互联网为传

14、统的 interet 注入了新的活力, 同时也为即时通讯带来了一场革命,通信双方己经不再局限于以网络终端设备为唯一的 接入手段,pc 机在传统的网络即时通讯中所起的作用正在被手机、传呼机,甚至普及率 已经相当高的电话所取代。这使得网络即时通讯更加大众化和人性化,即使不会使用电 脑的人现在也可以享受到即时通讯给人们生活带来的变化。 另外,即时通讯软件被加入了越来越多的新功能,使它正从毫无商业应用价值的聊 天、游戏转变出来,成为能为商业企业带来商机和实惠的领域。所有的这一切都让人们 对网络即时通讯赋予了越来越多的注意力,可以说,即时通讯的发展把后 pc 时代的特征 体现得淋漓尽致。 2 1.21.

15、2 研究目的和意义研究目的和意义 2 1 世纪将是网络化、信息化的世纪,信息的融合已经成为社会发展的主流方向。 人们认识到电信网、计算机网和有线电视网的各自为营不适合通讯的发展,有必要将其 高层应用业务融合,最终在技术上趋向一致,网络层上可以实现互连互通,形成无缝覆 盖,业务层上互相渗透和交叉,在经营上互相竟争、互相合作,朝着向人类提供多样化、 多媒体化、个性化服务的同一目标逐渐交汇在一起,行业管制和政策方面也逐渐趋向统 一。三网合一可以提供现有在三种网络上提供的数据、语音、视频和各种业务的新网络, 能满足未来数据、语音和视频的多媒体应用要求,这一目标的最终实现,将使网络即时 通讯以更丰富的接

16、入方法、更高的服务质量、更友好的面貌呈现在世人面前。 从功能角度来看,即时通信系统向支持多媒体方向发展,随着多媒体技术在网络应 用中的发展,即时通信系统承载的媒体,不再局限于原来的文字、语音和文件的信息交 换,信息载体扩展到图形、图像和流媒体等多媒体业务上。目前 icq 和 qq 预设了部分 简单的表情图像,通过传输图像代码来传递表情图像,可以被视为即时通信开发商开发 支持图形、图像为载体的即时通信软件的开端。 从应用范围角度来看,即时通信系统集中在 intert 个人用户之间的信息交流应用,随 着网络应用技术的发展,即时通信系统应用范围向园区化、集团化拓展,应用领域突破 个人用户,而用于远程

17、教学、远程医疗、远程演示、网络会议等领域。 而随着大学从社会边缘走进社会中心,教育作为知识传播与创新的工具,成为世界 信息化之源。信息的学科化与系统化,也使社会从商业性的信息社会走向了终生学习的 知识社会。网络作为卓有成效的现代化教育手段,使教育通过电子化空间走进每一个人 身边,引发教育理念的急剧变革。网络与教育的完美结合,构成了知经济时代的基础。 通过网络进行教学,比起传统的学校教学来,内容显得更为丰富多彩,促使学生的积极 性和主动性大大提高。在网络教育中,学生面临的主要问题已经不是记忆知识,而是要 学会学习、学会应用、学会创造。 就目前的网络教学软件而言,还远未达到我们的要求。因此开发一个

18、即时的网络教 学电子白板是现代网络教育所急需的。如果再与相应的软硬件结合势必会加快教育的改 革和教育现代化进程。 1.31.3 研究现状研究现状 目前,基于网络的教学模式有以下两种:异步式教学、同步式教学。 在异步模式下,学生通过网络自由地下载学习课件,自学习时间,根据课程提示, 查阅相关资料进行自学。学生可以通过 e-mail 的方式与教师和其他学生进行异步通信, 利用 bbs 传达教学要求以及利用协同编辑软件以异步文本的形式由学生组共完成某些课 程设计。 应用同步方式学生可以与老师进行实时地网上讨论,讨论可以用文本的形式进行也 可以采用音频实时交互,营造更融治的交互环境。 3 电子白板是由

19、一些研究机构与大学院校率先推出的,许多工具先后都被开发成功尤 其是包括 ibm 欧洲网络中心的 codraft 及欧洲委员会 raceii 倡导的 jvtos。许多商用 白板产品设计成在多方模式下运行,而不仅仅运行于两个工作站之间。产品或工具既可 以单独使用,也可以通过音频视频会议工具一起做成工具包使用。 现有的电子白板系统通常是基于 client/server 模型,采用集中式模式共享数据:所有 用户都与服务器相连,只向服务器发送消息,并接收来自服务器的消息。这种方式保证 了数据传输的可靠性和有序性,实现起来比较简单,在参加白板系统的人数较少时,能 够有较高的效率。但是当参加人数增加,并且伴

20、随着大量数据,如音频、视频和图像信 息的传输时,服务器就会成为数据转发的瓶颈,并且网络中存在大量的数据副本,浪费 较多的带宽资源。而且在对支持图形方面还存在一些不足: (1) 缺少即时图形会话的环境。现有的即时通信系统中,对多媒体会话的支持越来越 强,已经能支持文本、文件、语音和视频等媒体的传输,但缺少即时图形会话的环境, 不能支持即时图形的交流模式。 (2) 图形传输数据量大。在局域网内运行的即时通信系统,比如网络教室使用的网络 教学软件,可以支持全媒体的方式工作,包括支持图形即时绘制和传输。但是大部分软 件都是通过连续传输图像压缩数据的方式来实现的,传输的图像数据量大,增加了网络 负载。

21、1.41.4 论文主要工作论文主要工作 根据以上分析本课程设计主要完成一下工作: (1) 实现网络通信功能。网络教学电子白板必定要实现网络通信的功能。网络教学电 子白板只有实现了网络通信的功能才能使再网络上的教师和学生进行交流,也只有实现 了网络通信的功能才能使现在教学空间得以极大的拓展。 (2) 实现多线程的功能。网络教学电子白板是要为教师和众多学生提供一个交流平台。 它既能够响应教师的操作,也能够响应众多学生的操作。这样不论是教师或者是学生的 白板都应当对应至少一个线程。 (3) 实现文字传输功能。能够进行简单的文字交谈是任何一个网络交流软件都应该具 备的最基本的功能。所以在这个网络电子白

22、板交流平台上实现简单的文字交流的功能是 必须的。 (4) 实现基本的绘图功能。这个功能正是目前众多网络软件如 qq,skey 等所不具备 的功能,也是网络教学电子白板应具备的基本功能。实现基本的绘图功能,能够使教师 和学生之间的交流从文字的交流拓展到图形信息的交流。 (5) 实现线程的同步功能。在网络上如何保证教师的白板和众多学生的白板的一致是 必须解决的问题。 (6) 制定有效的网络传输协议。由于本网络教学电子白板是能够在网络上实现即时的 文字和图形信息的传输。在较短的时间内会十分频繁的进行数据的传输,所要传输的信 息就势必要准确而简洁。这样要实现即时且准确的信息传输,就必须制定有效的网络传

23、 4 输协议。 5 第二章第二章 系统分析系统分析 2.12.1 需求需求分析分析 电子白板是一个为在 internet 环境进行教学的为教师和学生提供文本以及图形共享的 区域。它的用户包括教师和学生;能够为用户提供基本的登录和退出功能;能够为用户 提供不同主题的共享电子白板。 教师利用系统提供的特定画图工具,在电子白板上进行绘图。教师端的白板中的图形 可以通过 internet 同步传递到交流环境中的其他学生端白板中。学生可以同步的察看教师 在白板中的板书内容。这样,共享白板实现了传统教室中黑板的功能。 2.1.1 功能要求功能要求 一个实用的电子白板应该具备以下基本功能: (1) 用户在浏

24、览到白板主页时,需登录后才能进行交流。这将提供交流时用的名字, 必要时还可做权限检查。 (2) 白板系统能根据用户需求提供相应主题的交谈室(一个虚拟的共享白板)。即同 一交谈室里的用户间可以实现即时的交流,只要有一位使用者在这块共享的白板上作了 一次改变,如画了一条曲线,或输入了一个字符串,所有的使用者马上就能看到这种改 变。而不同主题的交谈室里的用户之间是不可见的。 (3) 用户能够根据交谈室的交谈主题选择参加入和退出现有的交谈室,并且能建立新 主题的交谈室。甚至可以根据该电子白板系统的应用领域和需要附加一些权限设置。 (4) 白板应至少具有一些如更换画笔颜色、清除画板(仅影响自己的白板)等

25、方便用 户的功能。 (5) 白板应具有一个操作提示和操作信息反馈栏,对用户显示一些操作提示和操作结 果信息,这样可以方便用户使用。 (6) 用户应能暂停和恢复自己的白板工作。 (7) 电子白板为使用者提供画图工具,圆形工具、矩形工具、圆角矩形工具、直线工 具、曲线工具、填充圆形工具、填充矩形工具、填充圆角矩形工具、选择工具,也可以 输入文字。 2.1.2 定义用例定义用例 网络教学电子白板,在网络上实现教学工作平台。它的服务器系统程序运行在网络 服务其上,由网络服务器管理员管理。而当用户(包括老师和学生)要用白板与他人交 流时,需要先用浏览器连到 applet 所在主页,applet 运行后会

26、连接到该白板服务器系统 程序,和服务器建立 tcp 连接。每个用户可以在自己的白板上(嵌在 applet 画面中)绘 制图形和输入文字,applet 会将这些信息通过已建立的网络连接发往白板服务器,并不断 侦听、接收来自白板服务器的图形和文字信息,将其再现在用户的白板中。白板服务器 6 的作用是不断侦听、接收来自各 applet 的信息,并将其转发给其他用户。据此设计本设 计的用例如图 2-1 系统用例所示。 2.1.3 类对象建模类对象建模 (1)根据上面分析,本设计定义了一下类: (a) chatserver 类是服务器程序的启动类,如图 2-2 cahtserver 类: 图 2-2 c

27、ahtserver 类 服务器系统 客户端系统 管理人员 用户 通信协议 使用 使用 图 2-1 系统用 例 7 (b) chatapplet 类为 applet 类的子类,实现 runnable 接口,如图 2-3 chatapplet 类: 图 2-3 chatapplet 类 8 (c) user 类为 thread 类的子类,实现用户服务线程,处理服务器/客户机会话。 如图 2-4 user 类: 图 2-4 user 类 (d) room 类可以保存并处理本交谈室用户数据,如图 2-5 room 类: 图 2-5 room 类 9 (e) roomgroup 类可以保存所有交谈室数据

28、并处理有关操作,如图 2-6 roomgroup 类: 图 2-6 roomgroup 类 (f) rooms 类为 vector 类的子类。存储所有交谈室的用户数据,如图 2-7 rooms 类: 图 2-6 rooms 类 (g) databag 类定义服务器和客户端的通信协议,如图 2-8 databag 类: 10 (h) senddrawdata 为 thread 的子类实现后台网络传输线程,如图 2-9 senddrawdata 类: 图 2-9 senddrawdata 类 (i) aboutdialog 类显示软件信息,如图 2-10 aboutdialog 类 图 2-10

29、aboutdialog 类 (j) quitdialog 类:确认关闭服务器,如图 2-11 quitdialog 类: 图 2-8 databag 类 11 图 2-11 quitdialog 类 (2) 定义类的结构与层次: (a) dialog 与 aboutdialog,quitdialog 是一般-特殊结构如图 2-12 所示: dialog aboutdialogquitdialog 图 2-12 dialog 和 aboutdialog 与 quitdialog 的结构 (b) chatserver 与 user,roomgroup,serversocket 是整体部分结构如图

30、2-13 所示: chatserver roomgroupuserserversocket room fream 图 2-13chatsever 与其他类的结构 (c) user 类与相关类的结构如图 2-14 所示: 12 user serversocketsocketdatainputstreamdataoutputstream thread 图 2-14 user 类与相关类的结构 13 (d) room 类与 vector,user 的整体部分结构,如图 2-15 所示: room vectoruser 图 2-15 room 类与 vector,user 的整体部分结构 (e) ap

31、plet 类与相关类的结构,如图 2-16 所示: chataapplet applet socketdatainputstream dataoutputstreamdrawdata roomurlthreadcolor 图 2-16 applet 类与相关类的结构 2.1.3 建立对象关系模型建立对象关系模型 根据类和类的层次结构建立对象关系模型,如图 2-17 所示: chatserver serversocket user roomgroupchatapplet socket room 1:11:m 1:1 1:m 1:1 1:m 1:1 1:1 1:1 1:1 1:1 1:11:1 1

32、:1 drawdata raa senddrawdata raa 1:1 1:1 1:1 1:1 1:1 1:1 图 2-17 对象关系模型 14 (4) 建立对象行为模型,如图 2-18 所示: 服务器客户端 1 启动服务器 客户端 2客户端 n 登陆客户端 1 登陆客户端 2 登陆客户端 n 请求连接 请求连接 请求连接 更新画图板 刷新用户列表 刷新用户列表 刷新用户列表 更新画图板 更新画图板 图 2-18 网络教学电子白板系统的时序图 2.22.2 可行性分析可行性分析 2. .2. .1 问题的提出问题的提出 (1) 基于 java 语言如何实现网络通信 (2) 怎样在网络传输中表

33、示和处理白板信息才能保证图形文字信息快速传输 (3) 怎样使同一交谈室里的各用户白板保持信息的同步 2. .2. .2 问题的解决方法和思路问题的解决方法和思路 (1) 实现网络通信。对于上面的第一个问题,可以使用 java 的网络编程的套接字 sockt 技术,用它建立“套接字套接字”的 tcpip 连接来实现网络通信。 (2) 表示和处理白板信息。共享白板内容表示有两种方式,一种是将白板内容作为一 张位图,每当白板内容更新时,就产生一张新的位图,然后把位图传输出去。这种方式 实现起来最直观也最简单,但是在网上传送位图需要较大的带宽,如果频繁更新白板时, 网络可能会被大量的数据堵塞。另一种方

34、法是把白板内容的组成元素用矢量进行描述, 白板内容的更改被反映到元素的形状、位置等描述的变化,系统将变化传送到网络上, 白板客户接收到变化之后仅需根据变化修改本地参数即可。 网络通信中的数据处理问题的思路: 因为我们的方案中服务器通过 tcp/ip 接收来自客户的白板消息,因此接收到的消息 是流式的,java 提供的强大的 io 机制能够很好的完成通信任务。在本系统中涉及的 1/o 机制有:对象序列化和对象流。 15 (a) 对象序列化。对象序列化过程就是将刘象状态转换成字节流和从字节流恢复对象。 将对象状态转换成字节流之后,可以用 java.io 包中的各种字节流类将其保存到文件中、 管道到

35、另一线程中或通过网络连接将对象数据发送到另一主机。在大多数面向对象编程 语言中,序列化是个相当复杂的工作。编程人员需要编写两个程序,一个对对象属性进 行迭代,然后将其写出,以便后面重新构造对象;一个要重新构造对象,称为反序列化。 如果修改对象的类结构,则这些改变也要影响序列化程序。对于比较复杂的类,编写对 象序列化代码可能相当复杂和麻烦,如果类包括其他类的引用,则会更加复杂。 java 序列化工作比较简单,可以在 java 中将几乎任何类序列化包括自己的类,而不必编 写定制方法,保存和恢复对象数据。只要实现 java.io.serializable 接口的类的对象就可以 转换成字节流或读取字节

36、流,不需要在类中增加任何代码。serializable 接口是个空接口, 不包括任何要实现的方法,serializable 接口只是告诉 java 虚拟机这个类可以合法序列化。 将类声明为实现 serializable 接口是对象序列化的必要条件,从编程人员角度看,大多数 序列化工作都是自动完成的,只要在类定义中增加 implementsserializable 。 (b) 对象流。java.io 包有两个序列化对象的类。objectoutputstream 负责将对象写入字 节流,objectinputstream 从字节流重构对象。objectoutputstream 类扩展 dataou

37、tput 接口。 objectoutputstream 中的方法镜像 dataoutputstream 中写入 java 基本数据类型的 11 个公 开方法,还有几个直接与对象序列化相关的方法,其中最重要的是 writeobjecto 方法,用 于对象序列化。如果对象包含其他对象的引用,则 writeobjecto 方法递归序列化这些对象。 每个 objectoutputstream 维护序列化的对象引用表,防止发送同一对象的多个拷贝。 objectlnputstream 类与 objectoutputstream 相似。objectoutputstream 类扩展 datal 叩 ut 接口

38、,并镜像 datalnputstream 中读取 java 基本数据类型的 11 个公开方法。 objectinputstream 类直接与对象序列化相关的方法中 readobjecto 方法从字节流反序列化 对象。 (c) 通信中的数据处理。当服务器接收到客户机的白板消息时,因为我们接收不同类 型的消息来识别对白板内容进行的更新,所以处理方法中要识别消息的类型。 (3) 信息的同步。信息通过 tcp/ip 进行传输,所有白板用户都将消息发送给服务器, 然后由服务器转发给所有用户。采用这种模型是因为,白板信息的传输要求实时性、一 致性和可靠性。所谓一致性是指当在同一时间段内在电子白板中创建两个

39、或多个数据对 象时,希望以精确的相同顺序把这些数据呈现给所有用户。为了达到这样的目的,需要 为每个白板消息加上一个全局的时间戳,或是选举某台机器对某一时刻甚至是全部时间 内的数据进行排序。前者需要对所有计算机进行时间同步,增加了系统的复杂度;后者则 增加了某台客户机的负荷,当出现大量同步信息时代价是非常昂贵的。采用集中式结构 则由于所有数据都通过服务器转发,同步数据自然的在服务器处排序,使系统设计简化。 用户以 tcp/ip 方式向服务器发送白板消息,因此我门可以认为服务器获得的数据是可靠 的。服务器解析白板数据并在本地临时保留白板数据的副本,所有的数据由服务器的数 据转发程序转发,自然的保证

40、了所有客户接收到的消息顺序相同。数据分析程序将收到 的数据解析成表示层能识别的数据,并由表示层更新白板的现实内容。 16 2.32.3 开发环境介绍开发环境介绍 2.3.1 统一建模语言统一建模语言 统一建模语言(uml)是一种基于面向对象的可视化建模语言。它提供了丰富的用 图形符号表示的模型元素,这些标准的图形符号隐含了 uml 的语法,而由这些图形符号 组成的各种模型,则给出了 uml 的语义。它的简单、一致、通用的定义,使开发者能在 语义上取得一致,消除了因人而异的表达方面所造成的影响。uml 代表了面向对象方法 的软件开发技术的发展方向,具有重大的经济价值和国防价值,获得了工业界和科技

41、界 的广泛支持,已成为可视化建模语言事实上的工业标准。 2.3.2 java2 技术技术 java 程序设计是一个巨大而迅速发展的领域,从 java 诞生之日起,因其是一种理想的面向对象的 语言而成为因特网程序开发的必然选择。java2 平台为用户提供的支持水平已经相当成熟,特别是在应 用程序开发方面。现在它己经成为主流应用程序开发的主要竞争者,与其他语言相比具有开发和维护 都很方便的优点,并且其本身就具有能够在多种类型的计算机和操作系统上运行而无需更改代码的先 天优势。木章接下来的内容将介绍在本课题开发中应用到的 java2 相关技术,其中包括:基于 socket 的 网络编程、多线程技术、

42、语音编程、jdbc 技术和与动态网页制作相关的 jsp 技术。 (1) 网络编程。java 程序通过 socket 的编程抽象进行通信,socket 表示网络通信的端 点。应用程序标示对等实体的地址,然后用 socket 接口读取和写入数据。socket 包装网 络层和传输层协议的实现,向应用程序提供简单的读取和写入接口。java 将 socket 抽象 作为核心语一言库特性,支持可移植的跨平台网络编程。 java 语言通过 .socket 与 .serversocket 套接类支持 tcp 编程。java 服 务器听取入站 tcp 连接时,生成 .serversocket 类实例,serve

43、rsocket 建立与 tcp 连接时生成一个 .socket 实例,包装连接,并将其返回服务器程序。服务器接受套 接的输入与输出流,通过实现一些协议而进行通信。在客户端,通过与某个主机和端口 上的 tcp 服务器相关联的 .socket 实例建立 tcp 连接,然后客户端 socket 取得套 接的输入与输出流,进行通信。 socket 类提供以下构造器和方法: 构造器:socket(inetaddress address,int port) throws ioexception 套接输入与输出: socket 类提供两个方法向对等程序读取字节的输入流和向对等程序写入字节的输出流: java

44、.io.inputstream getinputstream( ) throws ioexception java.io.outputstream getoutputstream( ) throws ioexception 套接终止:void close( ) throws ioexception serversocket 类的构造器与方法: 构造器:serversocket(int port) throws ioexception,securityexception 接收套接连接:socket accept( ) throws ioexception,securityexception 17

45、 服务器套接终止:void close( ) throws ioexception (2) 多线程技术。线程是包含在进程中的一个或几个独立执行单元。线程与进程相似, 也是独立控制流程,但与进程有一些重要区别:进程中的线程在同一地址空间运行,因此 线程用相同的代码体和数据体进行操作;由于线程在单个进程中操作,因此进行线程调 度的是 java 虚拟机而不是操作系统,这样就使情境切换更加有效。线程对网络很重要, 因为网络应用程序通常要处理许多数据流,对每个数据流指定一个线程非常方便,可以 保证每个 i/0 信道都得到服务。 java 是少数几种自然包括许多线程功能的编程语言之一。生成线程的类和接口放

46、在 核心 java.lang 包和 java.lang.object 类中,这个类派生所有.java 对象,具有支持多线程编 程的方法。编写多线程程序是一件复杂的事情,因此要编写优良的多线程程序必须遵从 一些基本原则。 (a) 要生成用线程。实现具有独立线程形式的类有两种方法: 扩展 java.lang.thread 类:public class mythread extends thread。 生成实现 java.lang.runnable 接口的类并将其实例与 java.lang.thread 实例相关联: public class mythread implements runnable

47、 生成 java.lang.thread 的子类更方便一些,但由于 java 不支持多重继承,因此有时只能实 现 java.lang.runnable 接口。这两种方祛中,关键技术是 run()方法,以 public void run( )形 式声明,线程所要完成的任务都放置在这个方祛中。要启动一个运行在虚拟机上的新线 程,先要构造一个线程类的实例并调用它的 start()方法:thread t=new mythread();t.start(); 结束一个线程时调用该实例的 stop()方法。 (b) 要正确处理线程之间的同步问题。线程之间无法预测的交互可能影响 java 程序的 结果,因此多

48、线程共享资源在任何时候都必须考虑同步。java 中利用监视器的概念控制 同时访问特定代码段的线程数。每个对象具有一个监视器,一次最多只能由一个线程拥 有,如果要求每个线程取得一个监视器的拥有权之后再执行代码,则一次只能由一个线 程执行这个代码。这个访问用 synchronized 关键字控制。 synchronized 关键字用法如下: synchronized(anyobject) /this code will be executed by only one thread at atime 通常,需要对当前对象同步整个方法,这个时候,synchronized 关键字可以加入方法声明 中。写

49、成: public synchronized void addelement(object obj) /some code here 但是,应该注意的是简单的使用 synchronized 修饰符并不是解决同步问题的万能方法, synchronized 会在许多虚拟机中造成性能降低,并较大的提高了死锁的可能性。而有一种 更低代价的替代同步方法是使用 volatile 关键字。为什么使用 volatile 比同步代价更低呢? 同步的代价主要由其覆盖范围决定, 如果可 18 以降低同步的覆盖范围, 则可以大幅提升程序性能。而 volatile 的覆盖范围仅仅变量级别 的,因此它的同步代价很低。vo

50、latile 原理是:用 volatile 关键字告诉处理器, 不要将我放 入工作内存, 请直接在主存操作我。因此, 当多核或多线程在访问该变量时, 都将直接操 作主存, 这从本质上, 做到了变量共享。volatile 的优势是:实现更大的程序吞吐量、使用 更少的代码实现多线程、使程序的伸缩性较好、比较好理解,无需太高的学习成本。但 是 volatile 也有自己固有的劣势,比如:容易出问题、比较难设计、volatile 运算存在脏数 据问题、volatile 仅仅能保证变量可见性,无法保证原子性。 (3) 注意使用线程池 线程对象的生成成本相对较高。jvm 要记录所有线程的状态,以便进行调度

51、。应用 程序调用许多临时线程时,保持线程资源池可以比每次使用时生成新线程更有效。在程 序开始时生成几个线程并在出现任务时将线程分配给这些任务。任务完成后,线程并不 删除,而是返回线程池中,以备复用。这样可以避免刘每个请求生成和删除线程的昂贵 操作。 总之、编写多线程应用程序的一个重要原因是提高代码效率。小心使用 synchronized 块和 volatile 关键字并适当利用线程池可以使多线程代码更加高效。 2.3.3 j2ee (1) j2ee 介绍: j2ee(java2 platform,enterprise edition)是 sun 公司定义的一个开放式企业级应用规 范,他提供了一

52、个多层次的分布式应用模型和一系列开发技术规范,多层次分布式应用模型 是根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件.组件在分布式服 务器的组件容器中运行,如 servlet 组件在 servlet 容器上运行,ejb 组件在 ejb 容器上运行, 容器间通过相关的协议进行通讯,实现组件的相互调用。遵从这个规范的开发者将得到行 业的广泛支持,使企业级应用的开发变得简单、快速。 (a) j2ee 体系结构。j2ee 体系结构采用典型的多层结构,分为客户端、表现层、业 务逻辑层、数据层,各层次间相对独立和松散耦合,保证了使用开发框架的应用具有良 好的结构。如 j2ee 体系结构图

53、2-21 所示: 图 2-21 j2ee 体系结构图 (b) j2ee 开发工具。java 虚拟机:j2sdk1.5;java 开发工具:eclipse3.1;web 服务 器采用:tomcat5.5.20。环境配制过程:安装好 j2sdk1.5 后。在 eclipse 中选择新建 j2eeporject-webproject,并在 webproject 中 addstruts 与 addhibernate. 19 (2) jsp 技术。sun jsp 是 javaserverpages 的缩写,是由 sun 公司倡导、众多业领先的 公司参与制定的一种动态交互式网页技术标准,它为创建动态内容的

54、 web 页面提供了简 单便捷的实现方法。jsp 一经问世便得到广大网站建设者的喜爱和追捧,很快在网站开发 与设计领域普及开来。它具有以下几个方面的特点: (a) jsp 的语法基本上和 java 是相同的,有 java 基础的读者可以很方便地使用 jsp 没 有 java 语言基础的读者也一样可以成为 jsp 编程的高手。 (b) jsp 直接内嵌在 html 中,非常简单易用,大大降低了程序设计开发的难度。 (c) jsp 程序中可以直接嵌入 java 代码,也可以直接运用 java 所提供的各类包,这样 就大大加强了 jsp 程序本身的功能。 (d) jsp 程序在被请求执行时,服务器相

55、关软件产生 servlet 的执行文件,存储于服务 器内存中,并将结果返回到客户端,jdbc 提供了与数据库产品无关的数据库连接方式, 因此 jsp 程序与客户端系统无关,可以非常方便地跨平台使用。 作为当前的两大主流开发体系之一,在 sun 的 j2ee 体系中,jsp/servlet/javabean 具有举足轻重的地位,不仅是 web 开发项目的工具,还是接触和使用 j2ee 的基础。 (3) apache tomcat 技术。apache tomcat 是一款由 apachefoundation 维护的免费开放 源代码的 java servlet 和 jsp 服务程序,是 apache

56、 jakarta 大项目中的一部份。它作为一 个优秀的开源 web 应用服务器,全面支持 jsp1 .3 以及 servlet2 .3 规范:技术先进、性能 稳定,而且完全免费。因而它深受 java 软件爱好者的喜爱,并得到了部分软件开发商的 认可,成为目前非常流行的 web 应用服务器。 目前 最新版本的 tomcat5.5.20 新增了以下方面的功能: (a) catalina 一个符合 servletapi 规范 2.3 的 servletcontainer,可以在 web.xml 文件中 注册相应的事件监听器,当事件发生时,在应用程序中可以收到相应的事件通知。 (b) jasper 一

57、个符合 jsp 规范 1.2 的 jsp 编译器和运行环境,并具有国际化支持 。 (c) webapps tomcat 中包含的一些例子和用于测试的 web 例程以及相应的文档 。 (4) mvc 是 model-view-controller 的简称,即模型一视图一控制器。该模式是一种 广为流传的软件设计模式,把一个应用的输入,处理,输出流程按照 model view, controller 的方式进行分离,这样一个应用被分成三个核心模块模型,视图,控制器, 它们分别承担不同的任务,图 2-22 显示了这几个模块各自的功能和它们的相互关系。 20 图 2-22 mvc 工作模式 (a) 视图

58、 (view)代表用户交互界面,对于 web 应用来说,可以概括为 html 界面, 但有可能为 xhtml. xml 和 applet.随着应用的复杂性和规模性,界面的处理也变得具 有挑战性。一个应用可能有很多不同的视图,mvc 设计模式对于视图的处理仅限于视图 上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流 程的处理交予模型(model)处理。比如一个订单的视图只接受来自模型的数据并显示给用 户,以及将用户界面的输入数据和请求传递给控制和模型。 (b) 模型 (model)就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过 程对其它层来说是黑箱操作,

59、模型接受视图请求的数据,并返回最终的处理结果.业务模 型的设计可以说是 mvc 最主要的核心。目前流行的 ejb 模型就是一个典型的应用例子, 它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不 能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件, 从而减少了技术上的困难。对开发者来说,就可以专注于业务模型的设计, mvc 设计模 式告诉人们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开 发人员是否优秀的设计依据。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据 保存(持续化),比如将一张订单保存到

60、数据库,从数据库获取订单,可以将这个模型单独 列出,所有有关数据库的操作只限制在该模型中。 (c) 控制 (controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完 成用户的请求.划分控制层的作用也很明显,它清楚地表明,它就是一个分发器,选择什 么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数 据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用 户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个 模型可能对应多个视图,一个视图可能对应多个模型。 21 第三章第三章 系统设计系统设计 3.1 概

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论