J2EE与中间件技术

Web应用工作方式

内容在发送到浏览器之前由Web站点动态生成

基于浏览器/服务器模式(B/S)

浏览器

Microsoft Internet Explorer, Netscape Navigator, Safari

服务器

  • Web Server

如MS IIS/IBM Http Server/Apache

  • Web Application Server

如 IBM WebSphere Application Server

访问Internet的基本机制

客户通过指定URL地址,向位于特定位置的计算机提交文件访问请求

存储请求文件的计算机称为服务器

服务器为向其发起文件服务请求的任何客户提供服务

服务器必须一直运行

Web应用结构组成

Web服务器

是安装在Web服务器计算机上的一个软件包

负责接收用户请求并响应之

HTTP

基于请求/应答模式

是一个支持web浏览器与Web应用之间通信的应用层协议

无状态、面向对象

HTTP会话处理

当用户在浏览器地址栏输入URL时

客户浏览器建立到服务器的TCP/IP连接

浏览器向服务器发送服务请求

服务器发送应答信息给客户

服务器关闭连接

注意

请求页面发送给客户后,服务器通常主动关闭连接,而不管该客户是否会继续向该服务器发送服务请求

工业界对Web应用的关注

Web技术变得越来越重要,Web应用成为未来的标准应用模式

在客户端,IE占有主流地位

在服务器端,J2EE和.NET成为两个主流且相互竞争的Web服务器架构技术

企业级应用开发面临的问题

面向Web环境

分布式、可移植、可装配

旧系统集成支持

满足企业计算要求

  • 一致性
  • 事务性
  • 安全性

要有好的特性

  • 可伸缩
  • 可扩展
  • 易维护

“企业”是指一个为了实现某个共同目的而在一起工作的人或实体的组织

这些组织的形式和大小并不限定,有大有小、是盈利性的或非营利性的、可能是政府机关也可能是非政府机构

一般使用术语“企业”时,极有可能指的就是大型营利性组织,如Intel、GE、Wal-Mart、摩根银行或eBay等等

企业通常都有一些共同的需求,例如信息共享与处理、资产管理与跟踪、资源规划、客户机用户管理、商业机密保护等等

术语“企业软件”就是能够支持企业共同需求的这类软件的总称

企业软件与中间件

在软件开发过程中,出现面向对象开发软件的方法后,可以实现代码重用,但只能部分实现,原因之一是对象都细粒度化,造成对象间紧密耦合状态,从而使得大范围的重用变得很困难

解决途径——设计软件组件

与对象不同,软件组件是在更高的抽象级别中设计的,可以提供一个完整的功能或服务

组件间的耦合更为松散。利用组件的接口,可以将组件迅速组合在一起构建更大的应用程序,这样所用的成本也比较合算

J2EE的优势

提供一套完整的解决所有这些问题的框架方案

提供分布式、可移植组件的框架

为组件与应用服务器提供标准API

简化服务器端中间层组件的设计

对开发者及用户而言

更短的开发时间

可重用组件

JSP(Java Server Pages)

EJB(Enterprise JavaBeans)

更简化的连接

XML,JDBC,RMI-IIOP

客户/服务器结构

“胖”客户端

用户界面和程序逻辑绑在一起,代码难以重用

服务器的数据库必须同每一个活动的客户保持连接,消耗大量的运算资源,随着客户数目的增加性能不断下降,且存在死锁及崩溃的可能

数据模型“紧耦合”在每一客户端,数据库结构改变将导致全体客户端改变,不利于更新和维护

客户端应用程序越来越大,对使用者的要求越来越高

浏览器/服务器模式

WWW浏览方式带来的变化

“Browser-based” 的客户端与 “Internetworking”(网际互连)

计算方式向服务器端的集中转化

客户端

业务数据模型与UI分开,更“瘦”

业务逻辑在中间层

通过连接池,多线程可以处理多客户端

早期应用编程困难且性能比较差

CGI(C/C++, VB, Perl等等),ISAPI ,NSAPI

N层计算模式

从逻辑角度看,系统分成客户端、Web服务器、应用服务器、数据库服务器四层

从物理角度看,应用服务器可以视用户并发数从1到N台进行扩充,以保证客户端用户的响应要求

每一层可以被单独改变,而无需其它层的改变

降低部署与维护的开销,提高灵活性、可伸缩性

引入“瘦客户端”,计算被集中至服务器端,使性能提高成为可能

