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

SOA和微服务架构的区别

百变鹏仔1年前 (2023-12-05)阅读数 5#综合百科
文章标签架构是一个

微服务是一个新概念,但这绝不是一个全新架构,更不是一个包治百病的架构。由于有服务二字,很容易让人联想到面向服务架构(SOA),其实微服务架构属于应用技术架构,和以B/S

为代表的三层架构相对应,强调将巨石型应用拆分为由微服务组成的应用,在数据上也视情况从集中的存储拆解为更小的存储单元。而SOA属于企业架构的范畴,从企业架构出发把业务分解为不同领域的服务,不同物理系统提供不同服务,注重系统之间通过服务互联互通的规范,对服务如何实现并不关注。因此,面向服务架构的服务应该是一个业务意义的服务,而微服务是系统中的技术服务,更关注服务的实现,虽然提供了业务意义的服务,但是不能混为一谈。微服务使用也不是无限度的,事实上由于数据一致性等问题的限制,不能无限度拆分微服务,可以把微服务分为系统对外提供的远程服务、系统内部的远程服务和系统内部的本地服务,显式声明、明确职责。事实上,在企业架构上使用SOA支撑业务,而在应用技术架构上使用微服务架构,是一个合适的选择。

对 SOA的定义和理解分两类

SOA和微服务架构的区别

一类认为: SOA主要是一种架构风格

另一类认为: SOA是包含运行环境、编程模型、架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境,涵盖服务的整个生命周期:建模——开发——整合 ——部署 ——运行 ——管理

Service-architecture.com将 SOA定义为:本质上是服务的集合。服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。

所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数

虽然不同厂商或个人对 SOA有着不同的理解,

但是我们仍然可以从上述的定义中看到 SOA的几个关键特性:一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型

由此可以得出,只要某个软件系统符合了SOA的架构,就可以说它是基于SOA的

如,我们完全可以把word这个软件,设计成一个个组件,并让其符合SOA架构。

所以SOA不一定需要web service来实现。

Web service 简单来说就是一个向外界暴露出的能够通过internet进行调用的api和应用程序, 是基于SOA松耦合等思想开发出来的一套framework(个人观点),但是它并一定完全符合SOA的架构。 比如你自己写的基于ws的一个小函数。

现阶段,我们能看到的大部分SOA系统好像都是 用web service实现的,

因为某个软件如果不开源让所有人一起开发,你就不知道它到底是不是基于SOA的,

你想用别人的服务,一般需要到网上去搜索,搜到以后是直接使用,而不是下载下来,这些正是web service给我们提供的功能。

但一定要明确,那些把自己能提供的服务包装一下,对外提供一个ws接口,就声称自己是SOA,肯定是错误的,因为他的系统并不一定符合SOA架构。

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

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

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

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