SOA 與資料庫的新定位(IOD)

isoa發表於2009-04-03
本文介紹了 SOA 架構下的新的系統架構的變化,以及當前的 SOA 架構的優點和缺點,傳統的資料庫定位和 Information On Demand 的資料庫的思路的區別,並進一步闡述了 SOA 和 IOD 的關係,並且通過典型的案例來探索新的系統架構的思路。

SOA(Service-Oriented Architecture) 是目前業界最為流行的 IT 架構,其定義有很多種,但是不外乎服務,標準,模組化和可重用等。這類的定義我們從網上可以搜尋到很多,讀者可以自己從各種定義去理解 SOA 。

在 SOA 的技術架構下,各個廠商紛紛推出了自己相應的產品,以滿足 SOA 資訊化建設的需要。毫無例外,目前現有的各個主流資料庫廠商也紛紛宣稱自己的產品支援 SOA 體系。那麼,資料庫在整個 SOA 的體系中到底是什麼樣的一個定位,到底什麼樣的資料庫才算是更加 SOA 化的資料庫呢?

道可道,非常道。本文只是筆者結合了目前資訊化建設過程中的一些趨勢,加上自己針對 SOA 和目前資料庫的發展做出的一些感悟而形成。筆者仍然希望讀者在閱讀完本文之後,能夠針對 SOA 體系下資料庫發展的定位有一個自己的答案。

SOA 的 IT 體系

在介紹資料庫的發展定位之前,我們仍然有必要回顧一下目前眾多的針對 SOA 的理解。本人在和很多的業界同行接觸的過程中,曾經很多次的聽到有人在抱怨說,SOA 確實是一個好東西,但是,目前也僅限於博士的論文中,而不是實際的應用過程中。那麼,我們首先看一下 SOA 到底是什麼?

在這裡,我引用一下 Gartner 關於 SOA 的定義:

SOA 是一種客戶機 / 伺服器軟體設計方法,其中的應用程式由軟體服務和軟體服務使用者(也稱為客戶機或服務請求方)組成。 SOA 與更為通用的客戶機 / 伺服器模型不同,其定義強調軟體元件間的鬆散偶合及對獨立介面的使用。

從 Gartner 關於 SOA 的定義中我們能夠了解到以下資訊:

  • SOA 是一種技術方法
  • SOA 是模組化的方法
  • SOA 的載體是服務

那麼這是否就是 SOA 資訊化建設的全部呢?是否說,我們只要針對應用程式實現了模組化的服務開發,那麼我們就能夠說,我們的系統就是 SOA 了呢?

我們首先看下面典型的 SOA 系統架構示意圖:


圖 1. SOA 系統架構示意圖
圖 1. SOA 系統架構示意圖

從上面的這張圖,我們能夠很清楚地看到,在 SOA 的模組化的服務方式下,IT 系統的構建將會變得非常簡單。整個 IT 系統其實就可以理解為針對業務過程的模組化的服務組合。因此,在圖中,我們特別標出了 IT “邏輯層”這樣一個概念。

這裡的 IT 邏輯層其本質就是將原子化的服務直接按照業務的邏輯,組裝成複合業務邏輯的一系列的服務的流程。通過這些靈活配置的服務的流程,來對映實際得業務過程。我們在這裡將其定義為 IT 邏輯層。

因此,筆者認為,SOA 絕不僅僅是一個技術層面的問題,他更深層次的表現為通過服務實現對業務和 IT 技術之間的相互描述。即如何通過模組化的服務來更好,更靈活的描述現實的業務活動,而這也符合一直以來資訊化技術的發展潮流。那就是,如何提供更高階的語言,能夠更加方便靈活的實現針對現實世界的描述,並最終能夠實現人機的直接互動。

從這個意義上說,筆者認為的 SOA 應該包含以下幾個含義:

  • SOA 是一種技術方法
  • SOA 是模組化的方法
  • SOA 的載體是服務
  • SOA 直接通過服務描述靈活業務

如果說一定要用一句話來概括 SOA 到底解決了什麼問題,可以概括為:前幾十年 IT 的發展是強調和解決程式開發和工具的模組化,而程式的模組化並不能帶來應用程式的模組化,因此,SOA 將解決應用系統的模組化問題。

