摘 要:為了將高校數(shù)據(jù)庫(kù)、知識(shí)發(fā)現(xiàn)技術(shù)高度集成,結(jié)合J2EE可擴(kuò)展、可重用、獨(dú)立性強(qiáng)等優(yōu)點(diǎn),構(gòu)建基于J2EE的高校知識(shí)發(fā)現(xiàn)系統(tǒng),在此基礎(chǔ)上介紹了該系統(tǒng)的體系架構(gòu)、技術(shù)實(shí)現(xiàn)和功能模塊。
關(guān)鍵詞:J2EE EJB 數(shù)據(jù)挖掘 知識(shí)發(fā)現(xiàn)系統(tǒng)
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:B文章編號(hào):1673-8454(2007)10-0054-03
本文擬在J2EE平臺(tái)上,利用XML技術(shù)、數(shù)據(jù)庫(kù)、知識(shí)庫(kù)、數(shù)據(jù)挖掘和信息搜索技術(shù),構(gòu)建高校知識(shí)發(fā)現(xiàn)系統(tǒng),將地理位置分散的、異構(gòu)的數(shù)據(jù)進(jìn)行合理地組織和挖掘,不僅能實(shí)現(xiàn)不同部門(mén)內(nèi)部的知識(shí)發(fā)現(xiàn),而且能勝任部門(mén)之間的聯(lián)合知識(shí)發(fā)現(xiàn)。
一、系統(tǒng)可行性分析
高校建立知識(shí)發(fā)現(xiàn)系統(tǒng)在設(shè)備、技術(shù)、人才方面都具有很強(qiáng)的可行性。目前高校都在投入較大的物力和財(cái)力來(lái)實(shí)現(xiàn)數(shù)字化校園,已經(jīng)利用成熟的WEB技術(shù)建立了Internet系統(tǒng),將學(xué)校內(nèi)部的各種數(shù)據(jù)、信息和文檔置于Web數(shù)據(jù)庫(kù)和服務(wù)器上,便于教職員工和學(xué)生之間信息的共享與交流,同時(shí)也將Intranet系統(tǒng)和外面的Internet世界連接,建立起對(duì)外信息發(fā)布窗,為基于網(wǎng)絡(luò)上的不同部門(mén)的知識(shí)發(fā)現(xiàn)提供了可能;而高校各個(gè)部門(mén)的管理信息化都已成熟,如人事、科技處等都積累了完善的歷史數(shù)據(jù),為知識(shí)發(fā)現(xiàn)提供可靠的數(shù)據(jù)來(lái)源;而高校擁有雄厚的信息技術(shù)和信息人才儲(chǔ)備,這些都使得高校實(shí)現(xiàn)知識(shí)發(fā)現(xiàn)成為可能。鑒于高校數(shù)據(jù)地理位置分散、異構(gòu)等特性,擬在J2EE平臺(tái)上開(kāi)發(fā)實(shí)現(xiàn)該系統(tǒng)。
二、J2EE的體系結(jié)構(gòu)介紹
J2EE(Java 2 Enterprise Edition)是由SUN公司領(lǐng)導(dǎo),各廠商共同制定,并得到廣泛認(rèn)可的工業(yè)標(biāo)準(zhǔn)。可以滿足當(dāng)前不斷變化和日趨復(fù)雜的商業(yè)應(yīng)用需求,也很快變成了企業(yè)構(gòu)建新系統(tǒng)和集成、擴(kuò)展已有系統(tǒng)的首選技術(shù)。J2EE的體系結(jié)構(gòu)圖如圖1所示,可以分為4層。[1]
圖1 J2EE分布式體系架構(gòu)圖
1)客戶層。處于企業(yè)的防火墻內(nèi)部和外部,它可以是在客戶端運(yùn)行的瀏覽器、基于Java的程序、Swing、Com;或是其他Web型的編程環(huán)境,通過(guò)HTTP、HTTPS、IIOP等協(xié)議訪問(wèn)后端的應(yīng)用服務(wù)器內(nèi)的資源。
2)Web服務(wù)層。系統(tǒng)各個(gè)功能模塊以Web應(yīng)用的形式開(kāi)發(fā),運(yùn)行在J2EE Web容器中,Web服務(wù)層產(chǎn)生程序的表示邏輯,由顯示動(dòng)態(tài)HTML/WML頁(yè)面的JSP和Servlet實(shí)現(xiàn),處理對(duì)用戶請(qǐng)求的響應(yīng),不直接訪問(wèn)數(shù)據(jù)庫(kù),其業(yè)務(wù)邏輯通過(guò)EJB組件來(lái)實(shí)現(xiàn)。
3)業(yè)務(wù)邏輯層。它主要以EJB組件的方式編寫(xiě),運(yùn)行在J2EE EJB容器上,EJB組件對(duì)數(shù)據(jù)庫(kù)等數(shù)據(jù)資源的訪問(wèn),通過(guò)容器提供的接口來(lái)完成。J2EE 成熟的組件和分布式處理技術(shù)EJB可構(gòu)建一個(gè)可重用的,并且具有良好可擴(kuò)展性的知識(shí)發(fā)現(xiàn)算法組件庫(kù)。EJB 組件的可移植性是其主要優(yōu)點(diǎn)之一。與其他的組件技術(shù)相比,EJB 不局限于任何特定的公司、服務(wù)器版本、中間件和通信協(xié)議,它只是一個(gè)規(guī)范,任何公司可以按多種不同方式實(shí)現(xiàn)這個(gè)規(guī)范。只要不采用任何專屬的擴(kuò)展,就可以根據(jù)需要在不同組織實(shí)現(xiàn)方法之間移動(dòng)。
4)數(shù)據(jù)庫(kù)層。用于存放系統(tǒng)的應(yīng)用數(shù)據(jù),并提供對(duì)組織數(shù)據(jù)的基本存儲(chǔ)與訪問(wèn)??梢允遣煌M織、不同結(jié)構(gòu)的數(shù)據(jù)庫(kù)。
三、基于J2EE高校知識(shí)發(fā)現(xiàn)系統(tǒng)的構(gòu)建
基于J2EE高校知識(shí)發(fā)現(xiàn)系統(tǒng)的設(shè)計(jì)目標(biāo)就是創(chuàng)建一個(gè)分布式的知識(shí)發(fā)現(xiàn)平臺(tái),集成高校各個(gè)部門(mén)的數(shù)據(jù)庫(kù)、知識(shí)庫(kù)、文本庫(kù)、數(shù)據(jù)挖掘模型、信息檢索以及知識(shí)處理等功能。系統(tǒng)設(shè)計(jì)遵循模型-視圖-控制器(MVC)模式,目的就是要把數(shù)據(jù)(模型)與表示信息的部分(視圖)分離出來(lái),他們兩者之間用業(yè)務(wù)邏輯層(控制器)來(lái)控制信息的流向。系統(tǒng)架構(gòu)如圖2所示。
圖2 基于J2EE的高校知識(shí)發(fā)現(xiàn)體系圖
系統(tǒng)分為用戶層、Web層、業(yè)務(wù)層、數(shù)據(jù)層。用戶根據(jù)需要通過(guò)校園局域網(wǎng)瀏覽器發(fā)送請(qǐng)求,通過(guò)HTTP、HTTPS、IIOP等協(xié)議訪問(wèn)后端的應(yīng)用服務(wù)器內(nèi)的資源,客戶應(yīng)用層根據(jù)用戶的權(quán)限不同而顯示不同的信息。Web服務(wù)器層是連接用戶層和業(yè)務(wù)邏輯層的橋梁,通過(guò)由顯示動(dòng)態(tài)HTML/WML頁(yè)面的JSP與用戶進(jìn)行交互,根據(jù)用戶請(qǐng)求Servlet控制器將其傳遞給相應(yīng)的業(yè)務(wù)EJB操作處理。業(yè)務(wù)處理服務(wù)器層是功能實(shí)現(xiàn)EJB集合,根據(jù)系統(tǒng)實(shí)現(xiàn)目標(biāo)包括知識(shí)查詢和知識(shí)發(fā)現(xiàn)兩大模塊,狹義的知識(shí)發(fā)現(xiàn)是基于數(shù)據(jù)挖掘的,筆者認(rèn)為廣義的知識(shí)發(fā)現(xiàn)應(yīng)包括知識(shí)檢索與查詢。該層包括知識(shí)查詢EJB、數(shù)據(jù)處理EJB、數(shù)據(jù)挖掘EJB、知識(shí)處理EJB,其中后3個(gè)是完成狹義知識(shí)發(fā)現(xiàn)功能的。數(shù)據(jù)層由分布在高校各個(gè)部門(mén)的數(shù)據(jù)庫(kù)和存儲(chǔ)發(fā)現(xiàn)結(jié)果的知識(shí)庫(kù)構(gòu)成,系統(tǒng)采用楊炳儒教授提出的“雙庫(kù)協(xié)同機(jī)制”進(jìn)行數(shù)據(jù)驅(qū)動(dòng),雙庫(kù)即數(shù)據(jù)庫(kù)和知識(shí)庫(kù),傳統(tǒng)的知識(shí)發(fā)現(xiàn)是針對(duì)各類數(shù)據(jù)庫(kù)進(jìn)行的,為了體現(xiàn)認(rèn)知的自主性以及使新舊知識(shí)有機(jī)融合,楊教授首次提出雙庫(kù)協(xié)同機(jī)制,為知識(shí)發(fā)現(xiàn)領(lǐng)域的一大創(chuàng)新。[3][4]
四、系統(tǒng)技術(shù)實(shí)現(xiàn)
整個(gè)系統(tǒng)是在J2EE1.4平臺(tái)開(kāi)發(fā)的,系統(tǒng)整體架構(gòu)采用B/S模式,其中Web Server使用Tomcat,應(yīng)用服務(wù)器采用遵從J2EE規(guī)范的EJB服務(wù)器Jboss。在設(shè)計(jì)開(kāi)發(fā)系統(tǒng)時(shí),充分考慮其復(fù)雜性和分布性,采用了面向?qū)ο蟮南到y(tǒng)開(kāi)發(fā)方法和JSP + Servlet + Java Bean的開(kāi)發(fā)結(jié)構(gòu)。為便于系統(tǒng)移植和維護(hù),將主要的業(yè)務(wù)邏輯封裝在EJB,為JSP和Servlet提供各種方法和屬性調(diào)用。
由于高校知識(shí)發(fā)現(xiàn)系統(tǒng)要涉及不同部門(mén)的信息,而他們已經(jīng)有了各種不同的管理信息系統(tǒng),數(shù)據(jù)庫(kù)存在異構(gòu)性,很難在各系統(tǒng)之間達(dá)到共享,為解決這個(gè)問(wèn)題,采用XML數(shù)據(jù)格式的接口,實(shí)現(xiàn)異構(gòu)數(shù)據(jù)的集成。XML是全球范圍內(nèi)用于描述數(shù)據(jù)和交換數(shù)據(jù)的一種標(biāo)準(zhǔn)方式,由于它的自描述性、可擴(kuò)展性、可校驗(yàn)性、多樣式表支持等特點(diǎn),已在多方面得到了廣泛的應(yīng)用,如應(yīng)用于內(nèi)容管理發(fā)布、數(shù)據(jù)層集成、應(yīng)用層集成、系統(tǒng)配置信息描述、工作流描述等。在該系統(tǒng)中,XML主要解決以下幾個(gè)問(wèn)題:將客戶端傳來(lái)的異構(gòu)數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一XML數(shù)據(jù)給業(yè)務(wù)處理服務(wù)器,并且將以XML形式的知識(shí)發(fā)現(xiàn)結(jié)果轉(zhuǎn)換成客戶端的特定形式返回給用戶;作為數(shù)據(jù)挖掘元模型的配置文件,描述知識(shí)發(fā)現(xiàn)業(yè)務(wù)流程,支持建模與業(yè)務(wù)過(guò)程重構(gòu)描述;描述EJB組件在容器中的動(dòng)態(tài)部署配置文件。[5]
五、系統(tǒng)功能模塊
1.知識(shí)查詢EJB
知識(shí)查詢模塊利用SQL技術(shù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)之間的簡(jiǎn)單查詢功能,例如要查詢學(xué)生“張三”的信息,系統(tǒng)會(huì)從教務(wù)、學(xué)工以及財(cái)務(wù)等保存張三信息的相關(guān)數(shù)據(jù)庫(kù)中將他的學(xué)習(xí)成績(jī)、行為表現(xiàn)以及繳費(fèi)信息查找出來(lái),利于教師全面了解學(xué)生。
2.數(shù)據(jù)預(yù)處理EJB
高校數(shù)據(jù)庫(kù)中的數(shù)據(jù)多半具有不完整、噪聲和不一致的特征,數(shù)據(jù)預(yù)處理在數(shù)據(jù)挖掘之前使用,可以提高數(shù)據(jù)挖掘模式的質(zhì)量,降低實(shí)際挖掘所需要的時(shí)間。數(shù)據(jù)預(yù)處理包含數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)歸約。[2] 數(shù)據(jù)清洗通過(guò)填寫(xiě)空缺的值,平滑噪聲數(shù)據(jù),識(shí)別、刪除孤立點(diǎn),解決不一致來(lái)“清洗”數(shù)據(jù);數(shù)據(jù)集成將來(lái)自不同數(shù)據(jù)元的數(shù)據(jù)集合成一致的數(shù)據(jù)存儲(chǔ),元數(shù)據(jù)、相關(guān)分析、數(shù)據(jù)沖突檢測(cè)和語(yǔ)義異種性的解析都有助于數(shù)據(jù)集成;數(shù)據(jù)變換將數(shù)據(jù)變換成適于挖掘的形式,如屬性數(shù)據(jù)規(guī)范化,使得他們落入小區(qū)間,如0.0-1.0;數(shù)據(jù)歸約如數(shù)據(jù)立方體聚集、維歸約、數(shù)據(jù)歸約和離散化都可以用來(lái)得到數(shù)據(jù)的歸約表示,使得信息內(nèi)容的損失最小。
3.數(shù)據(jù)挖掘EJB
預(yù)處理后的數(shù)據(jù)要根據(jù)用戶的要求進(jìn)行不同的分析處理,該系統(tǒng)面向的用戶是具有一定數(shù)據(jù)挖掘知識(shí)、會(huì)根據(jù)具體問(wèn)題選擇適合的數(shù)據(jù)挖掘方法并且能進(jìn)行結(jié)果分析利用的人。
這是一個(gè)數(shù)據(jù)挖掘EJB Container,包含實(shí)現(xiàn)數(shù)據(jù)挖掘功能如分類、聚類、預(yù)測(cè)以及關(guān)聯(lián)的常用算法實(shí)現(xiàn)組件(如圖3):分類的決策樹(shù)C4.5算法、K-Means聚類算法、Apriori關(guān)聯(lián)算法、時(shí)間序列分析、回歸分析算法、BP神經(jīng)網(wǎng)絡(luò)分類算法以及SOM神經(jīng)網(wǎng)絡(luò)聚類算法等,這些組件是小的Java Bean,用戶可以根據(jù)需要調(diào)用其中的某種或某幾種方法進(jìn)行分析比較,另外,隨著數(shù)據(jù)挖掘算法的不斷成熟與完善,新的算法組件可以方便地加入Container中,這種可移植性是J2EE的EJB優(yōu)勢(shì)之一。[2]
圖3 數(shù)據(jù)挖掘EJB內(nèi)部示意圖
4.知識(shí)處理EJB
數(shù)據(jù)挖掘的結(jié)果可能和原知識(shí)庫(kù)中的知識(shí)形成一定的沖突,必須經(jīng)過(guò)知識(shí)處理環(huán)節(jié),內(nèi)部邏輯結(jié)構(gòu)如圖4所示。[6] 挖掘結(jié)果存于臨時(shí)知識(shí)庫(kù)中,與基本知識(shí)庫(kù)中的知識(shí)進(jìn)行冗余、矛盾和重復(fù)檢測(cè),使之能和原知識(shí)庫(kù)進(jìn)行有效融合,結(jié)果存于衍生知識(shí)庫(kù),一方面通過(guò)Web服務(wù)器返回給用戶,另一方面通過(guò)知識(shí)推理機(jī)更新基本知識(shí)庫(kù)。知識(shí)推理機(jī)是一個(gè)程序,運(yùn)用新知識(shí)進(jìn)行推理更新知識(shí)庫(kù)。
圖4 知識(shí)處理內(nèi)部邏輯圖
六、結(jié)語(yǔ)
J2EE平臺(tái)支持簡(jiǎn)化的、基于組件開(kāi)發(fā)模型,由于J2EE基于Java編程語(yǔ)言和J2EE平臺(tái),它提供了編寫(xiě)一次,隨處運(yùn)行的可移植性,遵循J2EE標(biāo)準(zhǔn)的所有服務(wù)器都支持該模型。EJB組件使編寫(xiě)應(yīng)用程序更為簡(jiǎn)單,由于在EJB模型中,各個(gè)軟件組件都是嚴(yán)格分離的,因此,可以從現(xiàn)有的軟件組件裝配出服務(wù)器端應(yīng)用程序,另外,J2EE對(duì)應(yīng)用層要求低、操作簡(jiǎn)單。因此基于J2EE的高校知識(shí)發(fā)現(xiàn)系統(tǒng)有效解決了高校數(shù)據(jù)庫(kù)異構(gòu)、分散的缺陷,并且具有良好的可重用性、可擴(kuò)展性,能為高校教學(xué)、管理人員從紛繁的數(shù)據(jù)中發(fā)現(xiàn)真正感興趣的知識(shí)助一臂之力。
參考文獻(xiàn):
[1]Sue Spielman, Meeraj Kunnumpurath著,馬樹(shù)奇等譯. J2EE1.4編程指南[M]. 北京:電子工業(yè)出版社,2005.5
[2] Jiawei Han Micheline Kambe著,范明等譯. 數(shù)據(jù)挖掘概念與技術(shù)[M]. 北京機(jī)械工業(yè)出版社,2005.2
[3]楊炳儒等. 基于知識(shí)發(fā)現(xiàn)的實(shí)用智能系統(tǒng)總體結(jié)構(gòu)模型[J]. 計(jì)算機(jī)工程,2003(10):42-45
[4]楊炳儒等. 基于內(nèi)在認(rèn)知機(jī)理的知識(shí)發(fā)現(xiàn)理論及其應(yīng)用[J]. 自然科學(xué)進(jìn)展,2006(1):107-115
[5]李強(qiáng)等,基于J2EE的數(shù)據(jù)挖掘算法組件庫(kù)設(shè)計(jì)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2005(11):3091-3093
[6]何新貴著. 知識(shí)處理與專家系統(tǒng)[M]. 北京:國(guó)防工業(yè)出版社,1990.9