好程式設計師雲端計算培訓分享雲端計算中SOA是什麼?

好程式設計師發表於2020-07-09

   好程式設計師雲端計算培訓分享雲端計算中SOA是什麼?雲端計算中SOA是什麼?SOA 是面向服務的架構,即企業的 IT 系統是由服務組成的,也即企業的各個應用系統是由許多標準的服務件“組裝”起來的,組成應用系統中的各個服務之間是一種非常松耦合的關係。

   Gartner 公司在 1996 年進一步提出了 SOA 的概念,意為面向服務的架構,本質上是面向服務的思想在企業 IT 架構方面的應用。面向服務的思想,是物件導向思想之後的一種新的思想模式,其核心特徵就是以松耦合、粗粒度的服務單元來構建軟體。作為一種思想,SOA 不涉及任何具體的實現技術細節,但是思想終歸要落地才會帶來社會效益。

   人們發現,企業服務匯流排(簡稱為 ESB)是實現 SOA 的主要技術之一,於是 ESB 也就成為 SOA 的核心技術基礎。當然,不用 ESB 也不能說你的系統就不是 SOA,比如現在流行的微服務就是 SOA 的一種具體實現,它採用容器對服務打包。SOA 所實現產品的核心任務是管理企業中的服務單元,具體的任務可分解為:服務單元的登記、服務單元的呼叫、服務單元的執行、服務單元的部署、使用者管理介面,以及安全控制等。

   服務與模組的主要區別在於:模組相當於汽車發動機的零配件,而服務就相當於發動機本身,發動機可以獨立運轉,而零件就不行。

   函式一般由開發語言編譯器的公司提供,如 C 語言編譯器有微軟的 Visual C++、Borland 公司的 Borland C、開源組織提供的 GCC 等,框架一般由軟體開發廠商或開源組織提供,如 Django、Drupal、JSON、Spring、jQuery 等,而服務一般由運營商提供。

   企業的軟體應用系統和服務的關係像極了人類社會中的專案和人的關係,企業要實施一個專案,先去人才網站招聘各種人員組建團隊,然後團隊成員各司其職,共同完成專案。

   求職者事先要在人才招聘網站註冊併發布簡歷,然後等待招聘電話。那麼在 SOA 中,也有一個類似人才網站的機構,服務必須先在這個機構裡註冊,當有需求的時候,其他服務或者應用系統就會在這個機構裡搜尋能滿足需求的服務,並且呼叫這些服務來完成某個任務。服務像孫悟空一樣具備分身術,即同一個服務能分身出很多個體,這些個體分別被其他服務呼叫,這一點又與現實生活中的求職者不同。

   服務是無狀態的,即服務在被呼叫前後本身沒有變化,且同一個服務允許同時在多臺計算機上執行,這樣就能輕鬆實現高可用性計算及負載均衡叢集,最終我們可以想象一下,企業的很多臺伺服器上執行著各種各樣的標準服務,眾多的應用系統對應各自的服務呼叫關係描述表,“組裝”一個應用軟體由公司文員即可快速輕鬆地完成。

   在雲端,由於應用繁多且由一家公司運營,所以雲運營公司是採用 SOA 的最佳場所。可以預計,在雲端計算時代,SOA 將得到廣泛應用。在業界,也有人認為雲端計算將是 SOA 的終結者,這個觀點把不同層次的東西混為一談,雲端計算不是新的技術和思想,它只是人們使用計算資源的一種模式,而 SOA 是一種全新的軟體構架思想。

   目前部署 SOA 的應用環境有開源產品和商業產品,開源產品有 WSO2、Dubbo 和 Mule ESB,後者側重於企業服務匯流排,不是一個完整的 SOA 套件,這三個開源產品是用 Java 語言開發的,另外一個 ZATO 開源專案是採用 Python 語言開發的;商業產品有 Oracle SOA 套件和 IBM SOA 基礎棧等。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2703621/,如需轉載,請註明出處,否則將追究法律責任。

相關文章