硕士论文-基于COMDCOM的异构数据库中间件的研究与实现_第1页
硕士论文-基于COMDCOM的异构数据库中间件的研究与实现_第2页
硕士论文-基于COMDCOM的异构数据库中间件的研究与实现_第3页
硕士论文-基于COMDCOM的异构数据库中间件的研究与实现_第4页
硕士论文-基于COMDCOM的异构数据库中间件的研究与实现_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

1、论文题目基于的异构数据库中间件作者姓名学科专业导师姓名完成时间计算机软件与理论叶勇副教授二五年五月中国科学技术大学硕士学位论文】解,、,:,:第章绪论中国科学技术大学硕士学位论文第章绪论异构数据库技术发展的背景数据库技术是现代信息技术的重要组成部分,也是计算机应用系统的核心和基础。在过去的多年里,数据库技术是计算机科学技术中发展最快,应用最广泛的分支之一。数据库系统的发展根据其数据模型的不同,可分为三个阶段:第一代是网状,层次数据库系统;第二代是关系数据库系统;第三代是以面向对象模型为主要特征的数据库系统”。由于数据库的不断发展,造成多种数据库产品的共存。一个大型系统中常有许多分支机构,由于工

2、作的侧重点不同,各分支机构可能使用不同的数据库管理系统来管理数据。这样各机构之间因为各个不同的数据库系统在开发过程中形成了各自不同的标准,在需要有大量的信息交换的时候,就面临着数据库异构问题。根据异构层次的不同,异构数据库的异构特征体现在以下几个方面:计算机体系结构的异构:从巨、大、中、小型机到工作站、咀及笔记本电脑、嵌入式系统等;基础操作系统的异构:各个数据库的基础操作系统可以是、等:本身的异构:可以是同为关系型数据库系统的、等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象、函数型数据库共同组成一个异构数据库系统;系统控制方式不同:有集中式与分布式;网络的异构:、以太总线

