SOAP,RESTFull以及RPC的认识
a.一般的系统,开发都是针对数据库开发,不存在系统之间的交互,但是随着现实是有好多系统(好多DB,DB不开放),这些系统之间要进行交互,就像人一样要互相帮助。所以 可以通过一下的方式:
1.共享数据库DB(开发试图) ------------------------------------------------------- 比较简单,但是数据库压力大,最好不这样做
2.依靠FTP做文件共享进行通信------------------------------------------------------- 需要开发FTP服务器,走FTP协议
3.系统提供socket开发包进行Socket通信----------------------------------------------必须开发两端(A端发送,B端接收,如何可以同步进行,定时或者实时),必须 是同一语言
4.通过RPC远程调用------------------------------------------------------------------不同的语言,比较常用
5.提供WebServicet,通过SOAP协议进行通信------------------------------------------面向服务的架构(目前推崇的)
6.通过RestFull进行通讯--------------------------------------------------------------面向服务的架构(目前推崇的)
b.SOA架构
自从大学开始就一直学习计算机这个专业,一直到毕业工作,都是从事软件开发的工作,对于SOA的认识好像还是模模糊糊的,今天无事,也算普及一下计算机的一些基本理论 知识,所以说说最近自己的理解,当然了也参考的一些网上的介绍。
软件:对于开发软件来说,就是如同制作一个计算机处理器(有专用的,也有通用的),通用的一般比较好,因为我们可以DIY,但是这样就以一个问题,随着时间的变化,肯 能这个组件要升级,但是其他组件在DIY这个组件,也就是有依赖,不能你改了之后影响了使用你的人,尽量避免干扰,那如何实现?就是对外发布服务(就是发布一 个访问方式比如SOAP等),这样只要双方认可SOAP那么就可以随便更改组件了,这就是面向服务的思想。硬件就是通过接口(比如什么USEB接口,什么PCI总线等)
之间有联系:服务的自治,管制等,结合BPM,Rule,ESB,MQ Broker消息机制进行通信。
软件系统:
高可用高性能-----异步机制,消息机制,负载均衡机制,队列机制与调度机制(优先级)以及chain链机制
高安全 ----------基于网络传输 基于应用 比如加密压缩基于RBAC的权限控制机制
SOA:面向服务的一种架构:发布 组件 服务 定位 协议 消息(目的就是为了服务自治,采取异步措施,接触调用外部而依赖导致服务自治失败,本质就是降低组件间的耦合 性) 代理

