999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Sakai開(kāi)源學(xué)習(xí)平臺(tái)的實(shí)現(xiàn)技術(shù)分析

2009-04-29 00:00:00
電腦知識(shí)與技術(shù) 2009年26期

摘要:Sakai是國(guó)外著名大學(xué)合作開(kāi)發(fā)的一款優(yōu)秀學(xué)習(xí)平臺(tái)。它充分體現(xiàn)了自由、合作、分享等開(kāi)源精神。文中對(duì)Sakai學(xué)習(xí)平臺(tái)的實(shí)現(xiàn)技術(shù)進(jìn)行了簡(jiǎn)要分析,主要包括基本開(kāi)發(fā)環(huán)境、項(xiàng)目管理、數(shù)據(jù)庫(kù)技術(shù)、表現(xiàn)層技術(shù)以及Sakai的工具等。

關(guān)鍵詞:Sakai;開(kāi)源;學(xué)習(xí)平臺(tái);Maven;數(shù)據(jù)庫(kù);表現(xiàn)層技術(shù);工具

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)26-7353-03

Technical Analysis of Sakai Open Source LMS

HE Chao

(East China Normal University, Shanghai 200062, China)

Abstract: Sakai is a good LMS, developed by some famous foreign University. It fully embodies the spirit of open source: freedom, cooperation and sharing. It is briefly analyzed the programming technology used in the Sakai open source LMS in this paper, including the development environment, project management, database technology, presentation layer technology, as well as the Sakaitools.

Key words: Sakai; open source; LMS; database; presentation layer; tools

1 Sakai學(xué)習(xí)平臺(tái)簡(jiǎn)介

隨著社會(huì)開(kāi)源軟件的不斷發(fā)展,開(kāi)源軟件以其獨(dú)特的優(yōu)勢(shì)(免費(fèi)使用,維護(hù)費(fèi)用低;靈活、可移植性好等)贏得了越來(lái)越多的用戶的青睞。近年來(lái),在教育領(lǐng)域內(nèi)也涌現(xiàn)出了許多優(yōu)秀的開(kāi)源軟件,例如:Moodle、Sakai等等。其中,Sakai是由美國(guó)印地安那大學(xué)、密西根大學(xué)、斯坦福大學(xué)和麻省理工學(xué)院于2004年共同發(fā)起的一項(xiàng)開(kāi)源CMS計(jì)劃,它得到了梅隆基金的支持。Sakai項(xiàng)目的主要目標(biāo)是開(kāi)發(fā)Sakai程序的系統(tǒng)架構(gòu),將之與已有各種CMS工具和組件整合為一體。這些工具與組件既可用于課程管理,同時(shí)也可作為原有CMS模型的擴(kuò)展插件。更為重要的是Sakai也將支持研究性協(xié)作學(xué)習(xí)。

作為一款開(kāi)源的軟件,要得到Sakai平臺(tái)的代碼是很容易的,然而,要真正的用好Sakai平臺(tái),我們還必須得對(duì)其進(jìn)行一些本地化工作,有時(shí)候還需要將一些已有的系統(tǒng)整合到Sakai平臺(tái)中去,這就要求我們對(duì)Sakai系統(tǒng)的實(shí)現(xiàn)技術(shù)有一定的了解了。在本文中將嘗試對(duì)Sakai系統(tǒng)的一些實(shí)現(xiàn)技術(shù)進(jìn)行分析,希望能對(duì)Sakai的應(yīng)用推廣起到一定的作用。

2 Sakai系統(tǒng)的實(shí)現(xiàn)技術(shù)分析

Sakai是一款使用Java語(yǔ)言開(kāi)發(fā)的B/S模式的平臺(tái),它很好的實(shí)現(xiàn)了各模塊的組件化,以及模塊之間的松散耦合,它的實(shí)現(xiàn)技術(shù)中實(shí)現(xiàn)了許多現(xiàn)在流行的技術(shù),例如:Spring,Hibernate,Velocity,JSF等等,本文將在Sakai2.5版本的基礎(chǔ)上進(jìn)行分析。

2.1 Sakai的基本開(kāi)發(fā)環(huán)境

表1為Sakai的基本開(kāi)發(fā)環(huán)境。

2.2 Sakai的項(xiàng)目管理與構(gòu)建