3、结构与令牌环结构等。异构数据库互连的需求及研究目标异构数据库互连就是将分布在网络上不同节点上的多个不同的数据库联合使用以达到资源共享的目的。进一步讲,异构数据库互连就是将操作系统不同、操作平台不同、存储方式不同的数据库联合起来,屏蔽其差异,给用于一个概念第】章绪论中国科学技术大学硕士学位论文化的包含了所有各个节点的本地数据库中信息的全局数据库,使用户可以对全局库进行透明的操作。在异构数据库互连系统中,由于组成整个系统的各个常规数据库是分布在不同网络结点上的,在异构数据库互连系统概念中,将这些常规数据库称为局部数据库,将以这些局部数据库为基础所形成的虚拟的数据库(包括系统中面向用户的所有数据称为

4、全局数据库】【】。异构数据库互连技术的主要研究内容,就是对用户屏蔽各种层次的异构特性,为用户提供简便的全局性查询和综合结果。近年发展起来的异构数据库互连应用技术是一个既与各种数据库密切相关,又有别于各种具体数据库的新的研究领域。它的研究目标是对地理上分布的多个异构数据库(:),在尽可能少地影响其本地自治性的基础上,构造具有用户所需要的透明性的全局数据库,以支持对各数据库的全局应用及各异构数据库之间灵活的信息交换和共享【】胴。异构数据库的应用及本课题的来源异构数据库的应用领域异构数据库的应用在实际中是大量存在的:()电子商务它包括大量网络交互的参与者,安装有各种专用的信息系统。这种环境下的挑战包

5、括异质信息源的集成、可靠的分布校验和电子金融。()保健信息系统医生在异地工作时需要多种信息,一个病人的医疗纪录可能存储在多个医院和保险公司的异构数据库中。有关医疗过程、药物、诊断工具及其辅助治疗的信息可以从多个系统和数据库中得到。此外,医生为病人开的处方、诊断化验的纪录以及保险和记账信息,都可以以电子化的方式获取,以便日后使用。要解决的问题是原有信息的异种数据集成,创建适合所有保健人员使用的各种信息界面。()数字出版将出版社、报社的书籍、文章电子化存储,并通过传送给用户,这第章绪论中国科学技术大学硕士学位论文些信息包括声、像、图、注解等各种形式的信息载体,并需要将这些信息无缝的集成起来。()协

6、同设计【现在,诸如飞机等大型工程项目是一批相互独立的公司合作设计建造的,工程信息的生命周期通常为几十年,这使得有关信息的当前、暂时和历史的配置剧增。不同的设计方法一般使用不同的设计工具,而且设计工作的持续时间通常比设计工具的生命周期长。因此,当设计工作结束时,系统可能是由同一工具的不同版本开发的,为此要解决如下的问题:不同数据源的集成,包括历史遗留的异构数据源;协同设计要求底层的各种数据库支持数据共享机制和新式的并发控制;支持各种部件的设计版本,以及多个部件版本组合而成的配置。课题的来源研究烟叶的质量在烟草的工业生产中有着重要的意义,烟叶的质量标准是制造不同等级烟草的重要的配比依据。烟叶质量是

7、一个综合概念,包括外观质量和内在质量两个方面,不同类型、不同部位的烟叶具有不同的内在和外观的特征。烟叶质量包括外观质量、化学成分、协调性、物理特性、评吸质量、安全性等。“科教兴烟”是烟草行业长期坚持的战略,将烟草的各类数据电子化,微机化对于烟草行业而言有着重要的意义。我们和柳州烟草分公司合作开发的“烤烟质量评价体系软件”项目是参考国内外有关烤烟质量研究资料,在科学分析及实验验证基础上,建立烟叶等级(按国家标准级)质量指数;结合烟叶产她生产水平、所在价区和卷烟厂自身需求,作出某烟区(基地)烟叶总体质量评价、重要等级质量评价和烟厂采购烟叶质量评价。软件开发的基础首先是要建立烟叶的基本数据库。烟草行

8、业经过几十年的发展,各个烟草厂商之间大都建立了各自独立的数据库。如柳州烟草分公司下属的罗城、靖西等烟厂根据本厂的烟叶数据,经过各种测试、鉴定,建立了各自独立的数据库。由于各类测试费用非常昂贵,有的化学实验甚至要耗资上千万,因此要对烟草数据做各类分析评估,就必须在原有数据库的基础上进行。而各烟厂的这些数据存于不同类型的数据库系统中,各自的数据都有着不同的数据模式,要共享这些数据比较困难。这给我们“烤烟质量评价系统”软件的完成带来了困难。第童绪论中国科学撞术大学硕士学位论丘些信息包括声、像、图、注解等各种形式的信息载体,并需要将这些信息无缝的集成起来。()协同设计现在,诸如飞机等大型工程项目是一批

9、相互独立的公司合作设计建造的,工程信息的生命周期通常为几十年,这使得有关信息的当前、暂时和历史的配置剧增。不同的设计方法一般使用不同的设计工具,而且设计工作的持续时间通常比设计工具的生命周期长。因此,当设计工作结束时,系统可能是由同一工具的不同版本开发的,为此要解决如下的问题:不同数据源的集成,包括历史遗留的异构数据源;协同设计要求底层的各种数据库支持数据共享机制和新式的并发控制;支持各种部件的设计版本,以及多个部件版本组合而成的配置。课题的来源研究烟叶的质量在烟草的工业生产中有着重要的意义烟叶的质量标准是制造不同等级烟草的重要的配比依据。烟叶质量是一个综合概念,包括外观质量和内在质量两个方面

10、,不同类型、不同部位韵烟叶具有不同的内在和外观的特征。烟叶质量包括外观质量、化学成分、协调性、物理特性、评吸质量、安全性等。“科教兴烟”是烟草行业长期坚持的战略,将烟草的各类数据电子化,微机化对于烟草行业而言有着重要的意义。我们和柳州烟草分公司合作开发的咄烟质量评价体系软件”项目是参考国内外有关烤烟质量研究资料,在科学分析及实验验证基础上,建立烟叶等级(按国家标准级)质量指数:结合烟叶产地生产水平、所在价区和卷烟厂自身需求,作出某烟区(基地)烟叶总体质量评价、重要等级质量评价和烟厂聚购烟叶质量评价。软件开发的基础首先是要建立烟叶的基本数据库。烟草行业经过几十年的发展,各个烟草厂商之间大都建立了

11、各自独立的数据库。如柳州烟草分公司下属的罗城、靖西等烟厂根据本厂的烟叶数据,经过各种测试、鉴定,建立了各自独立的数据库。由于各类测试费用非常昂贵,有的化学实验甚至要耗资上千万,因此要对烟草数据做各类分析评估,就必须在原有数据库的基础上进行。而各烟厂的这些数据存于不同类型的数据库系统中,各自的数据都有着不同的数据模式,要共享这些数据比较困难。这给我们“烤烟质量评价系统”软件的完成带来了困难。共享这些数据比较困难。这给我们“烤烟质量评价系统”软件的完成带来了困难。第章绪论中国科学技术大学硕士学位论文为此,我们决定使用中间件技术解决异构数据库的数据共享问题,这给系统带来很多好处。因为中间件不仅能够使

12、得前端用户访问后端的异构数据库实现透明化,并且保证了访问接口的开放性,可以使系统在以后功能上的扩展更加方便。通过中间件来访问数据库的另一个好处就是所有的客户端的请求都发送到了中间件上,减轻了数据库服务器的负担,保证了数据库服务器的性能不会降低。同时,中间件的采用极大提高了系统的可维护性,在系统内部的某个逻辑发生变化时,只要改变中间层的相应处理程序,前台用户界面不需要做任何的改动,这样就大大降低了系统维护的费用。中间件技术的现状及其发展在计算机领域,“中间件”描述一类范围很广的软件产品。它是指位于操作系统和通过网络交互的分布式应用组件之间特殊的软件层。它隐藏了计算机体系结构、操作系统、编程语言和

13、网络技术等方面韵异构性,将复杂的协议处理、分割的内存空间、数据复本、网络故障、并行操作等问题与应用程序隔离开来,为上层应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件【】【。从系统层次的角度,可以把当前的中间件软件从下至上依次归纳为四类口】:传统通信中间件、应用服务器、企业应用集成中间件和业务过程管理工具。其中前两种又合称为基础中间件,因为它们通常支撑单个应用系统或解决单一问题,与软件平台,如操作系统、数据库管理系统等,结合紧密;后两种属于应用中间件的范畴,更多用于系统整合,与行业应用系统联系紧密。传统通信中间件根据它们提供通信的双方又可分为两类:在主动的应用程序和被

14、动的资源之间提供交互的中间件;为主动的应用程序相互之间提供交互的中间件。应用到服务器的中间件主要包括数据库中间件和事务处理监控器()。又称为交易中间件,也是当前应用最广泛的中间件之一。它能支持数以万计的客户进程对服务器的并发访问,使系统具有极强的扩展性,因此适用于电信、金融、证券等拥有大量客户的领域,在对效率、可靠性要求严格的关键任务系统中具有明显优势。为主动应用模块提供通信的中间件按照其实现机制,主要有三种:远程过程调用,对象请求代理和面向消息的中间件。三种第章绪论中国科学技术大学硕士学位论文机制都已成熟,其中和仍然具有广泛的用途。应用服务器是面向的计算环境下出现的新型中间件。应用服务器除了

15、的可伸缩、可靠、高效等特性外,应用服务器还具有没有的执行和管理应用逻辑、定位和实例化对象以及控制对象生命周期的能力,它侧重有状态的服务,而且比支持更标准、更开放的协议和,支持更大规模的用户。应用服务器是当前发展最快的中间件类型之一,国内外都有相应产品,而且形成了相应的标准和规范。最突出的规范是,它为应用服务器的实现提供了一个完整的底层框架。企业应用集成【】()是利用通用中间件(如,)融合多种应用的集成方案,基于中间件的方案可以通过封装应用软件、共享信息、协调工作流程等降低集成复杂度。应峨宁间件可视为一种更高层次的中间件,其为实现所构筑的企业应用集成平台提供了基本功能组件、服务和开发工具的基础设

16、施,扩展了中间件,减少了集成工作量。它将许多集成步骤自动化,如数据路由、映射和转换。企业应用集成中间件很多,突出的如的、的等,在中间件市场上占据着越来越重要的地位,尤其被类似于银行、电信等拥有众多网点(子系统)的单位所需要。工作流管理中间件是一个人机结合的系统,通过定义、创建工作流,以及协调、监督、管理工作流的运行(例如进度检查、工作量平衡等),实现了企业业务处理中各项活动的合作、控制和通信的自动化。工作流管理中间件一般基于客户服务模式,提供图形化的工作流定义工具,并越来越多地基于界面操作,其使用集中在保险、银行、法律等人员密集型的办公环境。数据库互连中间件的功能需求使用中间件技术是解决异构数

17、据库互连问题的一个重要方法。中间件技术的基本思想是在后段数据源和前端应用程序之间建立一个抽象层。把应用程序与系统所附软件的较低层次细节和复杂性隔离开来,使应用程序开发者只需处理某个类型的单个,而其他细节则可以由中间件处理。这样就使系统对每个不同数据源的操作变成对单一的中间件的操作,而后再对中间件进行异构处理。结合“烤烟质量评价系统”中异构数据库的数据共享的研究课题,作者在分第章绪论中国科学技术大学硕士学位论文析了目前国内外异构数据库的研究后认为下述功能是数据库中间件所必须的:()全局数据模式由于互连的各局部数据库的模式可能互不相同,因此需要建立全局数据模式,使用户感觉就像使用一个单一的数据库一

18、样,为用户透明地使用一种数据库打下基础。()数据类型转换由于相同的对象在不同的中也许有诸如类型、计量单位等的不同,因而在纳入局部数据库管理系统时,要识别这些不匹配的数据。()全局查询语言口全局查询语言是相对于全局模式的,全局用户通过该语言访问各局部数据库,就像访问一个数据库系统一样。()查询语言分解用户发出的全局语言被分解成为面向各局部数据库的语言,再由各局部数据库管理系统完成相应工作。()查询优化在分解成子查询语句前,可首先对语句进行优化处理,提高其在局部的执行效率。()查询结果处理对于来自各局部数据库的局部查询结果要进行汇总才能产生最终结果返回给全局用户。()提供统一接口统一的接口屏蔽了数

19、据库之间的操作差异,便于应用代码的统一。()跨平台支持中间件可以在不同的开发平台上移植,满足各类应用程序的开发应用。,本文的工作本论文共分为五章:笫章:绪论。先简单介绍了异构数据库系统的背景,接着介绍了异构数据库互连的需求及研究目标。结合“烤烟质量评价体系”项目的需求,提出用中间第章绪论中国科学技术大学硕士学位论文件技术解决异构数据库互连的方案。第章:组件技术。本章首先研究了组件技术的产生、结构、特性,接着重点阐述了基于的进程内和进程外组件的实现过程。最后研究了的包容和聚合特性。第章:异构数据库互连中间件的研究与设计。本章介绍研究了数据库中间件中所要解决的关键技术和实现策略。第章:基于的异构数

20、据库中间件的实现。本章给出了基于组建标准建立中间件的实现过程。文中详述了接口定义函数中重点函数的实现代码。第章:数据库中间件的应用烤烟质量评价体系。在数据库中间件的基础上完成了应用程序的开发。本章介绍了应用程序的功能、对中间件的调用实现以及分布式系统对组件的调用。总结语:对全文进行总结。第章组件技术中国科学技术大学硕士学位论文技术概述第章组件技术,即组件对象模型,是由提出的组件标准,是一种以组件为发布单元的对象模型,这种模型使各软件组件可以用一种统一的方式进行交互,它不仅定义了组件程序之间进行交互的标准,也提供了组件程序运行所需的环境。组件对象之间交互的规范不依赖于任何特定的语言,建立在二进制

21、可执行代码级的基础上,这一特性使用不同编程语言开发的组件对象进行交互成为可能。组件的产生在计算机软件发展的早期,一个应用系统往往是一个独立的应用程序。应用越复杂,程序就越庞大,系统开发的难度也就越大。对于庞大的程序来讲,更新版本的周期很长,在两个版本之间,如果由于操作系统发生了变化,或硬件平台有了变化,则应用系统就很难适应这样的变化。所以这类单体应用程序已不能满足计算机软硬件的发展需要。一个显而易见的解决方案就是将单令的应用程序分割成多个独立的部分,每一个部分保持一定的功能独立性,在协同工作时,通过相互之间的接口完成实际的任务。我们将其称之为组件。这种做法的好处是可以随着技术的不断发展面用新的

22、组件取代已有的组件。(如图)此时的应用程序将不再像以前那样是一个在发行之前就己注定要过时的静态实体,而是可以随着新组件不断取代旧的组件而趋于完善,并且从已有的组件可以建立全新的应用。图组件化应用程序的升级示例第章组件技术中罾科学技术大学硕士学位论文面向对象的组件对象模型组件之间的接口是组件软件的关键,因为接口是双方进行通信的基础,所以,软件组件应该遵从统一的标准。采用什么样的标准则取决于系统设计者的选择:如果设计软件时,不考虑与其它软件的通信,则可以使用自定义的接口标准;否则的话,应该使用一些公用的标准。就是这样一个为大家一致推崇的组件标准。不仅仅提供了组件之间的接口标准,它还引入了面向对象的

23、思想。在标准中,对象是一个非常活跃的元素,我们将其称之为对象。组件模块为对象提供了活动的空间,对象以接口的方式提供服务,我们把这种接口成为接口。一个组件或者是一个(,动态连接库)文件,或者是一个(可执行程序)文件。一个组件程序可以包含多个对象,并且每个对象可以实现多个接口。当另外的组件程序或普通程序调用组件的功能时,它首先创建一个对象或者通过其他途径获得对象,然后通过该对象所实现的接口调用它所提供的服务。当所有的服务结束后,如果客户程序不再需要该对象,那么它应该释放掉对象所占的资源,包括对象本身。的特性()面向对象是面向对象的软件模型,因而对象是它的基本要素之一。对象是某个类()的一个实例;而

24、类则是一组相关的数据和功能组合在一起的一个定义。使用对象的应用(或另一个对象)称为客户,有时也称为对象的客户。在模型中,对象本身对于客户来说是不可见的,客户请求服务时,只能通过接口进行。客户获得接的指针,再通过接口指针,客户就可以调用其相应的成员函数。()客户务器模型对象和客户之间的相互作用是建立在客户服务器模型的基础上的,客户服务器模型的一个很大的优点是稳定性好。而稳定性好正是模型的目标,尤第章组件技术中国科学技术大学硕士学位论文其对于跨进程的程序通信,稳定性更会带来性能上的高可靠性。这种模型有以下一些优势:稳定、可靠性好;软件的可扩展性好;提高性能;在网络上实现时,可以降低网络流量;用于数

25、据库时,可以实现事务()机制,提供数据备份能力等。()语言无关性规范的定义不依赖于特定的语言,因此,编写组件对象所使用的语言与编写客户程序使用的语言可以不同,只要它们都能够产生符合规范的可执行代码即可。标准与面向对象的编程语言不同,它所采用的是一种二进制代码级的标准,而不是源代码级的标准。差不多每种语言在实现时都提供了对的支持,如公司的,、,公司的、等都支持组件的开发和使用,而且很多语言还提供了许多可直接利用的组件作为产品的可选配件。()进程透明性所提供的服务组件对象在实现时有两种进程模型:进程内对象和进程外对象。如果是进程内对象,则它在客户进程空间中运行;如果是进程外对象,则它运行在同一机器

26、的另一个进程空间或者在远程机器的进程空间中。虽然对象有不同的进程模型,但这种区别对于客户程序来说是透明的,因此客户程序在进行实用组件对象时可以不管这种区别的存在,只要遵照规范即可。实现这种进程透明性的关键在于库,库负责组件程序的定位,管理组件对象的创建与客户之间的通信。()可重用性可重用性是任何对象模型的实现目标,由于标准是建立在二进制代码级的,因此对象的可重用健与一般的面向对象语言如中对象的重用过程不同。对于对象的客户程序来说,它只是通过接口使用对象提供的服务,它并不知道对象内部的实现过程,因此,组件对象的可重用性建立在组件对象的第章组件技术中国科学技术大学硕士学位论文行为方式上,而不是具体

27、的实现上,这是建立重用的关键。用两哟隳孵现对象的重用,分别称为包容()和聚合()。胸结构对象不仅仅提供了组件之间的接口标准,它还引入了面向对象的思想。提供的是面向对象的组件模型,组件提供给客户的是以对象形式封装的实体。客户程序与组件程序进行交互的实体是对象,它并不关心组件模块的名称和位置,但它必须知道自己在与哪个对象进行交互。对象也包括属性和方法,对象的状态反映了对象的存在,也是区别于其他对象的要素;而对象所提供的方法就是对象提供给外界的接口,客户必须通过接口才能获得对象的服务。对于对象来说,接口是它与外界进行交互的唯一途径,因此,封装特性是对象的基本特征。规范采用了(,全局唯一标识符)来标识

28、每个对象。位的)是一个随机数,其随机性有两个方面的特性保证:一方面是空间,对于网络中的计算机,通常使用网络适配器的地址值,没有网络适配器的机器用其他随机数生成算法产生;另一方面是时间值,同一机器在不同时候产生的标识符总不相同。所以,我们在实际使用中可以不必担心自己使用的会有冲突的危险。接口对象的客户与对象之间通过接口进行交互。接口是包含了一组函数的数据结构,通过这组数据结构,客户代码可以调用组件对象的功能。接口具有二进制特性、接口不变性、继承性和运行过程中的多态性的特点。接口定义了一组成员函数,这组成员函数是组件对象暴露出来的所有信息,客户程序利用这些函数获得组件对象的服务。如图所示,客户程序

