技术开发 频道

Java EE启示录

  【3】EJB容器

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

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

  【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,.net remoting,说白了都一样的,就是序列化,网络传输,反序列化。

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

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

  (5)JMS

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

  (6)JTA

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

0
相关文章