【Java精品源码栏目提醒】:网学会员Java精品源码为您提供基于java的web服务器毕业论文 - 讲义教程参考,解决您在基于java的web服务器毕业论文 - 讲义教程学习中工作中的难题,参考学习。
基于
java的web服务器毕业论文 本文由kamis2008贡献 基于
JAVA 的 web 服务器 摘 要应用服务器是当前基于 Web 的软件开发的重要的支撑平台。
本文通过研 究 Web 应用服务器的功能需求以及基于组件的软件开发模式 结合
JAVA 规范和 超文本传输协议设计并实现了基于
JAVA 的 Web 应用服务器—DM WAS为 Web 客户部署 Web 应用程序提供支持从而更加方便地使用 DM 的数据存储和 访问服务。
关键字 关键字
JAVA应用服务器超文本传输协议多线程 应用服务器超文本传输协议 第一章 绪论 1.1 课题背景 随着信息处理流程越来越复杂需要存取的数据量越来越庞大数据库逐渐 成为存储和处理数据的主要工具它是许多公司整体业务结构形成的基础。
在传 统的客户机/服务器两层体系结构中应用程序的处理在前台的客户端和后台的 数据库服务器之间分担客户端发出数据请求服务器响应并处理请求把处理 的结果再回送到发出请求的客户端。
客户机/服务器结构因为其灵活性得到了较 广泛的应用但对于大型软件系统而言这种结构在系统的部署、可扩展性和可 维护性方面还存在着不足典型的有胖客户机/瘦服务器和瘦客户机/胖服务器体 系结构。
Internet 的发展给传统应用软件的开发带来了深刻的影响基于 Internet 和 Web 的 软 件 和 应 用 系 统 无 疑 需 要 更 为 开 放 和 灵 活 的 体 系 结 构 。
随 着 Internet/Intranet 技术的普及、电子商务技术的发展等数据库技术又面临着新的 挑战一种新的、更具生命力的体系结构被广泛采用这就是所谓的三层和多层 应用体系模型。
一个典型的三层模型由前端客户层、中间服务器层和后端数据库 层所组成在这种模型中业务逻辑被放到系统服务和用户接口之间的中间层 从而使业务逻辑与用户界面的表示层分开同时与后端系统保持相对独立性有 利于系统扩展。
三层模型具有更好的移植性可以跨不同类型的平台工作允许 用户请求在多个服务器间进行负载平衡。
在三层和多层应用模型中应用服务器是最核心的基础软件国际上许多著 名 的 计 算 机 公 司 和 开 放 源 码 组 织 纷 纷 推 出 了 各 自 的 产 品 和 系 统 如 IBM Websphere、 BEAWeblogic、 Oracle9iAS、 SUN iPlanet、 开放
源码 JBoss 和 ENHYDRA 等这其中有很多是由数据库厂家开发的以便为企业应用提供整体解决方案。
DM 数据库管理系统是华中科技大学数据库与多媒体技术研究所研制的分 布式多媒体数据库管理系统。
为了满足 DM 数据库在分布式环境下特别是多 层应用软件体系结构中企业级应用的需求 抢占数据库管理系统前沿技术的制高 点研发支持可扩展标记语 言Extensible Markup LanguageXML的数据库管 理系统 XDM4 和支持 XML、符合
Java 规范的 Web 应用服务器已成为 DM 下一 步的目标。
正是在这一背景下 本课题提出开发支持
JAVA 标准的 Web 应用服务 器为基于
Java、XML 和数据库的 Web 应用提供存储、查询、发布数据的能力 并提供部署、运行应用的环境。
1.2 Web 应用服务器的定义及功能 1.2.1. Web 基本概念 WWW 采用 Web 页面的方式进行信息的存储与传递Web 信息存储在 Web 站点上用户通过 Web 浏览器访问页面。
Web 页面是由 HTML 语言编写并由 浏览器翻译解释的。
建立 Web 的愿望是通过易于使用的超文本接口提供通过 的文件共享。
完整的 Web 结构应包括HTTP 协议、Web 服务器、通用网关接 口、Web 应用程序接口、Web 浏览器。
Web 体系结构如图 2-1 所示。
图 2-1 Web 体系结构 HTTP 协议HTTPHyptertext Transfer Protocol就是超文本传输协议是 WWW 服务的支撑协议它实现了服务器和客户机间信息交流。
Web 以两个主 要的协议为基础即 HTTP 及 TCP/IP 协议。
HTTP 用于 Web 浏览器与 Web 服务器 之间的数据交换浏览器使用超文本标记语言 HTMLTCP/IP 为网络传输控制 协议。
HTTP 协议工作在 TCP 协议之上在很多方面理解 HTTP 协议是理解 Web 的关键。
是指驻留在因特网上某种类型计算机的程序。
它是在网络中信 Web 服务器 息提供者基于 HTTP 的为实现信息发布、资料查询、数据处理等诸多应用搭建基 本平台的服务器其主要功能是提供网上信息浏览服务。
通用网关接口CGI Common Gateway Interface 的简称是在 Web 服务 器端的一个通用接口用来调用外部程序进行计数、查询数据库、生成定制的图 像或完成其他任务。
其主要的功能是在 WWW 环境下从客户端传递一些讯 息给 Web 服务器再由 Web 服务器去启动所指定的程序来完成特定的工作。
Web 应用程序接口Web 应用程序是运行在服务器端的可执行程序或动态 连接库。
它们可以响应用户要求动态产生超文本页面并将信息提供给客户浏 览器。
Web 应用程序接口就是一组函数 可以帮助开发者借助服务器配置文件中 的指令来创建自己的应用程序。
这些指令就是服务器执行一个请求的步骤包括 访问授权、根据文件根目录的路径转换、存在性验证、文件类型判别以及服务器 的正确执行。
Web 浏览器Web 浏览器用于通过 URLUniform Resource Locator同一 资源定位符来获取并显示 Web 网页的一种软件工具。
在 Windows 环境中较为 流行的 Web 浏览器为 Netscape Navigator 和 Internet Explorer。
用户也可在 AutoCAD 等软件的系统内部直接调用 Web 浏览器进入 Web 网络世界 。
1.2.2 Web 的工作机制 Web 系统的工作主要就是进行 Web 页面的交互一个典型的 Web 页面有一 个基础页面和内嵌的资源对象组成。
基础页面一般按照标准的语法结构——超文 本标记语言 HTML 书写 而内嵌资源 图象、 声音等 的统一资源定位符 URL 则按一定格式包含在基础页面之内1。
这里从用户的角度来描述 Web 页面的交 互过程。
为了显示用户所制定的一个页面浏览器需要完成下列步骤 1.浏览器首先需要对 URL 中所包含的服务器名进行域名解析 2.服务器与浏览器建立一条到该 IP 地址的 TCP 连接这段时间称为连接建 立时间 3.浏览器在该 TCP 连接上向服务器发送 HTTP 请求 从浏览器发送请求到它 收到第一个响应 IP 包的时间称为请求及响应时间 4.如 HTTP 响应的消息多于一个包从浏览器收到第一个 IP 包到它收到所 有 IP 包之间的时间称为传送时间 5.在浏览器得到完整的响应消息后基础页面的传送就结束了而浏览器需 要分析所获得的页面并提取出其中包含的资源对象的 URL 6.在得到所有的内嵌资源后浏览器根据具体的格式HTML、声音、图片、 动画等解释这些资源并把它们传送给用户。
图 2-2 表示了获取一个 Web 页面的过程。
图 2-2 获取 Web 页面的过程 由 Web 的结构以及工作过程可以看出Web 服务器是整个 Web 系统的重要 组成部分在 Web 系统的页面交互的过程中也占有举足轻重的作用。
因此改 善 Web 系统的性能其中关键的一环就是提高 Web 服务器的性能如何优化 Web 服务器的性能也就成了人们一直以来在提高 Web 性能方面共同关注的课题。
1.2.3 Web 应用服务器 Web 应用服务器是 Web 计算环境下产生的新型中间件为创建、部署、运 行、集成和管理事务性 Web 应用提供了一个跨平台的运行环境。
近年来许多研究人员、 组织机构对 Web 应用服务器分别提出了不同的定义 但到目前为止Web 应用服务器仍然没有一个完全统一的定义。
C.Mohan 在文献中认为应用服务器是传统事务处理监控器transaction processing monitor在 Web 环境下的现代等同物是事务性服务在线应用的执行 平台将现代的应用环境与历史遗留数据源集成是应用服务器最重要的特征之 一。
Ritter 在文献中认为应用服务器是位于以浏览器为基础的前端和历史遗留 应用的后端之间的、基于组件的服务器端软件它高速存取后端系统的信息处 理业务逻辑集成企业计算中的资源和应用为安全、状态维护、数据访问、数 据存取提供中间件服务。
文献认为应用服务器是为创建、部署、运行、集成和管理事务性 Web 应用 提供一 系列运行时服务如消息、事务、安全、应用集成等的可伸缩、高可用、 高可靠、高效的中间件平台。
应用服务器需满足 Web 计算的特定需求所以 应用服务器通常同时具有 Web 服务器的功能亦称为 Web 应用服务器。
每种定义有其侧重的方向 一般来说 Web 应用服务器应具有几个大的功能。
1.业务逻辑处理 3 业务逻辑是用户为完成某项功能所部署的应用程序组件。
处理业务逻辑是应 用服务器的主要功能。
与应用程序相关的业务逻辑可以由可重用组件组成而不 需要每个开发者自己开发。
一旦组件被创建 就可以被部署到应用服务器中运行。
大多数应用服务器提供某种机制用于指定组件的持久性、事务处理和安全性等。
2.数据访问 应用服务器提供一整套数据访问机制 用于管理与关系型数据库 如 Oracle SQL Server的连接。
开发人员只需要提供必要的连接参数就可以透明地访问数 据源而不需要知道访问具体是如何实现的。
3.事务管理 事务处理是企业计算中最重要的内容之一。
过去 Web 开发人员和应用程序 开发人员习惯于自己完成数据库事务管理。
对于没有经验的开发人员来说自己 控制事务既烦琐而且又容易出错。
而在应用服务器环境中开发人员所要关心的 只是业务逻辑的实现有关数据库的事务处理应交由应用服务器管理。
应用服务 器提供不同级别的事务控制以满足开发人员的不同需求。
4.状态和会话管理 应用服务器必须在同一用户会话过程的多次请求之间维护有关的状态数据。
在应用服务器环境中应用服务器一般是通过会话对象来保持用户状态数据的。
会话对象的唯一功能就是保存服务器端的数据 它使那些存在安全风险的数 据远离浏览器端从而保证了系统的安全性。
5.安全服务 为了获得对资源的访问权客户端必须通过服务器的认证因此应用服务器 必须要有验证用户的安全设施。
大多数服务器采用基于角色的访问控制机制。
此外也有一些服务器提供对安全服务的验证如操作系统LDAP 等更 高级的安全通过用户主机上数字认证的使用来实现。
一旦用户身份被验证服务 器将允许或禁止该用户访问组件和服务器所管理的数据库连接等。
6.数据库连接池 基于 Web 应用服务器的应用开发不可避免地要访问数据库。
当客户端在页 面中请求数据或更新数据时服务器必须连接数据库以完成工作。
如果用户每次 提交页面时都要执行数据库的连接和断开操作系统的性能就会变得很差因为 在一个事务周期中建立到数据库的连接是一个费时而又浪费系统资源的操作。
应 用服务器通常采用数据 库连接池技术来优化数据库连接 它不为每一个用户保持 单独连接而是维护了一个连接池来缓存已有的数据库连接。
如果用户需要查询 或更新数据相应组件就会请求服务器从连接池中分配一个可用连接。
当一个事 务结束后连接池收回该连接以待重用。
7.负载平衡和失败恢复 为了满足 Web 计算环境下大规模用户的并发访问Web 应用服务器需要提 供可信赖性、高伸缩性等特性提高系统整体性能和吞吐量这就要求服务器需 提供某种负载平衡和失败恢复机制。
负载平衡意味着一组服务器可以被集中成为一个服务器集群。
发往服务器的 请求被一个代理服务器处理后委派给服务器集群中最空闲的服务器 此后发 送该请求的客户端将直接与那台服务器通信。
具有负载平衡机制的系统一般应具 有良好的扩展性以便当客户端请求负载的增加时更多的服务器主机能够被加 入到服务器集群中。
失败恢复机制增强了服务器的容错性。
如果集群内某台服务器失效停机新 的请求将被重新分配给其它某台服务器。
简单的失败恢复不能解决所有问题如 果在某项任务的执行过程中服务器停机 负载平衡机制将会发现这个问题并将该 任务重新分配给其它服务器 但是请求该任务的用户的状态和会话数据将对新服 务器不再可用。
正因为这个缺陷有的应用服务器提供会话级失败恢复状态和 会话数据将被复制给集群内其它服务器或是被存储在永久性存储介质如数据 库中使用户数据对每个服务器总是保持可用。
1.3
JAVA 简介与技术 简介与技术 1.3.1
JAVA 简介
Java 的诞生需追溯到 1991 年。
当时在 Sun 公司内有一个称为 Green 的 项目这个项目的工程师受命设计一种小型的计算机语言用于机顶盒、家电控 制芯片等消费类设备。
但是 1993 年交互式电视及 PDA 市场开始滑坡而 Intern et 开始盛行Sun 公司将市场目标投向 Internet。
1994 年原来的项目组编写了 一个 HotJava 浏览器当时正是这个浏览器吸引了全世界的眼球1995 年秋N etscape 决定让其浏览器支持
Java并在 1996 年年初发布了支持
Java 的版本。
这 意味着
Java 语言开始流行起来。
后来IBM、Oracle、Symantec、BEA、Inprise 等许多著名 IT 公司都注册了
Java 使用许可证甚至心不甘、情不愿的 Microsof t 也开始支持 JavaJava 逐渐成为了一个工业标准。
Sun 于 1996 年年初发布了
Java 的第一个版本在 1998 年召开的 JavaOne 大 会上又发布了
Java 1.2 版这就是常说的
Java 2它以功能全面、具有高度扩 展能力的新版本换掉了原来的 GUI 界面和图形工具包。
朝着“一次编写到处运 行”的宏伟目 标又前进了一大步。
1999 年 宣布了以
Java 2 平台为核心的
JAVA、 Sun J2SE 和 J2ME 三大平台。
今天这三大平台迅速推进满足着不断增长的市场需求。
2002 年 2 月Sun 发布了 J2SE 1.4 版成为最具竞争优势的企业级应用与服务的快速开发平台。
该产品已通过中文编码国家标准 GB18030 的检测标志着
Java 开发将在中国提 速。
2002 年 9 月
JAVA 1.4 在日本 JavaOne 开发者大会上预演并于 2003 年第 一季度正式交付客户使用。
而 J2ME 平台已被全球 20 多家顶尖的手机生产商在 100 多种不同类型的
Java 手机中采用。
2004 年 10 月Sun 公司正式发布 JDK 5.0 版。
作为通过 JCP 研发的最大规 模的项目之一有大约 160 位专家成员参与了 JDK 5.0 版本的研发。
JDK 5.0 提 供了 100 多个新特性从易用性和各个破记录的性能来看JDK 5.0 的推出被认 为是
Java 平台和编程语言近 10 年来最重大的升级。
现今
Java 联盟成员公司超过了 400 个其中包括 Oracle、SAP、Sony、Mot orola、Nokia、HP 和 Philips 等。
Java 联盟的
Java 开发者超过 300 万。
JAVA 下 载量超过 100 万许可证接收方达 35 个。
J2ME 手机超过 1 500 万部应用达 5 000 多个。
1.3.2
Java 的特点
Java 语言是一种优秀的编程语言。
它最大的优点就是与平台无关在 Windo ws 2000、Windows XP、Solaris、Linux、Mac OS 及其他平台上都可以使用 相同的代码。
“一次编写到处运行”的特点使得系统的移植、平台的迁移变得 十分容易。
Java 语言的设计者借鉴了 C的设计
Java 语言是完全面向对象的语言而 C至多只能算准“面向对象”的语言。
Java 语言的语法结构与 C语言的语法结 构十分相似这使得 C程序员学习
Java 语言相当容易。
当然如果仅仅是对 C改头换面那么就不会有今天
Java 热闹的场面了但这种借鉴是取其精华、 去其糟粕的“拿来主义”的借鉴。
Java 语言提供的许多有用的新特性使得
Java 语言比 C语言更易使用且不容易出错。
简单地说
Java 具有以下的特性简洁 性、面向对象、分布式运算、健壮性、安全性跨平台、可移植。
1.3.3
JAVA 技术 为了适应多层分布式体系结构的发展人们相继开发了很多应用服务器产 品。
但不幸的是大多数应用服务器还没有一个明确统一的标准各个应用服务 器都是按照自己的模式来提供服务。
这就导致了开发人员不能够将为一种应用服 务器开发的应用程序组件安全可靠地移植到另外一种应用服务器中。
基于上述原因业界迫切需要一个服务器端组件体系机构的统一标准。
这个 统一标准需要明确定义出应用程序组件所必须遵循的统一的接口 让组件不再只 能面向一种特定 的应用服务器 而是能够在遵循相同标准的不同的应用服务器间 安全可靠地移植。
组件供应商因此不用再顾虑他们提供的组件与服务器的兼容性 问题以及诸如运行时所需要的安全、事务等服务和支持从而可以专注于开发具 体业务逻辑问题的解决方案。
正是基于这样的需求
JAVA 应运而生。
JAVA 是一种利用
Java2 平台来简化 诸多与多级企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
JAV A 提供了多层分布式的应用系统模型、重用组件的能力、统一的安全模型和灵活 的事务控制。
基于组件的
JAVA 企业应用系统具有平台独立性所以不受任何软 件产品和任何软件厂商应用程序接口Application Program InterfaceAPI的 约束。
JAVA 具有如下一系列明显的优点 1.
JAVA 是一个分布式应用系统的平台几乎包括了企业级应用系统开发所 需要的各种技术 2.
Java 使得企业级应用真正实现“一次开发到处运行” 3.由于
JAVA 是一个规范任何遵循该规范开发的应用程序组件都能够在实 现了该规范的应用服务器上方便的移植并得到重用 4.
JAVA 具有开放性和统一性用户不必再受具体软硬件体系结构的约束 5.
JAVA 提供了基于组件的开发技术使得企业级应用程序的开发更加容易。
基于
Java 和 Web 的企业级分布式应用开发的标准目前大多数主流应用服 务器都已经支持
JAVA。
JAVA 包含多项核心技术。
1.企业 JavaBeansEnterprise
Java BeansEJB EJB 是
JAVA 中最重要、最核心的部分它是一种服务器端的组件模型。
一 个 EJB 是一个运行在应用服务器端的非可视化的软件组件。
提供了一个框架 EJB 来开发和实施分布式业务逻辑简化了中间层的开发它通过提供对中间层服务 的支持如数据库连接、事务、安全等显著地简化了具有可伸缩性和高度复杂 性的企业级应用的开发。
EJB 规范定义了四种基本的 Bean 类型。
1无状态会话 BeanStateless session bean 它提供某种单一的服务不 保存与特定客户的对话状态在服务器发生故障时无法继续存在其生命周期相 对较短。
2有状态会话 BeanStateful session bean 它提供了一种保持会话状态的 服务每个实例都与特定的客户机相关联且只用于一个单一的线程在与客户 机的方法调用之间维持对话状态。
有状态会话 Bean 在服务器发生故障时无法继 续生存生命周期相对较短。
3实体 Bean Entity bean 它代表业务上的实体 包含与数据相关的逻辑。
实体 Bean 一般与数据库形成一种对象/关系映射一个实体 Bean 可以代表一个 数据库中存储的对象。
他们能够通过一个主关键字来识别并可以 被不同的客户端 所共享。
EJB 容器负责管理这些对象的持久性。
实体 Bean 在服务器发生故障后 能继续存在。
4消息驱动 BeanMessage-Driver bean 它是 EJB2.0 新引入的一种 Bean 类型用来监听消息的对象。
消息驱动 Bean 在接收到
Java 消息服务
Java Me ssage ServiceJMS的消息后执行它们是事务可知的和无状态的一般用来 执行一些异步的方法调用。
2.Servlet Servlet 是一种独立于平台和协议的服务器端
Java 应用程序用来拓展基于 请求响应模式的服务器端的能力。
Servlet 位于 Web 服务器端由 Web 服务器动 态加载和卸载。
Servlet 具有多线程、持久性、灵活性及易于访问其它网络资源等 特点为创建基于 Web 的应用程序提供了基于组件的、平台独立性的方法。
3.
Java 服务器端页面
Java Server PagesJSP JSP 是 Sun 公司提出的一种基于
Java 的服务器端动态页面技术是 Servlet 技术的扩展。
与 ASP 相比JSP 更具有平台独立性。
JSP 页面由 HTML 代码和 嵌入其中的
Java 代码以及 JSP 标记所组成。
服务器在页面被客户端请求以后对 这些
Java 代码和标记进行处理然后将生成的 HTML 页面返回给客户端的浏览 器。
4.
Java 数据库连接
Java Database ConnectivityJDBC JDBC API 是一个标准的数据库访问接口以一种统一的方式来对各种各样 的关系数据库进行存取。
与 ODBC 一样JDBC 为开发人员隐藏了不同数据库的 不同特性。
另外由于 JDBC 建立在
Java 的基础上因此还提供了数据库存取的平台独 立性。
5.
Java 事务 APIJava Transaction APIJTA和
Java 事务服务JavaTrans action ServiceJTS 事务处理是企业计算中最主要的内容之一。
JTA 和 JTS 为
JAVA 平台提供了 分布式事务服务。
一个分布式的事务涉及一个事务管理器和一个或者多个资源管 理器。
一个资源管理器是任何类型的持久性的数据存储。
事务管理器负责协调所 有事务参与者之间的.
上一篇:
基于java学生考勤管理系统
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a