2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  中文6200字,3500單詞,1.8萬英文字符</p><p>  出處:Pop D P, Altar A. Designing an MVC Model for Rapid Web Application Development ☆[J]. Procedia Engineering, 2014, 69(1):1172-1179.</p><p>  為快速開發(fā)web

2、應(yīng)用設(shè)計(jì)一個(gè)MVC模型</p><p>  Dragos-Paul Pop*, Adam Altar</p><p>  Procedia Engineering 69 ( 2014 ) 1172 – 1179</p><p>  羅馬尼亞美國大學(xué),1B expozitiei大道,布加勒斯特,012101,羅馬尼亞</p><p>

3、<b>  摘要</b></p><p>  在本文中,我們提出了一個(gè)快速開發(fā)Web應(yīng)用的模型。該模型是基于模型-視圖-控制器架構(gòu)(MVC)和其他一些有用的組件,比如安全,表單生成和驗(yàn)證,訪問數(shù)據(jù)庫和路由。這個(gè)模型是使用PHP編程語言實(shí)現(xiàn)的,但它可以使用同一設(shè)想在其他的開發(fā)語言和環(huán)境上實(shí)現(xiàn)。本研究的主要目標(biāo)是使用正確的可維護(hù)的代碼提高開發(fā)和維護(hù)效率。</p><p>

4、  在DAAAM International Vienna的職責(zé)下選擇并且同行評(píng)審。</p><p>  關(guān)鍵詞:模型;視圖;控制器;MVC;Web應(yīng)用;設(shè)計(jì)模式</p><p><b>  介紹</b></p><p>  自從萬維網(wǎng)的開始,web應(yīng)用程序的發(fā)展已經(jīng)走過了一段很長的歷程。各種各樣的技術(shù)和程序語言正在被用來開發(fā)web應(yīng)用程序,但

5、是因?yàn)檫@些技術(shù)并沒有足夠的時(shí)間去隨著萬維網(wǎng)的進(jìn)化而及時(shí)進(jìn)化,無法應(yīng)對(duì)萬維網(wǎng)的步伐。很多使用者嘗試提出不同的奇異的技術(shù)來提高用戶的體驗(yàn),并且?guī)椭_發(fā)者開發(fā)更快更強(qiáng)大的web應(yīng)用程序。這些技術(shù)在web發(fā)展中扮演了一個(gè)重要的角色,但是在過去幾年里,他們的地位有了相當(dāng)程度的下降,就像Java Applets和Microsoft Silverlight一樣。另一方面,許多技術(shù)已經(jīng)從簡單的工具演變成了今天web生態(tài)系統(tǒng)強(qiáng)大的重要的一部分,比如,Ja

6、vascript,F(xiàn)lash和XML。</p><p>  *通訊作者。電話:+ 40-724-261-805;</p><p>  電子郵件地址:pop.dragos.paul@profesor.rau.ro</p><p>  1877-7058©2014 The Authors。 由Elsevier公司出版。在CC BY-NC-N

7、D license許可下開放存取。</p><p>  在DAAAM International Vienna的職責(zé)下選擇并且同行評(píng)審。</p><p>  doi: 10.1016/j.proeng.2014.03.106</p><p>  今天的web環(huán)境使用HTML和CSS將數(shù)據(jù)展現(xiàn)給用戶看,使用JavaScript來實(shí)現(xiàn)交互。這些技術(shù)被稱為“前端”或“客戶

8、端”技術(shù)。相反的,“后端”或者“服務(wù)端”技術(shù)是指數(shù)據(jù)存儲(chǔ)和處理技術(shù)。</p><p><b>  問題公式化</b></p><p>  一起使用前端技術(shù)和后端技術(shù)來開發(fā)web應(yīng)用程序,但由于萬維網(wǎng)發(fā)展速度很快,由于開發(fā)人員需要使用很多技術(shù)來開發(fā)的卻僅僅是一個(gè)很簡單的web應(yīng)用程序,這樣的結(jié)果就是,他們的程序經(jīng)常是難以維護(hù)的。</p><p>