J2EE的三层结构部件视图

N层计算模型特征分析

优点

应用程序各部分松耦合,各部分的更新相互独立

业务逻辑集中放在服务器上由所有用户共享,使得系统的维护和更新变得简单,也更安全

弱化客户端,计算被集中至服务器端,使性能提高成为可能

数据库不再和每一个活动的用户保持一个连接,而是由应用程序组件负责与数据库打交道,降低数据库服务器的负担,提高了性能

缺点

对企业级应用开发人员要求太高:需熟悉分布式协议(IIOP、IIOPS、HTTP、HTTPS、ISAPI、NSAPI),进行一致性事务处理,负载平衡,考虑安全性……

J2EE的四层模型描述

J2EE规范

一个多层次的分布式应用模型和一系列开发技术规范

简化和加速企业级应用开发

J2EE Blue Prints

是一组集成的企业API库软件和开发工具

参考实现

快速原型化J2EE应用

提供对J2EE平台的操作定义

兼容性测试组件

测试J2EE平台产品是否与J2EE规范兼容

WebSphere Application Server 5.0与J2EE 1.3兼容

WebSphere Application Server 6.0与J2EE 1.4兼容

客户层(Client Tier)

通常是一台桌面计算机,客户可以使用GUI与应用程序进行交互

中间层(Middle Tier)

由表示层和业务层组成

通常由一个或者多个Web服务器和应用服务器组成

应用服务器处理客户的请求,执行复杂的表示形式和业务逻辑,然后将结果返回给客户层

企业信息系统层(Enterprise Information System,EIS)

也称为数据层

是驻留业务数据的地方,在处理业务逻辑时,由中间层访问EIS层

J2EE应用程序构成

J2EE技术提供了一个基于组件的方法来设计、开发、装配和部署企业级应用程序

一个J2EE应用程序可能包含一个或多个EJB组件、Web组件,或应用程序客户端组件

组件(component)是一个应用程序级的软件单元

J2EE组件

客户端组件

客户端应用程序和Applet

服务器端Web组件

Java Servlet和JSP

服务器端的商业组件

Enterprise JavaBeans

Web客户端 vs. Applet

Web客户端
瘦客户
包括Web组件生成的动态页面及服务器返回的页面
Applet
用Java编写的小的客户端程序,嵌入在Web浏览器
两者比较
易用性
Web表现方式丰富、形式多样; Applet交互性强
性能
Web页面更新需要经过servlet从服务器获取;Applet直接访问数据库,可保留静态数据,提高了效率
可维护性和可扩展性
Web易于定制界面;Swing技术开发Applet较为复杂
安全性
Applet需要配置访问策略来控制对本地资源的访问;而Web可通过HTTP来控制

J2EE容器

运行在服务器上的软件实体,为J2EE组件提供执行环境

通过容器,J2EE体系结构能在开发和部署间提供无关性,并在不同类型中间层服务器间提供可移植性

依赖于容器的类型,还可访问一些或全部J2EE API

每个Web组件、EJB或者应用程序客户端组件都必须在执行前被装配到一个J2EE应用程序中,并部署到相应容器

设置并定制由J2EE服务器提供的底层支持

J2EE安全模型:配置Web组件或Enterprise Bean,支持授权访问

J2EE事务管理:让用户指定组成一个事务中所有方法之间的关系,并将这些方法看成一个整体

JNDI寻址服务:为企业内的多重名字和目录服务提供一个统一的接口,以便访问名字和目录服务

J2EE远程连接:管理客户端与EJB间的交互

生存周期管理:管理EJB的创建/删除

数据库连接池:提高数据库访问效率

时间: 2024-10-23 18:35:16

J2EE与中间件技术的相关文章

J2EE动态网页技术—JSP

学习JSP,我们需要知道的是什么是JSP?JSP有什么特点?JSP与svelte有什么关系? 第一个概念:JSP是服务器端运行的一种脚本语言,这类似的语言还有CGI.ASP.PHP等.          CGI:采用单进程模式,每次请求服务器端的一个服务,都需要启动一个新的线程.所以当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,加重了服务器的负担,使服务器的执行效率变得越来越低下. ASP:是微软所开发一种后台脚本语言,特点简单易用,其局限性在于只能在微软的服务器平台上良好运行,

在线直播:支撑海量用户的阿里中间件技术

