刘涛做代言的那个网站,网站设计需要多少钱,如何做美食网站设计,东莞网站网络SOA
Service Oriented Ambiguity 即面向服务架构#xff0c; 简称SOA。
SOA的提出是在企业计算领域#xff0c;就是要将紧耦合的系统#xff0c;划分为面向业务的#xff0c;粗粒度#xff0c;松耦合#xff0c;无状态的服务。服务发布出来供其他服务调用#xff0c;一…SOA
Service Oriented Ambiguity 即面向服务架构 简称SOA。
SOA的提出是在企业计算领域就是要将紧耦合的系统划分为面向业务的粗粒度松耦合无状态的服务。服务发布出来供其他服务调用一组互相依赖的服务就构成了SOA架构下的系统。
首先你要知道SOA并不是某一种具体的技术实现它是一个系统架构的设计思想。这个架构设计思想的提出背景是随着我们的软件系统解决的问题越来越复杂那么会带来难以维护、难以扩展容易出错等问题。那么SOA思想的提出就是为了解决这个问题。 举个生活中的例子随着人们生活水平的提高出现了越来越多的肥胖人群肥胖会容易带来一些高血压、糖尿病的发病几率有人就得出了“减肥”这想法来解决肥胖减肥不但降低得那些病的几率还可以让人变得更漂亮。 不同的厂商和个人对SOA有着不同的理解但从SOA的定义中可以看到几个关键特性
一种粗粒度、松耦合服务架构服务之间通过简单、精确定义接口进行通讯不涉及底层编程接口和通讯模型。
SOA的技术实现是什么继续往下看
web serveice
1996年SOA的思想被提出它只是一个理论概念。到了2000年W3C才成立了相关的委员会开始讨论Web Service的相关标准各大厂商一边积极参与标准制定一边推出了一系列实实在在的产品。新的技术和新的产品出现SOA找到了可以落地的技术方案。 有人提出节食可以变瘦一天只吃一顿有人提出运动可以变瘦一天跑2000米“减肥”的想法终于有了具体的实施方案。 你要明白一个关系SOA不是Web ServiceWeb Service是实现SOA的一种具体的技术方案。
Web Service的定义
Web Service是一个平台独立的低耦合的自包含的、基于可编程的web的应用程序可使用开放的XML标准通用标记语言下的一个子集标准来描述、发布、发现、协调和配置这些应用程序用于开发分布式的互操作的应用程序。
Web Service有三个部分组成分别解答三个问题
服务之间如何传输数据数据的格式是怎样的如何发布和查找这些服务
SOAP
Simple Object Access Protocol即简单对象访问协议 简称SOAP。
SOAP是基于XML在分散或分布式的环境中交换信息的简单的协议用于访问网络服务。可使应用程序在 HTTP 之上进行信息交换。
如果你用Wireshark这种网卡级别的抓包工具抓取过SOAP的信息就会发现它传输数据用的HTTP协议。所以许多人以为SOAP就是HTTPXML或者认为SOAP是HTTP的post请求的一个专用版本遵循一种特殊的XML消息格式。
虽然我们看到的情况确实如此但这并不是SOAP本质与全部。当SOAP消息真正需要在网络上实际传输的时候SOAP消息能够与不同的底层传输协议进行绑定同时SOAP消息可以在很多种消息传输模式中使用。包括超文本传输协议HTTP简单邮件传输协议SMTP多用途网际邮件扩充协议MIME。但是目前SOAP的实现只通过与HTTP进行绑定这么一种。所以就变成我们看到的这一种样子。
WSDL
Web Services Description Language即网络服务描述语言简称WSDL。它是一门基于XML的语言用于描述Web Services以及如何对它们进行访问。
WSDL格式
definitionstypesdefinition of types........
/typesmessagedefinition of a message....
/messageportTypedefinition of a port.......
/portTypebindingdefinition of a binding....
/binding/definitions
WSDL文档主要使用以下几部分组成 portType Web Service执行的操作。 message Web Service使用的消息。 types Web Service使用的数据类型。 binding Web Service使用的通信协议。
UDDI
Universal Description, Discovery and Integration可译为“通用描述、发现与集成服务”简称UDDI。
UDDI是一个独立于平台的框架通过使用Internet来描述服务发现企业并对企业服务进行集成。
图
扩展:
如何开发一个Web Service服务使用这个项目spyne · PyPI
如何调用Web Serveice服务即接口参考这个项目suds-jurko · PyPI
终于把Web Service给你讲清楚了但是我要告诉你Web Service技术过时了。我认为由以下两个原因
1、技术实现比较麻烦。我用spyne开发过Web Service服务实现比较麻烦跟Flask Web框架实现个HTTP接口没法比。
2、数据描述太臃肿XML描述数据本来就不够简洁WSDL在XML的基础上定义数据的传输格式就更复杂了。跟JSON这种格式描述数据没法比。
HTTP
HyperText Transfer Protocol超文本传输协议简称HTTP。HTTP是因特网上应用最为广泛的一种网络传输协议。
我想这个我不需要做过多的介绍但有一个问题你要搞明白HTTP协议和接口是什么关系 我举一个生活当中的例子高速公路和物流是什么关系 高速公路规定什么样的工具才能上高速轮船、飞机机不行必须带轮子的车上路之后如何运行每个车道的时速多少等车必须按照规则才能在上面运行。 物流是一个模糊的概念这一般指运输公司运送货物。高速公路只能跑物流吗当然不是运输人也可以嘛。物流也不是定走高速公路走航空的物流也是可以的。高速公路就是HTTP协议物流就是接口。 启动的Chrome浏览器打开前端开发者工具切换到“network”标签刷新页面。你看到了什么JS、CSS、Img、media、font、doc、WS、Other等。各种类型的数据哪个是接口
JSON
JavaScript Object Notation, JavaScript 对象表示法简称JSON。JSON是存储和交换文本信息的语法。类似XML。JSON比XML更小、更快更易解析。
在接口的技术实现上 JSON和HTTP是最佳拍档。它可以更简洁的描述要传输的数据而且解析也很简单。 物流要运的货物车厢如何设计节省空间能装更多的货物装货/卸货方便。货物是数据车厢设计就是数据格式。 RESTful
Representational State Transfer中文直译感觉不对味简称REST如果一个架构符合REST原则就称它为RESTful架构。
REST只是一个接口设计的风格。 古代的物流叫走镖走镖是有讲究的前面有一个喊口号的人叫“趟子手”例如中原镖局一般喊“中原镖局请江湖朋友让个道” 这江湖规矩你可以把这种江湖规矩看成REST风格。 比如一个通过id查询用户信息的接口。
一般的风格
/get_user/?id1
REST风格
/user/1/
扩展 请参考阮一峰的博客理解RESTful架构 - 阮一峰的网络日志
RPC
Remote Procedure Call远程过程调用。RPC通常特指在一个应用中调用另一个应用的接口而实现的远程调用。
一个RPC框架的实现包含以下部分
动态代码序列化和反序列化通信异常处理
其中通信部分可使用HTTP协议七层协议如 grpc框架使用的就是HTTP2协议也可以使用TCP/UDP协议四层协议如dubbo使用的是TCP协议。 这就好比顺丰快递他们有自己的一套物流系统可以走高速也可以走空运不仅仅是包含的运送这一项服务还有上面取件、称重打包自己的仓储分拣中心甚至货物寄丢了还有保险理赔等。你选择了一个rpc框架就相当于选择了一个物流公司的全套服务。 本文的编写我又翻阅了不少资料并且加入了自己的思考。通过这一些例子来帮助你理解这些概念。