9、  開發(fā)者將HTML代碼和服務(wù)端程序語言結(jié)合起來創(chuàng)造一個(gè)動(dòng)態(tài)的web頁面和應(yīng)用程序,這會(huì)導(dǎo)致代碼高度耦合而難以維護(hù)。</p><p>  另一個(gè)已經(jīng)產(chǎn)生的問題是,web技術(shù)正在越來越多地地被用來開發(fā)各種各樣的復(fù)雜的應(yīng)用程序。Microsoft embraces web技術(shù)鼓勵(lì)開發(fā)者使用最新的操作系統(tǒng)Windows 8來開發(fā)應(yīng)用程序。同時(shí),很多現(xiàn)有的框架幫助開發(fā)者為移動(dòng)設(shè)備開發(fā)應(yīng)用程序,比如PhoneGap和App

10、celerator Titanium。甚至,一個(gè)手機(jī)操作系統(tǒng)正在被使用中,還有一個(gè)完全為了開發(fā)者提供API(火狐操作系統(tǒng))的使用web技術(shù)的設(shè)備即將在今年晚些時(shí)候出現(xiàn)。因?yàn)檫@些原因,一個(gè)web應(yīng)用程序通常是由一整個(gè)團(tuán)隊(duì)開發(fā)的,這個(gè)團(tuán)隊(duì)里有各種開發(fā)者,每項(xiàng)工作使用的都是他們各自喜歡的技術(shù),比如表現(xiàn)層的HTML和CSS,客戶端交互的JavaScript,服務(wù)器邏輯的PHP (或者ASP, Java, Python, Pearl, Ruby等

11、等)和數(shù)據(jù)存儲(chǔ)和管理的MySQL (或者Oracle Database, Microsoft SQL Server,等等)。</p><p>  每一個(gè)職能負(fù)責(zé)的開發(fā)人員,需要和他的同時(shí)協(xié)同合作,使用一種方式使得他們的代碼塊和整個(gè)應(yīng)用程序的設(shè)計(jì)相融合。舉個(gè)例子,客戶端(數(shù)據(jù)顯示)開發(fā)人員需要使用一種方式,保證在修改HTML和CSS代碼的時(shí)候,不會(huì)破壞在同一文件中的服務(wù)端開發(fā)人員的代碼。同時(shí),當(dāng)數(shù)據(jù)庫開發(fā)人員修改應(yīng)

12、用程序的數(shù)據(jù)時(shí),服務(wù)端開發(fā)人員很可能需要修改很多代碼才能使得應(yīng)用程序正常工作。</p><p>  需要注意的重要的事,在一個(gè)應(yīng)用程序中,把表現(xiàn)層從邏輯和數(shù)據(jù)存儲(chǔ)當(dāng)作分離出來是迫切需要的。</p><p>  很多應(yīng)用程序設(shè)計(jì)了一些模式來解決這個(gè)問題,但最好的是當(dāng)今的MVC模式。</p><p>  在這個(gè)研究過程中,我們使用各種系統(tǒng)和框架開發(fā)web應(yīng)用程序來獲取經(jīng)

13、驗(yàn),試圖去識(shí)別這些系統(tǒng)的優(yōu)點(diǎn)和缺點(diǎn),同時(shí)對(duì)于如何提高這些系統(tǒng)的實(shí)際應(yīng)用效率提出我們自己的看法。研究的框架和系統(tǒng)包括:Symfony, CakePHP, CodeIgniter Zend Framework, Laravel, Fuel PHP, Ruby on Rails and ASP.NET MVC。</p><p>  MVC模式和文學(xué)概述</p><p>  在這一節(jié)中,我們將回顧

14、當(dāng)前在這一領(lǐng)域的研究狀態(tài),并且,看看與MVC模式有關(guān)的描述了模式的主要功能組件的文獻(xiàn)資料。</p><p>  MVC設(shè)計(jì)模式是由Trygve Reenskaug在1970年代在施樂帕洛阿爾托研究中心第一次提出的。根據(jù)他所說的,“MVC的基本目的是在用戶的心里模型和存在于計(jì)算機(jī)中的數(shù)據(jù)模型之間搭起一座橋梁[1]”。</p><p>  后來,1988年,在Krasner和Pope的文章《A

