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

基于面向服務(wù)構(gòu)架的在線學(xué)習(xí)系統(tǒng)模塊整合

2009-07-02 05:29:48葉海松
現(xiàn)代教育技術(shù) 2009年8期

葉海松

【摘要】文章分析了軟件整合的需求和面向服務(wù)構(gòu)架的特點,論述了如何使用基于面向服務(wù)構(gòu)架的方法對軟件進(jìn)行模塊級別的整合,以達(dá)到模塊重用和降低開發(fā)成本的目標(biāo);并通過在Moodle的資源頁面中嵌入簡單的代碼調(diào)用另一平臺的評分模塊服務(wù),提供了面向服務(wù)構(gòu)架的整合實例。

【關(guān)鍵詞】軟件整合;面向服務(wù)構(gòu)架;學(xué)習(xí)管理系統(tǒng);Web服務(wù)

【中圖分類號】G40-057 【文獻(xiàn)標(biāo)識碼】A 【論文編號】1009—8097(2009)08—0102—03

一 整合問題的產(chǎn)生

現(xiàn)代社會對軟件的需求不斷提高,單個的復(fù)雜系統(tǒng)所消耗的人力和物力資源急劇上升。為了對付持續(xù)改變的需求,軟件變得越來越復(fù)雜,而軟件使用者和開發(fā)者的持續(xù)投入,使得軟件的成本越來越高。在這樣的背景下,軟件整合,即用多個小系統(tǒng)的整合來代替一個超級復(fù)雜的單一系統(tǒng)的方法逐漸受到人們的重視[1]。

在上海師范大學(xué)教育技術(shù)系實施的“現(xiàn)代教育技術(shù)網(wǎng)絡(luò)課程平臺”項目中就遇到了這種情況。在有限的經(jīng)費(fèi)投入下,項目使用開源的學(xué)習(xí)管理系統(tǒng)Moodle在構(gòu)建了一個在線學(xué)習(xí)平臺,Moodle能夠滿足我們大部分的需求,包括課程管理、用戶管理、資源管理、在線測試和使用報告等。但在用戶需求中有一條在Moodle的核心組件沒有提供,即對課程資源的投票評價功能(如圖1),項目要求能夠讓用戶對資源進(jìn)行無記名的評分,然后提交結(jié)果,同時會看到總體的評分情況。

這個功能在另一套成熟資源庫平臺中,已有現(xiàn)成的功能模塊。但是這個資源庫并不是用PHP來實現(xiàn)的,而是使用ASP.NET實現(xiàn)的。如果按照Moodle的模塊設(shè)計接口,沒有辦法直接將已有的ASP.NET的模塊嵌入Moodle[2]。因此需要尋找一種能夠重復(fù)使用既有代碼又能在兩個系統(tǒng)中保持松耦合關(guān)聯(lián)的方法,讓 Moodle能夠完全調(diào)用原有的ASP.NET的模塊,只增加少量的PHP代碼來實現(xiàn)整合工作。并且新增加的功能不影響原系統(tǒng)的穩(wěn)定性,即便新功能失效也不影響系統(tǒng)的運(yùn)行。在研究各種整合方法后,我們選擇了面向服務(wù)的整合框架。

二 面向服務(wù)的整合思路

1 面向服務(wù)的特點

整合的基礎(chǔ)是建立系統(tǒng)之間的對話機(jī)制,面向服務(wù)的構(gòu)架提供了一種基于消息的對話機(jī)制。基于消息的模式通過傳遞數(shù)據(jù)塊來實現(xiàn)關(guān)聯(lián),這些數(shù)據(jù)塊與原系統(tǒng)的運(yùn)行邏輯無關(guān),這樣的數(shù)據(jù)塊統(tǒng)稱稱作“消息”[3],如圖2。

圖2中網(wǎng)絡(luò)右側(cè)是服務(wù)提供者,它通過接口的形式暴露在網(wǎng)絡(luò)上,并使用標(biāo)準(zhǔn)的服務(wù)描述語言進(jìn)行描述(如WSDL)。網(wǎng)絡(luò)左側(cè)的使用者通過接口和描述服務(wù)的本地代理來訪問服務(wù)。在調(diào)用過程中,網(wǎng)絡(luò)上傳遞的就是消息。消息的格式可以是任意的,由設(shè)計和開發(fā)者創(chuàng)建。在這里采用的是標(biāo)準(zhǔn)的SOAP協(xié)議提供的XML格式的消息。在接口的背后,服務(wù)的具體實現(xiàn)和調(diào)用的具體技術(shù)與接口定義是無關(guān)的,只要接口返回的是協(xié)商好的消息格式即可[4]。為了最大限度的利用現(xiàn)有的應(yīng)用程序功能組件,這里將原來的應(yīng)用組件以WebService的標(biāo)準(zhǔn)方式進(jìn)行接口封裝,并發(fā)布在服務(wù)器上。

