毕业论文基于JAVA的web服务器.docx

上传人:b****7 文档编号:9392340 上传时间:2023-02-04 格式:DOCX 页数:39 大小:713.78KB
下载 相关 举报
毕业论文基于JAVA的web服务器.docx_第1页
第1页 / 共39页
毕业论文基于JAVA的web服务器.docx_第2页
第2页 / 共39页
毕业论文基于JAVA的web服务器.docx_第3页
第3页 / 共39页
毕业论文基于JAVA的web服务器.docx_第4页
第4页 / 共39页
毕业论文基于JAVA的web服务器.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

毕业论文基于JAVA的web服务器.docx

《毕业论文基于JAVA的web服务器.docx》由会员分享,可在线阅读,更多相关《毕业论文基于JAVA的web服务器.docx(39页珍藏版)》请在冰豆网上搜索。

毕业论文基于JAVA的web服务器.docx

毕业论文基于JAVA的web服务器

基于JAVA的web服务器

摘要:

应用服务器是当前基于Web的软件开发的重要的支撑平台。

本文通过研究Web应用服务器的功能需求以及基于组件的软件开发模式,结合JAVA规范和超文本传输协议,设计并实现了基于JAVA的Web应用服务器—DMWAS,为Web客户部署Web应用程序提供支持,从而更加方便地使用DM的数据存储和访问服务。

关键字:

JAVA;应用服务器;超文本传输协议;多线程

 

第一章绪论

1.1课题背景

随着信息处理流程越来越复杂,需要存取的数据量越来越庞大,数据库逐渐成为存储和处理数据的主要工具,它是许多公司整体业务结构形成的基础。

在传统的客户机/服务器两层体系结构中,应用程序的处理在前台的客户端和后台的数据库服务器之间分担,客户端发出数据请求,服务器响应并处理请求,把处理的结果再回送到发出请求的客户端。

客户机/服务器结构因为其灵活性得到了较广泛的应用,但对于大型软件系统而言,这种结构在系统的部署、可扩展性和可维护性方面还存在着不足,典型的有胖客户机/瘦服务器和瘦客户机/胖服务器体系结构。

Internet的发展给传统应用软件的开发带来了深刻的影响,基于Internet和Web的软件和应用系统无疑需要更为开放和灵活的体系结构。

随着Internet/Intranet技术的普及、电子商务技术的发展等,数据库技术又面临着新的挑战,一种新的、更具生命力的体系结构被广泛采用,这就是所谓的三层和多层应用体系模型。

一个典型的三层模型由前端客户层、中间服务器层和后端数据库层所组成,在这种模型中,业务逻辑被放到系统服务和用户接口之间的中间层,从而使业务逻辑与用户界面的表示层分开,同时与后端系统保持相对独立性,有利于系统扩展。

三层模型具有更好的移植性,可以跨不同类型的平台工作,允许用户请求在多个服务器间进行负载平衡。

在三层和多层应用模型中,应用服务器是最核心的基础软件,国际上许多著名的计算机公司和开放源码组织纷纷推出了各自的产品和系统,如IBMWebsphere、BEAWeblogic、Oracle9iAS、SUNiPlanet、开放源码JBoss和ENHYDRA等,这其中有很多是由数据库厂家开发的,以便为企业应用提供整体解决方案。

DM数据库管理系统是华中科技大学数据库与多媒体技术研究所研制的分布式多媒体数据库管理系统。

为了满足DM数据库在分布式环境下,特别是多层应用软件体系结构中企业级应用的需求,抢占数据库管理系统前沿技术的制高点,研发支持可扩展标记语言(ExtensibleMarkupLanguage,XML)的数据库管理系统XDM4和支持XML、符合Java规范的Web应用服务器已成为DM下一步的目标。

正是在这一背景下,本课题提出开发支持JAVA标准的Web应用服务器,为基于Java、XML和数据库的Web应用提供存储、查询、发布数据的能力,并提供部署、运行应用的环境。

