soa架構中心化和去中心化
㈠ 什麼是SOA架構
1. SOA並不是一個新事物,IT組織已經成功建立並實施SOA應用。
2. SOA架構,是一種粗粒度、開放式、松耦合的服務結構,要求軟體產品在開發過程中,按照相關的標准或協議,進行分層開發。
3. 通過這種分層設計或架構體系可以使軟體產品變得更加彈性和靈活,且盡可能的與第三方軟體產品互補兼容,以達到快速擴展,滿足或響應市場或客戶需求的多樣化、多變性。
4. SOA體系架構帶來的主要觀點是業務驅動IT,即業務驅動和業務更加緊密地聯系在一起。以粗粒度的業務服務作為基礎來對公司業務進行建模,這樣就可以產生簡潔的業務和系統視圖。
㈡ SOA和微服務架構的區別
SOA與微服務架構,在架構劃分、技術平台選擇等方面,均存在一定的區別。
一、架構劃分不同
1、SOA強調按水平架構劃分為:前、後端、資料庫、測試等;
2、微服務強調按垂直架構劃分,按業務能力劃分,每個服務完成一種特定的功能,服務即產品。
二、技術平台選擇不同
1、SOA應用傾向於使用統一的技術平台來解決所有問題;
2、微服務可以針對不同業務特徵選擇不同技術平台,去中心統一化,發揮各種技術平台的特長。
三、系統間邊界處理機制不同
1、SOA架構強調的是異構系統之間的通信和解耦合;(一種粗粒度、松耦合的服務架構);
2、微服務架構強調的是系統按業務邊界做細粒度的拆分和部署。
四、主要目標不同
1、SOA架構,主要目標是確保應用能夠交互操作;
2、微服務架構,主要目標是實現新功能、並可以快速拓展開發團隊。
參考資料
網路-SOA
網路-微服務架構
㈢ 什麼是SOA架構
SOA架構即面向服務架構。
面向服務的體系結構,是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的介面和契約聯系起來。
介面是採用中立的方式進行定義的,它應該獨立於實現服務的硬體平台、操作系統和編程語言。這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行交互。
(3)soa架構中心化和去中心化擴展閱讀:
SOA具有以下五個特徵:
1、可重用
一個服務創建後能用於多個應用和業務流程。
2、松耦合
服務請求者到服務提供者的綁定與服務之間應該是松耦合的。因此,服務請求者不需要知道服務提供者實現的技術細節,例如程序語言、底層平台等等。
3、明確定義的介面
服務交互必須是明確定義的。Web服務描述語言(Web Services Description Language,WSDL)是用於描述服務請求者所要求的綁定到服務提供者的細節。WSDL不包括服務實現的任何技術細節。服務請求者不知道也不關心服務究竟是由哪種程序設計語言編寫的。
4、無狀態的服務設計
服務應該是獨立的、自包含的請求,在實現時它不需要獲取從一個請求到另一個請求的信息或狀態。服務不應該依賴於其他服務的上下文和狀態。當產生依賴時,它們可以定義成通用業務流程、函數和 數據模型。
5、基於開放標准
當前SOA的實現形式是Web服務,基於的是公開的W3C及其他公認標准.採用第一代Web服務定義的SOAP、WSDL和UDDI以及第二代Web服務定義的WS-*來實現SOA。
㈣ 三層架構 與SOA架構 有什麼區別 又有什麼相同之處
- 三層架構(表現層、業務邏輯層、數據訪問層),現在一般軟體項目採用的都是應用、中間件和data伺服器這樣的三層.是現在一般軟體項目的主流架構.
- SOA(service oriented architecture)是面向服務的體系架構,主要是一種軟體開發的思想.按照不同對象的需求開發、封裝相應的程序,並且獨立於實現服務的硬體平台、操作系統和編程語言,這樣可以有效節省投資,並大大提高軟體的擴展性.
㈤ SOA架構是什麼意思
SOA並不是一個新事物,IT組織已經成功建立並實施SOA應用
軟體
SOA架構,是一種粗粒度、開放式、松耦合的服務結構,要求軟體產品在開發過程中,按照相關的標准或協議,進行分層開發。通過這種分層設計或架構體系可以使軟體產品變得更加彈性和靈活,且盡可能的與第三方軟體產品互補兼容,以達到快速擴展,滿足或響應市場或客戶需求的多樣化、多變性。
SOA體系架構帶來的主要觀點是業務驅動IT,即業務驅動和業務更加緊密地聯系在一起。以粗粒度的業務服務作為基礎來對公司業務進行建模,這樣就可以產生簡潔的業務和系統視圖;以業務服務為基礎來實現的IT系統更靈活、更易於重用、也更快地應對企業業務需求的變化;以業務服務為基礎,通過顯式地方式來定義、描述、實現和管理業務層次的粗粒度服務(包括業務流程),提供了業務服務模型和相關IT業務之間提供了更好的"可追溯性"
很多年了,BEA、IBM、等廠商看到了它的價值,紛紛跟進。SOA的目標在於讓IT變得更有彈性,以更快地響應業務單位的需求,實現實時企業。
SOA是面向服務的架構,沒有人不同意。但對於SOA究竟是什麼,每個廠商都有自己的定義和解釋。有人說是一種架構,有人說是一種方法論,卻沒有幾個人能給出一個大家都信服且簡單易懂的解釋。SOA將應用程序的不同功能單元通過這些服務之間定義良好的介面和契約聯系起來。介面是採用中立的方式進行定義的,它應該獨立於實現服務的硬體平台、操作系統和編程語言。這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行交互。其實SOA和架構雖然可以分開,各有各的意思,但是結合出來就代表一種相互的融合和促進,在將來的發展中勢必是一個強勢的沖擊。
㈥ 互聯網中的去中心化是什麼意思
最近「區塊鏈」的熱度,一直高漲,可能大家都認為比特幣的瘋狂,會落到區塊鏈,有點像VR元年的時候,創業者都蜂擁而至,某種程度上,可能和那本書的名言有關:站在風口上 豬也能飛起來!但小米這「豬」,是一個非常精細的產品。
本文主要解讀一個創業者過渡解讀和放大的詞「去中心化」。
往往創業者或者某些執迷於創業的人,在公開場合中,說產品的時候會說,我們的產品是「去中心化」的。
對於事情,對於所謂的不明覺厲,人們是盲目的,那麼「去中心化」到底是什麼?要想了解「去中心」化首先要知道什麼是「中心化」。
1、互聯網是信息傳遞的新的形式,中心化就是信息集中發布,參與者往往沒有話語權,這里的話語權就是引導輿論導向級別的話語權;
2、去中心化就是參與者可以有話語權,並且可以發聲,可以自由傳播信息;
中心化是如何形成的?
因為信息資源的匱乏導致中心化,在某種程度上,互聯網的用戶群也是中心化形成的原因;
去中心化是如何形成的?
因為信息資源的規范導致中心化,在某種程度上,互聯網用戶群的上升,具備了構建去中心化的條件,同時用戶對於信息需求擴大。
㈦ soa架構的優點有哪些
面向服務的架構(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的介面和契約聯系起來。構建在各種各樣的系統中的服務可以以一種統一和通用的方式進行交互。 SOA是一種粗粒度、松耦合服務架構,基於soa服務思想進行功能的抽取(重復代碼問題解決),以服務為中心各個系統之間依靠ESB進行調用。 隨著業務復雜性與規模的不斷增長,以及業務的多變性因素,使得敏捷軟體開發變得尤其重要,在盡可能滿足客戶需求的同時,維持良好的軟體質量與系統可用性。 將整體應用拆分開來,從而確保以業務為中心的服務設計理念更加符合敏捷交付與DevOps文化的實際要求。而這,正是微服務架構的真正來源。 一句話總結SOA和微服務的區別,即微服務不再強調傳統SOA架構裡面比較重的ESB企業服務匯流排,同時SOA的思想進入到單個業務系統內部實現真正的組件化。如今微服務越來越重要,
㈧ SOA 架構
4.2.3.1 SOA 的概念
SOA 是一種架構模型,它將應用程序的不同功能單元(即服務)通過服務之間定義良好的介面和契約聯系起來。介面採用中立的方式進行定義,它獨立於實現服務的硬體平台、操作系統和編程語言。
不同的廠商和個人對 SOA 有如下不同的定義:
(1)Service-architecture.com 將 SOA 定義為: 「本質上是服務的集合。服務間彼此通信,這種通信可能是簡單的數據傳送,也可能是兩個或更多的服務協調進行某些活動。服務間需要某些方法進行連接。所謂服務就是精確定義、封裝完善、獨立於其他服務所處環境和狀態的函數。」
(2)Looselycoupled.com 將 SOA 定義為: 「按需連接資源的系統。在 SOA 中,資源被作為可通過標准方式訪問的獨立服務,提供給網路中的其他成員。與傳統的系統結構相比,SOA 規定了資源間更為靈活的鬆散耦合關系。」
(3)Gartner 則將 SOA 描述為: 「客戶端/伺服器的軟體設計方法,一項應用由軟體服務和軟體服務使用者組成……SOA 與大多數通用的客戶端/伺服器模型的不同之處,在於它著重強調軟體組件的鬆散耦合,並使用獨立的標准介面。」
雖然不同廠商或個人對 SOA 有著不同的理解,但是從以上定義可以看出 SOA 的幾個關鍵特性: 一種粗粒度、鬆散耦合服務架構,服務之間通過簡單、精確定義介面進行通訊,不涉及底層編程介面和通訊模型。
SOA 並不是一種現成的技術,而是一種架構和組織 IT 基礎結構及業務功能的方法。SOA 是一種在計算環境中設計、開發、部署和管理離散邏輯單元(服務)的模型。SOA要求開發人員將應用設計為服務的集合,以及跳出應用本身進行思考,考慮現有服務的重用,或思索他們的服務如何能夠被其他項目重用。「單獨的」、「獨立的」、「封裝完善的」服務所具有的一個關鍵的好處是,可以採用多種不同方法將它們組合成較大型的服務,由此來實現重用。
4.2.3.2 構成 SOA 的技術
SOA 本身是 「如何將軟體組織在一起」 的抽象概念。它依賴於用 XML 和 Web 服務實現並以軟體的形式存在的更加具體的觀念和技術。此外,它還需要安全性、策略管理、可靠消息傳遞以及會計系統的支持,從而有效地工作。還可以通過分布式事務處理和分布式軟體狀態管理來進一步地改善它。
SOA 服務和 Web 服務之間的區別在於設計。SOA 概念並沒有確切地定義服務具體如何交互,而僅僅定義了服務如何相互理解以及如何交互。其中的區別也就是定義如何執行流程的戰略與如何執行流程的戰術之間的區別。而另一方面,Web 服務在需要交互的服務之間如何傳遞消息有具體的指導原則; 從戰術上實現 SOA 模型最常見的方式是通過HTTP 傳遞的 SOAP 消息。因而,從本質上講,Web 服務是實現 SOA 的具體方式之一。
雖然 Web 服務是實現 SOA 最好的方式,但是 SOA 並不局限於 Web 服務。其他使用WSDL 直接實現服務介面並且通過 XML 消息進行通信的協議也可以包括在 SOA 之中。例如 CORBA 和 IBM 的 MQ 系統通過使用能夠處理 WSDL 的新特徵也可以參與到 SOA 中來。如果兩個服務需要交換數據,那麼它們還會需要使用相同的消息傳遞協議,但是數據介面允許相同的信息交換。
4.2.3.3 SOA 的基本特徵
SOA 是一種粗粒度、鬆散耦合的軟體架構,其服務之間通過簡單、精確定義的介面進行通訊,不涉及底層編程介面和通訊模型。這種模型具有下面幾個特徵(http://tech.ccidnet.com/art/1110/20060210/425863_ 1.html)[U1]。
(1)鬆散耦合。服務請求者到服務提供者的綁定與服務之間是松耦合的。鬆散耦合旨在將服務使用者和服務提供者在服務實現和客戶如何使用服務方面隔離開來。服務介面作為與服務實現分離的實體而存在,服務請求者不知道提供者實現的技術細節,比如程序設計語言、部署平台等等。服務請求者往往通過消息調用操作請求消息和響應而不是通過使用文件格式。服務實現的修改完全不會影響到服務的使用者。
(2)粗粒度服務。服務粒度指的是服務所公開功能的范圍,一般分為,細粒度和粗粒度。其中,細粒度服務是那些能夠提供少量業務流程可用性的服務。粗粒度服務是那些能夠提供高層業務邏輯的可用性服務。粗粒度服務可以靈活組合穩定性強、重用性高的細粒度服務,而快速形成新的業務邏輯。雖然細粒度的介面為請求者應用程序提供了更多的靈活性,它同樣也意味著交互的模式可能隨著不同的服務請求者而不同。這可能使對於服務提供者的支持更加困難。粗粒度介面保證服務請求者將以一致的方式使用服務。面向服務的體系結構不要求使用粗粒度介面,但是推薦使用它們作為外部集成的最佳實踐。服務編排可以用來創建運行由細粒度操作組成的業務流程的粗粒度介面。
(3)標准化的介面。服務描述的重點在於與幾部分交互所用的操作服務、調用操作的消息、構造這種消息的細節和關於向何處發送用於構造這種消息的處理細節的消息。通過服務介面的標准化描述,從而使得該服務可以提供給在任何異構平台和任何用戶介面使用。該介面隱藏了實現服務的細節,允許獨立於實現服務基於的硬體或軟體平台和編寫服務所用的編程語言使用服務。
(4)無狀態服務。服務應該是獨立的、自包含的請求,在實現時它不需要從一個請求到另一個請求的信息或狀態。服務不應該依賴於其他服務的上下文和狀態。當需要依賴時,它們最好定義成通用業務流程、函數和數據模型,而不是實現構件比如會話密鑰。當然,請求者應用程序需要服務調用之間的持久狀態,但是這不應該與服務提供者分開。
㈨ 什麼是SOA架構,能不能簡單通俗點說一下...謝謝!
SOA(Service-oriented architecture,面向服務架構)。1996年,Gartner最早提出SOA。2002年12月,Gartner提出SOA是"現代應用開發領域最重要的課題",還預計到2008年,SOA將成為佔有絕對優勢的軟體工程實踐方法,主流企業現在就應該在理解和應用SOA開發技能方面進行投資。
更好支持商業流程
SOA並不是一個新事物,IT組織已經成功建立並實施SOA應用軟體很多年了,BEA、IBM、等廠商看到了它的價值,紛紛跟進。SOA的目標在於讓IT變得更有彈性,以更快地響應業務單位的需求,實現實時企業(Real-Time Enterprise,這是Gartner為SOA描述的願景目標)。而BEA的CIO Rhonda早在2001年6月就提出要將BEA的IT基礎架構轉變為SOA,並且從對整個企業架構的控制能力、提升開發效率、加快開發速度、降低在客戶化和人員技能的投入等方面取得了不錯的成績。
SOA是在計算環境下設計、開發、應用、管理分散的邏輯(服務)單元的一種規范。這個定義決定了SOA的廣泛性。SOA要求開發者從服務集成的角度來設計應用軟體,即使這么做的利益不會馬上顯現。SOA要求開發者超越應用軟體來思考,並考慮復用現有的服務,或者檢查如何讓服務被重復利用。SOA鼓勵使用可替代的技術和方法(例如消息機制),通過把服務聯系在一起而非編寫新代碼來構架應用。經過適當構架後,這種消息機制的應用允許公司僅通過調整原有服務模式而非被迫進行大規模新的應用代碼的開發,使得在商業環境許可的時間內對變化的市場條件做出快速的響應。
SOA也不僅僅是一種開發的方法論--它還包含管理。例如,應用SOA後,管理者可以方便的管理這些搭建在服務平台上的企業應用,而不是管理單一的應用模塊。其原理是,通過分析服務之間的相互調用,SOA使得公司管理人員方便的拿到什麼時候、什麼原因、哪些商業邏輯被執行的數據信息,這樣就幫助了企業管理人員或應用架構師迭代地優化他們的企業業務流程、應用系統。
SOA的一個中心思想就是使得企業應用擺脫面向技術的解決方案的束縛,輕松應對企業商業服務變化、發展的需要。企業環境中單個應用程序是無法包容業務用戶的(各種)需求的,即使是一個大型的ERP解決方案,仍然不能滿足這個需求在不斷膨脹、變化的缺口,對市場快速做出反應,商業用戶只能通過不斷開發新應用、擴展現有應用程序來艱難的支撐其現有的業務需求。通過將注意力放在服務上,應用程序能夠集中起來提供更加豐富、目的性更強的商業流程。其結果就是,基於SOA的企業應用系統通常會更加真實地反映出與業務模型的結合。服務是從業務流程的角度來看待技術的--這是從上向下看的。這種角度同一般的從可用技術所驅動的商業視角是相反的。服務的優勢很清楚:它們會同業務流程結合在一起,因此能夠更加精確地表示業務模型、更好地支持業務流程。相反我們可以看到以應用程序為中心的企業應用模型迫使業務用戶將其能力局限為應用程序的能力。
企業流程(enterprise process)是流經企業框架的空氣,它賦予業務模型里的組件以生命,並更加清晰地定義了它們之間的關系。流程定義了同業務模型進行交互操作的專門方法。例如,會計可能是企業服務系統的一個組件--但是將發票寄給客戶卻是一個業務流程。服務被定義用來支持業務流程,因而貫穿整個流程始終的是:各種服務組件在流程和邏輯實現過程中的裝配操作。理解業務流程是定製服務的關鍵所在。
有利於企業業務的集成
傳統的應用集成方法(點對點集成、企業消息匯流排或中間件的集成(EAI)、基於業務流程的集成)都很復雜、昂貴,並且不靈活。這些集成方法難於快速適應基於企業現代業務變化不斷產生的需求。基於面向服務架構 (SOA) 的應用開發和集成可以很好的解決其中的許多問題。
SOA 描述了一套完善的開發模式來幫助客戶端應用連接到服務上。這些模式定製了系列機制用於描述服務、通知及發現服務、與服務進行通信。
不同於傳統的應用集成方法,在 SOA 中,圍繞服務的所有模式都是以基於標準的技術實現的。大部分的通信中間件系統,如 RPC、CORBA、DCOM、EJB 和 RMI,也同樣如此。可是它們的實現都不是很完美的,在權衡交互性以及標準定製的可接受性方面總是存在問題。SOA 試圖排除這些缺陷。因為幾乎所有的通信中間件系統都有固定的處理模式,如RPC 的功能、CORBA 的對象等等。然而,服務既可以定義為功能,又可同時對外定義為對象、應用等等。這使得 SOA 可適應於任何現有系統,並使得系統在集成時不必刻意遵循任何特殊定製。
SOA 幫助企業信息系統遷移到"leave-and-layer"架構之上,這意味著在不用對現有的企業系統做修改的前提下,系統可對外提供 Web 服務介面,這是因為它們已經被可以提供 Web 服務介面的應用層做了一層封裝,所以在不用修改現有系統架構的情況下,SOA 可以將系統和應用迅速轉換為服務。SOA 不僅覆蓋來自於打包應用、定製應用和遺留系統中的信息,而且還覆蓋來自於如安全、內容管理、搜索等 IT 架構中的功能和數據。因為基於 SOA 的應用能很容易地從這些基礎服務架構中添加功能,所以基於SOA的應用能更快地應對市場變化,為使企業業務部門設計開發出新的功能應用