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

        ?

        基于MVC的文件備份后臺管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)

        2011-09-07 10:17:10胡曉勤
        計算機(jī)工程與設(shè)計 2011年9期
        關(guān)鍵詞:設(shè)計模式調(diào)用視圖

        邊 霞, 趙 奎, 胡曉勤, 趙 輝

        (四川大學(xué)計算機(jī)學(xué)院,四川成都610065)

        0 引 言

        計算機(jī)數(shù)據(jù)資料已成為企業(yè)開展業(yè)務(wù)的基礎(chǔ),其重要性不言而喻,能否保證數(shù)據(jù)的安全性對社會的發(fā)展至關(guān)重要。備份是保證數(shù)據(jù)安全的有效方法[1]。本文提到的文件備份系統(tǒng)是一種基于差異的遠(yuǎn)程文件備份系統(tǒng)[2-3],它將本地文件通過Internet備份到遠(yuǎn)程備份中心,當(dāng)本地文件發(fā)生災(zāi)難時,可由遠(yuǎn)程備份中心恢復(fù)。

        基于MVC[4]的文件備份后臺管理系統(tǒng)是文件備份系統(tǒng)的一個子系統(tǒng),采用B/S架構(gòu),對文件備份系統(tǒng)的遠(yuǎn)程備份中心提供全面的管理功能,以方便用戶使用文件備份系統(tǒng)。目前基于MVC設(shè)計模式的多層架構(gòu)設(shè)計思想可以很好的解決B/S系統(tǒng)體系結(jié)構(gòu)。MVC設(shè)計模式本身比較復(fù)雜,所以在利用MVC設(shè)計模式進(jìn)行系統(tǒng)開發(fā)時選擇一個現(xiàn)成的MVC框架可以起到事半功倍的效果。因此本文選擇了基于MVC設(shè)計模式的Joomla框架[5-7],不但縮短了系統(tǒng)的開發(fā)時間,而且使后臺管理系統(tǒng)具有良好的性能。

        1 文件備份系統(tǒng)架構(gòu)

        文件備份系統(tǒng)可劃分為本地數(shù)據(jù)中心和遠(yuǎn)程備份中心兩個部分,并通過Internet連接。其架構(gòu)如圖1所示。

        本地數(shù)據(jù)中心負(fù)責(zé)完成快照[8]的生成和管理、文件差異的計算[9]、網(wǎng)絡(luò)傳輸和整個流程的控制。遠(yuǎn)程備份中心負(fù)責(zé)完成對網(wǎng)絡(luò)控制的響應(yīng)和數(shù)據(jù)存儲,同時對存儲數(shù)據(jù)進(jìn)行歸檔管理。文件備份后臺管理子系統(tǒng)運(yùn)行在遠(yuǎn)程備份中心。

        2 關(guān)鍵技術(shù)

        2.1 MVC設(shè)計模式

        圖1 文件備份系統(tǒng)架構(gòu)

        圖2 MVC模式結(jié)構(gòu)

        MVC(model-view-controller)設(shè)計模式[10]是 xerox RARC 在20世紀(jì)80年代為編程語 Smalltaik80發(fā)明的一種軟件設(shè)計模式,至今被廣泛應(yīng)用在Web應(yīng)用程序開發(fā)中。它把一個應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個應(yīng)用被分成3個層——模型層、視圖層、控制層。它們各自處理各自的事務(wù),很好地實(shí)現(xiàn)表示邏輯和業(yè)務(wù)邏輯的有機(jī)分離,從而提高各部分的可復(fù)用性同時也可以減少代碼的維護(hù)量。MVC設(shè)計模式的核心是實(shí)現(xiàn)三層甚至多層的松散耦合,它將應(yīng)用程序抽象為模型、控制器以及視圖3個部分,三者既分工又合作地完成用戶提交的任務(wù)。MVC結(jié)構(gòu)[11-12]如圖2所示。

        (1)模型(Model):應(yīng)用程序的核心,用來封裝和顯示數(shù)據(jù)對象。Model維護(hù)了系統(tǒng)的穩(wěn)定狀態(tài),也為Controller提供了訪問被Model封裝了的某些應(yīng)用功能的能力。

        (2)視圖(View):是模型的表示,提供用戶交互界面。它可以從Model訪問數(shù)據(jù),并指定如何表示數(shù)據(jù)。當(dāng)模型狀態(tài)發(fā)生變化時,視圖應(yīng)該得到通知,以便更新視圖。View把用戶動作傳遞給Controller。

        (3)控制器(Controller):定義應(yīng)用程序的行為。它接收來自視圖的請求,解釋用戶的動作并把它們映射為Model執(zhí)行的過程。根據(jù)用戶動作和Model處理的結(jié)果,選擇一個View作為這個用戶請求響應(yīng)的一部分。

        2.2 Joomla框架原理

        Joomla[13]是一個基于 PHP+Mysql的 MVC框架,利用Joomla框架,可以簡化基于MVC的Web應(yīng)用程序的開發(fā),并能充分滿足應(yīng)用開發(fā)的需求,它具有跨平臺性、安全性與穩(wěn)定性高、開發(fā)周期短、開源等優(yōu)點(diǎn)。

        Joomla應(yīng)用框架繼承了MVC模式的各項特性,主要由3部分組成:JModel﹑JController和Jview,這3個部分分別對應(yīng)于MVC設(shè)計模式的Model,Controller和View。應(yīng)用Joomla框架進(jìn)行Web組件的MVC擴(kuò)展開發(fā),都需要繼承JModel類、JView類和JController類。

        3 系統(tǒng)設(shè)計與實(shí)現(xiàn)

        3.1 系統(tǒng)概述

        基于MVC的文件備份后臺管理系統(tǒng)是采用B/S架構(gòu),基于LAMP(Linux+Apache+MySQL+PHP)平臺開發(fā)[14-15]的。包括5個功能模塊:用戶管理模塊,存儲介質(zhì)管理模塊,告警管理模塊,狀態(tài)監(jiān)控模塊和歷史備份點(diǎn)管理模塊,系統(tǒng)功能模塊如圖3所示。整個系統(tǒng)利用Joomla框架開發(fā),采用MVC設(shè)計模式的軟件體系結(jié)構(gòu)進(jìn)行設(shè)計。

        3.2 基于MVC模式的系統(tǒng)設(shè)計

        3.2.1 數(shù)據(jù)庫設(shè)計

        數(shù)據(jù)庫是整個文件備份后臺管理系統(tǒng)的核心,本系統(tǒng)采用的是Mysql數(shù)據(jù)庫,定義了用戶信息表(User)、介質(zhì)信息表(Disk_Info)、告警信息表(Alarm_List)、告警信息分級表(Alarm_Level)、告警分級操作表(Alarm_Operation)、狀態(tài)監(jiān)控表(Job_info)、歷史備份點(diǎn)狀態(tài)表(ArchiveInfo)、全備份策略表(ArchiveTactics)。為了使用這些表,用Joomla框架中實(shí)現(xiàn)的JFactory類的getDBO方法來建立數(shù)據(jù)庫的連接。

        圖3 系統(tǒng)功能模塊

        3.2.2 業(yè)務(wù)功能實(shí)現(xiàn)設(shè)計

        基于MVC的文件備份后臺管理系統(tǒng)中每個模塊都是利用Joomla框架,嚴(yán)格按照MVC三層模式來設(shè)計的,實(shí)現(xiàn)了業(yè)務(wù)層和顯示層的分離。下面以介質(zhì)管理模塊為例,詳細(xì)說明系統(tǒng)使用MVC的實(shí)現(xiàn)設(shè)計方式:

        (1)控制層(Controller)的實(shí)現(xiàn)設(shè)計

        介質(zhì)管理模塊的控制層是由MediumController類來實(shí)現(xiàn)的,這個類的作用是是通過一系列方法與介質(zhì)管理模塊中的JModel類進(jìn)行聯(lián)系,從而調(diào)用介質(zhì)管理模塊中對應(yīng)的單個問題頁面將結(jié)果返回給瀏覽器。MediumController類除了擁有父類Jcontroller的方法外,還具有添加(addMedium())、保存(save-Medium())、刪除(removeMedium())、取消(cancelMedium())等方法。方法addMedium()通過設(shè)置調(diào)用介質(zhì)管理模塊中相關(guān)的JView類,直接將頁面返回給瀏覽器來實(shí)現(xiàn);方法saveMedium()和removeMedium()是通過調(diào)用相關(guān)JModel類中的數(shù)據(jù)保存和刪除方法來完成;方法cancelMedium()是通過地址的重新定向來實(shí)現(xiàn)的。MediumController類中的其它方法,都是通過調(diào)用不同的Model和View來實(shí)現(xiàn),和上述實(shí)現(xiàn)方法類似。代碼有很大的相似性,在很大程度上可以進(jìn)行復(fù)用

        (2)模型層(Model)的實(shí)現(xiàn)設(shè)計

        介質(zhì)管理模塊的模型層是由一系列繼承于 JModel的類來實(shí)現(xiàn)的,它們負(fù)責(zé)對單個問題進(jìn)行數(shù)據(jù)邏輯處理。這些類除了有父類Jmodel的方法外,還共同擁有數(shù)據(jù)保存方法(save-Medium())和數(shù)據(jù)刪除方法(removeMedium())與取消方法(cancelMedium()),代碼的可復(fù)用程度得到很大提高。有些類還具有分頁方法,方便用戶進(jìn)行瀏覽。

        (3)視圖層(View)的實(shí)現(xiàn)設(shè)計

        View層決定如何將數(shù)據(jù)展示給用戶,在該系統(tǒng)的MVC模式中視圖部分主要是PHP頁面。介質(zhì)管理模塊的視圖層是由一系列繼承于JView的類來實(shí)現(xiàn)的。以存儲介質(zhì)管理模塊中的添加介質(zhì)頁面為例,添加時要求介質(zhì)名稱與介質(zhì)路徑未被占用,這就要求在用戶輸入完成后,根據(jù)數(shù)據(jù)庫的內(nèi)容動態(tài)檢查用戶名與路徑是否存在,本模塊在實(shí)現(xiàn)的過程中采用了Jquery技術(shù)來實(shí)現(xiàn)動態(tài)檢查,Jquery是一個JavaScript框架。首先在用戶輸入完成后,相關(guān)函數(shù)自動觸發(fā),調(diào)用相應(yīng)的JModel,JModel將處理結(jié)果返回給此函數(shù),并顯示出來,從而實(shí)現(xiàn)了表單的自動檢查,整個過程是無閃的,大大增加了界面的友好性。

        3.3 基于MVC的系統(tǒng)實(shí)現(xiàn)

        3.3.1 用戶管理模塊的實(shí)現(xiàn)

        用戶管理模塊提供用戶身份認(rèn)證,用戶注冊,刪除以及修改用戶信息功能。登陸是系統(tǒng)的首要實(shí)現(xiàn)。從信息安全的角度考慮,要求進(jìn)行嚴(yán)格的入口控制,對登錄后的用戶有訪問權(quán)控制和操作等級限定。系統(tǒng)的登錄頁面需要口令驗證通過才能進(jìn)行登錄,對于注冊用戶來說,系統(tǒng)將會把用戶和密碼跟數(shù)據(jù)庫信息進(jìn)行對比,符合認(rèn)證才能成功登錄。登陸流程如圖4所示。

        圖4 登陸流程

        對于未登陸的用戶,首先進(jìn)入登陸頁面,Controller將得到的用戶名和密碼傳給Model,然后Model將用戶名和密碼與數(shù)據(jù)庫中存放的用戶名和密碼進(jìn)行比較驗證,如果驗證通過,則調(diào)用相關(guān)View顯示登陸成功,否則調(diào)用另一個View返回登陸頁面。對于已經(jīng)登陸的用戶,用戶可以選擇強(qiáng)制退出或者不退出。

        3.3.2 介質(zhì)管理模塊的實(shí)現(xiàn)

        介質(zhì)管理模塊負(fù)責(zé)管理文件備份系統(tǒng)的存儲介質(zhì),包括存儲介質(zhì)的增加,刪除,使用信息查看以及數(shù)據(jù)遷移等。隨著備份任務(wù)的增加,遠(yuǎn)程備份中心存儲的數(shù)據(jù)會越來越多,當(dāng)存儲介質(zhì)里面的數(shù)據(jù)達(dá)到或超過分配限額,或者需要更換存儲介質(zhì)時,需要將一部分?jǐn)?shù)據(jù)或者全部數(shù)據(jù)遷移到其它存儲介質(zhì)上。數(shù)據(jù)遷移包括遷移用戶備份數(shù)據(jù)與遷移用戶歷史備份點(diǎn)數(shù)據(jù)兩部分,在遷移過程中需要執(zhí)行相關(guān)XML腳本,以使用戶數(shù)據(jù)遷移后不影響數(shù)據(jù)恢復(fù)。數(shù)據(jù)遷移流程如圖5所示。

        圖5 數(shù)據(jù)遷移流程

        數(shù)據(jù)遷移執(zhí)行過程中每一個功能都是嚴(yán)格按照J(rèn)oomla框架的MVC三層模式來實(shí)現(xiàn)的,圖6為“執(zhí)行遷移”的MVC實(shí)現(xiàn)。首先類MediumController(Jcontroller的子類)的方法transmiteMedium()接受

        圖6 “執(zhí)行遷移”的MVC實(shí)現(xiàn)

        用戶需要執(zhí)行遷移操作的請求;然后調(diào)用類TransmitModel(Jmodel子類)的方法transmitMediumModel()進(jìn)行處理,此方法中利用系統(tǒng)調(diào)用(Exec(...))實(shí)現(xiàn)了數(shù)據(jù)的遷移與相關(guān)腳本的執(zhí)行,并在執(zhí)行完成后更新數(shù)據(jù)庫信息;最后調(diào)用類Transmit-View類(Jview子類)的方法Transmit()顯示結(jié)果。

        3.3.3 告警管理模塊的實(shí)現(xiàn)

        告警管理模塊主要是對文件備份系統(tǒng)中的任務(wù)失敗、存儲介質(zhì)出錯等多種系統(tǒng)錯誤,能夠按照用戶定義級別為告警信息分級、記錄,發(fā)送告警郵件給管理員,并且記錄管理員的處理情況。處理告警流程如圖7所示。

        首先進(jìn)入模塊,Controller調(diào)用Model查詢數(shù)據(jù)庫,看是否有告警信息,如果有則調(diào)用View將之顯示出來,然后以同樣的流程進(jìn)入告警處理頁面,并處理告警。

        圖7 告警處理流程

        3.3.4 狀態(tài)監(jiān)控模塊的實(shí)現(xiàn)

        狀態(tài)監(jiān)控模塊負(fù)責(zé)監(jiān)控文件備份系統(tǒng)遠(yuǎn)程備份中心端當(dāng)前的運(yùn)行狀態(tài),包括系統(tǒng)狀態(tài)和任務(wù)狀態(tài)。可以通過查看正在執(zhí)行的任務(wù)信息或者已登錄用戶活動情況了解遠(yuǎn)程備份中心的運(yùn)行狀態(tài)。其中任務(wù)狀態(tài)有未完成任務(wù),已完成任務(wù)和活動任務(wù)3種情況。每一種情況都詳細(xì)記錄了各個任務(wù)的任務(wù)類型,任務(wù)開始與結(jié)束時間,任務(wù)容量與流量以及用戶IP地址與用戶ID等。

        3.3.5 歷史備份點(diǎn)管理模塊的實(shí)現(xiàn)

        歷史備份點(diǎn)管理模塊提供歷史備份點(diǎn)的查看,刪除與恢復(fù)功能。其中歷史備份點(diǎn)的恢復(fù)功能在文件備份系統(tǒng)的客戶端已經(jīng)實(shí)現(xiàn),為了使用戶能夠在沒有安裝文件備份客戶端的情況下也能進(jìn)行歷史備份點(diǎn)的恢復(fù),在后臺管理系統(tǒng)中加入此功能,以方便用戶的操作。歷史備份點(diǎn)恢復(fù)流程如圖8所示。

        圖8 歷史備份點(diǎn)恢復(fù)流程

        首先進(jìn)入模塊,Controller得到用戶的ID(uid)傳給Model,Model使用uid在數(shù)據(jù)庫查找出用戶歷史備份點(diǎn)信息,之后調(diào)用 View將歷史備份點(diǎn)信息通過頁面顯示出來。其次以同樣的流程得到xml文件并顯示備份詳情,最后選擇某個需要恢復(fù)的歷史備份點(diǎn)或者某一文件,點(diǎn)擊恢復(fù),通過第二步得到的xml信息,定位到相應(yīng)文件實(shí)現(xiàn)下載。如果是多個文件,先進(jìn)行打包然后進(jìn)行下載。

        4 結(jié)束語

        隨著Web應(yīng)用系統(tǒng)規(guī)模的不斷增大,架構(gòu)一個高效、結(jié)構(gòu)清晰的Web應(yīng)用程序十分重要。MVC設(shè)計模式可以使業(yè)務(wù)邏輯與頁面邏輯彼此分離,從而提高開發(fā)的效率和提高質(zhì)量。采用基于MVC的框架開發(fā),優(yōu)勢如下:

        (1)多個視圖可以對應(yīng)一個模型。這樣可以減少代碼的復(fù)制及代碼的維護(hù)量,一旦模型發(fā)生改變,也易于維護(hù)。

        (2)模型返回的數(shù)據(jù)與顯示邏輯分離。模型數(shù)據(jù)可以應(yīng)用諸如PHP等任何的顯示技術(shù),開發(fā)具有很大的靈活性。

        (3)應(yīng)用被分隔為三層,降低了各層之間的耦合,提供了應(yīng)用的可擴(kuò)展性。

        (4)控制層可以把不同的模型和不同的視圖組合在一起,完成各種不同的請求。

        (5)MVC更符合軟件工程化管理的精神。不同的層各司其職,每一層的組件具有相同的特征,有利于通過工程化和工具化產(chǎn)生管理程序代碼。

        [1]李濤.網(wǎng)絡(luò)安全概論[M].北京:電子工業(yè)出版社,2004.

        [2]TANG Wei-tong,LIU Xiao-jie,LI Tao,et al.Fast differential backup method[J].Computer Engineering,2008,34(11):255-257.

        [3]REN Xin,LI Tao,HUXiao-qin.Design and implementation of remote file backup and recover system[J].Computer Engineering,2009,35(10):112-114.

        [4]劉麗,任巖.基于的銀行中間業(yè)務(wù)系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程與設(shè)計,2007,28(21):5282-5284.

        [5]于秀金,張皓斐.基于Joomla!系統(tǒng)開發(fā)網(wǎng)站的設(shè)計與實(shí)現(xiàn)[J].電腦開發(fā)與應(yīng)用,2010,23(11):50-55.

        [6]Barrie M North.Joomla!a user's guide-building a successful joomla!powered website[M].Prentices Hall,2007.

        [7]Andy Wallace.Joomla!1.5 installationmanual[M].Prentice Hall,2007.

        [8]QINSheng,LIHuai-yang,HAIJie.Design andimplementationof multi-version snapshot based on block device[J].Computer Engineering,2009,35(22):71-73.

        [9]馬曉旭,胡曉勤,鄧洪敏,等.一種逆向的差異歸檔方法[J].四川大學(xué)學(xué)報(工程科學(xué)版),2009,41(4):191-195.

        [10]劉春花,王忠民.基于MVC模式的遠(yuǎn)程評議系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)工程與設(shè)計,2008,29(13):3468-3470.

        [11]Ahmed Seffah,Taleb Mohamed.Halima Habieb-Mammar and Alain Abran.reconciling usability and interactive system architecture using patterns[J].Journal of Systems and Software,2008,81(11):1845-1852.

        [12]CHEN Liang-chen,SUN Gong-xing,ZHAO Rui,et al.Research and design of food secure monitor system based on MVC[J].Application Research of Computers,2008,25(7):2091-2093.

        [13]胡前進(jìn),蔡永州,吳敏.基于MVC模式的Joomla!框架在Web系統(tǒng)組件擴(kuò)展開發(fā)中的應(yīng)用研究[J].現(xiàn)代教育技術(shù),2009,19(6):97-100.

        [14]楊明華,譚勵,于重重.LAMP網(wǎng)站開發(fā)黃金組合:Linux+Apache+MySQL+PHP[M].北京:電子工業(yè)出版社,2008.

        [15]劉振巖,王勇,陳立平.基于Linux的WEB程序設(shè)計[M].北京:人民郵電出版社,2008.

        猜你喜歡
        設(shè)計模式調(diào)用視圖
        仿生設(shè)計模式的創(chuàng)新應(yīng)用探索
        玩具世界(2023年6期)2024-01-29 12:14:36
        “1+1”作業(yè)設(shè)計模式的實(shí)踐探索
        核電項目物項調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        交通機(jī)電工程設(shè)計模式創(chuàng)新探討
        5.3 視圖與投影
        視圖
        Y—20重型運(yùn)輸機(jī)多視圖
        SA2型76毫米車載高炮多視圖
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        99精品国产在热久久无码| 国产av一区麻豆精品久久| 中文字字幕在线中文乱码解| 热re99久久精品国99热| 国产在线观看免费观看| 欧美日韩高清一本大道免费| 亚洲熟妇av一区二区三区hd| 99久久精品免费看国产| 欧美v亚洲v日韩v最新在线| 国产精品亚洲ΑV天堂无码| 亚洲av熟女传媒国产一区二区| 人人妻人人澡人人爽超污| 国产精品永久免费视频| 国产AV高清精品久久| 日本免费一区二区在线看片| 中文字幕日本人妻久久久免费| 婷婷四房播播| 亚洲精品日本久久久中文字幕| 国产在线一区二区三区四区不卡| 中文乱码字慕人妻熟女人妻| 男人的天堂在线无码视频| 精品国产一区二区三区九一色| 精品国产粉嫩内射白浆内射双马尾 | 四虎国产精品视频免费看| 亚洲图文一区二区三区四区| 国产成人综合久久久久久| 国产无遮挡裸体免费视频| 91热国内精品永久免费观看| 中文乱码字幕在线亚洲av| 黑人巨大精品欧美一区二区免费| 自拍偷自拍亚洲精品播放| 杨幂二区三区免费视频| 精品国产午夜肉伦伦影院| 国产亚洲av综合人人澡精品| 91精品91久久久久久| 日本久久精品福利视频| 国产亚洲2021成人乱码| 国产AV国片精品有毛| 久久精品人妻一区二三区| 亚洲日韩精品一区二区三区| 国产欧美乱夫不卡无乱码|