推薦答案
概念
SOA 是Service-Oriented Architecture的簡稱,在《微服務(wù)設(shè)計》第1.3節(jié)中,SOA是一種設(shè)計方法,其中包含多個服務(wù),而服務(wù)之間通過配合最終會提供一系列的功能。一個服務(wù)通常以獨立的形式存在于操作系統(tǒng)進程中。服務(wù)之間通過網(wǎng)絡(luò)調(diào)用,而非采用進行內(nèi)調(diào)用的方法進行通訊。不同的組織機構(gòu)或個人從不同的層面上對SOA進行了描述和定義,我覺得較為準確的定義分為三類:
W3C的定義:SOA是一種應(yīng)用程序架構(gòu),在這種架構(gòu)中,所以功能都定義為獨立的服務(wù),這些服務(wù)帶有定義明確的可調(diào)用接口,能夠以定義好的順序調(diào)用這些服務(wù)形成業(yè)務(wù)流程。
Service-architecture.com的定義:服務(wù)是精確定義、封裝晚上、地理與其他讀物所處環(huán)境和狀態(tài)的函數(shù)。SOA本質(zhì)上是服務(wù)的集合、服務(wù)之間彼此通信,這種通信可能是簡單的數(shù)據(jù)傳送,也可能是兩個或更多的服務(wù)協(xié)調(diào)進行某些活動。服務(wù)之間需要某些方法進行連接。
Gartner的定義:SOA是一種C/S架構(gòu)的軟件設(shè)計方法,應(yīng)用有服務(wù)和服務(wù)事業(yè)這租車,SOA與大多數(shù)通用的C/S架構(gòu)模型不同之處在于它著重強調(diào)構(gòu)建的松散耦合,并事業(yè)獨立的標準接口。
我對SOA的認知是,將整個系統(tǒng)按照實際業(yè)務(wù),拆分成合適的、能夠獨立部署的模塊,每個模塊之間相互獨立,但是組合起來又是一個產(chǎn)品。比如在Springcloud中注冊中心、網(wǎng)關(guān)、配置中心、監(jiān)控中心等。至于如何拆分,可以使用DDD模式進行設(shè)計。
特點
SOA的實施具有鮮明的基本特征,實施SOA的關(guān)鍵目標是提高資源的利用率。如下為SOA的特征:
1. 外部或第三方可能訪問
2. 隨時可用,保證高可用性
3. 粗粒度的服務(wù)接口分級
4. 松散耦合
5. 可重用的服務(wù)
6. 服務(wù)接口設(shè)計管理
7. 標準化的服務(wù)接口
8. 支持各種消息模式
9. 精確定義的服務(wù)契約
其他答案
-
soa(Service-Oriented Architecture)是面向服務(wù)的架構(gòu),它是一種粗粒度、松耦合服務(wù)架構(gòu),服務(wù)之間通過簡單、精確定義接口進行通訊,不涉及底層編程接口和通訊模型,將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。
-
SOA(面向服務(wù)的架構(gòu))是一種軟件架構(gòu)風(fēng)格,它將應(yīng)用程序的功能分解為可重用的服務(wù)。這些服務(wù)可以獨立于應(yīng)用程序進行開發(fā)、測試和部署,并且可以通過網(wǎng)絡(luò)進行訪問。 SOA框架通常包括以下組件: 1.服務(wù)定義語言(SDL):用于描述服務(wù)的接口、消息和數(shù)據(jù)格式等信息。 2.服務(wù)注冊中心:用于注冊和發(fā)現(xiàn)服務(wù),并維護服務(wù)的可用性和狀態(tài)。 3.服務(wù)調(diào)用器:用于調(diào)用服務(wù),并將請求轉(zhuǎn)發(fā)到正確的服務(wù)實例。 4.服務(wù)組合器:用于將多個服務(wù)組合成一個完整的業(yè)務(wù)流程。 5.監(jiān)控和管理工具:用于監(jiān)視服務(wù)的性能和可用性,并進行故障排除和修復(fù)。 常見的SOA框架包括Web Services、RESTful API、Java Service Provider Interface(JSPI)、Open Service Broker Architecture(OSBA)等。