1.2Web应用服务器的定义及功能

1.2.1.Web基本概念

WWW采用Web页面的方式进行信息的存储与传递,Web信息存储在Web站点上,用户通过Web浏览器访问页面。

Web页面是由HTML语言编写,并由浏览器翻译解释的。

建立Web的愿望是通过易于使用的超文本接口,提供通过的文件共享。

完整的Web结构应包括:

HTTP协议、Web服务器、通用网关接口、Web应用程序接口、Web浏览器。

Web体系结构如图2-1所示。

图2-1Web体系结构

HTTP协议:

HTTP(HyptertextTransferProtocol)就是超文本传输协议,是WWW服务的支撑协议,它实现了服务器和客户机间信息交流。

Web以两个主要的协议为基础即HTTP及TCP/IP协议。

HTTP用于Web浏览器与Web服务器之间的数据交换,浏览器使用超文本标记语言HTML;TCP/IP为网络传输控制协议。

HTTP协议工作在TCP协议之上,在很多方面,理解HTTP协议是理解Web的关键。

Web服务器:

是指驻留在因特网上某种类型计算机的程序。

它是在网络中信息提供者基于HTTP的为实现信息发布、资料查询、数据处理等诸多应用搭建基本平台的服务器,其主要功能是提供网上信息浏览服务。

通用网关接口(CGI):

CommonGatewayInterface的简称,是在Web服务器端的一个通用接口,用来调用外部程序进行计数、查询数据库、生成定制的图像,或完成其他任务。

其主要的功能是在WWW环境下,从客户端传递一些讯息给Web服务器,再由Web服务器去启动所指定的程序来完成特定的工作。

Web应用程序接口:

Web应用程序是运行在服务器端的可执行程序或动态连接库。

它们可以响应用户要求,动态产生超文本页面,并将信息提供给客户浏览器。

Web应用程序接口就是一组函数,可以帮助开发者借助服务器配置文件中的指令来创建自己的应用程序。

这些指令就是服务器执行一个请求的步骤,包括访问授权、根据文件根目录的路径转换、存在性验证、文件类型判别以及服务器的正确执行。

Web浏览器:

Web浏览器用于通过URL(UniformResourceLocator,同一资源定位符)来获取并显示Web网页的一种软件工具。

在Windows环境中较为流行的Web浏览器为NetscapeNavigator和InternetExplorer。

用户也可在AutoCAD等软件的系统内部直接调用Web浏览器进入Web网络世界。

1.2.2Web的工作机制

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.3Web应用服务器

Web应用服务器是Web计算环境下产生的新型中间件,为创建、部署、运行、集成和管理事务性Web应用提供了一个跨平台的运行环境。

近年来,许多研究人员、组织机构对Web应用服务器分别提出了不同的定义,但到目前为止,Web应用服务器仍然没有一个完全统一的定义。

C.Mohan在文献中认为,应用服务器是传统事务处理监控器(transactionprocessingmonitor)在Web环境下的现代等同物,是事务性服务在线应用的执行平台,将现代的应用环境与历史遗留数据源集成是应用服务器最重要的特征之一。

Ritter在文献中认为,应用服务器是位于以浏览器为基础的前端和历史遗留应用的后端之间的、基于组件的服务器端软件,它高速存取后端系统的信息,处理业务逻辑,集成企业计算中的资源和应用,为安全、状态维护、数据访问、数据存取提供中间件服务。

文献认为应用服务器是为创建、部署、运行、集成和管理事务性Web应用提供一系列运行时服务(如消息、事务、安全、应用集成等)的可伸缩、高可用、高可靠、高效的中间件平台。

应用服务器需满足Web计算的特定需求,所以,应用服务器通常同时具有Web服务器的功能,亦称为Web应用服务器。

每种定义有其侧重的方向,一般来说,Web应用服务器应具有几个大的功能。