29、用一个指向接口数据结构的指针来调用接口成员函第章组件技术中国科学技术大学硕士学位论文数,接口指针实际上又指向另一个指针,这第二个指针指向一组函数,称为接口函数表,接口函数表中每一项为字节长的函数指针,每个函数指针与对象的具体实现连接起来。通过这种方式,客户只要获得了接口指针,就可以调用到对象的实际功能。接口指针卜一指针卜指针函数指针函数对象实现指针函数接口图。接口结构定义的每个接口都必须从继承过来,因为接口提供了两个非常重要的特征:生存期控制和接口查询。客户程序只能通过接口与对象进行通信,虽然客户程序可以不管对象内部的实现细节,但它要控制对象的存在与否。如果客户还要继续对对象进行操作,则它必须

30、保证对象能一直存在于内存中;如果客户对对象的操作已经完成,以后也不要需要该对象了,则它必须及时地把对象释放掉,以提高资源的利用率。引入了“引用计数”()方法,可以有效的控制对象的生存周期。另外,如果一个对象实现了多个接,在初始时刻,客户程序不太可能得到该对象所有的接口指针,它只会拥有一个接口指针。如果客户程序需要其他的指针,则使用了“接口查询”(!)的方法来完成接口之间的跳转。的定义如下:(,】);();();第章组件技术中国科学技术大学硕士学位论文包含了三个成员函数:,和。函数用于查询的其他接口函数。函数的输入参数湖为接口标示符,输入参数为查询得到的结果函数指针,如果对象没有实现所标识的接口

