Lew*_*wix 31 rest soa microservices
我以为我知道REST /"RESTFul",restfulservices,webservices,SOA和微服务是什么,但我遇到了很多不同的定义,我得出的结论是这些术语被过度使用,误用或者只是定义得很糟糕.
我希望能清楚地理解上述术语代表什么,它们的具体定义,它们的共性和差异,优点和缺点,最重要的是底线 - 为了适当地使用这些术语而要记住的最重要的事情.
jno*_*ovo 24
免责声明:这篇文章的大部分都是主观的.这里没有尝试严格定义任何内容,只是尝试上下文化并对概念及其相互关系进行全局概述.
我以为我知道REST /"RESTFul",restfulservices,webservices,SOA和微服务
我要说所有这些术语都属于面向服务的体系结构(SOA)的范畴.Web服务是使用Web相关技术的SOA.REST及其子集RESTful是一组实现Web服务的实践.最后,微服务是一组新的SOA实践.
我希望能够清楚地了解上述术语所代表的含义
我将尝试解决这一问题,但使用非正式的定义,而不是进入优点和缺点.这太长了,我认为最重要的一点应该从解释中显而易见.
SOA
在这种情况下,我认为这个名称是不言自明的:SOA - 代表面向服务的体系结构 - 指的是专注于服务的架构.现在,这里棘手的部分是您可能会或可能不会考虑服务,这是一个完全不同的主题.
网页服务
这解释了使用Web相关技术的SOA子集.这通常涉及HTTP和XML,但它也可以使用FTP.我认为web这个词很模糊,因为它通常指的是标准的互联网技术.
REST(FUL)
REST是Web服务的一个子集 - 因此也是SOA - 围绕使用HTTP进行通信.有一些常见的做法,例如与URL有某种特定的相关性.
大约10年前,当我被介绍到REST时,RESTful被呈现给我作为一个更严格的REST实现,其中资源将具有唯一的URI并且它将通过映射到HTTP谓词的CRUD操作来管理 - Create = POST,Read = GET,Update = PUT,删除=删除.
通过HTTP GET或POST请求更新用户信息或者/users/1/updateURL在REST中完全有效,但它不是RESTful.对于后者,该方法是使用HTTP PUT或贴片上/users/1(这也将是操作的其余部分的URL,简单地改变HTTP动词).
我发现多年来这种区别变得模糊了.但是,RESTful仍然是REST的一个更严格的子集.(确切的要求可能有争议.)
编辑 - 一个更正式的定义:
REST代表Representational State Transfer,由Roy Fielding在他的博士学位上发表.论文作为分布式超媒体系统的架构风格.重点在于超媒体和自我遏制将客户与大多数事前知识脱钩.网站就是一个例子:它由一个URI(网站根目录)和一个媒体类型(HTML)组成,服务器通过它提供客户关于资源和所有可能的交互所需的所有信息.
我会说99%的人谈论REST真的是指RPC或基于HTTP的接口:使用HTTP端点来调用某些操作或查询数据.菲尔丁本人试图澄清这一点.由一组预定义URL构成的任何API都需要某些HTTP谓词和一些参数才能达到99%.我上面的描述也是如此.但是,我怀疑这个术语本身可以在滥用中存活下来,我认为我们必须接受它的新含义.
微服务
这是最近的一个词; 它促进将应用程序实现为一组简单的可独立部署的服务.这与SOA体系结构的经典方法形成对比,后者是一组用于构建复杂系统的非常复杂的服务,简单地涉及企业服务总线.但是,重要的是要注意尽管SOA通常与这样的系统相关联,但它是一个更广泛的术语,实际上,微服务也是SOA的一个子集.
微服务通常与现代JavaScript全栈一起出现 - 即从服务器到用户界面使用JavaScript来处理所有垂直组件.可以说是这样,因为使用这些JavaScripts全栈可以加快开发速度,这归功于简化的集成.这些堆栈以及使用它们实现的微服务通常都是通过REST构建的,但从理论的角度来看,没有什么能阻止您使用不同的方法来实现相同的理念.
| 归档时间: |
|
| 查看次数: |
24810 次 |
| 最近记录: |