前言
煤炭行業(yè)是1種典型的傳統(tǒng)行業(yè),隨著國(guó)家煤炭行業(yè)體制改革的不斷深化,現(xiàn)代信息技術(shù)的飛快發(fā)展,煤炭管理信息化將為煤炭行業(yè)的可持續(xù)性發(fā)展提供良好的條件。為了適應(yīng)煤炭行業(yè)現(xiàn)代化管理要求,同時(shí)結(jié)合煤炭行業(yè)自身的特點(diǎn),在總結(jié)多年從事網(wǎng)絡(luò)系統(tǒng)建設(shè)的經(jīng)驗(yàn)基礎(chǔ)上,對(duì)幾百家客戶實(shí)際需求進(jìn)行合理歸納總結(jié),提取標(biāo)準(zhǔn)模型組件,采用模型組件與Web技術(shù)實(shí)際需求進(jìn)行合理歸納總結(jié),提取標(biāo)準(zhǔn)模型組件,開(kāi)發(fā)了煤炭行業(yè)綜合信息管理平臺(tái)(煤炭企業(yè)門(mén)戶網(wǎng)站)。
煤礦企業(yè)綜合信息管理平臺(tái)是1個(gè)綜合產(chǎn)品包,它提供了1個(gè)平臺(tái),用戶可以通過(guò)1個(gè)單一的、個(gè)性化的、基于Web的接口訪問(wèn)所有企業(yè)信息。它可以把現(xiàn)有的業(yè)務(wù)應(yīng)用、數(shù)據(jù)庫(kù)、實(shí)時(shí)的數(shù)據(jù)流、業(yè)務(wù)事件和web內(nèi)容集成到1個(gè)統(tǒng)一的信息窗口中,具有持續(xù)可用性和端到端的安全性。
1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
1.1 整體系統(tǒng)結(jié)構(gòu)
整個(gè)神華寧煤集團(tuán)網(wǎng)站規(guī)劃為硬件平臺(tái)、軟件平臺(tái)、應(yīng)用系統(tǒng)、以及安全系統(tǒng)4大部分。從架構(gòu)上講,應(yīng)用系統(tǒng)是核心,硬件平臺(tái)是應(yīng)用的1個(gè)物質(zhì)基礎(chǔ),軟件平臺(tái)為應(yīng)用系統(tǒng)提供支撐環(huán)境,應(yīng)用系統(tǒng)提供前后臺(tái)的具體功能實(shí)現(xiàn),而安全系統(tǒng)則保證系統(tǒng)的正常運(yùn)行,避免網(wǎng)絡(luò)的非授權(quán)使用。
神華寧煤集團(tuán)網(wǎng)站的整體架構(gòu)如圖1所示:
圖1 網(wǎng)站整體架構(gòu)
(1)硬件平臺(tái)包括系統(tǒng)所需的網(wǎng)絡(luò)結(jié)構(gòu)、服務(wù)器設(shè)備、終端設(shè)備;
(2)軟件平臺(tái)包括數(shù)據(jù)庫(kù)軟件、應(yīng)用服務(wù)器軟件和操作系統(tǒng);
(3)應(yīng)用系統(tǒng)為神華寧煤集團(tuán)網(wǎng)站;
(4)安全系統(tǒng)主要從應(yīng)用系統(tǒng)角度加以考慮,對(duì)于硬件平臺(tái)、軟件平臺(tái)層面的安全需求由各自所處層面的系統(tǒng)考慮。
隨著Web技術(shù)、分布式對(duì)象技術(shù)的快速發(fā)展及它們二者的有機(jī)結(jié)合,傳統(tǒng)的Client/Server主從結(jié)構(gòu)逐漸向靈活的多級(jí)分布式Web計(jì)算模型進(jìn)行演變, 使得Web服務(wù)器從簡(jiǎn)單的HTTP協(xié)議(超文本鏈接)服務(wù)器到Web應(yīng)用服務(wù)器的進(jìn)化成為必然。通過(guò)Web應(yīng)用服務(wù)器,可以讓任何客戶訪問(wèn)存放在各種系統(tǒng)中的各種類型的信息。
從長(zhǎng)遠(yuǎn)的角度考慮,基于應(yīng)用服務(wù)器的Browser/Server方式會(huì)越來(lái)越成熟,因此,該系統(tǒng)應(yīng)用體系結(jié)構(gòu)主要采用Browser/Server方式的多級(jí)分布式Web計(jì)算模型。
神華寧煤集團(tuán)網(wǎng)站采用的技術(shù)是已成為業(yè)界事實(shí)標(biāo)準(zhǔn)的、最先進(jìn)的J2EE體系架構(gòu),支持當(dāng)前主流的數(shù)據(jù)庫(kù)系統(tǒng)(如SQL Server 2000、Oracle、Sybase、MySQL等),對(duì)業(yè)務(wù)中的結(jié)構(gòu)化數(shù)據(jù)進(jìn)行存儲(chǔ)管理,采用JSP、Servlet、JavaBean、EJB技術(shù)進(jìn)行業(yè)務(wù)邏輯的處理和應(yīng)用集成。采用JDBC技術(shù)提取其它應(yīng)用系統(tǒng)的發(fā)布信息。通過(guò)Web Server對(duì)系統(tǒng)中的信息進(jìn)行動(dòng)態(tài)發(fā)布。整體技術(shù)架構(gòu)采用BWAD(Browser+Web服務(wù)器+Application服務(wù)器+數(shù)據(jù)庫(kù))的三層體系架構(gòu),充分滿足了神華寧煤集團(tuán)網(wǎng)站應(yīng)用先進(jìn)性和系統(tǒng)可擴(kuò)展性的需要。
從業(yè)務(wù)邏輯上來(lái)講,神華寧煤集團(tuán)網(wǎng)站由表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)層三層構(gòu)建組成。該系統(tǒng)按照三層體系結(jié)構(gòu)具體對(duì)應(yīng)的邏輯關(guān)系如圖2所示:
圖2 系統(tǒng)三層體系邏輯圖
表現(xiàn)層是系統(tǒng)管理員訪問(wèn)網(wǎng)站綜合管理系統(tǒng),用戶服務(wù)管理系統(tǒng)后臺(tái)系統(tǒng)進(jìn)行系統(tǒng)維護(hù);某些應(yīng)用管理員(例如,BBS管理員)訪問(wèn)后臺(tái)應(yīng)用管理界面進(jìn)行應(yīng)用維護(hù)。一般使用者或會(huì)員用戶利用瀏覽器訪問(wèn)集團(tuán)網(wǎng)站實(shí)現(xiàn)日常的信息瀏覽、信息查詢、信息訂閱等操作。
業(yè)務(wù)邏輯層是通過(guò)網(wǎng)站綜合管理系統(tǒng)實(shí)現(xiàn)對(duì)門(mén)戶網(wǎng)站的維護(hù)和管理;通過(guò)會(huì)員服務(wù)管理系統(tǒng)實(shí)現(xiàn)會(huì)員登錄、會(huì)員服務(wù)功能。
數(shù)據(jù)層是通過(guò)應(yīng)用服務(wù)中間件數(shù)據(jù)組件享有主流關(guān)系型數(shù)據(jù)庫(kù)卓越的數(shù)據(jù)處理功能,利用數(shù)據(jù)庫(kù)連結(jié)池技術(shù)大大提高數(shù)據(jù)庫(kù)的訪問(wèn)效率。
1.2 應(yīng)用平臺(tái)選型
1.2.1 操作系統(tǒng)
服務(wù)器端:支持Windows Server2000/2003、Linux、Unix
客戶端:支持Windows98、WinMe、WinNT4.0、Windows 2000,瀏覽器使用IE5.0以上。
1.2.2 數(shù)據(jù)庫(kù)
支持當(dāng)前主流的關(guān)系型數(shù)據(jù)庫(kù),如Oracle、SQL Server2000、Sybase、MySQL等。
1.2.3 應(yīng)用服務(wù)器
支持Wesphere、Weblogic、Tomcat、JBOSS等。
2 技術(shù)路線(圖3)
圖3 應(yīng)用體系結(jié)構(gòu)
為充分保證系統(tǒng)在安全性、跨平臺(tái)性、易擴(kuò)展性、易維護(hù)性等方面的要求,該系統(tǒng)將采用先進(jìn)的基于純Java平臺(tái)的三層(Browser/Application Server/Database Server)應(yīng)用體系結(jié)構(gòu),系統(tǒng)通過(guò)架構(gòu)于先進(jìn)的B/S三層應(yīng)用體系結(jié)構(gòu)之上,結(jié)合MVC開(kāi)發(fā)模式,并采用JSP、Servlet、EJB、XML等編程技術(shù)和面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù),將復(fù)雜的業(yè)務(wù)處理邏輯、流程控制邏輯和數(shù)據(jù)存取邏輯通過(guò)Enterprise Java Beans組件來(lái)實(shí)現(xiàn),并運(yùn)行在應(yīng)用服務(wù)器之上,實(shí)現(xiàn)業(yè)務(wù)邏輯的快速部署和靈活調(diào)整,并通過(guò)部署在應(yīng)用服務(wù)器層的專用組件實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的存取訪問(wèn),以充分保證數(shù)據(jù)庫(kù)系統(tǒng)的安全可靠訪問(wèn)。
2.1 Java平臺(tái)
J2EE是1種利用Java 2平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開(kāi)發(fā)、部署和管理相關(guān)的復(fù)雜問(wèn)題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java 2平臺(tái)的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如“編寫(xiě)一次、隨處運(yùn)行”的特性、方便存取數(shù)據(jù)庫(kù)的JDBC API、CORBA技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì)EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術(shù)的全面支持。其最終目的就是成為1個(gè)能夠使企業(yè)開(kāi)發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)。
J2EE體系結(jié)構(gòu)提供中間層集成框架用來(lái)滿足無(wú)需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過(guò)提供統(tǒng)一的開(kāi)發(fā)平臺(tái),J2EE降低了開(kāi)發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對(duì)現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持Enterprise JavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。
2.2 XML技術(shù)
XML擴(kuò)展標(biāo)記語(yǔ)言(eXtensible Markup Language)是1種語(yǔ)言結(jié)構(gòu)十分彈性且擴(kuò)展性高的標(biāo)記語(yǔ)言,它可以很容易的描述各種文件數(shù)據(jù)。因此,它能夠給基于Web的應(yīng)用軟件賦予強(qiáng)大的功能和靈活性,使其具有更有意義的搜索、應(yīng)用開(kāi)發(fā)更加靈活、集成不同來(lái)源的數(shù)據(jù)、完善Web軟件的本地計(jì)算和處理、使數(shù)據(jù)的顯示多樣化并可以進(jìn)行粒狀的更新、增加軟件的擴(kuò)展與集成性。
很多在電子世界里可用的信息都沒(méi)有被存儲(chǔ)成和表述成圖象、三維圖形、電影、聲音或其它易于接收的多媒體格式,相反,它以基于字符文本的形式存在于Web、數(shù)據(jù)庫(kù)和其它文本很可能存在的地方。
XML允許開(kāi)發(fā)者在1個(gè)標(biāo)準(zhǔn)的結(jié)構(gòu)中以上下文來(lái)考慮并且解釋它們的數(shù)據(jù),以便于每一次添加和更新的時(shí)候,1個(gè)XML框架下的數(shù)據(jù)集可以與另1個(gè)XML框架下的數(shù)據(jù)集相結(jié)合而不用重建整個(gè)結(jié)構(gòu)。XML為Java的語(yǔ)義(行為)提供了1種普遍的語(yǔ)法,簡(jiǎn)單的說(shuō)就是,這意味著1個(gè)開(kāi)發(fā)者可以為不同的數(shù)據(jù)類型創(chuàng)建描述,使得這些數(shù)據(jù)在Java的程序代碼中表現(xiàn)出不同的行為,并且以后可以重復(fù)使用和修改這些描述。既然Java和XML都是可移植的標(biāo)準(zhǔn),這兩種技術(shù)結(jié)合的結(jié)果也是可移植的,可以重用數(shù)據(jù)和移植行為。單獨(dú)使用XML或Java所能獲得的所有的潛力還沒(méi)有被完全掌握,將它們結(jié)合就走進(jìn)了1個(gè)巨大的新的國(guó)度,F(xiàn)在,將XML應(yīng)用于Java的2個(gè)主要的應(yīng)用是面向表示的出版業(yè)和企業(yè)中面向消息的中間件技術(shù)。特別是,XML可以和Java結(jié)合產(chǎn)生諸如復(fù)雜的Web文檔、動(dòng)態(tài)出.版、電子商務(wù)、企業(yè)應(yīng)用集成和結(jié)構(gòu)信息管理與檢索等應(yīng)用。
2.3 SOA服務(wù)體系構(gòu)架
系統(tǒng)開(kāi)發(fā)遵循SOA(Service-Oriented-Architec-ture)體系構(gòu)架。SOA是1種應(yīng)用技術(shù),應(yīng)用的業(yè)務(wù)邏輯清楚地被組織成模型(服務(wù)),訪問(wèn)接口、服務(wù)成為1個(gè)黑盒。在SOA中,構(gòu)架設(shè)計(jì)由單個(gè)實(shí)體來(lái)提供一系列特定的任務(wù)。該實(shí)體接收服務(wù)請(qǐng)求并返回處理結(jié)果;或返回因嘗試失敗而導(dǎo)致的錯(cuò)誤。這些服務(wù),以及規(guī)定它們應(yīng)如何組合來(lái)構(gòu)成1個(gè)完整應(yīng)用程序的指導(dǎo)原則,就構(gòu)成了1個(gè)SOA。
在SOA架構(gòu)下,數(shù)據(jù)和業(yè)務(wù)邏輯融合成模型化的業(yè)務(wù)組件,且具有文檔接口,這種明確的設(shè)計(jì)和簡(jiǎn)單和方式有助于開(kāi)發(fā)和進(jìn)一步擴(kuò)展,1個(gè)SOA應(yīng)用可以很簡(jiǎn)單地與異構(gòu)的、外部的遺留系統(tǒng)、外購(gòu)的應(yīng)用集成。
2.4 MVC設(shè)計(jì)體系結(jié)構(gòu)
MVC(圖4)最初是在Smalltalk-80中被用來(lái)構(gòu)建用戶界面的。M代表模型Model,V代表視圖View,C代表控制器Controller。MVC的目的是增加代碼的重用率,減少數(shù)據(jù)表達(dá),數(shù)據(jù)描述和應(yīng)用操作的耦合度。