日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

基于WEBSEVRICE的課件搜索系統(tǒng)(一)

系統(tǒng) 1827 0
?? 臨到年尾了,手上的工作基本完成,這幾天忽然和舊同學(xué)聊天,他講到當(dāng)初咱們畢業(yè)設(shè)計(jì)時(shí)搞到的一個(gè)JSP搞的遠(yuǎn)程教育系統(tǒng),因?yàn)樗罱鉐SP,想進(jìn)行深化。我想,這也是個(gè)好辦法呀,1年多前的畢業(yè)設(shè)計(jì),時(shí)間倉促,很多東西都來不及深入和展開,理解不透徹,何不現(xiàn)在拿回來研究呢。于是,今晚我將當(dāng)初的東西重新翻出來,看了一次。當(dāng)大致看完一次后,我忽然發(fā)現(xiàn),當(dāng)初身為組長的我,在很多設(shè)計(jì)方面考慮的是多么可笑,有的地方現(xiàn)在看來還是相當(dāng)幼稚(畢竟1年多了,技術(shù)也進(jìn)步了,了解的東西也多了)。想當(dāng)初,我做組長,和其余6個(gè)組員,真正編碼才2個(gè)月左右,搞出的東西居然還被評為優(yōu)秀,哈哈,真的不知道是什么回事了。不過,現(xiàn)在總結(jié)下當(dāng)初的設(shè)計(jì)經(jīng)驗(yàn),我覺得還是很有收獲的。接下來,打算將原本的一些我們的設(shè)計(jì)方法拿出來給大家批評指點(diǎn)下,主要介紹的是webservice部分和我有關(guān)的,來源來自我的論文部分,如果哪位需要轉(zhuǎn)載的話,麻煩先通知聲,注明出處,謝謝。

一 設(shè)計(jì)概述
??? 其實(shí)整個(gè)設(shè)計(jì)為學(xué)校服務(wù),包括


? A 學(xué)生的自主個(gè)性化學(xué)習(xí)系統(tǒng)
???? 將智能理論引入教學(xué)系統(tǒng),模仿教師的教學(xué)思想有選擇地提供路徑供學(xué)生學(xué)習(xí),并且
實(shí)現(xiàn)學(xué)生與教師的雙向選擇。教材和教程的安排是提高教學(xué)質(zhì)量、激發(fā)學(xué)習(xí)興趣的關(guān)鍵。系統(tǒng)分為以下幾個(gè)部分:
??? 1 學(xué)生自主學(xué)習(xí):系統(tǒng)根據(jù)學(xué)生的學(xué)歷,生成不同的學(xué)習(xí)章節(jié)安排,分為強(qiáng)制學(xué)習(xí)和自由學(xué)習(xí)兩種方式。強(qiáng)制學(xué)習(xí)是指學(xué)生在瀏覽課程內(nèi)容的時(shí)候,必須按照章節(jié)的指定順序從頭開始學(xué)習(xí),在學(xué)習(xí)完一章后通過自我檢測后再進(jìn)入到下一章的學(xué)習(xí);而自由學(xué)習(xí)方式中,學(xué)生可以按任意的順序?yàn)g覽課程的內(nèi)容。
??? 2 事件提醒功能:
該模塊可以讓學(xué)生在日歷中設(shè)置自己的事件提醒,學(xué)習(xí)計(jì)劃定制,還可以隨時(shí)記錄自己感興趣的內(nèi)容,做學(xué)習(xí)筆記;可以做書簽,標(biāo)記所感興趣的內(nèi)容,以后再查看。學(xué)生可以通過系統(tǒng)提供的webmail電子郵件功能向教師發(fā)送郵件,提問問題。
 B 學(xué)習(xí)答疑系統(tǒng)
??? 答疑系統(tǒng)分為實(shí)時(shí)答疑系統(tǒng)和非實(shí)時(shí)答疑系統(tǒng)。
?  非實(shí)時(shí)答疑系統(tǒng)設(shè)計(jì)為一個(gè)論壇,學(xué)生在學(xué)習(xí)中遇到問題的時(shí)候,可以提出問題,可以上傳問題的附件。老師可以很方便地解答學(xué)生的各種問題,并反饋給學(xué)生;學(xué)生可以對教師解答的問題予以投票評價(jià),
??? 實(shí)時(shí)答疑系統(tǒng)是一個(gè)聊天室,教師和學(xué)生可以在指定的時(shí)間內(nèi)在聊天室中進(jìn)行問題交流。
 C? 在線自我測試系統(tǒng) 