對(duì)于一個(gè)大型項(xiàng)目,特別是由眾多開(kāi)發(fā)人員分別開(kāi)發(fā)的項(xiàng)目來(lái)說(shuō),一個(gè)優(yōu)秀的項(xiàng)目管理與構(gòu)建工具是非常重要的,它可以使項(xiàng)目管理與構(gòu)建變得簡(jiǎn)單。在Sakai2.5中,使用的項(xiàng)目管理與構(gòu)建工具是Maven2,它是由apache軟件基金會(huì)支持的一個(gè)開(kāi)源項(xiàng)目。使用Maven,我們就只需要在自己的項(xiàng)目中維護(hù)一個(gè)pom.xml文件即可,該文件是Maven的核心文件,它指示了Maven如何工作。這使得Maven的組件和工具開(kāi)發(fā)人員只需要關(guān)注自己模塊的開(kāi)發(fā)與部署即可,極大的減少了工作量。

在Sakai的構(gòu)建中常用的Maven命令如表2[2]。

此外,要使用Maven正確的構(gòu)建Sakai,還需要在系統(tǒng)環(huán)境變量中添加如下參數(shù):MAVEN_OPTS=-Xms256m-Xmx512m-XX:PermSize=64m -XX:MaxPermSize=128m,該參數(shù)指定了Maven在構(gòu)建時(shí)所需要的最小內(nèi)存和最大內(nèi)存。

2.3 Sakai的數(shù)據(jù)庫(kù)技術(shù)

Sakai使用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)持久信息,例如注冊(cè)的用戶信息,建立的站點(diǎn)的信息以及各種資源的信息等。Sakai支持的數(shù)據(jù)庫(kù)包括Hypersonic SQL(推薦只在開(kāi)發(fā)時(shí)使用)、Mysql和Oracle[3],此外,對(duì)于Mssql、db2,Sakai也提供了很好的支持。

通過(guò)分析代碼我們發(fā)現(xiàn),Sakai的數(shù)據(jù)庫(kù)技術(shù)的核心代碼是在db、db-impl和db-util三個(gè)模塊中實(shí)現(xiàn)的。其中,db模塊提供了api接口,而在db-impl中則是這些接口的基本實(shí)現(xiàn),在其它模塊中進(jìn)行數(shù)據(jù)庫(kù)操作時(shí)主要會(huì)使用到這兩個(gè)模塊的代碼。

在db-impl模塊中提供了兩種訪問(wèn)數(shù)據(jù)庫(kù)的方式:a.使用Hibernate進(jìn)行數(shù)據(jù)庫(kù)操作;b.不是用Hibernate,直接使用jdbc進(jìn)行數(shù)據(jù)庫(kù)操作。使用前一種方式進(jìn)行數(shù)據(jù)持久化,開(kāi)發(fā)者只需要提供Hibernate映射文件以及Pojo對(duì)象,然后通過(guò)配置Spring的配置文件即可完成。對(duì)于后一種方式,相對(duì)要復(fù)雜許多,需要開(kāi)發(fā)者自己進(jìn)行sql語(yǔ)句的編寫以及查詢結(jié)果的處理,db-impl模塊只提供連接和管理以及查詢的實(shí)際執(zhí)行,使用此種方法的好處是sql語(yǔ)句的編寫可以進(jìn)行優(yōu)化,更加靈活。

在Sakai的核心集中,使用第二種方式的情況較多,然而在自己開(kāi)發(fā)Sakai工具的時(shí)候使用第一種方式更加簡(jiǎn)單,而且難度較低,這也是Subclipse(Sakai的Eclipse插件)中推薦使用的方式。

2.4 Sakai的表現(xiàn)層技術(shù)

表現(xiàn)層技術(shù)就是用于生成用戶界面的技術(shù),Sakai中使用到的表現(xiàn)層技術(shù)主要包括Java Servlet、JSP、JSF、RSF和Velocity這幾種。這幾種技術(shù)各有其優(yōu)缺點(diǎn)[4]:

1)Java Servlet

① 所有的事情都必須手動(dòng)處理,開(kāi)發(fā)者難以用它進(jìn)行工作;

② 代碼和HTML混合在同一個(gè)Java文件中,設(shè)計(jì)難以進(jìn)行頁(yè)面設(shè)計(jì);

③ 沒(méi)有真正的和Sakai集成(但是可以使用)。

2)JSP

① 對(duì)于開(kāi)發(fā)者來(lái)說(shuō),這是一種極其容易入門的技術(shù),難度低;

② 代碼和用戶界面完全混合在同一個(gè)文件中,沒(méi)有任何的分離;

③ 沒(méi)有真正的和Sakai集成(但是可以使用)。

3)JSF

① 有很高的學(xué)習(xí)門檻并且難以使用;

② 在模板中并未使用HTML并且可以在UI中編寫代碼,UI設(shè)計(jì)者難以使用;

③ 很好的集成到了Sakai中,并且當(dāng)前仍在持續(xù)更新。

