基于CORBA的数据库访问方法及应用.docx
《基于CORBA的数据库访问方法及应用.docx》由会员分享,可在线阅读,更多相关《基于CORBA的数据库访问方法及应用.docx(12页珍藏版)》请在冰豆网上搜索。
基于CORBA的数据库访问方法及应用
达州职业技术学院
毕业课题设计论文
题目:
基于CORBA的数据库访问方法及应用
所在系(部):
__________________________________
学科专业:
__________________________________
作者姓名:
__________________________________
指导教师姓名:
_________________________________
学号:
__________________________________
答辩日期:
______________年_____月_____日
基于CORBA的数据库访问方法及应用
摘要
随着我国高等教育的快速发展,高校普遍存在多校区的实际情况,许多资源也分布在多个校区。
其中图书资源也存在多校区馆藏的情况,而图书又是科研学习的重要资源,因而图书在多校区方便地流通成为图书管理工作的重要任务。
为了实现学校多校区图书资源统一管理、资源共享、提供读者方便借阅,建立适应多校区图书流通信息管理系统,读者可以跨校区借阅图书成为急需解决的课题。
本论文研究基于VisiBrokerforC++/CORBA的数据库访问方法及实现。
解决了适合多校区网络特征图书流通管理系统IDL接口的定义方法,其中IDL设计使用小粒度与迭代器方法提高访问性能。
实现了CORBA表示数据库表格内容的any类型与OleVariant类型的转换。
在图书流通管理系统服务器端程序实现中,采用CORBA的纽带机制POATie代理方式编写CORBA服务器程序,服务程序进程中使用多个不同名字的POA,实现将数据表、SQL查询放在CORBA的数据库处理模块中。
在客户端程序实现中,通过使用C++Builder数据库操作控件操作服务端数据,实现从表内容自动随主表当前记录改变而改变,客户端程序向服务器端发出请求后,可以获取当前库记录的相关信息。
关键词:
(注:
关键词3-5个)CORBA、对象请求代理、粒度、迭代器
目录
第1章绪论1
1.1引言1
1.2研究现状1
1.2.1基于中间件局域网数据库技术1
1.2.2对象数据库技术2
1.2.3局域网数据库处理存在的不足2
1.3论文的工作与意义3
1.4论文的章节组织3
第2章CORBA的理论基础介绍5
2.1对象管理体系结构5
2.1.1对象请求代理ORB6
2.1.2对象服务6
2.1.3公共设施6
2.1.4领域接口7
2.1.5应用接口7
2.2CORBA体系结构7
2.2.1ORB内核(ORBcore)8
致谢9
参考文献10
第1章绪论
1.1引言
Internet持续高速的发展,极大地加快了社会信息化的步伐。
不同部门与行业要对不同数据进行收集、挖掘、汇总、处理,并作出正确而长期的保存是相当重要的,网络数据库的访问与处理在数据库技术是相当重要。
数据库的计算环境具有:
(1)分布环境的异构性:
①硬件平台的异构,Sun主机、UNIX工作站、PC机、等;②操作系统的异构,各种版本的UNIX、MicrosoftWindows等;③开发语言的异构,C、C++、Java、Delphi、SQL、Sybase、Orcal等;④网络平台的异构,Ethernet、FDDI、TCP/IP、IPX/SPX、IPv4、Ipv6等。
构造和集成异构环境下的网络数据库应用需要一个优良的支撑平台。
(2)分布性:
现在实际应用资源分布在不同的部门、越来越广阔的地区,分布性已经成为现代数据库技术计算环境的基本特征。
(3)可扩展性:
网络数据库计算环境通常是分阶段逐步建设的,是一个不断发展的长期的过程。
这就决定了数据库计算环境须具有可扩展性。
(4)互操作性:
在一个大型实际应用中存在不同的应用程序,它们能否互相通信决定数据的时效性。
同时一个部门一般来说已经积累了一批极具有价值数据库系统,通常这些系统难以改造和重写,在构造新系统时,客户希望能够利用这些资源,因此如何有效地将已有系统集成或移植到新系统中,并且在将来尽可能少地使它们再成为“孤岛”系统,是应用开发中提出的实际需求。
1.2研究现状
软件工程的核心问题是如何通过先进的技术、管理手段来提高各种类型软件开发的效率与质量。
随着软件开发技术的发展,面向对象设计技术、中间件技术、设计模式等成为解决数据库访问的方法。
1.2.1基于中间件局域网数据库技术
中间件数据库访问技术是一种社会化的软件开发方法,它使得开发者可将由不同语言、不同中间件组合在一起来构造软件。
中间件解决两个方面的问题:
一是复用,即中间件具有通用的特性;二是互操作,不同来源的中间件能相互协调、通信,共同完成更复杂的功能。
面向对象技术能支持软件的复用和集成,面向对象技术作为一种基础,不存在一个标准的框架,不同的软件对象能够在同一地址空间里互相交互合作。
面向对象的软件设计带来的是一个个分离在应用程序的对象体。
通过中间件数据库访问技术达到全面应用对象技术,成为开发出高效、底成本应用程序的重要的实现途径。
中间件数据库访问技术是面向对象技术的一个发展。
从解决实际应用的方案来讲,CORBA适合于实际应用的网络数据库访问技术。
1.2.2对象数据库技术
对象与软组件技术是近几年迅速发展起来的,数据库计算技术是在网络计算平台上开发、部署、管理和维护以数据库资源共享和协同工作为主要应用目标的网络数据库应用系统。
进入上个世纪90年代以来,在分布式客户/服务器计算机系统的建立及其应用系统的开发过程中,开发人员逐渐体会到分布式系统比想像的更复杂,例如异构环境下的应用互操作问题、系统管理问题、系统安全问题。
传统的面向过程的技术在开发大型软件系统时已经暴露出其局限性,20世纪90年代初,以面向对象技术为主要特征的分布计算技术开始出现,经过10年多的发展,逐渐进入了成熟应用时期。
面向对象分析(OOA)和面向对象设计(OOD)方法直接应用于网络数据库应用系统的分析和设计,传统的面向对象程序设计(OOP)环境(例如,C++、Smalltalk)在直接用于网络数据库应用系统的程序设计时遇到了问题。
传统的对象与访问该对象的程序只能存在于同一进程中,并且只有相关程序设计语言的编译器才能创建这些对象并感知这些对象的存在,外部进程无法了解和访问这些对象。
在常规的分布式客户/服务器应用中,客户进程不可能直接访问远程服务器端进程中的常规对象。
为了解决这个问题,提出了分布式对象的概念。
1.2.3局域网数据库处理存在的不足
现有典型的局域网数据库处理系统和标准有RPC(远程过程调用)和DCE(分布计算环境)等。
它们虽然是按照客户/服务器模式构造的系统,但是客户程序和服务器程序之问的调用关系是静态的,基于它们所构造的系统也是静态的,并且可以使用的编程语言必须于RPC和DCE实现语言一致,从而限制了用户的可选语言范围。
使用与语言无关的IDL接口技术可以解决该问题。
软件复用和软件集成的问题,如若不同的应用软件是用不同语言编写,或运行在不同地址空间,甚至在不同的计算机或操作系统平台时,这个问题就更变得极其复杂。
因此,当今的应用软件普遍需要有良好的平台兼容性(互操作性)、结构开放性、规模可变性(可扩展性)及代码复用能力等。
使用中间件技术可以解决软件复用的问题。
1.3论文的工作与意义
本论文结合XX职业技术学院“多校区图书流通管理系统”开发出的应用软件,在使用软件工程相关基本理论的同时,对体系结构的概念、构造以及开发方法等相关问题进行研究,提高软件开发的质量。
(1)本论文的目标:
以不同校区多馆藏进行分散收藏集中管理处理为基础,以数据库管理为核心,开发满足不同校区管理员的流通管理和读者借阅需要的应用软件。
本论文设计和实现中,将考虑影响网络数据库处理的因素进行开发。
(2)本文研究的主要内容:
为了实现多校区图书资源统一管理、资源共享、提供客户端访问,建立了适应多校区图书流通信息管理系统,达到读者可以跨校区借阅图书。
本论文使用CORBA作为数据库访问的实现方法,同进也考虑数据库访问的性能问题。
本论文采用基于VisiBrokerforC++/CORBA的数据库访问方法实现。
编写了适合于多校区网络特征的IDL接口及其实现,该IDL考虑了影响网络数据库访问粒度大小的因素,文中使用小粒度与迭代器提高其访问性能。
在IDL接口定义中,用CORBA中的any类型表示数据库表格内容,而在C++Builder中,数据库表格内容采用与Microsoft兼容的OleVariant类型表示。
文中实现了CORBA的any类型与OleVariant类型之间的互相转换。
在实现服务器端程序中,采用CORBA的纽带机制POATie代理方式编写CORBA服务器程序。
服务程序进程中使用多个POA,使用不同POA名字进行区别。
同时实现了将表格、SQL查询放在CORBA生成的数据库处理模块中提供服务,该服务器端实现了IDL设计时使用的小粒度与迭代器模型。
在实现客户端程序,通过使用C++Builder相关数据库操作控件操作服务器端的数据。
根据表的主从关系,从表内容自动随主表当前记录改变而改变。
在客户程序中,实现了用户在浏览信息时与服务器保持一致。
客户端程序向服务器端发出请求后,可以获取当前库记录的详细信息。
1.4论文的章节组织
本文各章节基本内容如下:
(1)CORBA的理论基础介绍了CORBA使用的对象管理体系结构,CORBA体系结构、基本服务、使用的技术、规范,CORBA主要使用面向对象技术,多层体系统结构、接口技术与可互操作技术。
(2)引出基于CORBA的数据库访问方法,以一个具体的应用模型为基础提出CORBA访问数据库的模型,底层通信的实现,访问数据库的途径。
同时分析了影响网络数据库访问性能的原因,根据影响因素提出了性能改进策略IDL粒度与迭代器接口的思想。
(3)基于CORBA的数据库访问主要介绍基于C++Builder对局域网数据库访问的实现技术,包括编写IDL、any与OleVariant数据类型间的转换,服务器与客户端通过ORB访问的实现细节。
(4)结束语中,对本文的研究工作进行总结。
第2章CORBA的理论基础介绍
2.1对象管理体系结构
对象管理组织OMG(ObjectManagementGroup)负责制订和发布CORBA规范。
对象管理体系结构OMA(ObjectManagementArchitecture)参考模型是OMG制订CORBA及其相关规范的概念框架基础。
OMA参考模型的核心组件是对象请求代理ORB(ObjectRequestBroker),它支持客户程序与对象实现在一个分布式环境中通信。
ORB仅为分布式对象提供了最基础的通信枢纽,在实践中开发不同的分布式应用程序时,各类对象还有许多共性可以获取并可加以重用,OMG将分布式对象的这些共性依其基础性分别抽象并标准化为对象服务、公共设施与领域接口。
这些标准化工作主要是针对对象接口而不是对象实现。
OMA参考模型中ORB组件与其它4类对象接口之间的关系如图1所示。
对象服务是基于分布式对象技术的所有应用程序都可能用到的通用服务的接口;公共设施是可用于大多数应用领域的、面向终端用户的工具类接口,它与对象服务的主要区别在于对象服务比它更加基本,两者的共同点则是同属于计算机领域而不是应用领域;领域接口是与具体应用领域有关的接口;应用接口则是与特定应用问题有关的非标准化接口,必须由开发人员自己编写。
图1OMA参考模型
2.1.1对象请求代理ORB
对象请求代理是OMA参考模型的核心,它提供了分布式对象之间透明地发送请求或接收响应的基本通信机制,独立于实现对象的特定平台与技术。
客户程序无需知道如何查找对象、如何激活对象、如何与对象通信、对象是如何实现的等。
ORB是基于分布式对象构建应用程序的基础设施,并保证了在异类平台上对象的可移植性与可互操作性。
为实现与特定程序设计语言无关的目标,OMG的接口定义语言IDL(InterfaceDefinitionLanguage)为定义分布式对象的接口提供了统一标准,用IDL定义的对象接口是对象实现与客户程序之间的合约。
OMGIDL是一种独立于任何程序设计语言的强类型的说明性语言,通过将IDL映射到不同的程序设计语言,开发者可自由选择程序设计语言来编写实现对象或客户程序。
为保证各不同的供应商的ORB之间可互操作性,OMG还制订ORB之间的标准通信协议通用ORB间协议GIOP(GeneralInter-ORBProtocol)与因特网间协议IIOP(InternetInter-ORBProtocol),即GIOP/IIOP。
OMG发布的《CORBA:
CommonObjectRequestBrokerArchitectureandSpecification》是关于ORB体系结构的正式规范,定义了ORB组件的程序设计接口。
OMG还发布了一系列各自独立的IDL语言映射规范,包括将IDL映射到Java、C++、Smalltalk、Ada、C、PL/1、COBOL、Lisp等语言。
2.1.2对象服务
对象服务是一些通用的服务集合,这些服务要么是利用分布式对象技术开发应用程序的基础,要么为应用程序的可互操作性提供与具体应用领域无关的支持。
对象服务通常是一个实用的分布式应用程序的基本组成部分,并且可用于构造具有可互操作性的高层设施和应用程序的对象框架。
OMG发布的《CORBAServices:
CommonObjectServicesSpecifications》(简称COSS或CORBAservices)是关于对象服务的一组规范,其中包括对象命名、交易对象服务、事件服务、通知服务、持久状态服务、外表化服务、事务服务、并发控制服务、安全服务、关系服务、生存期服务、对象类集服务、查询服务、属性服务、时间服务、特许服务等子规范。
2.1.3公共设施
公共设施是可用于大多数应用领域的、面向终端用户的工具与设施,包括分布式文档设施、打印设施、数据库设施、电子邮件设施等。
公共设施提供的一系列通用的应用程序功能可配置为特定的应用需求,公共设施的标准化使得通用操作具有统一性,并且终端用户可方便地选择自己的配置。
2.1.4领域接口
领域接口是与特定应用领域有关的对象接口集合,例如金融、医疗、制造、电信等应用领域。
图2-3所示OMA参考模型中,领域接口的图例表示为一组领域的接口,这表示软件开发人员可按照不同的应用领域来组织领域接口。
OMG按不同应用领域制订与发布一系列领域接口规范。
2.1.5应用接口
应用程序中的对象为终端用户执行特定的任务,它不是OMG标准化的内容,是构成整个OMA参考模型的最上层元素。
一个典型的应用程序由大量分布式对象构建而成的,其中一部分对象与具体应用问题有关,另一部分对象则来自领域接口、公共设施、对象服务与对象请求代理。
由程序员编写的应用程序对象可通过多种机制(如继承)重用现有的对象。
根据接口/实现分离的软件工程编程思想,应用程序只要支持或使用与OMG一致的接口定义风格即可加入到OMA体系结构中,这些应用程序本身未必要采用面向对象的风格实现。
2.2CORBA体系结构
CORBA体系结构与规范建立在OMG的对象模型基础之上,它主要由三个关键部分组成:
接口定义语言IDL、对象请求代理ORB和标准通信协议IIOP。
OMG制定了公共对象请求代理结构CORBA这一ORB的技术规范标准,详细定义了ORB应具备的特性和提供的接口。
CORBA3.0具有以下几个组成部分:
(1)ORB内核(ORBcore);
(2)OMG接口定义语言IDL(InterfaceDefinitionLanguage);
(3)接口池(InterfaceRepository);
(4)存根进程与框架进程(StubandSkeleton);
(5)动态请求与分发(DynamicInvocationandDispatch);
(6)对象适配器(ObjectAdapter)。
CORBA各组成部件间的关系如图2所示。
图2CORBA组成部分间的关系
2.2.1ORB内核(ORBcore)
ORB是OMA的核心基础设施,CORBA规定了ORB的标准体系结构。
由ORB提供的通信机制负责完成查找请求的对象实现、让对象实现准备好接收请求、传递构成请求的数据等任务。
客户程序所看到的对象接口完全独立于对象实现所处的位置、编写实现对象的程序设计语言以及在对象接口中未反映的其他特性。
表1ORB内核组成部分列表
名称
注:
后面章节自己添加。
致谢
本论文的撰写是在我的导师XX的精心指导下完成的。
XX老师渊博的科学知识、丰富的科研经验以及一丝不苟的科研精神将永远成为我今后工作学习的指针,在此谨表衷心的谢意!
感谢XX,在我学习《XX》课程期间他给我们一种严谨治学的精神;同时也要感谢XX老师,在我《XX》课程入门学习的时候给予了我很多帮助。
他们一丝不苟的认真教学态度值得作为一名教师的我学习、借鉴。
还要感谢XX老师,在XX学习期间他给了我在生活、学习等多方面的关心。
在我的论文撰写过程中,我的同学XX、XX给予了我许多帮助,在此向他们表示谢意。
最后,对所有关心和帮助过我的老师、同学和亲朋好友表示衷心的感谢!
参考文献
[1]刘云生,《现代数据库技术》,北京:
国防工业出版社,2001
[2]何旭,徐学洲,基于CORBA的分布式系统IDL接口优化,《电子工程师》,2005-10
[3]
参考文献说明:
1.作者.题名:
其他题名[M].译者.版本.出版地:
出版社,出版年:
页次.(图书)
2.作者.题名:
其他题名[J].期刊名:
其他信息,出版年,卷号(期号):
页次(期刊)
3.作者.题名[C]//编者.文集名.会议名,会议地址,会议时间.出版地:
出版社,出版年,卷号(期号):
页次.(会议录)
4.作者.题名:
其他题名[D].学位授予单位所在城市:
学位授予单位,年(学位论文)
5.作者.标准号题名:
其他题名[S].出版地:
出版社,出版年(标准)
6.作者.题名:
其他题名,编号[R].出版地:
出版社,出版年(科学技术报告)
7.专利所有者.题名:
其他题名,专利号[P].公告日期(专利)
8.作者.题名:
其他题名[文献类型标志/文献载体标志].出版地:
出版社,出版年(更新或修改日期)[引用日期].访问路径(电子文献)
打印及装订要求
论文内容一律采用计算机编辑,用A4规格纸输出,打印设置:
页眉为2cm,页脚为1cm,页边距分别为上2cm,下2cm,左2cm,右2cm。