同樣,通過這張典型的 SOA 架構圖,我們在這裡也有一些需要思考的問題,比如說,我需要一個特定的員工的資訊,而這個人,可能在財務系統裡面,也可能在人力資源系統裡面,那麼我在通過服務去查詢相關人的資訊的時候,我就需要至少去兩個系統裡面去查詢,如果有更多的系統,那麼我們是不是需要去更多的系統裡面去查詢?有沒有一個單一的資料庫系統,能夠提供給我們應用系統一個單一的服務模組,能夠查詢所有員工的所有資訊?

因此,這裡就引出一個問題,SOA 解決了應用系統的模組化問題,同樣,也需要資訊層提供統一的資訊服務模組。就是說,在 SOA 的應用架構下,需要隨需應變的資訊服務提供,而這也是為什麼我們需要實現 Information On Demand (IOD) 的架構原因。


傳統的資料庫定位

從上面的針對 SOA 體系的描述,我們瞭解到,目前整個 IT 系統,正朝著模組化,服務化的方向前進,而其最終發展方向是找到更好的方式來描述我們真實的業務流程。而這一潮流也將不可避免的影響到作為整個 IT 系統的一部分的資料庫系統。

反觀我們以前資料庫的發展定位,主要著重在以下幾個技術方面:

  • 儲存資料,儲存資料是資料庫系統的最為基本的功能之一。在未來 SOA 體系下,資料庫不可避免仍然承擔這一使命。
  • 提供更加全面的功能,將近 20 年的商用關係型資料庫系統的發展,其實一直都是在為了提供更加全面的功能。其中,基本功能為儲存和查詢資料,此外,還有統計分析功能等一系列其他功能。
  • 提供更高效的效能,隨著資料量的增加,資料庫系統為了提供效能做出了很大的改進。目前,隨著關係型理論基礎之上的技術的發展,從資料庫本身提高效能的步伐將會越來越慢,這一點我們可以從 TPCC 的標準測試中可以看出,我們寄希望於硬體本身的效能的提高來帶動目前關係型資料庫效能的提高。

從上面的分析我們可以看出,傳統的資料庫的發展其實正在走過它的第一個階段,即,在一個理論框架基礎上不斷完善,發展,壯大的過程。但是,隨著 IT 系統的發展,現有資料庫的缺陷也越來越明顯,就是說,現有關係型資料庫必須要通過應用系統才能表達真正的邏輯含義,脫離了應用系統,資料庫本身沒有任何價值。

因此,隨著 IT 新技術的發展,資料庫需要有一個新的發展。

SOA 下資料庫的功能轉換:

前面針對 SOA 體系的分析,我們瞭解到,IT 系統發展的目標就是更方便,更靈活的描述我們的真實世界。因此,在應用系統層,我們通過標準的服務模組來實現應用系統的模組化。但是,在資訊提供層,我們現有的資訊層並不能提供全面的,統一的業務所需要的資訊,而只能基於特定的業務系統提供部分的資訊服務,因此,SOA 架構就需要有一個強大的資訊服務提供層,能夠提供隨需應變的資訊服務,即實現資訊層的 IOD(Information On Demand) 。

針對目前的 IT 現狀,我們改進了 SOA 的架構圖,在這張架構圖中,我們提出了一個基礎資料管理層的概念。基礎資料管理層的資料主要特點是整合整個企業相關的所有資訊,其主要特點有:

  • 基礎資料管理層的資訊是獨立於任何應用的資訊資產,其本身不屬於任何一個特定的應用,但是可以通過標準的服務對外提供資訊服務。
  • 基礎資料管理層的資訊是基於整個企業級的,通過資料模型指導構建的資料資產。這裡對外提供全域性的完整的資訊服務,而不是片面的,基於某些部門級的。


圖 2. 改進後的 SOA 架構圖
圖 2. 改進後的 SOA 架構圖