4)RSF

① 有一定的學(xué)習(xí)難度,但熟悉之后很容易使用;

② 代碼和UI很好的被分離,而且使用純粹的XHTML模板;

③ 當(dāng)前和Sakai集成的很一般,但是仍在快速發(fā)展中。

5)Velocity

① 有很好的文檔,開(kāi)發(fā)者可以很容易的入門;

② 代碼分離程度一般,UI設(shè)計(jì)者使用其工作不是很容易;

③ 當(dāng)前已經(jīng)很好的集成到Sakai中;

④ 這是當(dāng)前Sakai中使用最多的表現(xiàn)層技術(shù)。

2.5 Sakai的國(guó)際化與本地化

國(guó)際化指的是設(shè)計(jì)和編寫應(yīng)用程序以便可以在全球或多國(guó)環(huán)境中使用的過(guò)程。國(guó)際化程序能夠支持不同的語(yǔ)言以及不同格式的日期、時(shí)間、貨幣和其它值,而無(wú)須軟件修改。通常,我們將國(guó)際化(internationalization)簡(jiǎn)寫為 I18N,原因是 internationalization 一詞開(kāi)始的I和最后的N之間有18個(gè)字母。

Sakai的國(guó)際化利用了Java語(yǔ)言提供的基于unicode的國(guó)際化支持。通過(guò)Locale對(duì)象定義地區(qū)、語(yǔ)言、操作系統(tǒng)等信息,調(diào)用ResourceBundle的getBundle方法實(shí)現(xiàn)資源文件的數(shù)據(jù)綁定,輕松本地化不同的語(yǔ)言版本。

這樣,在對(duì)Sakai進(jìn)行本地化(漢化)時(shí),主要的工作就是編寫屬于自己語(yǔ)言的資源文件了。通常,Sakai中的資源文件位于bundles目錄下,且按照如下規(guī)則命名:文件名+國(guó)家地區(qū)編碼+.properties。

到目前為止,Sakai支持的語(yǔ)言與地區(qū)包括:English (US UK), Japanese, Korean, Dutch, Simplified Chinese, Spanish, French (France Canada), Catalan, Swedish, Arabic, Russian, Portuguese (Portugal Brazil)[5]。

2.6 Sakai的工具(tools)

Sakai的工具指的是那些用來(lái)生成用戶界面(發(fā)送到瀏覽器的html或者可以通過(guò)瀏覽器下載的任意媒體類型的字節(jié)流)。Sakai的工具可以被多種導(dǎo)航系統(tǒng)調(diào)用,通常作為站點(diǎn)的一個(gè)功能模塊呈現(xiàn)給用戶,另外,一個(gè)工具還可以作為“幫助者(helper)”被其它的工具調(diào)用。通常,任何基于Servlets或者JSP或者JSF技術(shù)的web應(yīng)用都可以經(jīng)過(guò)少量的修改成為一個(gè)Sakai工具。這主要包括兩個(gè)步驟:

1)編寫工具注冊(cè)配置文件

這個(gè)工具注冊(cè)配置文件是一個(gè)xml文檔,主要包括:工具的id(用于引用該工具,必須在系統(tǒng)中是唯一的);工具的默認(rèn)配置信息和其它一些會(huì)被工具調(diào)用者使用到的元數(shù)據(jù)信息。假如現(xiàn)在有一個(gè)名為TaskList的web應(yīng)用,那么該文件必須被放置在TaskList/tools目錄下,通常采用和工具id相同的名稱來(lái)命名。下面是一個(gè)典型的工具注冊(cè)配置文件的內(nèi)容:

accessSecurity=\"tool\">

其中,tool元素的id屬性的值就是該工具在Sakai中的唯一id;category元素用于將工具分類,指明其可使用的站點(diǎn)類型,在上面的例子中,該工具將在course和project類型的站點(diǎn)內(nèi)使用;configuration元素用于配置一些額外的信息。

2) 修改web.xml配置文件

任何Sakai工具都必須包含ToolListener(Sakai用來(lái)發(fā)現(xiàn)并處理注冊(cè)配置文件的監(jiān)聽(tīng)器類),具體的操作只需要將如下代碼添加了web.xml配置文件里即可。其中org.sakaiproject.util.ToolListener是tool-registration模塊提供的。該類將在Sakai工具啟動(dòng)時(shí)被調(diào)用,負(fù)責(zé)工具的注冊(cè)以及一些參數(shù)的初始化工作。

(in file /WEB-INF/web.xml in webapp TaskList.war)

org.sakaiproject.util.ToolListener

