【文章內(nèi)容簡介】
倉庫應用的需要,能最大限度地提高靈活性和可擴展能力。 ? 數(shù)據(jù)倉庫的系統(tǒng)設計與開發(fā)是一個動態(tài)的反饋和循環(huán)的過程。一方面數(shù)據(jù)倉庫的數(shù)據(jù)內(nèi)容、結(jié)構(gòu)、粒度、分割以及其他物理設計根據(jù)用戶所返回的信息不斷地調(diào)整和完善,以提高系統(tǒng)的效率和性能;另一方面,通過不斷地理解用戶的分析需求,向用戶提供更準確、更有用的決策信息。將數(shù)據(jù)倉庫系統(tǒng)從功能上分為若干個獨立的對象,并使用 COM技術實現(xiàn),可以最大限度地重用這些對象。當用戶的需求增加或發(fā)生變化時,只需要增加相應的 COM對象或更新變化的 COM對象。 20 使用 COM技術實現(xiàn)數(shù)據(jù)倉庫的組件 ? 通過將用戶業(yè)務邏輯以 DCOM對象的形式集中到中間層,系統(tǒng)就獲得了對業(yè)務邏輯的獨立性。當用戶需求改變時,開發(fā)人員可以迅速地在應用服務器上更新業(yè)務邏輯,而無需將更新后的應用遞交到成千上萬的桌面系統(tǒng)上去,從而使開發(fā)人員從維護眾多客戶端的繁重工作中解脫出來。 ? 倉庫是一個大規(guī)模的工程項目,它開發(fā)周期長,而數(shù)據(jù)倉庫的需求又是動態(tài)的,不確定的。如果數(shù)據(jù)倉庫的開發(fā)周期過長,可能當系統(tǒng)完成后,用戶的需求已經(jīng)發(fā)生了變化,從而造成開發(fā)資源的浪費;而且在當今激烈的市場競爭中,誰越早進行決策,誰就在競爭中占得先機,所以數(shù)據(jù)倉庫的開發(fā)周期越短,給企業(yè)帶來的效益就越大。通過 COM技術將數(shù)據(jù)倉庫系統(tǒng)劃分為不同的功能對象,可以使開發(fā)團隊進行并行開發(fā)。開發(fā)人員只需要定義各個 COM對象明確的接口,彼此之間不需要了解各自的工作。 21 使用 COM技術實現(xiàn)數(shù)據(jù)倉庫的組件 ? 數(shù)據(jù)倉庫的數(shù)據(jù)是從企業(yè)內(nèi)部的各個操作型環(huán)境中提取出來的,所以數(shù)據(jù)倉庫系統(tǒng)本身就處在一個分布式環(huán)境中。由于在數(shù)據(jù)倉庫中數(shù)據(jù)的訪問量非常大,所以提高系統(tǒng)性能的首要目標是盡量減少網(wǎng)絡上的數(shù)據(jù)傳遞??梢詫?shù)據(jù)處理的各個組件以 DCOM對象的形式存放在應用服務器上,所以,盡管可能存在著與應用服務器的多個甚至數(shù)百個的連接,但應用服務器與數(shù)據(jù)庫服務器之間的連接卻只有少數(shù)幾個,從而達到減少網(wǎng)絡上的數(shù)據(jù)傳送量。 ? 數(shù)據(jù)分析應用中的計算、操作和數(shù)據(jù)過濾通常是很復雜的。如果在客戶機上完成這些處理工作,不僅要求客戶機必須具有足夠強大的配置,而且對網(wǎng)絡負載能力也是一個考驗。通過 COM技術可以將執(zhí)行此類處理工作的對象放在多個應用服務器上,利用 COM+提供的負載平衡服務來提高數(shù)據(jù)倉庫系統(tǒng)的可用性。 ? 由于數(shù)據(jù)分析時,每次查詢涉及到的數(shù)據(jù)量巨大,所以往往會需要較長的響應時間,特別在數(shù)據(jù)分布時響應時間有時會讓人難以忍受。COM+通過消息隊列組件提供了異步通信功能,使得客戶不必等待。 22 數(shù)據(jù)倉庫體系結(jié)構(gòu)的設計與實現(xiàn) ? 設計思想: ? 客戶端通過提交描述要調(diào)用的方法和要傳遞的參數(shù)的 XML文檔進行調(diào)用。在應用服務器端實現(xiàn)所需服務的接口,當通信組件接收到 XML文檔后,創(chuàng)建 XMLService組件并由 XMLService組件根據(jù) XML文檔調(diào)度服務,并將返回結(jié)果或錯誤信息封裝成 XML文檔傳遞給客戶端。 ? 將數(shù)據(jù)倉庫系統(tǒng)劃分為若干個獨立的分布式對象,每個對象都可以獨立地完成一項工作如數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)集成等。這些對象須使用開放的標準組件,它們具有可重用性高的特性。對象與對象之間通過 XML文檔進行通信。由于采用開放的 XML文檔集成數(shù)據(jù),所以大大提高了系統(tǒng)集成異構(gòu)數(shù)據(jù)源、半結(jié)構(gòu)化數(shù)據(jù)及非結(jié)構(gòu)化數(shù)據(jù)的能力。 ? 對象與對象之間既可以互相協(xié)作共同完成創(chuàng)建數(shù)據(jù)倉庫的任務,又可以獨立地完成某個特定功能。這些分布式對象和用戶前端界面以及后臺數(shù)據(jù)形成了數(shù)據(jù)倉庫的多層體系結(jié)構(gòu)。 23 數(shù)據(jù)倉庫系統(tǒng)體系結(jié)構(gòu)的設計 ? 客戶端: ? 可視化的用戶界面 ? 客戶端通信組件 ? 應用服務器端: ? 服務器端通信組件 ? XMLService調(diào)度組件 ? 安全組件 ? 元數(shù)據(jù)管理器 ? 轉(zhuǎn)換器 ? 集成器 ? 數(shù)據(jù)庫服務器端 ? 源數(shù)據(jù) ? 元數(shù)據(jù)庫 ? 數(shù)據(jù)準備區(qū) ? 數(shù)據(jù)倉庫 24 數(shù)據(jù)倉庫系統(tǒng)中的通信- XML概述 ? XML( eXtensible Markup Language,可擴展的標記語言)是國際組織 W3C制定的在 Web上對有格式的數(shù)據(jù)進行描述、傳輸、操作的通用語言。 ? XML 是一套定義語義標記的規(guī)則,這些標記將文檔分成許多部件并對這些部件加以標識。它也是元標記語言,即定義了用于定義其他與特定領域有關的、語義的、結(jié)構(gòu)化的標記語言的句法語言。 ? XML定義了一套元句法,允許各種不同的專業(yè)開發(fā)與自己的特定領域有關的標記語言。 25 基于 XML的通信運行機制 ? 應用服務器端通信組件接收到客戶端傳遞來的 XML字符串,創(chuàng)建XMLService對象。 ? 將 XML字符串以參數(shù)形式傳遞給 XMLService對象的調(diào)度方法 Run(),并調(diào)用 Run方法; ? 在 Run方法中,解析 XML字符串,獲得客戶端調(diào)用的方法; ? 檢查用戶的權限,如果沒有調(diào)用此方法的權限,返回錯誤信息; ? 通過權限驗證后,打開存儲在服務器端的 ,該文件中記錄了方法和對象的映射關系,根據(jù)文件中記錄的內(nèi)容獲得實現(xiàn)方法的對象名; ? 根據(jù)獲得的對象名創(chuàng)建對象; ? 每個對象(元數(shù)據(jù)管理器、轉(zhuǎn)換器、集成器)除了實現(xiàn)了用戶所需要的服務外,還實現(xiàn)了一個調(diào)度自身服務的 Run方法, XMLService調(diào)度對象則通過調(diào)用這個 Run方法來實現(xiàn)對對象服務的調(diào)度。 26 XML通信組件示意圖 客戶端應用程序服務器端通信管理程序S e r v e r D i s p a t c h e r . L i s t e n ()S e r v e r T a l k e r . A c c e p t ()C l i e n t T a l k e r . C o n n e c t ()C l i e n t T a l k e r . S e n d X ML Ms g ()C l i e n t T a l k e r . D i s c o n n e c t ()創(chuàng)建 A p p l i c a t i o n 調(diào)度對象創(chuàng)建 C l i e n t T a l k e r 會話對象A p p l i c a t i o n . S t a r t N e w S e r v i c e ()A p p l i c a t i o n . S t o p S e r v i c e ()創(chuàng)建 S e r v e r D i s p a t c h e r 偵聽對象 (多個)創(chuàng)建 S e r v e r T a l k e r 通信對象 (多個)創(chuàng)建 X ML S e r v i c e 對象X ML S e r v i c e . R u n ()客戶端應用程序服務器端通信管理程序創(chuàng)建 調(diào)度對象創(chuàng)建 會話對象創(chuàng)建 偵聽對象 (多個)創(chuàng)建 通信對象 (多個)創(chuàng)建 對象27 XML通信組件 客戶端與服務器端的通信機制 ? 啟動服務器端管理程序,創(chuàng)建 Application調(diào)度對象。 ? 用 Application調(diào)度對象的 StartNewService方法創(chuàng)建 ServerDispatcher偵 聽對象,