亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        售票網(wǎng)站后臺(tái)管理系統(tǒng)架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)

        2017-05-31 19:28:02鄧源清石智偉
        軟件導(dǎo)刊 2017年5期

        鄧源清+石智偉

        摘要摘要:互聯(lián)網(wǎng)售票模式受到追捧,發(fā)展迅速,傳統(tǒng)的客運(yùn)企業(yè)對(duì)建立互聯(lián)網(wǎng)售票平臺(tái)需求強(qiáng)烈。采用B/S結(jié)構(gòu)模式,以.NET作為開發(fā)平臺(tái),分析了三層架構(gòu)存在的不足, 結(jié)合MVC設(shè)計(jì)模式,探討了四層架構(gòu)模式。增加IBLL業(yè)務(wù)接口層和IDAL數(shù)據(jù)接口層,整合ExtJS、Spring.NET、Nhibernate技術(shù)框架,實(shí)現(xiàn)了基于四層架構(gòu)的客運(yùn)企業(yè)互聯(lián)網(wǎng)售票網(wǎng)站后臺(tái)管理系統(tǒng),以滿足客運(yùn)企業(yè)售票需求。

        關(guān)鍵詞關(guān)鍵詞:三層架構(gòu);MVC;四層架構(gòu);ExtJS; Spring.NET;Nhibernate

        DOIDOI:10.11907/rjdk.171044

        中圖分類號(hào):TP319

        文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2017)005009603

        0引言

        隨著Internet的快速發(fā)展,航空、鐵路已相繼實(shí)現(xiàn)了網(wǎng)絡(luò)售票,很大程度上緩解了購票難問題,傳統(tǒng)的客運(yùn)行業(yè)也急迫需要建立網(wǎng)絡(luò)售票平臺(tái)。本文以客運(yùn)企業(yè)互聯(lián)網(wǎng)售票平臺(tái)為核心,搭建了一個(gè)簡潔易操作的后臺(tái)管理系統(tǒng)。

        大多數(shù)Web系統(tǒng)開發(fā)都依賴非常成熟的J2EE平臺(tái)[14]。微軟的.NET Framework因其支持多種編程語言受到歡迎,通過創(chuàng)建一個(gè)跨語言的公共API集,.NET框架可實(shí)現(xiàn)跨語言繼承、錯(cuò)誤處理功能和調(diào)試功能等,大大提高了開發(fā)效率[56]。一些流行的技術(shù)框架常用于軟件系統(tǒng)開發(fā)中,如基于腳本語言JavaScript開發(fā)的ExtJS框架,可快速開發(fā)出豐富的界面效果[7];專注于.Net 企業(yè)應(yīng)用開發(fā)的Spring.NET框架, IoC(Inversion of Control,控制反轉(zhuǎn)、反向控制)和AOP(Aspect Oriented Pogramming,面向切面編程)降低了類之間的耦合度,使程序更靈活、擴(kuò)展性更好[89];基于.Net 的針對(duì)關(guān)系型數(shù)據(jù)庫的對(duì)象持久化類庫Nhibernate,從數(shù)據(jù)庫底層來持久化 .Net 對(duì)象到關(guān)系型數(shù)據(jù)庫,代碼僅和對(duì)象關(guān)聯(lián),操作數(shù)據(jù)庫時(shí)自動(dòng)生成SQL語句,確保對(duì)象提交到正確的表和字段中,簡化了程序開發(fā)流程,縮短了開發(fā)時(shí)間[1011]。

        目前,Web系統(tǒng)開發(fā)普遍采用分層架構(gòu),三層架構(gòu)是最流行的分層模式,即將整個(gè)系統(tǒng)架構(gòu)劃分為界面層(User Interface layer)、業(yè)務(wù)邏輯層(Business Logic Layer)、數(shù)據(jù)訪問層(Data access layer)[12]。不同于MVC(ModelViewController)設(shè)計(jì)模式,它把Model細(xì)分為BLL、DAL、Model,體現(xiàn)著分層的“低耦合高內(nèi)聚”。這種分層模式在開發(fā)中雖然應(yīng)用廣泛,但對(duì)所有項(xiàng)目都一成不變地使用大三層架構(gòu)也存在以下缺點(diǎn):

        (1)數(shù)據(jù)訪問層及業(yè)務(wù)邏輯層存在不足。由于方法定義和執(zhí)行代碼處于同一頁面,業(yè)務(wù)層在轉(zhuǎn)達(dá)來自Web層的內(nèi)容時(shí)還要處理內(nèi)容,需要編寫大量代碼,執(zhí)行到數(shù)據(jù)訪問層時(shí)也是如此,不利于訪問不同數(shù)據(jù)庫,增加了開發(fā)工作量。

        (2)典型的大三層架構(gòu)不利于維護(hù)。分層不夠詳細(xì),容易牽一發(fā)而動(dòng)全身,一個(gè)模塊的變動(dòng)會(huì)影響到其它模塊變動(dòng),系統(tǒng)升級(jí)或維護(hù)困難、成本增加。

        在分析三層架構(gòu)不足的基礎(chǔ)上,根據(jù)Web發(fā)展現(xiàn)狀,結(jié)合客運(yùn)企業(yè)網(wǎng)站的特點(diǎn)及需求,本文提出了四層架構(gòu)設(shè)計(jì)。

        1系統(tǒng)架構(gòu)設(shè)計(jì)

        1.1MVC設(shè)計(jì)模式

        MVC模式,即模型-視圖-控制器,強(qiáng)調(diào)把復(fù)雜的 Web 應(yīng)用系統(tǒng)分成模型、視圖和控制器3個(gè)層次進(jìn)行開發(fā)[13]。視圖對(duì)應(yīng)系統(tǒng)的界面,負(fù)責(zé)接收用戶請(qǐng)求及顯示后臺(tái)處理結(jié)果;模型對(duì)應(yīng)系統(tǒng)中的數(shù)據(jù)和業(yè)務(wù)邏輯處理;控制器對(duì)應(yīng)系統(tǒng)中的輸入輸出控制、用戶請(qǐng)求處理及數(shù)據(jù)同步顯示。每個(gè)核心部件任務(wù)分配明確,各自處理,降低了處理數(shù)據(jù)和顯示數(shù)據(jù)間的耦合性[14]。

        對(duì)比三層架構(gòu),這種分層模式更像是一種基于頁面分層的設(shè)計(jì)模式,三層架構(gòu)則是基于業(yè)務(wù)邏輯來分層的一種架構(gòu)體系。

        1.2四層架構(gòu)設(shè)計(jì)

        售票網(wǎng)站后臺(tái)管理系統(tǒng)將MVC設(shè)計(jì)模式與三層架構(gòu)相結(jié)合,形成四層架構(gòu)。在常用的大三層架構(gòu)模式上,UI界面層采用MVC模式,舍棄MVC模式的Model,取View和Controller,或者說數(shù)據(jù)的處理、數(shù)據(jù)庫的操作交由BLL和DAL完成,并在業(yè)務(wù)邏輯層中增加業(yè)務(wù)邏輯接口層IBLL,數(shù)據(jù)訪問層中增加數(shù)據(jù)接口層IDAL,具體設(shè)計(jì)如圖1所示。

        自上而下,表現(xiàn)層處于客戶端,即用戶使用的PC,其它層均處于服務(wù)器端,用戶訪問系統(tǒng)時(shí)通過HTTP協(xié)議請(qǐng)求服務(wù)器資源。

        表現(xiàn)層:采用ExtJS框架實(shí)現(xiàn)界面顯示。

        控制層:接收用戶在界面層的各種請(qǐng)求并轉(zhuǎn)達(dá)至下一層進(jìn)行業(yè)務(wù)邏輯處理,并將最后的處理結(jié)果返至表現(xiàn)層。

        業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層:業(yè)務(wù)邏輯層BLL通過實(shí)現(xiàn)IBLL接口所定義的方法處理系統(tǒng)各種業(yè)務(wù)邏輯,如退票處理、留言回復(fù)等;需調(diào)用數(shù)據(jù)庫時(shí),再通過工廠模式DALFactory創(chuàng)建類調(diào)用方法訪問接口IDAL,再由數(shù)據(jù)訪問層DAL實(shí)例化接口,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。數(shù)據(jù)訪問層融入了Nhibernate框架,實(shí)現(xiàn)數(shù)據(jù)持久化,并將所有的組件部署于一種面向切面編程的spring.NET框架中,進(jìn)行管理、維護(hù)、執(zhí)行,spring.NET框架把離散的組件組裝到一起,對(duì)后期的擴(kuò)展及維護(hù)帶來極大便利。

        Model:各層之間數(shù)據(jù)交互的媒介。

        2架構(gòu)實(shí)現(xiàn)

        2.1表現(xiàn)層實(shí)現(xiàn)

        (1)界面整體布局設(shè)計(jì)。基于JavaScript的ExtJS框架在界面布局方面做得非常優(yōu)秀,在Web后臺(tái)管理系統(tǒng)開發(fā)中應(yīng)用廣泛。系統(tǒng)界面實(shí)現(xiàn)選擇常用的border布局,將界面分為east、south、west、north、center五個(gè)部分,在其items中指定使用region參數(shù)為其子元素指定具體位置,其中,center 區(qū)域是必須使用的,center區(qū)域會(huì)自動(dòng)填充其它區(qū)域的剩余空間。

        (2)表單設(shè)計(jì)及驗(yàn)證。ExtJS對(duì)表單的設(shè)計(jì)也很實(shí)用,基本的校驗(yàn)方式如手機(jī)號(hào)碼是否為空、字符、數(shù)字等,具有人性化的提示方式。

        該表單使用平行布局,將layout屬性設(shè)置為column,表單控件分為5列,在formpanel的items中指定,在每列中設(shè)置columnWidth,指定該列所占總寬度的百分比;然后在每列的items中輸入控件,通過xtype來指定每個(gè)控件的類型;然后設(shè)置allowbank、xtype等配置項(xiàng),方便完成數(shù)據(jù)檢驗(yàn)。如果設(shè)置allowbank屬性為false,那么鼠標(biāo)移開該控件時(shí)邊框就會(huì)顯示紅色,鼠標(biāo)移至控件上時(shí)就會(huì)出現(xiàn)錯(cuò)誤提示信息。這種提示方式用戶更容易接受,提升了用戶體驗(yàn)。

        (3)數(shù)據(jù)提交方式。使用ExtJS框架實(shí)現(xiàn)系統(tǒng)表現(xiàn)層時(shí),采用以下兩種方式進(jìn)行數(shù)據(jù)提交:①表單提交。

        采用這種方式提交,不需要一一獲取表單控件內(nèi)容值,而是一次性將所有的值也就是整個(gè)表單的值一起提交給后臺(tái)服務(wù)器,提升了響應(yīng)速度;②Ajax技術(shù)提交。通過Ajax技術(shù)向服務(wù)器提交數(shù)據(jù),將需提交的參數(shù)以name:value的格式放在params中,實(shí)現(xiàn)網(wǎng)頁的異步更新。

        2.2業(yè)務(wù)邏輯層實(shí)現(xiàn)

        業(yè)務(wù)邏輯層是整個(gè)Web系統(tǒng)中的核心部分,位于控制器之下數(shù)據(jù)訪問層之上。通常,控制器調(diào)用業(yè)務(wù)邏輯接口層,業(yè)務(wù)邏輯接口層中定義了刪除、保存、更新等方法,業(yè)務(wù)邏輯層繼承IBLL基類,并實(shí)現(xiàn)其中的方法,完成各項(xiàng)復(fù)雜業(yè)務(wù)的處理?;ヂ?lián)網(wǎng)售票網(wǎng)站業(yè)務(wù)邏輯層主要實(shí)現(xiàn)退票業(yè)務(wù)處理、留言回復(fù)、統(tǒng)計(jì)分類以及報(bào)表生成等。

        控制器與業(yè)務(wù)邏輯層之間的調(diào)用關(guān)系如圖2所示。

        另外,整合Spring.NET框架的作用主要體現(xiàn)在對(duì)業(yè)務(wù)邏輯層的管理以及對(duì)Nhibernete提供集成支持,通過loC容器把分散的各個(gè)組件組合到一起。控制器與業(yè)務(wù)邏輯接口層耦合,控制器接受Spring.NET loC容器的依賴注入,避免控制器主動(dòng)通過new獲得其需要的業(yè)務(wù)邏輯組件,使控制器與業(yè)務(wù)邏輯組件松耦合。業(yè)務(wù)邏輯組件依賴于DAL,由Spring.NET容器負(fù)責(zé)將DAL組件注入到業(yè)務(wù)邏輯組件中,實(shí)現(xiàn)業(yè)務(wù)邏輯組件與DAL組件間的松耦合。

        本文系統(tǒng)中,Spring.NET使用DI負(fù)責(zé)管理和裝配所有的Object,如DAL類、業(yè)務(wù)邏輯類、控制器類等。各層對(duì)象之間的依賴關(guān)系由Spring.NET的依賴注入實(shí)現(xiàn),各層之間的依賴注入關(guān)系如圖3所示。

        Spring.NET采用setter方法注入,即在Controller控制器類中創(chuàng)建所需BLL對(duì)象,并為該對(duì)象添加setter/getter方法。創(chuàng)建Object實(shí)例的工作不再由調(diào)用者完成,而是由Spring.NET容器對(duì)各層的實(shí)現(xiàn)類進(jìn)行統(tǒng)一管理,降低了各組件之間的耦合度,提升了代碼的可重用性。

        2.3數(shù)據(jù)訪問層和數(shù)據(jù)持久層實(shí)現(xiàn)

        數(shù)據(jù)訪問層DAL負(fù)責(zé)與數(shù)據(jù)庫交互,位于業(yè)務(wù)邏輯層之下。當(dāng)BLL數(shù)據(jù)訪問接口層IDAL時(shí),通過工廠模式DALfactory創(chuàng)建類調(diào)用方法,再由DAL對(duì)IDAL中定義的方法進(jìn)行實(shí)現(xiàn),完成對(duì)數(shù)據(jù)庫的操作。

        業(yè)務(wù)邏輯層與數(shù)據(jù)訪問層的調(diào)用關(guān)系如圖4所示。

        IDAL接口層引入Nhibernate對(duì)象/關(guān)系數(shù)據(jù)庫映射工具,數(shù)據(jù)以對(duì)象的形式進(jìn)行傳遞,無需關(guān)注底層數(shù)據(jù)庫是SQL server還是oracle或其它類型數(shù)據(jù)庫。完成Nhibernate配置、建立映射文件等工作后,再使用Spring.NET對(duì)NHibernate進(jìn)行整合,通過配置文件設(shè)置HibernateTemplate使用的SessionFactory,就可使用函數(shù)find()、save()、delete()、saveOrUpdate()等來操作數(shù)據(jù)庫了,這使得開發(fā)人員在Spring.NET中使用Nhibernete更加簡單[15]。

        在開發(fā)過程中還有一個(gè)界定:對(duì)于單表操作業(yè)務(wù)邏輯比較單一的情況,采用Nhibernate的操作函數(shù)來操作數(shù)據(jù)庫;而在邏輯相對(duì)復(fù)雜、事務(wù)比較多時(shí),則采用數(shù)據(jù)庫的存儲(chǔ)過程來解決。這樣做的優(yōu)點(diǎn)是當(dāng)項(xiàng)目邏輯發(fā)生改變時(shí),只需在數(shù)據(jù)庫修改存儲(chǔ)過程即可,不用更新代碼邏輯。

        3結(jié)語

        本文以客運(yùn)企業(yè)售票模式轉(zhuǎn)型為入口,針對(duì)售票后臺(tái)管理系統(tǒng)的開發(fā),探討了系統(tǒng)的層次架構(gòu),給出了系統(tǒng)詳細(xì)架構(gòu)設(shè)計(jì)并闡述了具體實(shí)現(xiàn)。

        在系統(tǒng)架構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)中,詳細(xì)的分層有利于代碼重用以及后期維護(hù),彌補(bǔ)了大三層架構(gòu)的缺陷,可在其它類似項(xiàng)目中稍作修改使用,大大提高了開發(fā)效率。

        系統(tǒng)采用B/S結(jié)構(gòu)模式,使用時(shí)免安裝,只需瀏覽器鍵入域名即可,減少了前期工作,目前廣東省部分客運(yùn)企業(yè)已采用該系統(tǒng)作為互聯(lián)網(wǎng)售票網(wǎng)站后臺(tái)管理系統(tǒng)。

        該管理系統(tǒng)具有如下特點(diǎn):

        (1)實(shí)用。網(wǎng)站后臺(tái)管理系統(tǒng)根據(jù)實(shí)際需要,將復(fù)雜的業(yè)務(wù)邏輯簡單化、合理化。用戶能方便地對(duì)各類信息進(jìn)行錄入、查詢、編輯、統(tǒng)計(jì)與下載。系統(tǒng)對(duì)大量的數(shù)據(jù)進(jìn)行有效管理并保證數(shù)據(jù)的準(zhǔn)確性、一致性與完整性。

        (2)高效。應(yīng)用程序響應(yīng)速度快,使用方便,業(yè)務(wù)及數(shù)據(jù)處理能力強(qiáng)。

        (3)安全。將服務(wù)器托管在具有完善機(jī)房設(shè)施、高品質(zhì)網(wǎng)絡(luò)環(huán)境、豐富寬帶資源的服務(wù)器托管中心,達(dá)到安全、可靠、穩(wěn)定、高效運(yùn)行的目的。另外,考慮系統(tǒng)數(shù)據(jù)的安全性,為防止系統(tǒng)核心業(yè)務(wù)數(shù)據(jù)的非法訪問,當(dāng)用戶登錄時(shí),系統(tǒng)會(huì)自動(dòng)檢測用戶角色,根據(jù)用戶所在機(jī)構(gòu)與職位職責(zé)的不同來設(shè)置不同的使用權(quán)限。

        (4)界面友好、易操作。應(yīng)用系統(tǒng)界面簡潔,操作簡便。例如樹形操作結(jié)構(gòu)、信息表格、數(shù)據(jù)驗(yàn)證失敗后的提示效果等,用戶反饋良好。

        參考文獻(xiàn)參考文獻(xiàn):

        [1]張舒文.客運(yùn)聯(lián)網(wǎng)售票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.

        [2]歐陽松壽.鐵路客運(yùn)售票模式的研究[D].北京:北京交通大學(xué),2007.

        [3]劉卓宇.省際長途客運(yùn)網(wǎng)上售票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:復(fù)旦大學(xué),2013.

        [4]張紹林.基于JavaEE5體系的聯(lián)網(wǎng)售票系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [D].天津:天津大學(xué),2008.

        [5] [美]Jerrfrey Richter.Microsoft.NET框架程序設(shè)計(jì)[M].修訂版.李建忠,譯.北京:清華大學(xué)出版社,2003:1018.

        [6]李慶法.完全探索Microsoff.NET技術(shù)戰(zhàn)略[M].北京:中國青年出版社,2001.

        [7]鞠鳳娟.EXT技術(shù)在Web界面設(shè)計(jì)與實(shí)現(xiàn)的應(yīng)用研究[J].計(jì)算機(jī)與現(xiàn)代化,2008(11):102104.

        [8]陽王東,周勇,李旎,等.利用Spring.NET構(gòu)建動(dòng)態(tài)的三層應(yīng)用程序框架[J].計(jì)算機(jī)時(shí)代,2009(9):2023.

        [9]胡啟敏,薛錦云,鐘林輝.基于Spring框架的輕量級(jí) J2EE 架構(gòu)與應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(5):115133.

        [10]李文藝.Spring.Net &NHibernate框架研究與設(shè)計(jì)[J].網(wǎng)絡(luò)與信息,2012(4):2728.

        [11]張淑全.基于 Hibernate 數(shù)據(jù)層設(shè)計(jì)模式的研究與實(shí)現(xiàn)[D].大連:大連海事大學(xué),2007.

        [12]Y LI ,D CUI.Improvement and application of MVC design patterns [J].Computer Engineering,2005(9): 3536.

        [13]丁聰穎.基于J2EE MVC 的WebGIS及其空間數(shù)據(jù)索引的研究 [D].上海:上海交通大學(xué),2007.

        [14]王進(jìn).B/S模式下的三層架構(gòu)模式[J].軟件導(dǎo)刊,2011(3):3031.

        [15]吳小莉,袁小霞,段金蓉.基于spring框架技術(shù)剖析[J].中小企業(yè)管理與科技,2009(12):232233.

        責(zé)任編輯(責(zé)任編輯:杜能鋼)

        丰满熟妇人妻av无码区| 久久婷婷免费综合色啪| 精品一区二区三区老熟女少妇| 后入丝袜美腿在线观看| 最新系列国产专区|亚洲国产| 亚洲欧美日韩精品高清| 果冻蜜桃传媒在线观看| 精品乱色一区二区中文字幕 | 日产精品高潮一区二区三区5月| 亚洲精品久久久久久久久久吃药| 亚洲肥老熟妇四十五十路在线| 开心五月婷婷综合网站| 青青草手机在线免费观看视频| 国模无码一区二区三区| 色婷婷精品| 国产毛片一区二区日韩| 国产在线观看自拍av| 西西人体444www大胆无码视频| 国产精品高清视亚洲乱码有限公司| 日本免费三片在线播放| 午夜精品久久久久久久久| 亚洲学生妹高清av| 亚洲AV无码一区二区一二区教师| 国产三级不卡视频在线观看| 亚洲乱码日产精品一二三| 国内精品久久久影院| 手机在线免费看av网站| 在线人成视频播放午夜| 国产又黄又大又粗的视频| 欧美破处在线观看| 日产一区日产2区日产| 午夜福利一区二区三区在线观看| 日日摸夜夜添夜夜添一区二区| 国产一区二区三区porn| 欧美丰满熟妇xxxx性ppx人交| 欲妇荡岳丰满少妇岳| 米奇亚洲国产精品思久久| 国产av剧情一区二区三区| 性生交大片免费看淑女出招| 亚洲精品日本| 国产一区二区三区视频在线观看|