`
mypengkun
  • 浏览: 14042 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java EE启示录(二)

阅读更多

 (2)EJB(Enterprise JavaBean)

  之前说过,分布式应用是Java EE一个基础的需求,额……那在不同机器上的“分布式”的应用到底会以一个什么样的形态出现呢?答案就是:EJB。EJB属于业务逻辑层上的东东。

  所谓Bean,其实是“组件”的意思。EJB可以让你像搭积木一样,通过本地/分布式调用组装不同应用到大型应用中,使你能集中精力来处理企业的业务逻辑,而像事务、网络、安全等等这些底层服务则统统留给EJB服务器开发商来解决。

  利用基于组件的开发,可以把代码重用上升到一个新的高度。利用面向对象开发,重用的是类,而基于组件时,重用的则是更大的功能块。

  【1】EJB vs Java Bean

  我个人认为,Java Bean相当于是数据存储类(不涉及具体业务逻辑),专门用来存数数据,提供getter,setter方法,并且在JVM上可直接运行。EJB则相当于一个功能模块,提供业务逻辑的服务,而运行时,则需要EJB容器的帮助。

  EJB是业务逻辑层最重要的技术哦!

Java EE启示录(图五)

  (3)Container(容器)

  Container这个概念经常在Java EE中出现,所谓Container,在Java EE 5 Tutorial中有这样一段解释:“Containers are the interface between a component and the low-level platform-specific functionality that supports the component.”,而Container的作用,我个人的认为是:为“应用程序”提供一个环境,使其可以不必须关注某些问题,如:系统环境变量,事务,生命周期…….通俗地说,Container就像“秘书”,帮“应用程序”管理着各种杂乱的问题,为其提供运行时支持。

  其中,Java EE里有两个很重要的容器:Web容器和EJB容器

  【1】Web容器

  Web容器是用于托管“Web应用程序”的J2EE容器,主要负责管理“Servlet”和“JSP”运行。

Java EE启示录(图六)

  【2】Servlet容器

  其实,上图中的Servlet指的就是Servlet容器。而Servlet的设计初衷,实际是基于线程池的更好的线程容器,见下图:

Java EE启示录(图七)

  【3】EJB容器

  EJB容器主要负责管理“EJB”的运行。

Java EE启示录(图八)

  而EJB的设计实际上是基于对象池的思想,你可以认为EJB=对象池+远程对象池。见下图:

Java EE启示录(图九)

  【4】Servlet与EJB

  其实,根据Servlet和EJB的设计初衷,我们已经可以看出Java EE对两者角色的定义了。线程的本质决定了Servlet只适合一些比较简单的轻量级应用;一旦问题复杂了,最好的就是使用EJB。

  (4)RMI

  RMI全称:Java Remote Method Invocation,就是利用Java对象序列化的机制,实现远程类对象的实例化以及调用的方法。

  RMI在Java EE中的主要是负责解决通信问题,特别是不同的EJB容器之间的通信。大家知道,在分布式应用中,各个功能模块(EJB)之间通信需要有统一的RPC协议,否则没法通信,而RMI就是负责这方面的工作。

  【1】RMI 与 CORB

  可以说,RMI就是CORBA的Java版实现。

  【2】再谈“远程调用”

  现在主流的远程调用方式,不管是com/com+,soap,webservice,rmi,.netremoting,说白了都一样的,就是序列化,网络传输,反序列化。

  序列化方式:同种runtime的,可以native的二进制序列化,序列化的效率高。文本的序列化(xml/json/自定义格式)的方式,可以跨平台和语言,一般基于中间类型。但此序列化方式的效率低,数据量也偏大。

  网络传输:则可以使socket/http或是自定义协议的。 socket数据冗余最小,效率最高。RMI其实是socket上的自定义协议。 http要走http的报文,文本的方式最合适,实现最简单,开发和部署方便。

Java EE启示录(图十)

  (5)JMS

  JMS:Java Message Service。JMS提供一种消息机制,主要作用是提供异步通信的支持,是Java EE的重要基础模块。值得注意,异步通信,一般都采用消息机制,这种情况在Windows中最常见。

  (6)JTA

  JTA:Java Transaction API,主要提供事务服务和分布式事务管理功能,保证分布式事务的一致性,是Java EE的重要的基础模块。

分享到:
评论

相关推荐

    Java夜未眠.程序员的心声

    程序员的心声》不仅是一部技术指南,更是一本关于程序员生活和精神世界的启示录。无论你是初入职场的新手,还是经验丰富的老手,都能从中找到共鸣,获得成长。通过阅读这本书,你不仅可以提升自己的Java技术,还能对...

    深入分析Java Web技术内幕(修订版)

    3. **JavaServer Faces (JSF)**:JSF是Java EE的一种UI组件模型,提供了MVC架构。它简化了Web应用程序的用户界面开发,通过组件库和声明式事件处理来实现。JSF生命周期包含多个阶段,如恢复视图、应用请求值、验证、...

    2022年EJBJAVA程序员JAVA工程师面试必看.doc

    **EJB(Enterprise JavaBean)**是Java 2 Enterprise ...虽然随着技术的发展,如Spring框架的崛起,EJB的使用逐渐减少,但它在Java EE历史上的地位不容忽视,其设计理念和技术规范对现代企业级应用开发仍有启示作用。

    J2ME在移动设备上的应用.pdf

    - Java EE(Enterprise Edition):面向企业级应用的服务版。 - Java ME(Micro Edition):面向嵌入式系统和移动设备的微型版。 - **J2ME的优势:** - 跨平台特性:能够在多种不同的移动设备上运行。 - 内存...

    jsp2.0技术手册

    JSP(JavaServer Pages)2.0是Java EE平台中的一个关键组件,用于开发动态网页应用。相较于JSP 1.2,JSP 2.0引入了许多重要的改进和增强,旨在提高开发效率,简化代码结构,并增强了可维护性。JSP 2.0的核心目标是...

    自定义类似struts的mvc框架

    Struts作为Java EE领域中著名的MVC框架,其设计思想和实现方式对于自定义框架的构建具有重要的参考价值。 首先,我们要理解MVC(Model-View-Controller)架构模式。Model代表业务逻辑,处理数据;View负责展示数据...

    e拍在线拍卖系统项目案例3

    【标题】"e拍在线拍卖系统项目案例3"是一...通过学习和分析"e拍在线拍卖系统项目案例3",开发者可以提升Java Web开发技能,了解实际项目中的问题解决策略,对于想要从事Java EE开发的人来说,这是一个宝贵的实践案例。

    jsp网页教程帮助学习jsp

    JSP作为Java EE平台的一部分,是构建Web应用程序的常用方式,尤其适合于创建数据驱动的、交互式的Web应用。 ### JSP基本概念 1. **JSP页面结构**:一个JSP页面由静态内容(HTML、CSS、JavaScript)和动态内容...

    Strut2 in action [英文版]

    - **定义**:Struts2可以轻松地与其他Java EE框架如Spring和Hibernate集成,利用它们的优势提高应用的质量。 - **Spring集成**:Spring可以用来管理Struts2动作和其他组件的依赖注入。 - **Hibernate/JPA集成**:...

    Springboot+vue的学生心理咨询评估管理系统(有报告),Javaee项目,springboot vue前后端分离项目

    首先,SpringBoot作为Java EE开发的主流框架,以其简洁的配置、快速的启动和内置的Tomcat服务器等特性,大大简化了后台开发流程。在本项目中,SpringBoot负责处理业务逻辑、数据存储以及API接口的提供。开发者可以...

    最新软件工程专业毕业设计题目

    - **EJB(Enterprise JavaBeans)3.0:** 一种Java EE技术规范,用于构建企业级应用组件。 - **分布式对象技术:** 允许在不同的计算机之间共享对象实例。 - **远程方法调用(RMI):** 在网络上实现对象之间的远程...

Global site tag (gtag.js) - Google Analytics