2019独角兽企业重金招聘Python工程师标准>>>

今天我看到之前收藏的一篇文章,主要讲的分布式的一些东西,现在来回顾一下一些东西的意思,一下都是我自己的理解,如果有不对的地方请尽管提出,哈哈。本文主要讲一些名词。我之前很容易混淆的,我相信现在也很多人不知道其中的区别

1、SOA(本文不讲一些官方定义)

全拼Service Oriented Architecture 中文意思就是面向服务构架是一种模型,说白了是一种思想。为什么会出现这种思想呢?其实就是人们的需求越来越大,流量越来越大,所以系统也是越来越大。举一个列子,公司A以前有一个类似与淘宝的电商项目(B2C)A,后面随着公司业务扩大,要做一个B2B项目B以及项目C。项目A,B,C都是需要支付的。那如果常规就是把项目A的支付代码放到B,C上,以后如果还有项目就继续这么做。但这样太没有效率了。所以就产生了分布式,SOA等一些名称。商量之后的做法就是讲支付独立出来成为一个新的项目,这里我们叫D系统,A,B,C项目需要支付的时候直接调用D项目的支付接口。这样一来,以后不管多少项目,想要支付,只要有一个支付项目就行,直接调用接口。我不知道这样说大家能不能理解SOA这种思想产生的原因。

推荐链接http://blog.csdn.net/luohuacanyue/article/details/12521699

2、RMI

SOA思想提出以后,就有很多基于在这个模型上的产物,很多适用于分布式的产物,同事也是越来越庞大系统的产物。Java RMI (Remote Method Invocation 远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力。而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案,所以如果不是java的系统就不能使用RMI,这也是其缺点之一。RMI全部的宗旨就是尽可能简化远程接口对象的使用,相当于在服务器端暴露服务,通过bind或者rebind方法注册到RMIRegistry中,注册的信息中包含url,以及相应的类。客户端在在注册中心根据url得到远程对象(stub,存根),然后调用stub远程调用方法,底层的一些stub怎么连接服务器,怎么获取结果返回,下面的参考链接都应该有讲到。

参考文章:http://www.jianshu.com/p/2c78554a3f36

http://blog.csdn.net/guyuealian/article/details/51992182

3、RPC

了解上面的RMI,它的主要的流程就是Client<-->stub<-->[NETWORK]<-->skeleton<-->Server,还有一个比较重要的概念就是RMIRegistry
,其实大家网上去查RPC的时候流程其实都差不多,可能叫法和底层东西有点不一样,其实其实现所遵循的模型还是类似的。主要的区别的话是RMI是只适用于java的,而RPC任何语言都可以;第二点就是他们两者的调用方式不一样,最终的目标还是一致

其与RMI大致的区别

1)RPC 跨语言,而 RMI只支持Java。

(2)RMI 调用远程对象方法,允许方法返回 Java 对象以及基本数据类型,而RPC 不支持对象的概念,传送到 RPC

服务的消息由外部数据表示 (External Data Representation, XDR) 语言表示,这种语言抽象了字节序类和数据类型结

构之间的差异。只有由 XDR 定义的数据类型才能被传递, 可以说 RMI 是面向对象方式的 Java RPC 。

(3)在方法调用上,RMI中,远程接口使每个远程方法都具有方法签名(url)。如果一个方法在服务器上执行,但是没有相

匹配的签名被添加到这个远程接口上,那么这个新方法就不能被RMI客户方所调用。

在RPC中,当一个请求到达RPC服务器时,这个请求就包含了一个参数集和一个文本值,通常形成“classname.methodname”的形式。这就向RPC服务器表明,被请求的方法在为 “classname”的类中,名

叫“methodname”。然后RPC服务器就去搜索与之相匹配的类和方法,并把它作为那种方法参数类型的输入。这里的

参数类型是与RPC请求中的类型是匹配的。一旦匹配成功,这个方法就被调用了,其结果被编码后返回客户方。说的直白一点就是rmi是自己写一个url,如果正确就获得相应的stub,而rpc的url是从注册中心去拿的,不会出现url不对的情况

http://blog.jobbole.com/92290/

4、soap

全称Simple Object Access Protocol简单对象访问协议,是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。关键词——协议,实现分布式,webservice的一种协议,一种解决方式。

参考文章:http://blog.csdn.net/zhangzeyuaaa/article/details/20041015

5、rest

比如有个url:http:www.test.com/user/1,这个地址既要表示删除id为1的用户、又要表示修改id为1的用户,还要表达获取id为1的用户,那么,就要用到http1.1的不同的请求方法:get、post、delete、put,

对于rest这个东西,其实本人一点也没有接触吧,一下两个网址,本人认为比较好,大伙可以去看一下,本人就rest就不多阐述了(怕误导大家,哈哈)

