实现对象持续化服务的系统及其方法技术方案

技术编号:2855413 阅读:237 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及对象持续化服务,公开了一种实现对象持续化服务的系统及其方法,使得对象持续化服务的实现更为简单,大大减少开发工作量。这种实现对象持续化服务的系统及其方法使用泛型算法归纳出数据库操作例程的共同框架并定义在数据库操作模块中;在服务模块中定义具体属性并登记在基础模块中;根据数据库操作模块的调用,在基础模块中实现具体的数据库查询语言组织、服务模块中属性与数据库表的数据交换。

【技术实现步骤摘要】

本专利技术涉及对象持续化服务,特别涉及对象持续化服务的实现。
技术介绍
随着信息化时代的到来,网络的应用已经深入到人们的生活中的方方面面。网络上数据量的急剧增加对网络数据的管理提出越来越高的要求。当前,开发网络管理软件大多采用客户机/服务器模式的三层体系结构,包括客户端、服务器端以及关系数据库(Relational DataBase,简称RDB)。一方面,服务器端通过通讯平台与客户端相连;另一方面,通过数据库中间件操纵RDB。服务器端面临的任务模型是面向对象模型,它接受标准C++对象作为任务的输入,完成任务处理后返回相应的标准C++对象作为结果。不过服务器端在执行任务的过程中需要操纵的数据模型为关系模型,其操纵方式为面向过程式的。由于任务的面向对象模型与数据库的关系模型之间的差异,应用中在编写任务的代码中必须完成对数据转换。在数据库接口(DataBase Interface,简称DBI)函数中,使用方式是面向过程式的,代码中出现了许多非常相似的函数。数据模型转换及例行的对实际的数据库操作的调用与我们的任务所要完成的事务并没有直接关系,但却大量反复出现,其造成的结果就是第一,代码冗余度大大增高,相当比例的代码用于数据模型转换,大大增加了开发的工作量。第二, 开发人员在开发一个任务时,除了要洞悉该任务的事务逻辑外,既要掌握它的任务模型,又要掌握关系数据库的存储模型,还要掌握它们之间的模型转换,大大增加了开发难度。第三,在现行开发模式下,数据模型转换,数据库的操纵完全是显式进行,在DBI函数中大量充斥着对关系数据库操纵的硬编码,关系数据库的关系模式(包括表名、列名)与代码逻辑紧密耦合在一起,使得系统后期维护极其困难。而对于高端网管程序而言,由于用户需求的变化往往比较频繁,系统可维护性尤为重要。总而言之,在大多数网络管理系统中,往往以面向过程式的方式操纵关系模型,而任务模型却是面向对象(Object-Oriented,简称OO)模型;这两种模型之间的不同使得在面向过程的编码中只能显式地进行模型转换,显示地操纵关系数据库,这是造成上述种种问题的根本所在。对于这个问题,目前一般有两种解决方法一种方法如图1所示,将语义表示与例行算法适当分离。该解决方案包含两个层次,持续化对象面向对象建模和对象模型到关系数据库的映射。用户首先根据业务逻辑建立适当的持续化对象模型,每一个具体的持续化对象显式建立一个一一对应的“知识库”对象,持续化对象完成必要的语义定义,相应的“知识库”对象则显式地通过数据库工具(Database Tools,简称DBTools)完成实际的对下层RDB的操纵(如插入、更新、删除、选择等操作)。另一种方法如图2所示,目前已经有多个第三方产品采用了该解决方案。该方案的出发点是一切从对象建模开始,用户采用对象定义语言(ObjectDefine Language,简称ODL)建立面向对象的数据库(Object-OrientedDataBase,简称OODB)的数据模型,然后调用相应的编译器编译,产生C++持久化对象的桩代码,并建立数据库脚本。这里所谓的桩代码是指,ODL编译器把我们用ODL编写的文件翻译成C++代码,将我们用ODL编写的类翻译成C++类,这个类的申明、实现代码为相应的C++桩代码。以该桩代码作为框架,加上适当的业务逻辑,成为系统中的可持续化对象,从而操纵关系数据库;而对关系数据库的管理则由专门的对象管理器负责。系统在运行时调用持续化对象,对象存储由持续化对象自己完成,这样在系统开发时开发人员向下仅仅可以见到可持续化对象这一层,完全实现关系模式的面向对象封装。在实际应用中,上述方案存在以下问题对于现有技术方案一,实际的代码编写量并没有降低,代码冗余现象依旧存在,系统难于维护、难于扩展的状况并没有得到改善。对于现有技术方案二,用ODL重新OODB的工作量过于庞大,且开发难度大,对于大多数中小型软件企业来说,要想自己开发实现不太现实。造成这种情况的主要原因在于,造成现有技术方案一在实际应用中存在问题的原因在于,对实际的数据库操作的调用采用的是显式建模和显式映射,这必然无法简化代码。系统的可维护性、可扩展性的实现也受到约束。造成现有技术方案二在实际应用中存在问题的原因在于,该方案要求建立ODL,并实现ODL编译器,用于将界面定义语言(Interface DefinationLanguage,简称“IDL”)翻译成对应的C++代码和关系数据库脚本,建立在关系数据库之上的对象管理器。这些代码的编写从工作量上来说是很庞大的,无法让大多数中小型软件企业接受。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种,使得对象持续化服务的实现更为简单,大大减少开发工作量。为实现上述目的,本专利技术提供了一种实现对象持续化服务的系统,包含数据库操作模块、可持续化对象基础模块和多个可持续化对象服务模块,其中,所述数据库操作模块用于通过泛型算法实现统一的数据库操作例程;所述可持续化对象基础模块用于接收并登记所述可持续化对象服务模块上报的语义,根据所述数据库操作模块的调用完成具体数据库操作语句组织,完成所述可持续化对象服务模块的属性和与其关联的所述数据库表字段之间的数据交换;所述可持续化对象服务模块用于根据所述可持续化对象基础模块定义自身属性以及该属性与数据库表字段关联方法,供所述数据库操作模块读取。其中,所述数据库操作例程包含对所述数据库的查询、增加、更改、删除、块读和块写中的一种或其任意组合。所述可持续化对象基础模块还包含代理子模块和字段交换子模块,其中,所述代理子模块用于接收并登记所述可持续化对象服务模块上报的语义;所述字段交换子模块用于完成具体数据库查询语句组织,完成所述可持续化对象服务模块的属性和与其关联的所述数据库表字段之间的数据交换。所述系统可应用于通信系统的网络管理。本专利技术还提供了一种实现对象持续化服务的方法,包含以下步骤在可持续化对象服务模块中定义自身属性以及该属性与数据库表字段关联方法,并上报到可持续化对象基础模块;所述可持续化对象基础模块接收并登记所述可持续化对象服务模块上报的语义;当进行数据库操作时,数据库操作模块调用通过泛型算法实现的相应数据库操作例程,并使用所述可持续化对象基础模块中登记的语义完成具体数据库操作语句;执行所述具体数据库操作语句,完成在所述可持续化对象服务模块的属性和与其关联的所述数据库表字段之间的数据交换。其中,所述数据库操作例程包含对所述数据库的查询、增加、更改、删除、块读和块写中的一种或其任意组合。所述系统可应用于通信系统的网络管理。所述方法还包含以下步骤构造与可持续化对象服务模块相对应的数据库表结构。这种技术方案具有较为明显的有益效果,即本专利技术的技术方案引入了持久化层的概念,从而能够统一处理数据库例行操纵过程,方便了代码的开发与维护;并且解决了任务模式、过程模式不匹配的问题,利用POS模块对面向过程式的数据库操作进行了面向对象封装,让程序员能够方便地根据任务模型,建立相应的可持续化对象模型。这样实现的一整套POS系统,使得将普通对象加上几行语义注册代码就变为可持续化对象,完全不必要实现极其复杂的ODL编译器,使得程序员仅仅需要对这些对象操作即可,不需要直接面对关系数据本文档来自技高网
...

