J2EE TM 蓝图摘要 |
作者:佚名 发布时间:2005-04-02 来源:不详
|
J2EE TM Blueprints Digest
翻译:环球联动开发组(Global Empower Inc. ) |
如果您已经安装了J2EE
|
TM Platform (Enterprise Ed
|
ition )软件,并通读
|
了各种可用的指南来帮助您学习使用该软件,那么,您可能已经准备 |
开始为J2EE 平台编写第一个多层企业应用程序了。在这个时候,您可 |
能对应用设计应当在何处着手、以及如何判断哪些J2EE API 最能满足 |
您可以得到帮助。《为 Enterprise
|
企业版Java TM 2 平台设计企业
|
应用程序》(Designing
|
Applications for the 0-201-70277-0 描述了J2EE
|
Java TM 2 Platform, Enterpr 平
|
ise Edition ISBN
|
台,并提出了一个编程模型,可以帮 佳
|
助您在为J2EE 平台设计多层企业应用程序时作出最
|
决策。为了理论联系实际,第10 章 该
|
举了一个电子商务宠物商店应用程序的例子,描述了
|
编程模型是如何指导设 J2EE
|
计的。该书和该宠物商店应用程
|
序一起被称作J2EE Blueprints (
|
本文是J2EE 蓝图的一个摘要,向您
|
介绍该编程模型,并帮助您掌握它。您可以访问J2EE
|
下载页面,下载该书的 商店
|
PostScript 或者PDF 格式的版
|
本,或者下载书中作为例子的宠物
|
应用程序。该书印刷本将在2000 年7 月上市 。 |
˙J2EE 基本架构:概
|
述(J2EE Architecture —A Bi
|
rd's-Eye View )
|
˙可再用应用组件(Re
|
usable Application Component
|
s )
|
˙设计用户界面和引擎(Designing
|
the User Interface and Engine )
|
˙设计基于Web 的应用(Designing
|
Web-Based Applications )
|
˙Servlets 和JSP 页
|
面(Servlets and JSP Pages
|
)
|
˙模型、视图、控制器
|
设计范式(Model, View, Contr
|
oller Design Pattern )
|
˙J2EE 应用中的Enterprise Beans
|
(Enterprise Beans in J2EE Applications )
|
˙宠物商店应用程序(Pet Store Application ) |
J2EE 基本架构:概述基本架构:概述基本架构:概述基本架构:概 述 |
电子商务和信息技术的快速发展及对它的需求给应用程序开发人员 |
带来了新的压力。必须以比以前更少的金钱、更少的资源来更快地设 |
为了降低成本,并加快 法,
|
企业应用程序的设计和开发,J2
|
EE 平台提供了一个基于组件的方
|
来设计、开发、装配及 组
|
部署企业应用程序。J2EE 平台
|
提供了多层的分布式的应用模型、
|
件再用、一致化的安全模型以及灵活 出
|
的事务控制。您不仅可以比以前更快的速度向市场推
|
创造性的客户解决方案 在2
|
,而且,您的平台独立的、基于
|
组件的J2EE 解决方案不会被束缚
|
˙应用的客户组件(Application cl
|
ient components )
|
˙Enterprise JavaBea
|
ns TM 组件(Enterprise JavaB
|
eans TM components )
|
˙Servlets 及JavaSer Servlets and
|
ver Pages TM (JSP 页面)组
|
件(也被称作Web 组件)(
|
JavaServer PagesTM (JSP pages) c
|
omponents )
|
一个多层的分布式的应 个
|
用模型意味着应用逻辑被根据功
|
能而划分成组件,并且可以在同一
|
服务器或不同的服务器上安装组成J2 在
|
EE 应用的这些不同的组件。一个应用组件应被安装
|
什么地方,取决于该应用组件属于该
|
多层的J2EE 环境中的哪一层。这些层是客户层、Web
|
客户层(客户层(客户层(客户层(Client Tier ))) |
J2EE 应用可以是基于Web 的,也可以是不基于Web 的。在一个基于 |
Web 的J2EE 应用中,用户的浏览器在客户层中运行,并从一个Web |
服务器上下载WEB 层中
|
的静态HTML 页面或由JSP 或ser
|
vlets 生成的
|
在一个不基于Web 的J2
|
EE 应用程序中,一个独立客户
|
程序,或者不运行在一个HTML 页
|
面中,而是运行在其它一些基于网络 序,
|
的系统(比如手持设备或汽车电话)中的applet 程
|
在客户层中运行,并在不经过Web 层 客户
|
的情况下访问enterprise beans 。该不基于Web 的
|
层可能也包括一个Java
|
Beans 类来管理用户输入,并将
|
该输入发送到在企业层中运行的
|
enterprise bean 类来
|
处理。根据J2EE 规范,JavaBea
|
ns 类不被视为组件 。
|
为J2EE 平台编写的Jav set 方
|
aBeans 类有实例变量和用于访
|
问实例变量中的数据的“get 和
|
法”。以此种方式使用 合
|
的JavaBeans 类在设计和实现上
|
通常都是简单的,但是它们必须符
|
J2EE Web 组件可以由J 成。
|
SP 页面、基于Web 的applets
|
以及显示HTML 页面的servlets 组
|
调用servlets 或者JSP 页面的HTML
|
页面在应用程序组装时与Web 组件打包在一起。就像
|
客户层一样,Web 层可 层
|
能包括一个JavaBeans 类来管理
|
用户输入,并将输入发送到在业务
|
中运行的enterprise beans 类来处理 。 |
运行在客户层的Web 组 。
|
件依赖容器来支持诸如客户请求
|
和响应及enterprise bean 查询等
|
作为解决或满足某个特定业务领域( 由
|
比如银行、零售或金融业)的需要的逻辑的业务代码
|
运行在业务层的enterp 据,对数
|
rise beans 来执行。一个enter
|
prise bean 从客户程序处接收数
|
据进行处理(如果需要),再将数据 还从
|
发送到企业信息系统层存储。一个enterprise bean
|
运行在业务层的enterp 程及资
|
rise beans 依赖于容器来为诸
|
如事务、生命期、状态管理、多线
|
业务层经常被称作Ente J2EE
|
rprise JavaBeans (EJB )层
|
。业务层和Web 层一起构成了3 层
|
应用的中间层, 而其它两层是客户层和企业信息系统层. |
企业信息系统层企业信息系统层企业信息系统层企业信息系统层 |
企业信息系统层运行企业信息系统软件,这层包括企业基础设施系统, |
例如企业资源计划(ERP )、大型机
|
事务处理(mainframe transaction
|
processing )、数据
|
库系统及其他遗留信息系统(le
|
gacy information
|
systems )。J2EE 应用组件因为某
|
种原因( 例如访问数据库) 可能需要访
|
注意:注意:注意:注意:J2EE 平 J2EE 平台连接到企业信息
|
台的未来版本将支持Connector 架构,该架构是将
|
查询服务(查询服务(查询服务(查询服务(lookup services ))) |
因为一个J2EE 应用程 要
|
序的组件是单独运行的,并且往
|
往在不同的设备上运行,因此,需
|
一种能让客户层和Web 层代码查询并
|
引用其他代码和资源的方法。客户层和Web 层代码使
|
用Java 命名和目录接口(JNDI )来 环境条目
|
查询用户定义的对象(例如enterprise beans )、
|
(例如一个数据库驱动器的位置)、 DataSource
|
企业信息系统层中用于查找资源的JDBC TM
|
安全和事务管理(安全和事务管理( Transaction Management )))
|
安全和事务管理(安全和事务管理(Security and
|
诸如安全和事务管理这样的应用行为 配
|
可以在部署时在Web 和enterprise bean 组件上进行
|
置。这个特征将应用逻辑从可能随装配而变化的配置设定中分开了 。 |
J2EE 安全模型允许配
|
置一个Web 或enterprise bean
|
组件,使系统资源
|
只能由授权的用户访问。例如,一个Web 组件可以被配置成提示输入 |
用户名和密码。一个enterprise bean 组件可以被配置成只让特定团体 |
中的成员调用其某些方法。或者,一个servlet 组件可以被配置成让某 |
个组织中的所有人都能访问其某些方法,同时只让该组织中的某些享 |
有特权的人访问一些方 每
|
法。同样是该servlet 组件,可
|
以针对另外一个环境而被配置成让
|
个人都能访问其所有方法,或者仅让选定的少数人访问其所有方法 。 |
事务管理(事务管理(事务管理(事
|
务管理(Transaction Management )))
|
J2EE 事务模型使得能够在部署时定 务
|
义构成一个单一事务的方法之间的关系,以使一个事
|
中的所有方法被处理成一个单一的单 ,
|
元。这是我们所希望的,因为一个事务是一系列步骤
|
例如,一个enterprise bean 可能有 第二
|
一组方法,使我们可以通过从第一个账户借出并存入
|
个账户的方式而将钱从 元
|
第一个账户转移到第二个账户。
|
我们希望全部的操作被作为一个单
|
对待,这样,如果在借出之后存入之前发生了故障,该借出操作被取消。4 |
事务属性是在装配期间定义在一个组 个
|
件上的。这使得能将来自多个应用组件的方法归到一
|
事务中,这说明,我们可以轻易变更 属
|
一个J2EE 应用程序中的应用组件,并重新指定事务
|
在设计应用组件时,要 动多步
|
记住,尽管enterprise beans
|
有一个可使应用组件的容器自动启
|
事务的机制,但是applet 和应用的 用客户
|
客户容器可能并不支持这一点。然而,applet 和应
|
容器总是能够调用支持这一点的一个enterprise bean 。 |
还应当注意,JSP 页面 给一
|
和servlets 没有被设计成是事
|
务的,它们通常应当将事务工作交
|
个enterprise bean 来完成。然而, ,那么
|
如果事务工作在一个JSP 页面或servlet 中是必须的
|
可再用应用组件(可再用应用组件( Application Components )))
|
可再用应用组件(可再用应用组件(Reusable
|
J2EE 组件(applets
|
、应用的客户、enterprise bea
|
ns 、JSP 页面及servlets )
|
都被打包成模块,并以Java ARchive
|
(JAR )文件的形式交付。一个模块
|
由相关的组件、相关的文件及描述如何配置组件的配置描述文件组成 。 |
例如,在组装过程中,一个HTML 页 HTML
|
面和servlet 被打包进一个模块之中,该模块包含该
|
文件、servlet 组件及 交付,
|
相关的配置描述文件,并以一个
|
Web ARchive (WAR )文件的形式
|
该WAR 文件是一个带.war 扩展名的 些
|
标准JAR 文件。使用模块使得利用相同的组件中的某
|
例如,一个J2EE 应用 面组
|
程序的Web 版可能有一个enterp
|
rise bean 组件,还有一个JSP 页
|
件。该enterprise bean 组件可以与 版本。
|
一个应用客户组件结合,以生成该应用程序的非Web
|
这不需要进行额外的编码,只是一个装配和部署的问题。 |
并且,可再用组件使得将应用开发和 不
|
部署过程划分成由不同的角色来完成成为可能,这样
|
同的人或者公司就能完成封装和部署过程的不同部分。J2EE 平台定义了如下角色: |
J2EE 产品提供商(产 ))
|
品提供商(产品提供商(产品提
|
供商(J2EE Product Provider )
|
设计并使J2EE 平台、A 。
|
PI 和在J2EE 规范中定义的其他
|
特征能被其它公司或人购得的公司
|
应用组件提供商(应用 Component Provider ))
|
组件提供商(应用组件提供商( )
|
应用组件提供商(Application
|
创建用于J2EE 应用程序的Web 组件 的公司
|
、enterprise bean 组件、applets 或应用客户程序
|
或个人。在装配过程中,应用组件文件、接口及类被打包进一个JAR 文件中 。 |
应用程序装配商(应用程序装配商( Assembler )))
|
应用程序装配商(应用程序装配商(Application
|
从组件提供商获得应用 ARchive
|
组件JAR 文件,并将它们组装成
|
一个J2EE 应用的Enterprise
|
(EAR )文件的公司或个人,此种文件是一个带.ear 扩展名的标准文件 。 |
应用装配商提供与该应
|
用程序相关的整体信息,并使用
|
验证工具来检验EAR 文件的内容是
|
正确的。组装和部署信
|
息存储在一个基于文本的配置描
|
述文件中,此种文件使用XML 标记
|
来标记该文本。应用装 文
|
配商可以按照第7 章“设计企业
|
应用”的描述直接编辑该配置描述
|
件,或者使用一个能通过交互式选择 5
|
来正确添加XML 标记的装配和配置工具来编辑该配置
|
部署商(部署商(部署商(部署商(Deployer ))) |
部署J2EE 应用程序的 提
|
公司或个人。职责包括设定事务
|
控制、安全属性,并根据应用组件
|
供商提供的指示来标明 处理
|
一个enterprise bean 是自己处
|
理自身的存储,还是由一个容器来
|
部署涉及配置和安装。在配置过程中 依
|
,部署商遵循应用组件提供商提供的指示来解决外部
|
赖问题,定义安全设定 务
|
,以及分配事务属性。在安装过
|
程中,部署商将应用组件安装到服
|
系统管理员(系统管理
|
员(系统管理员(系统管理员(
|
System Administrator )))
|
配置并管理运行J2EE 。
|
应用程序的计算环境和网络基础
|
设施,并监督运行时环境的人员
|
工具提供商(工具提供商(工具提供
|
商(工具提供商(Tool Provider )))
|
生产被组件提供商、装配商及部署商 人。
|
使用的用于进行开发、组装和打包的工具的公司或个
|
设计用户界面和引擎(设计用户界面 (Designing the User Interface and E
|
和引擎(设计用户界面和引擎(设计用户界面和引擎 ngine )))
|
在为J2EE 应用程序设计用户界面和后端引擎时,我们需要决定是让 |
该程序基于Web ,还是不基于Web 。在做出这个决定时,我们可能希 |
望考虑平台配置、下载速度、安全、网络流量和网络服务 。 |
例如,包含有用户界面并且经常被大量用户访问的一个applet 可能需 |
要花很长的时间才能被下载下来,这 个公
|
让用户沮丧。然而,如果知道该applet 要运行在一
|
司的内部网内的受控环境中,那么, 下载
|
在这种情况下,该applet 将拥有一个完全可接受的
|
另一个考虑是,繁重的处理应当在哪 中
|
里执行。例如,如果客户程序在一个蜂窝电话或呼机
|
执行,服务器应当完成 而,
|
尽量多的计算和数据处理,而客
|
户程序只应显示结果就可以了。然
|
设计在一个强大的台式机平台上运行的大型财务分析系统则应当在客户机上完成其复杂计 |
应用的客户程序和applet 用户界面 Java2
|
通常都是用Swing API 创建的,该API 可从标准版
|
平台(Java 2 Platform ,Standard 组件(表格、
|
Edition )中获得。Swing API 提供了一整套GUI
|
树形结构、按钮等),这些组件可以 的
|
被用来实现一种比用一个典型的HTML 页面所能实现
|
更为交互的体验。Swing 也支持HTML
|
文本组件,这个组件可以被用来显示来自一个服务
|
客户程序可以直接访问enterprise b 绕过
|
ean 层或企业信息系统层。但应谨慎实现这种程序。
|
EJB 层的程序可以使用JDBC API 来 进
|
访问一个关系型数据库,但应被限制于对数据库表格
|
设计基于设计基于设计基于设计基于 程序(Designing Web-Based Applicatio
|
Web 的应用程序(的应用程序(的应用程序(的应用 ns )))
|
基于Web 的应用程序是基于浏览器的,并且,如果它们运行在Internet |
上的话,可能被全世界的人访问。当设计一个基于Web 的应用程序时,6 |
不仅需要决定用什么来 且还
|
处理内容和应用逻辑(HTML 、X
|
ML 、JSP 页面及servlets ),而
|
一个国际化的基于Web
|
的应用程序向用户提供了选择一
|
种语言,然后,根据该选定语言加
|
载应用的正文的方式。对被支持的每 并
|
种语言而言,应用正文都被存储在一个外部文件中,
|
且,与另外一个文件的 确
|
关键词相对应。应用代码使用这
|
些关键词以及选定的语言来加载正
|
的文本。国际化API 还提供类来根据选定的语言来格式化日期和金钱 。 |
一旦制订了使应用程序 个
|
国际化的细节,我们就可以决定
|
用什么来实现它了。总体来说,一
|
基于Web 的应用程序使
|
用HTML 来显示数据; 用XML 来
|
定义数据以使其可被另一个程序读
|
取并处理; 使用JSP 页面或servlets
|
来管理用户与业务层或存储层之间的数据流。
|
可以在J2EE 平台上实现的基于Web
|
的应用程序有四种。从简单到复杂排列,它们是 :
|
˙带基本JSP 页面或servlets 的HTML |
˙将应用逻辑根据功能划分成区域的高度结构化的应 用 |
当设计一个基于Web 的
|
应用程序时,需要决定用什么来
|
建立它。并且,如果我们是从建立
|
一个简单的应用程序开始着手的话, 应
|
如果认为以后会给该应用程序添加功能,那么,设计
|
当适应今后发展的需要 些设
|
。下面的内容通过比较JSP 页面
|
和servlets ,来帮助我们做出某
|
Servlets 和和和和JSP 页面页面页面页 面 |
Servlets 是实现动态 面是
|
内容的一种简便的、平台独立的
|
、Web 服务器独立的方式。JSP 页
|
开发servlets 的一种 所有好处,
|
基于文本的、以显示为中心的方
|
式。JSP 页面提供了servlets 的
|
并且,当与一个JavaBeans 类结合在 式。
|
一起时,提供了一种使内容和显示逻辑分开的简单方
|
分开内容和显示逻辑的好处是,更新 JavaBeans
|
页面外观的人员不必懂得Java 代码,而更新
|
类的人员也不必是设计网页的行家里 )更可
|
手。JSP 页面和servlets 都比公共网关接口(CGI
|
取,因为CGI 不是平台独立的,使用
|
了更多系统开销,而且没有一个简单的方法来访问参
|
可以用带JavaBeans 类的JSP 页面来 组
|
定义Web 模板,以建立一个由具有相似的外观的页面
|
成的网站。JavaBeans 类完成数据提 模板
|
供,这样在模板中就没有Java 代码,这意味着这些
|
在选择使用一个servlet ,还是一个 计工具,
|
JSP 页面时,要记住的是,servlets 是一个程序设
|
它最适用于不需要频繁 方
|
修改的低级应用功能; 而JSP 页
|
面则通过以显示为中心的描述性的
|
对于一个使用一个JSP
|
页面的简单的基于Web 的应用程
|
序,我们可以使用定制标记或者
|
scriptlets ,而不是 到一个
|
使用JavaBeans 类来将内容与应
|
用逻辑结合起来。定制标记被打包
|
标记库中,并被引入到 Java7
|
一个JSP 页面中。Scriptlets
|
是直接嵌入在JSP 页面中的很小的
|
模型、视图和控制器架构(模型、视 视图和控制器架构(Model, View, Contr
|
图和控制器架构(模型、视图和控制器架构(模型、 oller Architecture )))
|
在基于组件的J2EE 平台充分内置了灵活性的情况下,剩下的问题可 |
能是如何组织应用程序以实现简单高效的应用程序升级和维护,以及 |
如何让不懂程序代码的人员避开程序数据。答案就在模型、视图和控 |
制架构(MVC )的使用之中。MVC 这样的架构是一个描述重现的问 |
题及其解决方案的设计范式,但问题每次重现时,解决方案都不是完 |
模型(model )提供应用业务逻辑( 幕上的显示
|
enterprise bean 类); 视图(view )则是其在屏
|
(HTML 页面、JSP 页 bean 类,
|
面、Swing GUI ); 控制器则是
|
servlet 、JavaBean 或session
|
它用于管理用户与视图发生的交互。 图
|
我们可以将控制器想象成处在视图和数据之间,对视
|
通过使视图完全独立于控制器和模型 器
|
,就可以轻松替换前端客户程序。并且,通过将控制
|
和模型代码保持在视图之外,那些不 。
|
理解这些代码的人员就不能改变他们不应改变的东西
|
将控制器和模型分开可 况
|
以在不影响模型的情况下改变控
|
制器,也可以在不影响控制器的情
|
例如,如果应用的前端
|
是一个HTML 页面,一个HTML 专
|
家就可以更新它。如果使用一个
|
JSP 页面,将控制器的 action
|
代码放到一个JavaBean 或sessi
|
on bean 类中,或使用动作标记(
|
tags ),这样,JSP 页面就仅包含JSP 代码了 。 |
J2EE 应用程序中的应用程序中的应
|
用程序中的应用程序中的Enterprise Beans
|
当编写管理特定业务功能(比如追踪雇员资料或进行复杂财务计算) |
的J2EE 应用程序时,请将完成这些任务的业务逻辑放置在EJB 层的 |
enterprise beans 中
|
。以这种方式,我们就可以使代
|
码集中在解决手边
|
的业务问题,而利用enterprise bean 容器来支持低层服务,比如状态 |
将业务逻辑与低层系统逻辑分开意味 按照
|
着容器可以在运行时创建和管理enterprise bean 。
|
规范编写的任何enterprise bean , 何使用
|
都可以根据其在一个特定的J2EE 应用程序中将被如
|
来对其事务管理或安全属性进行配置 再
|
,并可以被部署到任何一个与规范兼容的容器中。可
|
用组件使不必改变和重新编译enterprise bean 代码成为可能 。 |
一个enterprise bean 由接口和类组 接口来访
|
成。客户程序通过enterprise bean 的home 和远程
|
问enterprise bean 的方法。Home 法,而
|
接口提供了创建、删除和定位enterprise bean 的方
|
远程接口则提供了业务方法。在部署 除、
|
时,容器由这些接口来创建类,使客户能够创建、删
|
定位或调用位于enterp 创建方法
|
rise bean 上的业务方法。ente
|
rprise bean 类提供了业务方法、
|
和查寻方法的实现。如果enterprise 提供
|
bean 管理它自己的持久性的话,还为其生命期方法
|
有两种Enterprise bea
|
ns :entity beans 和session
|
beans 。
|
一个session bean 代表与客户程序 一个
|
的一个短暂的会话,而且可能执行数据库读写操作。
|
session bean 可能会自己调用JDBC 后者这
|
,或者它可能使用entity bean 来完成此种调用。在
|
种情况下,这个session bean 是该e 话状态,
|
ntity bean 的客户。一个session bean 的域包含会
|
而且是短暂的。如果服 常被
|
务器或者客户程序崩溃,该sess
|
ion bean 就丢失了。这种模式通
|
用于像PL/SQL 这样的数据库程序设计语言上 。 |
一个entity bean 代表 中的
|
一个数据库中的数据及作用于该
|
数据的方法。在一个关系型数据库
|
雇员信息表中,每一行都有一个bean 。只
|
来代表。entity beans 是事务的,并且是长寿命的
|
要数据留在数据库中, ,而
|
entity bean 就存在。这个模式
|
可以被很容易地用于关系型数据库
|
Session beans 可以是有状态的,也可以是无状态的。一个有状态的 |
session bean 包含代表客户程序的
|
会话状态。该会话状态是该session
|
bean 实例的域值加上这些域值所引用到的所有对象。有状态session |
beans 并不代表在一个持久数据存储中的数据,但是,它可以代表客 |
无状态session beans 没有用于某个 不保
|
特定客户程序的任何状态信息。它们通常被用于提供
|
持任何特定状态的服务器端行为。无 一种
|
状态session beans 要求更少的系统资源。一个提供
|
一般服务,或用于表示被存储的数据 bean
|
的一个被共享的视图的业务对象是无状态session
|
因为enterprise beans 据访问
|
占用可观的系统资源和带宽,
|
可能希望将某些业务对象构造成数
|
对象或值对象。数据访问对象完成诸 容
|
如代表客户程序访问数据库等工作。值对象用于代表
|
纳数据字段并提供简单的“get 和set ”方法来访问这些数据的一个结构 。 |
另外,可以将程序构造成使用enterp 的任
|
rise bean 在客户和EJB 层的其它部分之间承担通信
|
一个使用容器管理的持久性来访问一个关系型数据库的enterprise |
bean ,并不要求在bean 的代码中使
|
用任何JDBC 2.0 API 来进行数据库
|
访问,因为容器完成了这些工作。然而,如果使用bean 管理的持久性, |
或者我们要访问一个非关系型数据库的企业信息系统,那么我们就必 |
在一个enterprise bean 使用bean JDBC
|
管理的持久性来访问一个数据库的情况下,必须使用
|
2.0 API 代码来实现该enterprise b 及在运
|
ean 的生命期方法,以便处理数据的加载和存储,以
|
一个使用bean 管理的持久性的enter 组件必
|
prise bean ,或一个需要访问企业信息系统的Web
|
须提供合适的代码。这些代码可能是 问一
|
用于进行数据库访问的JDBC 2.0 API ;或是用于访
|
个特定企业信息系统的企业信息系统 层
|
API ;或是用于抽象企业信息系统API 的复杂性和低
|
细节的一个访问对象,或是用于访问企业信息系统资源的一个连接对象。9 |
尽管Web 层使用HTTP RMI-IIOP 。
|
或HTTPS 来在各层之间传输数据
|
,但是,EJB 层使用的是
|
RMI-IIOP 是一个完整 程序或
|
的分布式计算协议,能让任何访
|
问一个enterprise bean 的客户层
|
Web 层程序直接访问EJ JNDI ,
|
B 层的服务。这些服务包括用于
|
查找和引用enterprise beans 的
|
发送和接收异步消息的 JDBC 。
|
Java Message Service (JMS
|
),以及用于关系型数据库访问的
|
宠物商店应用程序(宠物商店应用程 Store Application )))
|
序(宠物商店应用程序(宠物商店应用程序(Pet
|
《设计企业应用程序》
|
这本书的第10 章将J2EE 应用编
|
程模型应用到一个宠物商店示例应
|
用程序上。您可以从java.sun.com 顶层
|
网站的下载页面下载该演示版,并且您会在该下载的
|
在第10 章,我们从规 阶
|
范制定和设计阶段到实现,再到
|
指定安全和事务属性的装配和部署
|
段,对应用的开发过程进行了描述。 论
|
第10 章的第一节描述了应用的情景,然后进一步讨
|
了架构、功能的划分、向各层分配功能以及在各层中分解对象。 |
Monica Pawlan 是JDC
|
写作队伍的成员。她拥有2D 及3
|
D 图形技术、安全以及数据库产品
|
|
|
|
|
|