网络社区中的数据交换引擎设计_第1页
网络社区中的数据交换引擎设计_第2页
网络社区中的数据交换引擎设计_第3页
网络社区中的数据交换引擎设计_第4页
网络社区中的数据交换引擎设计_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

网络社区中的数据交换引擎设计摘要随着互联网应用的飞速增长,网络社区在互联网上兴起。网络社区平台开放,其数据具有广泛的异构性,这导致数据共享困难,数据的价值无法得到有效的发挥和利用。要解决网络社区中的信息共享,本质上是解决数据的异构问题,而数据交换是解决数据异构问题的关键技术。因此,如何实现网络社区中的数据交换具有非常重大的应用价值和现实意义。本文对数据交换技术的发展和国内外现状进行了分析和总结,详细对三种数据交换技术进行了介绍:基于数据库工具的数据交换、数据交换中间件和基于XML等中间文本的数据交换。这些传统的数据交换技术在网络社区中具有一定的局限性,它们更多地偏重于数据交换功能的实现,且主要针对企业系统中的数据集成。而在网络社区中,数据的结构更为多样、更新速度更快、数据私密性更强,传统的数据交换技术已经无法很好的适应网络社区中的数据交换需求。为解决网络社区中的数据交换问题,考虑到网络社区环境及数据的特殊性,本文借鉴基于中间文本的数据交换思想,引入可视化数据管理技术,设计了一个可通过用户配置的可靠、有效的数据交换引擎。本文构建的数据交换引擎主要由四个模块组成,分别是可视化数据源配置模块、数据输入模块、数据输出模块、系统日志模块。其中,重点对数据输入模块和数据输出模块中的相关技术进行了详细的研究。本文在数据交换引擎中提供了友好的可视化的数据源配置界面,采用日志表与触发器结合的方法监控数据变化并提取数据变化内容,引入MsgPack技术将数据交换内容序列化为二进制格式,提高数据交换效率,在数据传输过程中采用加密及可靠传输策略保障了数据的隐私性和安全性。最后,本文以武汉大学教育社区为背景,进行了数据交换引擎仿真实验。仿真实验系统采用JavaEE架构,将数据交换过程中产生的数据交换内容描叙对象序列化为二进制格式文件,成功实现了Linux下的Oracle数据库系统与Windows7下的MySQL数据库系统之间的有效数据交换和数据同步,验证了本文所设计的数据交换引擎是网络社区下数据交换的有效解决方案。关键词:网络社区;异构数据交换;可视化配置;数据变化捕捉;

