基于WebService的异构数据库检索系统的设计方案_第1页
基于WebService的异构数据库检索系统的设计方案_第2页
基于WebService的异构数据库检索系统的设计方案_第3页
基于WebService的异构数据库检索系统的设计方案_第4页
基于WebService的异构数据库检索系统的设计方案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE基于WebServices的异构数据库检索系统的设计摘要在计算机系统信息集成中,如何充分利用现有的各种数据库资源,实现不同数据库间的连接、数据交换、数据共享,以实现各个数据库之间的协同工作,已经成为办公自动化和信息化建设的一个关键问题。为了提高现有数据库之间的数据交流,解决各个数据库之间协同工作的问题,开发了这套基于WebServices的异构数据库数据检索系统.其主要功能是实现不同数据库之间的数据转换,消除异构,检索出异地数据库指定数据。本系统采用了C/S体系结构,使用C#、XML语言开发,同时运用Oledb、WebService等实现接口来完成此系统的功能。基于WebService异构数据库数据检索系统为数字化资源的整合利用提供了全新的解决方案。此外,从数据库的现状来看异构数据库联合使用的要求是非常迫切并会长期存在下去的.关键词:XML;WebServices;异构数据库;数据检索WebServices-BasedDesignofHeterogeneousDatabaseRetrievalSystemAbstractIntheworkofofficeautomationandinformationconstruction,thereexistsamostimportantquestioninthesystemofcomputerinformationintergration:howtofullyuseseveral

ofexisting

databaseresources

torealizetheconnection,databaseexchangeandsharingamongdifferentdatabases;andhowtomakethemworktogetherharmoniously。Inorderto

improvethedatabase

exchangeamongdifferentdatabasesandtosolvethecooperation

taskamongthem,thissetofheterogeneousdatabasethedataretrievalsystemisdeveloped.Themainfunctionofthissystem

istorealizethedataconversionofdifferentdatabases,theeliminationisomerismandtheretrieveofassigned

dataof

thedifferentdatabase.ThesystemreachesitsfunctionbyusingC/Smodelofsystem,computerlanguagedevelopment

ofC#,XMLaswellasconnectiontechnologyof

Oledb;WebServices.ThiskindofWebServiceheterogeneousdatabasedataretrievalsystemhasprovidedanew-brandsolutionforthedigitizedresourcesconformityuse。Inaddition,thepresentsituationofdatabaseneedsthe

adoptionofisomerismdatabaseunionurgentlyandit

