当前位置:  开发笔记 > 编程语言 > 正文

rmi vs servlets vs socket

如何解决《rmivsservletsvssocket》经验,为你挑选了2个好方法。

socket编程,rmi和Servlets之间有什么区别.什么时候用?



1> Stephen C..:

Socket API是Java应用程序与网络交互的低级(传输级)抽象,并通过远程客户端和服务进行扩展.套接字和相关API支持可靠的字节流和不可靠的消息传递服务.它们通常用于TCP/IP和UDP/IP,但其他网络协议栈可以(至少在理论上)得到支持.

RMI是用于在Java应用程序之间实现应用程序级网络的框架和协议系列.它将网络交互建模为对生活在其他应用程序中的对象进行的Java方法调用.此模型需要一种机制(通常是名称服务器),允许一个应用程序"发布"对象,以便另一个应用程序可以引用它们.这(以及RMI端口通常默认被阻止的事实)意味着在设置基于RMI的应用程序时需要进行大量的配置工作.

Servlet是API的集合,主要用于实现HTTP通信的服务器端; 即用于在Java中构建Web服务器.它们(或者更确切地说是它们运行的​​Web容器)负责处理HTTP协议的细节,因此程序员(理论上)只需要处理"应用程序"问题.

实际上,servlet开发人员和/或部署人员必须处理其他事情,例如将URL映射到servlet到对象,安全性和身份验证.此外,Servlet只处理HTTP交互的服务器端......客户端必须由不同的API处理.(您也可以认为Servlet本身做得不够,可以通过构建在Servlet之上的Web应用程序框架的扩散来证明.)

简单来说:

套接字用于低级网络通信

RMI适用于高级Java-to-Java分布式计算

Servlet用于实现网站和Web服务



2> James Anders..:

    套接字 - 很少直接与TCP/IP接口的简单调用.非常简单,但你要掌握自己的缓冲区处理,并处理自己不完整的响应和超时.未提供身份验证或安全性.

    rmi - 处理上述所有内容,<个人意见>它是污染java标准的最糟糕的API之一,编程相当简单,处理基本的网络错误,身份验证和安全问题.难以配置和部署.

    Servlets - 可爱的简单API,为您处理所有网络问题,通过插件进行安全性和身份验证.没有部署问题,配置简单.


证明你的意见
这是我的观点 - 我知道有些人只是喜欢RMI,但我发现涉及太多的类和接口,它是一个PITA来调试,API鼓励编码风格,通过网络多个方法调用,在部署时死亡在现实生活中的网络.所有这些都可以与之共存,但是,部署问题只是一个显示阻碍.客户端和服务器类需要完全匹配,一旦超过100台客户端计算机就无法管理.
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有