ABSTRACTWiththerapidgrowthofInternetapplications,OnlineSocialNetworks(OSN)riseontheInternet.TheOSNhasopenplatform,andisfilledwithheterogeneousdata,whichleadtheproblemofdatasharingandthevalueofthedatacannotbewellused.Therefore,inordertoachieveinformationsharinginOSN,itisessentialtosolvetheproblemoftheheterogeneityofdatabetweensystems.Dataexchangeisoneofthetechnicalmethodstosolvetheproblemofdataheterogeneity.Thus,howtorealizethedataexchangeinOSNisofgreatapplicationvalueandpracticalsignificances.Inthisthesis,thecurrentresearchesanddevelopmentsofdataexchangetechnologyhomeandabroadarestudied.Wemainlyintroduced3kindsofdataexchangetechnology:DataExchangeSystembasedonthedatabasetool,DataExchangeMiddleware,andDataExchangeSystembasedonXML.However,thereisagreatresistanceinthesetraditionalmethodsortools.Theypaidgreadattentionontherealizationofthefunctionalityofdataexchange,andtheyaremoresuitedtothecaseofdataexchangeinenterpriseworld.ButdatainOSNhavemorevariousforms,morefreeexpression,moreprivacyandusersofOSNdemandbetteruserexperience.Aboveall,traditionaldataexchangetechnologyisnotaverygoodsolutiontothedataexchangeinOSN.ConsideringoftheparticularityofdatainOSN,thispaperdesignedanewdataexchangeenginetosolvetheproblemofdataexchangeinOSN,whichprovidesavisualeditortoeasilyconfiguredatasources.Thisdataexchangeengineismainlycomposedoffourmodules:visuallyconfiguringofdatasource,datainputmodule,dataoutputmodule,andsystemlogmodule.Amongthem,wepaidmoreattentiontotherelatedtechnologyofdatainputmoduleanddataoutputmodule.Inthispaper,weprovidedafriendlyvisualeditorforthedatasourceconfiguration,acombinedmethodoflogtablesandtriggersispropsedtomonitordatachanges.Toachievequickerdatatransfer,MsgPacktechnologyisproposedtoSerializingdatatobinaryformat.Intheprocessofdatatransmission,weuseencryptionandreliabletransmissionstrategytoensuretheprivacyandsecurityofdata.Finally,thispapercarriedoutadataexchangeenginesimulationexperiment,takingWuHanUniversityeducationcommunityasthebackground.SimulationsystemusesJavaEEarchitecture,introduceMsgPackserializationtooltoserializetheexchangecontenttobinaryfileintheprocessofdataexchange.ThesystemrealizedthedataexchangebetweentheMySQLdatabasesystemunderWindows7andOracledatabasesystemunderLinuxsuccessfullyandeffectively,whickverifiedthatthedesignofdataexchangeengineproposedinthispaperisaneffectivesolutionofdataexchangeinOSN,itcanprovideeasierdatasourceconfigurationandquickerdatatransferthanthetraditionaldataexchangescheme.Keywords:OnlineSocialNetworks;heterogeneousdataexchange;visualconfiguration;DataChangeCapture;目录摘要 .2.3中的分析可知,RSA算法是一种非对称密钥算法,在加密方和解密方分别使用不同的密钥(公开密钥RK1和专用密钥RK2)对数据进行加密和解密。在数据接收方生成公钥和私钥,将公钥传送给数据发送方(数据源服务器),私钥自己保留,用于解密。生成公钥和私钥方法的核心是欧拉定理,其过程如下:随机选择两个不等的质数p和q(数值不宜太小);计算p、q的乘积n;通过下述欧拉函数,计算大于0小于n,且与n互质的整数的个数φ(n),φ(n)=φ(p)φ(q)=(p-1)(q-1);在1与φ(n)之间随机选择一个与φ(n)互质的整数e;根据以下公式,计算e相对于φ(n)的模反元素d,d≡e-1(modφ(n));将n和e封装成公钥,n和d封装成私钥。由以上过程可以看出,密钥长度越大,密钥被破解的可能性就越低,这种方式很好的保护了数据的安全性。形成公钥和私钥之后,就可分别在数据发送方和接收方进行加密和解密。当需要对明文m进行加密时,我们使用n和e作为加密密钥,加密过程即为计算下式中的c:me

