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

        ?

        基于SSH框架的遠程教學(xué)平臺的實現(xiàn)

        2010-12-07 06:57:50劉英哲
        中國遠程教育 2010年17期
        關(guān)鍵詞:程序數(shù)據(jù)庫系統(tǒng)

        □ 劉英哲

        基于SSH框架的遠程教學(xué)平臺的實現(xiàn)

        □ 劉英哲

        本文介紹了目前主流遠程教學(xué)平臺存在的缺陷,并提出了以SSH框架技術(shù)為支撐構(gòu)架遠程教學(xué)平臺的設(shè)計方案。平臺系統(tǒng)在設(shè)計開發(fā)過程中使用了Maven進行項目管理,降低了系統(tǒng)各個模塊之間的耦合度,使得代碼的復(fù)用性大大提高,同時增強了系統(tǒng)的穩(wěn)定性和可擴展性。

        遠程教學(xué)平臺;Spring;Hibernate;Maven

        一、引言

        隨著信息技術(shù)特別是網(wǎng)絡(luò)技術(shù)和多媒體技術(shù)的發(fā)展,我國遠程教育發(fā)展已經(jīng)進入了新的歷史時期。構(gòu)建靈活開放的終身教育體系,大力發(fā)展現(xiàn)代遠程教育,建設(shè)以衛(wèi)星、電視和互聯(lián)網(wǎng)等為載體的遠程開放繼續(xù)教育及公共服務(wù)平臺[1],已經(jīng)成為未來十年遠程教育發(fā)展的奮斗目標(biāo)。作為遠程教育主要載體的遠程教學(xué)平臺因其設(shè)計上的缺陷而暴露出越來越多的問題,主要體現(xiàn)在三個方面:首先是教學(xué)平臺系統(tǒng)響應(yīng)速度較慢;其次是系統(tǒng)的界面較為單一,用戶缺乏學(xué)習(xí)興趣,導(dǎo)致訪問量降低;第三是系統(tǒng)在軟件設(shè)計上結(jié)構(gòu)較為簡單,各個部分代碼耦合性較強。這些實際存在的問題制約了當(dāng)前遠程教育的快速發(fā)展。

        二、遠程教學(xué)平臺設(shè)計缺陷成因分析

        目前,數(shù)以千萬計的用戶正借助網(wǎng)絡(luò)手段進行遠程學(xué)習(xí)。而隨著用戶數(shù)量的增加,教學(xué)平臺的并發(fā)訪問數(shù)也不斷攀升,這就導(dǎo)致單位時間內(nèi)需要同時處理的業(yè)務(wù)數(shù)量大幅度增加,因此要求教學(xué)平臺有更快的處理速度。分析表明,網(wǎng)絡(luò)程序處理速度的快慢主要依賴于數(shù)據(jù)庫訪問層部分,因為數(shù)據(jù)庫的訪問是一個較為復(fù)雜的流程,首先需要建立到數(shù)據(jù)庫的連接,然后提供用戶名密碼等待數(shù)據(jù)庫認(rèn)證,認(rèn)證成功后,要發(fā)送SQL語句等待數(shù)據(jù)庫語法校驗,成功后數(shù)據(jù)庫將符合要求的數(shù)據(jù)返回給網(wǎng)絡(luò)程序,最后還需要關(guān)閉數(shù)據(jù)庫的連接。因此,如何降低數(shù)據(jù)庫訪問次數(shù)成為網(wǎng)絡(luò)程序需要解決的關(guān)鍵問題。目前的主要解決方案有兩種:第一種就是建立集群,提高數(shù)據(jù)庫服務(wù)器的處理性能。這種方案的優(yōu)點是實行簡單,程序不需要修改大段的代碼,只要設(shè)置好數(shù)據(jù)庫的負(fù)載均衡就能夠完成。然而這種方案的缺點就是造價較高,需要耗費大量的資金。第二種方案就是在網(wǎng)絡(luò)程序的數(shù)據(jù)訪問層加上數(shù)據(jù)庫訪問緩存,將對數(shù)據(jù)庫訪問的結(jié)果緩存在內(nèi)存中,程序在需要數(shù)據(jù)的時候首先訪問緩存,如果有相應(yīng)的數(shù)據(jù)就不再連接數(shù)據(jù)庫,避免不必要的開銷。這個方案從根本上減少了數(shù)據(jù)庫訪問的次數(shù),不需耗費額外資金,同樣可以達到提升系統(tǒng)處理速度的目的。

        作為教學(xué)平臺組成部分的界面設(shè)計也是評估系統(tǒng)性能重要指標(biāo)之一。近年來各個網(wǎng)頁瀏覽器之間的標(biāo)準(zhǔn)逐漸統(tǒng)一,綜合使用CSS+HTML+JavaScript的XHTML技術(shù)逐漸流行,瀏覽器標(biāo)準(zhǔn)中對文檔對象模型的支持還有異步加載XML的XMLHttpRequest對象使得異步加載網(wǎng)頁成為了可能,同時減少了服務(wù)器和瀏覽器之間的通訊量,使程序依舊能維持原來的功能。

        目前教學(xué)平臺的后臺代碼設(shè)計中經(jīng)常摻雜著各種邏輯業(yè)務(wù)的控制邏輯甚至是直接訪問數(shù)據(jù)庫的語句,這也是系統(tǒng)整體性能下降的因素之一。復(fù)雜的邏輯設(shè)計使功能固化嚴(yán)重,結(jié)構(gòu)難以修改,如果想要添加或者修改功能,就必須要讀懂頁面層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層的代碼。隨著項目規(guī)模變大,修改的難度也會大大增加。

        通過以上分析,理想的遠程教學(xué)平臺應(yīng)能夠同時滿足以下幾個條件:模塊化,即將程序劃分成若干模塊,各個模塊之間的職責(zé)清晰,使程序結(jié)構(gòu)一目了然;界面層既能支持傳統(tǒng)的網(wǎng)頁交互式瀏覽,也能提供基于AJAX的異步瀏覽模式;程序可擴展性強,能夠根據(jù)實際需要增加或修改流程。

        三、基于SSH框架技術(shù)的遠程教學(xué)平臺的實現(xiàn)

        (一)主要技術(shù)介紹

        1.Maven

        Maven是基于項目對象模型(POM),可以通過一小段描述信息來管理項目的構(gòu)建、報告和文檔的軟件項目管理工具。同一般的自動編譯軟件相比,它主要有以下兩個優(yōu)點。

        (1) Maven具有默認(rèn)的項目文件結(jié)構(gòu)的規(guī)則,不需要編寫額外的配置文件來說明如何編譯、測試和對項目代碼進行打包。由于項目都遵循了默認(rèn)的規(guī)則,程序員可以在較短的時間內(nèi)熟悉項目的規(guī)則,而且任何IDE都可以對項目進行編輯,程序員可以使用各自擅長的編程軟件。

        (2)Maven對項目進行建模,將項目的構(gòu)建劃分為若干生命周期,不需要對項目進行任何說明,只需要簡單的指令就可以自動進行代碼測試、項目打包和自動部署等功能。

        本文的系統(tǒng)使用了Maven多模塊設(shè)計方式,將系統(tǒng)不同的功能劃分成單獨的項目,各個項目之間的依賴由Maven進行維護,這就在更大的程度上隔離了各個模塊的代碼,使得項目維護以及單元測試更加快捷方便。

        2.MVC結(jié)構(gòu)

        系統(tǒng)主體結(jié)構(gòu)采用MVC架構(gòu),MVC指的是模型(Model)、視圖(View)和控制器(Controller)三個部分。這三個部分的聯(lián)系方式如圖1所示。

        使用MVC的目的是將模型和視圖的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。在本系統(tǒng)中,為了今后能夠開發(fā)出Web Service等其他新的表現(xiàn)形式,最便捷的方式就是能夠重用原有的業(yè)務(wù)邏輯和數(shù)據(jù)訪問代碼,如果系統(tǒng)使用了MVC的架構(gòu),服務(wù)層和數(shù)據(jù)表現(xiàn)層是相互分離的,那么就可以方便地在Web Service中調(diào)用原來的服務(wù)層代碼,大大減少了重復(fù)開發(fā)工作。

        3.SSH框架

        SSH是Struts+Spring+Hibernate 3種技術(shù)的有機融合,是目前應(yīng)用最廣泛的J2EE架構(gòu)[2]。Struts是目前較為流行的基于MVC的框架,它主要充當(dāng)了控制器的角色,負(fù)責(zé)接收用戶的輸入、調(diào)用服務(wù)層的方法后將得到的結(jié)果返回給數(shù)據(jù)表現(xiàn)層。Hibernate充當(dāng)了模型的角色,它使用XML文件將數(shù)據(jù)庫的字段和實體類字段之間的關(guān)系對應(yīng)起來,將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)在程序中直接變?yōu)槌绦蛑械膶ο?。除此以外,Hibernate提供了功能強大的事務(wù)管理和緩存機制,教學(xué)平臺的業(yè)務(wù)邏輯層通過Hibernate的緩存訪問數(shù)據(jù)可以減少數(shù)據(jù)庫的開銷,提高程序的處理速度。Spring在程序中充當(dāng)了裝配工廠的角色,通過XML配置文件將各個子層的實例組織起來,將各個子層之間的依賴關(guān)系集中表現(xiàn)在配置文檔中,使得系統(tǒng)結(jié)構(gòu)更加清晰合理。

        (二)遠程教學(xué)平臺系統(tǒng)模塊設(shè)計

        遠程教學(xué)系統(tǒng)按用戶身份不同主要分為兩大子系統(tǒng):教師子系統(tǒng)和學(xué)生子系統(tǒng)。教師子系統(tǒng)為教師提供了日常教學(xué)所需要的功能。教師通過資源管理模塊可以查看自己所負(fù)責(zé)課程的所有資源,對過時的資源進行及時的更新或刪除,使學(xué)生隨時可以接觸到該門學(xué)科的最新進展。相對于傳統(tǒng)的以課本為主的教學(xué)方式,教師可以在教學(xué)平臺上隨時添加各種類型的文本、圖片甚至視頻文件來提高學(xué)生學(xué)習(xí)的興趣,進而加深學(xué)生對該課程的理解。教學(xué)管理界面不僅為教師提供了學(xué)生在學(xué)習(xí)平臺上的學(xué)習(xí)記錄,還提供教師的行為記錄,方便教師隨時調(diào)整教學(xué)進度。教師在論壇中可以發(fā)起討論,和學(xué)生互動,解答學(xué)生在學(xué)習(xí)中遇到的問題。

        學(xué)生功能包含資源瀏覽、資源檢索和論壇應(yīng)用。學(xué)生除了可以按課程檢索到相應(yīng)的資源,還可以通過資源訪問量、資源最近更新日期等條件檢索自己感興趣的資源。學(xué)生可以在論壇中和其他同學(xué)、老師一起討論課程中的問題,發(fā)表自己的觀點。

        系統(tǒng)還包含了一些教師與學(xué)生共用的功能,包括收藏夾、個人信息維護、站內(nèi)所搜等功能,便于用戶更方便的使用系統(tǒng)其他功能。圖2分別為教師子系統(tǒng)和學(xué)生子系統(tǒng)模塊設(shè)計邏輯圖。

        (三)遠程教學(xué)平臺系統(tǒng)架構(gòu)設(shè)計

        本系統(tǒng)采用MVC架構(gòu),因此在設(shè)計上被劃分成若干子層,各個子層之間相互獨立,使用接口對實現(xiàn)的細節(jié)進行封裝。系統(tǒng)分層示意圖如圖3所示。

        系統(tǒng)在實現(xiàn)時使用Maven進行項目管理,將每一層都劃分成獨立的項目,然后在各個項目之間建立依賴關(guān)系。各個子項目之間的關(guān)系如圖3所示。

        Maven將系統(tǒng)抽象成為項目模型(POM),首先建立一個父項目,對各個項目共用的屬性進行匯總,例如測試函數(shù)庫、編譯器設(shè)置等。配置文件部分代碼如下:

        配置文件向Maven闡述了該項目所需要的函數(shù)庫的名稱和版本,以及該函數(shù)庫的作用。

        系統(tǒng)的主要模塊從下至上分別為數(shù)據(jù)持久層、系統(tǒng)服務(wù)層、界面表現(xiàn)層。數(shù)據(jù)持久層負(fù)責(zé)與數(shù)據(jù)庫進行交互,將讀取到的關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)轉(zhuǎn)換成系統(tǒng)能夠處理的業(yè)務(wù)對象。這一部分主要使用了Hibernate進行對象關(guān)系映射(ORM),用XML文檔將數(shù)據(jù)庫的字段映射為各個實體類的屬性。系統(tǒng)服務(wù)層調(diào)用數(shù)據(jù)持久層的服務(wù)并使用各種業(yè)務(wù)流程處理得到的數(shù)據(jù),服務(wù)層也承擔(dān)著負(fù)責(zé)劃分事務(wù)界限的任務(wù)。數(shù)據(jù)服務(wù)層將處理好的數(shù)據(jù)提交到界面表示層,表示層只負(fù)責(zé)將數(shù)據(jù)顯示在模板頁面上和將用戶輸入的數(shù)據(jù)傳遞到數(shù)據(jù)服務(wù)層上,它不對數(shù)據(jù)進行任何處理。

        下面以管理員模塊中用戶管理系統(tǒng)為例,具體分析Struts+Hibernate+Spring多框架在系統(tǒng)中的應(yīng)用。

        此部分主要功能是對用戶進行增加、刪除以及修改權(quán)限。例如要增加一個系統(tǒng)用戶,輸入用戶信息并提交后,通過Struts調(diào)用AddUserAction的execute方法,業(yè)務(wù)層Service接口的實現(xiàn)類,再間接調(diào)用DAO接口的實現(xiàn)類。DAO接口的實現(xiàn)類封裝了通過Hibernate訪問數(shù)據(jù)表對應(yīng)持久化對象的CRUD操作。以下給出Spring的applicationContext.xml配置文件部分代碼段:

        通過以上配置代碼,spring將負(fù)責(zé)界面層的strutsAction和負(fù)責(zé)服務(wù)層的userSerivces聯(lián)系在了一起,strutsAction在自己的代碼中設(shè)置了userServices這一屬性,由Spring進行依賴注入。

        Struts采用struts-config.xml作為配置文件。在這個配置文件中,struts配置了Spring組件DelegatingRequestProcessor來讓Spring托管各個組件。代碼如下:

        配置文件剩下的部分完全不需要再做其他改動,將Spring帶來的影響降到了最低。

        四、總結(jié)

        當(dāng)前,基于Struts、Hibernate和Spring多框架整合方案及相關(guān)技術(shù)在一些系統(tǒng)項目開發(fā)得到廣泛應(yīng)用,其原因是這3個框架均為開源性框架,有著豐富而且免費的技術(shù)文檔資料和開發(fā)背景;架構(gòu)的整體設(shè)計采用了MVC模式,把表示層與業(yè)務(wù)層進行了很好的分離。

        由于使用maven進行項目管理,系統(tǒng)可以方便的升級自己的函數(shù)庫并重新打包部署到遠程服務(wù)器上。整個項目由于進行了適當(dāng)?shù)姆謱?,項目對分布式開發(fā)有良好的支持。通過適當(dāng)?shù)母膭?,系統(tǒng)即可以支持遠程函數(shù)調(diào)用(RMI),通過遠程函數(shù)的方式,系統(tǒng)可以和其他的程序進行通訊,而不再像舊版本程序直接共享數(shù)據(jù)庫。這樣做使得數(shù)據(jù)安全性大大增加,并且將教學(xué)系統(tǒng)的可擴展性提升到了一個新的高度。

        [1]國家中長期教育改革和發(fā)展規(guī)劃綱要(2010-2020年).

        [2]楊海斌.基于SSH框架的高校網(wǎng)站群內(nèi)容管理系統(tǒng)設(shè)計[J].軟件導(dǎo)刊,2009,(9).

        [3]祝智庭.教育信息化:教育技術(shù)的新高地[J].中國電化教育,2001,(2):5-8.

        [4]王磊杰,崔軍波,韓紅宇等.Java EE開發(fā)指南-基于Spring/Struts/Hibernate的實現(xiàn)[M].北京:北京人民郵電出版社,2007.

        [5]李剛.輕量級J2EE企業(yè)應(yīng)用實戰(zhàn):Struts+Spring+Hibernate整合開發(fā)[M].北京:電子工業(yè)出版社,2007.

        [6]Maven http://maven.a(chǎn)pache.org[EB/OL].

        2010-05-30

        劉英哲,工程師,學(xué)士,天津廣播電視大學(xué)現(xiàn)代教育技術(shù)中心(300191)。

        責(zé)任編輯 柯 南

        G40-057

        B

        1009—458x(2010)09—0069—04

        猜你喜歡
        程序數(shù)據(jù)庫系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        試論我國未決羈押程序的立法完善
        “程序猿”的生活什么樣
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        英國與歐盟正式啟動“離婚”程序程序
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        老师开裆丝袜喷水视频| 日本一区二区三区的免费视频观看| h视频在线观看视频在线| 亚洲av精二区三区日韩| 成人大片在线观看视频| 免费a级毛片无码a∨蜜芽试看| 老师脱了内裤让我进去| 国产成人亚洲综合无码精品| 美女草逼视频免费播放| 国产白浆一区二区三区性色| 国产精品成人观看视频| 亚洲精品美女久久久久久久 | 五十路一区二区中文字幕| 亚洲精品无码久久久久y| 国产欧美日韩综合精品二区| 狠狠丁香激情久久综合| 国产一区二区三区成人av| 在线观看人成视频免费| 亚洲 欧美精品suv| 男人深夜影院无码观看| 国产一区二区三区青青草| 精品视频无码一区二区三区| 亚洲h视频| 日韩精品中文字幕人妻中出| 在线观看亚洲第一黄片| 中文日韩亚洲欧美制服| 91精品国产免费久久久久久青草 | 国产精品女丝袜白丝袜美腿| 国产爆乳无码一区二区麻豆| 又爆又大又粗又硬又黄的a片| 午夜在线观看有码无码| 精品人妻一区二区三区视频| 丰满人妻一区二区三区视频53| 久久久久成人亚洲综合精品 | 久久综合视频网站| 国产精品国产三级国产专区50| 国产三级精品三级| 国产福利午夜波多野结衣| 亚洲国产成人av第一二三区| 无套无码孕妇啪啪| 国语少妇高潮对白在线|