15、 cookbook for using the model-view controller user interface paradigm in Smalltalk-80》里,對(duì)MVC模式進(jìn)行了更詳細(xì)的描述,該文章被發(fā)表在雜志《Object-Oriented Programming》上。</p><p>  他們強(qiáng)調(diào),如果在頭腦里使用模塊化構(gòu)建一個(gè)應(yīng)用程序,那么將會(huì)有很大的益處?!氨M可能把各個(gè)功能模塊分離出來,使

16、應(yīng)用程序設(shè)計(jì)人員更容易在不需要了解其他模塊的情況下,對(duì)自己的模塊進(jìn)行理解和修改。[2]”</p><p>  一個(gè)應(yīng)用程序被分為三大部分:主程序的模型,模型的數(shù)據(jù)顯示和用戶交互[2]。</p><p>  MVC模式將職責(zé)分給三個(gè)主要角色,從而擁有更有效的協(xié)同合作[3]。這些主要的角色是開發(fā),設(shè)計(jì)和集成。</p><p>  開發(fā)的角色是由富有經(jīng)驗(yàn)的程序員擔(dān)任的,他

17、們的職責(zé)是應(yīng)用程序的邏輯問題。他們關(guān)心數(shù)據(jù)查詢,驗(yàn)證,處理以及其他更多的邏輯。</p><p>  設(shè)計(jì)的角色的的開發(fā)者的職責(zé)是負(fù)責(zé)應(yīng)用程序的外觀和感覺。他們提供數(shù)據(jù)顯示給第一角色的開發(fā)人員。</p><p>  集成角色的職責(zé)是收集由擔(dān)任前兩種角色的開發(fā)人員的工作[3]。</p><p>  MVC設(shè)計(jì)模式適合web應(yīng)用程序開發(fā),因?yàn)樗麄兺ㄟ^結(jié)合多種技術(shù)將程序分層

18、開發(fā)。同時(shí),MVC特定的行為可以在不同類型的用戶代理之間發(fā)送特定的視圖[13]。</p><p>  “一個(gè)MVC應(yīng)用程序的用戶交互遵循著一個(gè)自然周期:用戶發(fā)生動(dòng)作,應(yīng)用程序改變它的數(shù)據(jù)模型,然后返回一個(gè)更新視圖給用戶[4]?!?lt;/p><p>  圖1. MVC模式.</p><p>  Source: http://stackoverflow.com/quest

19、ions/5966905/which-mvc-diagram-is-correct-web-app</p><p><b>  模型</b></p><p>  模型是系統(tǒng)的一部分,它會(huì)管理所以相關(guān)任務(wù)的數(shù)據(jù):驗(yàn)證,會(huì)話狀態(tài)和控制,數(shù)據(jù)源結(jié)構(gòu)(數(shù)據(jù)庫)。模型大大減少了開發(fā)人員需要編寫的代碼的復(fù)雜性[5]。</p><p>  模型層負(fù)責(zé)應(yīng)用程序

20、的業(yè)務(wù)邏輯。它通過封裝的方法來訪問數(shù)據(jù)(數(shù)據(jù)庫,文件,等等),并提供一個(gè)可重用的類庫。通常,模型是基于抽象、驗(yàn)證和認(rèn)證的抽象數(shù)據(jù)建立的[4]。</p><p>  另外,模型是由類組成的,這些類定義了受關(guān)注的域[6]。</p><p>  結(jié)論就是,模型主要處理數(shù)據(jù)訪問的抽象和驗(yàn)證。模型提供一些方法用于支持不同數(shù)據(jù)源之間的交互。</p><p>  我們相信,在瘦模

21、型方法中所說的,一個(gè)模型應(yīng)該盡可能地簡單,只包含數(shù)據(jù)處理,那些完全與現(xiàn)實(shí)生活有關(guān)的模塊化的數(shù)據(jù)。瘦模型與胖控制器相聯(lián)系,其中存有應(yīng)用程序所需的大部分的數(shù)據(jù)處理。通過這種方式,在應(yīng)用程序和大部分在控制器上開發(fā)的程序員之間,模型保持了高度的可重用性。</p><p>  新奇的是,我們的模型系統(tǒng)帶給MVC世界的是一個(gè)用于版本控制的系統(tǒng),一個(gè)基于數(shù)據(jù)傳送的想法,除了數(shù)據(jù)本身,它不會(huì)持續(xù)關(guān)注數(shù)據(jù)的結(jié)構(gòu)。這個(gè)系統(tǒng)使用XML