≡c(modn);数据加密方在计算出加密后的密文c后,将密文传输给数据接收方。在解密时,通过下面的式子计算出被加密的原文m,cd≡m(modn);至此,完成加密和解密的全过程。密文传输根据REF_Ref385322570\r\h节中的分析,本文采用tcp套接字编程进行数据的可靠传输,本文数据传输方案设计如下:在数据中心运行一个单独的线程监听某个端口;数据源也运行一个独立的线程向数据中心发起连接请求;建立可靠连接后,数据源发送数据;数据中心的监听端口收到连接后,建立一个新的线程接收来自数据源的数据。本文通过java的.Socket类来实现对tcp的基础操作,这些基础操作包括连接的建立、数据传输、连接的关闭以及socket选项的设置,而socket类的输入输出均通过流的方式实现。在创建socket对象时,需指定本机的ip、端口号以及远程连接服务器的地址和连接端口号,通过REF_Ref386279832\h表43中列出的方法实现与数据读写相关的常用方。表STYLEREF1\s4SEQ表_\*ARABIC\s13javasocket编程接口说明方法功能publicInetAddressgetInetAddress()获取创建socket连接时指定服务器的IP地址publicInetAddressgetLocalAddress()获取创建socket连接时客户端主机的IP地址publicintgetPort()获取创建Socket连接时指定的服务器的端口号publicintgetLocalPort()获取创建Socket连接时客户端的端口号publicInputStreamgetInputStream()throwsIOException为当前的socket对象创建输入流publicOutputStreamgetOutputStream()throwsIOException为当前的socket对象创建输出流publicStringtoString()转换该Socket成一个String.字符串表示publicsynchronizedvoidclose()throwsIOException关闭建立的Socket连接。当通信结束时,应调用该方法关闭Socket连接。若在关闭Socket连接时发生I/O错误则抛出IOException异常在服务器端(数据中心),java提供ServerSocket类来响应客户端(数据源)的连接请求,ServerSocket类提供的常用方法如REF_Ref386279853\h表44所示。表STYLEREF1\s4SEQ表_\*ARABIC\s14javaServerSocket编程接口说明方法功能publicInetAddressgetInetAddress()获取服务器端Socket的IP地址publicintgetLocalPort()获取服务器正侦听的端口号publicSocketaccept()throwsIOException在服务器端指定端口侦听客户端发出的连接请求并与之连接。若等待连接时发生I/O错误则抛出IOException异常publicStringtoString()返回该socket的字符串表示publicsynchronizedvoidclose()throwsIOException关闭该socket连接。当服务器需要关闭,不处理任何其他入站连接时,调用该方法。若在关闭Socket连接时发生I/O错误则抛出IOException异常本文中TCP连接建立的步骤如下,此步骤是在数据交换内容的数据包已经准备好的条件下进行的。数据中心端:创建一个等待连接的ServerSocket对象;调用ServerSocket对象的accept()方法监听客户端的连接请求。连接成功后返回一个用于通信的Socket对象;创建与该Socket对象绑定的数据输入输出流;通过数据输入输出流接收来自数据源端的数据,以完成通信;当客户端断开连接时,关闭各个流对象,结束通信。2-5可循环执行。数据源端:创建指定服务端(数据中心服务器)上指定端口号的Socket对象;创建与Socket对象绑定的数据输入输出流;通过数据输入输出流向数据中心发送加密后的数据,以完成通信;关闭连接和各个流对象,结束数据通信。数据输出模块数据输出模块的功能主要是数据中心接收到来自数据源的数据后,对数据进行解密和反序列化得到描述数据交换内容的数据对象,然后通过JDBC将数据导入到数据中心的数据库中。数据解密和反序列化的方法及过程在前文中已经进行了详细的描述和介绍,本节将不再赘述。数据输出模块需调用数据接口模块中提供的数据操作接口。在导入数据到目的数据库中时,需要读取描述数据库系统的Java描述对象,通过配置进行完成数据库的连接以及各个字段映射字段的转换。通过描述数据交换过程的对象,分步骤导入数据。如REF_Ref388857366\h图47中,为了得到最终导入的数据对象Po3,需根据用户配置的数据表关系,分步骤分别读取数据源描述对象Po1、Po2、Po4、Po5等数据对象内的数据,之后拼装成目的数据表可兼容的数据对象Po3。图STYLEREF1\s4SEQ图\*ARABIC\s17导入数据对象生成流程在进行数据导入时,还需要处理属性类型的兼容性问题,大部分数据库系统中的数据类型大致可以分为数字、日期(时间)、字符串(字符)三种类型,在部分DBMS中,日期类型被处理为数字类型或字符串类型,为了保证数据的统一性,简化交换过程,在此将日期类型数据统一转为字符串类型。在进行数据导入时,只需考虑字符类型的属性和非字符类型的属性,需对各个字段之间的转换进行处理。本章小结本章详细描述了数据交换引擎的设计目标和总体架构,数据交换引擎由四个主要部分构成:可视化数据源配置模块、数据输入模块、数据输出模块、系统日志模块。然后,本章分小节对这几个主要的模块进行了详细的介绍。REF_Ref385227193\r\h4.2节介绍了基于MsgPack的数据标准,对数据交换内容等数据结构进行了设计,同时对MsgPack技术在本文中的应用形式进行了分析和介绍。REF_Ref385427928\r\h4.3节对可视化的数据管理技术进行了介绍,同时,分步骤对本文可视化数据源配置的界面进行了说明,详细介绍了可视化数据源配置的过程。REF_Ref321941426\r\h4.4节和REF_Ref385489545\r\h4.5节分别介绍了本文的两个核心模块:数据输入模块和数据输出模块。在数据输入模块,通过JDBC来整合数据接口模块的所有功能;使用日志法与触发器法结合的方式进行监控数据变化,在获得数据变更内容后,进行MsgPack数据序列化;在进行数据传输前,通过TripleDES算法对数据进行加密,同时使用RSA算法对三级密钥进行加密,使用TCP套接字将数据传输至数据接收方。在数据中心输出模块,先对数据进行解密和反序列化,然后调用数据接口模块中的接口,将数据导入到数据中心的数据库表中。数据交换引擎仿真系统的实验及分析根据前文的分析,本文以教育社区为背景,在此基础上搭建了数据交换引擎仿真系统对本文的工作进行了分析和验证。实验环境准备本文在window环境下用Java语言开发了实验平台,实验系统开发环境如REF_Ref386279945\h表51所示:表STYLEREF1\s5SEQ表_\*ARABIC\s11实验平台开发环境操作系统Windows7开发语言Java、Jsp、html、css、javascriptIDEMyEclipse8.5开发架构JavaEE实验系统完成将武汉大学教务部中的部分教师、学生及课程的数据推送至教育社区数据中心,其运行环境如REF_Ref386279953\h表52所示。表STYLEREF1\s5SEQ表_\*ARABIC\s12实验平台运行环境实验环境源数据系统目标数据系统操作系统CentOS6.0Windows7数据库系统OracleMySQL内存16G4G数据交换平台搭建过程实验步骤本仿真系统针对教育社区进行数据交换实验,验证系统的有效性,保证系统的可扩展性,方便后续教育社区的应用接入。本次实验步骤如下:准备实验环境,在教育社区的数据中心搭建实验平台,安装开发及数据分析所需的环境,包括MyEclipse、Tomcat、MySQL、MsgPack等,建立与教务系统类似的仿真环境;搭建数据交换仿真系统各个模块;分析数据交换内容,整理武汉大学教务部中的用户数据、课程数据及资源数据的数据结构,与数据中心的数据进行对应,设计数据交换相关对象;配置数据源及目的数据库,进行数据交换验证;针对数据增加、修改、删除等操作分别对数据交换的有效性进行验证;分析实验结果。数据准备本实验系统选取武汉大学教务系统中的课程信息作为实验数据,在教育社区中建立课程表存储课程数据。在系统初始化时,需将教务系统中的课程信息导入教育社区中的课程表中,在系统运行期间,需监控数据变化,保证两边的数据同步。实验中用到的数据交换相关内容描述对象如下。图STYLEREF1\s5SEQ图\*ARABIC\s11实验数据关系说明数据库系统信息描述//数据源DataBasesourceDB=newDataBase();sourceDB.setDbType("Oracle");sourceDB.setDbHost("5");sourceDB.setDbPort(12095);sourceDB.setDbUser("educate");sourceDB.setDbPsw("123456");//目的数据库DataBasedesDB=newDataBase();desDB.setDbType("MySQL");desDB.setDbHost("4");desDB.setDbPort(3306);desDB.setDbUser("root");desDB.setDbPsw("123456");源数据信息描述//数据表T_CJGL_LESSONHEAD2012FieldlessionId=newField();lessionId.setFieldName("lessionId");lessionId.setFieldType("integer");lessionId.setFieldLength(32);lessionId.setIsPrimaryKey(true);lessionId.setIsNull(false);lessionId.setDefault(null);FieldteacherNum=newField();teacherNum.setFieldName("teacherNum");teacherNum.setFieldType("char");teacherNum.setFieldLength(32);teacherNum.setIsPrimaryKey(false);teacherNum.setIsNull(false);teacherNum.setDefault(0);FieldteacherName=newField();teacherName.setFieldName("teacherName");teacherName.setFieldType("varchar");teacherName.setFieldLength(64);teacherName.setIsPrimaryKey(false);teacherName.setIsNull(true);teacherName.setDefault(null);FieldmaxStudentNum=newField();maxStudentNum.setFieldName("maxStudentNum");maxStudentNum.setFieldType("integer");maxStudentNum.setFieldLength(32);maxStudentNum.setIsPrimaryKey(false);maxStudentNum.setIsNull(true);maxStudentNum.setDefault(0);FieldapplyNum=newField();applyNum.setFieldName("applyNum");applyNum.setFieldType("integer");applyNum.setFieldLength(32);applyNum.setIsPrimaryKey(false);applyNum.setIsNull(true);applyNum.setDefault(0);TabletableOne=newTable();tableOne.setTableName("T_CJGL_LESSONHEAD2012");List<Field>fields=newArrayList<Field>();fields.add(lessionId);fields.add(teacherName);fields.add(teacherNum);fields.add(maxStudentNum);fields.add(applyNum);//数据表T_RES_LESSONFieldplanId=newField();planId.setFieldName("planId");planId.setFieldType("integer");planId.setFieldLength(32);planId.setIsPrimaryKey(true);planId.setIsNull(false);planId.setDefault(0);FieldlessonName=newField();lessonName.setFieldName("lessonName");lessonName.setFieldType("varchar");lessonName.setFieldLength(64);lessonName.setIsPrimaryKey(false);lessonName.setIsNull(true);lessonName.setDefault(0);TabletableTwo=newTable();tableTwo.setTableName("T_RES_LESSON");List<Field>fields_two=newArrayList<Field>();fields_two.add(planId);fields_two.add(lessonName);//关系表T_RES_PLANTabletableThree=newTable();tableTwo.setTableName("T_RES_PLAN");List<Field>fields_three=newArrayList<Field>();fields_three.add(planId);fields_three.add(lessonId);目的数据表信息描述//目的表edu_lessonFieldkeTouId=newField();keTouId.setFieldName("keTouId");keTouId.setFieldType("integer");keTouId.setFieldLength(32);keTouId.setIsPrimaryKey(true);keTouId.setIsNull(false);keTouId.setDefault(0);FieldkeChengMingCheng=newField();keChengMingCheng.setFieldName("keChengMingCheng");keChengMingCheng.setFieldType("varchar");keChengMingCheng.setFieldLength(64);keChengMingCheng.setIsPrimaryKey(false);keChengMingCheng.setIsNull(true);keChengMingCheng.setDefault(0);FieldchuangJianZhe=newField();chuangJianZhe.setFieldName("chuangJianZhe");chuangJianZhe.setFieldType("integer");chuangJianZhe.setFieldLength(32);chuangJianZhe.setIsPrimaryKey(false);chuangJianZhe.setIsNull(false);chuangJianZhe.setDefault(0);FieldchuangJianZheName=newField();chuangJianZheName.setFieldName("chuangJianZheName");chuangJianZheName.setFieldType("varchar");chuangJianZheName.setFieldLength(64);chuangJianZheName.setIsPrimaryKey(false);chuangJianZheName.setIsNull(true);chuangJianZheName.setDefault(null);FieldxueShengRenShu=newField();xueShengRenShu.setFieldName("xueShengRenShu");xueShengRenShu.setFieldType("integer");xueShengRenShu.setFieldLength(32);xueShengRenShu.setIsPrimaryKey(false);xueShengRenShu.setIsNull(true);xueShengRenShu.setDefault(0);TabletableDes=newTable();tableDes.setTableName("edu_lesson");List<Field>fields_des=newArrayList<Field>();fields_des.add(keTouId);fields_des.add(keChengMingCheng);fields_des.add(chuangJianZhe);fields_des.add(chuangJianZheName);fields_des.add(xueShengRenShu);数据交换测试结果分析实验过程及结果分析根据上一节中对数据源、目的数据库、数据交换内容及过程的定义,数据交换引擎在实验过程中对数据的变化进行了监控,记录了相应的数据变化日志并产生了相应的数据更新文件内容。MsgPack序列化及加密等过程正常运行,保证了数据传输的效率和安全性。系统初始化系统初始化过程是指从源数据向目标数据库的导入初始数据过程,此时目标数据库中没有任何数据,仅对数据库表结构进行了定义。系统根据上述配置中所定义的数据映射关系,读取源数据库中的数据并导入目的数据库中。通过可视化数据配置界面对数据之间的映射关系及实体之间的关系进行配置。配置过程如REF_Ref388857444\h图52所示。图STYLEREF1\s5SEQ图\*ARABIC\s12表关系配置图STYLEREF1\s5SEQ图\*ARABIC\s13属性映射关系配置数据关系配置完成后,系统对其进行分析,并产生相应Java对象对数据交换流程进行描述,如下:ChangeDatadataMapTmp=newChangeData();dataMapTmp.setSourceSystem(sourceDB);dataMapTmp.setDesSystem(sourceDB);dataMapTmp.setSourceTable(tableOne);dataMapTmp.setDesTable(tableTwo);List<Map(Field,Field)>fieldsMapping1=newArrayList<Map(Field,Field)>();fieldsMapping1.put(lessonName,lessonNames);dataMapTmp.setChangeMap(fieldsMapping1);ChangeDatadataMap=newChangeData();dataMap.setSourceSystem(sourceDB);dataMap.setDesSystem(desDB);dataMap.setSourceTable(tableOne);dataMap.setDesTable(tableDes);List<Map(Field,Field)>fieldsMapping2=newArrayList<Map(Field,Field)>();fieldsMapping2.put(lessionId,keTouId);fieldsMapping2.put(teacherNum,chuangJianZhe);fieldsMapping2.put(teacherName,chuangJianZheName);fieldsMapping2.put(maxStudentNum,xueShengRenShu);dataMap.setChangeMap(fieldsMapping2);ChangeDatadataMap2=newChangeData();dataMap2.setSourceSystem(sourceDB);dataMap2.setDesSystem(desDB);dataMap2.setSourceTable(tableTwo);dataMap2.setDesTable(tableDes);List<Map(Field,Field)>fieldsMapping3=newArrayList<Map(Field,Field)>();fieldsMapping3.put(lessonName,keChengMingCheng);dataMap2.setChangeMap(fieldsMapping3);系统根据数据交换流程,以及源数据的配置文件,读取源数据库中的相应数据内容,将源数据中的数据导入目的数据中。数据导入过程中产生的中间文件包括:①.数据交换内容序列化结果文件;②.数据交换内容DES加密文件;③.DES密钥加密文件;④.数据解密并反序列化后的结果文件。数据导入完成后,对比源数据库系统与目的数据库中的内容发现系统可正确进行数据导入工作,完成系统初始化。新增数据测试在源数据库中和目的数据库中分别新增不同的数据,验证数据是否能相互同步。在源数据库表T_CJGL_LESSONHEAD2012中增加一条课头数据:102116788李婷大学生形象设计10412……T_RES_PLAN中相应增加一条数据10211在目的数据库表中新增一条不同的数据:104大学生就业指导116928王鑫105……在源数据服务器中产生日志数据10T_CJGL_LESSONHEAD2012102ADD2014-04-1015:20:28……11T_RES_PLAN102ADD2014-04-1015:20:28……在目的数据库服务器中产生日志数据105edu_lesson104ADD2014-04-1015:34:20……系统读取日志内容,将源数据库中的数据读取出来推送至目的数据库中,目的数据库根据系统日志内容添加数据并将数据同步至源数据库中。更新数据测试在源数据库和目的数据库中分别更新相同的数据,验证产生数据冲突时,系统能否正确地处理冲突,并更新数据。在源数据库中,对于下面这一条数据,修改其课程名称字段。102116788李婷大学生形象设计10412……修改后为102116788李婷女大学生形象设计10412……在目的数据库中,做类似的修改:102大学生形体训练116788李婷104……测试结果表明源数据库与目的数据库中的数据均将课程名称修改为“大学生形体训练”。在数据交换过程中产生的系统日志如下:源数据库:12T_CJGL_LESSONHEAD2012102UDP2014-04-1016:10:12……目的数据库:115edu_lesson102UDP2014-04-1016:30:50……系统根据日志记录时间判断数据新旧,解决数据更新产生的数据冲突。删除数据测试对于数据删除操作,存在两种情况:1.两边对相同的数据分别进行了更新和删除操作;2.两边分别删除了不同的数据。本文对这两种情况分别进行了实验。更新和删除冲突前文已经约定,本文对于更新和删除操作冲突,无论操作时间先后,都选择保留数据,并将数据更新。本文在源数据库中删除ID为102的数据记录,在目的数据库中修改ID为102的数据记录;产生的日志分别如下所示。源数据库:13T_CJGL_LESSONHEAD2012102DEL2014-04-1018:25:39……目的数据库:125edu_lesson102UDP2014-04-1019:30:46……系统分析日志内容,在目的数据库端保留数据,并将保留的数据结果同步至源数据库中。删除不同数据在源数据库和目的数据库中分别删除不同的两条数据,预期结果为源数据库和目的数据库中这两条数据均被删除;产生的日志如下。源数据库:14T_CJGL_LESSONHEAD2012102DEL2014-04-1020:52:21……目的数据库:155edu_lesson105DEL2014-04-1021:36:26……系统分析日志内容,在源数据库和目的数据库均删除日志中所记录的数据。数据交换实验结果分析以上实验结果表明,本文实现的网络社区中的数据交换引擎可以有效地将源数据库中的数据导入目的数据库中。在数据交换引擎工作期间,系统可以有效地检测到源数据库和目的数据库中的数据变化,包括数据的添加、删除、修改等操作,实验证明本文的数据交换引擎设计方案能够满足网络社区中的数据交换需求,达到了预期效果,是一个有效的解决方案。数据交换引擎真实的运行环境与本文的仿真实验系统相比要复杂得多,数据量大且更多变,在真实实现过程中,需对数据交换引擎进行进一步的验证。针对本文所设计的数据交换引擎的特点进行总结如下:方便新系统的接入:新的信息系统或者第三方应用接入社区时,只需要配置相应系统的数据接入文件,在新的系统上安装相应的数据抽取及数据推送服务即可,不仅保证了系统良好的可扩展性,同时也降低了开发的难度。实现高效率的数据交换:数据交换过程中对数据进行了序列化,二进制的数据格式可以很快被计算机识别,保证了数据交换的效率。本章小结本章以教育社区为背景,建立了武汉大学教务系统与教育社区之间的数据交换仿真系统。在数据源与目的数据库的系统和所在环境均不一致的情况下,完成了系统用户数据、课程数据及之间关系的数据交换。验证了本文设计的数据交换引擎的有效性。实验结果表明,本文设计的数据交换引擎可以完成网络社区中异构系统之间的数据交换。系统运行期间,在数据库表内容发生变化时,系统自定义的日志表内产生多条数据,证明数据交换引擎可以自动监控数据的变化,并对数据变化内容进行了详细的记录,系统将变化数据内容从源数据库中推送至数据中心,完成了数据同步功能。实验系统证明了数据交换的有效性,但是本次实验仅为教育社区中的数据交换仿真,在实际应用过程中,数据交换内容定义文件、相关配置等根据数据源的类型需要有所调整。总结及展望论文工作总结论文主要工作数据交换技术从上世纪70年代发展到今天,已经有很多的技术积累,目前业界已有的解决方案主要包括数据库工具法、传统中间件法和基于中间文本的数据交换这三种方法。对于网络社区而言,这三类方法各有千秋,基于中间文本的数据交换技术小巧灵活,最适用于网络社区,然而中间文本格式如xml等文件占用空间较大,常常会影响数据交换的处理效率。本文借鉴其思想,采用MsgPack技术对数据交换内容进行序列化,同时引入可视化数据管理内容增强系统易用性,构建了网络社区中的数据交换引擎。本文主要工作包括:设计了通用的数据交换引擎总体框架;本文研究了已有的几种常见的数据交换架构设计,取长补短,设计了网络社区中的数据交换引擎总体框架。通用数据交换引擎总体框架包括可视化数据源配置模块、数据输入模块、数据输出模块、系统日志模块四个大的模块,其中数据输入模块还包括数据接口模块、数据变化捕捉模块、数据加密解密及文件传输模块。各个模块之间耦合性低,易于扩展。提出了一套通用的数据交换相关标准的定义;数据交换时,通用的数据格式是数据交换平台集成应用的基础,本文使用多个特定的Java对象类型对数据交换内容及过程进行详细定义,主要包括数据库系统描述、数据库表描述、数据交换内容描述、数据交换流程描述。在进行数据交换时,对数据交换内容相关的对象进行MsgPack序列化,以节省文件占用空间、加快文件传输的速度。提出了一个有效的数据变化监控方法;通过研究已有的数据变化监控方法,对各种方法的效率和普适性进行了对比,提出了日志表和触发器相结合的变化监测方法,对触发器和日志表结构进行了设计。以教育社区为应用背景搭建实验平台;通过实验平台,完成了对网络社区中数据交换引擎有效性的验证,根据用户不同的数据操作行为,分别进行了四组实验,验证了本文设计的数据交换引擎在各种情况下的适用性。论文特色引入可视化数据管理技术;在数据交换引擎中引入可视化数据管理技术,让用户自行对数据源进行配置,解决了已有的传统数据交换系统中数据交换配置困难,可操作性差的问题,提升了数据交换引擎的易用性及用户体验。使用序列化技术提高数据交换效率;通过MsgPack技术,对数据交换过程中涉及到的数据变化内容进行序列化,二进制数据可直接被计算机读取,不仅可以提高数据传输的速率,还可以极大地减少了数据交换文件的占用空间,提高数据交换效率。提出触发器与自定义日志表相结合的数据变化监控方法;对各种数据变化监控方法进行比较,提出使用触发器与日志表相结合的数据变化监控方法,提高了数据变化监控的处理效率和适用性。下一步工作本文研究的课题具有良好的应用前景,数据交换不仅可以应用在已有的网络社区中间,同时也可以为数据挖掘、数据分析提供良好的数据基础。然而网络社区中的数据交换是一项较为复杂的工作,由于时间以及水平的局限性,本文对网络社区的数据交换引擎只做了部分工作。随着信息技术法飞速发展,社区中的数据将会越来越庞大和杂乱,这些必然对数据交换提出更高的要求。在数据交换领域,还有很多工作值得进一步探究:半结构化与非结构化的数据交换;本文在实验时,以关系数据库作为研究对象,后续可以将注意力放在半结构化与非结构化的数据上,进行实验,进一步研究其数据的融合技术,提高系统通用性;数据质量评估;在Web2.0时代茁壮成长的今天,数据源中数据的可信性变得越来越难以捉摸,在数据交换过程中,应考虑数据提供者的数据可信性,对数据源进行质量评估,去除冗余数据,消解数据冲突,实现高质量的数据交换。

