Java远程通讯技术选型及原理剖析
需积分: 0 69 浏览量
更新于2024-09-15
收藏 46KB DOC 举报
Java远程通讯可选技术及原理
Java远程通讯是一个复杂的领域,涉及到多种技术和原理。在Java领域中有很多可实现远程通讯的技术,例如RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等。这些技术之间的关系是什么样的?它们背后的原理是什么?
首先,需要了解网络机器间的通讯的基本原理。在底层层面上,网络通信需要将流从一台计算机传输到另外一台计算机,基于传输协议和网络IO来实现。传输协议有多种,例如http、tcp、udp等等,这些协议都是基于Socket概念上为某类应用场景而扩展出的传输协议。网络IO也有多种方式,例如bio、nio、aio等等。
在应用级别上,远程服务通讯需要达到的目标是在一台计算机发起请求,另外一台机器在接收到请求后进行相应的处理并将结果返回给请求端。为了实现这个目标,需要将请求转换成流,通过传输协议传输至远端,远端计算机在接收到请求的流后进行处理,处理完毕后将结果转化为流,并通过传输协议返回给调用端。
为了避免直接操作底层的东西,业界推出了很多基于此原理之上的应用级的协议,例如RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等。这些协议提供了一种更加易用的标准传输格式,网络通信机制的实现,就是替你完成了将传输格式转化为流,通过某种传输协议传输至远端计算机,远端计算机在接收到流后转化为传输格式,并进行存储或以某种方式通知远端计算机。
学习应用级的远程通信协议时,需要带着以下几个问题进行学习:
* 传输的标准格式是什么?
* 怎么样将请求转化为传输的流?
* 怎么接收和处理流?
* 传输协议是什么?
RMI(Remote Method Invocation)是一种Java远程通讯技术,允许Java对象之间进行远程方法调用。RMI使用JRMP(Java Remote Method Protocol)作为传输协议,将请求转换成流,并通过JRMP传输至远端计算机。
MINA(Multipurpose Infrastructure for Network Applications)是一种基于Java的网络应用框架,提供了一个灵活的网络IO模型,支持多种传输协议,例如TCP、UDP、HTTP等等。
ESB(Enterprise Service Bus)是一种企业服务总线,提供了一个集成多种服务的平台,支持多种传输协议,例如SOAP、HTTP等等。
Burlap是一种轻量级的远程通讯协议,使用XML作为传输格式,提供了一个简单易用的远程通讯机制。
Hessian是一种基于二进制的远程通讯协议,使用二进制数据作为传输格式,提供了一个高效的远程通讯机制。
SOAP(Simple Object Access Protocol)是一种基于XML的远程通讯协议,使用XML作为传输格式,提供了一个平台无关的远程通讯机制。
EJB(Enterprise JavaBeans)是一种JavaEE规范,提供了一个企业级的应用框架,支持多种远程通讯协议,例如RMI、SOAP等等。
JMS(Java Message Service)是一种Java消息服务,提供了一个异步的远程通讯机制,支持多种传输协议,例如TCP、UDP等等。
Java远程通讯可选技术及原理是一个复杂的领域,需要了解多种技术和原理。只有了解这些技术和原理,才能更好地实现分布式服务框架。
2013-05-09 上传
2023-07-03 上传
2019-04-21 上传
2012-02-25 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
fany9639
- 粉丝: 0
- 资源: 10
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建