12.3.4. 对 EJB 的远程访问

12.3.4.1. 关于远程方法访问

JBoss Remoting 是提供对 EJB、JMX MBean 和其他类似服务的远程访问的框架。它以下列传输类型运行,带有或不带有 SSL:

支持的传输类型

  • Socket / Secure Socket
  • RMI / RMI over SSL
  • HTTP / HTTPS
  • Servlet / Secure Servlet
  • Bisocket / Secure Bisocket
JBoss Remoting 也支持通过多点传送或 JNDI 的自动发现。
它被 JBoss EAP 里的多个子系统使用,它让你设计、实施和部署客户可以通过不同的传输机制来远程调用的服务。它也允许你访问 JBoss EAP 里现有的服务。
数据编码

Remoting 系统也提供数据编码(Data Marshalling)和解码(Unmarshalling)服务。数据编码指的是在网络间和平台边界安全移动数据的能力,这样独立的系统就可以在上面执行任务。然后这个任务被送回原来的系统,就像是在本地处理的一样。

架构概述

当你设计一个使用 Remoting 的客户应用程序时,通过配置它使用特定的资源定位器 InvokerLocator(它是一个 URL 类型格式的简单 String 对象),你可以指引应用程序和服务器通讯。服务器侦听作为 remoting 子系统的一部分配置的 connector 上的远程资源的请求 。connector 将请求传给配置好的 ServerInvocationHandler。每个 ServerInvocationHandler 都实现了一个 invoke(InvocationRequest) 方法,它知道如何处理这个请求。

JBoss Remoting 框架包含三个层次,它们在客户和服务器端彼此镜像。

JBoss Remoting 框架层次

  • 用户和 outer 层交互。在客户端,outer 层是 Client 类,它发送调用请求。在服务器端,它是 InvocationHandler,由用户实现并接收调用请求。
  • 传输是由调用层控制的。
  • 最底层包含 mashaller 和 unmashaller,它们将 mats 数据转换为线格式(Wire Format)。