1.业务逻辑处理3

业务逻辑是用户为完成某项功能所部署的应用程序组件。

处理业务逻辑是应用服务器的主要功能。

与应用程序相关的业务逻辑可以由可重用组件组成,而不需要每个开发者自己开发。

一旦组件被创建,就可以被部署到应用服务器中运行。

大多数应用服务器提供某种机制用于指定组件的持久性、事务处理和安全性等。

2.数据访问

应用服务器提供一整套数据访问机制,用于管理与关系型数据库(如Oracle,SQLServer)的连接。

开发人员只需要提供必要的连接参数就可以透明地访问数据源而不需要知道访问具体是如何实现的。

3.事务管理

事务处理是企业计算中最重要的内容之一。

过去,Web开发人员和应用程序开发人员习惯于自己完成数据库事务管理。

对于没有经验的开发人员来说,自己控制事务既烦琐而且又容易出错。

而在应用服务器环境中,开发人员所要关心的只是业务逻辑的实现,有关数据库的事务处理应交由应用服务器管理。

应用服务器提供不同级别的事务控制,以满足开发人员的不同需求。

4.状态和会话管理

应用服务器必须在同一用户会话过程的多次请求之间维护有关的状态数据。

在应用服务器环境中,应用服务器一般是通过会话对象来保持用户状态数据的。

会话对象的唯一功能就是保存服务器端的数据,它使那些存在安全风险的数据远离浏览器端,从而保证了系统的安全性。

5.安全服务

为了获得对资源的访问权,客户端必须通过服务器的认证,因此应用服务器必须要有验证用户的安全设施。

大多数服务器采用基于角色的访问控制机制。

此外,也有一些服务器提供对安全服务的验证(如操作系统,LDAP等),更高级的安全通过用户主机上数字认证的使用来实现。

一旦用户身份被验证,服务器将允许或禁止该用户访问组件和服务器所管理的数据库连接等。

6.数据库连接池

基于Web应用服务器的应用开发不可避免地要访问数据库。

当客户端在页面中请求数据或更新数据时,服务器必须连接数据库以完成工作。

如果用户每次提交页面时都要执行数据库的连接和断开操作,系统的性能就会变得很差,因为在一个事务周期中建立到数据库的连接是一个费时而又浪费系统资源的操作。

应用服务器通常采用数据库连接池技术来优化数据库连接,它不为每一个用户保持单独连接,而是维护了一个连接池来缓存已有的数据库连接。

如果用户需要查询或更新数据,相应组件就会请求服务器从连接池中分配一个可用连接。

当一个事务结束后,连接池收回该连接以待重用。

7.负载平衡和失败恢复

为了满足Web计算环境下大规模用户的并发访问,Web应用服务器需要提供可信赖性、高伸缩性等特性,提高系统整体性能和吞吐量,这就要求服务器需提供某种负载平衡和失败恢复机制。

负载平衡意味着一组服务器可以被集中成为一个服务器集群。

发往服务器的

请求被一个代理服务器处理后委派给服务器集群中最空闲的服务器,此后发送该请求的客户端将直接与那台服务器通信。

具有负载平衡机制的系统一般应具有良好的扩展性,以便当客户端请求负载的增加时,更多的服务器主机能够被加入到服务器集群中。

失败恢复机制增强了服务器的容错性。

如果集群内某台服务器失效停机,新的请求将被重新分配给其它某台服务器。

简单的失败恢复不能解决所有问题,如果在某项任务的执行过程中服务器停机,负载平衡机制将会发现这个问题并将该任务重新分配给其它服务器,但是请求该任务的用户的状态和会话数据将对新服务器不再可用。

正因为这个缺陷,有的应用服务器提供会话级失败恢复,状态和会话数据将被复制给集群内其它服务器或是被存储在永久性存储介质(如数据库)中,使用户数据对每个服务器总是保持可用。