??? 學(xué)生在學(xué)習(xí)完一定課程后,將可以進(jìn)行測試,系統(tǒng)提供自動(dòng)組卷和手動(dòng)組卷兩種方式供教師進(jìn)行組卷。學(xué)生在進(jìn)行自我測試后可以立即查看成績答案,可以知道自己在某個(gè)知識(shí)領(lǐng)域方面的掌握情況,教師可以對學(xué)生的測試成績進(jìn)行簡單的統(tǒng)計(jì),以圖表形式展示。
? D 教案管理系統(tǒng)
???? 教師可以上傳教案,教案可以是純文本輸入的方式,可以是已經(jīng)做好的ppt,還可以利用系統(tǒng)本身的簡單網(wǎng)頁編輯器進(jìn)行教案的編輯,修改,可以上傳到服務(wù)器指定位置。
? E 課件管理系統(tǒng)
教師可以將自己制作的優(yōu)秀課件上傳到課件資源庫,供學(xué)生下載,此外,該系統(tǒng)通過XML WebService的方式,將該系統(tǒng)與其他不同平臺(tái)的系統(tǒng)相連;教師可以在查詢教學(xué)資源時(shí),可以將請求發(fā)送到不同站點(diǎn)的系統(tǒng)中,不同的系統(tǒng)通過xml的方式返回結(jié)果,從而縮小了搜索的范圍,大大方便了教學(xué)資源的網(wǎng)上共享。

?

?


??????? 其實(shí),我們當(dāng)初為了學(xué)習(xí)JAVA/JSP,所以多提出了很多要實(shí)現(xiàn)的東西。而在畢業(yè)設(shè)計(jì)完成后,也驚奇的發(fā)現(xiàn),我們這個(gè)系統(tǒng)里,可謂用到了很多技術(shù)點(diǎn),如jsp,javabean,servlet,asp.net,xml,webservice,第三方組件,mobile開發(fā),而至于什么關(guān)于JAVA/JSP的技術(shù)應(yīng)用也匯集了,
比如什么樹型結(jié)構(gòu), 文件上傳 ,聊天室,論壇,JSP的圖形,日歷,JAVAMAIL。。。,唯一實(shí)現(xiàn)失敗的是利用JAVA搞語音聊天室失敗了。


二 基于 XML WebSerivce的課件搜索系統(tǒng)
??? 其實(shí),現(xiàn)在看來,當(dāng)初搞這個(gè)系統(tǒng),根本只是純粹應(yīng)老師要求,加上自己愛好,想研究WEBSERVICE的,實(shí)際上至少目前為止,還不會(huì)這樣使用。下面就詳細(xì)講下,摘錄原論文的部分。我當(dāng)初的目的時(shí),通過JAVA和。NET的WEBSERVICE互相調(diào)用,了解其實(shí)現(xiàn)方法,以體現(xiàn)WEBSERVICE的跨平臺(tái)特性,可惜現(xiàn)在看回來,當(dāng)初我的實(shí)現(xiàn)方法出現(xiàn)很多錯(cuò)漏和明顯的問題,但畢竟還是初步實(shí)現(xiàn)了,嘿嘿,所以打算原始呈現(xiàn)給大家。

4.1.1 ? 課件資源庫的概況<o:p></o:p>

在遠(yuǎn)程教育系統(tǒng)中,教師可以在用 Powerpoint,Flash,Authorware等軟件在制作課件后予以上傳到服務(wù)器,以供下載使用。傳統(tǒng)的遠(yuǎn)程教育站點(diǎn)課件資源庫就是采用簡單的“上傳――搜索-下載”的模式實(shí)現(xiàn)的。但隨著Internet技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)上的優(yōu)秀課件資源變得越來越豐富,教師在進(jìn)行教學(xué)備課,學(xué)生在學(xué)習(xí)中,不再單單局限在某一站點(diǎn)上搜索課件教學(xué)資源,因?yàn)閱我徽军c(diǎn)上的課件資源不能滿足要求。教師或者學(xué)生往往要通過其他搜索引擎(如google,yahoo等),但往往搜索出來的結(jié)果可以說是海量的,要再次在其中逐一查找,浪費(fèi)了時(shí)間,而且現(xiàn)在的搜索引擎搜索出來的結(jié)果,很多都不是十分準(zhǔn)確的,包含了其他無用的信息。 ???????
?? 4.1.2 ? 新系統(tǒng)解決方案概述
???
在新系統(tǒng)的解決方案中,本人提出了使用XML WebService技術(shù)構(gòu)建共享課件資源庫。就是使用當(dāng)今最新的XML WebService技術(shù),從而可以使即使是不同平臺(tái)(unix/liux,Widows nt/server平臺(tái)),使用不同語言(asp.net,jsp)構(gòu)建的遠(yuǎn)程教育網(wǎng)站站點(diǎn)之間,能夠互相訪問對方的課件資源庫的資源。<o:p></o:p>