2 整合實例結(jié)構(gòu)

這里所碰到的整合問題是一個典型的異構(gòu)技術(shù)平臺的整合問題。Moodle使用的是PHP,而另一個評分模塊是運(yùn)行在ASP.NET上的,PHP不能直接調(diào)用ASP.NET平臺的組件。使用標(biāo)準(zhǔn)的Web Service則可以解決這個調(diào)用問題。圖3的結(jié)構(gòu)解釋了這個整合的框架。

圖3中,我們將原來系統(tǒng)中的Rating模塊利用ASP.NET重新進(jìn)行Web Service的封裝,使用標(biāo)準(zhǔn)的接口暴露Rating模塊中的投票評價方法。RatingDAL為原系統(tǒng)中負(fù)責(zé)評分功能的數(shù)據(jù)層組件。這里僅通過增加服務(wù)層組件RatingService對其進(jìn)行方法的調(diào)用,不改變它原有的接口。因為沒有對原來的Rating模塊作修改,因此不會引起原系統(tǒng)的運(yùn)行問題。而Moodle中的資源頁面作為服務(wù)的消費(fèi)者,可通過標(biāo)準(zhǔn)的SOAP訪問RatingService[5]。圖3中的RatingService將作為一個獨(dú)立的服務(wù)存在,可以被除Moodle以外的其它程序調(diào)用。原來使用RatingDAL組件的模塊也可以通過RatingService進(jìn)行調(diào)用。在這個構(gòu)架中,兩個平臺所使用的技術(shù)不再是主要的矛盾了。

三 技術(shù)實現(xiàn)

1 Web服務(wù)的封裝和發(fā)布

在服務(wù)實現(xiàn)上,考慮到PHP的交互,我們選擇了使用ASP.NET實現(xiàn)基于SOAP標(biāo)準(zhǔn)的Web服務(wù)[6][7]。我們通過RatingService,聲明了必須的接口,然后通過對RatingDAL的調(diào)用完成封裝。下面是RatingService的封裝代碼,可以看到代碼中完全是對原RatingDAL的封裝,沒有任何具體的數(shù)據(jù)庫訪問代碼。完成后在IIS上發(fā)布,測試通過。

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class RatingService : System.Web.Services.WebService

{

[WebMethod]

//對原模塊的調(diào)用,提交用戶的評分public int Rating(string applicationid, int resourceid, int score){

RatingDAL dal = RatingDAL.GetInstance();

return dal.AddRatingRecord(applicationid,resourceid,score);}

[WebMethod]

//對原模塊的調(diào)用,得到具體資源的平均分

private int GetAverageScore(string applicationid, int resourceid)

{

RatingDAL dal = RatingDAL.GetInstance();

return dal.GetStatistic(applicationid,resourceid);

}

[WebMethod]

//對原模塊的調(diào)用,得到具體資源評分人數(shù)

private int GetTotalUsers(string applicationid, int resourceid)

{

RatingDAL dal = RatingDAL.GetInstance();

return dal.GetStatistic(applicationid,resourceid);

}

//其它的WebMethods

//……

}

在這個版本的RatingService中,每個需要進(jìn)行投票統(tǒng)計的應(yīng)用程序必須先手動的生成一個GUID作為ApplicationID。以后每次記錄投票和統(tǒng)計時都必須提供相應(yīng)的ApplicationID。

2 Moodle的Web服務(wù)調(diào)用

在Moodle調(diào)用方法上,可選擇PHP調(diào)用Web服務(wù),或者使用JavaScript進(jìn)行Ajax調(diào)用。考慮到跨域訪問的安全性問題,我們選擇了使用PHP的PEAR_SOAP模塊。

在Moodle中我們找到顯示資源的頁面,moodlemod esourceview.php文件。我們在該文件中使用HTML設(shè)計如圖1的界面,然后增加Web服務(wù)的調(diào)用代碼。

首先,利用soapclient對象訪問RatingService,獲得其接口方法,并創(chuàng)建服務(wù)代理,代碼如下:

表2 WebService聲明

include(“SOAP/Client.php”);

//設(shè)置ApplicationID,這個ID是手工注冊生成的

$applicationid=”3c4b5694-339c-4fe6-8248-4409f2eb1050$wsdl=new”;

//獲取自動生成的WSDL代碼

