440 likes | 682 Views
EJB: 概述. Agenda. EJB 构件技术 EJB 的特点 集成遗产系统 EJB vs. JavaBean. EJB 构件技术. Component. 构件 包含应用代码的 可重用 软件单元 可以用于 组装 应用 构件模型 定义了开发构件的基本原则( guidelines ) 这些基本原则为构件技术奠定了基础 如 EJB 、 COM 、 CORBA 等 EJB 构件技术为 EJB 应用提供了基本的支撑。. 客户. 分布式对象. 分布式对象技术. 分布式对象技术是 EJB 采用的第一种构件技术 支持客户应用访问分布式对象
E N D
EJB: 概述 西安电子科技大学软件学院
Agenda • EJB构件技术 • EJB的特点 • 集成遗产系统 • EJB vs. JavaBean 西安电子科技大学软件学院
EJB构件技术 西安电子科技大学软件学院
Component • 构件 • 包含应用代码的可重用软件单元 • 可以用于组装应用 • 构件模型 • 定义了开发构件的基本原则(guidelines) • 这些基本原则为构件技术奠定了基础 • 如EJB、COM、CORBA等 • EJB构件技术为EJB应用提供了基本的支撑。 西安电子科技大学软件学院
客户 分布式对象 分布式对象技术 • 分布式对象技术是EJB采用的第一种构件技术 • 支持客户应用访问分布式对象 • 分布式对象包含商业逻辑并访问网络环境中的数据。 西安电子科技大学软件学院
分布式对象技术 • 现有的分布式对象技术包括Java RMI、CORBA、DCOM等。 • 所有的分布式对象技术都会使用某个特定的远程方法调用(RMI,并不特指Java RMI)协议。 • 当客户程序需要跨越网络调用分布式对象上的方法时,就要使用远程方法调用协议。 西安电子科技大学软件学院
客户 JRMP 客户 分布式对象 RMI/IIOP 分布式对象 分布式对象技术 • JRMP(Java Remote Method Protocol)是一种远程方法调用协议,在Java RMI模型中,客户程序和分布式对象之间通过JRMP协议通信。 • JRMP(Java Remote Method Protocol)是一种远程方法调用协议,在Java RMI模型中,客户程序和分布式对象之间通过JRMP协议通信。 • EJB中最常用的远程方法调用协议是RMI/IIOP。 西安电子科技大学软件学院
客户 应用服务器 数据库 分布式 商业对象 服务端构件技术 • 服务端构件技术( Server-side Component Technology)是EJB采用的另一种构件技术。 • 用于开发分布式商业对象(包含商业逻辑) • 基于服务端构件模型 西安电子科技大学软件学院
服务端构件技术 • 服务端构件模型 • 用于中间层应用服务器,支持分布式商业对象的开发 • 商业对象是对商业逻辑的封装,由商业对象构成的应用具有良好的可重用性与可扩展性。 西安电子科技大学软件学院
服务端构件技术 • 随着实际商业系统的变化,可以重新组装、修改、甚至删除商业对象,而不必重新重写整个应用系统 • 组件化软件系统的特点。 西安电子科技大学软件学院
服务端构件技术 • 除了以组件方式提供系统的可重用性与可扩展性之外,服务端构件模型还为商业对象提供分布式特性。因而商业对象也称为分布式商业对象。 西安电子科技大学软件学院
CTM技术 • CTM(Component Transaction Monitor)技术是EJB使用的又一种构件技术 • CTM是一个应用服务器,它为分布式商业对象提供服务框架 • CTM服务框架支持大量的系统级服务 • 如事务(Transaction)管理 西安电子科技大学软件学院
TP Monitor • CTM是两种技术的组合,其中之一就是TP(Transaction Processing)Monitor: • TP Monitor类似于操作系统,支持某种语言书写的应用在其之上运行。 • TP Monitor自动管理应用的运行时环境,并支持应用所需的事务管理与资源管理 西安电子科技大学软件学院
ORB • CTM的另一种技术是ORB技术 • ORB支持客户程序与分布式对象之间的通信 • 分布式对象被部署到ORB上,ORB支持客户程序方便的跨越网络查找到分布式对象。 西安电子科技大学软件学院
EJB构件技术 • EJB所采用的分布式对象技术、服务端构件技术、以及CTM技术支持我们开发由服务框架自动管理的分布式的商业对象。 西安电子科技大学软件学院
EJB的特点 西安电子科技大学软件学院
服务框架 • EJB将实现商业对象所使用的服务框架的任务划分给了EJB应用服务器: • 服务框架支持大量的、由应用服务器提供的系统级服务。 西安电子科技大学软件学院
服务框架 • EJB应用服务器提供的服务框架使得应用开发者可以关注于应用商业逻辑的实现: • 大大提高了开发效率,缩短了应用的开发周期。 商业逻辑 代码 应用开发者 西安电子科技大学软件学院
平台独立性 • 使用EJB所开发的应用的另一个特点就是平台独立性: • 应用的平台独立性得益于EJB沿袭了Java技术的Write Once, Run Anywhere特性。 西安电子科技大学软件学院
平台独立性 • 平台独立性使得构成EJB应用的商业对象可以移植到任何实现EJB规范的应用服务器上。 西安电子科技大学软件学院
封装特性 • EJB还提供对服务的封装特性(Wrap and Embrace): • 封装特性使得EJB应用可以使用现有的基础性服务(如目录服务) • EJB通过定义一系列标准的服务API来封装现有的基础性服务,EJB应用通过这些标准的API来使用服务。 EJB应用 现有 基础性 服务 西安电子科技大学软件学院
封装特性 • JNDI就是一个标准服务API的例子: • JNDI支持访问现有的命名目录服务(如COS) • 通过使用JNDI,EJB应用服务器厂商可以将COS服务集成到其产品中,而不需去重新实现COS。 西安电子科技大学软件学院
封装特性 • EJB的封装特性可以使应用服务器厂商节省IT投资: • 厂商可以使用现有的基础性服务,而不必去从头实现这些服务。 西安电子科技大学软件学院
可定制化 • EJB的另一特性就是EJB应用可以在不修改源代码的基础上进行定制化: • EJB应用的定制是指修改EJB应用的运行时配置以满足特定用户的需求 西安电子科技大学软件学院
可定制化 • EJB应用可以通过部署描述符(DD)进行定制化。 • 部署描述符 • XML格式的文件 • 用以描述EJB应用的运行时配置 • 例如利用DD可以改变EJB应用的事务管理特性 西安电子科技大学软件学院
可定制化 • 厂商可以进行自己的扩充,以支持更强的可定制特性 • 很多厂商除了J2EE标准的DD(ejb-jar.xml)外,还会有一个厂商特定的辅助部署描述符,其中描述了厂商自己扩充的运行时可定制特性: • Websphere:ibm-ejb-ext.xmi,Map.mapxmi等 • WebLogic:weblogic-ejb-jar.xml 厂商可以 提供自己的扩充 西安电子科技大学软件学院
协议无关性 • 协议无关性 • 支持客户程序使用任何通信协议访问EJB应用 • 例如,客户程序可以使用IIOP、t3等协议与EJB应用通信 • 协议无关性使得EJB支持多种类型的客户端 • 不同类型的客户端使用不同的通信协议与EJB应用通信 西安电子科技大学软件学院
通用性 • 通用性是EJB的又一特性 • 支持不同规模的应用系统 • 可以在任何时间增加客户系统,而不需修改核心的应用系统 西安电子科技大学软件学院
负载均衡机制 通用性 • 通用性导致系统资源的可伸缩性 • 系统资源在商业对象处理客户请求时要使用到,如处理器(CPU) • 随着系统规模的增大,商业对象可能要处理来自大量的客户请求 • 需要增加冗余的系统资源,如提供多个处理器(服务器) • 需要负载均衡机制,将商业对象对系统资源的请求分发到不同的服务器上 • 例如Websphere的克隆机制 西安电子科技大学软件学院
集成遗产系统 西安电子科技大学软件学院
遗产系统 • 遗产系统(Legacy System) • 遗产系统是“一个已经运行了很长时间的,对我们的机构来说是很重要的,但是我们不知道如何处理的大的软件系统”。 • 平台相关的,不能在网络环境中直接访问 • 遗产系统不能直接访问存储在各种数据库管理系统中的数据 • 遗产系统所完成的是关键业务,不能简单丢弃 • 集成遗产系统 • 使遗产系统称为可以在网络中访问的平台无关系统 • 支持遗产系统访问各种数据库管理系统 EJB应用 遗产系统 数据库 西安电子科技大学软件学院
By Connectors • 使用Connector集成遗产系统 • Connector是运行在EJB应用服务器上的软件,支持EJB连接到现有的遗产系统 • Connector一般又遗产系统的开发厂商提供 • 一般遵循J2EE的JTA规范 • 达到可以在网络上访问遗产系统的目的 EJB应用 Connector 遗产系统 数据库 西安电子科技大学软件学院
By CORBA • 使用CORBA对象集成遗产系统 • EJB构件可以访问CORBA对象 • 将遗产系统包装成CORBA对象供EJB应用访问 • 达到可以在网络上访问遗产系统的目的 EJB应用 CORBA对象 遗产系统 数据库 西安电子科技大学软件学院
By JDBC • 遗产系统可以利用JDBC访问不同的数据库管理系统 • JDBC提供提供统一的数据库访问方法 • 不一定适用所有遗产系统 EJB应用 JDBC 遗产 系统 数据库 西安电子科技大学软件学院
集成遗产系统 • 通过Connector、CORBA对象、JDBC方式,达到了在EJB应用中集成遗产系统的目的。 EJB应用 遗产 系统 数据库 西安电子科技大学软件学院
EJB vs. JavaBeans 西安电子科技大学软件学院
EJB与JavaBeans • 构件模型定义了开发可重用构件的方式。 • EJB与JavaBeans都是基于Java语言的构件模型。 • 开发应用时,可以选择EJB模型,也可以选择JavaBeans模型。 西安电子科技大学软件学院
EJB JavaBeans EJB vs. JavaBeans • EJB用于服务端应用开发 • JavaBeans用于客户端应用开发 • 也可以使用JavaBeans进行服务端应用开发,但JavaBeans模型没有提供服务框架,但应用需要使用系统级服务(如事务管理)时,不适合。 西安电子科技大学软件学院
EJB JavaBeans EJB vs. JavaBeans • EJB构件是可部署的 • EJB构件可以作为独立的单元被部署到EJB应用服务器上,是应用构件(application components)。 • JavaBeans构件是不可部署的 • JavaBeans构件是开发构件,不能被部署为独立的单元。 西安电子科技大学软件学院
EJB JavaBeans EJB vs. JavaBeans • EJB构件是部署可定制的 • 使用部署描述符可以在部署EJB时对其运行时配置进行定制 • JavaBeans构件在部署时不能进行定制 • JavaBeans构件的定制仅发生在开发阶段 • 只能利用开发工具创建并组装JavaBeans构件,部署时不能定制 西安电子科技大学软件学院
EJB JavaBeans EJB vs. JavaBeans • EJB构件是分布式对象 • 可以被客户应用或者其它EJB构件进行远程访问 • JavaBeans构件不是分布式对象 • JavaBeans构件只能在其构成的应用中使用 • 不能提供远程访问能力 西安电子科技大学软件学院
EJB JavaBeans EJB vs. JavaBeans • EJB构件对终端用户不可见 • 运行在服务端,没有人机交互界面 • 部分JavaBeans构件对终端用户可见 • 如GUI应用中使用的按钮构件 西安电子科技大学软件学院
EJB JavaBeans EJB vs. JavaBeans 西安电子科技大学软件学院
JavaBeans——客户端构件模型 EJB——服务端构件模型 EJB vs. JavaBeans • 根据应用的具体需求,结合EJB和JavaBeans的特点,灵活的选择EJB或者JavaBeans。 西安电子科技大学软件学院