willbelong-standing.Keywords:XML;WebServices;HeterogeneousDatabase;DataRetrieval目录论文总页数: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 国内外研究现状 PAGEREF_Toc178871847\h1HYPERLINK\l”_Toc178871848"1.2.1ﻩ数据转换服务ﻩPAGEREF_Toc178871848\h1HYPERLINK\l"_Toc178871849"1。2。2 数据转换工具及软件ﻩ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ﻩ适应性ﻩPAGEREF_Toc178871860\h8HYPERLINK\l”_Toc178871861"2.2。3ﻩ独立性ﻩPAGEREF_Toc178871861\h8HYPERLINK\l"_Toc178871862"2.3ﻩ运行需求ﻩPAGEREF_Toc178871862\h9HYPERLINK\l"_Toc178871863"2.3.1ﻩ用户界面 PAGEREF_Toc178871863\h9HYPERLINK\l"_Toc178871864"2.3.2ﻩ硬件接口 PAGEREF_Toc178871864\h9HYPERLINK3 概要设计 PAGEREF_Toc178871866\h9HYPERLINK\l"_Toc178871867”3.1 设计方案ﻩPAGEREF_Toc178871867\h9HYPERLINK3.5ﻩ数据导出设计ﻩPAGEREF_Toc178871871\h15HYPERLINK\l”_Toc178871872”4ﻩ具体实现ﻩPAGEREF_Toc178871872\h16HYPERLINK\l"_Toc178871873"4.1ﻩ开发环境ﻩ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 测试结果 PAGEREF_Toc178871877\h20HYPERLINK\l"_Toc178871878"结论ﻩPAGEREF_Toc178871878\h21HYPERLINK致谢 PAGEREF_Toc178871880\h23http://msdn2.microsoft.com/zh—cn/library/system.char(VS.80).aspx”System.Char对象的有序集合,用于表示字符串。String对象的值是该有序集合的内容,并且该值是不可变的。表1SQLServer数据类型对应本系统数据类型SQLServer数据库里常用数据类型本系统数据类型boolSystem.BooleancharSystem.CharbyteSystem.BytesbyteSystem.ByteushortSystem.UInt16uintSystem.UInt32ulongSystem。UInt64shortSystem。Int16intSystem.Int32longSystem.Int64floatSystem.SingledoubleSystem.DoubletextSystem。String表2Oracle数据类型对应本系统数据类型Oracle数据库里常用数据类型本系统数据类型charSystem.Charvarchar2System.StringncharSystem.Stringnvarchar2System.StringdateSystem.StringlongSystem.Int64rawSystem.Int32blobSystem.Int32clobSystem.Int32nclobSystem.StringbfileSystem。StringrowidSystem.StringintrgerSystem.Int32floatSystem。SinglerealSystem.StringXML数据文件设计使用XML格式数据是消除异构的关键之处。所以一个常见的问题是如何将XML映射到数据库。这种映射常常作为在XML文档和数据库特别是关系数据库之间转换数据的软件的基础。在这个领域,一个重要的特点是映射是双向的,就是说可以把数据从XML文档转化到数据库,也可以从数据库转化到XML文档。即使数据库没有自称支持XML特性,也可以在关系数据库中存储和检索XML文档。这样做需要一个框架来连接关系数据库和XML文档流.本系统将通过Microsoft。Netl.l框架下的DataSet的WriteXML创建具有数据库特征的XML文件。下面是一段本系统所创建并使用的XML数据库文件。通过模型图8可以很容易地理解数据从XML模型到XML文档的转换.该模型图中的数据的类型和结构与前面定义的schema示例一致.TempTempTempTempTESTIDTESTNAMETESTDESTESTIDTESTNAMETESTDESTESTIDTESTNAMETESTDESTEST001吉他古典002贝司烈焰003大师傅fds32图8XML数据模型<?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”msdata:IsDataSet=”true"msdata: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数据所示,可以发现此XML很好的描述了数据库中表的基本特征.你会注意到它包含了标准的XML头〈?xmlversion="1。0"?>,这表示schema自己就是一个XML文档。而任何schema的根元素都必须是schema,它有一个或者多个说明自己的属性。在这种情况下,schema的namespace定义属性(xmlns)会定义名称空间为xs,它将用作文档中所有元素的根名称空间。