消息的两种机制:
基于请求响应的比如HTTP
基于事件的EDA(观察者模式) 异构组件之间通信的松耦合 ----对象之间的松耦合 ,组件之间的松耦合 ,服务之间的松耦合 是不是都是一样
介绍一个例子:
用户下一个订单的过程。
通过门户网站下一个订单提交 -----后台系统(有许多的系统进行处理)----------门户网站系统
以上就是一个基于ESB,BPM,Rule,SOA,EDA机制的多种系统协作,采取异步处理机制(事件机制,队列机制),高可用高性能(多线程)高安全(权限机制)进行处理。
观察发现特想计算机的主板一样,主板上通过插口连接各个处理器(比如内存,显卡,网卡等),交互都是采取总线进行交互(什么地址总线,数据总线,指令总线),接口之间有接口控制器(再带适配转换)而ESB就类似于计算机上的总线,类似的网络上也有总线(也就是为了拓扑,什么总线结构,星行结构等),操作系统上面上的通道(信道)等。总之总线技术就是进行通信(双工单工等)的一机制。
=========================================================================================
SOA的好处:
1. 松耦合:由于服务自治,有一定封装边界,服务调用交互是通过发布接口。这意味着应用程序不感兴趣的服务如何被实现。
2.位置透明:服务的消费者不必关系服务位于什么地方。
3.可在异构平台间复用。可以将遗留系统包装成服务。
4.便于测试,能并行开发,较高可靠性和良好可伸缩性。
c.restfull与soap
都是SOA实现的一种技术,但是设计的理念有所不同。
restful基于HTPP的理念,而SOAP则基于RPC的理念
HTTP理念:访问的资源,访问的方式,传输的数据都在http的URI中体现
SOAP理念:基于HTTP,但是访问的资源,访问的方式,传输的数据都在报文中体现,想知道要解析xml
restful可以知道任何东西,而soap想知道必须解析xml的报文。
SOA目标就是松耦合,高可用(对于一个业务系统要达到这个要求就要面向抽象进行设计,之间的交互通过委托进行职责的调度进而形成一次服务,但是对于异构系统之 间达到这种目的就最好采取SOA,这样可以通过BPM进行服务的重用,ESB的总线通信交互)
总结:典型的基于 SOAP 的 Web 服务以操作为中心,每个操作接受 XML 文档作为输入,提供 XML 文档作为输出。在本质上讲,它们是 RPC 风格的。而在遵循 REST 原则 SOA应用中,服务是以资源为中心的,对每个资源的操作都是标准化的 HTTP 方法。
=========================================================================================
以上仅仅是自己的一些理解以及结合网上的一些讲解些的大家具体的可以参看
http://www.jdon.com/soa.html
http://www.blogjava.net/diggbag/archive/2013/05/10/361703.html#399092
SOAP,RESTFull以及RPC的认识的更多相关文章
- SOAP Binding: Difference between Document and RPC Style Web Services
SOAP Binding: Difference between Document and RPC Style Web Services 20FLARES Twitter 1Facebook 9Goo ...
- 网络协议 20 - RPC 协议(上)- 基于XML的SOAP协议
[前五篇]系列文章传送门: 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - DNS 协议:网络世界的地址簿 网络协议 17 - HTTPDNS:私人定制的 DNS 服务 网络协议 ...
- RPC、RMI、SOAP、WSDL的区别详解
RPC与RMI的区别============================================================================RPC:(Remote Pr ...
- SOA,SOAP,RPC,以及 RPC协议与 REST 协议之间的关系(搜狗)
web service顾名思义这是一种提供service的形式,而且只能通过http(web)来提供service(web service三要素:SOAP.WSDL(WebServicesDescri ...
- MicroService/web Service/webAPI/RPC
[TOC] 微服务 服务拆分,利用轻量化机制(通常为HTTP源API)实现通信,复杂度可控,独立部署,技术选型灵活,容错,扩展. 康威定律的实际体现 微服务架构模式深刻影响了应用和数据库之间的关系,不 ...
- soap的简单实现(PHP)
1.非wsdl模式 (1)函数文件 testphp/ServiceFunctions.class.php <?php /** * @author 左小兵 * */ class ServiceFu ...
- PHP soap Web Service 使用SoapDiscovery.class.php 生成wsdl文件
PHP soap web service 使用wsdl文件 demo: ============================================================== 服 ...
- PHP webserver 之 soap 生成wsdl文件
<?php /** * Copyright (c) , Braulio Jos?Solano Rojas * All rights reserved. * * Redistribution an ...
- 如何在symfony 控制器里面创建soap web service
通过一些工具将一个控制器设置成一个soap服务将会非常简单.首先,你必须安装了php soap扩展.由于php soap扩展现在不能生成wsdl,你要么自己从头开始创建要模使用第三方生成器. php中 ...
随机推荐
- 第32课 初探C++标准库
有趣的重载: 实验: 将1左移到cout对象中. 将Test改名为Console,此时我们的本意是想让这个cout代表当前的命令行: cout代表命令行的一个实例,本意是想将1打印到命令行上. 我们在 ...
- magento的布局文件之谜
magento的布局文件layout.xml文件详解 解析顺序 布局xml文件一般位于app/design/{area}/{package}/{theme}/layout/目录下.Layout文件一般 ...
- TensorBoard 实践 1
从新查看图的时候,删除旧的logs/下面的文件 tf.scalar_summary('loss',self.loss) AttributeError: 'module' object has no a ...
- Loj 2008 小凸想跑步
Loj 2008 小凸想跑步 \(S(P,p_0,p_1)<S(P,p_i,p_{i+1})\) 这个约束条件对于 \(P_x,P_y\) 是线性的,即将面积用向量叉积表示,暴力拆开,可得到 \ ...
- CTF-练习平台-Misc之 想蹭网先接开密码
十三.想蹭网先接开密码 用wireshark打开,WiFi认证过程重点在WPA的四次握手包,找到EAPOL握手协议,另存为 根据题目提示,写字典 #include<stdio.h>int ...
- .gitignore忽略git版本库中的文件(夹)
# 忽略*.o和*.a文件 *.[oa] # 忽略*.b和*.B文件,my.b除外 *.[bB] !my.b # 忽略dbg文件和dbg目录 dbg # 只忽略dbg目录,不忽略dbg文件 dbg/ ...
- Win8被禁购信息战由暗到明
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jhzyz/article/details/26629277 冯强/文 关于中国政府禁止採购微软Win ...
- 清理IE和使用历史痕迹
清除IE临时文件的Batch脚本 @echo off title: IE temporary file deleter echo 正在 清除Internet临时文件 ............ RunD ...
- vue项目实现按需加载的3种方式:vue异步组件技术、es提案的import()、webpack提供的require.ensure()
1. vue异步组件技术 vue-router配置路由,使用vue的异步组件技术,可以实现按需加载. 但是,这种情况下一个组件生成一个js文件. 举例如下: { path: '/promisedemo ...
- centos7 取消自动锁屏
CentOS7默认短时间会锁屏,这带来了一定的麻烦,比如看电影时,你不得不时不时的动动鼠标,才能防止锁屏.在网上查了一些资料,也没有找到相关的解决办法,不过最终还是找到了. 1.打开 applicat ...