從軟件的基本原理定義:SOA是一個組件模型,它將應(yīng)用程序的不同功能單元(服務(wù))通過這些服務(wù)之間定義良好的
因為SOA不依賴于任何技術(shù),可以將SOAP、RPC、REST等理解為實現(xiàn)SOA的一種技術(shù)選型。
實際上SOA只是一種架構(gòu)設(shè)計模式,是一種設(shè)計的方法,而SOAP、REST、[[rpc-api|RPC]]就是根據(jù)這種設(shè)計模式構(gòu)建出來的規(guī)范,其中SOAP通俗理解就是http+xml的形式,REST就是http+json的形式,RPC是基于socket的形式。
基于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ù)平臺等;
與它之前的架構(gòu)相比,SOA 為企業(yè)帶來了巨大的好處:
這兩種方法的主要區(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ū)別?