22、文件在數(shù)據(jù)傳送之間存儲(chǔ)數(shù)據(jù),這使得數(shù)據(jù)庫的版本控制過程成了一件容易完成的事。</p><p><b>  視圖</b></p><p>  視圖負(fù)責(zé)用戶的圖形界面管理。這包括了所有在應(yīng)用程序中的表單、按鈕、圖形元素和其他HTML元素。視圖也可以被用來生成RSS內(nèi)容聚合器或者Flash演示。通過將應(yīng)用程序設(shè)計(jì)從應(yīng)用程序的邏輯中分離出來,當(dāng)設(shè)計(jì)人員決定更改應(yīng)用程序的界面的

23、logo或者表格時(shí),我們可以大大降低出錯(cuò)的風(fēng)險(xiǎn)。與此同時(shí),開發(fā)人員的工作量也大大減少了,因?yàn)樗麄儾辉傩枰リP(guān)注HTML代碼元素,不需要去設(shè)計(jì)元素和圖形元素[5]。</p><p>  視圖層通常也被稱為web設(shè)計(jì)或模版。它控制著數(shù)據(jù)被顯示的方式以及和用戶進(jìn)行交互的方式。它還提供了從用戶處收集數(shù)據(jù)的方法。視圖中使用的技術(shù)主要有HTML,CSS和JavaScript[4]。</p><p> 

24、 作為一般規(guī)則,一個(gè)視圖不能包含屬于應(yīng)用程序邏輯部分的元素,以此來使得設(shè)計(jì)人員更容易來使用它工作。這意味著邏輯塊應(yīng)該保持在最低限度。</p><p>  今天大多數(shù)web應(yīng)用程序框架使用各種模版引擎,這些模版利用生成器元素可以保證HTML代碼的數(shù)量在最少,同時(shí)降低拼寫錯(cuò)誤的風(fēng)險(xiǎn)。這些生成器通常用來制作一些復(fù)雜的web模版,比如表單,表格,列表,菜單等等。在這種情況下,我們確認(rèn)的問題是,所有想法的實(shí)現(xiàn)都需要用到對(duì)開

25、發(fā)人員來說不透明的生成器模版。通過這種方式,一個(gè)前端開發(fā)人員只能看到在代碼被生成之后執(zhí)行的結(jié)果,而沒有任何方法去修改模版。我們的系統(tǒng)采用特殊的HTML注釋來插入和生成基于模版的部分HTML文件。預(yù)處理系統(tǒng)采用注釋來解釋特殊的命令,用來把數(shù)據(jù)插入模版。這使得整個(gè)對(duì)于前端開發(fā)人員來說都是很透明的,他們可以在繪制視圖之前看到整個(gè)標(biāo)記。</p><p><b>  控制器</b></p>

26、<p>  控制器負(fù)責(zé)事件處理。這些由用戶觸發(fā)的事件,能夠和應(yīng)用程序或者系統(tǒng)進(jìn)程進(jìn)行交互??刂破骺梢越邮苷?qǐng)求,可以準(zhǔn)備數(shù)據(jù)來進(jìn)行響應(yīng)。它也負(fù)責(zé)建立響應(yīng)的格式??刂破髋c模型進(jìn)行交互,以此來檢索所需要的數(shù)據(jù)并且生成視圖。這個(gè)過程也被稱為一個(gè)動(dòng)作或動(dòng)詞[5]。當(dāng)一個(gè)請(qǐng)到到達(dá)服務(wù)器,MVC框架會(huì)根據(jù)URL給它分配一個(gè)控制器中的方法[14]。</p><p>  控制器捆綁所有的應(yīng)用程序邏輯,將視圖的顯示和模

