SOA面向服務架構簡述

來源:互聯網
上載者:User

標籤:

  在上篇中我們簡單談了下架構設計中服務層的簡單理解,在這裡我們將繼續服務層的架構,在本節我們將重點在於分布式服務。在分布式系統中表現層和商務邏輯層 並不處於同一物理部署,所以我們必須存在分布式服務,以契約方式發佈於網路中,我們的關注點在於服務,面向服務編程,這種通過組合商務邏輯暴露可用服務的架構叫做面向服務架構(SOA)。

    SOA強調一個松耦合,基於宏服務的架構,通過契約暴露給服務消費者可用的服務互動。SOA是以服務為組成構建,原則有:

  1. 邊界清晰:

        服務層是消費者互動到系統業務的唯一入口,所有我們的服務必須能夠被消費者所理解,以及最好處理Request/Response基於訊息交換RPC調用,職責明確單一.還有我們更希望我們的服務為作用明確的,CQS(命令-查詢分離原則).

  2. 服務的自治性

        服務自治主要表現在每個服務都是獨立的,其系統部署,管理監控都是獨立的。自治體現了服務的松耦合,但並不是服務就是一個孤島,其可以通過訊息交換消費其他服務。

  3. 使用契約(介面和資料載體),而非實現

         這也是物件導向設計第一原則。在我們的服務設計中SOA一個重要目標就是互操作,基於SOAP等標準協議實現跨平台互操作,可能存在異構系統。所以我們該選擇介面而不是語言具體的類以及基於訊息互動。服務對於開發就是一些列行為的組合,資料契約就是資料移轉對象,資料載體。契約使得我們並不關心服務的內部實現,而只關心提供了那些服務,服務的簽名如何,怎麼調用之類的。

  4. 相容性基於策越

    對於消費者來說服務是否能滿足他的需求,這需要服務語義相容,語義相容也應該通過可訪問方式暴露。是的服務可發現。

    SOA是一種設計原則規範,其目標在於為複雜系統提供互通性和以服務為基礎組件構造系統邏輯。把具體的商務邏輯和流程屏蔽,暴露出使用者可用的行為集合。SOA是一中原則而非集體技術。wcf,webservice是具體SOA技術。同時SOA也不是我們的目標,客戶是不與關心我們採用soa與否,這隻是我們對系統的一種解決方案。

SOA優勢在於給我們提供更好的代碼重用,版本控制,安全控制,擴充延伸性。同時降低和服務的耦合,互動必須依賴於服務契約和資料契約,並不關心服務的內部實現。在我們的版本升級,修改過程中可以完全可以重新實現替換原有服務,並不會影響消費程式的使用。

最後我們必須的說下當下流行的restfull,通常我們認為這是一種風格,而非架構,是由Roy Thomas Fielding在其博士論文 《Architectural Styles and the Design of Network-based Software Architectures》中提出REST是英文Representational State Transfer的縮寫,中文翻譯為“具象狀態傳輸”。是一種基於web的架構,它很好的利用http協議的method。根據不同的method表示對資源的不同語義操作。其核心在於將發布在網路的一切事物歸屬為資源,每個資源定位於一個資源定位器(URI)。以及無狀態,緩衝,分層架構。在微軟最新的WCF resetfull,web api應用程式框架。以及wcf ria ,wcf data service,需要的注意的是微軟同時候加入的自己的oData協議(開中繼資料協議)。

最後說一點:我覺得不管是服務或者resetfull服務我們都必須定義契約,依賴於契約,雖然微軟的而技術允許我們直接寄宿服務類,但是對於服務的擴充和延伸而言,說這句話的原因在於我最近看見一些直接寄宿服務類的resetfull架構。

來源:http://www.cnblogs.com/whitewolf/archive/2012/05/22/2513905.html

SOA面向服務架構簡述

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.