摘要:針對傳統商業智能存在移植性、集成性和可擴展性差等弱點,該文研究基于.Net Remoting的商業智能平臺。在分析商業智能當前應用狀況和商業智能體系結構的基礎上,給出了整個系統比較完善的解決方案,構建了基于.Net Remoting服務的商業智能的應用平臺,該平臺可以將商業智能組件無縫集成到企業現有的系統中,增強了可理解性和可擴展性。
關鍵詞:商業智能;.Net Remoting;數據倉庫
中圖分類號:TP311文獻標識碼: A文章編號:1009-3044(2009)36-10321-03
Research and Application of .Net Remoting in Business Intelligence System Web
LIN Xin, ZHOU Yong-gang, YAN Hua
(Anhui Vocational College of Posts and Telecom, Hefei 230031, China)
Abstract: Focusing at the drawback of traditional business intelligence system including poor transplantation, integration, and expansibility, a platform of business intelligence based on. Net Remoting is researched in this paper. A solution for business intelligence system is proposed with the analysis of the current application status and architecture of business intelligence system. .Net Remoting-based business intelligence platform is designed and integrated seamlessly into the current application systems, and then comprehensibility and extensibility are improved.
Key Words: business intelligence; .Net Remoting; DW
在中國的企業應用中,商業智能正在迅速成為最熱門的話題之一,它將成為企業盈利的關鍵因素。目前,商業智能系統往往存在移植性差和集成性差等問題,缺乏可擴展性和靈活性。.Net Remoting是微軟推出的一套新的通信技術。它為構建分布式面向服務系統提供了強有力的技術支持,代表了軟件架構設計與開發的一種發展方向。.Net Remoting提供了一個功能強大、高效的處理遠程對象的方法,從結構上而言,.Net Remoting對象非常適合通過網絡訪問資源,而又無需處理由基于SOAP的Web Services所帶來的難題[1]。如何靈活地整合商業智能和.Net Remoting技術,使之有效的對數據進行集成、處理和分析,提供全面、完善的解決方案,從而更好解決面臨的問題,具有重要意義。
1 商業智能相關概念
商業智能將數據倉庫、聯機分析處理(OLAP)和數據挖掘等結合起來應用于商業活動中,從不同的數據源收集的數據中提取有用的數據,對數據進行清洗以保證數據的正確性,將數據經轉換、重構后載入數據倉庫或數據集市;然后利用合適的工具對數據進行處理,這時信息變為輔助決策的知識;最后將知識呈現于用戶面前,為管理決策提供參考??梢夿I并不是基礎技術或者產品技術,而是一種解決方案[2]。
商業智能的核心技術主要包括三個關鍵部分:數據倉庫和數據集市、聯機分析處理(OLAP) 以及數據挖掘,其中數據倉庫和數據集市是商業智能的基礎,而OLAP和數據挖掘是對數據倉庫中的數據進行分析和處理的重要工具。
數據倉庫是一種支持企業或組織管理決策過程的、面向主題的、集成的、穩定的、隨時間不斷變化的管理技術[3]。聯機分析處理(OLAP)的核心就是多維分析,它支持用戶從多角度觀察和處理數據,用于分析的基本動作主要有切片、切塊、旋轉、鉆取等[4]。數據挖掘就是從大量的、不完全的、有噪聲的、模糊的、隨機的實際應用數據中,提取隱含在其中的、人們事先不知道的但又是潛在有用的信息和知識的過程[5]。數據挖掘實質是一種深層次的數據分析方法,它能夠在數據庫、數據倉庫中自己尋找模型,它在本質上是一個歸納的過程。
2 .Net Remoting技術
2.1 .Net Remoting概述
.Net Remoting是DCOM的替代品,提供了一種允許一個應用程序域中的對象與另一應用程序域中的對象進行交互的框架,應用程序域是為了減輕運行應用程序的系統開銷而提出來的,一些應用程序需要與其他程序分離開來,但同時還需要能彼此間進行通信。因為可能使用不同的傳輸協議(例如SOAP和TCP)Net Remoting應用程序可以在注重性能的場合使用二進制編碼,在需要與其他遠程處理框架進行交互的場合使用XML編碼。通過直接使用.Net Remoting,可以將Web服務駐留在任何需要的應用程序中,因此這是一個非常靈活的架構,幾乎適合于所有涉及遠程的工作。架構如圖1所示。
從圖1中我們可以看出.Net Remoting由代理、消息、消息接收器、格式化器和通道五個元素組成[6]。代理對象偽裝成遠程對象并提供調用;消息對象中包含了完成遠程調用所必須的數據;消息接收器對象允許客戶在進行遠程調用時進行消息處理;格式化器對象也是消息接收器,且將消息序列化為類似于SOAP的傳輸格式;信道也是消息接收器,該對象將序列化的消息通過像HTTP傳送給遠程過程。
2.2 .Net Remoting通道類型
通道是客戶進程和服務器進程之間傳送消息的通道。在圖1中通道由客戶通道部分和服務器通道部分組成。.Net Remoting常用兩種通道類型,分別是有HTTP和TCP通道[7]。圖2和圖3 分別是兩種通道的示例。
1)使用HTTP通道的遠程訪問
默認情況下HTTP通道使用SOAP格式化程序,因此客戶端可以使用HTTP通道。由于這種方法使用HTTP,所以允許客戶端通過防火墻遠程訪問.Net對象。
2)使用TCP二進制通道的遠程訪問
二進制格式化程序是TCP通道的默認情況。此格式化程序以二進制格式進行數據的序列化,并使用原始套接字在網絡中傳送數據。如果對象部署在受防火墻保護的封閉環境中,則此方法是理想的選擇。由于它使用TCP通道來提供對象,因此具有在封閉環境中開銷較小的優點。
圖2 通過HTTP調用Remoting對象圖3 通過TCP調用Remoting對象
3 基于.Net Remoting的商業智能平臺
商業智能作為單一企業數據庫的解決方案,已經在單個企業內發揮了應有的作用,但是企業內的數據倉庫信息有時無法滿足分析的需求,需要借助網絡分析的成果和知識的共享完成企業決策?;?Net Remoting的商業智能就成為解決上述弊端的最佳途徑。
3.1 平臺結構
本文提出并設計了一種基于.Net Remoting的商業智能平臺,該平臺采用B/S結構模式。用戶從瀏覽器向服務器提交服務請求,這些請求包括對OLAP數據的查詢、數據挖掘和數據ETL 等,服務器端負責對請求進行處理,并將處理結果通過網絡返回瀏覽器端。圖4給出了本文設計的基于.Net Remoting的商業智能平臺結構。
各組成部分說明如下:
1) 數據源層:也可稱作操作型數據層,是整個數據倉庫的基礎,提供了整個系統最原始的數據。通常為業務數據庫和其它外部數據,來自于企業中的各種業務系統。包括關系數據庫(Sybase、Sql Server、Oracle、DB2 等)
2) 數據ETL層:由基于.Net Remoting數據ETL服務器組成,目的是將數據源中的業務數據經過抽取(Extract)、轉換(Transform)、清洗(Cleaning)和加載(Load)到數據倉庫和數據集市中,在本平臺中首先在數據ETL服務器中按要求定義特定的ETL作業,確定數據源和目標數據庫,然后將特定的ETL作業發布為Remoting對象以提供服務。
3) 物理層:物理層采用數據倉庫/數據集市,保存處理過的穩定的業務數據,在本平臺中支持各種保存數據倉庫/數據集市數據的關系型數據庫和OLAP 服務器。
4) 邏輯應用層:由基于.Net Remoting的商業智能服務器和前端展現服務組成。商業智能服務器具有分析引擎、管理元數據和安全功能,是用于串聯后臺提供資料整合的數據倉庫/數據集市,為前端提供報表、查詢和分析,以及績效管理與數據整合等的服務器。前端展現服務具有連接(分析服務器等)、查詢(服務、報表、分析結果等)管理(權限、報表和語義層等)、發布、保存和目錄(文件、語義層等)的功能,發布后提供給用戶、企業內部系統和外部企業系統調用。
5) 表示層:負責數據的呈現,作為人機交互界面,采用了B/S 結構,能實現不同方位的數據透視,配合數據的挖掘鉆取技術,使用戶關心的和會引起關注的數據盡覽無余。
3.2 基于.Net Remoting的商業智能平臺系統的實現
.NET Remoting構建商業智能系統系統豐要分成創建遠程對象、服務器端實現和客戶端實現三個步驟:
步驟l:創建遠程對象
[Serializable]//可序列化屬性
Public class BI:MarshalByRefobject{//創建一個封裝類BI
PIlblic static void Main(string[] args){TcpChannel chan1=new TcpChannel(3030);ChannelService.RegisterChannel(chanl);//創建并注冊一個
TCP信息通道,指定端口號為3030
RemotingConfiguration.RegisterWellKnownObjectServiceType(Typeof(bi),\"DoBI\",WellKnowObjectMode.singleton);//注冊身份驗證服務器,指定類名,URI和對象狀態}
Public Rdbi()∥構造函數}
步驟2:服務器端實現
.NET Remoting服務是在服務器端運行的應用程序。主要任務是發布能夠被遠程訪問的對象。通過向遠程處理系統注冊,遠程對象加入了全局遠程處理表中,當調用到達服務器后,即從消息中提取遠程對象的標識信息。
Public class BIservcr:MarshalByRefObject{//創建一個服務引用類
Public static void Main(string[]args){
TcpChannel chan1=new TcpChannel(3030);
ChannelService.RegisterChannel(chanl)//創建并注冊一個
TCP信息通道,指定端口號為3030
RemotingConfiguration.RegisterWellKNownObjectServiceType(Typeof(bi),\"DoBI\",WellKnowObjectMode.singleton);//注冊身份驗證服務器,指定類名,URI和對象狀態
}
步驟3:客戶端實現
客戶端為了實現與遠程對象通信,必須添加遠程對象和.NET Remoting名稱空間的引用,并激活遠程對象。
Public Class Client{
Public static int Main(string[] args){
TcpChannel chanl=new TcpChannel(3030);
ChannelService.RegisterChannel(chanl);
bs=(BIServer)Activator.Getobject(Typeof(BIserver),\"Tcp:192.168.0.1:3030/DoDM\";} //創建一個DMServer實例,獲取遠程對象。
4 結束語
目前,電信、金融、制造、政府等行業都率先大規模地應用了商業智能,未來經濟的發展越來越需要前瞻性的商業智能分析預測系統與Internet的時效性、動態性結合,.Net Remoting是分布式編程領域的一個新臺階。關注.Net Remoting技術的發展趨勢并在實際開發項目中合理的運用它是十分必要的。本文簡要介紹了.Net Remoting的基本思想以及使用.Net Remoting構建商業智能系統的體系結構與技術要素,基于.Net Remoting服務的商業智能的應用將會帶動企業進入一個更高的技術領域,實現對全球資源和分析預測信息的共享,快速提升企業的競爭力和綜合實力。
參考文獻:
[1] 陳緒軍,胡君紅.Net框架Web service和.Net remoting分布式應用解決方案及評價[J].計算機應用研究,2003(9).
[2] 韓清池,陳世權.商業智能及其應用的研究與發展[J].現代管理科學,2006(3):68-69.
[3] 林宇.數據倉庫原理與實踐[M].北京:人民郵電出版社,2003.
[4] Thomsen E.OLAP 解決方案:創建多維信息系統[M].2版.北京:電子工業出版社,2004.
[5] 朱明.數據挖掘[M].合肥:中國科學技術大學出版社,2002.
[6] 馬保國,王文豐,侯存軍,等.基于.NET Remoting的分布式系統實現[J],計算機技術與發展,2006(3).
[7] 王正桓,蔡明.MS.NET Remoting 的分布式技術應用研究[J].計算機應用與軟件,2005,22(3):140-142.