其中,在本人的設(shè)計(jì)中,使用 C#,asp.net分別模擬構(gòu)建了另外兩個(gè)遠(yuǎn)程教育網(wǎng)站的課件資源庫部分,分別為網(wǎng)站A,網(wǎng)站B,它們分別提供了其自身的課件資源庫的WebService接口,接收來自其他網(wǎng)站發(fā)送的查詢請求,而稱這次我們畢業(yè)設(shè)計(jì)小組設(shè)計(jì)的JSP網(wǎng)站為本地網(wǎng)站。系統(tǒng)的整個(gè)工作流程概述如下:
(1) 當(dāng)用戶要搜索課件時(shí),首先將查詢的請求格式化為SQL語句。之后將請求發(fā)送到
WebService 課件代理中心( UDDI

(2) UDDI 注冊中心中,注冊了 A B 兩個(gè)網(wǎng)站的 WebService 的有關(guān)信息,當(dāng)收到本地網(wǎng)站的請求后, UDDI 中心調(diào)用 A B 兩個(gè)網(wǎng)站的 Webservice, 將用戶的請求分別發(fā)送到它們的 WebService
(3)A
B 網(wǎng)站的 WebService 分別收到了用戶的請求, 并調(diào)用自己的搜索方法,再將請求發(fā)送到各自的數(shù)據(jù)庫 A,B。<o:p></o:p>

(4) A,B 網(wǎng)站分別將數(shù)據(jù)庫 搜索出來的結(jié)果以 XML的形式返回到UDDI注冊中心的課件WebService課件代理。而UDDI中心的課件代理則將A,B網(wǎng)站返回的XML加以整理,再返回給本地網(wǎng)站。
(5) 本地網(wǎng)站將返回的XML加以解釋,提取結(jié)點(diǎn)的內(nèi)容,再以一定的樣式顯示在用戶面前。<o:p></o:p>

?? 上面的流程用結(jié)構(gòu)圖表示如下:



<o:p></o:p>

?<o:p></o:p>

?<o:p></o:p> 由于這次我們小組設(shè)計(jì)的系統(tǒng)是使用 Java技術(shù)構(gòu)造的,通過WebService,可以成功地與其他兩個(gè).net架構(gòu)的遠(yuǎn)程教育課件庫系統(tǒng)相連。這樣一來,當(dāng)學(xué)生或教師要搜索課件的時(shí)候,搜索到的就不單單是一個(gè)網(wǎng)站的課件資源,而是有可能搜索到若干個(gè)同類型網(wǎng)站的課件資源,而搜索出來的結(jié)果是十分有效的,沒有冗余的信息,十分方便并且有效。而且這種模式可以有效地推廣到其他網(wǎng)站的經(jīng)營模式上去。<o:p></o:p>

?? <o:p></o:p>

? 4.2 ? .NET和Java 的WebService概述
?
(1) 微軟.NET簡介
???? 2000年6月22日,微軟正式推出了其.net戰(zhàn)略,2002年,VS.NET 2002 正式推出。<o:p></o:p>

.NET的最終目的就是讓用戶在任何地方、任何時(shí)間,以及利用任何設(shè)備都能訪問他們所需要的信息、文件和程序。而用戶不需要知道這些東西存在什么地方,甚至連如何獲得等具體細(xì)節(jié)都不知道。他們只需發(fā)出請求,然后只管接收就是了,而所有后臺(tái)的復(fù)雜性是完全屏蔽起來的。<o:p></o:p>

? (2) .NET 對WEBSERVICE的支持
? ??
.NET 平臺(tái)內(nèi)建了對 WebService 的支持,包括 WebService 的構(gòu)建和使用。 與其它開發(fā)平臺(tái)不同,使用 .NET 平臺(tái),不需要其他的工具或者 SDK 就可以完成 WebService 的開發(fā)。 .NET Framework 本身就全面支持 WebService ,包括服務(wù)器端的請求處理器和對客戶端發(fā)送和接受 SOAP 消息的支持。
? (3) Java 對WebService的支持
? ??? 由于這次畢業(yè)設(shè)計(jì)我研究的部分設(shè)計(jì)到JAVA與.net上平臺(tái)上的WebService的互連,因此我對JAVA中對WEBSERVICE的支持進(jìn)行了研究。
?
??? 然而,在設(shè)計(jì)中,我發(fā)現(xiàn)如 IBM,Sun,Bea,Oracle Apache 等公司或組織都紛紛提出了基于 WebService 的開發(fā)標(biāo)準(zhǔn)和工具,而當(dāng)中有的是很復(fù)雜的。有的雖然功能強(qiáng)大,但在和 .NET 平臺(tái)上的 WebService 的互操作性上不強(qiáng)。最后,我選用了 apache 組織免費(fèi)的開源項(xiàng)目 Axis
Axis(Apache extensible Interaction System) 的前身是著名開源組織 Apache 開發(fā)的 Apache Soap 的最新一代產(chǎn)品,目前最新的版本是 1.1 Axis 有以下特點(diǎn):
 1 使用 SAX 解釋器對 XML 進(jìn)行解釋,速度比用 DOM 解釋快,靈活性高。
? 2 ??
能自動(dòng)對原有的 Java 文件生成對應(yīng)的 wsdl 文件。
? 3 ??
能方便地對發(fā)布的 WebService 部署。
? 4 ??
具有十分良好的互操作性,能與其他語言編寫的 WEB 服務(wù)進(jìn)行相互操作調(diào)用。 ?
4.3 ? .NET WebService 的設(shè)計(jì)
??? 4.3.1 .NET
端的 websevice
???
首先,我先講下 .NET 端的 WebService 設(shè)計(jì)。在設(shè)計(jì)中, A 網(wǎng)站采用的是 ms sql server 2000 數(shù)據(jù)庫,而 B 網(wǎng)站采用 access 2000 設(shè)計(jì)。對 A,B 網(wǎng)站的數(shù)據(jù)庫的設(shè)計(jì)如下,分別命名為 kejiana,kejianb 其數(shù)字字典見附錄的表 4。
??? 建立數(shù)
據(jù)庫后,就可以建立 .Net 端的 Webservice ,下面以網(wǎng)站A為例介紹(網(wǎng)站B的構(gòu)建類似):
主要編程思想:
1) 引入 .Net 中的有關(guān) WebService 的類庫,如 System.Web.Service 等;
2)
根據(jù)傳入的 sql 語句,查詢 Kejiana 的數(shù)據(jù)庫,返回有關(guān)的查詢結(jié)果。
3)
對查詢的結(jié)果進(jìn)行 xml 格式化,轉(zhuǎn)化為統(tǒng)一的 xml
???
其中,在 asp.net 中,對數(shù)據(jù)庫的操作的結(jié)果是以 dataset 來表示的。 DataSet 是在 ADO.NET 中的一個(gè)重要組成部分, ADO.NET讓程序開發(fā)人員可以在下一代的Web上進(jìn)行數(shù)據(jù)存取更為簡單,并且更有效率。ADO.NET可以達(dá)成這些目的的最重要的兩個(gè)改進(jìn)為:Disconnected DataSet(離線數(shù)據(jù)集)和XML支持。簡單來說,DataSet對象就是RecordSet的集合,ADO.NET Framework會(huì)提供所有的RecordSet數(shù)據(jù)庫特性,例如排序、分頁、檢視表、關(guān)聯(lián)性、索引,和主鍵等,它是一種簡單的,駐留在內(nèi)存中的數(shù)據(jù)存儲(chǔ)方式,實(shí)際上它是以XML格式存儲(chǔ)的,所以無論是哪種平臺(tái)或者是哪種語言,都可以使用DATASET。在設(shè)計(jì)中,我充分利用了dataset的這個(gè)功能,先將數(shù)據(jù)庫查詢結(jié)果轉(zhuǎn)化為dataset,然后再整理為XML。主要代碼如下:
? [WebMethod]<o:p></o:p>

