SOA是面向服務架構,面向服務(SO:Service Orientation)代表的是一種設計理念,和物件導向(OO:Object Orientation)、面向組件(CO:Component Orientation)一樣,對關注點進行分解的思想,面向服務是和技術無關的。
服務導向架構,是一個組件模型,它將應用程式的不同功能單元(稱為服務)通過這些服務之間定義良好的介面和契約聯絡起來。介面是採用中立的方式進行定義的,它應該獨立於實現服務的硬體平台、作業系統和程式設計語言。這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行互動。
這種具有中立的介面定義(沒有強制綁定到特定的實現上)的特徵稱為服務之間的松耦合。松耦合系統的好處有兩點,一點是它的靈活性,另一點是,當組成整個應用程式的每個服務的內部結構和實現逐漸地發生改變時,它能夠繼續存在。而另一方面,緊耦合意味著應用程式的不同組件之間的介面與其功能和結構是緊密相連的,因而當需要對部分或整個應用程式進行某種形式的更改時,它們就顯得非常脆弱。
對松耦合的系統的需要來源於業務,應用程式需要根據業務的需要變得更加靈活,以適應不斷變化的環境,比如經常改變的政策、業務層級、業務重點、夥伴關係、行業地位以及其他與業務有關的因素,這些因素甚至會影響業務的性質。我們稱能夠靈活地適應環境變化的業務為按需(On demand)業務,在按需業務中,一旦需要,就可以對完成或執行任務的方式進行必要的更改。
面向服務架構,它可以根據需求通過網路對鬆散耦合的粗粒度應用組件進行分布式部署、組合和使用。服務層是SOA的基礎,可以直接被應用調用,從而有效控制系統中與軟體代理互動的人為依賴性。
SOA是一種粗粒度、松耦合服務架構,服務之間通過簡單、精確定義介面進行通訊,不涉及底層編程介面和通訊模型。SOA可以看作是B/S模型、XML(標準通用標記語言 (SGML)的子集)/Web Service技術之後的自然延伸。
SOA將能夠協助軟體工程師們站在一個新的高度理解企業級架構中的各種組件的開發、部署形式,它將協助企業系統架構者以更迅速、更可靠、更具重用性架構整個業務系統。較之以往,以SOA架構的系統能夠更加從容地面對業務的急劇變化。
目前對於SOA其實沒有一個統一的定義,不同人站在不同角度對SOA認識可能有所不同。但是,不管對SOA有著怎樣的分歧,SOA的設計思想還是被大家普遍接受的,下面部落格中我會繼續介紹SOA的一些基本特性,希望大家持續關注!
以上就是SOA系列之基本概念的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!