Posted on 2013-10-30 15:54
为自己代言 阅读(1199)
评论(0) 编辑 收藏
SOCKET使用时可以指定协议TCP,UDP等;
RIM使用JRMP协议,JRMP又是基于TCP/IP;
RPC底层使用SOCKET接口,定义了一套远程调用方法;
HTTP是建立在TCP上,不是使用SOCKET接口,需要连接方主动发数据给服务器,服务器无法主动发数据个客户端;
可以用socket实现HTTP;
其实符合HTTP规范的就是HTTP协议,不管用什么技术。
hessian是一套用于建立web service的简单的二进制协议,用于替代基于XML的web service,是建立在rpc上的,hessian有一套自己的序列化格式将数据序列化成流,然后通过http协议发送给服务器,看源码发现其实是使用
HttpURLConnection和servlet建立连接,然后发送流
1. RPC:RPC本身没有规范,但基本的工作机制是一样的,即:serialization/deserialization+stub+skeleton
宽泛的讲,只要能实现远程调用,都是RPC,如:rmi .net-remoting ws/soap/rest hessian xmlrpc thrift potocolbuffer
2. RMI是一种PRC.java的RMI就是java平台上的RPC技术方案。
3. JMS是java平台上的消息规范。一般jms消息不是一个xml,而是一个java对象,很明显,jms没考虑异构系统,说白 了,JMS就没考虑非java的东西。但是好在现在大多数的jms provider(就是JMS的各种实现产品)都解决了异构问题。
4. soap专注于远程服务调用,jms专注于信息交换。
5. 大多数情况下soap是两系统间的直接交互(Consumer <--> Producer),而大多数情况下jms是三方系统交互(Consumer <- Broker -> Producer)。当然,JMS也可以实现request-response模式的通信,只要Consumer或Producer其中一方兼任broker即可