冉崇善, 王馬川
(陜西科技大學(xué)電氣與信息工程學(xué)院, 陜西 西安 710021)
隨著IT技術(shù)的發(fā)展與辦公電子信息化的推進(jìn),信息系統(tǒng)建設(shè)已經(jīng)成為更多的企業(yè)和集體的必然需要.SOA架構(gòu)即將形成新的信息系統(tǒng)架構(gòu)風(fēng)暴,但是在企業(yè)與DW之間還沒(méi)有很好的集成,為此首先了解一下SOA 及 DW 的概念[1,2].
圖1 SOA架構(gòu)交互模型
SOA(面向服務(wù)的體系結(jié)構(gòu))是一種以服務(wù)為組件的軟件架構(gòu)模式,將業(yè)務(wù)作為鏈接服務(wù)或可重復(fù)業(yè)務(wù)任務(wù)進(jìn)行集成,可在需要時(shí)通過(guò)網(wǎng)絡(luò)訪問(wèn)這些服務(wù)和任務(wù).這個(gè)網(wǎng)絡(luò)可以存在于一個(gè)地方,也可以分散于各地且采用不同的技術(shù),通過(guò)對(duì)來(lái)自各地的服務(wù)進(jìn)行組合,可讓客戶端在本地實(shí)現(xiàn)功能.這些服務(wù)是自包含的,具有定義良好的接口,允許這些服務(wù)的用戶(客戶機(jī)或使用者)了解如何與其進(jìn)行交互.SOA以其“松散耦合”的應(yīng)用程序組件為開(kāi)發(fā)帶來(lái)了方便:在此類(lèi)組件中,代碼不一定綁定到某個(gè)特定的數(shù)據(jù)庫(kù).將服務(wù)組合為各種需要的應(yīng)用程序,通過(guò)約定好的“服務(wù)契約”來(lái)進(jìn)行服務(wù)調(diào)用,如圖1所示.SOA架構(gòu)后的系統(tǒng)大幅度提高了代碼重用率,在增加功能的同時(shí)減少了工作量.
圖2 數(shù)據(jù)倉(cāng)庫(kù)一般體系結(jié)構(gòu)
數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)面向主題、集成、時(shí)變、非易失的數(shù)據(jù)集合,是決策支持系統(tǒng)和聯(lián)機(jī)分析應(yīng)用數(shù)據(jù)源的結(jié)構(gòu)化數(shù)據(jù)環(huán)境[3].根據(jù)數(shù)據(jù)倉(cāng)庫(kù)所管理的數(shù)據(jù)類(lèi)型和它們所解決的企業(yè)問(wèn)題范圍,一般可將數(shù)據(jù)倉(cāng)庫(kù)分為下列3種類(lèi)型:操作型數(shù)據(jù)庫(kù)(ODS)、數(shù)據(jù)倉(cāng)庫(kù)(DW)和數(shù)據(jù)集市(DM).數(shù)據(jù)倉(cāng)庫(kù)具備以下4個(gè)關(guān)鍵特征:面向主題 (Subject Oriented) 的數(shù)據(jù)集合;集成 (Integrated) 的數(shù)據(jù)集合;時(shí)變 (Time Variant) 的數(shù)據(jù)集合;相對(duì)穩(wěn)定 (Nonvolatile) 的數(shù)據(jù)集合.數(shù)據(jù)倉(cāng)庫(kù)的一般體系結(jié)構(gòu)如圖2所示.
SOA架構(gòu)之所以可以高效,不僅因?yàn)槠浞?wù)的調(diào)用,組件復(fù)用和代碼復(fù)用更給系統(tǒng)開(kāi)發(fā)帶來(lái)了便捷.本架構(gòu)中將企業(yè)的所有數(shù)據(jù)獨(dú)立出來(lái),基于數(shù)據(jù)架構(gòu),建設(shè)數(shù)據(jù)集成平臺(tái);將企業(yè)的所有應(yīng)用組件分離出來(lái),基于服務(wù)總線,建設(shè)應(yīng)用集成平臺(tái).企業(yè)的業(yè)務(wù)基礎(chǔ)平臺(tái)由數(shù)據(jù)集成平臺(tái)和應(yīng)用集成平臺(tái)共同組成,應(yīng)用集成平臺(tái)由企業(yè)服務(wù)總線(ESB)和公共的業(yè)務(wù)組件組成.ESB將不同的組件互相銜接起來(lái),在兩個(gè)或更多的組件或系統(tǒng)之間實(shí)現(xiàn)無(wú)縫鏈接集成,使整個(gè)信息系統(tǒng)就如同一個(gè)整體一樣.通過(guò)統(tǒng)一開(kāi)發(fā)或者封裝已有的組件和系統(tǒng)建設(shè)公共服務(wù)組件,形成企業(yè)共享的公用服務(wù)平臺(tái),避免了重復(fù)開(kāi)發(fā)、重復(fù)購(gòu)買(mǎi)、標(biāo)準(zhǔn)不一致等問(wèn)題,其中公共服務(wù)組件包括了工作流組件、業(yè)務(wù)組件、服務(wù)組件、統(tǒng)一認(rèn)證組件、GIS 組件、BI 組件、通用報(bào)表組件等[4,5].
圖3 基于 Webservice 的數(shù)據(jù)集成方案
數(shù)據(jù)集成以SOA為基礎(chǔ)架構(gòu),如圖3所示,應(yīng)用Web service技術(shù)來(lái)實(shí)現(xiàn).實(shí)時(shí)數(shù)據(jù)集成系統(tǒng)包括多個(gè)分布的異構(gòu)子系統(tǒng)、一個(gè)實(shí)時(shí)數(shù)據(jù)捕獲業(yè)務(wù)、UDDI注冊(cè)中心和其它Web service.將每個(gè)異構(gòu)的子系統(tǒng)都進(jìn)行Web service的包裝,屏蔽了異構(gòu)源系統(tǒng)的內(nèi)部細(xì)節(jié),并向外提供它的服務(wù)接口,能響應(yīng)數(shù)據(jù)捕獲Web service的請(qǐng)求并提供服務(wù).UDDI注冊(cè)中心在ntranet上為Web service提供注冊(cè)服務(wù),客戶可通過(guò)UDDI注冊(cè)中心查找可用的Web service,當(dāng)數(shù)據(jù)捕獲服務(wù)檢測(cè)到數(shù)據(jù)變更時(shí),可以在UDDI注冊(cè)中心處查找與相應(yīng)子系統(tǒng)對(duì)應(yīng)的Web service來(lái)處理系統(tǒng)中的數(shù)據(jù)變更,并對(duì)變更的數(shù)據(jù)進(jìn)行包裝,傳遞給數(shù)據(jù)轉(zhuǎn)換Web service.實(shí)時(shí)數(shù)據(jù)捕獲服務(wù)的功能是通過(guò)監(jiān)控?cái)?shù)據(jù)庫(kù)日志的方式檢測(cè)各個(gè)源數(shù)據(jù)庫(kù)端的數(shù)據(jù)變化,并根據(jù)變化的源數(shù)據(jù)庫(kù)類(lèi)型選擇相應(yīng)的Web service對(duì)其變更的數(shù)據(jù)進(jìn)行處理,由數(shù)據(jù)轉(zhuǎn)換Web service處理后將所包裝的包含變更數(shù)據(jù)信息的消息傳遞給實(shí)時(shí)數(shù)據(jù)緩存,各個(gè)Web service間通過(guò)SOAP/http(Simple Object Access Protocol)協(xié)議交換XML文檔數(shù)據(jù)[6].
如果企業(yè)有多個(gè)數(shù)據(jù)庫(kù)和應(yīng)用,則需要考慮不同業(yè)務(wù)系統(tǒng)間的相互影響,例如:一個(gè)業(yè)務(wù)系統(tǒng)的性能問(wèn)題會(huì)影響到其它系統(tǒng),業(yè)務(wù)的新增、變更都會(huì)對(duì)其它系統(tǒng)產(chǎn)生一定的影響,爭(zhēng)搶已有系統(tǒng)的I/O、CPU資源等,因此一個(gè)數(shù)據(jù)庫(kù)是邏輯上一個(gè)基礎(chǔ)庫(kù),可以物理上分開(kāi)部署,包括采用數(shù)據(jù)庫(kù)分區(qū)和數(shù)據(jù)庫(kù)集群等技術(shù).應(yīng)用可以通過(guò)集群的方式解決性能問(wèn)題,應(yīng)用集群運(yùn)行所有的業(yè)務(wù)組件,組件之間通過(guò)數(shù)據(jù)共享或者應(yīng)用Web服務(wù)調(diào)用的方式實(shí)現(xiàn)互聯(lián).如果是遺留系統(tǒng)或者是產(chǎn)品化的系統(tǒng),則通過(guò)主數(shù)據(jù)管理、SOA集成以及數(shù)據(jù)倉(cāng)庫(kù)的ETL等實(shí)現(xiàn)集成.數(shù)據(jù)集成平臺(tái)如圖4所示.
圖4 SOA 的 DW 架構(gòu)
將數(shù)據(jù)存儲(chǔ)層的數(shù)據(jù)分為3個(gè)層次:私有數(shù)據(jù)層、共享數(shù)據(jù)層和分析數(shù)據(jù)層,可以保證業(yè)務(wù)系統(tǒng)的性能,同時(shí)實(shí)現(xiàn)數(shù)據(jù)的共享、數(shù)據(jù)分析[7,8].
分析數(shù)據(jù)層的數(shù)據(jù)集主要用于支撐企業(yè)的管理和決策需要,是典型的分析型數(shù)據(jù)環(huán)境.它從數(shù)據(jù)倉(cāng)庫(kù)中提取數(shù)據(jù)并整合管理決策所需要的數(shù)據(jù)集,通過(guò)數(shù)據(jù)倉(cāng)庫(kù)的建設(shè),對(duì)現(xiàn)有各類(lèi)分布數(shù)據(jù)源進(jìn)行數(shù)據(jù)集中,經(jīng)過(guò)進(jìn)一步對(duì)數(shù)據(jù)的清洗、過(guò)濾、轉(zhuǎn)換后加載至數(shù)據(jù)倉(cāng)庫(kù)中,為數(shù)據(jù)的集中存儲(chǔ)管理和分析利用提供數(shù)據(jù)支撐環(huán)境.
共享數(shù)據(jù)層包含業(yè)務(wù)共享數(shù)據(jù)、主數(shù)據(jù)、系統(tǒng)數(shù)據(jù)、流程數(shù)據(jù)和元數(shù)據(jù),其中業(yè)務(wù)共享數(shù)據(jù)主要包括基于主題的數(shù)據(jù)模型,是交易類(lèi)的數(shù)據(jù),特點(diǎn)是數(shù)據(jù)變化快、數(shù)據(jù)量大;主數(shù)據(jù)是基礎(chǔ)數(shù)據(jù),數(shù)據(jù)變化慢、數(shù)據(jù)量小,但是查詢量大;系統(tǒng)數(shù)據(jù)主要包含用戶數(shù)據(jù)、功能數(shù)據(jù)、用戶權(quán)限數(shù)據(jù)等,和門(mén)戶系統(tǒng)結(jié)合;流程數(shù)據(jù)是跨系統(tǒng)的流程數(shù)據(jù),是未來(lái)工作流處理、流程監(jiān)控和審批平臺(tái)的公共流程數(shù)據(jù).共享數(shù)據(jù)層的功能是整合所有企業(yè)內(nèi)外數(shù)據(jù)源,基于企業(yè)完整的數(shù)據(jù)架構(gòu)進(jìn)行建設(shè),是所有已有系統(tǒng)和業(yè)務(wù)組件共享的數(shù)據(jù)庫(kù),共享層對(duì)于新舊系統(tǒng)中的數(shù)據(jù)整合起到了內(nèi)外數(shù)據(jù)統(tǒng)一接口的作用.業(yè)務(wù)共享數(shù)據(jù)庫(kù)采集了企業(yè)各系統(tǒng)的業(yè)務(wù)數(shù)據(jù),即審計(jì)監(jiān)控源系統(tǒng)的數(shù)據(jù)質(zhì)量,同時(shí)按照企業(yè)統(tǒng)一的主題域數(shù)據(jù)模型對(duì)數(shù)據(jù)進(jìn)行整合轉(zhuǎn)換,又為其它業(yè)務(wù)應(yīng)用系統(tǒng)提供跨域與跨空間的數(shù)據(jù)共享.由業(yè)務(wù)共享數(shù)據(jù)庫(kù)統(tǒng)一向各業(yè)務(wù)系統(tǒng)提供數(shù)據(jù)共享服務(wù),同時(shí)業(yè)務(wù)共享數(shù)據(jù)庫(kù)也可以作為新的系統(tǒng)開(kāi)發(fā)的業(yè)務(wù)數(shù)據(jù)庫(kù).對(duì)于目前已經(jīng)存在的系統(tǒng),在升級(jí)改造時(shí)將現(xiàn)在的通過(guò)ETL抽取的方式改為由原系統(tǒng)直接集成的方式,在業(yè)務(wù)共享數(shù)據(jù)庫(kù)存放數(shù)據(jù).業(yè)務(wù)共享數(shù)據(jù)庫(kù)也作為DW理論上的唯一數(shù)據(jù)源,為DW提供高質(zhì)量的數(shù)據(jù),DW中的挖掘和分析結(jié)果也要回寫(xiě)到業(yè)務(wù)共享數(shù)據(jù)庫(kù)中.
私有數(shù)據(jù)層數(shù)據(jù)集主要用于支撐企業(yè)的運(yùn)營(yíng),是典型的操作型數(shù)據(jù)環(huán)境.由一組業(yè)務(wù)專(zhuān)用數(shù)據(jù)庫(kù)組成,包括資產(chǎn)管理、銷(xiāo)售、財(cái)務(wù)、人力資源等已有系統(tǒng)的數(shù)據(jù)庫(kù),其主要職能在于支撐企業(yè)日常的經(jīng)營(yíng)和管理活動(dòng)的運(yùn)營(yíng)需要.私有層數(shù)據(jù)的特殊性在于其他的系統(tǒng)或者業(yè)務(wù)組件除了通過(guò)web服務(wù)調(diào)用之外不能直接訪問(wèn).
SOA即將成為目前信息系統(tǒng)架構(gòu)的主流思想,本文基于軟件重用的思想描述了數(shù)據(jù)倉(cāng)庫(kù)在軟件架構(gòu)中需要構(gòu)建數(shù)據(jù)集成平臺(tái)的概念,并對(duì)數(shù)據(jù)平臺(tái)的功能和數(shù)據(jù)存儲(chǔ)做了說(shuō)明,通過(guò)分層的數(shù)據(jù)管理,建立企業(yè)統(tǒng)一的數(shù)據(jù)集成平臺(tái)可為未來(lái)更好使用數(shù)據(jù)和系統(tǒng)服務(wù)夯實(shí)基礎(chǔ).
參考文獻(xiàn)
[1] Jack Beaton, Brad A. Myers.Usability evaluation for enterprise SOA apls[J]. ACM,2008,(4):37-39.
[2] BEA系統(tǒng)(中國(guó))有限公司.SOA最佳實(shí)踐[J].電力信息化,2007,5(21):34-39.
[3] 曹曉葉.基于SOA的企業(yè)應(yīng)用集成研究與應(yīng)用[J].微計(jì)算機(jī)信息,2003,23(36):16-26.
[4] Mira Kajko-Mattsson.A framework for roles for development,evolution and maintenance of SOA-based systems[J].Computer Society,2007,5(6):89-92.
[5] W.HInmn著.王志海,林友芳等譯.數(shù)據(jù)倉(cāng)庫(kù)(第三版)[M].北京:機(jī)械工業(yè)出版社,2003:21-24.
[6] 張麗娟,李舟軍,陳火旺.?dāng)?shù)據(jù)倉(cāng)庫(kù)中的元數(shù)據(jù)與CWM規(guī)范[J].計(jì)算機(jī)科學(xué),2003,30(11):116-118.
[7] 劉賢梅,劉 茜,徐 鋒.基于SOA的企業(yè)應(yīng)用集成模型的研究[J].計(jì)算機(jī)工程與設(shè)計(jì), 2009,30(16):3 790-3 793.
[8] 劉雙喜,王翠茹.基于SOA的電力實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù)技術(shù)研究[J].電力信息化,2008,(10):60-63.