Enterprise JavaBeans组件慨述(2)

来源:互联网 发布:mac 我的所有文件 编辑:程序博客网 时间:2024/05/16 05:10
三层体系结构

  Web 编程向服务器端 Java 应用程序的演化,也带来了体系结构的演化,使它脱离了常规的客户机-服务器两层模型,而向一种三层方法发展。两层模型当时曾经具有创新意义,因为它将一些计算任务从主处理器上卸载到灵巧的客户机。常规的基于 LAN 的数据库应用程序就是一个例子,其中数据库管理器服务器软件驻留在一个专用的服务器机器上,而用户则通过他们的工作站上的客户机代码来访问数据库。随着客户机-服务器模型成长到能付诸使用,就出现了对服务器可伸缩性和对客户机代码大小和复杂性的关注。于是提出了一种三层的体系结构,以避免在两层模型中已察觉到的弱点,使 Web 能成为一个计算平台:

     “许多人...断言,传统的客户机/服务器两层体系结构不会有好的可伸缩性,因为用户连接和数据访问的数量无法预测,而且在一些系统管理上也存在问题。为处理两层体系结构的限制,许多开发集体都在转向三层体系结构。这种体系结构大致可以定义为:客户机层上的表示层、中间的服务器和后端的某种数据库。这种设想的目的就是缓和客户机或数据库服务器上的代码膨胀,集中管理业务逻辑,更灵活地使用数据库,而不仅是使用所存储的过程和触发器。”(见 Kim 的“Looking for a 3-Tier App Builder?”)

  一个三层结构模型通常被想像成有一个 Web 浏览器作为客户层。Web 浏览器由于有可能成为一种真正的通用客户机,使它从观念上取代了两层结构的“胖客户机”。如果浏览器作为 Web 应用程序体系结构的标准瘦客户机获得认可,那么以前驻留在两层模型的胖客户机中的功能会怎么样呢?现在,应用程序专用的功能并不移植回服务器(例如数据库管理器),而是有意将它驻留在一个新的中间层上。中间层支持应用程序服务器软件,这种软件是中间件的一种形式,它处于第一层上瘦客户机的最小功能和第三层上服务器端业务系统的丰富功能之间。由于三层体系结构与 Web 处理模型有密切关系,所以中间层应用程序服务器常被视为 Web 服务器的一种功能扩展。现有的 Web 应用程序利用 CGI 程序,将来自 Web 浏览器的用户请求传送到不基于 Web 的业务系统,并向浏览器返回响应,就是三层模型的一种实现。这些应用程序逐渐向 Servlet 技术的转移说明三层模型正在增强。

  JavaBeans 组件

  JavaBeans 规范将“组件软件”的概念引入到 Java 编程的领域。组件是自含的、可重用的软件单元;而 JavaBeans 组件,则可以使用可视的应用程序开发工具,可视地将它们编写到 Java 程序中。JavaBeans 规范为 Java 开发人员提供了一种“组件化”其 Java 类的方法:

  Bean 是一些 Java 类,可在一个可视的构建器工具中操作它们,并且可以将它们一起编写到应用程序中。任何具有某种特性和事件接口约定的 Java 类都可以是一个 Bean。(见 JavaSoft,“Using the Beans Development Kit 1.0”)

  如果软件重用是一个好主意,那么是否应该让每一个 Java 类都成为 Java bean 呢?如果 Java 类满足某些准则,它们就适于充当 bean 的角色:

  在开发任何新软件之前,都值得考虑是否用 JavaBean 的形式来开发它。如果软件模块要既能够可视地操作,又能够定制以达到某些效果,则这种软件模块就可能适于做成一个 JavaBean。为帮助您确定要开发的软件是否应该是一个 JavaBean,假定它应该是用 Java 编写的,请向您自已提出以下问题,并相应地作出决定:

  是否打算让它可重用?或者,它会是可重用的吗?

  是否希望将它与其他可重用的 Java 组件一起使用?

  是否预计会在 IDE 工具中使用它?

  如果上述问题的答案都是肯定的,则它应该作为 JavaBean 来开发。(见 developerWorks 的“JavaBeans Guidelines”)

  JavaBean 概念是为了在 Java 编程环境中支持可重用的组件,它是一种一般性的设计方法,适用于客户机或服务器机器上运行的 Java 程序。由于对可视的构建器工具的强调,也由于许多 Java bean 都是图形用户界面 (GUI) 组件,所以 JavaBean 组件可能被视为一种客户端技术。但是,并不要求 Java bean 都是可视的,并且它们也可以用于服务器环境中。

  编码为 Java bean 的 Java 类通常具有以下特征:

  使用设计模式。这些模式就是方法和接口的编码约定。

  支持可视的软件开发工具。类必须将变量(称为属性)、方法和事件展示出来。

  可以定制。定制包括能支持缺省的属性编辑器,或者提供单一的定制规则。定制使开发人员得以在不更改源代码的情况下更改 bean 的行为。

  支持自省 (introspection)。这指的是将属性、方法和事件公开给其他类,可以通过设计模式或通过创建 BeanInfo 类来完成这种自省。

  是持久的。这就允许在一个可视构建器中定制一个 bean,然后以其定制后的状态加以保存。

  Java 2 Platform, Enterprise Edition

  Sun Microsystems 发起了一项称为 Java 2 Platform, Enterprise Edition (J2EE) 的技术创新,旨在将 Java 平台的范围扩展到大规模服务器环境:

  
   “1997 年 4 月 12 日,Sun 宣布了一项为企业环境开发 Java 平台的创新成果。使用开放式的 Java Community Process,Sun 促进了一组标准的 Java 扩展的开发,称为 Enterprise Java API。这些应用程序编程接口 (API) 为各种各样的中间件的实现提供了不依赖供应商的编程接口。Enterprise Java API 的要点是 Enterprise JavaBeans API,后者为 Java 应用程序服务器定义了一个服务器端组件模型,以及一个不依赖供应商的编程接口。”(见 Thomas 的“Java 2 Platform, Enterprise Edition: Ensuring Consistency, Portability, and Interoperability”)

  J2EE 为 Enterprise JavaBeans 技术提供了工作环境。事实上,Sun 把若干项软件技术都设想为这样的构件块,它们将使大型企业能够把以任务为关键的业务系统移植到 Java 环境中,而 Enterprise JavaBeans 技术不过是这些技术之一。EJB 组件是按它们自己的规范定义的,但 EJB 技术并不是一项独立的技术。它建立在其他 Java 技术之上,这些技术由 Sun 和其他 IT 公司联合规定,它们一起提供了这个框架的内容,该框架就称为 Java 2 Platform, Enterprise Edition。

  J2EE 中包括以下技术:

   Enterprise JavaBeans (EJB) 技术

   Java Interface Definition Language (IDL)

   Java Message Service (JMS) API

   Java Naming and Directory Interface (JNDI)

   Java Remote Method Invocation (RMI) 和 Object Serialization

   Java Servlet API

   Java Transaction API (JTA)

   Java Transaction Service (JTS)

   JavaServer Pages (JSP) 技术

   JDBC 数据库访问 API

  参与到这个企业 Java 框架中,并不意味着每项技术都依赖于所有其他技术。单独的规范文档指出每项技术的相关性。例如,Enterprise JavaBeans 规范 1.0 发行版就指明了在定位各个组件时与 JNDI 的相关性,以及在编程中启动和停止事务处理时与 JTA 的相关性。

  EJB 技术的设计目标

  EJB 规范的第一版以初稿形式于 1997 年 12 月公布,并于 1998 年 3 月作为 1.0 版发行。规范作者为 EJB 体系结构制定了以下目标:

  Enterprise JavaBeans 体系结构将是标准的组件体系结构,用于以 Java 编程语言构建分布式的面向对象的商务应用程序。通过把使用不同供应商提供的工具开发出来的组件组合在一起,Enterprise JavaBeans 体系结构将有可能构建分布式的应用程序。

  Enterprise JavaBeans 体系结构将使编写应用程序变得容易:应用程序开发人员将不必了解低层次的事务和状态管理的细节、多线程、资源共享和其他复杂的低级 API。但是,将允许专家级的程序员直接访问低级 API。

  Enterprise JavaBeans 应用程序将遵循 Java 编程语言的“一次编写,随处运行”的原则。EJB 组件可以只开发一次,然后在多个平台上部署,而不需要重新编译或修改源代码。

  Enterprise JavaBeans 体系结构将处理企业应用程序生命周期中的开发、部署和运行等方面。

  Enterprise JavaBeans 体系结构将定义一些约定,这些约定使多个供应商提供的工具能够开发并部署可在运行时互操作的组件。

  Enterprise JavaBeans 体系结构将与现有的服务器平台兼容。供应商将能够扩展它们的现有产品,以支持 Enterprise JavaBeans 组件。

  Enterprise JavaBeans 体系结构将与 Java 编程语言编写的其他 API 兼容。

  Enterprise JavaBeans 体系结构将提供 EJB 组件和非 Java 编程语言应用程序之间的互操作性。

  Enterprise JavaBeans 体系结构将与 CORBA 兼容。

 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 天梭机械表慢了怎么办 手表每天慢10秒怎么办 浪琴机械表不走了怎么办 大提单号被修改了怎么办 入户中山没有三年居住证明怎么办 加拼关单号舱单信息没有怎么办 外贸中交货期晚了怎么办 履约保函到期了怎么办 续贷高校未通过怎么办 安卓手机网速慢怎么办 探探性别错了怎么办 尿酸高导致脚肿怎么办 联通光猫复位后怎么办 头部和脸部出油怎么办 vcd解码板坏了怎么办 脚崴了里面筋疼怎么办 长寿龟身上烂了怎么办 纱裙没有腰身显胖怎么办 橘子平台下载速度慢怎么办 换手机号了支付宝账号怎么办 怀孕期间脚扭了怎么办 买了临街房后悔怎么办 绝地求生困在废车里怎么办 身体出现辅助睡眠状态怎么办 扁桃体发炎喉咙痒咳嗽怎么办 电脑玩英雄杀卡怎么办 康佳冰箱显示2e怎么办 高考登陆系统登录密码错误怎么办 苹果遇到ad登录问题怎么办? 小孩2天不拉屎怎么办 20天宝宝不大便怎么办 小孩几天不拉大便怎么办 宝宝经常不拉大便怎么办 宝宝便秘 肛裂了怎么办 3个月宝宝不便便怎么办 宝宝8个月不便便怎么办 宝宝在幼儿园不爱说话怎么办 广东学考考了d怎么办 上嘴唇干燥紧绷怎么办 美国大学gpa非常低怎么办 大学手机作弊通报教务处怎么办