参考文献王伟军,孙晶.Web2.0的研究与应用综述[J].情报科学,2008,25(12):1907-1913.O'reillyT.WhatisWeb2.0:Designpatternsandbusinessmodelsforthenextgenerationofsoftware[J].Communications&strategies,2007(65).王珊,王会举,覃雄派,等.架构大数据:挑战,现状与展望[J].计算机学报,2011,34(10):1741-1752.张永新.面向Web数据集成的数据融合问题研究[D].山东大学,2012.武琳.

Web

2.0时代信息交流模式分析[J].

情报杂志.

2006,

25(3):

10-12.维基百科,网络社区[EB/OL].:/wiki/网络社区,2014-2-25孟小峰,慈祥.

大数据管理:概念、技术与挑战[J].

计算机研究与发展.

2013(01):

146-169LawtonG.Web2.0createssecuritychallenges[J].Computer,2007,40(10):13-16.田秀霞,王晓玲,高明,等.数据库服务——安全与隐私保护[J].软件学报,2010,21(5):991-1006.AndrioleSJ.BusinessimpactofWeb2.0technologies[J].CommunicationsoftheACM,2010,53(12):67-79.DonaldA.Norman.Thedesignofeverydaythings[M].NewYork:BasicBooks,2002.搜搜百科,数据交换[EB/OL].:/v54135.htm?ch=ch.bk.innerlink,2014-03-04李国杰.大数据研究的科学价值[J].中国计算机学会通讯,2012,8(9):8-15.FaginR,KolaitisPG,MillerRJ,etal.Dataexchange:semanticsandqueryanswering[J].TheoreticalComputerScience,2005,336(1):89-124.SibleyEH,TaylorRW.Adatadefinitionandmappinglanguage[J].CommunicationsoftheACM,1973,16(12):750-759.LumVY,ShuNC,HouselBC.Ageneralmethodologyfordataconversionandrestructuring[J].IBMJournalofresearchanddevelopment,1976,20(5):483-497.ShuNC,HouselBC,TaylorRW,etal.EXPRESS:adataextraction,processing,andrestructuringsystem[J].ACMTransactionsonDatabaseSystems(TODS),1977,2(2):134-174.McHughJ,AbiteboulS,GoldmanR,etal.Lore:Adatabasemanagementsystemforsemistructureddata[J].SIGMODrecord,1997,26(3):54-66.ChamberlinD,RobieJ,FlorescuD.Quilt:AnXMLquerylanguageforheterogeneousdatasources[M]//TheWorldWideWebandDatabases.SpringerBerlinHeidelberg,2001:1-25.FongJ,WongHK,ChengZ.ConvertingrelationaldatabaseintoXMLdocumentswithDOM[J].InformationandSoftwareTechnology,2003,45(6):335-355.GravellM.protobuf-net:Fast,portable,binaryserializationfor.NET[J].SleeM,AgarwalA,KwiatkowskiM.Thrift:Scalablecross-languageservicesimplementation[J].FacebookWhitePaper,2007,5.SumarayA,MakkiSK.Acomparisonofdataserializationformatsforoptimalefficiencyonamobileplatform[C]//Proceedingsofthe6thInternationalConferenceonUbiquitousInformationManagementandCommunication.ACM,2012:48.ErikssonM,HallbergV.DzcomparisonbetweenJSONandProtoBuffordataserializationdz[J].周洪波.物联网:技术,应用,标准和商业模式[M].电子工业出版社,2010.Piatetsky-ShapiroG,JakobsonG.Anintermediatedatabaselanguageanditsrule-basedtransformationtodifferentdatabaselanguages[J].Data&knowledgeengineering,1987,2(1):1-29.梁彦杰,廉东本.