31、,则输出参数指向空()。当客户创建了对象之后,创建函数总会返回一个接口指针。因为所有的接口指针都继承于,所有的接口都有成员函数,于是,当得到了初始的接口指针之后,就可以通过它的函数获得该对象所支持的任何接口指针。函数和用于对引用计数进行操作。每一个对象都记录了一个称为“引用计数”的数值,该数值的含义为有多少个有效指针在引用该对象。当客户得到了一个指向该对象的接口指针时,引用计数值增当客户用完了该接口指针后,引用计数减。当引用计数减到时,对象就应该把自己从内存中清除掉。的接口成员函数和分别完成引用计数的增和减操作。的实现不仅提供了组件程序和客户程序之间交互的协议细节,也提供了全面地实现过程。不管

32、是组件程序还是客户程序,在建立交互关系之前以及交互完成之后,不可避免地要与系统打交道,因此,作为一套完整的组件模型体系,也提供了所有的实现细节,用于协调组件程序和客户程序的行为,并尽可能提高资源利用率。的实现与操作系统平台密切相关。因为最初源于平台,所以实现部分(即库)很多地方直接用到了系统的一些特性,比如系统注册表、动态连接库等等。通过注册表管理对象规范使用位来标识对象和接口,客户程序通过这些值来创建对象并于对象进行交互。按照规范,客户程序通过库完成对象的创建工作。库通过系统注册表()所提第章组件技术中国科学技术大学硕士学位论文供的信息进行组件的创建工作。系统注册表是一个全操作系统范围公用的

