基于WebService的異構(gòu)數(shù)據(jù)庫檢索系統(tǒng)的設(shè)計方案_第1頁
基于WebService的異構(gòu)數(shù)據(jù)庫檢索系統(tǒng)的設(shè)計方案_第2頁
基于WebService的異構(gòu)數(shù)據(jù)庫檢索系統(tǒng)的設(shè)計方案_第3頁
基于WebService的異構(gòu)數(shù)據(jù)庫檢索系統(tǒng)的設(shè)計方案_第4頁
基于WebService的異構(gòu)數(shù)據(jù)庫檢索系統(tǒng)的設(shè)計方案_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

PAGE基于WebServices的異構(gòu)數(shù)據(jù)庫檢索系統(tǒng)的設(shè)計摘要在計算機(jī)系統(tǒng)信息集成中,如何充分利用現(xiàn)有的各種數(shù)據(jù)庫資源,實(shí)現(xiàn)不同數(shù)據(jù)庫間的連接、數(shù)據(jù)交換、數(shù)據(jù)共享,以實(shí)現(xiàn)各個數(shù)據(jù)庫之間的協(xié)同工作,已經(jīng)成為辦公自動化和信息化建設(shè)的一個關(guān)鍵問題。為了提高現(xiàn)有數(shù)據(jù)庫之間的數(shù)據(jù)交流,解決各個數(shù)據(jù)庫之間協(xié)同工作的問題,開發(fā)了這套基于WebServices的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)檢索系統(tǒng).其主要功能是實(shí)現(xiàn)不同數(shù)據(jù)庫之間的數(shù)據(jù)轉(zhuǎn)換,消除異構(gòu),檢索出異地數(shù)據(jù)庫指定數(shù)據(jù)。本系統(tǒng)采用了C/S體系結(jié)構(gòu),使用C#、XML語言開發(fā),同時運(yùn)用Oledb、WebService等實(shí)現(xiàn)接口來完成此系統(tǒng)的功能。基于WebService異構(gòu)數(shù)據(jù)庫數(shù)據(jù)檢索系統(tǒng)為數(shù)字化資源的整合利用提供了全新的解決方案。此外,從數(shù)據(jù)庫的現(xiàn)狀來看異構(gòu)數(shù)據(jù)庫聯(lián)合使用的要求是非常迫切并會長期存在下去的.關(guān)鍵詞:XML;WebServices;異構(gòu)數(shù)據(jù)庫;數(shù)據(jù)檢索WebServices-BasedDesignofHeterogeneousDatabaseRetrievalSystemAbstractIntheworkofofficeautomat(yī)ionandinformat(yī)ionconstruction,thereexistsamostimportantquestioninthesystemofcomputerinformationintergration:howtofullyuseseveral

ofexisting

databaseresources

torealizetheconnection,databaseexchangeandsharingamongdifferentdatabases;andhowtomakethemworktogetherharmoniously。Inorderto

improvethedatabase

exchangeamongdifferentdatabasesandtosolvethecooperation

taskamongthem,thissetofheterogeneousdatabasethedat(yī)aretrievalsystemisdeveloped.Themainfunctionofthissystem

istorealizethedataconversionofdifferentdatabases,theeliminat(yī)ionisomerismandtheretrieveofassigned

dataof

thedifferentdatabase.ThesystemreachesitsfunctionbyusingC/Smodelofsystem,computerlanguagedevelopment

ofC#,XMLaswellasconnectiontechnologyof

Oledb;WebServices.ThiskindofWebServiceheterogeneousdatabasedataretrievalsystemhasprovidedanew-brandsolutionforthedigitizedresourcesconformityuse。Inaddition,thepresentsituationofdatabaseneedsthe

adoptionofisomerismdatabaseunionurgentlyandit

