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)。