1.3JAVA简介与技术

1.3.1JAVA简介

Java的诞生需追溯到1991年。

当时,在Sun公司内,有一个称为Green的项目,这个项目的工程师受命设计一种小型的计算机语言,用于机顶盒、家电控制芯片等消费类设备。

但是1993年交互式电视及PDA市场开始滑坡,而Internet开始盛行,Sun公司将市场目标投向Internet。

1994年,原来的项目组编写了一个HotJava浏览器,当时正是这个浏览器吸引了全世界的眼球,1995年秋,Netscape决定让其浏览器支持Java,并在1996年年初发布了支持Java的版本。

这意味着Java语言开始流行起来。

后来,IBM、Oracle、Symantec、BEA、Inprise等许多著名IT公司都注册了Java使用许可证,甚至心不甘、情不愿的Microsoft也开始支持Java,Java逐渐成为了一个工业标准。

Sun于1996年年初发布了Java的第一个版本,在1998年召开的JavaOne大会上,又发布了Java1.2版,这就是常说的Java2,它以功能全面、具有高度扩展能力的新版本换掉了原来的GUI界面和图形工具包。

朝着“一次编写,到处运行”的宏伟目标又前进了一大步。

1999年,Sun宣布了以Java2平台为核心的JAVA、J2SE和J2ME三大平台。

今天,这三大平台迅速推进,满足着不断增长的市场需求。

2002年2月,Sun发布了J2SE1.4版,成为最具竞争优势的企业级应用与服务的快速开发平台。

该产品已通过中文编码国家标准GB18030的检测,标志着Java开发将在中国提速。

2002年9月,JAVA1.4在日本JavaOne开发者大会上预演,并于2003年第一季度正式交付客户使用。

而J2ME平台已被全球20多家顶尖的手机生产商在100多种不同类型的Java手机中采用。

2004年10月,Sun公司正式发布JDK5.0版。

作为通过JCP研发的最大规模的项目之一,有大约160位专家成员参与了JDK5.0版本的研发。

JDK5.0提供了100多个新特性,从易用性和各个破记录的性能来看,JDK5.0的推出被认为是Java平台和编程语言近10年来最重大的升级。

现今Java联盟成员公司超过了400个,其中包括Oracle、SAP、Sony、Motorola、Nokia、HP和Philips等。

Java联盟的Java开发者超过300万。

JAVA下载量超过100万,许可证接收方达35个。

J2ME手机超过1500万部,应用达5000多个。

1.3.2Java的特点

Java语言是一种优秀的编程语言。

它最大的优点就是与平台无关,在Windows2000、WindowsXP、Solaris、Linux、MacOS及其他平台上,都可以使用相同的代码。

“一次编写,到处运行”的特点,使得系统的移植、平台的迁移变得十分容易。

Java语言的设计者借鉴了C++的设计,Java语言是完全面向对象的语言,而C++至多只能算准“面向对象”的语言。

Java语言的语法结构与C++语言的语法结构十分相似,这使得C++程序员学习Java语言相当容易。

当然,如果仅仅是对C++改头换面,那么就不会有今天Java热闹的场面了,但这种借鉴是取其精华、去其糟粕的“拿来主义”的借鉴。

Java语言提供的许多有用的新特性,使得Java语言比C++语言更易使用且不容易出错。

简单地说,Java具有以下的特性:

简洁性、面向对象、分布式运算、健壮性、安全性,跨平台、可移植。

1.3.3JAVA技术

为了适应多层分布式体系结构的发展,人们相继开发了很多应用服务器产品。

但不幸的是,大多数应用服务器还没有一个明确统一的标准,各个应用服务器都是按照自己的模式来提供服务。

这就导致了开发人员不能够将为一种应用服务器开发的应用程序组件安全可靠地移植到另外一种应用服务器中。

基于上述原因,业界迫切需要一个服务器端组件体系机构的统一标准。