【技术保护点】
一种实现对象持续化服务的系统,其特征在于,包含数据库操作模块、可持续化对象基础模块和多个可持续化对象服务模块,其中,所述数据库操作模块用于通过泛型算法实现统一的数据库操作例程;所述可持续化对象基础模块用于接收并登记所述可持续 化对象服务模块上报的语义,根据所述数据库操作模块的调用完成具体数据库操作语句组织,完成所述可持续化对象服务模块的属性和与其关联的所述数据库表字段之间的数据交换;所述可持续化对象服务模块用于根据所述可持续化对象基础模块定义自身属性以及 该属性与数据库表字段关联方法,供所述数据库操作模块读取。

【技术特征摘要】
1.一种实现对象持续化服务的系统,其特征在于,包含数据库操作模块、可持续化对象基础模块和多个可持续化对象服务模块,其中,所述数据库操作模块用于通过泛型算法实现统一的数据库操作例程;所述可持续化对象基础模块用于接收并登记所述可持续化对象服务模块上报的语义,根据所述数据库操作模块的调用完成具体数据库操作语句组织,完成所述可持续化对象服务模块的属性和与其关联的所述数据库表字段之间的数据交换;所述可持续化对象服务模块用于根据所述可持续化对象基础模块定义自身属性以及该属性与数据库表字段关联方法,供所述数据库操作模块读取。2.根据权利要求1所述的实现对象持续化服务的系统,其特征在于,所述数据库操作例程包含对所述数据库的查询、增加、更改、删除、块读和块写中的一种或其任意组合。3.根据权利要求1所述的实现对象持续化服务的系统,其特征在于,所述可持续化对象基础模块还包含代理子模块和字段交换子模块,其中,所述代理子模块用于接收并登记所述可持续化对象服务模块上报的语义;所述字段交换子模块用于完成具体数据库查询语句组织,完成所述可持续化对象服务模块的属性和与其关联的所述数据库表字段之...

【专利技术属性】
技术研发人员:方文滕旭伟
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1