阿里巴巴集团中间件技术部,是国内为数不多的极具技术挑战性的团队之一,依托于全球规模最大的阿里巴巴电子商务平台所带来的巨大流量和海量数据,对于系统稳定性的苛刻要求,对于产品性能的极致追求,使得团队的工程师有机会去面对一个又一个技术难题,创造一个又一个技术奇迹. 在刚刚过去的"2015双十一网购狂欢节"中,912亿元销售奇迹背后的每一笔交易订单都和中间件技术部的技术小二们息息相关.未来,随着阿里巴巴生态系统的业务不断发展壮大,中间件技术部将会支撑更多的业务系统,碰到更多的技术难题. 直播地

j2ee高级开发技术课程第六周

一.jsf(java server faces)的运行原理(工作方式) 1.jsf应用是事件驱动的,当一个事件发生时(比如用户单击一个按钮),事件通知通过HTTP发往服务器,服务器端使用叫做FacesServlet的特殊servlet处理该通知,web容器里每一个jsf应用都有它自己的FacesServlet; 在后台,每一个jsf请求都触发了3件事情: 1)FacesServlet创建FacesContext(该对象中包含Web容器传给FacesServlet的service方法的Servle

中间件学习——J2EE中间件四步曲

前面的几篇文章我们已经介绍了中间件的相关知识了,这篇我们文章我们了解下J2EE中间件.关于J2EE上一篇我们我们进行过初步的介绍,了解到J2EE它是一个规范与标准,这篇文章要介绍的内容有J2EE中间件技术.J2EE应用服务器中间件的体系结构和J2EE技术与.NET技术的比较. J2EE中间件技术 J2EE体系 J2EE这个规范是应用服务器采用的主要技术体系,与其它的中间件系统相比较,它具有非常显著的特征,而特征来自它独特的体系结构. 比如企业现在需要通过他们为他们的客户.合作伙伴.雇员和供应商提

J2EE技术

J2EE是一系列技术标准所组成的平台,包括: Applet - Java Applet EJB - 企业级JavaBean(Enterprise Java Beans) J2EE技术之所以赢得媒体广泛重视的原因之一就是EJB.它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发.EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用.容器负责提供公用的服务,例如目录服务.事务管理.安全性.资源缓冲池以及容错性.但这里值得注意的是,EJB并

中间件学习——技术平台三步曲

在前面两篇文章中,我们了解了中间件的基本概念和中间件的主要技术分类,在这篇文章中我们了解下基于中间件的主流技术平台. 技术平台 现有的基于中间件的主流技术平台一般典型的应用是为三层/多层结构的分布式软件系统提供各种开发支撑,因为三层结构的分布式软件的核心为中间层,因此支撑主要集中在对中间层开发的支撑上,目前应该最广泛的技术平台有三类: 基于 OMG(ObjectManagement Group,对象管理组织)CORBA规范 基于 Sun JEE(JavaEnterprise Edition,Ja

消息队列中间件的技术选型分析

[http://cloudate.net/?p=1165]2015/04/25  |  消息队列 |  罗伯特 消息队列中间件是互联网行业不可或缺的一项基本技术,在高并发消峰,非关键业务异步化,通知系统,监控数据推送等场景下是必不可少的,下文为转载文章,具体出处不详. 个人很喜欢ZeroMQ,非企业级的消息中间件,具有及低延迟-微秒级,使用简单灵活可嵌入等特性,性能报告请参考官网:http://zeromq.org/results:more-precise-0mq-tests 消息中间件是一种由

亚马逊的技术架构是怎么样的

还有这个:http://www.nedworks.org/~mark/presentations/san/Wikimedia%20architecture.pdf Amazon的体系结构Amazon从一个很小的网上书店发展成为现今世界上最大的网上书店中.他们开辟了让顾客来评估,审查和推荐商品的新方式.平台 inux orace C++ Per Mason Java Jboss Servets 状态 超过5500万活动顾客帐号 世界范围内超过100万活动零售合作商 构建一个页面所需访问的服务介于1

中间件_百科介绍

中间件 编辑 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源.中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯.是连接两个独立应用程序或独立系统的软件.相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息.执行中间件的一个关键途径是信息传递.通过中间件,应用程序可以工作于多平台或 OS 环境. 目录 1基本概念 2相关概念 3基本特点 ? 特长? 局限 4发展沿革 ? CICS? 服务器? 发展现状 5分类 ? 远程过