從軟件的基本原理定義:SOA是一個組件模型,它將應(yīng)用程序的不同功能單元(服務(wù))通過這些服務(wù)之間定義良好的

因為SOA不依賴于任何技術(shù),可以將SOAP、RPC、REST等理解為實現(xiàn)SOA的一種技術(shù)選型。
實際上SOA只是一種架構(gòu)設(shè)計模式,是一種設(shè)計的方法,而SOAPREST[[rpc-api|RPC]]就是根據(jù)這種設(shè)計模式構(gòu)建出來的規(guī)范,其中SOAP通俗理解就是http+xml的形式,REST就是http+json的形式,RPC是基于socket的形式。

SOA架構(gòu)

基于SOA的解決方案,SOA架構(gòu)可分為五層水平:
用戶界面層 —- 這些GUI的最終用戶或應(yīng)用程序訪問的應(yīng)用程序/服務(wù)接口;
業(yè)務(wù)流程層 —- 在應(yīng)用方面的業(yè)務(wù)用例服務(wù);
服務(wù)層 —- 服務(wù)合并在一起,提供統(tǒng)一的實時服務(wù);
服務(wù)組件層 —- 用來建造服務(wù)的組件,如功能庫、技術(shù)庫、技術(shù)接口等;
操作系統(tǒng) —- 這層包含數(shù)據(jù)模型,企業(yè)數(shù)據(jù)倉庫,技術(shù)平臺等;

SOA 的優(yōu)勢

與它之前的架構(gòu)相比,SOA 為企業(yè)帶來了巨大的好處:

SOA與微服務(wù)的對比

這兩種方法的主要區(qū)別歸結(jié)為范圍。簡而言之,面向服務(wù)的架構(gòu)(SOA)作用在企業(yè)范圍,而微服務(wù)架構(gòu)作用在應(yīng)用范圍。

.explinks.com/wp-content/uploads/2024/02/image-33.png)其它維度的對比:

SOA [[W20250400199
服務(wù)粒度 粗粒度 細(xì)粒度
業(yè)務(wù)劃分方式 水平多層 縱向業(yè)務(wù)劃分
部署方式 整體部署 獨立部署
通信方式 使用重量級通信方式,ESB充當(dāng)服務(wù)之間通信的角色 使用輕量級通信方式,如HTTP RESTful
服務(wù)交付 交付慢 交付塊
應(yīng)用場景 龐大、復(fù)雜、異構(gòu)的企業(yè)級系統(tǒng) 快速、輕量級、基于 Web 的互聯(lián)網(wǎng)系統(tǒng)

參考資料

SOA vs Micro-service,有什么區(qū)別?
如何理解SOA,SOAP,RPC, REST 協(xié)議及其之間的關(guān)系
什么是SOA?什么是微服務(wù)?SOA和微服務(wù)有什么區(qū)別?

一站搜索、試用、比較全球API!
冪簡集成已收錄 5484種API!
試用API,一次比較多個渠道