27、型的函數(shù)相結(jié)合。它負(fù)責(zé)從視圖中檢索數(shù)據(jù),建立應(yīng)用程序的執(zhí)行路徑??刂破髂軌蛟L問模型的函數(shù),并且它能夠接收數(shù)據(jù)使得在視圖中顯示。它也負(fù)責(zé)錯(cuò)誤處理[4]。</p><p>  控制器管理視圖和模型之間的關(guān)系。它響應(yīng)用戶的請(qǐng)求,與模型進(jìn)行交互,并且決定哪個(gè)視圖應(yīng)該被生成并顯示[6]。</p><p>  如上所述,我們接受胖控制器方法,相信所有特定的應(yīng)用程序的數(shù)據(jù)處理應(yīng)該在控制器層處理。<

28、/p><p>  為了請(qǐng)求和響應(yīng),我們的控制器系統(tǒng)會(huì)是一個(gè)架構(gòu)樣式的網(wǎng)絡(luò)系統(tǒng),并且支持JSON(P),text和XML數(shù)據(jù)格式。</p><p><b>  數(shù)據(jù)庫抽象化</b></p><p>  使用對(duì)象來開發(fā)面向?qū)ο缶幊痰膽?yīng)用程序。這些對(duì)象反映了現(xiàn)實(shí)生活中的對(duì)象,包含了對(duì)象的數(shù)據(jù)和行為。關(guān)系模型被廣泛應(yīng)用于應(yīng)用程序中的數(shù)據(jù)存儲(chǔ),這些應(yīng)用程序使

29、用表來存儲(chǔ)數(shù)據(jù),并且使用數(shù)據(jù)操縱語言來進(jìn)行數(shù)據(jù)交互。一些數(shù)據(jù)庫管理系統(tǒng)擁有面向?qū)ο蟮奶匦?,但它們并不是完全兼容的。很明顯的是,在從現(xiàn)在開始的很長一段時(shí)間里,這兩個(gè)架構(gòu)會(huì)一直被廣泛地使用。此外,大部分時(shí)間,關(guān)系模型和面向?qū)ο缶幊淌潜挥脕硪黄痖_發(fā)應(yīng)用程序。但這兩種技術(shù)的結(jié)合遠(yuǎn)非完美。“object-relational impedance mismatch”這個(gè)術(shù)語被用來說明上面所說的不匹配[7]。</p><p>

30、  在不匹配的背后存在的原因是,這兩種技術(shù)依賴于不同的思想。面向?qū)ο缶幊桃蕾囉诰幊趟枷?,而關(guān)系模型遵循的是數(shù)學(xué)原理。</p><p>  為了完全解決這個(gè)問題,對(duì)象-關(guān)系映射系統(tǒng)應(yīng)運(yùn)而生。</p><p>  圖2. ORM系統(tǒng).</p><p>  Source:http://danhartshorn.com/2011/12/object-relational-m

31、apping-wikipedia-the-free-encyclopedia</p><p>  一個(gè)對(duì)象關(guān)系映射系統(tǒng)(ORM)被定義為一種工具,它提供一個(gè)面向?qū)ο蟮姆椒ê蜋C(jī)制以安全的方式來存儲(chǔ)數(shù)據(jù),并且在數(shù)據(jù)庫中的很長一段時(shí)間里,能夠通過事務(wù)控制它們,但需要說明的是,如果需要,它也可以作為應(yīng)用程序內(nèi)部中的對(duì)象[8]。</p><p>  ORM系統(tǒng)減少了開發(fā)人員對(duì)了解數(shù)據(jù)庫結(jié)構(gòu)或數(shù)據(jù)庫模

32、式的擔(dān)心[9]。</p><p>  總之,我們可以說,對(duì)象關(guān)系-映射系統(tǒng)是一種把編程語言中的類和關(guān)系系統(tǒng)中的數(shù)據(jù)相關(guān)聯(lián)的方式,它允許開發(fā)人員使用眾所周知的思想來進(jìn)行開發(fā),即從面向?qū)ο缶幊虂砉芾黻P(guān)系系統(tǒng)中的數(shù)據(jù)。</p><p>  MVC平臺(tái)必須為開發(fā)人員提供一個(gè)方法與數(shù)據(jù)庫管理系統(tǒng)進(jìn)行數(shù)據(jù)交互,進(jìn)行數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)檢索。大多數(shù)時(shí)候,這是一個(gè)集成的ORM系統(tǒng)。</p><

