【VC++开源代码栏目提醒】:网学会员VC++开源代码为您提供基于NCCS数据库中间件的对象关系映射和池化资源技术研究 - 硕士论文参考,解决您在基于NCCS数据库中间件的对象关系映射和池化资源技术研究 - 硕士论文学习中工作中的难题,参考学习。
华中科技大学 硕士学位
论文基于NCCS数据库中间件的对象关系映射和池化资源技术研究 级别:硕士 专业:软件工程 指导教师:刘云生 20081031 华 中 科 技 大 学 硕 士 学 位 论 文 摘 要 随着数据库应用日益的发展,应用逐渐趋于的深入和复杂。
为了解决对异构数据库的统一访问,实现分布式数据的集成以及提供功能统一的数据应用,产生了数据库中间件。
海军作战指挥系统(以下简称NCCS)数据库中间件是应用对象关系映射技术的持久层框架,为C平台下的数据库应用系统提供持久层解决方案。
和传统的数据库中间件不同,是采用了对象关系数据映射技术,并考虑数据时效性的数据库中间件。
为此作者研究了对象关系映射技术和池化资源技术。
对象关系映射是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。
本质上就是将数据从一种形式转换到另外一种形式。
NCCS数据库中间件采用C/S架构,包含客户端和服务器端。
应用了对象动态创建,XML技术,完成端口模型,实体关联理论实现,
代码自动生成等关键技术。
NCCS数据库中间件封装了数据库持久层的大多数技术细节,如事务管理、数据库连接管理、SQL生成等。
从而将程序员从ADO编码中解脱出来,将精力和创造力投入到真正有价值的工作中。
而且通过实现对象关系映射理论,程序员可以用面向对象方法来进行数据库应用系统的设计,为系统设计提供了更加自然的实现方式。
关系对象映射框架的实现,其中暗示额外的执行开销。
然而,NCCS数据库中间件作为一种中间件实现,会有很多地方可以做优化。
在NCCS数据库中间件应用了线程池和连接池等池化资源技术来提高系统性能。
实验表明:线程池技术较好地减少了多客户访问时的线程开销,连接池技术减少了数据库访问过程中的连接打开和关闭的时间开销,两种技术的应用明显提升了系统的性能。
关键词:数据库中间件 对象关系映射 持久层框架 池化资源 线程池 连接池 I 华 中 科 技 大 学 硕 士 学 位 论 文 Abstract With the growing of database application development applications are becomingmore and more in-depth and complex. In order to solve the unification of heterogeneousdatabase access to achieve the integration of distributed data and to provide functionalunified data applications resulting in the Database Middleware. The Navy Combat Command System NCCS Database Middleware is a PersistenceFramework applying the Object-relational Mapping ORM technology providing apersistence solution for the C database application. Differently with the Traditionaldatabase middleware it applies the object-relational mapping technology and hasreal-time characteristic. So the author studies of the ORM technology and PooledResources technology. ORM is to resolve the
mismatch of the relational database and the object-orientedtechnology. In short ORM is a description of the object by using the mapping betweendatabases and metadata the objects in the process will automatically be saved to therelational databases. In essence it is to convert data from one form to another form. TheNCCS Database Middleware applies the C/S structure including client and server-side. Itapplies several key technologies such as the objects dynamic creation the XML techniquethe completion-port model the realization of object relations theory the code automaticgeneration and so on. The NCCS Database Middleware packs the most of the technicaldetails in database persistence layer such as transaction management database connectionmanagement SQL generation and so on. In this case it liberates the programmers fromthe ADO code so that they can put energy and creativity into the real valuable work. Andalso by the realization of the Object-relational Mapping theory programmers can applyobject-oriented approach to the design of database applications and the system design isprovided a more natural way to achieve. The realization of the ORM Persistence Framework implies the additional processspending. However the NCCS Database Middleware is a middleware that there will be alot to do optimization. NCCS Database Middleware applies the Pooled Resourcestechnique such as the Thread Pool and the Connection Pool to improve systemperformance. Experiments show that: the Thread Pool reduces the overhead of threads II 华 中 科 技 大 学 硕 士 学 位 论 文during the visiting of numeric customers well and the Connection Pool technique reducesthe spending time to open and close connections during the database access. Finally thetwo techniques significantly enhance the performance of the system.Key
words: Database Middleware Object-relational Mapping Persistence Framework Pooled Resources Thread Pool Connection Pool III 独创性声明 本人声明所呈交的学位
论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除文中已经标明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
学位
论文作者签名: 日期: 年 月 日 学位
论文版权使用授权书 本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,即:学校有权保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权华中科技大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位
论文。
保密, 在 年解密后适用本授权书。
本
论文属于 不保密。
(请在以上方框内打“v”) 学位
论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 华 中 科 技 大 学 硕 士 学 位 论 文 1 绪论1.1 课题背景 随着数据库应用日益的发展,应用逐渐趋于的深入和复杂,对数据库访问时的需求就越来越高,出现的问题也越来越多。
主要分为几个方面: l)如何对异构数据库的统一访问。
网络上的数据库由不同的制造厂商提供。
访问底层的物理数据库存在着较大的差异。
如何屏蔽掉各数据库之间的差异性,向上提供开放的、统一的数据资源就是一个最直接的问题。
2)如何实现分布式数据的集成。
在分布式系统中,数据时分散的,这就面临着如何集成来自底层的数据,并提供更高级的服务的问题。
3)如何提供功能统一的数据应用。
数据服务中的一个重要部分就是通过界面为用户提供数据的查看及管理业务。
一般来说,这些基本的业务需求是统一的,就应该考虑如何为用户提供统一的应用。
4)如何实现数据应用的多态性。
实际上,每个建库单位都希望自己的应用具有不同的应用风格,即需要有对应用多态性的支持。
那么,就需要为那些统一的业务流程提供风格多样的外部表示。
这时传统上对数据库访问的接口技术已不能很好地满足应用的要求。
为了解决以上问题,产生了的数据库中间件1。
数据库中间件处于底层数据库和用户应用系统之间的,主要用于屏蔽异构数据库的底层细节问题的中间件2。
它实现了业务逻辑与数据的分离,也属于可复用软件范畴。
加入了数据库中间件,使得数据库对于客户来说是透明的,客户只需向数据库中间件提交请求,由数据库中间件通过统一的API来访问数据库,提取数据集,并在中间件层用统一的形成统一的表现形式如用XML格式来描述数据),再由中间件以不同的形式展现给客户。
海军作战指挥系统(以下简称NCCS)数据库中间件不仅仅解决了大型分布式系统3中的开发过程中数据访问的一致性和数据透明性4的问题,还考虑了数据访问过程中的时效性
问题,对时间有一定的约束性。
在分布式系统中,往往存在着很多个构件,每个构件都会访问数据库,按照传统的软件设计思路,在每个构件中都按照各个开发者的习惯来开发数据库访问模块,而且在这些数据库访问模块中有大量重复的
代码。
以在Visual C 6.0下应用ADO来开发数据库应用
系统为例,一般包含以下几步: 1 华 中 科 技 大 学 硕 士 学 位 论 文 (1)给工程引入ADO库文件。
(2)初始化COM环境。
(3)初始化_ConnectionPtr智能指针对象。
(4)设定连接字符串,打开数据库连接。
(5)设定SQL语句字符串,使用打开的数据库连接来访问数据库,获得记录集指针。
(6)根据记录集指针来逐条获得记录,修改记录或者删除记录。
(7)关闭数据库连接和记录集。
(8)释放数据库连接和记录集资源。
(9)关闭COM环境。
由上可以看出
代码非常复杂,这还仅仅是最精简的功能语句,假如再加上出错和异常处理,
代码量也相当可观了,每个程序员的风格有差异,对于异常控制的处理必定也有差异,这就给整个系统
代码的管理和测试带来了问题。
而且,业务逻辑和数据访问模块混杂在一起,一旦数据发生变化就要对整个
代码进行修改,对于一个数据和需求经常变化的项目来说,这种修改可能是灾难性的。
再者,对于不同的数据表的数据访问模块,往往需要修改的
代码仅仅是一小部分,这样整个系统
代码中可能就存在着大量的重复性工作,给软件开发者也带来了额外的
工作量。
由此可见,对于大型的分布式系统,需要一个统一的数据库访问平台,可以让整个数据访问模块风格统一,有良好的异常和出错管理,同时也可以降低业务逻辑与数据访问模块的耦合性,当业务逻辑更改的时候可以不影响数据访问模块,将数据访问模块从
代码中抽离出来后也很好的起到了重复利用
代码的作用,将开发者从繁琐的工作中解脱出来。
于是NCCS数据库中间件应运而生。
NCCS数据库中间件以对象关系映射(Object Relational Mapping 简称ORM)5为理论基础,应用多种设计模式将业务逻辑和数据访问分开,用面向对象的思想来操作数据库。
在业务域中,数据模型是以类的形式出现的,数据实体则以对象的形式出现;在数据库中,数据模型以表的形式表现,数据实体则对应为一条记录。
ORM正是为了解决数据在业务域和数据库中的异构性问题,而整个NCCS数据库中间件正是以这个理论为依托,作为业务域和数据库之间的纽带而存在。
应用构件存储的是对象,获取的也是一个个对象,这样就能很好的运用面向对象的思想来解决业务 2 华 中 科 技 大 学 硕 士 学 位 论 文域中的问题6,为应用构件的开发提供一个很好的依托平台。
在军事和一些商用领域,对于数据获取的时限有一定的要求,不仅要求数据的准确性,还要求数据能在一定的时间能够获取。
NCCS数据库中间件应用了连接池7,线程池8和Windows完成端口模型等相关技术来解决这个问题,保证了数据访问的实效性,让服务器在有限的时间内做到最大的数据吞吐率,充分利用服务器的资源。
在一些数据敏感性的行业和领域,为了信息安全方面的考虑,需要屏蔽数据库数据的具体存储方式,并且只能访问权限允许访问的数据。
NCCS数据库中间件屏蔽了数据库中数据的具体存储方式,而且采用一定的安全机制可以防止越权限访问数据9。
对于业务域构件而言,存取数据的时候并不需要知道数据是如何存储也不需要知道数据存储到哪个服务器,这一切对于业务域构件都是透明的。
综上所述,NCCS数据库中间件为业务域构件与数据库之间的桥梁,简化了数据库访问过程,提供了统一的数据库访问平台,满足了数据时效性10的需求,屏蔽了数据存储细节,保障了数据安全。
1.2 数据库中间件的研究现状 1)数据库中间件的意义 数据库中间件是所有中间件中应用最广、技术最成熟、发展前景最好的一种。
数据库中间件作为前端客户机和后端数据库之间的一个中间层,所起的作用自然也是桥梁的作用,它允许应用程序与本地或异地的数据库之间进行通信。
它提供了一系列应用程序接口API,通过中间层而不考虑操作系统及
网络来访问数据库,并且在很多情况下,API被隐藏在开发工具之中而不被开发者了解。
以使用ADO访问数据库为例,通过ADO来进行数据库编程,只需要使用ADO提供的接口来连接指定的数据源,使用统一的接口来访问数据库,而不用关心目标数据库的内部API和实现机制等。
数据库中间件负责接收客户端的数据请求,做一些处理(如SQL格式转换,确定数据源等)后,把请求再传递给相应的后端数据库服务器,由数据库服务器进行最后的数据处理,然后,再将结果由数据库中间件进行一些必要(如打包等)处理后返回给客户端。
同时,数据库中间件不单进行与数据库连接等有关数据库的处理,也可以实现所谓的“瘦客户端”技术,也就是将传统客户机/服务器环境下的客户端进 3 华 中 科 技 大 学 硕 士 学 位 论 文行的应用处理移植到其上,从而精简客户端,减轻客户端的负担。
这样做的好处是能增强系统的并发处理性能,改善安全性能,便于系统的维护,同时减低对客户端的系统要求,为网络终端等的实现准备了技术基础。
2)数据库中间件的工作原理。
数据库中间件作为应用最广、技术最成熟、发展前景最好的一种中间件,近年来有不少的科研机构对其进行了研究并将其应用于各方面。
但是不管其应用如何,数据库中间件的架构是一致的,如图1-1所示。
客户端服务器端数据库 图1-1 数据库中间件的通用系统架构 数据库中间件连接客户端程序(通常是应用程序)与数据库,为用户提供可靠便捷的数据库访问。
例如,在一个局域网环境下,使用
VC 6.0编写客户端应用程序,后台数据库使用Windows XP Oracle,在
VC中通过ADO连接到后台数据库。
此时,ADO就是一种标准数据库中间件。
3)传统数据库中间件。
(1)ODBC(Open Database Connectivity),开放数据库互连。
ODBC是上个世纪八十年代末九十年代初出现的技术,它为编写关系数据库的客户
软件提供了一种统一的接口。
ODBC提供一个单一的API,可用于处理不同数据库的客户应用程序。
使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行
通信。
(2)DAO(Data Access Object),数据访问对象。
DAO就是一组MicrosoftAccess/Jet数据库引擎的COM自动化接口。
DAO不像ODBC那样是面向C/C程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。
(3)RDO(Remote Data Object),远程数据对象。
由于RDO直接调用ODBC API(而不是像DAO那样通过Jet引擎),所以,可以为使用关系数据库的应用程序提供更好的性能。
(4)OLE DB,对象链接与嵌入数据库。
OLE DB在两个方面对ODBC进行了扩展。
首先,OLE DB提供了一个数据库编程的COM接口;第二, OLE DB提供了一个可用于关系型和非关系型数据源的接口。
OLE DB的两个基本结构是OLE 4 华 中 科 技 大 学 硕 士 学 位 论 文DB提供
程序(Provider)和OLE DB用户程序(Consumer)。
(5)ADO(ActiveX Data Object),ActiveX数据对象,它建立在OLE DB之上。
ADO是一个OLE DB用户程序。
使用ADO的应用程序都要间接地使用OLE DB。
ADO简化了OLE DB,提供了对自动化的支持,使得像
VBScript这样的脚本语言也能够使用ADO访问数据库。
(6)ADO.NET是一个基于标准的程序
设计模型,用于创建分布式的、数据共享的应用程序,它提供了一个数据访问界面,以便与SQLServer和Oracle等OLEDB数据资源进行交互。
需要使用数据的应用程序可以使用ADO.NET连接这些数据资源并重新获取、处理和更新数据。
ADO.NET最重要的新特点就是使用Dataset(数据集)代替了原有的Recordset(记录集),大大提高了数据处理的灵活性。
另外,ADO.
NET能够使用XML在应用程序间或Web页间交换数据,任何可以读取XML的组件都可以充分利用它。
这样,通过发送XML格式的Dataset,开发人员可以很容易地处理共享应用程序中的共享数据,并将用户接口组件分离到不同的服务器中,从而提高了用户系统的性能和可维护性。
4)关系对象映射数据库中间件 关系数据库的操作基于行集。
因此,关系数据库的访问技术,长期以来也都是基于行集的,ODBC,ADO,ADO.NET等传统数据库中间件,从功能上来看没有太大区别,应用程序承担着从行集中获取数据的繁重任务。
而随着面向对象技术的发展,如何有效合理地组织
代码,减少程序员的编码任务,用符合事物本原与适应人类自身思维方式的方法来组织程序。
人们用设计模式的眼光来审视原有的程序,从更高的层次来进行程序的开发,这个时候就会发现ADO这样面向行集的数据存取技术显得非常呆板笨拙,人们所缺乏的就是用符合事物本原的方式来访问数据库。
当面向对象与数据管理结合起来的时候,一场新的革命来临了,这就是对象关系映射(Object Relational Mapping,简称ORM)。
ORM描述的是一种设计思想或者实现机制,实现ORM理论的持久层框架必须同时使用面向对象和关系型数据进行开发。
目前众多厂商和
开源社区都提供了ORM持久层框架的实现,常见的有:ApacheOJB、Cayenne、Jaxor、Hibernate、iBatis、jRelationalFramework、Mirage、SMYLE、TopLink等,其中 TopLink 是Oracle 的商业产品,其他均为
开源项目。
其中Hibernate11的轻量级ORM模型逐步确立了在 Java ORM 架构中领导地位,甚至取代复杂而又繁琐的 EJB 模型而成为事实上的
Java ORM 工业标准,而且其中的许 5 华 中 科 技 大 学 硕 士 学 位 论 文多设计均被 J2EE 标准组织吸纳而成为最新 EJB 3.0 规范的标准。
市面上有大量的这些商用产品对于企业级的应用是很有利的,但是也带来一个软件功能的裁剪的问题,在特定领域中的应用往往只会用到这些软件功能的一部分,而且原有软件功能过于强大,对软件开发人员的上手也造成了不少的麻烦,往往需要专门的培训和学习。
现有的ORM持久框架都是基于JAVA或者.NET平台,还没有C平台的产品出现,这种现状的主要原因是商用信息系统主要是JAVA和.NET平台,但对于一些为了追求系统的性能和稳定性要求用C平台下开发的仿真项目,还没有可以直接利用的产品。
NCCS数据库中间件正是针对C平台下的仿真应用,应用ORM理论在
VC 6.0下开发的一个持久层框架。
1.3 本文的主要工作及内容 本文主要研究了NCCS数据库中间件中对象关系映射和池化资源等相关技术。
首先对NCCS数据库中间件中的主要技术和解决
方案做了分析,然后着重对对象关系映射框架实现的理论和方法进行了阐述,最后对提升NCCS数据库中间件性能的池化资源技术进行了研究。
论文的内容安排如下: 第一章绪论。
提出了本文研究的课题背景,阐述了数据库中间件的研究现状。
第二章NCCS数据库中间件的总体设计。
阐述.