基于java多线程的代理服务器的设计与实现内容摘要:
环境,及先进的系统开发方案,从而达到充分利用现有 资源,提高系统开发水平和应用效果 的 目的。 (1) 系统应基本 完成服务器代理功能 ,满足 多用户同时连接的请求 需要,并达到操作过程简便。 (2) 系统采用 多线程的连接技术,实现服务器端和客户 端整合的方式 ,显示用户界面 的 信息,基本操作。 Server(服务器端)负责实现数据服务。 (3) 系统应具备数据库维护功能,及时根据要求进行数据的添加,删除,修改等操作, (4) 合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流连接,使各模块间的藕合性较低,方便系统运行,提高系统安全性。 系统设计原则 为 满足系统 操作简便, 处理大量的请求, 最大限度的提高软件的质量,从而满足 网络代理的 实际需要,在设计开发过程中遵循了,如下原则: (1) 实用性原则:本系统是 应用型系统, 要基本适合 网络代理服务器的 实际 需求,并能够处理一些特殊情况的要求。 (2) 易操作原则:要求设计的系统功能齐全,操作方便, 操作 提示。 (3) 源程序可读性原则:为了便于以后扩充设计,维护人员读懂代码或以后的代码修改,软件升级维护,尽可能做好代码注释工作。 (4) 优化原则:为了使系统更为完善的目的,合理的运用窗口,菜单,对象等的整合,使程序便于修改,也方便了将来的维护。 系统目标设计 本课题要实现一个 多线程连接的代理服务器,要实现 HTTP 代理功能,服务器能够建立服务,接收用户请求,连接远程 Web 服务器,并将远程 Web 服务器上获取的数据转发给用户。 代理 服务器的功能要实现,对于任何一个用户连接请求,服务器都能够对其进行响应,启动服务器后,其响应过程可以分三步骤完成。 第一步,创建线程用于监听用户连接,由于该代理服务器是基于面向连接的 TCP 协议,通过对 java 提供的流 Socket 类实现。 因此,用户在请求服务连接之前,必须建立与服务器之间的连接。 第二步,接收用户请求,并向目的 Web 服务器转发用户请求。 第三步,接收从服务器上 获取的数据,并向用户浏览器转发,同一时间中,数据接收线程和数据发送线程同时工作,并且通过共享缓冲进行同步和协调工作。 8 UML 建模语言需求和功能描述 统一建模语言( UML)是一种基于面向对象的可视化建模语言。 它提供了丰富的用图形符号表示的模型元素,这些标准的图形符号隐含了 UML 的语法,而由这些图形符号组成的各种模型,则给出了 UML 的语义。 它的简单、一致、通用的定义,使开发者能在语义上取得一致,消除了因人而异的表达方面所造成的影响。 UML 代表了面向对象方法的软件开发技术的发展方向,具有重大的经济价值和国防价值,获得了工业界和科技界的广泛支持,已成为可视化建模语言事实上的工业标准。 用例描述 代理服务器其实相对客户 /服务器,和浏览器 /服务器模式而言,是一种 即 是客户端也兼做服务器端的软件模型,它要实现的功能,就是,建立与服务器的连接,转发用户连接到目标 Web服务器,从远端服务器获取数据,再把收据转发给用户浏览器, 而且在其中实现服务器的开启和关闭。 根据功能描述可以得到 用户相关的 用例: 图 31 普通用户用例图 根据用例图的描述,对普通用户的用例进行编号划分如表 31。 表 31 普通用户用例编号划分 用例名称 登陆 建立连接 资料 管理 提出请求信息 返回 请求信息 断开连接 用例编号 101 102 103 104 105 106 每个用例的 功能的 描述文件如下: 9 表 32 登陆 用例名称:登陆 用例编号: 101 功能描述: 用户根据自己的账号以及密码登录系统 前置条件: 用户进入登陆页面, 用户必须是管理员已授权,系统正常通信 后置条件: 用户登录成功后进入相关页面进行相应操作 其它条件 :用户名与密码不符时,提示出错信息 正常事件流: ( 1) 用户进入登录页面 ( 2) 用户输入账号和密码 ( 3) 用户提交登录信息 ( 4) 系统验证用户提交的登录信息 ( 5) 系统验证不通过转备选事件流 1 ( 6) 系统验证通过,用户登录成功 备选事件流: ( 1) 用户登录失败,系统提示:“输入的用户名和密码不匹配。 ” 特殊需求: ( 1) 账号至少 6位 表 33 建立连接 用例名称:建立连接 用例编号: 102 功能描述:用户与服务器 建立连接,进行网络通信 前置条件: ( 1)有正常的网络通信( 2)服务器相关设置正确 后置条件: 用户进行与服务器交互 其它条件 :操作错误 ,提示出错信息 正常事件流: ( 1) 启动 系统 ( 2)用户输入请求信息 ( 3)用户发送请求信 ( 4)用户接收系统的返回信息 备选事件流: , 将失败信息返回给用户 表 34 资料管理 用例名称:资料管理 用例编号: 103 功能描述:用户进行对自己的用户名和密码进行修改 前置条件: ( 1)有正常的网络通信 ( 2)服务器相关设置正确 ( 3)用户权限合法 后置条件:用户进行自己资料的维护 其它条件:操作错误,提示出错信息 正常事件流: ( 1)用户输入更改信息 ( 2)用户发送更改信息 备选事件流: ,将失败信息返回给用户 10 表 35 提出请求信息 用例名称:提出请求信息 用 例编号: 104 功能描述: 用户与系统进行正常的交互,系统接收用户的请求操作 前置条件: ( 1)有正常的网络通信 ( 2) 系统 相关设置 已完成 后置条件:用户进行 请求信息的输入 其它条件:操作错误,提示出错信息 正常事件流: ( 1)用户输入 请求 信息 ( 2)用户发送 请求 信息 备选事件流: 请求失败,重新输入 特殊需求: 规范的请求操作 备注:无 表 36 返回请求信息 用例名称:返回请求信息 用例编号: 105 功能描述:用户与系统进行正常的交互,用户接收系统返回的信息 前置条件: ( 1)请求信息操作得到响应 后置条件:无 其它条件:操作错误,提示错误信息 正常事件流:( 1)用户接收返回信息 备选事件流: 无 特殊需求:无 表 37 断开连接 用例名称:断开连接 用例编号: 106 功能描述:断开与系统建立的当前连接 前置条件: ( 1)与系统正处于正常连接状态 后置条件: 无 其它条件: 无 正常事件流:( 1) 用户发出断开连接的请求 ( 2)将断开连接的命令发送给系统 ( 3)断开连接 备选事件流: 如断开连接失败,将错误信息返回给用户 特殊需求:无 备注:无 11 图 32 管理员 用户用例图 根据管理员用户的用例图描述,对管理员用户的用例进行编号划分入表 38。 表 38 管理员 用户用例编号划分 用例名称 登陆 建立连接 用户管理 后台管理 信息返回 断开连接 用例编号 201 202 203 204 205 206 代理服务器管理员相关联用例分析图 每个用例的描述文件如下: 表 39 登陆 用例名称:登陆 用例编号: 201 功能描述:管理员根据自己的账号以及密码登录系统 前置条件:进入登陆页面,管理员是合法的,系统正常通信 后置条件:登录成功后进入相 关页面进行相应操作 其它条件:用户名与密码不符时,提示出错信息 正常事件流: ( 1)进入登录页 ( 2)输入账号和密码 ( 3)提交登录信息 ( 4)系统验证提交的登录信息 ( 5)系统验证不通过转备选事件流 1 ( 6)系统验证通过,用户登录成功 备选事件流: ( 1)登录失败,系统提示:“输入的用户名和密码不匹配。 ” 特出需求:规范操作 12 表 310 建立连接 用例名称:建立连接 用例编号: 202 功能描述:管理员与服务器建立连接,进行网络通信 前置条件: ( 1)有正常的网络通信 ( 2)服务器相关设置正确 后置条件:管理员进行与服务器交互 其它条件:操作错误,提示出错信息 正常事件流: ( 1)启动系统 ( 2)设置系统参数 备选事件流: ,将失败信息返回给用户 特殊需求: 规范的请求操作 表 311 用户管理 用例名称:用户管理 用例编号: 203 功能描述:管理员添加用户或者删除用户 前置条件: ( 1)有正常的网络通信 ( 2)服务器相关设置正确 后置条件:管理员进行与服务器交互 其它条件:操作错误,提示出错信息 正常事 件流: ( 1)启动系统 ( 2)进入相应界面 ( 3)设置系统参数 表 312 后台管理 用例名称:后台管理 用例编号: 204 功能描述:管理员进行系统维护 前置条件: ( 1)有正常的网络通信 ( 2)进入相关的界面 后置条件:管理员进行与服务器交互 其它条件:操作错误,提示出错信息 正常事件流: ( 1)启动系统 ( 2)进入相应界面 ( 3)设置系统参数 ( 4)提交相应的信息 特殊需求: 规范的请求操作 13 表 313 信息返回 用例名称: 信息返回 用例编号: 205 功能描述:管理员进行信息查看 前置条件: ( 1)有正常的网络通信 ( 2)进入相关的界面 后置条件:管理员进行与服务器交互 其它条件:操作错误,提示出错信息 正常事件流: ( 1)启动系统( 2)进入相应界面 ( 3)查看前台的运行情况 备选事件流: 管理前台的操作 表 314 断开连接 用例名称:断开连接 用例编号: 206 功能描述:断开与系统建立的当前连接 前置条件: ( 1)与系统正处于正常连接状态 后置条件:无 正常事件流:( 1)发出断开连接的请求 ( 2)将断开连接的命令发送给系统 ( 3)断开连接 备选事件流: 如断开连接失败,将错误信息返回给管理员 代理 服务器端活动图 通过对以上用例的分析和描述可以对服务器的用例,进行如下活动图的描述(如图 33) 图 33 服务器“服务请求”活动图 14 客户端对象的获取 首先分析客户端,从用例及其描述中,分析每个活动及其实现的功能,可以得到实现客户端应用的对象包括。 连接界面,服务界面,建立连接,响应处理,获取服务和断开连接,他们之间的对象图如图 34。 图 34客户应用的对象图 类及对象设计 用户界面类 设计 通过以上对用例的描述,及对象的分析,进行对用户的界面设计类图(如图 ) 图 35 用户界面的类图 这个类图描述了界面本身的结构,是一个简单的设计模型,而并没牵涉到界面类在整体中的应用 ,只是描述了界面类所用到的属性,同时也没给出与人机交互的方式。 15 服务器类的设计 在服务器的设计中应用了几个类来实现服务器的多线程代理功能, HTTP 代理服务器必须具有如下功能 ( 类、对象图 34)。 (1)启动服务,接受用户代理请求。 (2)接收用户请求,分析用 户请求,并向目的 Web 服务器转发用户请求。 (3)从目的 Web 服务器上下载获取数据到代理服务器。 (4)向用户浏览器转发获取的远程 Web 服务器上的数据。 (5)关闭服务的功能。 为实现以上所要求的代理服务器功能,需建立如下几个类。 (1)服务器主框架类 UserPanel 类 ,主框架类提供了服务器的人机交互的界面,而且在其中实现了服务器的启动和关闭功能。 (2)服务器侦听线程类 ServerListen 类 ,侦听线程类负责侦听用户连接,并实现响应用户连接请求的功能,其父类为 Thread 类。 (3)用户请求转发线程类 UserToserver 类 ,它负责接收用户的连接请求,对用户请求进行分析,并将其转发到目的 Web 服务器,其父类为 Thread 类。 (4)数据缓冲类 ShareBuffer 类 ,数据缓冲类提供了数据缓冲的功能,并且实现了接收数据线程和数据转发线程的同步机制与协作。 (5)数据接收线程类 ServerToProxy 类 ,数据接收线程类负责从目的 Web 服务器获取数据,其父类为 Thread 类。 (6)数据转发线程类 ProxyToUser 类 ,数据转发线程类负责将数据转发给用户浏览器,其父类为 Thread 类。 (7)日志保存类 logMessageSQL 类,主要用来保存 用户的操作信息,保存到数据库。 图 36 服务器类、对象图 系统模块划分 根据系统分析和功能需求此系统的模块主要有管。基于java多线程的代理服务器的设计与实现
相关推荐
定标题和 /或图标的选项卡,在一组组件之间进行切换。 JTextArea 类负责创建一个显示纯文本的多行区域。 它作为一个轻量级组件 Container 类负责创建一个容器对象,此容器可以包含其它组件。 AboutDialog 类是 JDialog 类的子类,负责创建一个显示对话框。 10 : jMainPane、 jPanel jPanel变量是 JPane1 创建的面板容器。 jt jt2
=()。 (color)。 Font f = new Font(宋体 ,size)。 (f)。 (str,x,y)。 (c)。 } public static void main(String[] args){ new GamePlaneFrame().launchFrame()。 } public void launchFrame(){ ()。 addKeyListener(new
配合 setSavepoint()方法所设置的退回点,退回到相应的点 getMetaData 返回用于连接的一个 DatabaseMetaData对象 getTransactionIsolation() 返回连接的事务处理隔离层 getWarnings() 返回在这个连接中通过调用报告的第一个 SQL警告 inReadOnly() 返回连接的只读状态 setAutoClose() 激活默认
统的设计与实现 毕业论文内江师范学院本科毕业论文(设计) 2目 录 1 前言 课题选题背景 31. 3即时聊天系统的发展 42 涉及的相关技术及协议 Java语言 C/S模式介绍 Hibernate框架简介 63 系统需求分析 数据库概要设计 ................................................................... 12 基于
越来越受青睐,未来的手机游戏领域存在着一个潜在的庞大用户群。 Java 2 Micro Edition(J2ME)是一种针对小型设备,如手机和 PDA 应用 Java语言技术的版本。 J2ME 与掌上型手机相比之下还是又一些限制的。 但是它已经大幅度改善了手机支持游戏的能力。 而且 J2ME 比 SMS 和 WAP 拥有更好的控制接口,支持动态图片并使用无线网络连接到后端服务器。 也就是当
同类型的手机必须实现对HTTP协议的支持,而其他协议的实现都是可选的而不是必需的。 因此,考虑到不同类型的手机上的可兼容性,客户端和服务端采用HTTP协议进行通信。 数据存储技术本系统中查询记录是保存在手机记录管理系统(RMS)中,从服务端接收的地图文件是先保存在手机文件系统中,再读取文件并渲染到地图界面中。 系统涉及数据存储技术,在此作简明介绍。 RMSJ2ME