33、信息仓库,其中包括了所有的组件必要的信息以及其他一些信息。在注册表的键下的子健下,包含了当前机器下所有组件的信息,如组件程序的全路径文件名、组件程序的版本、组件的、组件程序的图标信息、组件程序的类型库等等。系统提供了一个用于注册进程内组件的实用工具,只要进程内组件提供了相应的入口函数,则就可以完成注跚或注销工作。组件程序的两个用于注册的入口函数为和,而程序本身并不进行注册工作。当我们用下面的命令行方式运行时,、调用程序中的函数完成组件程序的注册工作;当我们用下面的命令行方式运行程序时,:。调用组件程序中的函数完成组件程序的注销工作。类厂类厂就是类的工厂,如同中类的定义,类可以理解为对象的基本定

34、义。类厂是对象的生产基地,库通过类厂创建对象,对应于每一个类,有一个类厂专门用于该类的对象创建操作。类厂本身也是一个对象,它支持个特殊的接口:,其定义如下:。(,);(););第章组件技术中国科学技术大学硕士学位论文用于创建相应的对象,并将相应的接口指针传给客户,因为每个类厂只针对特定的类对象,所以成员函数知道该创建什么样的类对象。成员函数用于控制组件的生存期。每一个对象类应该有一个相应的类厂对象,如果一个组件程序实现了多个对象类,则应有多个类厂对象。类厂本身也是一个对象,由组件程序实现的引出函数实现。库在接到对象创建的指针后,调用进程内组件的函数创建类厂对象,并返回类厂对象的接口指针,库或者

