分享
 
 
 

祥解J2EE与IBM对象关系的数据库

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

简介

数据库的选型应该是会为您带来商业优势的战略性决策。一旦做出决策,您就必须充分利用该数据库服务器来实现这一优势。本文简要地介绍了 java 2 EnterPRise Environment(J2EE)环境,并讨论了 J2EE 开发中使用的面向对象方法(分析、设计、实现),以及一些与对象持久性相关的问题,因为对象持久性与对象-关系数据库治理系统(ORDBMS)的使用相关联。

Web 体系结构背景

J2EE 包含几十个缩写词,每个均代表不同的概念。要理解这一复杂性,回顾一下 Web 体系结构的发展过程是十分有用的,如图 1 所示。

图 1. Web 体系结构

图 1 中所展示的体系结构代表了 1996 年的 Web 环境。那时,浏览器和 Web 服务器主要是由 Netscape 提供的,而 Netscape 的产品在当时较之以前的产品来说是一个重大的进步。

在图 1 的左侧,我们看到的是浏览器。它包含一些附加功能,以使用插件来提供像显示 .pdf 文件这样的功能。它还增加了一些编程功能,以改善与用户的交互。其中包括一种能够添加到 Html 语言中的脚本语言 javascript(独立于 Java 创建的),以及可包含在 HTML 页中进行下载的 Java applet。

该浏览器使用超文本传输协议(HTTP)与 Web 服务器进行通信。HTTP 的重要特点就是它建立在请求-响应模型的基础上。每个请求-响应都是相互独立的。Web 服务器不会等待当前客户机的下一请求。因此,该协议是无状态的(stateless)。

万维网(WWW)是为了易于访问文档而创建的。因为每个请求都是单独完成的,所以无需追踪复杂的交互。Web 服务器可以接收请求,并使用所提供的信息在由 Web 服务器控制的目录结构中检索所请求的文档。

在发展初期,Web 服务器的定义中添加了一个称作公共网关接口(Common Gateway Interface,CGI)的接口。这是一种按照所定义的协议来调用以指定格式接收信息的程序,使用该程序来实现请求,并将之返回给 Web 服务器的简单方式。该方式还有能力调用一个可以生成更多动态内容的程序。因为这是对于浏览器请求的扩展,所以 CGI 程序是暂时性的:通过请求创建,一旦返回结果就终止。

CGI 协议也有其局限性,并用于实现访问关系数据库的应用程序。这意味着每当向驻留在关系数据库中的信息发出请求时,都必须打开数据库连接,插入、更新和检索数据,以及关闭连接。在大多数情况下,多数时间都消耗在数据库的连接上。人们想出了两个办法来解决该问题:让 CGI 程序与永久性程序进行对话,以及通过包含 API 来扩展 Web 服务器的功能。

第一个办法是让 CGI 程序与永久性程序进行对话,这个方法可以有许多变种。CGI 程序可以启动一个要基于某个 ID 来进行访问的应用程序,而这个 ID 是我们在响应中返回的(如图 1 中的 app-srv 所示)。假如此 ID 在某个间隔内还没有被重新使用,程序将终止。另一种方式是让一个永久性程序来处理所有客户机向该应用程序发送的请求。该场景极可能需要一个多线程程序,用于验证客户机的有效性,以及向每个新的客户机分配 ID。然后,它必须记录每个客户机 ID 的超时时间。

第二个办法是通过包含 API 来扩展 Web 服务器的功能,即利用 Web 服务器 API(图 1 中的 NSAPI)来编写应用程序,并将之驻留在 Web 服务器上。通过该方法,Web 服务器可以保持数据库连接,以及包含应用程序特定的处理信息。这种方法也需要记录用户和连接超时。

进入应用程序服务器将各种 Web 应用程序的实现方式合并成为一个更完整的架构是有道理的。那时,Java 倡导的“一次编写,到处运行”的概念已经十分流行。所以,J2EE 的成型并未花很长时间。

J2EE 是一个 Java 规范,且深受面向对象(OO)程序设计方法的影响(Java 是一种 OO 编程语言)。其目标是提供一个应用架构,其中包含实现企业应用程序所需的所有特性,这包括可移植性、可伸缩性、事务控制,等等。J2EE 规范包括:

J2SE:Java 2 Standard Edition 包含了闻名的 Java 环境,其中包括与平台无关的 Java 开发工具箱/Java 运行时环境(JDK/JRE)、多线程环境、Java 基础类等。

EJB:Enterprise Java Beans 提供了在分布式环境中表示对象的标准方式。EJB 具有三种类型:会话 bean、实体 bean 和消息 bean。

Servlets:Java Servlets 提供了请求-响应通信模式中的操作机制。

jsp:Java Server Pages 是非凡类型的 servlets,用于动态创建 HTML 页并显示给用户。

JDBC:Java 数据库连接接口提供了与诸如关系数据库的数据源进行通信的标准化方式。

JTA/JTS:Java 事务 API 与 Java 事务服务。

JMS:Java 消息服务。

JNDI:Java 命名和目录接口。该接口对于 J2EE 环境至关重要,因为它提供了一种无需知道其位置就可以追踪资源的方式。您可以将之与 LDAP 目录服务等同起来。

JavaMail

JAXP:用于 xml 处理的 Java API。它还包括用于 XML 注册的 Java API(JAXR)和基于 XML 的 RPC 通信协议(JAX-RPC)。

Connector Architecture:该体系结构提供了与未集成在 J2EE 环境中的遗留系统进行通信的方式。 JAAS:Java 认证和授权服务。

这些规范仍然在不断演变着,而且还在添加更多组件。颇有意义的是,这些规范是基于标准的,并且致力于提供给用程序提供者、应用程序服务器提供者以及硬件平台之间的可移植性。正如您可以看到的,J2EE 环境正试图提供企业应用程序中所需的所有可能服务。这包括了多年以来以不同形式提供的许多服务。

图 2 中提供了 J2EE 环境的高层表示。而真正的实现则可能包含许多其他组件,并且可以将其对象分布在大型网络中的多个机器上。

图 2. J2EE 高层体系结构

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有