基于消息中间件的数据交换平台传输框架设计[J].

计算机系统应用.

2012,

21(4):

10-13.李亚楠,刘连忠,贾燚星.数据交换研究[J].计算机技术与发展,2008.涂海龙.数据交换技术及其Web应用研究[D].华中科技大学,2011.李雯,谢辅雯,邹道明.XML数据交换技术的应用与研究[J].计算机与现代化,2008(1):91-93.MessagePack[EB/OL].:http://MsgP/.htm,2014-03-19PrusinskiB,PhillipsS,ChungR.ExpertOracleGoldenGate[M].Apress,2011.Yan-huiZ,Teng-xuJ.SolutionofHeterogeneousDataSourcesBasedonPowerBuilderDataPipeline[J].ComputerandModernization,2008,4:035.维基百科,标记语言[EB/OL].:/wiki/标记语言,2014-03-21.HuL,LiP,WangY.ThedesignandimplementationofaSOA-baseddataexchangemiddleware[C]//ServiceSciences(ICSS),2010InternationalConferenceon.IEEE,2010:39-42.ZhaoJH.HeterogeneousDataExchangeTechnologyBasedonXML[J].AppliedMechanicsandMaterials,2013,347:3837-3841.LvJJ,ZhengXY.ResearchforadatasynchronizationmodelbasedonMiddlewareandrulebase[C]//InformationScienceandEngineering(ICISE),20091stInternationalConferenceon.IEEE,2009:2998-3001.李学荣,李莎.基于元数据的异构数据源集成系统设计与实现[J].计算机应用,2006,25(B12):209-210.ArenasM,LibkinL.XMLdataexchange:consistencyandqueryanswering[J].JournaloftheACM(JACM),2008,55(2):7.BormannC.TheBinaryPack1pre2JSON-likerepresentationformat[J].2013.滕东兴,曾志荣,杨海燕,等.一种面向关系型数据的可视质量分析方法[J].软件学报.2013,24(4):810-824.者敬.开放式异构数

温馨提示

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

评论

0/150

提交评论