
摘要:當架構師和系統設計師學習或使用新技術和新概念時,如云計算、SOA服務,常常會忽略系統架構的基本要素,包括數據。數據作為信息的基本單位,如果不能掌握這些底層基本單位,就會面臨架構的風險,甚至擴展到云計算系統失敗的風險。只有將底層單元定義成需要的信息模型,才能幫助人們將系統在基于SOA服務架構向云計算移植。
關鍵詞:信息模型構建;SOA服務架構;云計算;數據;數據結構 文獻標識碼:A
中圖分類號:TP393 文章編號:1009-2374(2015)29-0080-02 DOI:10.13535/j.cnki.11-4406/n.2015.29.040
將基于SOA架構的服務延伸到云計算的方法一般有五個步驟:(1)定義數據;(2)定義服務;(3)定義流程;(4)定義管理;(5)定義應該放在云計算平臺的數據、服務和流程。只有對信息、服務和流程模型理解得更好時,我們需要向云計算轉移的服務才會做得越好。
1 數據為要的理念
定義數據是將基于SOA架構的服務延伸到云計算的第一個步驟,這也是服務轉向云計算之前,近距離勘查架構底層信息的重要步驟。這樣做的好處有:首先,在轉移服務之前,不管是用什么樣的架構、模型或者系統,理解底層的信息都是必須的,這樣可以判斷哪些信息是可以轉移到云計算中,哪些不適合;其次,數據到服務,再到流程的方法具有很強的靈活性,還可以根據檢查的需要,沿著流程到服務,再到數據的方向進行。
2 信息模型
通常我們把事件的集合稱為數據,數據通常被看作用于創建信息和知識的最低級別的抽象。數據包括數據字典和數據目錄。《IBM計算機專業字典》中這樣解釋數據字典:“集中存儲的數據信息,包括含義、與其他數據的關系、來源、用法以及格式等。”“信息是將具有意義的數據模式,即按照有意義的方式組織的數據。”為數據編目,將我們收集到的數據形式化,它包括數據字典,二者的區別是數據字典往往是針對特定的單一系統或者應用,數據目錄則可以應用到所有系統中。
信息模型是以數據為基礎創建并應用到架構層,按照一定意義的方式組織數據。信息模型是架構的解決方案或目標任務。信息模型作為主數據跨越整個架構,它是通用的中心參考點。
3 定義信息模型
一旦項目建立就需要選擇相應的問題域,并轉入核心數據的分析。定義數據模型是一個難度較大的工作,因為數據可能是過去的,也可能是私有的,甚至二者兼備,但是它們的分析過程卻是一樣的。成熟的定義信息模型流程如圖1所示,我們會逐一解釋。
圖1 創建信息模型的流程
3.1 理解本體
根據維基百科:“在計算機科學和信息科學中,主體是對一個領域的一組概念以及它們之間的關系形式表達,它通常用于推理該域中的屬性,也可以用于定義域。”在本文中我們使用本體的目的是使用它定義關系能力。使用本體的好處是,不論信息位于何處都可以理解該信息,并將它映射到基于SOA之中的云計算服務中。為了收集某個特定實體的信息,需要使用不同的資源來表示個別實體,即使個體差距可能存在差距。以關系數據庫為例,實體是通過主鍵標識的,不同的信息系統中,用于描述屬性的方式也不盡相同。本體和支持本體的WEB標準并非新技術,如W3C隊本體語言的貢獻之一是OWL,使用OWL作為WEB本體和云計算的起點,可以使數據實現自動化。它為云計算提供了創建和共享本體的中心地點。
3.2 理解數據
理解數據是信息模型過程中最繁重的一步,該步驟中我們必須檢查信息和數據的細節,創建出傳統的可交付件,對于計算需要理解數據的位置在哪里,收集數據的信息并確定數據在流程中的流向問題。一句話,云的解決方案需要定義信息的流動性以及信息與核心服務業務流程的關系是什么。
3.3 標示數據
3.3.1 創建數據字典。現在你需要創建一個數據字典,用于存放要分析的數據和其他信息,但是由于系統千差萬別,所以很難找到一組共同屬性,因此在對數據創建字典時需要跟蹤的信息有以下內容:特定數據元素存在的原因;數據的所有者;數據的格式;數據的安全屬性;邏輯數據結構和物理數據結構的作用。
3.3.2 理解一致性問題。一致性是云計算數據庫中常見的問題,為了解決此類問題,數據使用的規則和邏輯是至關重要的。雖然有些數據庫通過內建設置存儲過程或者觸發器來解決一致性問題,可是這些都依賴邏輯關系,因此還需要建立應用的規則,防范出現數據不一致的問題。
3.3.3 理解數據延遲。數據延遲是數據實時性的特點,這也是云計算過程中必須明確的數據屬性之一。雖然數據延遲有很多種,但是主要關注以下三類:(1)實時數據,為了接近0延遲,云計算實現需要不斷回到數據庫、應用程序以及其他系統,在這樣的要求中,數據庫本身的性能也需要考慮在其中。一個進程更新了數據,另一個進程也必須同時取得更新的信息;(2)接近實時數據,接近實時數據是按照固定時間段來更新數據,雖然不能實時更新,但在較短的單位時間完成數據的更新訪問就已經很及時了;(3)不定時數據,不定時數據是在單位時間進行更新,如客戶的地址和賬號信息就屬于這類內容。
根據上面三種數據延遲類型,我們需要確定數據的更新屬性、它們分別適用什么方案、什么頻率、隨時間遷移數據怎樣變等。
3.4 數據目錄
數據目錄是對我們在前面收集的數據進行形式化。一個好的數據目錄應該包括系統應用的所有數據元素,如所有者、系統、各式、安全屬性、一致性屬性、依賴關系等。
4 結語
數據是系統應用的基礎,也是進行系統移植到云計算的根本,本文所謂新的地方在于確立了以數據為導向的開發方向,特別是需要解決數據結構、數據間的關系、一致性、安全以及數據與數據之間的其他要素,最終明確如何建立數據管理在本地系統和云計算之間管理的目標,就像數據存放在本地系統內,這是我們研究的目標。
參考文獻
[1] 馬國耀.云計算與SOA[M].北京:人民郵電出版社,2010.
[2] 周洪波.云計算:技術、應用、標準和商業模式[M].北京:電子工業出版社,2011.
[3] 余水清.大數據管理:數據集成的技術、方法與最佳實踐[M].北京:機械工業出版社,2014.
[4] 祁偉,等.云計算:從基礎架構到最佳實踐[M].北京:清華大學出版社,2013.
[5] Dong Yuan,Yun Yang,Xiao Liu,Jinjun Chen.A data placement strategy in scientific cloud workflows[J].Future Generation Computer Systems,2010,(8).
[6] Michael Cusumano.Cloud computing and SaaS as new computing platforms[J].Communications of the ACM,2010,(4).
[7] Luis M.Vaquero,Luis Rodero-Merino,Juan Caceres,Maik Lindner.A break in the clouds[J].ACM SIGCOMM Computer Communication Review,2008,(1).
作者簡介:馬淑俊(1978-),女,甘肅人,拉薩市氣象局工程師,研究生,研究方向:氣象服務。
(責任編輯:秦遜玉)