通過在 SOA 架構中增加了基礎資料管理層,更加豐富了整個 SOA 的架構,讓我們模組化,服務化的應用系統,有了模組化,服務化的資訊服務基礎。這樣,在 SOA 架構下,新應用的開發不用再去連線多個系統為了解決一個問題,具體的業務部門的問題,可以通過一個通用的資訊服務模組就能夠完成相應的業務,真正簡化了整個新系統的資訊服務提供者的數量。例如,在上面的示意圖中,需要客戶資訊的時候,只需要訪問客戶資料的服務,就可以得到你所需要的客戶的資訊,而不需要單獨的去訪問財務系統,人力資源系統等多個應用系統。

在改進後的 SOA 架構下,我們認為實現了以下幾個方面的轉變:

  • 實現了資料資源向資料資產的轉變。通過基礎資料管理層,實現了 IT 系統的資料資產化。資料不再是從屬於某個應用系統的數字,而是真正脫離了應用系統,在資料模型的指導下成為能夠為業務帶來價值的資料資產。在業界,我們也可以把這部分的資料稱之為主資料。
  • 實現了隨需應變的資訊 (Information On Demand) 提供。通過基礎資料管理層,實現了統一的業務後設資料,客戶不再需要通過應用程式去不同的應用系統中尋找自己特定需要的資訊,而只需要呼叫相應的服務介面,從特定的基礎資料中就可以完成相應的操作,真正實現了隨需應變的資料提供。

通過上面的分析,我們知道了 IOD(Information On Demand)在整個 SOA 架構下的定位。那麼要實現這一功能,我們的資料庫還需要哪些方面的發展呢?


資料庫的發展定位

