SOA 新業務語言 新系統架構——什麼是SOA

原文地址:http://blog.csdn.net/ichaos/archive/2008/01/20/2054377.aspx編程

SOA的概念是Gartner在1996年提出來的,並於2002年12月進一步提出SOA是「現代應用開發領域最重要的課題」。從Gartner的觀點來看,SOA是一種新的企業應用架構和企業IT基礎架構,主要是企業IT基礎架構的思想、方法、風格、工具的一個總稱。

更多的關於SOA的定義: 
IBM:
SOA是一種能夠不斷進化的方式,用它來構建以解決業務問題爲中心的信息技術(IT)系統。

微軟:
A loosely-coupled architecture designed to meet the business needs of the organization. 

OASIS:
Service Oriented Architecture (SOA) represents a collection of best practices principles and patterns related to service-aware, enterprise-level, distributed computing.

一個流傳很廣的定義:
SOA,面向服務的體系結構(service-oriented architecture)是一個組件模型,它將應用程序的不一樣功能單元(稱爲服務)經過這些服務之間定義良好的接口和契約聯繫起來。接口是採用中立的方式進行定義的,它應該獨立於實現服務的硬件平臺、操做系統和編程語言。這使得構建在各類這樣的系統中的服務能夠以一種統一和通用的方式進行交互。 

雖然到目前爲止,關於SOA尚未一個統一的、被普遍承認的定義,可是SOA的核心理念倒是一致的:
一、 SOA是以業務爲導向的,強調業務領域的分析和建模。
二、 SOA不是一個產品,甚至不是一項技術。本質上SOA是一種思想,一種新的IT系統架構思想。
三、 SOA是一個不斷進化的過程,是一系列最佳實踐的集合。
四、 SOA不是新生事物。將這種技術運用於商業能夠追溯到算盤時代。《SOA概念、技術與設計》一書中有以下關於面向服務的類比:
讓咱們來看一看普通的國際化大都市,其中已經存在許多面向服務的業務。任何一個公司都是面向服務的,由於每一個公司所提供的獨特服務都能被多個消費者使用。全體業務組成一個業務羣落。業務羣落的意義在於,不禁單個業務插口提供全部的服務。經過將羣落分解爲特定的、獨立的插口,就能夠得到一個分佈式的插口環境。 

理想的SOA:
擁有一個鬆耦合的、高度分佈的應用架構不是今天才有的夢想,可是SOA則是第一次讓人們在擁有這種夢想的同時擺脫了專有、複雜和昂貴的代價。 
SOA的理想是,在開放的標準體系下,全部的應用能夠相互鏈接,傳遞信息。新的應用能夠很快鏈接到原有的SOA體系中;而舊的應用也能夠加入到新的SOA架構裏。就像計算機裏的系統總線,全部的設備均可以連上去來交換數據,SOA力圖讓全部的應用在SOA的理想國中相互無障礙地對話。在具體實現上,SOA將企業應用切分紅小的應用模塊,每個應用模塊在SOA理想國中被視爲一個服務,企業能夠將各類服務根據須要進行組合,從而完成一項業務需求。

SOA理論基礎
解決大型問題的邏輯是:若是它可以分解成更小的、相關的片斷集合,那麼它就更易於構造、實現和管理。其中的每一個片斷都表明了這個問題的一個關注點或一個特定部分。
「面向服務」就是以這種邏輯來解決IT系統架構問題的,它表明了分離關注點的一種方法論,能夠根據不一樣的業務目標而應用於不一樣的場景。因此有人提出以下論點:「關注點分離是SOA的核心原則。」


關於SOA的比喻:魚香肉絲
(來源:IBM中國研發中心Web2.0首席架構師、資深技術主管毛新生)
你到餐館去吃魚香肉絲,這是一個服務,作魚香肉絲就屬於業務處理能力,但是你們作的魚香肉絲是不同的,也就是Quality of Service,你們都可以作魚香肉絲,這是一個接口層次上的問題,可是Quality存在不一樣,並且我對這個餐館表示不滿的時候,餐館經理就出來處理問題了,是從新作一份仍是免單了,這如何解決問題就是業務策略。

這樣一個簡單的事情它其實代表了在過去代碼的時代所沒法表達的內容。一個業務活動它有它的業務處理能力,有它的功能,同時有跟這個功能有關係的一些關於 Quality的要求,還有一些處理各類各樣事件的業務策略,全部的這些東西融合在一塊兒,他會出如今服務的描述裏面,還會組裝在一個形式化描述的業務流程 裏面,這些東西都是業務人員能夠懂的,透過這樣一個東西他就天然而然的將下面的一些應用和各類各樣的數據整合在了一塊兒,與此同時,咱們也提供了人工活動的 支持,這種人工活動的支持也是經過服務的接口來描述。從而使得人員、數據、應用就能夠很是無縫的相互協做了。架構


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/ichaos/archive/2008/01/20/2054377.aspx編程語言

相關文章
相關標籤/搜索