????????????? public ? XmlDataDocument Query( string querystring)<o:p></o:p>

????????????? {<o:p></o:p>

?????????? ? string str;<o:p></o:p>

???????????????????? TextWriter writer = new StringWriter();<o:p></o:p>

???????????????????? XmlDataDocument doc= new XmlDataDocument();<o:p></o:p>

???????????????????? string sql="select * from kejiana"+" where "+querystring;<o:p></o:p>

???????????????????? cnn.Open();<o:p></o:p>

???????????????????? SqlDataAdapter da= new SqlDataAdapter(sql,cnn);<o:p></o:p>

? ?????????? ?????? DataSet ds = new DataSet();<o:p></o:p>

???????????????????? da.Fill(ds,"kejian");// 以上代碼將查詢的結(jié)果放到 dataset 中去。 <o:p></o:p>

???????????????????? if (ds.Tables["kejian"].Rows.Count==0) // 如果數(shù)據(jù)集為空 <o:p></o:p>

???????????????????? {<o:p></o:p>

??????????????????????????? doc1= new XmlDataDocument(ds);<o:p></o:p>

??????????????????????????? str="<root>"+doc1.InnerXml+"</root>";<o:p></o:p>

????????????? doc1.LoadXml(str);<o:p></o:p>

??????????????????????????? return doc1;<o:p></o:p>

???????????????????? }<o:p></o:p>

???????????????????? else // 如果結(jié)果不為空 <o:p></o:p>

???????????????????? {<o:p></o:p>

???????????????????? doc= new XmlDataDocument(ds);<o:p></o:p>

??????????????????????????? XmlNode root1=doc.DocumentElement;<o:p></o:p>

??????????????????????????? XmlNodeList roots=root1.SelectNodes("kejian");<o:p></o:p>

????????????? foreach (XmlNode roota in ? roots) ? // XML 增加結(jié)點(diǎn) fromnet<o:p></o:p>

??????????????????????????? {<o:p></o:p>

?????????????????????????????????? XmlElement fromnet=doc.CreateElement("fromnet");<o:p></o:p>

?????????????????????????????????? XmlElement link=doc.CreateElement("A");<o:p></o:p>

?????????????????????????????????? link.SetAttribute("HREF","http://localhost/kejiana/");<o:p></o:p>

?????????????????????????????????? fromnet.AppendChild(link);<o:p></o:p>

??? roota.AppendChild(fromnet);<o:p></o:p>

??????????????????????????? }<o:p></o:p>

???????????????????? return doc;<o:p></o:p>

???????????????????? }<o:p></o:p>

????????????? }
在上面的代碼中,在查詢出數(shù)據(jù)庫的內(nèi)容之后,首先要判斷數(shù)據(jù)集的內(nèi)容是否為空,如果數(shù)據(jù)集的內(nèi)容為空,則返回空的 XML。如果數(shù)據(jù)集不為空,則首先將數(shù)據(jù)集轉(zhuǎn)化為xmldatadocument,xmldatadocument是xmldocument的子類,它的功能是實(shí)現(xiàn)XML和DATASET的轉(zhuǎn)化。同時(shí),由于最后要告訴用戶,課件是來自于哪一個(gè)網(wǎng)站的,所以要在生成的xml中加入一個(gè)結(jié)點(diǎn)fromnet,表示搜索出來的結(jié)點(diǎn)來自于哪一個(gè)網(wǎng)站。
? 編譯該WebService,可以看到如下界面:?
? <v:shapetype id="_x0000_t75"><v:stroke></v:stroke><v:formulas><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f><v:f></v:f></v:formulas><v:path></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>


上面的界面中,就是 WebService的初始界面,其中querystring就是要輸入的參數(shù),該參數(shù)實(shí)際上是來自外部系統(tǒng)的。比如,在這里,輸入sql語句的一部分kname like %vb% ,表示要查詢的是課件名中包含VB字樣的所有記錄,在提交請求后,WebService便會(huì)調(diào)用數(shù)據(jù)庫查詢,將查詢的結(jié)果以XML的形式返回。<o:p></o:p>

?<o:p></o:p>

?

?

?

?

?

基于WEBSEVRICE的課件搜索系統(tǒng)(一)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 米脂县| 辰溪县| 施秉县| 乐陵市| 博客| 新闻| 白沙| 萨迦县| 新竹市| 乌审旗| 鹤庆县| 兴安县| 嘉定区| 达日县| 东莞市| 化隆| 南漳县| 盘山县| 孝感市| 大渡口区| 金沙县| 建德市| 奉节县| 阿坝县| 曲靖市| 纳雍县| 德保县| 光泽县| 太康县| 龙门县| 永州市| 彭州市| 永安市| 南靖县| 望都县| 盐津县| 上饶市| 石家庄市| 永清县| 拉萨市| 济南市|