这个统一标准需要明确定义出应用程序组件所必须遵循的统一的接口,让组件不再只能面向一种特定的应用服务器,而是能够在遵循相同标准的不同的应用服务器间安全可靠地移植。

组件供应商因此不用再顾虑他们提供的组件与服务器的兼容性问题以及诸如运行时所需要的安全、事务等服务和支持,从而可以专注于开发具体业务逻辑问题的解决方案。

正是基于这样的需求,JAVA应运而生。

JAVA是一种利用Java2平台来简化诸多与多级企业解决方案的开发、部署和管理相关的复杂问题的体系结构。

JAVA提供了多层分布式的应用系统模型、重用组件的能力、统一的安全模型和灵活的事务控制。

基于组件的JAVA企业应用系统具有平台独立性,所以不受任何软件产品和任何软件厂商应用程序接口(ApplicationProgramInterface,API)的约束。

JAVA具有如下一系列明显的优点:

1.JAVA是一个分布式应用系统的平台,几乎包括了企业级应用系统开发所需要的各种技术;

2.Java使得企业级应用真正实现“一次开发,到处运行”;

3.由于JAVA是一个规范,任何遵循该规范开发的应用程序组件都能够在实现了该规范的应用服务器上方便的移植并得到重用;

4.JAVA具有开放性和统一性,用户不必再受具体软硬件体系结构的约束;

5.JAVA提供了基于组件的开发技术,使得企业级应用程序的开发更加容易。

基于Java和Web的企业级分布式应用开发的标准,目前大多数主流应用服务器都已经支持JAVA。

JAVA包含多项核心技术。

1.企业JavaBeans(EnterpriseJavaBeans,EJB)

EJB是JAVA中最重要、最核心的部分,它是一种服务器端的组件模型。

一个EJB是一个运行在应用服务器端的非可视化的软件组件。

EJB提供了一个框架来开发和实施分布式业务逻辑,简化了中间层的开发,它通过提供对中间层服务的支持,如数据库连接、事务、安全等,显著地简化了具有可伸缩性和高度复杂性的企业级应用的开发。

EJB规范定义了四种基本的Bean类型。

(1)无状态会话Bean(Statelesssessionbean):

它提供某种单一的服务,不保存与特定客户的对话状态,在服务器发生故障时无法继续存在,其生命周期相对较短。

(2)有状态会话Bean(Statefulsessionbean):

它提供了一种保持会话状态的服务,每个实例都与特定的客户机相关联,且只用于一个单一的线程,在与客户机的方法调用之间维持对话状态。

有状态会话Bean在服务器发生故障时无法继续生存,生命周期相对较短。

(3)实体Bean(Entitybean):

它代表业务上的实体,包含与数据相关的逻辑。

实体Bean一般与数据库形成一种对象/关系映射,一个实体Bean可以代表一个数据库中存储的对象。

他们能够通过一个主关键字来识别并可以被不同的客户端所共享。

EJB容器负责管理这些对象的持久性。

实体Bean在服务器发生故障后能继续存在。

(4)消息驱动Bean(Message-Driverbean):

它是EJB2.0新引入的一种Bean类型,用来监听消息的对象。

消息驱动Bean在接收到Java消息服务(JavaMessageService,JMS)的消息后执行,它们是事务可知的和无状态的,一般用来执行一些异步的方法调用。

2.Servlet

Servlet是一种独立于平台和协议的服务器端Java应用程序,用来拓展基于请求响应模式的服务器端的能力。

Servlet位于Web服务器端,由Web服务器动态加载和卸载。

Servlet具有多线程、持久性、灵活性及易于访问其它网络资源等特点,为创建基于Web的应用程序提供了基于组件的、平台独立性的方法。

3.Java服务器端页面(JavaServerPages,JSP)

JSP是Sun公司提出的一种基于Java的服务器端动态页面技术,是Servlet技术的扩展。