$wsdl=SOAP_WSDL(“http://localhost/Rating/RatingService.asmx?WSDL”);

//根據(jù)$wsdl生成RatingService的代理$soapclient

$soapclient=$wsdl->getProxy();

然后,進(jìn)行投票記錄,通過$soapclient調(diào)用Rating方法,記錄投票的分值:

最后,獲取評分情況,存儲在變量中,供下文應(yīng)用:

表4 WebService的數(shù)據(jù)讀取方法調(diào)用

//調(diào)用RatingService的方法,分別得到平均分和評分用戶數(shù)

$average=$soapclient->GetAverageScore($applicationid, $id);

$totalusers=$soapclient->GetTotalUsers($applicationid, $id);

……

//在相應(yīng)位置顯示平均得分和參與用戶數(shù)

分(最高分9分)

已有 位用戶對此資源進(jìn)行評分

最終結(jié)果如圖4所示。

上面的實例中Moodle本身并不是面向服務(wù)構(gòu)架,但是PHP有支持Web Service調(diào)用的模塊,為實施整合提供了條件。實例中,我們沒有對原評價模塊作過多的調(diào)整,只是將它通過Web Service進(jìn)行封裝發(fā)布,實現(xiàn)了服務(wù)和具體調(diào)用的分離,不僅為Moodle提供了服務(wù)同時也可以向其它應(yīng)用程序提供評分的服務(wù)。上述實例在本地機(jī)Moodle1.9/PHP/Apache/MySql/Windows和ASP.NET2.0/IIS5/MSSQL/Windows環(huán)境下調(diào)試通過。

3 進(jìn)一步的研究目標(biāo)

文中的兩個系統(tǒng)是在同一個服務(wù)器上運(yùn)行的,因此并沒有涉及到有關(guān)安全性的問題。在后續(xù)的應(yīng)用中,可能會遇到分布式的調(diào)用,因此對WebService安全性的控制將是下一步的研究目標(biāo)。

四 小結(jié)

綜上所述,軟件整合的目的是充分重用現(xiàn)有的軟件,減少軟件維護(hù)和開發(fā)的成本。要達(dá)到這個目的,整合的方法是很重要的,不然很有可能會和預(yù)期的目標(biāo)被道而馳。本文研究的面向服務(wù)的軟件整合方法,在使用不同技術(shù)實現(xiàn)的軟件中,通過基于消息的通訊來實施整合,大大減少了軟件之間的依賴性,提高了整合的可靠性。當(dāng)然,任何方法都不是萬能的,具體的整合過程還牽涉到原有系統(tǒng)的開發(fā)框架、目標(biāo)軟件本身的可靠性和可擴(kuò)展性都等因素,在實施軟件整合時要結(jié)合各種實際情況進(jìn)行綜合的研究。

主站蜘蛛池模板: 国产极品美女在线观看| 久久亚洲综合伊人| 最近最新中文字幕免费的一页| 日本成人不卡视频| 三级国产在线观看| 午夜a视频| 精品一区国产精品| 国产精女同一区二区三区久| 亚洲欧美日韩中文字幕在线| 91成人在线免费观看| 久久人人97超碰人人澡爱香蕉 | 色婷婷综合激情视频免费看| 免费一级无码在线网站 | 99热这里只有精品在线播放| 精品一区二区三区中文字幕| 午夜精品影院| 搞黄网站免费观看| 久久国产毛片| 日本高清有码人妻| 欧美精品亚洲日韩a| 欧美色视频网站| 亚洲精品国产首次亮相| 亚洲欧美激情另类| 国产精品免费p区| 久草视频一区| 一本久道久久综合多人| 色婷婷啪啪| 国产制服丝袜91在线| 免费看a级毛片| 在线观看免费国产| 日韩色图区| 欧美亚洲激情| 国产精品女主播| 国产女同自拍视频| 无码视频国产精品一区二区| 在线播放国产99re| 91亚洲国产视频| 国产福利在线观看精品| 青青草原国产精品啪啪视频| 乱人伦中文视频在线观看免费| 无码高清专区| 久久国产V一级毛多内射| 婷婷六月在线| 成人午夜视频在线| 国产偷倩视频| 亚洲美女一区| 欧美劲爆第一页| 亚洲精品国产首次亮相| 亚洲黄色高清| 国产在线观看一区精品| 操操操综合网| 国产精品自在自线免费观看| 亚洲男人天堂久久| 久久久久久久97| 国产精品一区二区无码免费看片| 激情六月丁香婷婷| 无码日韩视频| 久久这里只精品国产99热8| 日韩无码一二三区| 久久这里只精品国产99热8| 992tv国产人成在线观看| 538精品在线观看| 国产精品网址在线观看你懂的| 在线观看无码av五月花| 99热6这里只有精品| 精品在线免费播放| 久久国语对白| 欧美不卡视频在线观看| 国产乱视频网站| 2020亚洲精品无码| 国产美女自慰在线观看| 国产凹凸视频在线观看| 日韩精品欧美国产在线| 不卡视频国产| 欧美日韩国产在线人| 日韩中文无码av超清| 伦精品一区二区三区视频| 99精品高清在线播放| 波多野结衣二区| 啊嗯不日本网站| 日韩精品成人网页视频在线| 日本一区二区三区精品国产|