百科狗-知识改变命运!
--

some/ip、http、ftp、dns、rpc区别

一语惊醒梦中人11个月前 (12-23)阅读数 8#综合百科
文章标签协议分布式

他们区别如下:

1、含义不同。some/ip是一种基于UDP协议的可靠传输层协议;http是超文本传输协议,是一种基于TCP协议的应用层协议;ftp是文件传输协议,是网络上两台计算机之间进行文件传输时所使用的一种通信协议;dns是域名系统,是一种将域名解析为IP地址的系统;rpc是一种远程过程调用协议。

2、作用不同。some/ip是为了解决可靠的传输问题而设计的协议;http是为了在网络上进行浏览和下载而设计的协议;ftp是为了实现两台计算机之间的文件传输而设计的协议;dns是为了解决网络IP地址和域名之间的转换而设计的协议;rpc是为了实现分布式系统中的远程服务调用而设计的协议。

RPC是什么?

Web服务(Web Services)在很多人眼里还是个十分神秘的概念,究其根源,我想主要是由于Web服务被宣传得很多,但实际应用却鲜见,给人一种很复杂和难以理解的感觉。另外,Web服务是基于XML的,不少人对XML本身也缺乏理解,虽然他们可能每天都在写XML格式的配置文件。

提到Web服务的起源就一定要先说一说SOA(面向服务的体系结构),和很多具有划时代意义的软件技术一样,SOA的出现根本上也是为了解决软件危机问题。做过项目的人都有过这种感受,随着项目推进,模块之间关系越来越紧密,任何一个小的修改都可能引起整个系统的不稳定,而客户需求偏偏总是在改变,结果是项目以差不多失败的结果告终。

从(分布式)软件发展的趋势来看,C/S->B/S->SOA,模块之间的耦合度是由紧密到松散的,松散的耦合有利于修改。我们常说的各种设计模式,其中大部分不也是为了降低类之间的耦合度吗。

这里我引用一下IBM网站上对SOA的定义:面向服务的体系结构(service-oriented architecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。(全文)

说得通俗一点就是,系统中分为三种角色:服务提供者、服务使用者和注册中心,提供者发布服务到注册中心,使用者通过注册中心发现所需服务,然后与该服务的提供者绑定,并调用服务。

那么Web服务和SOA是什么关系呢,可以这样说,Web服务是SOA的一种实现,有点像Tomcat和JSP/Servlet规范的关系。SOA是一个比较虚的概念,例如它只提出定义一些接口和协议,那么这些东西具体应该怎样定义呢,Web服务就将它们具体化了:Web服务使用的协议都是基于XML的;SOA只说应该有三种角色,而Web服务里这三种角色都有具体的实现方式。看到这里你应该会问,那么SOA还有哪些实现呢?CORBA、DCOM和J2EE都可以算是,但我认为它们不能算很纯粹,至少它们并不都具有中立的协议。

现在该用一个具体的例子来说明一下Web服务了,假设我们的系统中需要一项功能是查询当地的天气情况(世界时间、货币汇率等等,都一样),显然我们不会自己做一个从气象部门数据库中查找数据的程序,这需要很多手续也没有必要,更要命的是,这样做会增加我们与气象部门的耦合度。试想某一天气象部门的数据库结构改变了,我们将不得不修改自己的代码,如果他们忘记通知我们这一改变,想象一下客户会看到什么?

为了利用Web服务,我们从某一注册中心查找和天气有关的服务,在结果中也许我们会选择收费较低,或者收费稍高但更稳定和准确的服务。从注册中心我们能够得到所选服务的完整描述,其中包含了各种数据类型和调用方式,利用这些信息,可以使用工具生成这些必要的类,以及客户端Stub,利用这个Stub就可以调用远程的Web服务了。在我们的例子中,调用后服务提供者会返回一个含有结果的消息,在我们的系统中可以从这个消息里得到所要的结果,并显示给客户。这样就形成一个完整的Web服务调用。这种调用方式被称为静态调用,因为在Stub里服务提供者的地址(被称为调用端点endpoint)是写定的,还有另外一种方式被称为动态调用,以后会讲到。

那么Web服务和以前的RPC(远程过程调用)有什么分别呢?RPC通常要求调用者和被调用者是同构的,即使用同样的语言编写,而Web服务没有这个要求(诀窍在于使用了XML封装消息),这就大大增加了灵活程度;另外,Web服务的调用除这种类似RPC的方式外,还可以是基于消息的方式,服务使用者可以只接收消息,或是只发送消息,在一些应用中这种方式十分有用。

内容总结一下就是:Web服务是SOA的实现,Web服务不是RPC。

RPC(Remote Procedure Call)是远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。

扩展资料:

具体应用操作方面

some/ip、http、ftp、dns、rpc区别

1、分布式操作系统的进程间通讯

进程间通讯是操作系统必须提供的基本设施之一,分布式操作系统必须提供分布于异构的结点机上进程间的通讯机制,RPC是实现消息传送模式的分布式进程间通讯的手段之一。

2、构造分布式计算的软件环境

由于分布式软件环境本身地理上的分布性,,它的各个组成成份之间存在大量的交互和通讯,R P C 是其基本的实现方法之一。ONC+和DCE两个流行的分式布计算软件环境都是使用RPC构造的,其它一些分布式软件环境也采用了RPC方式。

3、远程数据库服务

在分布式数据库系统中,数据库一般驻存在服务器上,客户机通过远程数据库服务功能访问数据库服务器,现有的远程数据库服务是使用RPC模式的。例如,Sybase和Oracle都提供了存储过程机制,系统与用户定义的存储过程存储在数据库服务器上,用户在客户端使用RPC模式调用存储过程。

百度百科-远程过程调用协议

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)