33、;p>  因?yàn)樵贛VC架構(gòu)中,模型是與數(shù)據(jù)交互的一層,ORM系統(tǒng)隱藏在其之后。基本上,每個(gè)模型連接到ORM系統(tǒng)后,它都會(huì)使用該系統(tǒng)進(jìn)行數(shù)據(jù)交互。但是開發(fā)人員可能不需要通過模型來訪問ORM系統(tǒng)的資源。</p><p>  我們的ORM系統(tǒng)支持在對(duì)象和最長的對(duì)象鏈之間的多對(duì)多關(guān)系。</p><p>  同時(shí),我們提供一個(gè)選項(xiàng)來確保內(nèi)存中保存有確定的數(shù)據(jù)集,并且,跳過數(shù)據(jù)查詢步驟,以此將響

34、應(yīng)時(shí)間減少到最低限度。</p><p>  目前,NoSQL數(shù)據(jù)存儲(chǔ)是被重視的,我們支持一個(gè)接口來訪問這些系統(tǒng)。這個(gè)接口是ORM系統(tǒng)的一部分。</p><p><b>  安全</b></p><p>  Web應(yīng)用程序漏洞是用戶的業(yè)務(wù)環(huán)境會(huì)受到攻擊的主要原因[10]。</p><p>  開發(fā)人員在開發(fā)web應(yīng)用程序的

35、時(shí)候需要注意很多地方。</p><p>  安全風(fēng)險(xiǎn)可以分為幾類[11]:</p><p>  用戶輸入驗(yàn)證:緩沖區(qū)溢出,跨站腳本,SQL注入,規(guī)范化;</p><p>  認(rèn)證:網(wǎng)絡(luò)監(jiān)聽,暴力攻擊,字典攻擊,cookie偽裝,身份盜用;</p><p>  授權(quán):訪問特權(quán)擾亂,私人數(shù)據(jù)顯示,數(shù)據(jù)修改,跟蹤攻擊;</p><

36、;p>  配置管理:對(duì)管理界面未經(jīng)授權(quán)的訪問,對(duì)配置空間未經(jīng)授權(quán)的訪問,對(duì)存儲(chǔ)為文本的控制數(shù)據(jù)的訪問,操作日志的缺少;</p><p>  信息:訪問數(shù)據(jù)庫中的數(shù)據(jù),網(wǎng)絡(luò)監(jiān)聽,數(shù)據(jù)修改;</p><p>  會(huì)話管理:會(huì)話盜竊,會(huì)話改變,中間人攻擊;</p><p>  加密:薄弱的安全密鑰,薄弱的加密;</p><p>  參數(shù)處理:

37、查詢字符串,表單字段,cookie和HTTP頭處理;</p><p>  異常管理:DOS攻擊;</p><p>  開發(fā)人員需要抵御這些各種類型的攻擊,并且保證MVC架構(gòu)的每一層的安全性。</p><p>  我們的系統(tǒng)提議建立在CSRF攻擊預(yù)防之上,一個(gè)簡單的身份驗(yàn)證模式,一個(gè)復(fù)雜的基于安全系統(tǒng)和對(duì)資源高度可定制的訪問控制表的角色。</p><

38、;p><b>  路由</b></p><p>  HTTP協(xié)議處理URL書寫的方式與Unix環(huán)境中資源路徑被書寫的方式很相似[12]。</p><p>  Web服務(wù)器支撐在分層文件系統(tǒng)中隱式地查詢數(shù)據(jù)。</p><p>  通過這種方式訪問資源是相對(duì)容易的、直觀的,但是隨著web應(yīng)用程序變得更復(fù)雜,我們需要更好的系統(tǒng)的產(chǎn)生。為了解決這

39、個(gè)問題,我們可以用一種方法來配置web服務(wù)器和開發(fā)框架,這種方法使用獨(dú)一無二的方式來說明結(jié)果、訪問資源。</p><p>  這些系統(tǒng)被稱為URL映射或URL路由系統(tǒng)。這項(xiàng)技術(shù)也被稱為URL美化,它幫助開發(fā)人員開發(fā)命令和精密的URLs數(shù)據(jù),使得用戶和搜索引擎能夠更好地處理它們。</p><p>  我們的系統(tǒng)是基于“控制器/動(dòng)作/參數(shù)”范式建立的,但是它也允許開發(fā)人員配置他們自己的靜態(tài)路由

