




免费预览已结束,剩余40页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自适应数据同步适配器的研究与实现 本科毕业论文本科毕业论文 (科研训练、毕业设计) 题题 目:目:自适应数据同步适配器的研究与实现自适应数据同步适配器的研究与实现 姓 名: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称: 指导教师(校外): 职称: 年 月 自适应数据同步适配器的研究与实现 I 自适应数据同步适配器的研究与实现自适应数据同步适配器的研究与实现 摘要 为了实现资源的有效利用以及系统间信息的高度共享,有必要对各种应用系统进行 集成,我们称之为企业应用集成(EAI) 。本文主要研究一种能够在一个未知数据结构、未知 企业信息化应用数据的集成产品,能够在不改变或控制原有企业业务系统的行为或操作规则 和源代码的情况,实现跨应用平台、跨数据库、跨映射匹配关系的数据同步工具。解决企业 信息化过程中的“应用孤岛”和“数据孤岛”难题,做到应用系统集成系统的标准性和通用 性并存、单应用和多任务并存、单向性交换和双向性交换并存、可配置性和易用性并存、功 效性和廉价性并存。 本系统主要采用 XML 技术作为数据交换的标准,运用可配制的数据源,共享集,方案来 配制一个数据同步的过程。研发一个定时器使数据同步过程更加有序的执行。本系统还实现 了日志的查询功能。 第一章:介绍研究的背景及开发使用的工具。 第二章:介绍系统的总体设计,系统的总体功能。 第三章:介绍系统的详细设计,系统的产生过程。 第四章:介绍系统的运行结果,如何使用系统进行数据同步。 第五章:总结,对系统进行总结以及对前景的展望。 关键词 企业应用集成; 适配器; 数据同步; XML; 数据集成 自适应数据同步适配器的研究与实现 II The researching and realizing of data synchronizing adapter Abstract For using resources more effectively and sharing information between systems, we need to integrate all kinds of application systems which we call enterprise application integration. We primarily study an integrated product which can work out in an unknown data structure and enterprise information application. This product can used as data synchronizing tool beyond application and database and mapping relation without changing the business system and code source. We can figure out the problems such as “application island” and “data island” which arise in the process of enterprise information. We use XML as the standard data exchange technology. We set a data synchronizing process with changeable data source and share set and project. We also create an timer to make sure the process can run in schedule. We can also query the log in the system. Chapter 1: This chapter introduces the background of the research and the tools we used. Chapter 2: This chapter introduces the design of the system and shows us the functions of the system. Chapter 3: This chapter introduces the detailed design of the system and tells up how the system was designed. Chapter 4: This chapter shows us how to use the system. Chapter 5: This chapter gives us an summary of the paper and some ideas of the future. Key words data integration; XML; EAI; adapter; data synchronization. 自适应数据同步适配器的研究与实现 III 目录目录 第一章第一章引言引言 1 1.1 研究背景 .1 1.2 开发工具 .2 1.3 运行环境.2 第二章第二章 系统总体设计系统总体设计3 2.1.总体介绍 3 2.2 模块的划分.5 2.3 下载数据策略的选择 .6 2.3.1 下载变化的数据策略.7 2.3.2 下载全部数据的策略.7 2.4 共享集的使用.8 2.5 XML 的运用8 2.6 JDBC 的运用9 2.7 数据源的运用.10 2.8 方案的提出及实现.11 2.8.1 方案的介绍.11 2.8.2 方案的创建.11 2.8.3 方案的管理.11 2.9 定时器的概念.11 第三章第三章 系统详细设计系统详细设计13 3.1 数据库分析.13 3.2 数据库设计.13 3.3 流程图.15 3.3.1 业务流程图.15 3-3-2 数据流程图 16 3.4 系统 UML 图.17 3.4.1 系统用例图.17 3.4.2 系统组件图.18 3.4.3 时序图.19 3.4.3 系统类图.19 3.5 XML 的设计21 3.5.1 XML 文件格式21 3.5.2 XML 文件的写入22 3.5.3 XML 文件的解析22 3.6 树控件的使用.22 3.7 各种数据库的连接及一些操作的处理.23 第四章第四章 系统运行结果系统运行结果24 4.1 数据源操作.24 自适应数据同步适配器的研究与实现 IV 4.1.1 创建数据源24 4.1.2 管理数据源.25 4.2 共享集操作.26 4.2.1 创建共享集.26 4.2.2 管理共享集.27 4.3 方案操作.28 4.3.1 创建方案.28 4.3.2 管理方案.31 结论结论34 致谢语致谢语35 参考文献参考文献36 附录附录37 自适应数据同步适配器的研究与实现 V Contents CHAPTER 1 INTRODUCE.1 1.1 BACKGROUD.1 1.2 THE TOOLS.2 1.3 RUNNING ENVIRONMENT2 CHAPTER 2 SYSTEM DESIGN 3 2.1 INTRODUCE3 2.2 THE PARTITION OF THE FUNTIONS.5 2.3 THE STRATAGE OF DOWNLOAD DATA6 2.3.1 The stratage of download variational data.7 2.3.2 The stratage of download all data .7 2.4 THE SHARED SET8 2.5 INTRODUCE XML8 2.6 INTRODUCE JDBC9 2.7 THE DATA SOURCE.10 2.8 THE PROJECT.11 2.8.1 Introduce project11 2.8.2 Create project11 2.8.3 Manage project11 2.9 THE TIMER.11 CHAPTER 3 THE DETAILED DESIGN.13 3.1 THE ANALYSIS OF DATABASE.13 3.2 THE DESIGN OF DATABASE13 3.3 FLOW CHART15 3.3.1 Business flow chart15 3-3-2 Data flow chart16 3.4 UML DIAGRAM.17 3.4.1 Use case diagram17 3.4.2 Component diagram18 3.4.3 Sequence diagram 19 3.4.3 Class diagram19 3.5 THE DESIGN OF XML21 3.5.1 XML format21 3.5.2 How to write XML 22 3.5.3 3 How to parse XML22 3.6 THE USE OF JTREE.22 3.7 THE CONNECTIONS OF DIFFERENT DATABASE.23 自适应数据同步适配器的研究与实现 VI CHAPTER 4 HOW TO USE SYSTEM.24 4.1 DATASOURCE24 4.1.1 Create Datasrouce 24 4.1.2 Manage Datasource25 4.2 SHARED SET26 4.2.1 Create shared set26 4.2.2 Manage shared set27 4.3 PROJECT.28 4.3.1 Create project28 4.3.2 Manage project31 SUMMARY .34 THANKS.35 REFERENCES.36 自适应数据同步适配器的研究与实现 1 第一章第一章引言引言 1.11.1 研究背景研究背景 目前中国,尤其是我省中小企业在数据链、信息链和资金链上,如果能够实现数据共享, 可以使更多的人更充分地使用已有数据资源,减少资料收集、数据采集等重复劳动和相应费 用。但是业务应用系统通常是分别实施的,有些是自主研发的,有些是基于不同厂商的产品, 由于不同厂商提供的数据来自不同的途径,其数据内容、格式和质量千差万别,有时甚至会 遇到数据格式不能转换或数据转换格式后丢失信息等棘手问题,严重阻碍了数据在各部门和 各软件系统中的流动与共享,最终导致大量的信息无法共享,不能随业务运作顺畅的流转, 业务流程被迫割裂,需要过多的人工介入,效率下降。因此,如何对数据进行有效的集成管 理已成为增强企业商业竞争力的必然选择。 常规的数据库复制或系统接口定制,尽管可以部分解决企业应用系统间的集成问题,然 而数据的不确定性和频繁变动以及这些系统在实现技术和物理数据上的紧耦合关系,导致一 旦应用发生变化或数据变动,整个体系将不得不随之修改。因此由硬编码定义的接口中每一 次数据移动都要考虑到这种移动会影响到企业原有系统编码。同时,数据库复制也只能够针 对同类数据库,无法实现在多个异构数据元的情况下的数据协同和管理。大型企业可以通过 购买高额的国外商业集成软件或修改自主研发产品的源代码定制需求;中小企业在缺少信息 化资金、 高端 IT 人才的情况下无法自主实现,迫切需要一种能够面向多种数据库系统,适 应多种业务系统之间的网状交叉异构数据元下的数据交换需求。 随着 Internet/ Intranet 技术的发展,企业的信息化程度越来越高。但是,在企业在信 息化过程中,往往面临如下的一些问题: 企业的计算环境由各种不同平台所组成,运行着许多异构应用系统,系统间的数据难以共 享; 越来越多的系统是分布式的,增加了系统间信息访问的难度; 企业存在着大量遗留系统以及新开发的系统,而这些系统之间又是相互独立的。 为了实现资源的有效利用以及系统间信息的高度共享,有必要对各种应用系统进行集成, 我们称之为企业应用集成(EAI) 。数据位于企业信息系统的中心位置,因而进行企业应用集 自适应数据同步适配器的研究与实现 2 成首要的是要实现数据的集成。XML 作为一种可扩展性标记语言,其自描述性使其非常适合 不同应用间的数据交换。作为一个数据交换的标准,XML 在数据集成领域发挥着越来越重要 的作用。 1.21.2 开发工具开发工具 JDK1.4.2:JAVA 是一种跨平台的语言,它有着编写一次,到处运行的优点,这样适合系 统的跨平台要求。 ORACLE:ORACLE 是现在最流行的企业级数据库,用 ORACLE 来测试数据同步功能应该是 最好不过的,而且 ORACLE 也是存储系统本身数据的数据库。 Eclipse:现在最流行的 JAVA 开发工具,以其开源的优势赢得好评。 Rose rational:主要用于一些 UML 图的处理。 Visio:用于一些图的处理。 1.31.3 运行环境运行环境 装有 JDK 的 Windows 环境,其它系统也可以运行,前提是要装有 JDK1.4.2 或更高版本 的 JDK。 自适应数据同步适配器的研究与实现 3 第二章第二章 系统总体设计系统总体设计 2.1.2.1.总体介绍总体介绍 主要研发一种能够在一个未知数据结构、未知企业信息化应用数据的集成产品,能够在 不改变或控制原有企业业务系统的行为或操作规则和源代码的情况,实现跨应用平台、跨数 据库、跨映射匹配关系的数据同步工具。解决企业信息化过程中的“应用孤岛”和“数据孤 岛”难题,做到应用系统集成系统的标准性和通用性并存、单应用和多任务并存、单向性交 换和双向性交换并存、可配置性和易用性并存、功效性和廉价性并存。 图表 2-1 与不同的系统的关系图 自适应数据同步适配器是一个多对多的系统,系统可以连接多个不同的数据库,只要设 置相应的数据源,就可以连接到相关的数据库上。每一个数据源代表着一个数据库。该系统 将服务端与客户端集成在一起,即将原本属于两个系统的下载和上传数据集成在一起,每一 个系统都可以当成服务端和客户端,而且服务端与客户端都可以应对多个库的同步需求。 系统与外界数据库的关系如图: 自适应数据同步适配器的研究与实现 4 图表 2-2 系统与外界连接的框架图 由于各种数据库结构差别很大,各种数据格式不尽相同,对于同步的数据的兼容性有很 大的限制,所以急需一个中间的标准来转换从数据库提取的数据。这几年 XML 数据转换的 事实上的标准,它是一种纯文本格式,这很好地解决了数据库中复杂的数据格式,所以本系 统采用了 XML 技术作为数据转换的技术。具体的 XML 技术及实现本文后面还会详细介绍。 由于数据库的底层存在很大的区别,对数据库的操作也存在很大的不同,所以需要一种 对数据库的操作方式,能够掩盖数据库底层的繁琐。JDBC 正是这种方式的很好选择,JDBC 通过提供一套标准的 API,将数据库的底层实现交给了驱动器,而现在各种数据库已经有了 很好的驱动器,这样一来,对各种数据的操作就可以有统一的接口。具体的 JDBC 技术及实 现本文后面还会详细介绍。 虽然已经有了 XML 作为数据转换的技术,但是,当客户端接到一个 XML 文件时,怎 样去配制呢?如何知道 XML 文件里的数据要上传到数据库中的哪一个字段呢?所以本系统 采用了共享集这样的一个概念,它其实就是一套字段名,对应着要转换的数据库的每一个字 段。有了这样的概念,在上传到数据库时,只要相应的配制,就可以将数据各就各位,而不 会出现数据对错字段的现象。具体实现本文后面会详细介绍。 一次系统的同步过程就是:从源数据库中提取数据转换成 XML 文件XML 文件解 析 XML 文件上传到目标数据库。 系统框架如图: 自适应数据同步适配器的研究与实现 5 图表 2-3 数据同步适配器框架图 上图只是说明一个数据同步的过程,而这种过程如何有序地进行以及如何进行多任务的 同步,则还需要更多的策略和技术。本系统采用了方案的概念及定时器的功能,方案的管理 使系统能够进行多任务的数据同步,而定时器则保证数据同步的有序进行。这些技术的具体 内容及实现本文后面都会详细说明。 2.22.2 模块的划分模块的划分 用户管理数据同步时,要做一些配制及管理工作,包括:管理数据源,管理共享集,管 理方案等工作。 包括用户触及的三个模块,以及系统自动完成的三个模块:数据转换成 XML 文件,解析 XML 文件,系统本身数据库操作。共有六个模块。下面简单介绍一下各个模块的功能。 1. 数据源模块,包括子功能: 创建数据源 管理数据源 对数据源相应的数据库的操作 2. 共享集模块,包括子功能: 创建共享集 管理共享集 3. 方案模块,包括子功能: 创建方案 自适应数据同步适配器的研究与实现 6 管理方案 方案修改删除 定时器管理 4. 数据转换成 XML 文件模块: 转换 XML 文件 创建转换的定时器任务 5. 解析 XML 文件模块: 解析 XML 文件 创建解析的定时器任务 6. 系统本身数据库模块:包括对数据库的查询,修改,删除等。 以上每一个大的模块都放在相应的包中: 表格 2-1 模块对应与包的对应表 模块名称模块名称包名包名 数据源模块 datasource 共享集模块 sharedset 方案模块 main 数据转换成 XML 文件模块 dbtoxml 解析 XML 文件模块 xmltodb 系统本身数据库模块 db 以上是各个模块的主要功能及对就的物理包。每个模块之间是相互依赖的,如系统本身 的数据库模块是系统得以运行的基础,所有的模块都要依赖这个基础模块,再如方案模块本 身得以创建,则离不开数据源模块及共享集模块的支撑。 2.32.3 下载数据策略的选择下载数据策略的选择 要达到数据同步,则下载数据非常重要,下载数据可分为两种策略: 下载变化的数据,则只需修改变化的数据 下载全部的数据,则要更新整个表 下面说说这两种策略。 自适应数据同步适配器的研究与实现 7 2.3.1 下载变化的数据策略下载变化的数据策略 下载变化的数据,指通过某种方法,捕获一段时间内新增的,修改的,删除的数据,一 般有一定时间的限制。 变化数据提取按照数据变化的捕获方法的不同,通常有四种: 1. 触发器法:在源表中创建相应的触发器,当源表进行修改、插入和删除等 DML 命令时,触 发器被唤醒,将变化数据提取出来,这种方法占用的系统资源较多,因为对源表的每 一次 DML 操作,都伴随触发器的操作。 2. 日志法:通过分析数据库日志的信息来捕获源库的变化序列,由于数据库日志的格式 不是公开的,因而只能基于特定厂家提供相应的数据库日志分析工具或接口,否则要 开发一个基于日志变化捕获程序,而开发这样的程序非常困难。 3. 时间戳法:给每个源表添加一个时间字段,记录每个表的修改时间,这种方法对效率影 响较小,但需要修改整个系统。 4. API 法:在应用程序和数据库之间引入一类中间件由它提供一系列 API ,这些中间件 在完成应用程序对数据库修改的同时,也把源表的变化序列记录下来,从而达到捕获 的目的。一些不经过 API 的操作,如在控制台命令行方式下键入 DML 语句,它们所引 起的数据变化是 API 无法捕获的。 以上四种方法各有利弊,要么需要修改原有的应用系统,要么影响原有应用系统的运行效 率。 2.3.2 下载全部数据的策略下载全部数据的策略 还有一种策略就是定时下载源表的全部数据,然后删除目标表的所有数据,更新成源表 的所有数据。这么方法看起来很笨重,很耗资源,但是有一个优点,只要删除与更新是同一 事务的,则可以保证数据库肯定是一致的,不管对源表进行新增,修改,还是删除操作,当 然有一定的滞后性,这每一种策略都会有的,与所选的策略无关,而与更新的频率相关的。 更新整个表的策略只能适合比较小的数据库,而且更新时会耗较多的资源,但是基于每 一个系统都有其忙与空闲的时候,如果能在空闲的时候来做这个更新,而不在系统忙的时候 占用系统将源,也是可以考虑的。前而的几种方法都或多或少在系统运行的每一时刻占用一 定的资源。系统越忙,它们占用的资源越多,这不利于系统平时的运行。而更新整个表只要 在同步的时候才会占用资源,其它是不占用的,基于这个原因,如果数据库不大,折算一下, 自适应数据同步适配器的研究与实现 8 也是可行的。而且它编程简单,不用对数据库作任何修改就,数据库只要提供一个接口,就 可以作数据同步的。基于以上原因,来系统使用更新整个表的策略。 2.42.4 共享集的使用共享集的使用 由于不同的系统很可能是由不同的公司设计的,相应的数据库也不是同一个公司设计, 即使是同一个公司设计,也无法保证他们的是一样的。可能有两张表,它们存储着同样的数 据,但其物理方式可能完全不一样的,而最大的不同可能在于字段名的不同,所以同步的两 个表,如果同时知道他们的物理存储方式,则很难进行配制,可能会发生字段对错的问题, 为了解决这个问题,本系统尝试采用一个新的概念:共享集。 共享集其实就是一系列的字段名,它尝试着在不同的表之间扮演着中间标准的角色。服 务端只需知道源表及共享集,将源表映射到共享集。而客户端则只需知道目的表及共享集, 就可以将目的表映射到共享集。 共享集的工作流程:将源表中的字段映射到共享集的字段,将数据以共享集的字段作为 字段存储在 XML 文件中,对 XML 进行解析,将数据按共享集的字段提取出来,按客户端配制 的映射方式,将数据更新到共享集对应的目的表的字段中。 具体流程如图: 图表 2-4 共享集的工作流程 2.52.5 XMLXML 的运用的运用 XML(Extensible Markup Language, 可扩展标记语言) 是由 W3C 组织制定的一种通用语 言规范, 是一个用于定义标记语言的元约束和元语言的集合。由于 XML 以与平台、语言和协 自适应数据同步适配器的研究与实现 9 议无关的格式描述和交换数据,其自描述性使其非常适用于不同应用间的数据交换, 而且这 种交换不是以预先规定的一组数据结构定义为前提, 因而迅速被业界广泛地采用。 XML 文档分析器位于 XML 文档和使用文档的应用程序之间, 它通过标准 API 来向应用程 序提供数据。主要有两种标准 API:SAX (XML 的简单 API)和 DOM (文档对象模型)。 SAX 通过把某个重要的事件(如元素或文档的开始和结束及接受字符数据等) 通知发送 给 DocumentHandler 对象设计出文档。开发者的工作就是编写在 DocumentHandler 接口中定 义的事件处理方法, 并在处理文档的过程中激发它们, 因而要求 SAX 应用程序应至少实现 DocumentHandler 接口中的某些方法。由于 HandlerBase 实现了该接口, 实际开发中, 应 用程序常通过扩展 HandlerBase 类来重载其中的方法。在 DocumentHandler 接口中重要的方 法主要包括: startDocument()、end Document ()、startElement ()、endEle2ment () 和 characters() 等。 DOM 以文档对象模型的形式把一个 XML 文档映射为节点树的结构形式, 应用程序便可通 过遍历该节点树的方法检索、修改树及其他任何处理工作。DOM 的每个节点对应于 XML 文 档组件中某种对象(如元素、处理指令、注释和 CDA TA 等)。DOM 分析器 DocumentBuilder 由 DocumentBuilderFactory 生成, 用于生成从 XML 内容流中创建 XML 的 Document 对象封 装。该对象重载了 Node 接口的所有访问方法(如 getParentNode ()、getFirstChild()、 getLasChild() 等) , 从而可利用这些方法通过前序、中序或后序的方法遍历整个 Node 树。 在遍历 Node 过程中, 应用程序可以作想要的处理。另外, SAX 和 DOM 这两个包也可以互相 实现。应用程序可以在访问 DOM 结构的数据时产生 SAX 事件; 相反, 也可以有适当的 SAX 事件处理器来产生 DOM 结构。 本系统采用 DOM 来解析 XML 文档。 2.62.6 JDBCJDBC 的运用的运用 JDBC TM 是一种用于执行 SQL 语句的 Java TM API,有意思的是,JDBC 本身是个商标名 而不是一个缩写字;然而,JDBC 常被认为是代表“Java 数据库连接(Java Database Connectivity)”。它由一组用 Java 编程语言编写的类和接口组成。JDBC 为数据库开发人 员提供了一个标准的 API,使他们能够用纯 Java API 来编写数据库应用程序。 有了 JDBC,向各种关系数据库发送 SQL 语句就是一件很容易的事。换言之,有了 JDBC API,就不必为访问 Sybase 数据库专门写一个程序,为访问 Oracle 数据库又专门写一个程 序,为访问 Informix 数据库又写另一个程序,等等。您只需用 JDBC API 写一个程序就够了, 自适应数据同步适配器的研究与实现 10 它可向相应数据库发送 SQL 语句。而且,使用 Java 编程语言编写的应用程序,就无须去忧 虑要为不同的平台编写不同的应用程序。将 Java 和 JDBC 结合起来将使程序员只须写一遍程 序就可让它在任何平台上运行。 Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据 库应用程序的杰出语言。所需要的只是 Java 应用程序与各种不同数据库之间进行对话的方 法。而 JDBC 正是作为此种用途的机制。 对于连接不同的数据库,JDBC 需要不同的驱动器,不同的连接串,但是标准的 API,正 是本系统所需要的,因为本系统要连接不同的数据库,对不同的数据库进行操作,JDBC 使 编程更加简单。 2.72.7 数据源的运用数据源的运用 本系统的数据源与 JAVA 中的数据源有相似之处,但有很大的不同,它不仅提供了一个 数据库的连接方式,而且还包括对数据库具体数据的操作。 对于数据源的管理,就是对相应数据库的管理,由于一个数据库可能不仅仅同步一个表, 它可能有多项同步任务需要执行,所以有必要配制好的数据源保存下来,以备以后使用,而 且应该有对其管理的功能。 数据源应该包括下面几个参数:域名或 IP,SID,用户名,密码,还有一个很重要的参 数就是数据库类型,因为本系统涉及不同的数据库,所以数据库类型是数据源能否连接成功 的重要参数。这几个参数也是 JDBC 连接数据库的必须知道的参数。本系统模仿了像 WebLogic 这样的中间件配制数据源实现方式。 数据源还有一个很大的功能就是对数据库的操作。正如上面所说:对数据源的管理,就 是对数据库的管理。一个数据源代表着一个数据库,我们对这个数据库的操作就是对这个库 的一些表进行同步,所以数据源提供的对数据库的操作都是围绕着数据同步的。比如可以提 取所有的表,以供用户选择需要同步的源表或目的表;可以提取某个表的所有字段,以供用 户选择相应的字段。还有提取表的数据,删除表的数据,更新表的数据等。 自适应数据同步适配器的研究与实现 11 2.82.8 方案的提出及实现方案的提出及实现 2.8.1 方案的介绍方案的介绍 本系统是一个多任务的系统,管理多任务是本系统的一个重要的功能之一。基于此,本 系统采用了方案的概念。 方案就是对一个同步过程的配制,同步的任务,则是一个运行的方案。由于本系统将服 务端与客户端集成在一起,所以方案也就分成了两种:下载方案和上传方案。 下载方案的过程就是从数据库提取了数据到转换成 XML 文件的过程。而上传过程则是 XML 文件到数据库数据的过程。将一个同步过程分成下载和上传两部分,可以提高 XML 的利 用率,这样,一个 XML 文件就可以被多个数据库利用,可上传到多个数据库中,这样可以达 到一对多的功能,如果一个源表要同步到多个目的表中,则可以避免重复下载源表的数据, 达到一次下载,多库同步的功效。 方案包括两方案的功能:创建方案和管理方案。 2.8.2 方案的创建方案的创建 一个方案就包括下面的参数:方案名,方案类型,数据源,表,同步的字段,共享集, 表字段与共享集字段的映射。注意:方案名应该是不同的,而且应该是容易识别的。同时方 案类型也要注意选择,是下载还是上传,这有很大的差别。 创建完一个方案,并不说明这个方案就马上运行,它只是说明了有这么一个数据同步的 需求。如何配制方案的运行则在管理方案中。 2.8.3 方案的管理方案的管理 管理方案主要是在于管理方案的运行:删除方案,执行方案,修改对应的 XML 文件,任 务的定时器。方案管理,其实就是整个数据同步过程的管理,它使系统使用更加友好。 2.92.9 定时器的概念定时器的概念 由于系统是多任务的系统,所以会涉及到好几个同步过程,这就会要考虑各个库的使用 情况,而各个库的空闲情况不同,数据库的使用情况不同,有的可能要每天更新一次,有的 自适应数据同步适配器的研究与实现 12 可能要一周更新一次就可以,有的则可能要几个小时就要更新一次,所以就需要一个比较好 的定时器。 该定时器应该包括以下的定时功能:每周期一次,每天一次,每周一次,每小时一次。 每周期一次:主要是从现在开始,可选择每几个小时执行一次。 每天一次:可以设置每天的某个小时,某分钟执行,周期是每一天。 每周一次:可以选择每周的星期几执行,可设置小时,分钟。 每小时一次:可设置分钟。 自适应数据同步适配器的研究与实现 13 第三章第三章 系统详细设计系统详细设计 3.13.1 数据库分析数据库分析 在本系统中,需要存储的数据主要还是在数据源、共享集、方案上。 一个完整的数据源应该包括:数据源名称,域名或 IP,SID,数据库类型,用户,密码。 共享集则需要:共享集名称,所有的字段名。 方案则复杂一点,构成一个方案的包括:方案名称,方案类型,数据源,共享集,同步 的表,表字段与共享集之间的映射。除了以上之外,方案还要包括定时器中的一些必要的信 息。 3.23.2 数据库设计数据库设计 根据以上的分析,得出下面的一个数据库模型图: datasource id name ip sid username password sharedset id name setobjects id setobject plan id name dsid ssid filename frequence period week hour minute planmap pid fieldname mapname 图表 4-1 数据库模型图 数据源的表为:datasource. 共享集有两个表:sharedset,setobjects. 自适应数据同步适配器的研究与实现 14 方案有两个表:plan,planmap. 下面分别各表的字段加以说明。 表 datasource: 表名:表名:datasourcedatasource 字段名字段名描述描述 Id 主键,由 sequence 提供 Name 数据源名称 Ip 域名或 ip 地址 Sid 数据库名称 Username 数据库用户名 Password 密码 表 plan 表名:表名:planplan 字段名字段名描述描述 Id 主键,由 sequence 提供 Name 方案名 Ssid 外键,与 sharedset.id 对应 Dsid 外键,与 datasource.id 对应 Filename XML 文件的位置 Frequence 定时器类型 Period 周期类型 Week 每周星期几 Hour 小时 Minute 分钟 表 planmap 表名:表名:planmapplanmap 字段名字段名描述描述 Pid 外键,由 plan.id 提供 Fieldname 字段名称 自适应数据同步适配器的研究与实现 15 Mapname 映射到共享集的字段名 表 sharedset 表名:表名:sharedsetsharedset 字段名字段名描述描述 Id 主键,由 sequence 提供 Name 共享集名称 表 setobjects 表名:表名:setobjectssetobjects 字段名字段名描述描述 Id 外键,与 sharedset.id 对应 Setobject 字段名 3.33.3 流程图流程图 3.3.1 业务流程图业务流程图 本系统的业务流程其实也很简单,一个同步过程分成两个部分:下载与上传。根据创建 一个方案所需的条件:数据源,共享集。所以创建方案前须先创建相关的数据源与共享集, 除非已经存在需要的数据源和共享集。在创建方案后,就要管理方案,管理方案的两个任务: 选择对应的 XML 文件和设置定时器。然后系统根据设置的定时器及方案的类型在后台循环执 行任务。 系统的业务流程如下图: 自适应数据同步适配器的研究与实现 16 图表 3-2 业务流程图 3-3-2 数据流程图数据流程图 数据同步过程说穿了就是将源数据库中的数据通过某一种方式存储到目标数据库中。这 中间的过程,不同的系统有对数据有着不同的处理。因为数据的流向是数据同步的关键,所 以这里有必要再说一下数据的流程。 同步过程一开始,根据已经配制好的下载方案,系统通过 JDBC 从源数据库抓取数据, 通过相应的处理,再写入到 XML 文件。之后根据配制好的上传方案,系统通过解析 XML 文件, 经过处理,由 JDBC 上传到目标数据库。 数据流程如下图: 自适应数据同步适配器的研究与实现 17 图表 3-3 数据流程图 3.4 系统系统 UML 图图 3.4.1 系统用例图系统用例图 一般情况下,用户在系统中有几个任务:创建数据源,管理数据源;创建共享集,管理 共享集;创建方案,管理方案,管理定时器。 这些都是用户要做一个数据同步所要做的事,有些是可以共用的,像数据源,一般常用 的几个数据源,可以事先配制。还有共享集,经常遇到的哪些表同步,可以制定一个共享集 标准,共享集的作用就是当标准,如果存在不同的共享集行使着相同的功能,那是不好的。 系统的用例图如下图: 自适应数据同步适配器的研究与实现 18 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 图表 3-4 系统用例图 3.4.2 系统组件图系统组件图 组件在系统中的表现形式就是包,系统主要的包: main,db,datasource,sharedset,dbtoxml,xmltodb。 包之间的依赖关系如下图: main datasourcesharedsetdb dbtoxmlxmltodb 图表 3-5 系统组件图 自适应数据同步适配器的研究与实现 19 3.4.3 时序图时序图 一个完整的任务的执行要经过四个模块:开始时,在数据源模块中创建一个数据源,之 后进入共享集模块中创建共享集。当这些都创建完毕,就可以创建方案,创建完方案后,只 是一个停止的方案,还要设置定时器,才能执行定时数据同步任务。 一个任务的执行如下图所示: 享 享 享享 享 享享 享享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 享 图表 3-6 任务执行时序图 3.4.3 系统类图系统类图 系统的类图如下: 自适应数据同步适配器的研究与实现 20 CreateDataS ourceDlg ManageDSDlg DataSource CreateSDDlg ManageS DDlg DBInfo ReadProp erties MainFrame DataBase UpTask ParseXML DownTask ToXML SingleFieldM apPanel CreatePla nDlg FieldDlg TimeTask 图表 3-7 系统类图 从上图可看出,主要的类基本与 MainFrame 类有关系。 下面按其所在的包讲讲各个类的主要功能: db 包: DBInfo:数据库基础类,提供查询、更新、增加数据源、共享集、方案等信息。 对本系统数据库的操作均在此类中,是其它所有类的基础,没有这个类,则程 序无法正常运行。 DataBase:提供数据库类型等参数。 ReadProperties:读取数据库配制文件。 datasource 包: DataSource:确定一个同步的数据库连接,以及在此数据库上的数据操作,比 如查询所有的表名,查询某个表的所有字段名,查询表中的数据,删除数据, 更新数据等。 CreateDataSourceDlg:对话框类,创建数据源的对话框。 MaganeDSDlg:对话框类,管理数据源的对话框。 sharedset 包: CreateSDDlg:对话框类,创建共享集的对话框。 自适应数据同步适配器的研究与实现 21 ManageSDDlg:对话框类,管理共享集的对话框。 dbtoxml 包: ToXML:将数据写入 XML 文件。 DownTask:继承 TimerTask,下载数据的任务。 xmltodb 包: ParseXML:解析 XML 文件。 UpTask:继承 TimerTask,上传数据的任务。 main 包: CreatePlanDlg:对话框类,创建方案的对话框。 ManagePlanDlg:对话框类,管理方案的对话框。 SingleFieldMapPanel:一个字段映射到共享集的一个字段的类。为 CreatePlanDlg 所用。 FieldDlg:对话框类,批量选择字段,为 CreatePlanDlg 所用。 3.53.5 XMLXML 的设计的设计 3.5.1 XML 文件格式文件格式 XML 文件是数据同步的枢纽,是系统的重要组成部分。有必要给 XML 设计一个统一的格 式。 XML 文件的根元素是 table,代表一个表。Table 下面是 row 元素,表示一个行,可以有 很多个 row 元素,更新的数据有多少行,row 元素就有多少。Row 下面则是当前行中每一个 数据的元素,元素的名称就是数据库中的表中字段映射到共享集中的字段名。而元素的值则 是数据库中相应的数据。 XML 文件的一个例子如下图 自适应数据同步适配器的研究与实现 22 vlaue1 value2 4 ok 图表 3-8 XML 格式 3.5.2 XML 文件的写入文件的写入 XML 文件的写入跟普通文件的写入是一样的,先用文件名创建一个文件,再往文件中写 入数据。根据提供的数据,往文件循环地写入每一行,使写入的数据遵循 XML 文件的格式。 3.5.3 XML 文件的解析文件的解析 XML 文件的解析技术,前面已有介绍,主要是用 DOM 技术。 根据提供的文件名,将文件读入解析,按照方案配制的映射关系,只需读入有配制映射 的字段的数据,而不必读入所有的数据,数据放入一个集合中,再对数据进行处理。 3.63.6 树控件的使用树控件的使用 本系统涉及到数据源,共享集,方案的管理,如何更好地管理这些资源,树控件应该是 最好的选择。 从数据库中读取所有资源的名称,将这些名称显示在树控件上,在树控件上加一个事件, 当选择某个资源时,再从数据库中提取资源的详细信息,通过其它控件显示出来。 当删除某一个子节点时,树控件应刷新该刷新一下,将删除的节点去掉,同时,数据库 也应该作相应的改动。 自适应数据同步适配器的研究与实现 23 3.73.7 各种数据库的连接及一些操作的处理各种数据库的连接及一些操作的处理 由于本系统的数据库同步是用于各种不同的数据库的,所以对于各种数据库的连接及操 作会有一些麻烦,好在 JDBC 使连接变得简单了。但是,对于不同的数据库,JDBC 连接还是 有一些不同的地方,主要在加载驱动程序的字符串以及连接数据库的连接串不同,所以只要 在这两个地方处理一些,就可以解决问题了。 可以让用户创建数据源,选择相应的数据库类型,根据用户提供的数据库类型,选择相 应的驱动程序和连接串。 还有一个操作不一样,就是查询所有的表名时,各个系统是不一样的。查询表名一般是 要查询数据库的系统表的,而系统表在各个数据库中是不一样的,所以只好为每一种查询写 一个特殊的 SQL 语句。这样系统根据数据库的类型选择相应的 SQL 语句。 自适应数据同步适配器的研究与实现 24 第四章第四章 系统运行结果系统运行结果 4.14.1 数据源操作数据源操作 4.1.1 创建数据源创建数据源 进入主界面,选择菜单数据源创建数据,如下图 图表 4-1 进入创建数据源对话框 由上面的操作进入创建数据源的对话框,如下图所示。按图上所示,选择正确的数据库 类型,填入你想要的数据源名称,根据你的数据库填写正确的域名或 IP,SID 以及相应的用 户名和密码。 填完所有的信息后,单击测试,可对所填写的数据库进行连接测试,如果数据库是正确 的,则会弹出一个连接成功的提醒框,如果所填的信息存在错误,则连接不成功,会弹出一 个连接失败的提醒框。 自适应数据同步适配器的研究与实现 25 下图创建数据源的对话框: 图表 4-2 创建数据源对话框 单击确定,如果成功,则弹出创建成功的对话框,若失败,则弹出创建失败的对话框。 4.1.2 管理数据源管理数据源 选择菜单数据源管理数据源,如下图: 图表 4-3 进入管理数据源对话框 单击后,进入管理数据源的对话框。如下图所示:左边的树结构是已创建的所有的数据 源名称,右图则是数据源的具体信息。当单击某个数据源的叶子时,右边就会自动产生该数 据源相应的信息。修改里面的信息后,单击更改就可以修改数据源。单击删除,弹出一个对 自适应数据同步适配器的研究与实现 26 话框,询问是否真的要删除数据源,选择是,则删除数据源,选择否,则不删除。树中的数 据会相应的更新。 图表 4-4 管理数据源对话框 4.24.2 共享集操作共享集操作 4.2.1 创建共享集创建共享集 进入主界面,选择菜单共享集创建共享集: 图表 4-5 进入创建共享集对话框 创建共享集对话框如下图所示。填写你想要的共享集名称。如果要增加一个共享集项, 自适应数据同步适配器的研究与实现 27 在增加项后的文本框中填入想要增加的项,单击增加,就可在共享集项下的 List 控件看到 新增的项。若要删除共享集项,则选中 List 中的项,单击删除,就可删除相应的共享集项。 填完所有的信息后,单击确定,即可创建一个共享集。 图表 4-6 创建共享集对话框 4.2.2 管理共享集管理共享集 进入主界面,选择菜单共享集管理共享集: 图表 4-7 进入管理共享集对话框 进入管理共
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中女生早恋危害课件
- 2025年蛇年学校散学典礼活动实施方案
- 成本控制与费用报销制度
- 高一物理时间和位移课件
- 离婚财产分割协议书之房产、车辆、家具专项协议
- 房地产租赁权转让及配套设施租赁合同
- 离异家庭子女共同监护抚养执行细则合同
- 《国际贸易进出口合同履行过程中的风险控制与应对》
- 品牌年度推广广告代理补充合同
- 广告投放策略制定代理合同
- 2025年工地安全员培训考试试题及答案
- 文明有礼+课件-2025-2026学年统编版道德与法治八年级上册
- 双人合作开店协议书范本
- 质量员模拟题含答案
- 以史为帆明方向+少年立志向未来+课件-2025-2026学年上学期主题班会
- 2025上海科技馆事业单位工作人员招聘10人笔试备考题库及答案解析
- 木雕工艺课件
- 2025年2个清单28个问题查摆整改措施
- 摩擦力影响因素实验报告范本
- 钢结构工程施工安全管理方案
- 医疗机构员工服务规范手册
评论
0/150
提交评论