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

        ?

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

        2010-12-07 06:57:50劉英哲
        中國遠程教育 2010年17期
        關鍵詞:遠程教學配置文件代碼

        □ 劉英哲

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

        □ 劉英哲

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

        遠程教學平臺;Spring;Hibernate;Maven

        一、引言

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

        二、遠程教學平臺設計缺陷成因分析

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

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

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

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

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

        (一)主要技術介紹

        1.Maven

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

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

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

        本文的系統(tǒng)使用了Maven多模塊設計方式,將系統(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è)務邏輯和數(shù)據(jù)訪問代碼,如果系統(tǒng)使用了MVC的架構(gòu),服務層和數(shù)據(jù)表現(xiàn)層是相互分離的,那么就可以方便地在Web Service中調(diào)用原來的服務層代碼,大大減少了重復開發(fā)工作。

        3.SSH框架

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        四、總結(jié)

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

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

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

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

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

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

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

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

        2010-05-30

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

        責任編輯 柯 南

        G40-057

        B

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

        猜你喜歡
        遠程教學配置文件代碼
        提示用戶配置文件錯誤 這樣解決
        ??漆t(yī)師規(guī)范化培訓遠程教學督導的思考與啟示
        “對截止日期更通融些”:教師們從上輪遠程教學中學到了什么
        英語文摘(2021年5期)2021-07-22 08:46:14
        搭建簡單的Kubernetes集群
        互不干涉混用Chromium Edge
        忘記ESXi主機root密碼怎么辦
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        亚洲av精品一区二区| 亚洲成a人片在线观看天堂无码| 女人av天堂国产在线| 正在播放老肥熟妇露脸| 亚洲中文字幕无码永久在线| 国产亚洲欧美另类久久久| 国产一区二区三区护士| 无码中文字幕人妻在线一区| 亚洲国产无套无码av电影| 青青草视频华人绿色在线| 国产又湿又爽又猛的视频| 丝袜美腿亚洲一区二区| 久久综合久久鬼色| 国产目拍亚洲精品一区二区| 中文字幕视频一区懂色| 最新中文字幕亚洲一区| 色偷偷av一区二区三区| 日本黄页网站免费大全| 久久91精品国产91久久麻豆| 国产三级黄色大片在线免费看| 国产精品兄妹在线观看麻豆| 国产精品原创巨作AV女教师| 少妇被爽到自拍高潮在线观看| 亚洲av不卡一区男人天堂| 一边吃奶一边摸做爽视频| 成黄色片视频日本秘书丝袜| 女同另类激情在线三区| 一区二区三区国产色综合| 7m精品福利视频导航| 久久99国产精品尤物| 色婷婷精久久品蜜臀av蜜桃| 亚洲gay片在线gv网站| 久久久久国产一区二区三区| 国产91色在线|亚洲| 日韩日本国产一区二区| 国产av天堂亚洲国产av天堂| 欧美性videos高清精品| 精品久久久亚洲中文字幕| 亚洲日本国产精品久久| 久久久精品456亚洲影院| 亚洲嫩草影院久久精品|