從軟件的基本原理定義:SOA是一個組件模型,它將應用程序的不同功能單元(服務)通過這些服務之間定義良好的
因為SOA不依賴于任何技術,可以將SOAP、RPC、REST等理解為實現SOA的一種技術選型。
實際上SOA只是一種架構設計模式,是一種設計的方法,而SOAP、REST、[[rpc-api|RPC]]就是根據這種設計模式構建出來的規范,其中SOAP通俗理解就是http+xml的形式,REST就是http+json的形式,RPC是基于socket的形式。
基于SOA的解決方案,SOA架構可分為五層水平:
用戶界面層 —- 這些GUI的最終用戶或應用程序訪問的應用程序/服務接口;
業務流程層 —- 在應用方面的業務用例服務;
服務層 —- 服務合并在一起,提供統一的實時服務;
服務組件層 —- 用來建造服務的組件,如功能庫、技術庫、技術接口等;
操作系統 —- 這層包含數據模型,企業數據倉庫,技術平臺等;
與它之前的架構相比,SOA 為企業帶來了巨大的好處:
這兩種方法的主要區別歸結為范圍。簡而言之,面向服務的架構(SOA)作用在企業范圍,而微服務架構作用在應用范圍。
.explinks.com/wp-content/uploads/2024/02/image-33.png)其它維度的對比:
SOA | [[W20250400199 | |
---|---|---|
服務粒度 | 粗粒度 | 細粒度 |
業務劃分方式 | 水平多層 | 縱向業務劃分 |
部署方式 | 整體部署 | 獨立部署 |
通信方式 | 使用重量級通信方式,ESB充當服務之間通信的角色 | 使用輕量級通信方式,如HTTP RESTful |
服務交付 | 交付慢 | 交付塊 |
應用場景 | 龐大、復雜、異構的企業級系統 | 快速、輕量級、基于 Web 的互聯網系統 |
SOA vs Micro-service,有什么區別?
如何理解SOA,SOAP,RPC, REST 協議及其之間的關系
什么是SOA?什么是微服務?SOA和微服務有什么區別?