1 SOA是什么
面向服務的架構(Service-Oriented
Architecture,SOA)是一種面向服務設計軟件的思想架構,在系統設計時可以將不同功能的應用單元抽離出來單獨的成為一個服務,通過服務之間定義好的協議接口進行相互的通信,從而完成整個系統的任務。
2 SOA工作原理
SOA 主要由 3 部分組成:服務需求者(Service Requestor)、服務提供者(Service
Provider)和服務注冊端(Service Register),SOA
也通過了發布/訂閱通信機制?;谒神詈虾徒M件化的機制使得各個服務很容易的被開發。
其中協議接口應該具有編程語言無關性,各個服務能獨立的在各種平臺上運行。用戶不需要關注內部的實現細節而能與系統進行交互。SOA的模型中服務與服務之間通過接口進行交互,本質上也是一種系統解耦的方法,一個松耦合的系統更具靈活性,另一方面當系統的組件服務發生改變時,系統仍然能夠保持健壯。相反如果系統過于緊耦合的會使得整個系統變得非常脆弱。

3 SOA的優點
SOA 中的服務單元使用的是一套標準的協議進行信息的交流,系統在松耦合的機制下可以方便的進行服務的添加和改變,因此服務具有一定的獨立性,SOA
具有的如下一系列優點:
(1)松散耦合
SOA
設計之初就保持松耦合的特性,語言無關性的通信協議接口和各個服務組件分散開發,做到了服務消費者無需了解服務提供者的具體實現,也無需了解其系統的部署。即使一些服務發生改變也不會受到影響,這些設計方式都為系統的松耦合提供了支持。
(2)粗粒度的服務
對于系統開發而言服務粒度有粗細之分,服務粒度的劃分會根據實際業務的需求進行抉擇,一般而言,細粒度的服務具有更高的內聚性。SOA
服務組件之間的通信是基于SOAP 等相關協議實現。通過 Web Service
提供的技術支撐,在信息傳輸的量上有一定的約束,當服務粒度過小時會導致信道的擁堵、時延等問題,因此服務的粒度應該設計較大比較合理。
通過把細粒度服務流程化組成粗粒度服務可以簡化接口,在此之上建立隊列管理、
事務管理、活動管理、流程管理等上層管理,通過設定細粒度服務的狀態決定其參與的活動。因此 SOA
模型采用的粗粒度服務更具優勢,同時也具有靈活,可復用等優點,對于服務的訪問都會采用標準化的接口來提供系統的集成性。
(3)標準化訪問接口
標準化接口在系統設計過程中發揮著重要的作用,特別是在各個平臺的交互中,統一規范的接口標準大大減少了開發人員的工作時間。在 SOA
模型中,標準化的接口包含了對服務的描述,消息類型以及規范等,SOA
通過統一規范的接口描述為用戶的訪問以及分布式服務之間的交互提供了便利。通過設定的接口屏蔽了服務如何實現的相關信息,但可以通過不同的語言、平臺來完成服務的創建。
4 基于SOA理念的軟件架構

推薦閱讀:《【研報】汽車行業:智能汽車未來已來-210510(31頁).pdf》