J2EE核心技术-转自计算机世界网
来源:互联网 发布:python csv模块 array 编辑:程序博客网 时间:2024/04/29 02:08
J2EE体系包括很多内容,其中每一个组成部分都堪称庞杂。本文将去
繁就简,向读者介绍几个对于正确理解J2EE至关重要的核心概念,包
括:J2EE平台的多层体系结构、应用组件、企业服务和J2EE运行时环
境。
J2EE核心概念
J2EE是一个企业级应用系统开发平台或中间件体系结构,它通过提供
一组应用组件和运行时环境来构造可伸缩的企业应用。
典型地,J2EE属于分布式应用环境,一个企业应用系统,可以作为一
套分布式组件部署在多台服务器上。
要理解J2EE,我们首先得掌握以下四个核心概念:
·J2EE多层应用体系结构:J2EE平台的基本架构
·J2EE应用组件:构成J2EE应用的软件元素
·J2EE企业服务:应用组件需要用到的一些公共服务设施
·J2EE容器:J2EE运行时环境
J2EE多层应用体系结构
J2EE中间件定义了四个独立的层,分别是:客户层、表示逻辑层、业
务逻辑层和企业信息系统层,如图1所示:
图1 J2EE多层应用体系结构
其中表示逻辑层和业务逻辑层同位于应用服务器区域,所谓应用服务器
区域也就是J2EE平台的具体实施场所。
J2EE四层中的每一层都可被物理地部署在不同的场地中,而且,即使
同在应用服务器区域内,表示逻辑层和业务逻辑层也可以分开来,被安
装在不同的服务器上。
例如,我们可以将iPlanet(Sun公司的J2EE应用服务器产品)作为
HTTP Web服务器和表示逻辑容器,而在Weblogic(BEA公司的J2EE
应用服务器产品)上部署业务逻辑组件。
说到层和容器两者的关系和区别,通常是将表示逻辑层和Servlet以及
JSP容器相关联,而将业务逻辑层和企业Javabean容器相关联。或者,
为了更易于理解,我们可以把层看作是概念实体——其功用是为了方便
设计,而把容器看作物理意义上的软件实例——也就是说,容器是为应
用组件提供的运行时环境。
J2EE多层体系结构的灵感来自模型/视图/控制器(Model-View-
Controller,MVC)架构。MVC模式是软件设计的典型结构。在这种设
计结构下,一个复杂应用被分解为模型、视图和控制器三部分,分别对
应于业务逻辑和数据、用户界面、用户请求处理和数据同步。三个部分
各自负责相应的功能。
MVC设计理念认为,在一个应用系统中,用户界面发生变动的可能性
最大,控制部分变动次之,而业务逻辑是最稳定的。因此为业务逻辑编
写的代码不应和反映用户界面的代码混杂在一起,而是彼此应该尽可能
地独立,由控制器来担当两者交互的中介。
例如,设想一个基于Internet的银行转帐过程,根据MVC,该过程可以
划分为以下四个独立子任务,如图2所示。
·任务1:在浏览器中启动转帐服务(视图)
·任务2:调用执行帐目转帐的机制(控制器)
·任务3:真正执行帐目转帐(业务过程或模型)
·任务4:将转帐结果状态(成功或失败)显示至浏览器(视图)
图2 网上银行转帐的MVC流程
MVC认为,核心业务过程(如上述任务3)应该完全不依赖于特定的客
户端程序,除了浏览器,该任务也应可被其他应用或银行办公系统调用
。业务逻辑和视图元素之间的数据交互分配给控制器完成。
基于MVC设计方法,J2EE体系结构很自然地将业务逻辑层和表示逻辑
层分开,控制器可置于其中任意一层,也可分置两层中。通过这种方式
,J2EE的业务逻辑组件获得相当高的可重用性。
J2EE应用组件
J2EE标准定义了一整套相当完备的应用组件框架。应用组件——企业
系统的砖瓦——就是建筑在这个框架之上的。利用这个框架,几乎可以
构建从简单的网络门户到复杂的分布式企业级事务应用等任何应用系统
。
J2EE组件框架可类比于最基本的建筑材料,它以库、基础类和接口等
形式存在;在它之上构建的应用组件则具体实现特定的企业业务逻辑;
最后由表示/控制器逻辑进行组件整合,最终组成一个完整的应用系统
。
以servlet为例,servlet是J2EE提供的标准应用组件。但一个特定企业
应用所需的servlet,需要在基础servlet接口上开发。在这过程中,开发
人员可以利用servlet软件包附带的servlet库和服务。很多系统级服务,
诸如从HTTP输入流中读取数据或将数据写至HTTP输出流中,都可以
从这些库中获得,用起来非常方便。
因此,我们将J2EE提供的组件基础结构称之为应用组件框架,而将在
它之上所编写的程序代码称之为应用组件。但为简单起见,这两个术语
也常常被交换使用。
J2EE的客户层、表示层和业务逻辑层,都各自有其适用的应用组件,
见图3:
·客户层:applet,Javabean
·表示逻辑层:servlet,JSP,Javabean
·业务逻辑层:企业Javabean
J2EE应用组件
这里需要特别指出的一点是,与上述分类无关,标准Java类和Jar文件
是可以安装在三层之中的任意一层的。即使不用应用组件,我们也可以
使用标准Java类来编写程序代码。
企业信息系统(EIS)层没有可适用的组件,这是因为EIS层处理的是
J2EE领域内的所有企业后端资源,诸如数据库、BackOffice或旧有遗
留系统、ERP实施等。很明显,我们所需要的是要使得应用组件能访问
这些资源,而这种访问的实现是由J2EE企业服务来提供的,因此EIS层
本身不需要应用组件。
至此,我们可以看到,企业应用系统是通过开发人员利用组件,编写程
序,再部署到各自容器中去的。
在一个特定的企业应用场合,合理运用组件是一项技巧性要求相当高的
工作。由于可供使用的组件种类繁多,如何选择适当的组件组合来构造
高效优质的应用系统需要开发人员不仅有一定的知识积累,还要有丰富
的实战经验。
J2EE的目标就是要通过对组件的合理利用来进行应用系统的设计和开
发。组件接口保证了各个组件符合标准规范,能在不同的环境中保持一
致性,从而为J2EE服务器产品的互操作奠定基础。
应用组件在各个层中连接松散,以此在互操作的同时能保持自身的灵活
性和可重用性。接下去要讲到的所有企业服务,诸如电子邮件、数据库
访问、消息服务和事务处理等,都是通过配置应用组件完成的。
最后顺带提一下,与微软的.Net架构不同,所有J2EE应用组件只能用
Java语言编程!
J2EE企业服务
一般认为,现代企业计算解决方案除了企业的业务逻辑外,还需要提供
对一些基本服务的支持,J2EE环境的另一大特色就在于它提供了完善
的企业级服务,以满足各类应用的需要。这些服务主要有:
连通性服务
·JDBC(Java Database Connectivity):提供数据库连接和访问服务
·JCA(Java Connector Architecture):提供与旧有遗留系统之间的连
接
通信服务
·Java消息服务JMS(Java Messaging Service):提供层与组件之间的
消息传递
·电子邮件服务(JAF/Javamail):提供电子邮件服务
·Java IDL/RMI-IIOP:CORBA兼容接口,提供J2EE与CORBA的通信服
务
·JAX(Java XML APIs):提供XML语法分析/绑定服务
认证服务
·JNDI(Java Naming and Directory Interface):提供分布式命名和目
录服务
其他服务
·JTS/JTA(Java Transaction Service):提供事务处理/监控服务
·JAAS(Java Authentication and Authorization service):提供访问控
制等安全服务
在应用服务器市场,我们常可见到某些服务的驱动程序与服务器产品本
身捆绑在一起的现象。例如,WebLogic就自带JDBC驱动程序提供
J2EE应用和Informix数据库的连接。目前这已经成为企业评估和挑选不
同服务器产品的一个重要选择标准。
J2EE运行时环境(容器)
J2EE应用组件各自运行在相应的运行时环境中,这些运行时环境在
J2EE术语里被称为“容器”。不同服务器厂商推出的容器产品不尽相同,
但一定都符合通用接口标准,且均为J2EE中间件组件提供了许多必不
可少的底层公共设施。
J2EE标准共定义了以下四种容器,应用组件可通过配置工具部署到对
应的容器中:
·Applet容器:运行applet
·客户端应用程序容器:运行标准客户端Java应用程序(包括基于Swing
的GUI客户端应用程序)
·Web容器:运行表示逻辑层的servlet和JSP
·EJB容器:运行业务逻辑层的企业Javabean
这里值得指出的一点是,J2EE体系结构的主导思想就是开发人员只需
要专注于其业务逻辑的设计及编程,而不必为考虑系统级问题分心,这
一设计理念主要就是通过容器的概念体现出来的。
典型地,容器提供的基础设施包括:内存管理、同步/分线程、垃圾收
集、可用性、可伸缩性、负载平衡和容错。
容器需要实现的基本接口和基础设施在J2EE规范中都有详细定义,但
具体实施方案则因容器供应商的不同而不可能全然相同。因此J2EE在
保持代码兼容性的同时,也为支持服务器的特性提供了一定的余地。事
实上,正是由于容器的概念,才使得众服务器供应商能在中间件业内一
展所长,以各自的特色服务分争市场份额。
结束语
J2EE平台基于MVC设计模式,由多层应用体系结构组成。其中每一层
都有各自适用的应用组件模型,在此基础上可以构建各种企业应用。
J2EE还为应用组件提供一整套企业服务,如数据库访问、电子邮件、
认证和分布式目录访问等,通过自动化的方式完成应用程序开发中的许
多耗时且费力的工作,方便系统整合。
- J2EE核心技术-转自计算机世界网
- 一句话噎死你 — 转载自计算机世界网
- 《狗日的腾讯》原文转自《计算机世界》
- J2EE 核心技术
- J2EE核心技术
- J2EE核心技术
- j2ee核心技术
- J2EE核心技术
- J2EE的13种核心技术 [转]
- J2EE的13种核心技术[转]
- J2EE的13种核心技术(一) 转
- 详解J2EE的13种核心技术(转)
- (转)J2EE的13种核心技术
- 计算机世界
- 改善ASP性能和外观的技巧集锦(转自计算机世界)(-)
- J2ee核心技术:J2EE Frameworks介绍
- j2ee 13种核心技术
- J2EE 13种核心技术
- Eclipse集成 Lomboz和JBoss开发J2EE
- Firefox入门常见问题
- C语言库函数(九)
- 设计模式精解-第一章-面向对象范式(二)
- asp中checkbox全选全消功能的实现
- J2EE核心技术-转自计算机世界网
- 别人眼中的自己
- EJB的入门教材
- Linux六专家谈开源:人才数量不缺 缺的是质量
- 软件工程师的务实职业生涯规划
- 用连接池提高Servlet访问数据库的效率
- Java入门需掌握的30个基本概念
- JAVA实现调用本地命令
- (翻译)选择测试自动化框架