40、。</p><p>  訪問控制在路由層,這是為了減少不必要的處理時(shí)間。</p><p><b>  快速原型</b></p><p>  在web應(yīng)用程序開發(fā)的世界里,很多應(yīng)用程序似乎被多次使用。舉個(gè)例子,web表單就是個(gè)經(jīng)常被使用的工具,表格和列表也同樣如此。但總是從零開始開發(fā)它們是很困難的,因?yàn)樗膶?shí)現(xiàn)需要編寫很多復(fù)雜的代碼。</p

41、><p>  每個(gè)系統(tǒng)都能受益于快速原型組件,快速原型組件不僅可以快速生成這些工具,還能為表單的數(shù)據(jù)驗(yàn)證提供方法。</p><p>  當(dāng)這些工具和ORM系統(tǒng)相結(jié)合,用很少的幾行代碼為基礎(chǔ)開發(fā)一個(gè)CRUD系統(tǒng),這確實(shí)是很有用的。</p><p>  如上所述的觀點(diǎn),我們的系統(tǒng)是基于一個(gè)靈活的完全透明的模版引擎,這使得前端和后端開發(fā)人員共同受益。</p>&

42、lt;p><b>  系統(tǒng)方案概述</b></p><p>  我們的平臺(tái)方案用一個(gè)簡單的包將以上所述的所有方面統(tǒng)一了起來,這個(gè)包是強(qiáng)大且易于使用和維護(hù)的。</p><p>  上述結(jié)構(gòu)描述如下。數(shù)據(jù)源可以是任何類型的數(shù)據(jù)庫。ORM系統(tǒng)是一個(gè)專門為最著名的數(shù)據(jù)庫管理系統(tǒng)開發(fā)的類的集合。一個(gè)主要的類為被使用的DBMS中一般類型的表提供基本的映射,關(guān)系和管理。關(guān)系應(yīng)

43、該被映射成一種允許使用面向?qū)ο蟮姆绞絹慝@取相關(guān)的數(shù)據(jù),而不是由開發(fā)人員編寫復(fù)雜的查詢代碼。預(yù)先加載和延遲加載都應(yīng)該被考慮到。</p><p>  模型被構(gòu)建成一個(gè)ORM主類的子類,這個(gè)類繼承自主類。此外,模型有很多獨(dú)一無二的功能,這些功能將現(xiàn)實(shí)生活中的對(duì)象模型化。</p><p>  控制器是一個(gè)用于處理模型查詢,訪問安全以及路由解析的基類。控制器被構(gòu)建成基礎(chǔ)控制器的子類,繼承它的功能函數(shù)

44、,并且有與應(yīng)用程序邏輯相關(guān)的所使用到的行為。</p><p>  快速原型系統(tǒng)是一組類的集合,這些類允許開發(fā)人員去開發(fā)復(fù)雜的HTML對(duì)象,比如表單,表格,而不需要編寫HTML代碼。表達(dá)應(yīng)該提供數(shù)據(jù)驗(yàn)證功能,表格則應(yīng)該實(shí)現(xiàn)排序和嵌套??焖僭拖到y(tǒng)應(yīng)該提供類DOM操作功能來訪問數(shù)據(jù)。</p><p>  圖 3. MVC結(jié)構(gòu)概述.</p><p>  視圖是一個(gè)包含所有

45、顯示邏輯的基類。視圖被構(gòu)建成主類的子類,應(yīng)該跟特殊的行為和控制器綁定。為了性能原因,視圖應(yīng)該被預(yù)渲染,應(yīng)該支持緩存。為了代碼重用,視圖系統(tǒng)依賴于模版系統(tǒng)和局部模版系統(tǒng)。</p><p><b>  結(jié)論</b></p><p>  基于上述的概述,我們建立一個(gè)堅(jiān)實(shí)的框架,能夠大幅減少web應(yīng)用程序開發(fā)所用的時(shí)間,能夠讓開發(fā)人員專注于應(yīng)用程序特定功能的開發(fā),而不是浪費(fèi)時(shí)

