一 設計概述
??? 其實整個設計為學校服務,包括
? A 學生的自主個性化學習系統(tǒng)
???? 將智能理論引入教學系統(tǒng),模仿教師的教學思想有選擇地提供路徑供學生學習,并且
實現(xiàn)學生與教師的雙向選擇。教材和教程的安排是提高教學質量、激發(fā)學習興趣的關鍵。系統(tǒng)分為以下幾個部分:
??? 1 學生自主學習:系統(tǒng)根據(jù)學生的學歷,生成不同的學習章節(jié)安排,分為強制學習和自由學習兩種方式。強制學習是指學生在瀏覽課程內容的時候,必須按照章節(jié)的指定順序從頭開始學習,在學習完一章后通過自我檢測后再進入到下一章的學習;而自由學習方式中,學生可以按任意的順序瀏覽課程的內容。
??? 2 事件提醒功能:
該模塊可以讓學生在日歷中設置自己的事件提醒,學習計劃定制,還可以隨時記錄自己感興趣的內容,做學習筆記;可以做書簽,標記所感興趣的內容,以后再查看。學生可以通過系統(tǒng)提供的webmail電子郵件功能向教師發(fā)送郵件,提問問題。
B 學習答疑系統(tǒng)
??? 答疑系統(tǒng)分為實時答疑系統(tǒng)和非實時答疑系統(tǒng)。
? 非實時答疑系統(tǒng)設計為一個論壇,學生在學習中遇到問題的時候,可以提出問題,可以上傳問題的附件。老師可以很方便地解答學生的各種問題,并反饋給學生;學生可以對教師解答的問題予以投票評價,
??? 實時答疑系統(tǒng)是一個聊天室,教師和學生可以在指定的時間內在聊天室中進行問題交流。
C? 在線自我測試系統(tǒng)
??? 學生在學習完一定課程后,將可以進行測試,系統(tǒng)提供自動組卷和手動組卷兩種方式供教師進行組卷。學生在進行自我測試后可以立即查看成績答案,可以知道自己在某個知識領域方面的掌握情況,教師可以對學生的測試成績進行簡單的統(tǒng)計,以圖表形式展示。
? D 教案管理系統(tǒng)
???? 教師可以上傳教案,教案可以是純文本輸入的方式,可以是已經(jīng)做好的ppt,還可以利用系統(tǒng)本身的簡單網(wǎng)頁編輯器進行教案的編輯,修改,可以上傳到服務器指定位置。
? E 課件管理系統(tǒng)
教師可以將自己制作的優(yōu)秀課件上傳到課件資源庫,供學生下載,此外,該系統(tǒng)通過XML WebService的方式,將該系統(tǒng)與其他不同平臺的系統(tǒng)相連;教師可以在查詢教學資源時,可以將請求發(fā)送到不同站點的系統(tǒng)中,不同的系統(tǒng)通過xml的方式返回結果,從而縮小了搜索的范圍,大大方便了教學資源的網(wǎng)上共享。
?
?
??????? 其實,我們當初為了學習JAVA/JSP,所以多提出了很多要實現(xiàn)的東西。而在畢業(yè)設計完成后,也驚奇的發(fā)現(xiàn),我們這個系統(tǒng)里,可謂用到了很多技術點,如jsp,javabean,servlet,asp.net,xml,webservice,第三方組件,mobile開發(fā),而至于什么關于JAVA/JSP的技術應用也匯集了,
比如什么樹型結構,
文件上傳
,聊天室,論壇,JSP的圖形,日歷,JAVAMAIL。。。,唯一實現(xiàn)失敗的是利用JAVA搞語音聊天室失敗了。
二 基于
XML WebSerivce的課件搜索系統(tǒng)
??? 其實,現(xiàn)在看來,當初搞這個系統(tǒng),根本只是純粹應老師要求,加上自己愛好,想研究WEBSERVICE的,實際上至少目前為止,還不會這樣使用。下面就詳細講下,摘錄原論文的部分。我當初的目的時,通過JAVA和。NET的WEBSERVICE互相調用,了解其實現(xiàn)方法,以體現(xiàn)WEBSERVICE的跨平臺特性,可惜現(xiàn)在看回來,當初我的實現(xiàn)方法出現(xiàn)很多錯漏和明顯的問題,但畢竟還是初步實現(xiàn)了,嘿嘿,所以打算原始呈現(xiàn)給大家。
4.1.1 ? 課件資源庫的概況<o:p></o:p>
在遠程教育系統(tǒng)中,教師可以在用
Powerpoint,Flash,Authorware等軟件在制作課件后予以上傳到服務器,以供下載使用。傳統(tǒng)的遠程教育站點課件資源庫就是采用簡單的“上傳――搜索-下載”的模式實現(xiàn)的。但隨著Internet技術的不斷發(fā)展,互聯(lián)網(wǎng)上的優(yōu)秀課件資源變得越來越豐富,教師在進行教學備課,學生在學習中,不再單單局限在某一站點上搜索課件教學資源,因為單一站點上的課件資源不能滿足要求。教師或者學生往往要通過其他搜索引擎(如google,yahoo等),但往往搜索出來的結果可以說是海量的,要再次在其中逐一查找,浪費了時間,而且現(xiàn)在的搜索引擎搜索出來的結果,很多都不是十分準確的,包含了其他無用的信息。
???????
??
4.1.2
?
新系統(tǒng)解決方案概述
???
在新系統(tǒng)的解決方案中,本人提出了使用XML WebService技術構建共享課件資源庫。就是使用當今最新的XML WebService技術,從而可以使即使是不同平臺(unix/liux,Widows nt/server平臺),使用不同語言(asp.net,jsp)構建的遠程教育網(wǎng)站站點之間,能夠互相訪問對方的課件資源庫的資源。<o:p></o:p>
其中,在本人的設計中,使用
C#,asp.net分別模擬構建了另外兩個遠程教育網(wǎng)站的課件資源庫部分,分別為網(wǎng)站A,網(wǎng)站B,它們分別提供了其自身的課件資源庫的WebService接口,接收來自其他網(wǎng)站發(fā)送的查詢請求,而稱這次我們畢業(yè)設計小組設計的JSP網(wǎng)站為本地網(wǎng)站。系統(tǒng)的整個工作流程概述如下:
(1) 當用戶要搜索課件時,首先將查詢的請求格式化為SQL語句。之后將請求發(fā)送到
WebService
課件代理中心(
UDDI
)
(2)
在
UDDI
注冊中心中,注冊了
A
,
B
兩個網(wǎng)站的
WebService
的有關信息,當收到本地網(wǎng)站的請求后,
UDDI
中心調用
A
,
B
兩個網(wǎng)站的
Webservice,
將用戶的請求分別發(fā)送到它們的
WebService
。
(3)A
,
B
網(wǎng)站的
WebService
分別收到了用戶的請求,
并調用自己的搜索方法,再將請求發(fā)送到各自的數(shù)據(jù)庫
A,B。<o:p></o:p>
(4)
A,B
網(wǎng)站分別將數(shù)據(jù)庫
搜索出來的結果以
XML的形式返回到UDDI注冊中心的課件WebService課件代理。而UDDI中心的課件代理則將A,B網(wǎng)站返回的XML加以整理,再返回給本地網(wǎng)站。
(5) 本地網(wǎng)站將返回的XML加以解釋,提取結點的內容,再以一定的樣式顯示在用戶面前。<o:p></o:p>
??
上面的流程用結構圖表示如下:
<o:p></o:p>
?<o:p></o:p>
?<o:p></o:p> 由于這次我們小組設計的系統(tǒng)是使用 Java技術構造的,通過WebService,可以成功地與其他兩個.net架構的遠程教育課件庫系統(tǒng)相連。這樣一來,當學生或教師要搜索課件的時候,搜索到的就不單單是一個網(wǎng)站的課件資源,而是有可能搜索到若干個同類型網(wǎng)站的課件資源,而搜索出來的結果是十分有效的,沒有冗余的信息,十分方便并且有效。而且這種模式可以有效地推廣到其他網(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的最終目的就是讓用戶在任何地方、任何時間,以及利用任何設備都能訪問他們所需要的信息、文件和程序。而用戶不需要知道這些東西存在什么地方,甚至連如何獲得等具體細節(jié)都不知道。他們只需發(fā)出請求,然后只管接收就是了,而所有后臺的復雜性是完全屏蔽起來的。<o:p></o:p>
?
(2) .NET 對WEBSERVICE的支持
?
??
.NET
平臺內建了對
WebService
的支持,包括
WebService
的構建和使用。
與其它開發(fā)平臺不同,使用
.NET
平臺,不需要其他的工具或者
SDK
就可以完成
WebService
的開發(fā)。
.NET Framework
本身就全面支持
WebService
,包括服務器端的請求處理器和對客戶端發(fā)送和接受
SOAP
消息的支持。
?
(3) Java 對WebService的支持
?
???
由于這次畢業(yè)設計我研究的部分設計到JAVA與.net上平臺上的WebService的互連,因此我對JAVA中對WEBSERVICE的支持進行了研究。
?
???
然而,在設計中,我發(fā)現(xiàn)如
IBM,Sun,Bea,Oracle
,
Apache
等公司或組織都紛紛提出了基于
WebService
的開發(fā)標準和工具,而當中有的是很復雜的。有的雖然功能強大,但在和
.NET
平臺上的
WebService
的互操作性上不強。最后,我選用了
apache
組織免費的開源項目
Axis
。
Axis(Apache extensible Interaction System)
的前身是著名開源組織
Apache
開發(fā)的
Apache Soap
的最新一代產品,目前最新的版本是
1.1
。
Axis
有以下特點:
1 使用
SAX
解釋器對
XML
進行解釋,速度比用
DOM
解釋快,靈活性高。
?
2
??
能自動對原有的
Java
文件生成對應的
wsdl
文件。
?
3
??
能方便地對發(fā)布的
WebService
部署。
?
4
??
具有十分良好的互操作性,能與其他語言編寫的
WEB
服務進行相互操作調用。
?
4.3
?
.NET
端
WebService
的設計
???
4.3.1 .NET
端的
websevice
???
首先,我先講下
.NET
端的
WebService
設計。在設計中,
A
網(wǎng)站采用的是
ms sql server 2000
數(shù)據(jù)庫,而
B
網(wǎng)站采用
access 2000
設計。對
A,B
網(wǎng)站的數(shù)據(jù)庫的設計如下,分別命名為
kejiana,kejianb
。
其數(shù)字字典見附錄的表
4。
???
建立數(shù)
據(jù)庫后,就可以建立
.Net
端的
Webservice
,下面以網(wǎng)站A為例介紹(網(wǎng)站B的構建類似):
主要編程思想:
1)
引入
.Net
中的有關
WebService
的類庫,如
System.Web.Service
等;
2)
根據(jù)傳入的
sql
語句,查詢
Kejiana
的數(shù)據(jù)庫,返回有關的查詢結果。
3)
對查詢的結果進行
xml
格式化,轉化為統(tǒng)一的
xml
。
???
其中,在
asp.net
中,對數(shù)據(jù)庫的操作的結果是以
dataset
來表示的。
DataSet
是在
ADO.NET
中的一個重要組成部分,
ADO.NET讓程序開發(fā)人員可以在下一代的Web上進行數(shù)據(jù)存取更為簡單,并且更有效率。ADO.NET可以達成這些目的的最重要的兩個改進為:Disconnected DataSet(離線數(shù)據(jù)集)和XML支持。簡單來說,DataSet對象就是RecordSet的集合,ADO.NET Framework會提供所有的RecordSet數(shù)據(jù)庫特性,例如排序、分頁、檢視表、關聯(lián)性、索引,和主鍵等,它是一種簡單的,駐留在內存中的數(shù)據(jù)存儲方式,實際上它是以XML格式存儲的,所以無論是哪種平臺或者是哪種語言,都可以使用DATASET。在設計中,我充分利用了dataset的這個功能,先將數(shù)據(jù)庫查詢結果轉化為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");// 以上代碼將查詢的結果放到 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 // 如果結果不為空 <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 增加結點 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ù)庫的內容之后,首先要判斷數(shù)據(jù)集的內容是否為空,如果數(shù)據(jù)集的內容為空,則返回空的
XML。如果數(shù)據(jù)集不為空,則首先將數(shù)據(jù)集轉化為xmldatadocument,xmldatadocument是xmldocument的子類,它的功能是實現(xiàn)XML和DATASET的轉化。同時,由于最后要告訴用戶,課件是來自于哪一個網(wǎng)站的,所以要在生成的xml中加入一個結點fromnet,表示搜索出來的結點來自于哪一個網(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ù)實際上是來自外部系統(tǒng)的。比如,在這里,輸入sql語句的一部分kname like
‘
%vb%
’
,表示要查詢的是課件名中包含VB字樣的所有記錄,在提交請求后,WebService便會調用數(shù)據(jù)庫查詢,將查詢的結果以XML的形式返回。<o:p></o:p>
?<o:p></o:p>
?
?
?
?
?
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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