willbelong-standing.Keywords:XML;WebServices;HeterogeneousDatabase;DataRetrieval目錄論文總頁數(shù):24頁TOC\o”1-3”\h\z\uHYPERLINK\l”_Toc178871845"1?引言?PAGEREF_Toc178871845\h1HYPERLINK\l"_Toc178871846"1.1?課題背景?PAGEREF_Toc178871846\h1HYPERLINK\l"_Toc178871847"1.2 國內(nèi)外研究現(xiàn)狀 PAGEREF_Toc178871847\h1HYPERLINK\l”_Toc178871848"1.2.1?數(shù)據(jù)轉(zhuǎn)換服務(wù)?PAGEREF_Toc178871848\h1HYPERLINK\l"_Toc178871849"1。2。2 數(shù)據(jù)轉(zhuǎn)換工具及軟件?PAGEREF_Toc178871849\h1HYPERLINK\l”_Toc178871850”1.3?本課題研究的意義?PAGEREF_Toc178871850\h2HYPERLINK\l”_Toc178871851"1.4?本課題的研究方法?PAGEREF_Toc178871851\h3HYPERLINK2.2。1?時間特性?PAGEREF_Toc178871859\h8HYPERLINK\l”_Toc178871860”2.2.2?適應(yīng)性?PAGEREF_Toc178871860\h8HYPERLINK\l”_Toc178871861"2.2。3?獨(dú)立性?PAGEREF_Toc178871861\h8HYPERLINK\l"_Toc178871862"2.3?運(yùn)行需求?PAGEREF_Toc178871862\h9HYPERLINK\l"_Toc178871863"2.3.1?用戶界面 PAGEREF_Toc178871863\h9HYPERLINK\l"_Toc178871864"2.3.2?硬件接口 PAGEREF_Toc178871864\h9HYPERLINK3 概要設(shè)計 PAGEREF_Toc178871866\h9HYPERLINK\l"_Toc178871867”3.1 設(shè)計方案?PAGEREF_Toc178871867\h9HYPERLINK3.5?數(shù)據(jù)導(dǎo)出設(shè)計?PAGEREF_Toc178871871\h15HYPERLINK\l”_Toc178871872”4?具體實(shí)現(xiàn)?PAGEREF_Toc178871872\h16HYPERLINK\l"_Toc178871873"4.1?開發(fā)環(huán)境?PAGEREF_Toc178871873\h16HYPERLINK\l"_Toc178871874"4.2?部分編碼詳解?PAGEREF_Toc178871874\h16HYPERLINK\l"_Toc178871875"5?測試?PAGEREF_Toc178871875\h20HYPERLINK\l”_Toc178871876"5.1 測試方法?PAGEREF_Toc178871876\h20HYPERLINK\l”_Toc178871877”5.2 測試結(jié)果 PAGEREF_Toc178871877\h20HYPERLINK\l"_Toc178871878"結(jié)論?PAGEREF_Toc178871878\h21HYPERLINK致謝 PAGEREF_Toc178871880\h23http://msdn2.microsoft.com/zh—cn/library/system.char(VS.80).aspx”System.Char對象的有序集合,用于表示字符串。String對象的值是該有序集合的內(nèi)容,并且該值是不可變的。表1SQLServer數(shù)據(jù)類型對應(yīng)本系統(tǒng)數(shù)據(jù)類型SQLServer數(shù)據(jù)庫里常用數(shù)據(jù)類型本系統(tǒng)數(shù)據(jù)類型boolSystem.BooleancharSystem.CharbyteSystem.BytesbyteSystem.ByteushortSystem.UInt16uintSystem.UInt32ulongSystem。UInt64shortSystem。Int16intSystem.Int32longSystem.Int64floatSystem.SingledoubleSystem.DoubletextSystem。String表2Oracle數(shù)據(jù)類型對應(yīng)本系統(tǒng)數(shù)據(jù)類型Oracle數(shù)據(jù)庫里常用數(shù)據(jù)類型本系統(tǒng)數(shù)據(jù)類型charSystem.Charvarchar2System.StringncharSystem.Stringnvarchar2System.StringdateSystem.StringlongSystem.Int64rawSystem.Int32blobSystem.Int32clobSystem.Int32nclobSystem.StringbfileSystem。StringrowidSystem.StringintrgerSystem.Int32float(yī)System。SinglerealSystem.StringXML數(shù)據(jù)文件設(shè)計使用XML格式數(shù)據(jù)是消除異構(gòu)的關(guān)鍵之處。所以一個常見的問題是如何將XML映射到數(shù)據(jù)庫。這種映射常常作為在XML文檔和數(shù)據(jù)庫特別是關(guān)系數(shù)據(jù)庫之間轉(zhuǎn)換數(shù)據(jù)的軟件的基礎(chǔ)。在這個領(lǐng)域,一個重要的特點(diǎn)是映射是雙向的,就是說可以把數(shù)據(jù)從XML文檔轉(zhuǎn)化到數(shù)據(jù)庫,也可以從數(shù)據(jù)庫轉(zhuǎn)化到XML文檔。即使數(shù)據(jù)庫沒有自稱支持XML特性,也可以在關(guān)系數(shù)據(jù)庫中存儲和檢索XML文檔。這樣做需要一個框架來連接關(guān)系數(shù)據(jù)庫和XML文檔流.本系統(tǒng)將通過Microsoft。Netl.l框架下的DataSet的WriteXML創(chuàng)建具有數(shù)據(jù)庫特征的XML文件。下面是一段本系統(tǒng)所創(chuàng)建并使用的XML數(shù)據(jù)庫文件。通過模型圖8可以很容易地理解數(shù)據(jù)從XML模型到XML文檔的轉(zhuǎn)換.該模型圖中的數(shù)據(jù)的類型和結(jié)構(gòu)與前面定義的schema示例一致.TempTempTempTempTESTIDTESTNAMETESTDESTESTIDTESTNAMETESTDESTESTIDTESTNAMETESTDESTEST001吉他古典002貝司烈焰003大師傅fds32圖8XML數(shù)據(jù)模型<?xmlversion=”1.0"standalone="yes"?〉<Test>〈xs:schemaid="Test"xmlns=””xmlns:xs="http://www./2001/XMLSchema”xmlns:msdata="urn:schemas-microsoft-com:xml—msdata”〉〈xs:elementname="Test”msdat(yī)a:IsDataSet=”true"msdat(yī)a:Locale="zh-CN”〉<xs:complexType><xs:choicemaxOccurs="unbounded”〉<xs:elementname="Temp"><xs:complexType〉<xs:sequence><xs:elementname=”TESTID”type=”xs:string”minOccurs="0"/〉〈xs:elementname=”TESTNAME”type="xs:string"minOccurs="0"/>〈xs:elementname="TESTDES"type="xs:string”minOccurs="0"/></xs:sequence></xs:complexType〉〈/xs:element〉</xs:choice></xs:complexType>〈/xs:element></xs:schema〉<Temp>〈TESTID>001</TESTID><TESTNAME>吉他</TESTNAME>〈TESTDES〉古典</TESTDES〉</Temp>〈Temp〉<TESTID>002</TESTID><TESTNAME〉貝司〈/TESTNAME><TESTDES〉烈焰</TESTDES>〈/Temp〉<Temp〉〈TESTID〉003</TESTID>〈TESTNAME〉大師傅</TESTNAME><TESTDES>fds32〈/TESTDES></Temp>〈/Test>由以上XML數(shù)據(jù)所示,可以發(fā)現(xiàn)此XML很好的描述了數(shù)據(jù)庫中表的基本特征.你會注意到它包含了標(biāo)準(zhǔn)的XML頭〈?xmlversion="1。0"?>,這表示schema自己就是一個XML文檔。而任何schema的根元素都必須是schema,它有一個或者多個說明自己的屬性。在這種情況下,schema的namespace定義屬性(xmlns)會定義名稱空間為xs,它將用作文檔中所有元素的根名稱空間。

