專利名稱:一種基于ajax技術(shù)的信息系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)信息系統(tǒng)技術(shù),尤其設(shè)計(jì)一種基于ajax技術(shù)的信息系統(tǒng)。
背景技術(shù):
互聯(lián)網(wǎng)的技術(shù)不斷發(fā)展,應(yīng)用于互聯(lián)網(wǎng)的框架技術(shù)也在不斷地成熟。選擇良好的 開(kāi)發(fā)框架對(duì)保證系統(tǒng)的成功至關(guān)重要。成熟的框架能夠幫助開(kāi)發(fā)人員縮短開(kāi)發(fā)時(shí)間、減少 重復(fù)開(kāi)發(fā)工作量、降低開(kāi)發(fā)成本,增強(qiáng)程序的可維護(hù)性和可擴(kuò)展性在這種環(huán)境下,Ajax技術(shù) 和JAVA EE輕量級(jí)框架——Struts, Spring、Hibernate得到了廣泛的應(yīng)用,并成為Web應(yīng) 用開(kāi)發(fā)的主流。Ajax是一種Web交互的方法。這種方法只在客戶端和服務(wù)器之間傳遞少量的信 息,從而給用戶提供響應(yīng)最快、最及時(shí)的體驗(yàn)。在傳統(tǒng)的Web應(yīng)用程序的模型中,瀏覽器本身負(fù)責(zé)的是初始化到服務(wù)器的請(qǐng)求, 并且要處理來(lái)自服務(wù)器的響應(yīng),而Ajax模型則不同,它提供了一個(gè)Ajax引擎來(lái)處理這種通 信。Ajax引擎事實(shí)上只是一個(gè)Jav必cript對(duì)象或者函數(shù),只有當(dāng)需要的信息必須要從服務(wù) 器上獲得時(shí)才會(huì)調(diào)用它。與傳統(tǒng)的模型不同的是,它不再需要為其他的資源(諸如其他網(wǎng) 頁(yè))提供鏈接,而是當(dāng)需要調(diào)度和執(zhí)行這些請(qǐng)求的時(shí)候,向Ajax引擎發(fā)出一個(gè)函數(shù)的調(diào)用。 這些請(qǐng)求都是異步完成的,這就意味著不必等收到響應(yīng)之后才可以繼續(xù)執(zhí)行后續(xù)的代碼。服務(wù)器(傳統(tǒng)模式中,它提供了 HTML、圖像、CSS或JavaScript)配置為向Ajax 引擎返回它所能用的數(shù)據(jù),這些數(shù)據(jù)可以是純文本、XML或需要的任何格式,唯一的要求是 Ajax引擎能夠理解和翻譯這些數(shù)據(jù)。當(dāng)Ajax引擎收到了服務(wù)器的響應(yīng)時(shí),它會(huì)進(jìn)行一些動(dòng)作,通常是完成數(shù)據(jù)的解 析,以及基于它所提供的數(shù)據(jù)對(duì)用戶的界面做一些修改。而由于這個(gè)過(guò)程中傳輸?shù)男畔⒈?傳統(tǒng)的Web應(yīng)用程序模型少了許多,因此用戶界面的更新速度就會(huì)變的更快,用戶就能夠 更快速的進(jìn)行他們所需要的操作。
發(fā)明內(nèi)容
本發(fā)明提出一種基于ajax技術(shù)的信息系統(tǒng),采用ajax技術(shù)克服了現(xiàn)有技術(shù)的不 足,使用戶能夠更快速地和系統(tǒng)進(jìn)行操作和數(shù)據(jù)交換,減少系統(tǒng)的開(kāi)發(fā)成本,增加系統(tǒng)的可 維護(hù)性。根據(jù)本發(fā)明,提出一種基于ajax技術(shù)的信息系統(tǒng),包括視圖層、業(yè)務(wù)邏輯層和數(shù) 據(jù)服務(wù)層所述視圖層,展示信息系統(tǒng)的處理結(jié)果;所述業(yè)務(wù)邏輯層包括網(wǎng)絡(luò)層、服務(wù)層、數(shù)據(jù)訪問(wèn)對(duì)象層以及持久化對(duì)象層;所述網(wǎng)絡(luò)層作為控制器用于所述視圖層與業(yè)務(wù)邏輯層的交互,控制業(yè)務(wù)邏輯層的 業(yè)務(wù)邏輯的調(diào)用,以及對(duì)于數(shù)據(jù)服務(wù)層的數(shù)據(jù)存??;所述服務(wù)層用于實(shí)現(xiàn)業(yè)務(wù)邏輯層的業(yè)務(wù)邏輯,對(duì)數(shù)據(jù)訪問(wèn)對(duì)象層的業(yè)務(wù)方法進(jìn)行抽象或者調(diào)用,隔離所述網(wǎng)絡(luò)層對(duì)數(shù)據(jù)訪問(wèn)對(duì)象層的直接調(diào)用;所述數(shù)據(jù)訪問(wèn)對(duì)象層用于與持久化對(duì)象層交互,對(duì)數(shù)據(jù)的操作進(jìn)行封裝;數(shù)據(jù)服務(wù)層提供關(guān)系型數(shù)據(jù)庫(kù),并將由業(yè)務(wù)邏輯層進(jìn)行存取的數(shù)據(jù)保存在關(guān)系型 數(shù)據(jù)庫(kù)中;所述視圖層還包括ajax引擎和用戶界面,利用ajax本身的異步交互過(guò)程將用戶 的批量輸入提交給業(yè)務(wù)邏輯層并將結(jié)果返回用戶界面。所述ajax異步交互過(guò)程包括Sl,ajax引擎接收到用戶界面的javascript調(diào)用請(qǐng)求后向所述ajax引擎返回所 述請(qǐng)求的網(wǎng)頁(yè);S2,所述ajax引擎根據(jù)所述用戶界面提交的批量信息上傳到業(yè)務(wù)邏輯層;S3,所述ajax引擎接受所述業(yè)務(wù)邏輯層返回的數(shù)據(jù)處理結(jié)果并解析為HTML數(shù) 據(jù);S4,所述ajax引擎向所述用戶界面發(fā)送HTML數(shù)據(jù)。其特征在于,所述網(wǎng)絡(luò)層采用STRUTS架構(gòu),所述控制器包括=ActionServlet組 件,用以作為Mruts中央控制器;RequestProcessor組件,用以作為每個(gè)子應(yīng)用模塊單元 的請(qǐng)求處理器;Action組件,用以負(fù)責(zé)調(diào)用每一項(xiàng)具體的業(yè)務(wù)邏輯。所述數(shù)據(jù)訪問(wèn)對(duì)象層采用Hibernate框架,對(duì)數(shù)據(jù)的操作進(jìn)行封裝。采用本發(fā)明的技術(shù)方案揭示了一種基于Ajax技術(shù)的信息系統(tǒng),包括采用ajax引 擎和用戶界面的視圖層,業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層,所述顯示層利用ajax本身的異步交互 過(guò)程將用戶的批量輸入提交給業(yè)務(wù)邏輯層并將結(jié)果返回用戶界面,業(yè)務(wù)邏輯層采用Mruts 和Hibernate技術(shù),本發(fā)明基于Ajax技術(shù)能使用戶能夠更快速地和系統(tǒng)進(jìn)行操作和數(shù)據(jù)交 換,減少系統(tǒng)的負(fù)擔(dān)并且增加系統(tǒng)的可維護(hù)性。
圖1揭示了本發(fā)明的一種基于ajax技術(shù)的信息系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖;圖2揭示了本發(fā)明的一種基于ajax技術(shù)的信息系統(tǒng)中顯示層的系統(tǒng)結(jié)構(gòu)圖;圖3揭示了本發(fā)明的一種基于ajax技術(shù)的信息系統(tǒng)中顯示層的原理圖。
具體實(shí)施例方式首先參考圖1,本發(fā)明提出一種一種基于ajax技術(shù)的信息系統(tǒng),包括視圖層10、業(yè) 務(wù)邏輯層20和數(shù)據(jù)服務(wù)層30 如圖2所示視圖層10提供交互接口,基于ajax技術(shù)開(kāi)發(fā),包括用戶界面11和ajax 引擎12。視圖層10主要用于與用戶交互和處理結(jié)果展現(xiàn)給用戶,視圖層10可通過(guò)ajax本 身的異步交互過(guò)程將用戶的批量輸入提交給業(yè)務(wù)邏輯層20并將結(jié)果返回用戶界面11。異步交互過(guò)程的詳細(xì)過(guò)程如圖3所示,包括如下步驟SLajax引擎12接收到用戶界面11的javascript調(diào)用請(qǐng)求后向所述ajax引擎 返回所述請(qǐng)求的網(wǎng)頁(yè);S2,所述ajax引擎12根據(jù)所述用戶界面11提交的批量信息上傳到業(yè)務(wù)邏輯層20 ;S3,所述ajax引擎12接受所述業(yè)務(wù)邏輯層20返回的數(shù)據(jù)處理結(jié)果并解析為HTML
4數(shù)據(jù);S4,所述ajax引擎12向所述用戶界面11發(fā)送HTML數(shù)據(jù)。業(yè)務(wù)邏輯層20進(jìn)一步包括網(wǎng)絡(luò)層21、服務(wù)層22、數(shù)據(jù)訪問(wèn)對(duì)象層23以及持久化 對(duì)象層24。網(wǎng)絡(luò)層21作為控制器用于視圖層10與業(yè)務(wù)邏輯層20的交互,控制業(yè)務(wù)邏輯層20 的業(yè)務(wù)邏輯的調(diào)用,以及對(duì)于數(shù)據(jù)服務(wù)層30的數(shù)據(jù)存取。網(wǎng)絡(luò)層21也稱為Web層,作用相 當(dāng)于控制器。在一個(gè)實(shí)現(xiàn)中,網(wǎng)絡(luò)層運(yùn)用Mrutsl. 2框架的Actior^ervlet和Action進(jìn)行 控制轉(zhuǎn)發(fā),主要作用是描述應(yīng)用程序中的商業(yè)流程,調(diào)用相應(yīng)WMrutsl. 2框架進(jìn)行結(jié)果 控制。服務(wù)層22用于實(shí)現(xiàn)業(yè)務(wù)邏輯層20的業(yè)務(wù)邏輯,對(duì)數(shù)據(jù)訪問(wèn)對(duì)象層23的業(yè)務(wù)方法 進(jìn)行抽象或者調(diào)用,隔離網(wǎng)絡(luò)層21對(duì)數(shù)據(jù)訪問(wèn)對(duì)象層23的直接調(diào)用。服務(wù)層22也稱為 krvice層,是負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯的層。Service層對(duì)數(shù)據(jù)訪問(wèn)對(duì)象層中的對(duì)象進(jìn)行正面模 式的封裝。對(duì)數(shù)據(jù)訪問(wèn)對(duì)象層的業(yè)務(wù)方法進(jìn)行抽象或者調(diào)用,以此隔離Web層對(duì)數(shù)據(jù)訪問(wèn) 對(duì)象層的直接調(diào)用,增強(qiáng)高聚合低耦合性。即使改動(dòng)數(shù)據(jù)訪問(wèn)對(duì)象層的方法也不會(huì)對(duì)Web 層產(chǎn)生任何影響。數(shù)據(jù)訪問(wèn)對(duì)象層23用于與持久化對(duì)象層交互,對(duì)數(shù)據(jù)的操作進(jìn)行封裝。數(shù)據(jù)訪問(wèn) 對(duì)象層23也稱為DAO層,DAO層負(fù)責(zé)與持久化對(duì)象層交互,封裝了數(shù)據(jù)的操作。在一個(gè)實(shí) 現(xiàn)中,DAO層運(yùn)用Spring2. 0的Beani^actory機(jī)制進(jìn)行底層類的實(shí)例化,并由Hibernate框 架進(jìn)行相應(yīng)的數(shù)據(jù)庫(kù)操作。DAO層是Data Access Object數(shù)據(jù)訪問(wèn)接口,故名思義就是與 數(shù)據(jù)庫(kù)打交道。DAO層用來(lái)封裝數(shù)據(jù)源Data Source,通過(guò)封裝就可以使用hcory對(duì)象里 的getConnectionO方法來(lái)更改數(shù)據(jù)庫(kù)的類型,比如可以把MSSQL換成Oracle。DAO層的 另一個(gè)特點(diǎn)在于它能夠把對(duì)數(shù)據(jù)庫(kù)的基本操作(CRUD)全部封裝在DAO層里。比如要添加 一個(gè)新的物品,在krvice層中只需要對(duì)DAO層調(diào)用一個(gè)addlterndtem item)方法就可以 了,而具體的實(shí)現(xiàn)則是在DAO層中執(zhí)行。對(duì)于Service層來(lái)說(shuō)調(diào)用DAO層方法的時(shí)候,只需 要知道addltem(Item item)是用來(lái)添加一個(gè)新的物品,而不需要知道DAO層具體是如何實(shí) 現(xiàn)此功能的。持久化對(duì)象層M將數(shù)據(jù)服務(wù)層30提供的關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)映射成對(duì)象,持 久化對(duì)象層也稱為P0J0層,持久化對(duì)象層通過(guò)實(shí)體/關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù) 映射成對(duì)象,在一個(gè)實(shí)現(xiàn)中,持久化對(duì)象層采用Hibernate框架。在持久化對(duì)象層M中,通 過(guò)為持久化對(duì)象添加setter和getter方法來(lái)封裝對(duì)象,方便調(diào)用對(duì)象,做到隨時(shí)存入和讀 取對(duì)象的屬性。進(jìn)行封裝后的對(duì)象只能通過(guò)受保護(hù)的接口來(lái)被其他對(duì)象訪問(wèn)。P0J0層是 JAVA面向?qū)ο蟮谋憩F(xiàn),它可以把一個(gè)對(duì)象的所有屬性都封裝起來(lái),通過(guò)對(duì)象來(lái)存儲(chǔ)讀取屬 性。因?yàn)橛行〇|西是私有的,封裝就是把所有的屬性鎖住不給外部查看。而封裝的主要含 義是將對(duì)象的屬性私有化,通過(guò)修改屬性的可見(jiàn)性,來(lái)限制對(duì)屬性的訪問(wèn)和修改,供其他類 來(lái)使用。數(shù)據(jù)服務(wù)層30提供關(guān)系型數(shù)據(jù)庫(kù),并將由業(yè)務(wù)邏輯層進(jìn)行存取的數(shù)據(jù)保存在關(guān) 系型數(shù)據(jù)庫(kù)中。采用本發(fā)明的技術(shù)方案,很好地實(shí)現(xiàn)了用戶、物品和行為在虛擬世界中的映射,利 用本發(fā)明提出的系統(tǒng)能夠?qū)崿F(xiàn)模擬現(xiàn)實(shí)世界中涉及上述三種事物的網(wǎng)絡(luò)拍賣系統(tǒng)。
權(quán)利要求
1.一種基于ajax技術(shù)的信息系統(tǒng),包括視圖層、業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層 所述視圖層,展示信息系統(tǒng)的處理結(jié)果;所述業(yè)務(wù)邏輯層包括網(wǎng)絡(luò)層、服務(wù)層、數(shù)據(jù)訪問(wèn)對(duì)象層以及持久化對(duì)象層; 所述網(wǎng)絡(luò)層作為控制器用于所述視圖層與業(yè)務(wù)邏輯層的交互,控制業(yè)務(wù)邏輯層的業(yè)務(wù) 邏輯的調(diào)用,以及對(duì)于數(shù)據(jù)服務(wù)層的數(shù)據(jù)存??;所述服務(wù)層用于實(shí)現(xiàn)業(yè)務(wù)邏輯層的業(yè)務(wù)邏輯,對(duì)數(shù)據(jù)訪問(wèn)對(duì)象層的業(yè)務(wù)方法進(jìn)行抽象 或者調(diào)用,隔離所述網(wǎng)絡(luò)層對(duì)數(shù)據(jù)訪問(wèn)對(duì)象層的直接調(diào)用;所述數(shù)據(jù)訪問(wèn)對(duì)象層用于與持久化對(duì)象層交互,對(duì)數(shù)據(jù)的操作進(jìn)行封裝; 數(shù)據(jù)服務(wù)層提供關(guān)系型數(shù)據(jù)庫(kù),并將由業(yè)務(wù)邏輯層進(jìn)行存取的數(shù)據(jù)保存在關(guān)系型數(shù)據(jù) 庫(kù)中;其特征在于,所述視圖層包括ajax引擎和用戶界面,利用ajax本身的異步交互過(guò)程將 用戶的批量輸入提交給業(yè)務(wù)邏輯層并將結(jié)果返回用戶界面。
2.如權(quán)利要求1所述的一種基于ajax技術(shù)的信息系統(tǒng),其特征在于,所述ajax異步交 互過(guò)程包括SLajax引擎接收到用戶界面的javascript調(diào)用請(qǐng)求后向所述ajax引擎返回所述請(qǐng) 求的網(wǎng)頁(yè);S2,所述ajax引擎根據(jù)所述用戶界面提交的批量信息上傳到業(yè)務(wù)邏輯層;S3,所述ajax引擎接受所述業(yè)務(wù)邏輯層返回的數(shù)據(jù)處理結(jié)果并解析為HTML數(shù)據(jù);S4,所述ajax引擎向所述用戶界面發(fā)送HTML數(shù)據(jù)。
3.如權(quán)利要求1所述的一種基于ajax技術(shù)的信息系統(tǒng),其特征在于,所述網(wǎng)絡(luò)層采用 STRUTS架構(gòu),所述控制器包括ActionServlet組件,用以作為Mruts中央控制器; RequestProcessor組件,用以作為每個(gè)子應(yīng)用模塊單元的請(qǐng)求處理器; Action組件,用以負(fù)責(zé)調(diào)用每一項(xiàng)具體的業(yè)務(wù)邏輯。
4.如權(quán)利要求1所述的一種基于ajax技術(shù)的信息系統(tǒng),其特征在于,所述數(shù)據(jù)訪問(wèn)對(duì) 象層采用Hibernate框架,對(duì)數(shù)據(jù)的操作進(jìn)行封裝。
全文摘要
本發(fā)明揭示了一種基于Ajax技術(shù)的信息系統(tǒng),包括采用ajax引擎和用戶界面的視圖層,業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層,所述顯示層利用ajax本身的異步交互過(guò)程將用戶的批量輸入提交給業(yè)務(wù)邏輯層并將結(jié)果返回用戶界面,本發(fā)明基于Ajax技術(shù)能使用戶能夠更快速地和系統(tǒng)進(jìn)行操作和數(shù)據(jù)交換,減少系統(tǒng)的負(fù)擔(dān)并且增加系統(tǒng)的可維護(hù)性。
文檔編號(hào)G06F17/30GK102117294SQ20091024789
公開(kāi)日2011年7月6日 申請(qǐng)日期2009年12月31日 優(yōu)先權(quán)日2009年12月31日
發(fā)明者沙潔, 馬文軍 申請(qǐng)人:上海杉達(dá)學(xué)院