從 SOA 的結構體系要求,結合我們上面的分析可以看出,在新的 SOA 的架構條件下,資料庫發展的定位主要在於下面幾個方面:

  • 資訊儲存:在未來的資料庫的發展中,資訊儲存仍然是資料庫不可或缺的功能。考慮到資料量的增長,對資料庫的大資料量的處理,高效率的業務系統的支援的需求仍然是對資料庫的基本要求。
  • 基礎資料服務:基礎資料服務,或者稱之為主資料服務或者業務後設資料管理,將是資料庫發展的一個重要的方向。只有通過基礎資料服務,才能實現資訊向資產的轉變,才能實現資料庫和應用的分離,才能實現 IOD(Information On Demand) 。而 IOD 將會是整個 SOA 架構的資訊提供者,是整個 SOA 架構的基礎。這個層次包含兩個方面的含義:
  • 基礎資料,是整個企業 IT 系統的資訊基礎,是企業的資料資產,而並不是僅僅是資料。
  • 服務,不僅僅是資料資產,而且是能夠通過服務提供給應用程式的一些服務。

    因此,從上面的分析,基礎資料服務層將會在未來的企業 IT 架構中承擔越來越重要的作用。

  • 資料建模:在未來的資料庫的發展中,資料建模將會得到進一步的發展。特別是隨著資料量的增多,怎樣將浩瀚的資料變成真正的有用的資產,資料建模將是實現這一轉變的重要技術手段。在未來的發展中,資料建模將會結合最新的資料庫技術,例如:XML 等新技術,保證資料模型的穩定性、健壯性、靈活性以及相容性,將是我們在資料建模方面所要考慮的。

    典型案例

    我們下面以一個研究院為例,該研究院負責產品的研發,設計和生產。目前,該研究院已經上的應用系統包括,財務系統,人力資源系統,PDM 研發系統以及 ERP 系統。通過若干年的 IT 系統的建設,我們看到,各個系統已經執行穩定,基本滿足業務的需要。這樣的一個系統架構在我們許許多多的客戶那裡經常可以看到,是目前較為流行的一種系統設計法。

    但是,這樣的系統架構設計的缺點也是顯而易見的。按照不同的業務需求而設計的專門的業務系統,雖然能夠滿足該業務部門的需要,但是,很顯然,這些系統之間是不能進行資訊互動的。隨著業務部門之間跨部門的協調工作越來越多,這樣架構的系統就顯得越來越滯後。因此,針對此類系統架構進行相應的系統之間的整合是系統發展的必然。


    圖 3. 某研究院已有系統的架構圖
    圖 3. 某研究院已有系統的架構圖

    當該研究院進行系統整合時,最初考慮的只是進行系統之間的整合,保證跨業務部門的業務能夠進行。例如,當人力資源部門在人力資源系統中註冊新的員工的時候,財務系統中也能夠直接反映出來,並可以在系統中為其進行工資評定等一系列財務管理。如上圖所示,在研究院的設想中,引入 SOA 的架構,增加一個資料匯流排,在綜合管理模組中,將財務系統和人力資源系統中定義一些 webservices 服務模組,併發布到服務匯流排上,即可以實現這兩個系統的資訊互動。

    上述的方式能夠很簡單的實現財務系統和人力資源系統之間的資訊互動,但是從整個系統架構考慮,仍然存在著一些值得思考的地方:

    • 提供了企業服務匯流排,但是服務的提供沒有規劃,例如:提供員工資訊的服務的出處就很多,財務系統,人力資源系統以及 ERP 系統等等,而且每個服務只能提供一部分的員工資訊,必然導致服務得提供過於凌亂。
    • 從整個系統架構看,整合後的系統仍然只是服務於特定的系統,如綜合管理等。仍然沒有擺脫業務部門提需求,IT 部門去實現的方式,IT 只是被動的去服務業務部門,而不能主動的提供服務。

    因此,針對上述的情況,在和客戶充分的交流後,我們提出瞭如下的改進後的系統架構:


    圖 4. 經過改進後的系統架構圖
    圖 4. 經過改進後的系統架構圖

    通過同改進前的系統架構的對比,我們很容易的發現,我們只是在整個系統架構中加入了一層基礎資料層。這個基礎資料層,負責收集整個業務系統層生成的資料,並且按照特定的資料模型加工成有用的資料資產。例如,我們在這裡建議將員工資料以及元器件的資料按照特定的模型組織起來,形成了整個研究院的基礎資料,這裡,我們建立了員工資料中心和元器件的資料中心。企業服務匯流排之上的新應用和新業務需求,需要任何的員工資訊的時候,我們可以直接通過員工基礎資料這個資料中心,向企業服務匯流排提供相應的員工資料。同樣,對元器件資料亦然。

    經過改進後的這樣一個架構,我們認為主要體現瞭如下幾個方面的含義:

    • 業務,應用系統和資料庫實現了架構上的鬆耦合。特定的業務再也不需要通過特定的應用系統來實現,而是從整體上實現了業務,應用,資料庫分離的特點。三者中的任何一個部分都可以獨立存在而不再是相互依存,特別是實現了隨徐應變的資訊服務提供(Information On Demand),將會是幾十年 IT 發展的一個里程碑。
    • 真正實現了系統整合。通過基礎資料層的資料中心的建設,不僅實現了業務需求的跨系統的業務流程的整合,更加通過資料中心的建立,實現了整個企業的資訊整合,形成了整個企業的資料資產,不僅能夠提供給業務系統,更能提供給領導輔助決策分析等等。這一變化從而使得 IT 部門不再只是業務部門的輔助部門,而是能夠為企業帶來更多的新的業務增長點的核心部門。而這一轉變,正是暗合了新技術帶動新生產力的歷史發展規律。

    結束語

    “大學之道,在明明德”,我們的資訊化建設,同樣需要有一個正確的認識。當前的資訊化建設,存在著兩個極端。

    • 忽如一夜春風來,千樹萬樹梨花開。 SOA 之於資訊化建設,同樣也是。彷彿一夜之間,所有的 IT 系統都實現了 SOA 了。
    • 另外一些人則認為,SOA 僅僅存在於某些人的學術論文上,或者是那麼的高不可攀。

    上述兩種思想其實都要不得,SOA 是實實在在存在於我們周圍的,非常真實的,對我們資訊化建設同樣非常有幫助的一種架構思想。筆者也是處於對 SOA 的進一步的深入認識過程中。這裡提到的 SOA 思想對於資料庫的發展和影響,怎樣才能實現資訊管理的 SOA,這些還需要讀者們去進一步思考。

    最後引用道德經得一段話,同樣適用於 SOA 和 IOD,與讀者共勉:“曲則全,枉則直,窪則盈,敝則新,少則得,多則惑”。



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

相關文章