我們的schema示例中接下來的元素是annotation,它的作用是代表同其父元素有關(guān)的文檔。annotat(yī)ion可以包含兩個子元素之一,或者是documentation或者是appinfo,或者兩者都包含進(jìn)去。前者用于可讀的文檔,而后者則用來保存供應(yīng)用程序處理的指令。接下來我們定義了兩個主要的元素(根元素Temp及其子元素TESTID,TESTNAME,TESTDES),它們用在書目文檔內(nèi),后者采用了兩個element元素。這些元素都包含了定義名字的屬性和各個元素準(zhǔn)許的內(nèi)容。在此Temp表示表的名稱,TESTID,TESTNAME,TESTDES分別表示字段的名稱.數(shù)據(jù)導(dǎo)出設(shè)計對于數(shù)據(jù)的導(dǎo)出后的保存形式,有至少三種方案可以選擇:1。XML文本格式;2.保存至數(shù)據(jù)庫服務(wù)器;3。Excel文件。三種方案各有優(yōu)勢。但是本著一切以用戶的使用感受,以方便各級用戶隨時使用檢索后的數(shù)據(jù);同時,也因?yàn)槲④浺矠椋茫2僮鱁xcel提供了完備的接口,用Excel來實(shí)現(xiàn),優(yōu)點(diǎn)在于頁面布局設(shè)計靈活,使用代碼來操作數(shù)據(jù)要更靈活,更精確.所以選擇將導(dǎo)出后的數(shù)據(jù)以保存為Excel文件。數(shù)據(jù)導(dǎo)出保存為Excel文件的具體實(shí)現(xiàn),調(diào)用了Interop.Excel。dll類文件,通過它將DataGrid中的數(shù)據(jù)導(dǎo)入Excel中,并顯示Excel應(yīng)用程序,注意調(diào)用該方法必須有安裝Excel2003應(yīng)用程序,并且假定DataGrid中綁定的是一DataSet。至此可以完整導(dǎo)出數(shù)據(jù)至Excel。具體實(shí)現(xiàn)開發(fā)環(huán)境本系統(tǒng)全部的開發(fā)工作都在Microsoft。Netl。l開發(fā)環(huán)境上完成。Microsoft.Netl.l是最新的。Net框架程序,具有極好的安全性,并能在Windows系統(tǒng)操作系統(tǒng)上達(dá)到跨平臺的效果,未來Microsoft還將支持Linux操作系統(tǒng),可以說是當(dāng)前最好的運(yùn)行平臺。該平臺可以在Windows98,2000,XP,2003系列操作系統(tǒng)上安裝,一旦安裝完成就和原來的操作系統(tǒng)無關(guān)。更為重要的是對于被檢索的數(shù)據(jù)完全是基于XML的,.NET封裝了大量DOM操作類,提高了對XML的開發(fā)速度。同時.NET也提供了非常高效的WEB服務(wù)開發(fā)平臺.另外,傳統(tǒng)的數(shù)據(jù)庫集成工具都要單獨(dú)開發(fā)數(shù)據(jù)包裝器用于數(shù)據(jù)庫數(shù)據(jù)和XML之間的相互轉(zhuǎn)化,而.NET環(huán)境內(nèi)置了DATAADAPTER對象能夠非常高效的在數(shù)據(jù)庫和XML之間轉(zhuǎn)化數(shù)據(jù),這也是本系統(tǒng)選擇.NET開發(fā)環(huán)境的一個重要原因。部分編碼詳解本系統(tǒng)所引用系統(tǒng)類如圖9所示圖9引用系統(tǒng)類視圖分別用SQL語句讀取相應(yīng)的系統(tǒng)表,獲取指定表的字段信息.如圖10所示///<summary>??///合并表數(shù)據(jù)??///</summary>??privatestaticvoidOracleAndSQLServer()? {?? SQLServerConn();???OracleConn();???uniteDs=oraDs.Copy(); ??foreach(DataRowdrinsqlDs。Tables[0]。Rows)???{? ?object[]no=dr.ItemArray;//動態(tài)加載無視列的數(shù)目 ?? uniteDs.Tables[0]。Rows。Add(no); ??}?? ReData(uniteDs.Tables[0]);???uniteDs.Tables[0]。AcceptChanges();}本系統(tǒng)對于所有生成的XML文件進(jìn)行選擇后檢索信息,對于檢索的結(jié)果導(dǎo)出.主要導(dǎo)出形式是以Excel表現(xiàn)的。檢索代碼如下。如圖13所示。privatevoidbtnSearch_Click(objectsender,System.EventArgse) ?{?? try? ?{if(this。XMLShow。SelectedItem!=null&&this。XMLShow.SelectedItem.ToString()?。絥ull&&this。XMLShow.SelectedItem。ToString()!="")????{? ???stringfile=XMLShow.SelectedItem.ToString();? ?? DataSetds=newDataSet();? ??ds.ReadXml(file,XmlReadMode.ReadSchema); ???DataSetds1=newDat(yī)aSet(); ??? ds1=ds.Clone();?????foreach(DataRowrowin?ds。Tables[0].Rows)? ?? {?? ???stringtemp=”"; ???? for(intn=0;n〈ds.Tables[0].Columns。Count;n++)?? ?? { ??? temp+=row[n]。ToString();??????}if(temp.IndexOf(this。txtSearchContent。Text。Trim())!=-1)//不等于—1則temp里有包括的其值?? ???{????? ?object[]asd=row.ItemArray;??? ???//注意程序運(yùn)行的先后,切忌一行拉通? ?????ds1.Tables[0].Rows.Add(asd);? ?? ?}?? ??}?? ??? this。dgResult.Dat(yī)aSource=ds1。Tables[0].DefaultView;???????XMLDs=ds1.Copy();??? ??}?? ??else? ? ? common.showwindow("請選擇xml文件!");??????}?? ?? cat(yī)ch?? ???{???? common.showwindow("xml文件讀取異?;蚱渌?!”);??????}??}測試在需求分析和系統(tǒng)設(shè)計之后,編碼基本完成了,就要開始測試了.測試是為了發(fā)現(xiàn)系統(tǒng)運(yùn)行時的錯誤,下面就要介紹測試方法。測試方法軟件測試的方法和技術(shù)是多種多樣的.對于軟件測試技術(shù),可以從不同的角度加以分類:從是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動態(tài)測試.從測試是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法的角度來看,可分為白盒測試和黑盒測試。以下是用例測試的方法.獲取WebService測試調(diào)用連接數(shù)據(jù)庫公用方法connect()Debug公用方法connect(),查看Debug參數(shù)中connection的值當(dāng)connection不為null時,則表示連接成功,否則連接失敗。讀取XML文件測試調(diào)用讀取xml文件方法ReadXML()判斷返回值vector是否為null當(dāng)vector不為null時,則讀取xml文件成功,否則讀?。韑文件失敗。測試結(jié)果系統(tǒng)整體測試功能完全達(dá)到,運(yùn)行時不會出錯,不存在功能問題。在一些不確定的因素下會造成BUG的出現(xiàn),但幾率極小,進(jìn)行及時的調(diào)整就會將損失降到最低.對于海量數(shù)據(jù)的讀取和操作存在系統(tǒng)資源耗盡的風(fēng)險。因?yàn)樵诔绦蛟O(shè)計之初,對此考慮的不盡周全以致.再者,以現(xiàn)在一般用戶的機(jī)器性能來做海量數(shù)據(jù)的操作測試本身就存在不盡合理之處。結(jié)論本文主要提出了一種基于WebServices的分布式異構(gòu)數(shù)據(jù)集成框架,并給出了基本的技術(shù)實(shí)現(xiàn)方法。采用該模型可以實(shí)現(xiàn)數(shù)據(jù)源的“即插即用",即允許數(shù)據(jù)源的動態(tài)集成(增加一個新數(shù)據(jù)源時,只需生成一個WebServices),而且由于所有的數(shù)據(jù)訪問都是通過Web服務(wù)對局部數(shù)據(jù)源實(shí)時進(jìn)行的,所以也很好地保證了數(shù)據(jù)的一致性和實(shí)時性。在論文中具體做了以下的實(shí)驗(yàn)研究工作:對傳統(tǒng)的數(shù)據(jù)集成方法進(jìn)行研究。比較各自的優(yōu)缺點(diǎn)以及適用范圍,選用WebService作為數(shù)據(jù)集成方法.在MicrosoftVisualStudio.NET2003、FrameworkSDKv1.1、Oracle9i和SQLserver2000基礎(chǔ)上構(gòu)建基于WebService的數(shù)據(jù)檢索系統(tǒng)的開發(fā)環(huán)境。利用XML文件格式解決數(shù)據(jù)異構(gòu)問題,采用web服務(wù)的方式實(shí)現(xiàn)數(shù)據(jù)采集。有效地驗(yàn)證了基于服務(wù)的數(shù)據(jù)集成方法解決語義異構(gòu)的可行性。但從總的情況看來,基于WebServices的異構(gòu)數(shù)據(jù)庫檢索還有很多不完善的地方,本系統(tǒng)還存在很多有待解決的問題,主要的表現(xiàn)有以下幾方面:異構(gòu)數(shù)據(jù)庫檢索系統(tǒng)的大多數(shù)服務(wù)必須手工生成,只有使用某些語言(如Visual。net等)編寫服務(wù)時可以自動生成服務(wù)描述文檔,大多數(shù)語言還不支持服務(wù)描述文檔的自動生成.在本課題中,服務(wù)的描述文件是根據(jù)描述文件模板,由數(shù)據(jù)源負(fù)責(zé)手工填寫生成的。當(dāng)服務(wù)數(shù)量不多的時候,這樣做產(chǎn)生的問題并不明顯。但是如果服務(wù)數(shù)量大幅度增加時,就會出現(xiàn)服務(wù)描述文件生成速度慢、出錯可能性增大的問題,最關(guān)鍵的問題是無法實(shí)現(xiàn)數(shù)據(jù)源服務(wù)準(zhǔn)備自動化。因此服務(wù)文檔的自動化生成問題是需要解決的.在處理海量數(shù)據(jù)的時候沒有考慮到對系統(tǒng)性能的優(yōu)化,合并和檢索都存在此不足。系統(tǒng)沒有考慮到安全問題,系統(tǒng)中的WebServices都是公開使用的,沒有采取保護(hù)措施,但是大多數(shù)與商業(yè)相關(guān)的服務(wù)需要保證安全性。系統(tǒng)沒有提供帶認(rèn)證的加密通信。雖然SSL上的HTTP一般能提供基本的安全性,但是相當(dāng)多的WebServices(尤其是包含了企業(yè)商務(wù)邏輯的WebServices)需要更高粒度的安全級別。系統(tǒng)中沒有提供身份鑒別機(jī)制,因此也就沒有為用戶賦予相應(yīng)的權(quán)限,這些都不符合商業(yè)應(yīng)用的要求。在下一步的研究中,系統(tǒng)的安全性需要重點(diǎn)研究。在今后的工作中將就上述的三個方面作深入的研究。HYPERLINK"論文格式摸板(2007).doc”參考文獻(xiàn)[1]Sunopsis。TheFutureofDataIntegrationTechnologies[J]。AMETAGroupWhite2003。[2]SimonRobinson,ChristianNagel。C#高級編程.北京:2003。[3]胡海璐,彭接文,胡智宇。XMLWebServices高級編程范例.北京:電子工業(yè)出社。2003。[4]貝列哲.NETWebServices:架構(gòu)與實(shí)現(xiàn).北京:中國電力出版社.2004-1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論