基于J2EE架构的web应用程序的性能优化(一)

原创 2002年04月19日 08:57:00
 

   前言:本文简要介绍了J2EE的概念和特点,并根据J2EE体系架构的技术特点,对设计和开发基于J2EE架构的应用程序时应考虑的性能优化的问题做了阐述、分析,并提出了一些解决问题的思路和方法。

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

一、 J2EE体系架构简介

J2EE是一种利用Java 2平台来简化诸多与多级企业解决方案的开发、部署和管理相关的复杂问题的体系结构。它使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。多层化应用为不同的每一种服务提供一个独立的层,J2EE 典型的四层结构如下:

·         运行在客户端机器上的客户层组件

·         运行在J2EE服务器上的Web层组件

·         运行在J2EE服务器上的业务逻辑层组件

·         运行在EIS服务器上的企业信息系统(Enterprise information system)层软件

J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,并提出了(JSPJava servletJDBCEJBRMI        JNDI…)等13种技术规范。

 

 

二、性能优化

性能是衡量一个应用系统的相当重要的技术指标。对于设计、开发一个基于J2EE架构的web站点或基于web的应用系统,请求/响应的效率和质量就显得尤为重要。

我们经常会遇到这样一些情况,当我们从客户端向服务器发出请求后,长时间未得到响应;当某一时刻向服务器发送的访问数据库的请求过多时,服务器响应缓慢。产生这种情况的原因是多方面的,如果从系统程序设计的角度来分析,为了尽量减少系统运行效率低的问题,那么根据J2EE体系架构的技术特点,在开发基于J2EE架构的web应用程序时,应该在技术上对系统设计进行一定的控制,对应用程序的设计和开发进行一定优化。

对采用J2EE架构开发的系统的优化一般针对两方面:   结构优化,数据库优化

结构优化主要包括:
1.session优化。

HTTP是一种简单的、无状态的、面向连接的协议,它的处理过程是“连接/请求/响应/关闭”。因此,在基于web的处理过程中,为了维护客户状态,需要一种保持多个“连接/请求/响应/关闭” 事务间用户信息的方法,那么session做为一种容易实现的方法而得以应用。session的生命周期相当简单:

1.       创建session对象

2.       将一些数据存储在session

3.       用某种方式请求和使用数据

4.       最后数据被清除

session为存储状态信息提供了一种比较好的机制,但是,由于每个session都要占用一定的系统服务资源,那么如果web应用程序的访问量很大,服务器资源很快就会消耗尽。因此,优化session的关键是首先尽量减少使用session,或者尽量不在session中长时间的保存对象。那么就有必要对session进行适当地管理。有以下两种可行的方法:

一种方法就是当程序使用完session中的存储对象后,立即主动的从session中将其删除并释放,这样这些对象就不会长时间的浪费系统资源。通常情况下,你可以选择简单地让缺省的超时(timeout)来处理暂时存储的数据,但是这样做一方面占用了系统服务资源,另一方面也影响到系统的安全。因为如果一个用户用他的账户结束了访问,离开了浏览器,但由于某种原因没有关闭浏览器,那么首先他已经不再需要系统服务,我们不希望他继续占用系统资源;另外我们也不希望其他人“借用”他的信息进入系统。
    另一种方法是将这些存储在session中的对象,改为通过request来传递,对用户每次执行系统服务后产生一个新的标识,并将此标识及其指定的数据再定向并通过 request传送到下一个应用服务中,依次传递。request在请求结束后是自动被系统释放,所以不会长时间浪费系统资源。对于那种不需要维持太久状态并且使用频度高的过程可以考虑采用这种方式。

2.利用缓存。

如果你住在戈壁滩,附近没有水源,很远的地方才有一条河,如果你每次口渴了,当然是需要尽快能喝到水,但是你不可能为了每喝一杯水就每次都赶到河边,那么你就需要一个水缸,可以先去挑几桶水,把水灌满水缸,需要的时候可以直接从水缸中取水,这样很快,很方便。缓存就可以形象的比喻成“一个水缸”,它的特点就是把数据或资源保存在访问开销小的地方,一般保存在内存中,它在整个应用生命期都可以被访问,对资源来说,是可以反复使用的,因此缓存的访问开销比直接访问资源开销要小。因此,在满足用户意愿的前提下,尽可能地使用缓存共享资源, 以提高整个系统的性能。

