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