46、間在嘗試實(shí)現(xiàn)眾所周知的模式和實(shí)踐上。</p><p>  Web技術(shù)在很短的時(shí)間里走過了相當(dāng)長的路程,web應(yīng)用程序的市場也在不斷壯大。我們的系統(tǒng)能夠幫助開發(fā)人員提高他們的工作速度和質(zhì)量,為初學(xué)者和有經(jīng)驗(yàn)的用戶提供一個(gè)不錯(cuò)的工作框架和平臺(tái)。</p><p>  我們已經(jīng)開發(fā)了很多使用平臺(tái)提供的表單組件的應(yīng)用程序,這些應(yīng)用程序顯示出我們正在開發(fā)的系統(tǒng)正處于正確的軌道,同時(shí),告訴我們一個(gè)有價(jià)值

47、的信息就是,仍然有待提高。</p><p><b>  深入研究</b></p><p>  在這一領(lǐng)域,我們未來研究的重點(diǎn)是,提高對(duì)各種NoSQL系統(tǒng)的可用的支持,因?yàn)槲覀冋J(rèn)為這個(gè)領(lǐng)域?qū)?huì)是未來IT界最有前景的領(lǐng)域。同時(shí),我們的目標(biāo)是通過合并數(shù)據(jù)和視圖的緩存技術(shù)來提高渲染引擎的速度。</p><p>  另外重要的一步,就是創(chuàng)建開源社區(qū)項(xiàng)目,

48、以此來開發(fā)更多的測試用例的應(yīng)用程序,來生成有效的結(jié)果。這些結(jié)果將被用來進(jìn)一步優(yōu)化平臺(tái)。同時(shí),我們的目標(biāo)是通過開源社區(qū)支持包的開發(fā),以此來進(jìn)一步擴(kuò)展平臺(tái)。</p><p><b>  致謝</b></p><p>  這份資料是由the European Social Fund通過Sectorial Operational Program Human Resources

49、 Development 2007-2013資助的,項(xiàng)目POSDRU/107/1.5/S/77213和POSDRU/88/1.2/S/55287,從事于基于歐洲標(biāo)準(zhǔn)的跨領(lǐng)域的經(jīng)濟(jì)研究的博士。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] Trygve Reenska, http:// heim.ifi.uio.no / ~trygver/t

50、hemes/mvc/mvc-index.html.</p><p>  [2] Glenn E. Krasner, Stephen T. Pope, “A cookbook for using the model-view controller user interface paradigm in Smalltalk-80”, Journal of</p><p>  Object-Ori

51、ented Programming, vol. 1, no. 3, 1988, pp. 26-49.</p><p>  [3] Kevin McArthur, Pro PHP: Patterns, Frameworks, Testing and More, Apress, 2008.</p><p>  [4] A Freeman, S Sanderson, Pro ASP.NET MV

52、C 3 Framework, Apress, 2011.</p><p>  [5] W. J. Gilmore, Easy PHP Websites, Columbus, Ohio: W.J. Gilmore, LLC, 2009.</p><p>  [6] J. Galloway, P. Haack, B. Wilson ?i K. S. Allen, Professional AS

53、P.NET MVC 3, John Wiley & Sons, Inc., 2011.</p><p>  [7] http://www.agiledata.org/essays/impedanceMismatch.html</p><p>  [8] E. J. O'Neil, Object/relational mapping 2008: hibernate and t

54、he entity data model (edm), Proceedings of the 2008 ACM SIGMOD</p><p>  international conference on Management of data</p><p>  [9] J. Lerman, Programming Entity Framework, O’Reilly, 2010.</p

55、><p>  [10] http://www.rapid7.com/solutions/technology/web-application-security.jsp</p><p>  [11] J.D. Meier, Alex Mackman, Michael Dunner, Srinath Vasireddy, Ray Escamilla and Anandha Murukan, Imp

56、roving Web Application</p><p>  Security: Threats and Countermeasures, Microsoft Press, Iunie 2003.</p><p>  [12] http://www.w3.org/People/Berners-Lee/FAQ.html#etc</p><p>  [13] Bad

57、urowicz, M, “Mvc Architectural Pattern In Mobile Web-Applications”, Actual Problems Of Economics, 2011, pp.305-309.</p><p>  [14] Stratmann, E., & Ousterhout, J.,“Integrating Long Polling with an MVC Web

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論