我们的schema示例中接下来的元素是annotation,它的作用是代表同其父元素有关的文档。annotation可以包含两个子元素之一,或者是documentation或者是appinfo,或者两者都包含进去。前者用于可读的文档,而后者则用来保存供应用程序处理的指令。接下来我们定义了两个主要的元素(根元素Temp及其子元素TESTID,TESTNAME,TESTDES),它们用在书目文档内,后者采用了两个element元素。这些元素都包含了定义名字的属性和各个元素准许的内容。在此Temp表示表的名称,TESTID,TESTNAME,TESTDES分别表示字段的名称.数据导出设计对于数据的导出后的保存形式,有至少三种方案可以选择:1。XML文本格式;2.保存至数据库服务器;3。Excel文件。三种方案各有优势。但是本着一切以用户的使用感受,以方便各级用户随时使用检索后的数据;同时,也因为微软也为C#操作Excel提供了完备的接口,用Excel来实现,优点在于页面布局设计灵活,使用代码来操作数据要更灵活,更精确.所以选择将导出后的数据以保存为Excel文件。数据导出保存为Excel文件的具体实现,调用了Interop.Excel。dll类文件,通过它将DataGrid中的数据导入Excel中,并显示Excel应用程序,注意调用该方法必须有安装Excel2003应用程序,并且假定DataGrid中绑定的是一DataSet。至此可以完整导出数据至Excel。具体实现开发环境本系统全部的开发工作都在Microsoft。Netl。l开发环境上完成。Microsoft.Netl.l是最新的。Net框架程序,具有极好的安全性,并能在Windows系统操作系统上达到跨平台的效果,未来Microsoft还将支持Linux操作系统,可以说是当前最好的运行平台。该平台可以在Windows98,2000,XP,2003系列操作系统上安装,一旦安装完成就和原来的操作系统无关。更为重要的是对于被检索的数据完全是基于XML的,.NET封装了大量DOM操作类,提高了对XML的开发速度。同时.NET也提供了非常高效的WEB服务开发平台.另外,传统的数据库集成工具都要单独开发数据包装器用于数据库数据和XML之间的相互转化,而.NET环境内置了DATAADAPTER对象能够非常高效的在数据库和XML之间转化数据,这也是本系统选择.NET开发环境的一个重要原因。部分编码详解本系统所引用系统类如图9所示图9引用系统类视图分别用SQL语句读取相应的系统表,获取指定表的字段信息.如图10所示///<summary>ﻩﻩ///合并表数据ﻩﻩ///</summary>ﻩﻩprivatestaticvoidOracleAndSQLServer()ﻩ {ﻩﻩ SQLServerConn();ﻩﻩﻩOracleConn();ﻩﻩﻩuniteDs=oraDs.Copy(); ﻩﻩforeach(DataRowdrinsqlDs。Tables[0]。Rows)ﻩﻩﻩ{ﻩ ﻩobject[]no=dr.ItemArray;//动态加载无视列的数目 ﻩﻩ uniteDs.Tables[0]。Rows。Add(no); ﻩﻩ}ﻩﻩ ReData(uniteDs.Tables[0]);ﻩﻩﻩuniteDs.Tables[0]。AcceptChanges();}本系统对于所有生成的XML文件进行选择后检索信息,对于检索的结果导出.主要导出形式是以Excel表现的。检索代码如下。如图13所示。privatevoidbtnSearch_Click(objectsender,System.EventArgse) ﻩ{ﻩﻩ tryﻩ ﻩ{if(this。XMLShow。SelectedItem!=null&&this。XMLShow.SelectedItem.ToString()!=null&&this。XMLShow.SelectedItem。ToString()!="")ﻩﻩﻩﻩ{ﻩ ﻩﻩﻩstringfile=XMLShow.SelectedItem.ToString();ﻩ ﻩﻩ DataSetds=newDataSet();ﻩ ﻩﻩds.ReadXml(file,XmlReadMode.ReadSchema); ﻩﻩﻩDataSetds1=newDataSet(); ﻩﻩﻩ 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;ﻩﻩﻩ ﻩﻩﻩ//注意程序运行的先后,切忌一行拉通ﻩ ﻩﻩﻩﻩﻩds1.Tables[0].Rows.Add(asd);ﻩ ﻩﻩ ﻩ}ﻩﻩ ﻩﻩ}ﻩﻩ ﻩﻩﻩ this。dgResult.DataSource=ds1。Tables[0].DefaultView;ﻩﻩﻩﻩﻩﻩﻩXMLDs=ds1.Copy();ﻩﻩﻩ ﻩﻩ}ﻩﻩ ﻩﻩelseﻩ ﻩ ﻩ common.showwindow("请选择xml文件!");ﻩﻩﻩﻩﻩﻩ}ﻩﻩ ﻩﻩ catchﻩﻩ ﻩﻩﻩ{ﻩﻩﻩﻩ common.showwindow("xml文件读取异常或其他!”);ﻩﻩﻩﻩﻩﻩ}ﻩﻩ}测试在需求分析和系统设计之后,编码基本完成了,就要开始测试了.测试是为了发现系统运行时的错误,下面就要介绍测试方法。测试方法软件测试的方法和技术是多种多样的.对于软件测试技术,可以从不同的角度加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试.从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。以下是用例测试的方法.获取WebService测试调用连接数据库公用方法connect()Debug公用方法connect(),查看Debug参数中connection的值当connection不为null时,则表示连接成功,否则连接失败。读取XML文件测试调用读取xml文件方法ReadXML()判断返回值vector是否为null当vector不为null时,则读取xml文件成功,否则读取xml文件失败。测试结果系统整体测试功能完全达到,运行时不会出错,不存在功能问题。在一些不确定的因素下会造成BUG的出现,但几率极小,进行及时的调整就会将损失降到最低.对于海量数据的读取和操作存在系统资源耗尽的风险。因为在程序设计之初,对此考虑的不尽周全以致.再者,以现在一般用户的机器性能来做海量数据的操作测试本身就存在不尽合理之处。结论本文主要提出了一种基于WebServices的分布式异构数据集成框架,并给出了基本的技术实现方法。采用该模型可以实现数据源的“即插即用",即允许数据源的动态集成(增加一个新数据源时,只需生成一个WebServices),而且由于所有的数据访问都是通过Web服务对局部数据源实时进行的,所以也很好地保证了数据的一致性和实时性。在论文中具体做了以下的实验研究工作:对传统的数据集成方法进行研究。比较各自的优缺点以及适用范围,选用WebService作为数据集成方法.在MicrosoftVisualStudio.NET2003、FrameworkSDKv1.1、Oracle9i和SQLserver2000基础上构建基于WebService的数据检索系统的开发环境。利用XML文件格式解决数据异构问题,采用web服务的方式实现数据采集。有效地验证了基于服务的数据集成方法解决语义异构的可行性。但从总的情况看来,基于WebServices的异构数据库检索还有很多不完善的地方,本系统还存在很多有待解决的问题,主要的表现有以下几方面:异构数据库检索系统的大多数服务必须手工生成,只有使用某些语言(如Visual。net等)编写服务时可以自动生成服务描述文档,大多数语言还不支持服务描述文档的自动生成.在本课题中,服务的描述文件是根据描述文件模板,由数据源负责手工填写生成的。当服务数量不多的时候,这样做产生的问题并不明显。但是如果服务数量大幅度增加时,就会出现服务描述文件生成速度慢、出错可能性增大的问题,最关键的问题是无法实现数据源服务准备自动化。因此服务文档的自动化生成问题是需要解决的.在处理海量数据的时候没有考虑到对系统性能的优化,合并和检索都存在此不足。系统没有考虑到安全问题,系统中的WebServices都是公开使用的,没有采取保护措施,但是大多数与商业相关的服务需要保证安全性。系统没有提供带认证的加密通信。虽然SSL上的HTTP一般能提供基本的安全性,但是相当多的WebServices(尤其是包含了企业商务逻辑的WebServices)需要更高粒度的安全级别。系统中没有提供身份鉴别机制,因此也就没有为用户赋予相应的权限,这些都不符合商业应用的要求。在下一步的研究中,系统的安全性需要重点研究。在今后的工作中将就上述的三个方面作深入的研究。HYPERLINK"论文格式摸板(2007).doc”参考文献[1]Sunopsis。TheFutureofDataIntegrationTechnologies[J]。AMETAGroupWhite2003。[2]SimonRobinson,ChristianNagel。C#高级编程.北京:2003。[3]胡海璐,彭接文,胡智宇。XMLWebServices高级编程范例.北京:电子工业出社。2003。[4]贝列哲.NETWebServices:架构与实现.北京:中国电力出版社.2004-1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论