http://www.ruanyifeng.com/blog/2011/09/restful.html

http://www.jianshu.com/p/65ab865a5e9f

转载于:https://my.oschina.net/lsl1991/blog/1596264

SOA,RMI,RPC,SOAP,REST等名称的理解相关推荐

  1. 白话讲山寨SOA,少一些迷惑、多一些理解,你的程序架构SOA了吗?

    开场白: 我也在不断反省自己,不管我说得对错,总会有一大批人来打击我,原因很简单"我自傲.我自大".你其实什么人都可以得罪,但是千万不能得罪小人,小人会咬着你不放,例如会有一大堆无 ...

  2. SOA RPC SOAP REST

    web service顾名思义这是一种提供service的形式,而且只能通过http(web)来提供service(web service三要素:SOAP.WSDL(WebServicesDescri ...

  3. 咖啡馆的故事:FTP, RMI , XML-RPC, SOAP, REST一网打尽

    周末的咖啡馆有点奇怪,  一群人围着几个老头儿在聊天. "快说说,你们那个时候没有HTTP, 没有JavaScript,到底是怎么让这些机器上的程序进行'交谈'的?" ftp老头儿 ...

  4. 转 深入探讨SOAP、RPC和RMI

    [b] 这篇文章是从网上转下来的. 原文应该是写于2001年. 10年了, 技术也有了很多新的发展. 比如 java 中的 JMX 的广泛应用. 但底层的东西还是这些. 简单转过来, 让自己也想想分布 ...

  5. 【Java从0到架构师】分布式框架通信核心基础 - 序列化(JDK、Protobuf)、远程过程调用 RMI

    分布式框架通信核心基础 序列化 JDK 的序列化 JDK 序列化的一些细节 Protobuf 序列化 Protobuf 环境搭建与操作 Protobuf 原理分析 实际数据传输 序列化技术选型 远程过 ...

  6. restful soap_Web服务面试问题– SOAP,RESTful

    restful soap Welcome to the Web Services Interview Questions with detailed answers. Recently I have ...

  7. WebService:跟孔浩学习(契约优先、Schema、WSDL、SOAP、用户管理小系统)

    异构平台之间的交互 XML (DTDàSchema->Stax(XStream).SAX.Dom4J.PULL)    JAXB XStream和Jackson完成Json和java的转化 SO ...

  8. SOAP Web服务

    根据W3C定义,SOAP是什么 " SOAP是一种轻量级协议,旨在在分散的分布式环境中交换结构化信息. 它使用XML技术来定义和扩展消息传递框架,从而提供可以在各种基础协议之间交换的消息构造 ...

  9. 微服务与SOA以及服务间通讯协议

    说到微服务,就一定会想到微服务.分布式.集群.SOA.SOAP.restful.Http.RPC等相关概念,而这些概念都一些界限都非常的模式,很难理清楚确切的概念,本篇主要是介绍我对微服务中常遇到的一 ...

最新文章

  1. tcpdump抓取ipip报文
  2. 一行命令,瞬间从“马赛克”到高清影像
  3. Linux文件系统基础之inode和dentry
  4. 模拟CA机构制作CA机构证书
  5. 1.5编程基础之循环控制 23 药房管理
  6. 那个20多万“不可描述”照片的数据集,有人用它做了鉴黄模型 | Demo
  7. 静态/动态注冊广播的差别
  8. Android Studio 第一个JNI程序
  9. 面试官: MySQL 数据库的优化,你知道有哪些?
  10. MOSSE目标跟踪算法步骤
  11. 数学建模之向量自回归模型
  12. 简易个人所得税计算器
  13. 华为社招机考考什么_华为机考一般考什么
  14. 携程网移动端首页-学习与自我分析
  15. 如何在 ggplot2 中制作饼图(附示例)
  16. 深度学习利器之自动微分(2)
  17. TransUNet阅读笔记与训练尝试
  18. Linux磁盘分区初始化
  19. 法律人如何使用python_执业10年,我见过太多法律人掉进这个大坑!
  20. 协作通信关键技术(王辉)阅读心得

热门文章

  1. 谷雨钜献 | 用深度学习理解遥感图像,识别效率提升90倍,PaddlePaddle中科院遥感地球所...
  2. NVIDIA教你用TensorRT加速深度学习推理计算 | 量子位线下沙龙笔记
  3. 不要小看日本的AI公司
  4. 英语每日阅读---1、科学美国人60秒:如果觉得唱歌很难 那就吹口哨吧
  5. 解决:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错
  6. Javascript知识汇总------获取构造函数constructor名称和一些字符串处理方法
  7. struts2中的值栈对象ValueStack
  8. html中span不显示背景
  9. JavaScript-No.01 JavaScript实现封装、继承、多态
  10. WinDBG脚本入门