与ASP相比,JSP更具有平台独立性。

JSP页面由HTML代码和嵌入其中的Java代码以及JSP标记所组成。

服务器在页面被客户端请求以后对这些Java代码和标记进行处理,然后将生成的HTML页面返回给客户端的浏览器。

4.Java数据库连接(JavaDatabaseConnectivity,JDBC)

JDBCAPI是一个标准的数据库访问接口,以一种统一的方式来对各种各样的关系数据库进行存取。

与ODBC一样,JDBC为开发人员隐藏了不同数据库的不同特性。

另外,由于JDBC建立在Java的基础上,因此还提供了数据库存取的平台独立性。

5.Java事务API(JavaTransactionAPI,JTA)和Java事务服务(JavaTransactionService,JTS)

事务处理是企业计算中最主要的内容之一。

JTA和JTS为JAVA平台提供了分布式事务服务。

一个分布式的事务涉及一个事务管理器和一个或者多个资源管理器。

一个资源管理器是任何类型的持久性的数据存储。

事务管理器负责协调所有事务参与者之间的通信。

JTA事务比JDBC事务功能更强,JDBC事务局限于一个数据库连接,而JTA事务可以有多个参与者。

6.Java名字和目录接口(JavaNamingandDirectoryInterface,JNDI)

JNDIAPI被用于执行名字和目录服务。

由于JAVA应用程序组件一般分布在不同的机器上,所以需要一种机制以便于组件客户使用者查找和引用组件及资源。

在JAVA体系中,使用JNDI定位各种对象,这些对象包括EJB、JDBC数据源及消息连接等。

JNDI为企业应用中的多种命名和目录服务提供统一接口,使应用程序组件可以统一访问这些命名和目录服务。

7.JMS

JMS被用来支持开发面向消息的分布式计算系统,它提供创建、发送、接收、

读取消息的服务。

JMS的目的是提供给消息系统中的客户一个固定的接口,而且与底层的消息提供者无关。

它提供了通用的消息模型以支持不同的异步和同步通讯机制,按处理机制的不同,可分为发布/订阅(PUB/SUB)模型和点到点(P2P)排队模型。

第二章系统总体设计

2.1Web应用服务器DMWAS功能需求

Web应用服务器是多层体系结构中的关键部件,Web应用服务器有其共有的功能特性,包括客户端连接管理、状态和会话管理、业务逻辑处理、数据库连接、安全管理和事务管理等。

具体到JAVA中,一个符合JAVA规范的Web应用服务器需要提供的服务除了要满足一般需求外,还有其特殊之处,主要表现在如下几个方面。

1.Web容器服务

Web容器负责加载和执行Web应用程序,接受Web请求,返回动态的Web页面。

Web容器中的组件可使用EJB容器中的组件完成复杂的业务逻辑。

2.EJB容器服务

负责管理EJB组件的生存期和EJB组件的状态,调度EJB实例池以及池中的EJB组件,管理执行EJB规范的Java类和EJB组件服务的接口插入类。

3.命名服务

服务器要提供JNDI的实现以便实现相关资源的绑定和查找。

4.事务服务

负责处理分布式事务,提供对EJB组件的事务管理。

在JAVA中,一个事务资源可能是JDBC连接、JMS会话或者是JCA资源适配器的连接。

事务之间的联系是隐含的分布式请求传递。

该服务要实现JTA规范,允许从客户端的应用软件中明确的开始和结束事务。

5.数据库服务

负责处理数据源对象。

数据源是为了处理数据库连接的标准JDBC管理对象。

数据库服务在服务器中创建、加载数据源,同时负责管理连接池。

6.安全服务

执行JAVA规范指定的访问服务器组件和应用程序的授权机制。

2.2系统架构分析

软件架构的设计是决定软件系统的性能和可扩展性等质量指标的重要因素。

在基于JAVA的Web应用服务器的实现产品中,开源的Tomcat应

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1