EJB体系构造的历史和目标[Java编程]
本文“EJB体系构造的历史和目标[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本文概述 Enterprise JavaBeans (EJB)技术,旨在让读者快速理解基本 概念.本文报告 EJB技术的历史和某些目标、长处和技术.为了简便 明了,有挑选地报告 EJB技术的一些关键要素.请注意,固然 EJB 组件依靠于一些底子 的 Java服务(如 Java Transaction Service),但使 用EJB组件及熟习这些组件的好处并不需求掌握这些相关技术的知识.
Enterprise JavaBeans 这一名称操纵了 Java bean ― 这种可移植、可重用 的 Java 软件组件的名誉.Enterprise JavaBeans 技术把 Java 组件的概念从客户机域扩大到了 服务器域:这是 Java 技术生长历程中有重粗心义的一步,它使 Java 技术发展成为一种健旺的、可伸缩的环境,可以支持以任务为关键的企业信息系统.
服务器上的 Java 利用程序
Java 编程语言最初在 Web 开辟人员中得到好评的一个缘由是,它支持称 为 applet 的可下载 Java 程序.对 Applet 的支持以 Applet 类的情势内置到 了 1.0 版的 Java Development Kit (JDK) 中.按照 1.0 版的时间框架,Java 开辟是以 applet 和 利用程序作为中央的.基于 JDK 1.0 版的 Java 读物都是从 applet 和利用程序的角度来描写 Java 编程的:
"Java 程序由更多的类定义中的某一个构成,每个类定义均已编译成它自已 的 Java 虚拟机对象代码的 .class 文件.这些类之一必须定义一个 叫做 main() 的办法,程序就是从这个办法开始运行的.想调用一个 Java 程序,需求运行 Java 注释器 java,并指定包含 main() 办法的类的名称.请注 意 Java applet 并非一个利用程序 ― 它是一个由已在运行的 Java 利用 程序(如 Web 浏览器或 applet 查看器)装入并运行的 Java 类."(见 Flanagan 所著 的 Java in a Nutshell)
Java 利用程序可以在服务器上运行,但是不管是在客户机-服务器环境下,还是在基于 Web 的环境 下,JDK 中都没有供应让 Java 利用程序专用于服务器机械的接口或包.熟习到 Java 在 Web 环境下作为一种服务器语言的潜力,Sun Microsystems 编写了 Java Servlet 标准.servlet 在很多方面 与 applet 类似,它是专门为在 Web 服务器机械上运行而计划的 Java 程序:
"servlet 是由容器管理的 Web 组件,可产活泼态内容.servlet 是 一种小型的、与平台无关的 Java 类,被编译成体系构造中立的字节代码,这种代码可以动态地加载到 一个 web 服务器上,并由此 web 服务器运行.servlet 通过一种 由 servlet 容器实现的恳求-呼应模子与 Web 客户机举行交互.这种恳求-呼应模子成立在超文本传输协议 (HTTP) 行为的底子之上."(见 JavaSoft 的"Java Servlet API Specification")
在一台 Web 服务器掌握下,在多台服务器上运行若干小型用户程序,这种设法并不新颖 ― 一段时间 以来,大众网关接口 (CGI) 程序(常被称为 CGI 脚本)一向起着这种作用,并推动了 Web 的普 及.但 Java servlet 可以以更高的效率和可移植性来实现这一目的,因而 可望终究会代替 CGI 程序.为 servlet 供应运行时环境的 软件(普通被称为 servlet 引擎)可以增添到现有的、本身并不支持 Java 可执路程序 的 Web 服务器上.
Java servlet 的呈现,为利用程序员利用 Java 来成立 Web 利用程序开辟了新的途径.但是,唯一 servlet 还不能为真正的企业计算供应完好的模子.CGI 利用程序本身常常不是完好的利用程序,在处理接纳自 Web 浏览器上用户的信息恳求时,CGI 只是整个处理历程中的一此中间步骤.比方,CGI 利用程序的一种常见用处是拜候数据库.将它用于这种任务时,CGI 程序供应一种办法,将用户的数据恳求衔接到能满意这种恳求的企业数据库.CGI 程序常常充当一种中间软件,从 Web 浏览器接纳恳求,决意必须调用哪些计算资源来满意这些恳求,并向浏览器发反呼应.Java servlet 与 CGI 程序一样,最合适充当衔接前端 Web 恳求与后端 数据资源的中间层组件.
三层体系构造
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体系构造的历史和目标[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |