基于J2EE的應(yīng)用系統(tǒng)設(shè)計方案_第1頁
基于J2EE的應(yīng)用系統(tǒng)設(shè)計方案_第2頁
基于J2EE的應(yīng)用系統(tǒng)設(shè)計方案_第3頁
基于J2EE的應(yīng)用系統(tǒng)設(shè)計方案_第4頁
基于J2EE的應(yīng)用系統(tǒng)設(shè)計方案_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、PAGE PAGE PAGE PAGE PAGE PAGE 2基于J2EE的應(yīng)用系統(tǒng)設(shè)計方案目 錄 TOC o 1-3 h z u HYPERLINK l _Toc43146520 第1章平臺設(shè)計方案 PAGEREF _Toc43146520 h 1 HYPERLINK l _Toc43146521 1.1系統(tǒng)設(shè)計 PAGEREF _Toc43146521 h 1 HYPERLINK l _Toc43146522 1.1.1表現(xiàn)層設(shè)計 PAGEREF _Toc43146522 h 1 HYPERLINK l _Toc43146523 1.1.2請求服務(wù)層設(shè)計 PAGEREF _Toc43146

2、523 h 2 HYPERLINK l _Toc43146524 1.1.3業(yè)務(wù)邏輯層設(shè)計 PAGEREF _Toc43146524 h 2 HYPERLINK l _Toc43146525 1.1.4數(shù)據(jù)傳輸設(shè)計 PAGEREF _Toc43146525 h 3 HYPERLINK l _Toc43146526 1.1.5數(shù)據(jù)資源層設(shè)計 PAGEREF _Toc43146526 h 3 HYPERLINK l _Toc43146527 1.2關(guān)鍵技術(shù)設(shè)計 PAGEREF _Toc43146527 h 4 HYPERLINK l _Toc43146528 1.2.1數(shù)據(jù)架構(gòu)設(shè)計 PAGEREF

3、 _Toc43146528 h 4 HYPERLINK l _Toc43146529 1.2.2安全架構(gòu)設(shè)計 PAGEREF _Toc43146529 h 11 HYPERLINK l _Toc43146530 第2章技術(shù)實現(xiàn)方案 PAGEREF _Toc43146530 h 15 HYPERLINK l _Toc43146531 2.1MVC開發(fā)平臺 PAGEREF _Toc43146531 h 15 HYPERLINK l _Toc43146532 2.2關(guān)鍵技術(shù)方案 PAGEREF _Toc43146532 h 16 HYPERLINK l _Toc43146533 2.2.1SOA體系

4、架構(gòu) PAGEREF _Toc43146533 h 16 HYPERLINK l _Toc43146534 2.2.2B/S結(jié)構(gòu) PAGEREF _Toc43146534 h 18 HYPERLINK l _Toc43146535 2.2.3J2EE技術(shù) PAGEREF _Toc43146535 h 19 HYPERLINK l _Toc43146536 2.2.4Spring框架技術(shù) PAGEREF _Toc43146536 h 20 HYPERLINK l _Toc43146537 2.2.5Hibernate技術(shù) PAGEREF _Toc43146537 h 21 HYPERLINK l

5、 _Toc43146538 2.2.6XML技術(shù) PAGEREF _Toc43146538 h 22 HYPERLINK l _Toc43146539 2.2.7Web Service技術(shù) PAGEREF _Toc43146539 h 23 HYPERLINK l _Toc43146540 2.2.8SOCKET技術(shù) PAGEREF _Toc43146540 h 25PAGE 28平臺設(shè)計方案系統(tǒng)設(shè)計架構(gòu)設(shè)計以采用標(biāo)準(zhǔn)的J2EE體系架構(gòu),具有良好的可擴展性,并保證穩(wěn)定性,不需多做系統(tǒng)的技術(shù)架構(gòu)設(shè)計。我們采用Struts+Spring+Ibatis基礎(chǔ)平臺(SSI)框架作為技術(shù)支撐,整個業(yè)務(wù)系統(tǒng)

6、技術(shù)架重復(fù)建設(shè),縮短建設(shè)周期,減少建設(shè)資源投入,使各個業(yè)務(wù)系統(tǒng)以統(tǒng)一、一致的方式建設(shè),減輕系統(tǒng)維護人員的負擔(dān),保證系統(tǒng)能夠無縫的進行功能擴充。SSI基礎(chǔ)平臺技術(shù)架構(gòu)圖如下:表現(xiàn)層設(shè)計客戶端是系統(tǒng)與用戶的接口,對于系統(tǒng)整體性能,客戶端的影響較小,但對于系統(tǒng)的可操作性和界面友好性,卻起著決定性的作用。另外,客戶端同應(yīng)用服務(wù)器承擔(dān)了應(yīng)用系統(tǒng)的不同實現(xiàn)邏輯,共同完成系統(tǒng)需求的各項功能。這就要求客戶端同應(yīng)用服務(wù)器在技術(shù)上應(yīng)基于同一體系,在同應(yīng)用服務(wù)器的數(shù)據(jù)交換格式、協(xié)議方面也應(yīng)該統(tǒng)一。這些要求,都是保證系統(tǒng)整體性能、效率的重要條件。常見的應(yīng)用系統(tǒng)的客戶端包括Web和GUI兩種形式,兩種客戶端各有優(yōu)缺點,

7、適合于不同的應(yīng)用要求,近幾年來Web的應(yīng)用發(fā)展非常迅速,基于Web技術(shù)的胖客戶端逐漸成型,基于GUI技術(shù)的客戶端會逐漸被基于Web技術(shù)的胖客戶端所取代。在對該系統(tǒng)和所期達到的目標(biāo)進行分析,從實用和方便大眾的角度考慮,我們選擇Web方式,即通過瀏覽器訪問信息平臺。除此之外,隨著短信、Email等技術(shù)的發(fā)展和應(yīng)用,為我們提供了更為豐富的接入手段。在設(shè)計軟件平臺的用戶層時,我們也充分考慮到對這些技術(shù)手段接入的需要,提出了信息渠道的概念,通過統(tǒng)一的渠道接入管理服務(wù)實現(xiàn)多種渠道接入,達到共享業(yè)務(wù)邏輯及數(shù)據(jù)的目的。表現(xiàn)層的技術(shù)框架主要采用JSP和JavaScript,HTML以及組件技術(shù)。請求服務(wù)層設(shè)計請

8、求服務(wù)層是介于表現(xiàn)層框架和業(yè)務(wù)領(lǐng)域?qū)又g的負責(zé)傳輸信息的層次。利用Strtus2標(biāo)簽功能,在Action中直接與jsp頁面上的數(shù)據(jù)進行交互。在調(diào)用業(yè)務(wù)邏輯層應(yīng)用時,Struts2提供了對Sping的支持。開發(fā)人員需要完成對struts.xml的配置工作和對各個Action類的編寫。業(yè)務(wù)邏輯層設(shè)計利用Spring框架的依賴注入實現(xiàn)對業(yè)務(wù)邏輯類和DAO類的實例托管;在事務(wù)處理方面,利用Spring提供的面向切面的事務(wù)處理功能,使對數(shù)據(jù)的事務(wù)控制脫離于數(shù)據(jù)訪問接口實現(xiàn);在對象關(guān)系映射方面,利用Spring對數(shù)據(jù)庫連接池的托管和對iBatis框架的支持。開發(fā)人員需要完成對數(shù)據(jù)源的配置、對不同模塊所對應(yīng)

9、的application*.xml文件的配置,以及對業(yè)務(wù)邏輯接口的定義和業(yè)務(wù)邏輯實現(xiàn)的編寫。在持久層,利用iBatis提供的半自動化對象關(guān)系映射的實現(xiàn),開發(fā)人員需要編寫具體的sql語句,為系統(tǒng)設(shè)計提供了更大的自由空間。另外,開發(fā)人員需要完成對SqlMapConfig.xml和*SqlMap.xml的配置,以及對DAO接口的定義和DAO接口的實現(xiàn)。數(shù)據(jù)傳輸設(shè)計訪問請求的處理過程所有的客戶端接入都經(jīng)過接入網(wǎng)關(guān),保證了系統(tǒng)的一致性和良好的維護性,首先要校驗該訪問的有效性和合法性,從根本上杜絕了客戶端對系統(tǒng)的非法訪問請求。在數(shù)據(jù)客戶端的訪問數(shù)據(jù)接入業(yè)務(wù)邏輯層后,在調(diào)用業(yè)務(wù)處理邏輯之前,先用過濾器對上傳

10、的數(shù)據(jù)做有效性檢驗,只有當(dāng)數(shù)據(jù)屬性滿足相應(yīng)業(yè)務(wù)要求之后,系統(tǒng)才會將請求傳送給設(shè)定的業(yè)務(wù)處理邏輯,以避免因先天數(shù)據(jù)畸形影響系統(tǒng)數(shù)據(jù)的完整性。數(shù)據(jù)資源層設(shè)計數(shù)據(jù)資源層用來保存持久型的數(shù)據(jù)資源。我們使用兩種不同的形式來保存各種不同的持久型數(shù)據(jù)資源,它們分別是:數(shù)據(jù)庫和文件系統(tǒng)。數(shù)據(jù)庫我們使用數(shù)據(jù)庫系統(tǒng)來保存系統(tǒng)的業(yè)務(wù)信息、審計信息以及一些重要的日志信息。對于數(shù)據(jù)庫的類型,我們可以使用成熟、穩(wěn)定的關(guān)系型數(shù)據(jù)庫。文件系統(tǒng)我們使用文件系統(tǒng)來保存系統(tǒng)的日志信息,可以使得用戶更簡單、靈活的操作和管理日志文件。此外,還可以使用文件系統(tǒng)保存一些其他數(shù)據(jù),如XML文件傳輸?shù)?。關(guān)鍵技術(shù)設(shè)計數(shù)據(jù)架構(gòu)設(shè)計數(shù)據(jù)元設(shè)計統(tǒng)一性

11、原則:系統(tǒng)的數(shù)據(jù)庫為集中的數(shù)據(jù)庫,因此,必須統(tǒng)一不同地區(qū),不同部門的編碼格式,制定相關(guān)的數(shù)據(jù)標(biāo)準(zhǔn),保證數(shù)據(jù)庫數(shù)據(jù)的一致性。公共代碼:遵循行業(yè)的編碼規(guī)范,所有代碼類數(shù)據(jù)原則上只增不改,保障代碼變化前后數(shù)據(jù)的延續(xù)性和避免對數(shù)據(jù)一致性產(chǎn)生影響。向下兼容性:新系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)必然根據(jù)新的需要重新設(shè)計,但為了能夠完整的接收老系統(tǒng)的必要數(shù)據(jù),在關(guān)鍵結(jié)構(gòu)上要包容老系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),以此保證對老系統(tǒng)相關(guān)數(shù)據(jù)的完整接收,降低系統(tǒng)實施、遷移和過渡的難度。數(shù)據(jù)元管理:數(shù)據(jù)元管理實現(xiàn)對數(shù)據(jù)結(jié)構(gòu)的統(tǒng)一控制,功能層在系統(tǒng)管理部分體現(xiàn)。此處所指是為維護管理數(shù)據(jù)元在后臺數(shù)據(jù)庫中設(shè)立的數(shù)據(jù)元管理數(shù)據(jù)結(jié)構(gòu)。該結(jié)構(gòu)獨立于應(yīng)用數(shù)據(jù)之外,

12、主要存儲各種后臺數(shù)據(jù)庫對象的定義信息、描述信息、管理信息、監(jiān)控信息、日志信息、版本信息等內(nèi)容,為實現(xiàn)統(tǒng)一、全面的數(shù)據(jù)元管理提供數(shù)據(jù)基礎(chǔ)。設(shè)計規(guī)范:遵循關(guān)系數(shù)據(jù)庫的規(guī)范化理論,按照第三范式的要求進行庫表設(shè)計。命名規(guī)范:遵循行業(yè)的數(shù)據(jù)命名規(guī)范,并且嚴格執(zhí)行。數(shù)據(jù)庫設(shè)計系統(tǒng)內(nèi)包含了大量的基本信息數(shù)據(jù),應(yīng)根據(jù)相關(guān)國際和國家標(biāo)準(zhǔn)完成相關(guān)數(shù)據(jù)庫劃分與設(shè)計,包括進行元數(shù)據(jù)編制、數(shù)據(jù)字典編制、邏輯劃分、庫表結(jié)構(gòu)邏輯設(shè)計、用戶角色定義、權(quán)限分配、物理設(shè)計、整體優(yōu)化設(shè)計等。我們將對系統(tǒng)業(yè)務(wù)數(shù)據(jù)庫進行統(tǒng)一規(guī)劃,遵循數(shù)據(jù)庫設(shè)計的統(tǒng)一標(biāo)準(zhǔn)和規(guī)范:數(shù)據(jù)結(jié)構(gòu)分明、易于管理,以最優(yōu)化方式組織數(shù)據(jù),使數(shù)據(jù)庫在邏輯上劃分合理,減

13、少數(shù)據(jù)的冗余,實現(xiàn)數(shù)據(jù)的共享;安全可靠,便于維護、擴充與更新,以便信息查詢;滿足第三范式要求,但為了提高系統(tǒng)的可靠性和響應(yīng)性能,可容許適度的冗余。數(shù)據(jù)庫設(shè)計的基本原則數(shù)據(jù)庫系統(tǒng)及其支撐環(huán)境建設(shè)應(yīng)把握下列設(shè)計原則:數(shù)據(jù)庫作為數(shù)據(jù)的存儲中心和數(shù)據(jù)管理中心,支持各業(yè)務(wù)應(yīng)用系統(tǒng)的建設(shè)。數(shù)據(jù)庫的建設(shè)目標(biāo)是建立數(shù)據(jù)采集、更新、管理、使用機制;加快系統(tǒng)內(nèi)部信息交流與反饋;為各級管理人員提供決策支持服務(wù),實現(xiàn)全系統(tǒng)的信息傳遞、數(shù)據(jù)處理、信息共享,最終成為數(shù)據(jù)存儲中心、數(shù)據(jù)管理中心、數(shù)據(jù)服務(wù)中心。計算機系統(tǒng)可能因為天災(zāi)或人為因素等等意外事故,導(dǎo)致系統(tǒng)毀壞而長期無法運行,造成整個系統(tǒng)的重大損失。因此,我們應(yīng)視災(zāi)害

14、的發(fā)生為必然,事先應(yīng)妥善做好規(guī)劃,使其能夠于平時達成防患于未然的效果,萬一災(zāi)害不幸發(fā)生,也可以降低災(zāi)害所帶來的損失與風(fēng)險,達成各業(yè)務(wù)持續(xù)運行的目的。故障恢復(fù)與容災(zāi)備份分不同的等級?;謴?fù)速度越高、丟失數(shù)據(jù)越少的系統(tǒng),級別越高,投資也越大。因此設(shè)計故障恢復(fù)和容災(zāi)備份需要同時考慮系統(tǒng)投資和系統(tǒng)的安全性。 數(shù)據(jù)庫設(shè)計的方法根據(jù)用戶需求和E-R分析,結(jié)合現(xiàn)代數(shù)據(jù)庫管理系統(tǒng)的特點,對數(shù)據(jù)庫中各表的關(guān)系進行規(guī)范化論證和設(shè)計,按照減少數(shù)據(jù)冗余度,確保數(shù)據(jù)一致,提高查詢速度等原則進行表結(jié)構(gòu)設(shè)計。在計算機硬件存儲性能飛速提高的情況下,當(dāng)數(shù)據(jù)庫系統(tǒng)的存儲空間與信息查詢速度及管理維護發(fā)生矛盾時,一般以保證查詢速度及數(shù)

15、據(jù)一致性為原則,可適當(dāng)放寬冗余度。充分注意到關(guān)系數(shù)據(jù)庫多表聯(lián)接運算引起的效率降低,在表設(shè)計結(jié)構(gòu)中,對需要聯(lián)接運算的表做細致的分析,可采用降低范式或建立索引等方式提高系統(tǒng)的響應(yīng)速度。標(biāo)準(zhǔn)化原則,對于相關(guān)參數(shù)的分類、表標(biāo)識符、字段標(biāo)識和代碼等,應(yīng)該符合有關(guān)技術(shù)規(guī)范和標(biāo)準(zhǔn)。標(biāo)識符是數(shù)據(jù)庫標(biāo)識系統(tǒng)的重要組成部分,是由表標(biāo)識符、數(shù)據(jù)項(字段)標(biāo)識符、訪問接口(存儲過程)及其參數(shù)標(biāo)識符組成,它們不僅代表了特定的表名和字段名稱、各二維表與其字段之間的邏輯關(guān)系,也表示通過訪問接口直接訪問數(shù)據(jù)庫的語言規(guī)則。標(biāo)識符在數(shù)據(jù)庫的定義、操作、控制和維護管理等工作中具有重要作用,因此在標(biāo)識符設(shè)計中要注意以下原則:在標(biāo)識符

16、的形成規(guī)則和標(biāo)識方法上要有科學(xué)性、規(guī)律性、聯(lián)想性??紤]數(shù)據(jù)庫管理系統(tǒng)和操作系統(tǒng)的兼容性和數(shù)據(jù)操作易于編程,禁止使用中文標(biāo)示,同時考慮標(biāo)識符的易讀性,盡可能不用拼音縮寫。標(biāo)示符命名采用的匈牙利命名法規(guī)則,每個標(biāo)示符采用l到多個英文單詞組成,對較長的單詞采用常見的英文縮寫。數(shù)據(jù)項的類型盡可能采用易于操作的類型,單位盡可能采用精度較高的單位。訪問接口的參數(shù)順序要先重要后次要,盡可能設(shè)計缺省值。 數(shù)據(jù)庫設(shè)計的要點系統(tǒng)的數(shù)據(jù)庫設(shè)計的要點有:保持數(shù)據(jù)庫對象的邏輯一致性和唯一性。滿足數(shù)據(jù)集成和共享的需要。使不同類型用戶能夠?qū)蚕淼臄?shù)據(jù)進行綜合查詢。體現(xiàn)數(shù)據(jù)指標(biāo)的整體系統(tǒng)性。通過編碼體現(xiàn)系統(tǒng)整體數(shù)據(jù)的分類系統(tǒng)

17、,滿足建立和動態(tài)更新數(shù)據(jù)庫的需要。需保持數(shù)據(jù)庫中數(shù)據(jù)項編碼相對穩(wěn)定的要求。數(shù)據(jù)庫中的數(shù)據(jù)結(jié)構(gòu)是通過數(shù)據(jù)項之間的E-R模型通過軟件實現(xiàn)的,在編碼方案試驗中,各數(shù)據(jù)庫一致表示,對于運行中的大型數(shù)據(jù)庫,頻繁改變數(shù)據(jù)項編碼將影響數(shù)據(jù)庫的安全性和穩(wěn)定性。鑒于統(tǒng)一編碼的主要目的恰恰在于反映集成后的數(shù)據(jù)結(jié)構(gòu)。為此,數(shù)據(jù)庫平臺建設(shè)中將頻繁變動的內(nèi)容放到元數(shù)據(jù)中去解決,數(shù)據(jù)庫平臺建設(shè)過程中,統(tǒng)一重新編碼的范圍僅限于數(shù)據(jù)項,這些指標(biāo)反映了現(xiàn)有數(shù)據(jù)庫的E-R結(jié)構(gòu),相當(dāng)固定,進行統(tǒng)一編碼后便于進行數(shù)據(jù)庫集成。對于已經(jīng)有國家標(biāo)準(zhǔn)或行業(yè)標(biāo)準(zhǔn)的業(yè)務(wù)數(shù)據(jù)均采用現(xiàn)成的標(biāo)準(zhǔn)編碼;對于沒有標(biāo)準(zhǔn)編碼的業(yè)務(wù)數(shù)據(jù),在建設(shè)中應(yīng)依據(jù)業(yè)務(wù)數(shù)據(jù)

18、的一般編碼規(guī)則,給出能反映專題分類層次結(jié)構(gòu)的編碼體系,并使編碼與數(shù)據(jù)庫中的其它編碼保持結(jié)構(gòu)上的一致性;簡化與統(tǒng)一相結(jié)合,具有可擴充性。性能要素在系統(tǒng)設(shè)計模型正確的前提下,對系統(tǒng)性能造成影響的因素主要是資源瓶頸。對于本系統(tǒng),可能對系統(tǒng)性能影響較大的部分包括:復(fù)雜的科學(xué)計算統(tǒng)計分析、大數(shù)據(jù)量處理幾方面。這些問題在數(shù)據(jù)集中的情況下將顯得更為突出,下面以大數(shù)據(jù)量處理為例進行分析。批量后臺處理和統(tǒng)計分析功能受數(shù)據(jù)量的影響較大,同時也將間接影響到前臺的事務(wù)型處理。造成數(shù)據(jù)量龐大的原因有很多,包括歷史數(shù)據(jù)的累積、各單位數(shù)據(jù)集中、復(fù)雜的查詢需求等等。性能優(yōu)化策略系統(tǒng)的用戶群比較廣泛,數(shù)據(jù)存儲量大,必須制定對應(yīng)

19、的性能優(yōu)化策略來保證應(yīng)用系統(tǒng)正常的效能發(fā)揮。對大數(shù)據(jù)量存儲對象的分割規(guī)劃,將其由大劃小,以利于使用和管理。以空間換時間,對關(guān)聯(lián)頻繁的表進行適當(dāng)?shù)娜哂嗷蚝喜?。建立適當(dāng)?shù)乃饕岣咧匾樵兊牟僮魉俣?。進行周詳?shù)拇鎯臻g部署,保證訪問數(shù)據(jù)的連續(xù)性、降低并發(fā)數(shù)據(jù)操作的爭用。從性能、安全和成本方面考慮,采用性價比最高的陣列技術(shù)提供數(shù)據(jù)存儲的硬件級支持。存儲模型設(shè)計 設(shè)計規(guī)范規(guī)范化是系統(tǒng)建設(shè)的基石,本系統(tǒng)開發(fā)系統(tǒng)數(shù)據(jù)庫建設(shè)將遵循如下原則:對于既有國家標(biāo)準(zhǔn)或行業(yè)標(biāo)準(zhǔn)均直接予以采用;對于沒有標(biāo)準(zhǔn)編碼的情況,在建設(shè)中依據(jù)一般編碼規(guī)則,給出能反映分類層次結(jié)構(gòu)的編碼體系,并使編碼與數(shù)據(jù)庫中的其它編碼保持結(jié)構(gòu)上的一致

20、性;簡化與統(tǒng)一相結(jié)合,具有可擴充性。體現(xiàn)數(shù)據(jù)指標(biāo)的整體系統(tǒng)性。在保持各數(shù)據(jù)分類編碼體系邏輯一致性的同時,通過高位編碼體現(xiàn)整體數(shù)據(jù)的分類系統(tǒng),滿足建立和動態(tài)更新數(shù)據(jù)庫的需要。保持數(shù)據(jù)庫中數(shù)據(jù)項編碼相對穩(wěn)定的要求。保持數(shù)據(jù)庫對象的邏輯一致性和唯一性。 非結(jié)構(gòu)化數(shù)據(jù)存儲本系統(tǒng)中可能使用到的非結(jié)構(gòu)化數(shù)據(jù)主要有文檔信息(OFFICE、PDF等)、圖片信息、掃描文件、XML數(shù)據(jù)、HTML文件,其特點是信息量大。目前針對非結(jié)構(gòu)化數(shù)據(jù)存儲的主要方案是采用數(shù)據(jù)庫系統(tǒng)的大對象類型字段和外部文件服務(wù)器結(jié)合的方式。這兩種方式都有各自的優(yōu)點與缺點:數(shù)據(jù)庫存儲利用數(shù)據(jù)庫系統(tǒng)內(nèi)建的大對象字段,每行可存儲最大4G的信息。同時

21、基于數(shù)據(jù)庫系統(tǒng)具體的強大的管理功能,可實現(xiàn)對所有數(shù)據(jù)的統(tǒng)一管理和一致的備份恢復(fù)策略。缺點是由于增加了數(shù)據(jù)庫層,與直接文件訪問處理相比會對效率造成一定影響。文件服務(wù)器存儲索引仍通過數(shù)據(jù)庫系統(tǒng)實現(xiàn)以保證效率,采用文件系統(tǒng)存儲可保留數(shù)據(jù)的原始狀態(tài),應(yīng)用層可直接加載利用,有利于效率的提高。但是需要增加購置文件服務(wù)器或開發(fā)類似系統(tǒng)的成本,同時需要在備份恢復(fù)方面單獨進行考慮,整體性稍差。統(tǒng)一模型系統(tǒng)數(shù)據(jù)庫,是一個北京市集中的數(shù)據(jù)庫,因此在設(shè)計時,必須保證模型的高度統(tǒng)一,首先必須保證各類公共數(shù)據(jù)的編碼和內(nèi)容的一致性,業(yè)務(wù)數(shù)據(jù)依靠統(tǒng)一編碼的公共數(shù)據(jù)實現(xiàn)北京市的唯一性。系統(tǒng)數(shù)據(jù)分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),結(jié)構(gòu)

22、化數(shù)據(jù)方面,主要包含如下一些內(nèi)容:分類說明組織機構(gòu)信息機構(gòu)、人員編制權(quán)限操作權(quán)限、數(shù)據(jù)權(quán)限公共信息公用代碼等日志信息操作、事件等事項記錄安全控制用戶認證信息配置信息邏輯控制,如規(guī)則庫等業(yè)務(wù)數(shù)據(jù)各類業(yè)務(wù)的發(fā)生和過程記錄歷史數(shù)據(jù)各類業(yè)務(wù)的發(fā)生和過程的歷史記錄公共數(shù)據(jù)和需要統(tǒng)一管理的數(shù)據(jù)已從應(yīng)用、部署規(guī)則上對其統(tǒng)一性進行了保證,其他類型數(shù)據(jù)根據(jù)用戶提出的數(shù)據(jù)大集中要求,可以使各單位數(shù)據(jù)在北京市范圍內(nèi)做到唯一標(biāo)識,為數(shù)據(jù)結(jié)構(gòu)統(tǒng)一排除障礙。非結(jié)構(gòu)化數(shù)據(jù)方面,由于系統(tǒng)支持“數(shù)據(jù)庫存儲”和“文件服務(wù)器存儲”兩種模式,因此數(shù)據(jù)庫層應(yīng)同時存在兩種模式支持結(jié)構(gòu)。大對象字段表對應(yīng)于數(shù)據(jù)庫存儲,外部文件索引表為文件服

23、務(wù)器存儲提供檢索管理服務(wù)支持。存儲安全規(guī)劃系統(tǒng)的安全保證至關(guān)重要,是設(shè)計方案中的重要內(nèi)容。對于數(shù)據(jù)層來說,主要是如何在應(yīng)用層和系統(tǒng)層對數(shù)據(jù)庫系統(tǒng)及內(nèi)部數(shù)據(jù)提供有效的保護策略。這在本系統(tǒng)中是通過統(tǒng)一的安全體系予以保證的,下面列出的是一些基本的保護要求:數(shù)據(jù)安全系統(tǒng)上線后,一個小的維護錯誤操作都可能造成不可估量的嚴重后果,因此必須采取一切手段對數(shù)據(jù)安全加以保護。從結(jié)構(gòu)層必須嚴格各種數(shù)據(jù)的分級歸屬;從應(yīng)用層必須貫徹嚴格的權(quán)限管理、身份審查、邏輯審查和安全審查;維護管理操作必須嚴格遵循分級制度;此外通過采用數(shù)據(jù)庫級和應(yīng)用級的審計、備份管理,對非法操作實時監(jiān)控,對數(shù)據(jù)進行多重保護。系統(tǒng)安全數(shù)據(jù)的集中提高

24、了單點故障的風(fēng)險,但這完全可以通過周詳?shù)南到y(tǒng)安全方案加以避免。同時集中模式減少了分布點、降低了安全方案的整體成本和復(fù)雜度,反而更加便于實現(xiàn)和管理。對于數(shù)據(jù)庫系統(tǒng)安全方案而言其主要內(nèi)容在于監(jiān)控、配置管理、備份與恢復(fù),這些是數(shù)據(jù)庫可持續(xù)正常運行的基本保障。安全保證措施數(shù)據(jù)庫的安全保證可以采用多種方式和手段,主要有如下幾種:數(shù)據(jù)庫集群技術(shù):類似于應(yīng)用服務(wù)器集群技術(shù),采用多主機、多實例的方式提供數(shù)據(jù)庫服務(wù)。當(dāng)某臺主機由于意外情況停止服務(wù)時,集群中的其他機器會服務(wù)請求,避免服務(wù)中斷的情況發(fā)生。此種模式不能解決數(shù)據(jù)庫系統(tǒng)發(fā)生物理損害情況下的系統(tǒng)恢復(fù)。硬件鏡像:在數(shù)據(jù)存儲硬件層,通過硬件鏡像技術(shù),實時地將數(shù)

25、據(jù)庫資料同時寫入到兩套存儲硬件中。此種方式最大的優(yōu)點就是處理速度快,便于保證應(yīng)用系統(tǒng)的連續(xù)運行;其缺點是投入成本較高,另外當(dāng)主數(shù)據(jù)庫的數(shù)據(jù)存儲發(fā)生錯誤時,錯誤內(nèi)容也會被復(fù)制到鏡像系統(tǒng)中。物理備份與恢復(fù):采用數(shù)據(jù)庫系統(tǒng)提供的物理備份恢復(fù)軟件,結(jié)合數(shù)據(jù)庫的日志體系,對數(shù)據(jù)庫內(nèi)容實現(xiàn)物理層面的完整備份和提供豐富的整體或局部數(shù)據(jù)恢復(fù)方式。此種方式性價比較高,但需要有專用的存儲系統(tǒng)提供支持。邏輯備份與恢復(fù):采用數(shù)據(jù)庫系統(tǒng)提供的邏輯備份與恢復(fù)軟件,對數(shù)據(jù)庫進行指定時間點的完整或局部的備份和恢復(fù)操作。此種方式最簡單易行,但效率和數(shù)據(jù)的完整性無法得到很好的保證。安全架構(gòu)設(shè)計系統(tǒng)的建設(shè)本身就要求有極高的安全性,

26、數(shù)據(jù)中心的服務(wù)器上運行著各種應(yīng)用系統(tǒng)的數(shù)據(jù)庫并存有大量關(guān)鍵數(shù)據(jù),關(guān)系著整個系統(tǒng)可靠性和穩(wěn)定性。信息系統(tǒng)的各個層面,即網(wǎng)絡(luò)與通信平臺、系統(tǒng)軟件環(huán)境、數(shù)據(jù)同步、應(yīng)用信息加密、用戶查詢與訪問的身份驗證等都需要貫徹統(tǒng)一的安全保障體系。因此網(wǎng)絡(luò)的設(shè)計必需考慮網(wǎng)絡(luò)系統(tǒng)、服務(wù)器系統(tǒng)及應(yīng)用系統(tǒng)的安全性,防止內(nèi)部及外部非法訪問的問題并具有相應(yīng)的安全措施。整個系統(tǒng)系統(tǒng)是一個統(tǒng)一的整體結(jié)構(gòu),要求使用統(tǒng)一的安全體系結(jié)構(gòu)來配置資源。主要包括以下幾個方面:信息傳輸安全:數(shù)據(jù)加密、網(wǎng)絡(luò)分段;信息存儲安全:服務(wù)器安全、數(shù)據(jù)備份和恢復(fù)、異地容災(zāi);信息訪問安全:防火墻、身份認證、漏洞掃描、入侵檢測;系統(tǒng)環(huán)境安全:操作系統(tǒng)安全、防

27、病毒體系;應(yīng)用系統(tǒng)安全:身份認證、用戶權(quán)限管理、安全配置管理。在采用安全設(shè)備及安全技術(shù)的同時,還需要制定嚴密的安全管理體制和安全管理制度共同構(gòu)建系統(tǒng)安全體系。權(quán)限控制管理在系統(tǒng)中,我們將要建立一個統(tǒng)一的用戶權(quán)限管理,統(tǒng)一的用戶認證與授權(quán)機制,從而實現(xiàn)各個應(yīng)用子系統(tǒng)的用戶權(quán)限統(tǒng)一管理機制,并有效的支持單點登錄功能的實現(xiàn)。用戶權(quán)限管理模型是現(xiàn)實中的用戶、用戶的職責(zé)和各機構(gòu)之間的關(guān)系在系統(tǒng)中的抽象,它是系統(tǒng)實現(xiàn)統(tǒng)一認證、授權(quán)和權(quán)限管理的基礎(chǔ)?;靖拍顧?quán)限模型主要包括以下一些基本概念,他們是:用戶:用戶是指每個可以登錄系統(tǒng)的人在系統(tǒng)中的身份。功能:功能是系統(tǒng)中可以允許被用戶操作的最小單位。權(quán)限:權(quán)限是

28、指一個用戶是否有權(quán)利去操作系統(tǒng)中的某一個功能。每一個權(quán)限都唯一對應(yīng)著一個功能。角色:角色是一系權(quán)限的集合,它對應(yīng)著各機關(guān)中的崗位設(shè)置。就像每個崗位有多個職責(zé)一樣,每個角色也擁有多種權(quán)限。組織機構(gòu):行政上的機構(gòu)在系統(tǒng)中的反映,每個用戶都應(yīng)該屬于一個固定的機構(gòu)。機構(gòu)也對應(yīng)著數(shù)據(jù)權(quán)限,如果一個用戶屬于某個機構(gòu),那么他同時擁有操作這個機構(gòu)的數(shù)據(jù)權(quán)限。權(quán)限模型的實現(xiàn)用戶的權(quán)限主要是由兩個部分組成:用戶功能權(quán)限和用戶權(quán)限的數(shù)據(jù)范圍。在系統(tǒng)中,用戶的功能權(quán)限是在平臺中統(tǒng)一控制實現(xiàn)的,就是檢查用戶是否擁有執(zhí)行某項功能的權(quán)限。而權(quán)限的數(shù)據(jù)范圍則是在每個功能的實現(xiàn)中控制的。用戶權(quán)限管理模型應(yīng)用權(quán)限的實現(xiàn)每一個用戶

29、都被賦予一個或多個角色,角色是由多個不同的權(quán)限組成,它是為了方便的分配用戶權(quán)限而設(shè)置的。當(dāng)用戶擁有某個角色時,缺省就擁有該角色對應(yīng)的權(quán)限。用戶也可以直接擁有權(quán)限以減少角色的粒度,避免產(chǎn)生過多的角色。因為用戶與角色,用戶與權(quán)限之間都是多對多的關(guān)系,因此他們之間需要建立關(guān)系映射表來完成他們之間的映射。用戶角色用來映射用戶與角色之間的關(guān)系,而用戶權(quán)限用來映射用戶與權(quán)限之間的關(guān)系。這樣,當(dāng)一個用戶登錄的使用,就可以根據(jù)用戶得到用戶權(quán)限的映射關(guān)系,看到該用戶使用的所有功能了。每一個權(quán)限都對應(yīng)由一個功能來實現(xiàn),比如我們可以將對一張數(shù)據(jù)庫表的更、刪、改、查映射為四個功能。每一個功能的實現(xiàn),都會在程序中有一個

30、對應(yīng)的觸發(fā)機制,比如GUI客戶端的按鈕,Web中的Url等等,它們都是功能的一種。這樣,當(dāng)用戶登錄以后,我們就可以得到允許被該用戶使用的全部頁面、界面、超鏈接和按鈕,從而動態(tài)的為用戶生成系統(tǒng)展現(xiàn)界面。通過用戶、角色、權(quán)限與功能之間的關(guān)系,我們可以將一個用戶與系統(tǒng)中的菜單或操作聯(lián)系在一起,為每一個用戶分配不同的功能,以控制系統(tǒng)的功能權(quán)限。數(shù)據(jù)權(quán)限的實現(xiàn)每一個用戶都有自己的數(shù)據(jù)權(quán)限,所謂數(shù)據(jù)權(quán)限是指一個用戶允許操作到的數(shù)據(jù)的范圍。組織機構(gòu)是每一個真實的機構(gòu)在系統(tǒng)中的映射,每一個組織機構(gòu)就是一個數(shù)據(jù)權(quán)限。在現(xiàn)實中,一個用戶只屬于一個機構(gòu),但是從數(shù)據(jù)權(quán)限的角度來講,一個用戶會存在一個或多個數(shù)據(jù)權(quán)限。用

31、戶與數(shù)據(jù)權(quán)限的關(guān)系是多對多的關(guān)系,因此它們之間也需要一個映射表來保存映射關(guān)系。我們可以通過用戶與組織機構(gòu)的關(guān)系來確定每一個用戶的數(shù)據(jù)權(quán)限,同時我們需要為每一個需要控制數(shù)據(jù)權(quán)限的表增加一個字段來保存表中數(shù)據(jù)的數(shù)據(jù)范圍。這樣,當(dāng)用戶登錄后,我們就可以確定這個用戶的數(shù)據(jù),當(dāng)用戶需要操作數(shù)據(jù)時,我們就可以通過數(shù)據(jù)庫表中的數(shù)據(jù)范圍字段來確定用戶是否有權(quán)限操作這些數(shù)據(jù)。技術(shù)實現(xiàn)方案MVC開發(fā)平臺MVC開發(fā)平臺是本公司凝聚了多年的電子政務(wù)開發(fā)經(jīng)驗,精心打造的WEB應(yīng)用開發(fā)平臺。它提供了更快速的和成本更低的應(yīng)用程序開發(fā),更高的應(yīng)用程序質(zhì)量,可控性更好和一致性更強的結(jié)果,更快的軟件產(chǎn)品開發(fā)周期,使商業(yè)應(yīng)用程序更

32、快速進入市場,減少項目成本和降低項目風(fēng)險。MVC平臺基礎(chǔ)開發(fā)層由Web架構(gòu)、用戶權(quán)限管理、安全身份認證等組成。利用基礎(chǔ)開發(fā)層和基礎(chǔ)產(chǎn)品層提供的產(chǎn)品、工具、框架來開發(fā)項目和產(chǎn)品,由于很多常用功能都被封裝為標(biāo)準(zhǔn)的組件,使得應(yīng)用層的項目和產(chǎn)品開發(fā)變得很容易。MVC開發(fā)平臺建立在J2EE標(biāo)準(zhǔn)之上,采用了輕量級的容器設(shè)計,可以工作在任何支持的servlet的服務(wù)器上,不但使整體性能提高,同時可靠性加大,系統(tǒng)擴展簡單。系統(tǒng)采用了當(dāng)前流行的面向方面編程(AOP)架構(gòu),有效地解決了基礎(chǔ)組件和業(yè)務(wù)組件的依賴關(guān)系,將高度松散和快速開發(fā)的特點發(fā)揮到極致。它還提供了許多極富特色的功能:聚集了搜索引擎的優(yōu)化、webSe

33、rvice、WML等眾多的技術(shù),通過集成技術(shù)將這些功能有機地結(jié)合在一起形成一個功能全面的開發(fā)平臺。Web開發(fā)采用了標(biāo)準(zhǔn)的HTML模板,所見所得(WYGIWYS)的頁面模板設(shè)計,網(wǎng)頁美工設(shè)計人員和程序員能完美的配合,在持續(xù)完善的過程中快速調(diào)整頁面。內(nèi)置了許多AJAX功能組件,滿足用戶個性化的需求,增強了用戶的體驗。系統(tǒng)提供了強大的國際化的支持,并支持多語種文字混排。支持多種主流的數(shù)據(jù)庫系統(tǒng),在不同的數(shù)據(jù)庫做切換無須改動程序代碼。采用了面向組件的技術(shù),業(yè)務(wù)組件可根據(jù)需要按積木的方式進行組合,充分滿足用戶多元化的個性需求。以業(yè)務(wù)驅(qū)動為導(dǎo)向,開發(fā)人員只需描述應(yīng)用的組織機構(gòu)、業(yè)務(wù)流程、業(yè)務(wù)信息、業(yè)務(wù)資源

34、、業(yè)務(wù)邏輯、業(yè)務(wù)事件等業(yè)務(wù)內(nèi)容,而不用過多地考慮技術(shù)層面的問題,實現(xiàn)了業(yè)務(wù)和開發(fā)技術(shù)的分離。強制性的業(yè)務(wù)服務(wù)接口,將業(yè)務(wù)邏輯封裝成服務(wù)。匯聚了分布式、集群、負載均衡等強大的伸縮功能。通過配置透明地實現(xiàn)了緩存功能,極大地提高系統(tǒng)的響應(yīng)時間。系統(tǒng)采用了開放性架構(gòu)與標(biāo)準(zhǔn)化接口,與特定廠商、產(chǎn)品的無關(guān),整個系統(tǒng)具有較好的可移植性和適應(yīng)性??刹灏蔚臋?quán)限管理組件,權(quán)限管理與業(yè)務(wù)組件和業(yè)務(wù)應(yīng)用系統(tǒng)相對分離,可根據(jù)不同應(yīng)用對權(quán)限管理的需要,實現(xiàn)不同層次的權(quán)限管理。MVC開發(fā)平臺簡化了應(yīng)用開發(fā)的步驟,降低應(yīng)用開發(fā)的難度,提高應(yīng)用開發(fā)的效率及靈活性,極大提高應(yīng)用開發(fā)的生產(chǎn)力。關(guān)鍵技術(shù)方案SOA體系架構(gòu)面向服務(wù)的體

35、系結(jié)構(gòu)(service-oriented architecture,SOA)是一種組件模型,它將應(yīng)用程序的不同功能組件(服務(wù)),通過“服務(wù)”之間的良好接口聯(lián)系起來(也就是“服務(wù)”之間的松耦合)。接口是采用中立方式進行定義的,獨立于實現(xiàn)“服務(wù)”的硬件平臺,操作系統(tǒng)和編成語言。這是構(gòu)建在各種各樣系統(tǒng)中的“服務(wù)”可以以一種統(tǒng)一和通用方式進行交互。松耦合的好處是保證系統(tǒng)靈活性,另外,還可以保證“服務(wù)”的重復(fù)利用。Web服務(wù)是目前實現(xiàn)SOA最重要的標(biāo)準(zhǔn)。SOA是在原有組件化和EDI(電子數(shù)據(jù)交換)的基礎(chǔ)上,進一步將可重復(fù)利用的軟件資源抽象化和標(biāo)準(zhǔn)化,換句話說,就是抽取軟件基因,建立互通的管道,達到重復(fù)利

36、用和信息流暢的目的,解決業(yè)務(wù)最頭痛的“適應(yīng)業(yè)務(wù)變化”和“集成”問題。與過去的組件化模式相比,SOA的新奇之處還在于:它變過去的技術(shù)組件為業(yè)務(wù)組件(又叫服務(wù)),強調(diào)的是技術(shù)無關(guān)性,關(guān)注的是實現(xiàn)怎樣的業(yè)務(wù)功能在業(yè)務(wù)請求與響應(yīng)之間隨時搭建快速通道,同時,變過去的緊耦合為松耦合,既保證系統(tǒng)彈性,又不失系統(tǒng)效率,進而實現(xiàn)重復(fù)利用軟件資源、快速響應(yīng)市場需求變化、提高生產(chǎn)力等目標(biāo)。過去,應(yīng)用軟件基本上是按照業(yè)務(wù)流程逐一對應(yīng)開發(fā)的,每一個應(yīng)用自成體系、自立門戶。事實上,任何應(yīng)用都包含最基本的三個內(nèi)容:界面、業(yè)務(wù)邏輯和數(shù)據(jù)展現(xiàn),應(yīng)該可以重復(fù)利用。但就因為每個應(yīng)用自成體系,每開發(fā)一個新應(yīng)用,就需要重開發(fā)一遍界面與

37、數(shù)據(jù)展現(xiàn),重寫一遍業(yè)務(wù)代碼,浪費了大量的時間和人力。 而SOA就是力求改變過去縱向開發(fā)應(yīng)用的模式,將軟件按照業(yè)務(wù)需求,定義成大小合適的“組件”,作為企業(yè)共享資源,隨時調(diào)用。SOA的核心就是找到將軟件組織在一起的方法。 SOA帶給用戶的好處很明顯,除了前面提到的可以降低開發(fā)成本,提高系統(tǒng)集成度和響應(yīng)速度等,還能幫助解決因為系統(tǒng)升級帶來的煩惱。傳統(tǒng)的軟件升級對用戶就意味著每三年來一次革命,不僅需耗費大量金錢,還會鬧得人仰馬翻?,F(xiàn)有的GRP等政務(wù)軟件幾乎都是鐵板一塊,當(dāng)某一點政策變化時,某一點功能需要調(diào)整時,必須全部升級,這不但造成升級TCO成本太高,而且牽一發(fā)動全身,質(zhì)量無法保證。而未來SOA構(gòu)架

38、下的政務(wù)軟件就像是一個不斷進化的生態(tài)過程,某些“服務(wù)(業(yè)務(wù)組件)”不斷地局部升級,新的“服務(wù)”不斷地加入,只有這樣的系統(tǒng)才能真正做到RTE實時政府,快速適應(yīng)政務(wù)變化,避免重復(fù)建設(shè)。B/S結(jié)構(gòu)為充分保證系統(tǒng)在安全性、跨平臺性、易擴展性、易維護性等方面的要求,采用先進的基于JAVA平臺的三層應(yīng)用體系結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),一部分事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn)。用通用瀏覽器就實現(xiàn)了原來需要復(fù)雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù),這種結(jié)構(gòu)已成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。系統(tǒng)通過架構(gòu)于先進的B/S應(yīng)用體系結(jié)構(gòu)之上

39、,并采用JSP、Servlet、EJB、XML等編程技術(shù)和面向?qū)ο蟪绦蛟O(shè)計技術(shù),將復(fù)雜的業(yè)務(wù)處理邏輯、流程控制邏輯和數(shù)據(jù)存取邏輯通過Enterprise Java Beans組件來實現(xiàn),并運行在應(yīng)用服務(wù)器之上,實現(xiàn)業(yè)務(wù)邏輯的快速部署和靈活調(diào)整,并通過部署在應(yīng)用服務(wù)器層的專用組件實現(xiàn)對數(shù)據(jù)庫的存取訪問,以充分保證數(shù)據(jù)庫系統(tǒng)的安全可靠訪問。在該體系結(jié)構(gòu)中,客戶(請求信息)、程序(處理請求)和數(shù)據(jù)(被操作)被物理地隔離。三層結(jié)構(gòu)是個更靈活的體系結(jié)構(gòu),它把顯示邏輯從業(yè)務(wù)邏輯中分離出來,這就意味著業(yè)務(wù)代碼是獨立的,可以不關(guān)心怎樣顯示和在哪里顯示。業(yè)務(wù)邏輯層現(xiàn)在處于中間層,不需要關(guān)心由哪種類型的客戶來顯示

40、數(shù)據(jù),也可以與后端系統(tǒng)保持相對獨立性,有利于系統(tǒng)擴展。三層結(jié)構(gòu)具有更好的移植性,可以跨不同類型的平臺工作,允許用戶請求在多個服務(wù)器間進行負載平衡。三層結(jié)構(gòu)中安全性也更易于實現(xiàn),因為應(yīng)用程序已經(jīng)同客戶隔離。這種結(jié)構(gòu)中,在中間層的業(yè)務(wù)邏輯層的操作都可以被抽象和封裝起來,形成中間件,這種組件式的設(shè)計、開發(fā)使得系統(tǒng)結(jié)構(gòu)更加清晰,擴展更加方便,重用得以實現(xiàn),而大量復(fù)雜的操作都被做成中間組件,也使得程序開發(fā)變得更容易,而從功能上又可分為各種業(yè)務(wù)處理中間、事務(wù)處理中間件、消息隊列中間件、數(shù)據(jù)訪問中間件、安全控制中間件等。J2EE技術(shù)J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個應(yīng)用組件根據(jù)

41、他們所在的層分布在不同的機器上。事實上,Sun設(shè)計J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統(tǒng)模式中,客戶端擔(dān)當(dāng)了過多的角色而顯得臃腫,在這種模式中,第一次部署的時候比較容易,但難于升級或改進,可伸展性也不理想,而且經(jīng)常基于某種專有的協(xié)議通常是某種數(shù)據(jù)庫協(xié)議。它使得重用業(yè)務(wù)邏輯和界面邏輯非常困難?,F(xiàn)在J2EE 的多層企業(yè)級應(yīng)用模型將兩層化模型中的不同層面切分成許多層。一個多層化應(yīng)用能夠為不同的每種服務(wù)提供一個獨立的層,以下是 J2EE 典型的四層結(jié)構(gòu),如下圖所示:運行在客戶端機器上的客戶層組件;運行在J2EE服務(wù)器上的Web層組件;運行在J2EE服務(wù)器上的業(yè)務(wù)

42、邏輯層組件;運行在政府信息資源服務(wù)器上的政府資源系統(tǒng)層軟件。J2EE應(yīng)用程序是由組件構(gòu)成的J2EE組件是具有獨立功能的軟件單元,它們通過相關(guān)的類和文件組裝成J2EE應(yīng)用程序,并與其他組件交互。J2EE說明書中定義了以下的J2EE組件:應(yīng)用客戶端程序和applets是客戶層組件;Java Servlet和JavaServer Pages(JSP)是web層組件;Enterprise JavaBeans(EJB)是業(yè)務(wù)層組件。Spring框架技術(shù)簡單地說,Spring 是一個以控制倒置(Inversion of Control)原則為基礎(chǔ)的輕量級框架。控制倒置是一個用于 “基于組件的體系結(jié)構(gòu)”的設(shè)

43、計模式,它將“判斷依賴關(guān)系”的職責(zé)移交給容容器,而不是由組件本身來判斷彼此之間的依賴關(guān)系。當(dāng)在Spring 內(nèi)實現(xiàn)組件時, 容器“輕量級”的方面就展現(xiàn)出來了:針對Spring 開發(fā)的組件不需要任何外部庫;而且, 容器是輕量量級的,它避免了像EJB 容器那樣的重量級方案的主要缺點,例如啟動時間長、測試復(fù)雜、部署和配置困難,等等。 主要特性:內(nèi)置AOP 支持,例如在EJB 容器之外提供聲明式事務(wù)管理;數(shù)據(jù)訪問框架,支持JDBC 和O/R mapping 產(chǎn)品(例如Hibernate);與Spring framework其他功能完全集成的MVC web框架,提供一種清晰、無侵略性的MVC實現(xiàn)方式,使

44、你無須綁定任何一種特定的視圖技術(shù);用JavaMail 或其他郵件系統(tǒng)發(fā)送郵件的支持;源代代碼級別的元數(shù)據(jù)支持,使開發(fā)者可以借助AOP 之類的技術(shù)進行企業(yè)服務(wù)建模;JNDI 抽象象層,便于改變實現(xiàn)細節(jié),例如透明地在遠程服務(wù)和本地服務(wù)之間??蚣芨庞[:Hibernate技術(shù)Hibernate是 Java 平臺上的一種全功能的、開放源代碼 OR 映射框架。Hibernate 在許多方面類似于 EJB CMP CMR (容器管理的持久性/容器管理的關(guān)系)和 JDO(Java Data Objects)。與 JDO 不同,Hibernate 完全著眼于關(guān)系數(shù)據(jù)庫的 OR 映射,并且包括比大多數(shù)商業(yè)產(chǎn)品更多

45、的功能。大多數(shù) EJB CMP CMR 解決方案使用代碼生成實現(xiàn)持久性代碼,而 JDO 使用字節(jié)碼修飾。與之相反,Hibernate 使用反射和運行時字節(jié)碼生成,使它對于最終用戶幾乎是透明的(以前 Hibernate 的實現(xiàn)只使用反射,它有助于調(diào)試,當(dāng)前版本保留了這種選項)。如果應(yīng)用程序必須在多個 RDBMS 系統(tǒng)上運行 ,那么基于 Hibernate 的應(yīng)用程序可以毫不費力地移植到 IBM DB2、MySQL、PostgreSQL、Sybase、Oracle、HypersonicSQL 和許多其他數(shù)據(jù)庫。我最近甚至將一個應(yīng)用程序從 MySQL 移植到 Hibernate 沒有很好支持的 Fi

46、rebird,而這種移植是很容易的。Hibernate 可以模擬繼承(有幾種方式)、關(guān)聯(lián)(一對一或者一對多、containment 和 aggregation)和 composition。我將在本文中討論每種關(guān)系類型的幾個例子。Hibernate 提供了一種稱為 Hibernate Query Language (HQL) 的 查詢語言,它類似于 JDO 的 JDOQL 和 EJB 的 EJB QL,盡管它更接近于前者。但是 Hibernate 沒有就此止步:它還可以進行直接的 SQL 查詢和/或使用 object criteria 很容易地在運行時構(gòu)成查詢條件。在本文的例子中我將只使用 HQ

47、L。與 EJB CMP CMR 不同,Hibernate 像 JDO 一樣可以在 J2EE 容器內(nèi)部或者外部工作,這可以讓那些進行 TDD 和敏捷開發(fā)的人受益。XML技術(shù)XML是互聯(lián)網(wǎng)聯(lián)合組織(W3C)創(chuàng)建的一組規(guī)范,以便于軟件開發(fā)人員和內(nèi)容創(chuàng)作者在網(wǎng)頁上組織信息,其目的不僅在于滿足不斷增長的網(wǎng)絡(luò)應(yīng)用需求,同時還希望借此能夠確保在通過網(wǎng)絡(luò)進行交互合作時,具有良好的可靠性和交互操作性。XML語言可以讓信息提供者根據(jù)需要,自行定義標(biāo)記及屬性名,也可以包含描述法,從而使XML文件的結(jié)構(gòu)可以復(fù)雜到任意程度。XML主要有三個要素:Schema(模式)、XSL(eXtensible Stylesheet

48、Language 可擴展樣式語言)和XLL(eXtensible Link Language 可擴展鏈接語言)。Schema規(guī)定了XML文件的邏輯結(jié)構(gòu),定義了XML文件中的元素,元素的屬性以及元素和元素的屬性之間的關(guān)系,它可以幫助XML的分析程序校驗XML文件標(biāo)記的合法性;XSL是用于規(guī)定XML文檔樣式的語言,它能在客戶端使WEB瀏覽器改變文檔的表示法,從而不需要再與服務(wù)器進行交互通信;XLL將進一步擴展目前WEB上已有的簡單鏈接。Web Service技術(shù)Web Service技術(shù)及其相關(guān)技術(shù)體系,包括XML、SOAP、WSDL、UDDI等。Web Service 是一種新的Web應(yīng)用程序分

49、支,他們是自包含、自描述、模塊化的應(yīng)用,可以發(fā)布、定位、通過Web調(diào)用。一旦部署以后,其他Web Service應(yīng)用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù),其工作原理如下圖所示。Web Service 電子政務(wù)應(yīng)用模型由于歷史的原因,各政府部門的辦公系統(tǒng)都是從自己的使用角度出發(fā)獨立建設(shè)的,在設(shè)計中采取了不同的技術(shù)構(gòu)架和數(shù)據(jù)標(biāo)準(zhǔn),彼此不能互聯(lián)互通,形成了“信息孤島”和“數(shù)字鴻溝”。這不僅使得政府跨部門業(yè)務(wù)的集成應(yīng)用變得非常困難,而且部門內(nèi)部的功能擴展和升級也難以實現(xiàn)。往往為了實現(xiàn)某項業(yè)務(wù),不得不對整個系統(tǒng)進行重建。使用Web Service技術(shù),政府各部門內(nèi)部能夠?qū)崿F(xiàn)自身的業(yè)務(wù)流程和處理功能組件化,這些

50、服務(wù)組件可在互聯(lián)網(wǎng)上發(fā)布,從而方便的被其它部門所使用,以便應(yīng)用到跨部門的業(yè)務(wù)中去。這些Web Service組件的開發(fā)并不影響現(xiàn)有政府內(nèi)部系統(tǒng)的結(jié)構(gòu)和數(shù)據(jù),從而極大地保護了政府各部門內(nèi)部現(xiàn)有的投資。而通過集成政府各部門原有系統(tǒng)提供的Web Service服務(wù)組件,就可以在互聯(lián)網(wǎng)上建立統(tǒng)一的政府的門戶站點,向社會提供閉環(huán)式服務(wù),從而形成基于Web Service的電子政務(wù)一站式服務(wù)架構(gòu)。這為有效解決了當(dāng)前政府信息建設(shè)中的“信息孤島”問題提供了一個切實可行的方法。SOCKET技術(shù)所謂socket通常也稱作套接字,應(yīng)用程序通常通過套接字向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。以J2SDK-1.3為例,Soc

51、ket和ServerSocket類庫位于java .net包中。ServerSocket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時使用的。在連接成功時,應(yīng)用程序兩端都會產(chǎn)生一個Socket實例,操作這個實例,完成所需的會話。對于一個網(wǎng)絡(luò)連接來說,套接字是平等的,并沒有差別,不因為在服務(wù)器端或在客戶端而產(chǎn)生不同級別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。重要的Socket API:java .net.Socket繼承于java.lang.Object,有八個構(gòu)造器,其方法并不多,下面介紹使用最頻繁的三個方法,其它方法大家可以見JDK

52、-1.3文檔。Accept方法用于產(chǎn)生阻塞,直到接受到一個連接,并且返回一個客戶端的Socket對象實例。阻塞是一個術(shù)語,它使程序運行暫時停留在這個地方,直到一個會話產(chǎn)生,然后程序繼續(xù);通常阻塞是由循環(huán)產(chǎn)生的。 getInputStream方法獲得網(wǎng)絡(luò)連接輸入,同時返回一個InputStream對象實例。 getOutputStream方法連接的另一端將得到輸入,同時返回一個OutputStream對象實例。注意:其中g(shù)etInputStream和getOutputStream方法均可能會產(chǎn)生一個IOException,它必須被捕獲,因為它們返回的流對象,通常都會被另一個流對象使用。SOCKET連接過程,根據(jù)連接啟動的方式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論