通過(guò)以上工作,一個(gè)web應(yīng)用就被發(fā)布成為Sakai系統(tǒng)的工具了。

3 結(jié)束語(yǔ)

Sakai是一個(gè)復(fù)雜的、功能強(qiáng)大的、開(kāi)源的教學(xué)管理平臺(tái)。它是由許多的國(guó)外的著名大學(xué)共同開(kāi)發(fā)的,充分的體現(xiàn)了開(kāi)放、自由、協(xié)作的思想。通過(guò)對(duì)其使用的實(shí)現(xiàn)技術(shù)進(jìn)行分析,我們可以從中學(xué)習(xí)到許多很好的教學(xué)平臺(tái)設(shè)計(jì)思想和代碼實(shí)現(xiàn)方法,而且,只有真正的理解了其實(shí)現(xiàn)技術(shù),才能更好的促進(jìn)Sakai平臺(tái)的本地化,才能更好的用好這個(gè)平臺(tái)。本文正是基于這樣一種想法,對(duì)Sakai的部分實(shí)現(xiàn)技術(shù)進(jìn)行了一些介紹,還有許多未能涉及的地方與不足之處,還需要進(jìn)一步的研究。

參考文獻(xiàn):

[1] Development Environment Setup Walkthrough[EB/OL].http://confluence.sakaiproject.org/display/BOOT/Development+Environment+Setup+Walkthrough.

[2] Using Maven 2.x to build and deploy Sakai[EB/OL].http://confluence.sakaiproject.org/display/BOOT/Using+Maven+2.x+to+build+and+deploy+Sakai.

[3] Database Documentation[EB/OL].http://confluence.sakaiproject.org/display/DOC/Database+Documentation.

[4] Comparing Sakai Display Technologies[EB/OL].http://confluence.sakaiproject.org/display/BOOT/Comparing+Sakai+Display+Technologies.

[5] Internationalization (I18N) Localization (L10N)[EB/OL].http://confluence.sakaiproject.org/display/I18N/Home.

主站蜘蛛池模板: 欧美成人午夜视频免看| 欧美亚洲激情| 91亚洲国产视频| 九九热这里只有国产精品| 小说区 亚洲 自拍 另类| 亚洲91在线精品| 最新日本中文字幕| 欧美成人一区午夜福利在线| 91色在线观看| 亚洲大学生视频在线播放| 亚洲欧洲日产国码无码av喷潮| 欧美成人手机在线观看网址| 成年午夜精品久久精品| 成人一级免费视频| 成年午夜精品久久精品| 国产18页| 视频一区亚洲| 亚洲水蜜桃久久综合网站 | 亚洲热线99精品视频| 黄片在线永久| 激情六月丁香婷婷| 久草视频一区| 波多野结衣久久高清免费| 久久综合AV免费观看| 久久99国产综合精品1| 色婷婷成人| 精品国产一二三区| 97精品伊人久久大香线蕉| 又爽又黄又无遮挡网站| 亚洲 欧美 日韩综合一区| 久久免费成人| 国产精品 欧美激情 在线播放| 亚洲国产成人麻豆精品| 亚洲人人视频| 国产午夜在线观看视频| 久久精品66| 日本欧美精品| 国产一区自拍视频| 狠狠v日韩v欧美v| 亚洲天堂免费| 一本无码在线观看| 色欲不卡无码一区二区| 亚洲动漫h| 亚洲无码在线午夜电影| 黑色丝袜高跟国产在线91| 久久女人网| 国产不卡在线看| a级高清毛片| 国产视频你懂得| 99人妻碰碰碰久久久久禁片| 全部免费毛片免费播放| 欧美午夜视频在线| 亚洲综合精品香蕉久久网| 成年A级毛片| av尤物免费在线观看| 午夜国产大片免费观看| 亚洲欧美另类日本| 成人夜夜嗨| 亚洲欧洲日产国产无码AV| 91小视频在线播放| 日韩在线欧美在线| 欧美色图第一页| 人人91人人澡人人妻人人爽| 国产成人区在线观看视频| 成人韩免费网站| 欧美亚洲日韩中文| 无码视频国产精品一区二区| 黄色污网站在线观看| 国产你懂得| 色婷婷色丁香| 大乳丰满人妻中文字幕日本| 少妇被粗大的猛烈进出免费视频| 天天躁夜夜躁狠狠躁图片| 亚洲激情99| 免费一级全黄少妇性色生活片| 情侣午夜国产在线一区无码| 欧美国产视频| 国产SUV精品一区二区6| 丝袜美女被出水视频一区| 欧美一级高清片欧美国产欧美| 中文字幕日韩视频欧美一区| 国产对白刺激真实精品91|