soa架构,SOA服务架构规划

SOA和微服务架构的区别是什么?

soa架构,SOA服务架构规划


笔者目前就职于国内知名互联网公司,做过toG和toB的私有化项目的微服务架构设计,也做过大型产品层面的微服务架构设计,就SOA和微服务架构的区别这个问题,来谈一谈我的看法 。不同的声音某些针对微服务架构的批评声称微服务其实就是SOA,并没有新鲜的内容 。在某些层面,它们的确有些相似 。SOA和微服务架构都是特定的架构风格,它们都以一系列服务的方式来把一个系统组织在一起 。
但如果深入研究,你就会发现微服务和SOA之间巨大的差异 。SOA与微服务差异SOA与微服务的差异主要体现在三个方面:服务间通信、数据管理、服务规模:1 服务间通信SOA和微服务架构通常采用完全不同的技术栈:SOA采用智能管道,如Enterprise Service Bus(ESB,是包含了业务和消息处理的智能管道),往往采用重量级协议,例如SOAP或其他WS*标准;微服务使用哑管道,例如消息代理,或者服务之间点对点通信,例如restfull请求或者grpc类的轻量级协议 。
2 数据管理SOA和微服务架构在处理数据的方式上也不尽相同:SOA采用全局数据模型并共享数据库;微服务架构则是每个服务都有自己的数据模型和数据库 。更进一步,每一个服务一般都拥有属于它自己的领域模型 。(笔者后续会有文章专门讲述领域模型设计)3 服务规模SOA和微服务架构之间的另一个重要区别就是服务的尺寸(规模):SOA善于集成大型、复杂的单体应用程序;微服务则是拆分为较小的服务SOA与微服务架构图一个典型的SOA系统架构如下:一个典型的微服务架构如下: 。
随着架构设计的演变为什么项目中需要用到SOA框架?
soa架构,SOA服务架构规划


【soa架构,SOA服务架构规划】在10多年前接触SOA概念的时候,以IBM、Oracle为主的头部玩家加上国内一些中间件厂商都在跟进,火爆程度不亚于现在的区块链、中台、AIOT,各公司都用自己的产品、方案组合来演绎SOA,比较典型的产品就是ESB、BPM、Portal,有时候也会带着DP开发平台,当时很多定制软件开发商、甚至ERP厂商都得跟SOA扯上关系,不然就不知道怎么讲片子、不好意思跟人打招呼 。
SOA面向服务架构是一种设计理念、架构规范,用来构建敏捷柔韧的IT架构、随需应变支撑业务 。从这个角度来说跟中台理念类似,不过中台的范畴更广、跟业务关联度更高 。SOA其实分两种流派,一种SOI面向服务集成、SOD面向服务开发,这就是为什么中间件厂商跟应用软件开发商都能跟SOA扯上关系的原因,不过一个是盖房子的一个是修道路桥梁的,谈不上谁比谁高级,但解决问题却是一致的:让应用软件更容易互联互通、敏捷集成,只是应用软件厂商强调的集成性更多是大系统的模块间的集成,而中间件厂商强调的是异构应用系统之间的集成 。
企业系统很多的时候一定会要基于SOA来做集成,但是仅靠ESB、BPM、Portal是不行的,一定得有MDM主数据治理、还得有IDM统一权限、统一账户、统一认证 。MDM是深度应用集成(比如BPM跨异构系统流程集成)、也是深度数据集成(DW、BI、BD、DSS、DAP等数据分析平台项目)的基础 。做SOA综合集成项目产品是基础、只有产品也不行,得甲方高层支持、业务部门、应用厂商、信息部门高效协同配合、相互斗争妥协,这是一个很考验交付团队、甲方能力决心意志的大工程,十多年的光阴投入其中,不断入坑出坑,也沉淀萃取出很多最佳实践,有些落实在产品里、有些落实在管理制度、有些落实在解决方案、有些落实在企业文化里,成为数通畅联agileai敏捷集成的基因 。

推荐阅读