35、客户一旦有了类厂的接口指针,就可以通过类厂接口的成员函数创建相应的对象。具体的对象创建过程如图所示:调用函数;库找到程序并进入进程;调用函数;函数创建类厂;吐函数把类厂接口指针返回给函数()函数把类厂接口指针返回给函数;函数得到类厂后,调用类厂的对象创建函数;类厂创建对象;类厂把对象返回给函数,函数返回客户直接调用对象。第章组件技术中国科学技术大学硕士学位论文实现过程图组件对象创建过程进程内组件与客户的协作过程因为进程内组件和客户程序运行在同一个进程地址空间中,所以一旦客户程序与组件程序建立起通信关系之后,客户程序得到的接口指针直接指向组件程序中接口的,根据前面的借口模型可以看到,客户程序接口

36、指针所指向的包含了所有的借口成员函数的地址,客户代码可以直接调用这些成员函数,所以效率非常高。并且在编译时还可以进行完整的参数和返回类型检查。下面已注册数据库组件为例,给出具体的协作过程情况。表进程内组件与客户的协作过程客户程序库组件程序():()(”,);在注册表中查找注册数据库(,(”);库在内存中查找组件,如果还没被装进内存,则从注册表中获取组件程序全局路径名(。调用。的创建类厂对象并返回接口库返回接口给客户(,“);第章组件技术中国科学技术大学硕士学位论文类厂对象的调用,用操作符构造注册数据库对象,返回接口指针客户使用注册数据库组件,通过接口进行各种操作;调用对象的函数被调用(通过)题

37、)吐:研库调用注册数据库引出函数函数中,如果不存在对象并且锁计数器为,返回,否则返回心如果返回,则调用面】)库释放资源客户程序退出进程外组件与客户的协作过程进程外组件程序和客户程序位于不同的进程空间中,它们使用不同的地址空间,所以组件和客户之间必须跨越进程边界。采用了本地调用(,和远程调用的方法进行进程之闻的通信,其中用于在同一机器上的不同进程之间进行通信,而用于在不同机器上的进程之间通信。客户程序和进程外组件之间的调用关系如图所示。客户程序只与统一进程中的代理()对象打交道,组件程序只与统一进程中的存根打交道,调用只在代理对象和存根之间进行,当客户程序需要调用组件提供的功能服务时,它需要执行

38、图中的六个步骤才能完成一个函数的调用。因此进程外组件的运行效率比进程内组件的效率要低,但跨进程的调用也为客户程序带来个安全性,组件程序的严重错误不会使客户进程崩溃,这是其优越于进程内组件的地方。第章组件技术中国科学技术大学硕士学位论文图进程外组件与客户程序调用图服务完成后逗阿调用组件对象接口成员函数进程外组件与客户的协作过程有所不同,但对于客户端程序来说,并没有什么区别,主要区别在于库的处理过程。以及组件程序在实现上的不同,其协作过程就不在此赘述了。一一一一一一一焉一一等剖一序程椒秽巫艨躲厂刊捌。一舾麟啪啪酬锚用员第苹异构数据库互连中间件的研究与设计中国科学技术大学硕士学位论文第章异构数据库互

39、连中间件的研究与设计概述我们所开发的数据库互连中间件是对地理上分布的多个异构数据库,在尽可能少地影响其本地自治性的基础上,实现信息共享。异构数据库互连系统与传统的分布式数据库不同,分布式数据库【】是唯一一个全局数据库,对各个独立的数据库的自治起了很大的限制,它是适合某个跨国公司内部的数据库方式。而异构数据库之间是不存在什么隶属关系,各局部数据库系统高度自治,为了资源共享及统一的全局处理进行数据库互连。两者在形式上相似,但实质却有所区别。异构数据库互连系统具有统一的全局数据模式,用户不必关心其成员数据库的数据存储方式、物理位曼等细节,只需操作全局数据库所提供的数据信息即可。该异构数据库互连中间件

40、实现了以下主要几个功能:保障了各成员数据库的自治性;用户可对各类数据库透明的访问;用统一的语句操作多个成员数据库;为上层软件提供标准、易用的调用接口;异构数据库互连系统的结构分析异构数据库互连系统【】可以划分为三个逻辑层次:底层数据库、中间层服务中间件和客户端应用层,如图所示。中间层又分为两个层次:局部数据库控制层和全局数据控制层。中间层中的模式转换是由局部数据控制层转换到全局数据控制层,查询分解是由全局数据控制层转换到局部数据控制层。通过局部数据和全局数据的相互转化,这样就给用户提供了个全局的概念来对数据进行透明的操作。底层数据库:在本系统中,所有加入的局部数据库都是基于的。它们提供原始数据的存储。第章异构数据庠互连中间件的研究与设计中国科学技术大学硕士学位论文局部数据控制层:局部数据控制层执行系统中具体的事务处理,通过的方式向数据库服务器提出数据和其它资源的请求。在局部数据控制层,要将来自底层的异构数据库根据全局数据字典进行统一的全局数据模式的包装,再传递给全局数据控制层。全局数据控制层:全局数据控制层接受来自上层的请求

温馨提示

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

评论

0/150

提交评论