另外缓存也需要管理,因此,对缓存都要实现专门的管理对象。

下一章讲重点介绍有关数据库的优化(待续)
       ________________________________________________________________
       以上只是本人在开发过程中的一些体会,希望与各位共同探讨!请多指教!

                                                                                              colababy     2002年4月    深圳

电子邮件:colababy@elong.com                                 OICQ:8646328

—————————————————————————————————————

 

基于j2ee的web应用

本文已经在《微型机与应用》发表,并被万方等多个数据库录用。  基于j2ee技术的Web应用倪礼豪(*****************************,浙江**)摘要  J2EE和DotNet框...
  • nilihao
  • nilihao
  • 2007年08月29日 16:10
  • 2581

原创:基于j2ee的架构搭建和技术选型

进来的友友们,这是我申请cn博客后写的第一篇文章。这些知识理论并非晚辈我所亲身实践,是我看了些架构相关的书籍的小总结,生怕自己忘记了,所以到博客以文字表达出来,欢迎前来抛砖扔蛋。篇幅不是很长,请耐心地...
  • housheng3319
  • housheng3319
  • 2013年06月18日 11:11
  • 640

J2EE 企业级应用架构简述

企业应用的特点 多环境多系统的交互海量数据、高并发、高TPS安全等级高自动化集群管理 架构的原则 CAP原则(一致性、可用性、分区容错性)复杂的事情简单化 ...
  • zwx19921215
  • zwx19921215
  • 2017年03月12日 20:12
  • 758

j2ee项目中处理高并发量访问以及性能优化

1 从最基础的地方做起,优化我们写的代码,减少必要的资源浪费。         a、避免频繁的使用new对象,对于整个应用只需要存在一个实例的类,我们可以使用单例模式。对于String连接操作,...
  • zhanganbo
  • zhanganbo
  • 2016年07月26日 22:06
  • 658

web应用程序 两层c/s、三层c/s、b/s架构对比及Servlet由来

一、c/s:client/server 两层的c/s 特点:使用数据库服务器充当服务器(在数据库编写业务处理逻辑,比如Oracle数据库,可以使用pl/sql来写业务处理逻辑),客户端一般使用vb,...
  • daijin888888
  • daijin888888
  • 2016年03月29日 15:43
  • 1378

J2EE的体系架构——J2EE

J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),核心是一组技术规范与指南,提供基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分...
  • dandanzmc
  • dandanzmc
  • 2014年06月01日 07:40
  • 36426

J2EE架构简介

J2EE 体系结构简介J2EE (Java 2 Platform, Enterprise Edition)即Java2平台企业版,它提供了基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多...
  • cuiyaoqiang
  • cuiyaoqiang
  • 2016年05月04日 13:56
  • 1544

J2EE架构的优点和缺点有哪些

首先是UI层很难由美工和系统设计师来总体设计,由于即使是Delphi之类的可视化开发工具,界面问题还是要程序员自己调整。解决这个问题可以走两条路:用自己的皮肤系统和美工本来就会IDE。      其次...
  • cenguocheng
  • cenguocheng
  • 2013年06月17日 23:47
  • 3355

Java Web项目的一般目录结构解析

以上为项目名为TestProject的目录结构截图,下面主要解析WebContent下各个目录的用途: css:存放项目所需要的css文件。 images:存放项目所需要的图片文件。 js:存放...
  • gchai
  • gchai
  • 2012年07月20日 19:26
  • 5520

J2EE的优点

1.简化结构J2EE平台支持简化的、基于组件开发模型,由于J2EE基于Java编程语言和J2SE平台,它提供了编写一次,随处运行的可移植性,遵循J2EE标准的所有服务器都支持该模型。EJB组件使编写应...
  • yangzhongwei1031
  • yangzhongwei1031
  • 2007年04月29日 11:21
  • 9826
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于J2EE架构的web应用程序的性能优化(一)
举报原因:
原因补充:

(最多只允许输入30个字)