文档章节

servelet,webservice,RMI的区别

疯狂的兔子
 疯狂的兔子
发布于 2014/08/05 11:24
字数 697
阅读 111
收藏 5

最近项目中有提供或者调用别的接口,在纠结中到底是用servlet还是用webservice,所以上网查看了下他们以及RMI之间的区别,方便加深了解。

  首先比较下servlet和webservice下
  请求:   
  servlet:提供了请求/响应模式,是JAVA的一种规范,只能使用于java上,用来替代早期使用的难懂的CGI,是一种无状态的请求响应,客 户端访问一个服务器的url,只需要发送简单的httprequest即可。 规定了四个范围:pageContext、request、session、application。一定依赖于各种SERVLET容器,但 servlet只能接受一个简单的http请求;   
  WebService最早是微软提出了一种以XML为载体网络信息传输的规范,现在几乎所有的语言与平台都支持,带有状态机制,不依赖于 SERVLET容器,可以发送一个xml作为其请求内容,WebService通常是基于http的远程方法调用(RMI),号称是可以反回远程对象, 一般来说客户段可以象调用本地方法一样调用WebService的方法。  

  传输:   
  servlet使用http协议传输数据,如果你用Servlet返回XML,那个XML的描述框架就是你定的,必须告知使用者具体的说明,没有统一标准。   
  webservice使用固定的XML格式封装成soap消息,可以使用http作为底层数据传输,但并不局限于http协议,方法返回消息是有标准的。   
    
  返回结果:   
  servlet返回的是html页面;   
  webservice返回的可以是复杂对象甚至使用附件或者mutidata的二进制文件。   
    
  部署:   
  servlet需要遵守j2ee的Web   Application规范部署的应用服务器上,如tomcat,weblogic,websphere;   
  WebService则需要有WSDL文件来部署服务,或者使用UDDI注册。   
    
  优势:   
  WebService的跨平台特性是servlet不能比的,可以被各种语言调用;   
  servlet相对来说速度上的优势也是不可忽视的。

  

  接下来在看看RMI和webservice中的
 
  rmi的客户端和服务端都必须是java,webservice没有这个限制
  webservice是在http协议上传递xml文本文件,与语言和平台无关
  rmi是在tcp协议上传递可序列化的java对象,只能用在java虚拟机上,绑定语言
  RMI是EJB远程调用的基础,仅用RMI技术就可以实现远程调用,使用EJB是为了实现组件,事物,资源池,集群等功能。
  WebService是通过XML来传输数据,可用http等协议因此可在异构系统间传递,并且可以穿过防火墙,可在公网上远程调用


© 著作权归作者所有

共有 人打赏支持
疯狂的兔子
粉丝 34
博文 178
码字总数 101541
作品 0
北京
后端工程师
私信 提问
Java远程调用系列(一)——概览篇

首先,来几个基本问题 远程调用是什么(概念)? 内涵 定义: 本质上来讲, 通俗来讲, 外延(相关的易混概念) Java中的远程 VS 客户端和服务端的交互调用 远程通信 VS 远程调用 VS 服务和服...

u011500356
2017/10/24
0
0
http接口、api接口、RPC接口、RMI、webservice、Restful等概念

在这之前一定要好好理解一下接口的含义,我觉得在这一类中接口理解成规则很恰当。 http接口:基于HTTP协议的开发接口.这个并不能排除没有使用其他的协议。 api接口:API(Application Program...

一一叶
2015/08/31
5K
1
远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)

RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式...

edeis2011
2016/03/25
94
0
远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)

RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式...

八戒_o
2016/02/16
200
0
对webservice的一些简单理解

以前的理解:给一个url然后返回xml信息,类似那种天气预报,如果是这样的话那和http又有什么区别,实际上是这样的,所谓的webservice是跨平台的远程方法调用(java中有最原始的RMI),发布webservic...

whaon
2012/11/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
26分钟前
1
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
29分钟前
2
0
mac 下 mysql 8.0.13 安装并记录遇到的问题 以便以后查看

安装 官网mysql 下载地址 安装过程 省去 安装好之后 下载navicat 错误1 链接 遇到 mysql 2003 - Can't connect to MySQL server 错误, 解决方案 重启mysql 服务 #错误2 ERROR 1045: Acces...

杭州-IT攻城狮
昨天
5
0

中国龙-扬科
昨天
2
0
[Spring4.x]基于spring4.x纯注解的Web工程搭建

在前文中已经说明了如何基于 Spring4.x+ 版本开发纯注解的非web项目,链接如下: https://my.oschina.net/morpheusWB/blog/2985600 本文则主要说明,如何在Web项目中,"基于spring纯注解方式...

morpheusWB
昨天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部