通用数据访问模式的研究

合集下载

通用Web数据库系统体系结构研究报告

通用Web数据库系统体系结构研究报告

通用Web 数据库系统体系结构研究王磊<武汉理工大学信息工程学院信研1005班,湖北省武汉市,430070)摘要:概述了 Web 技术和数据库技术融合的必要性,详细分析了传统的Web 数据库体系结构<WDSA)的缺点,提出了基于组件和分布式对象技术的新一代通用WDSA,为Web 数据库系统的研究和开发提供了效率高,易于扩展和维护的理论框架。

关键词:WWW。

数据库管理系统。

CGI。

JDBC。

体系结构GeneralWebDatabaseSystem ArchitectureWangleiABSTRACT :The necessity of fusion of Web technology and database technology issummarized. The shortcomings of traditional Web database system architecture(WDSA> areanalyzed in detail.The new common WDSA based component technology and distributed objecttechnology is presented .It provides high efficient, easy to scalable and maintained theory framefor the study and development of WDS.KEYWORDS:WWW。

DBMS。

CGI。

JDBC。

archtectureInternet 网是目前全球最大的计算机通信网,它遍及全球几乎所有的国家与地区。

WWW<World Wide Web)系统是一个大型的分布式超媒体信息数据库,它极大地推动了Internet 的发展,已经成为Internet 中最流行、最主要的信息服务方式。

基于.NET的通用数据库访问接口的研究与应用

基于.NET的通用数据库访问接口的研究与应用

D a t a A d aห้องสมุดไป่ตู้p t e r 对象更新数据库 ; ⑥关 闭 C o n n e c t i o n对象o
2 通用数据库访 问接 口的实现 宁夏 地面基础 气象资 料应用服务平 台的数 据库访 问 起来 , 保证 良好 的封 装性和 可维护性。在. N E T中 , 数据库 实现就是通过使用通用数据库访 问接 口的实现 。. N E T针 的访 问,对于微软 自家 的 S q l S e r v e r 和其他 数据 库 - ( 支持 对各种类型 的数据 库访 问分别封装 了适合于 各 自特性 的 O l e D b) , 采 用不同 的访 问方法。 在宁夏 地面基础气 象资料 命 名空 间。D O . N E T数据提供 者在 S y s t e m. D a t a 命名 空间 应 用服 务平 台的开发 中采 用 s q l 数据 , 所以不 考虑其 它数 下, 包括 数据库连 接接 口I D b C o n n e C t i o n 、 数据库命令 接 口 据库 的类库 , 这就 需要我 们在实际 开发过 程 中, 将 这些数 I D b C o mm a n d 、 数据读取器接 口 I D a t a R e a d e r 和数据适 配器 据库访 问类进行 再一次的封装 , 这样 能够减 少数据库代码 接口I D b D a t a A d a p t e r 等 不 同种 类 的接 口 , 接 口之 后被 实 现 编 写 量。 为 C o n n e c t i o n类 、 C o m ma n d类 、 D a t a R e a d e r类 和 D a t a — 1 A D O. N E T访 问数据库的两种机制 A d a p t e r 类, 通过 这些接 口, 应 用 程 序 可 以访 问数 据 库 、 执 所谓 A D O . N E T技 术 , 就 是 一 种让 程 序 员 可 以快 速 、 高 行 相 关 的命 令 操 作 并 获 取 相 应 结 果 。 一 般 来 说 , 运 用 数 据 效 地利用 V i s u a l S t u d i o 2 0 0 5 ( 2 0 0 8或 2 0 1 0) 开发 出数据库 提供 者 对 象访 问并 更新 数 据 的操 作 会 包 含 以 下 几 个 步 骤 , 应 用程序 的技术。那 么 , 怎样 才能改进数据 库连接 的性 能 通 过 设 计 一 个 具 体 的 类 来 实 现 , 在 程 序 中 以 呢? 这 要 从 A D O . N E T访 问数 据库 的 两 种机 制 谈 起 。 D a t a S e r v i c e C o mm o n类 为例 进 行 介 绍 o 1 . 1连 接模式 连 接模 式下就是客户机 一直保持和数 据 库 服 务 器 的连 接 。 这种 模 式 比较 适 合 数据 量 不 大 、 系统

一种面向MongoDB的数据库统一访问接口设计与实现

一种面向MongoDB的数据库统一访问接口设计与实现

电子技术与软件工程Electronic Technology & Software Engineering数据库技术Database Technology一种面向MongoDB的数据库统一访问接□设计与实现王辉傅康平侯毅王阳(中国电子科技集团公司电子科学研究院北京市l O O t M l)摘要:本文结合某大型电子信息系统对M ongoDB数据库访问操作的需求,提出了一种基于M ongo-C Driver的M ongoDB数据库访问 接口的设计目标、设计思路,并采用C++语言开发了基于M ongo-C Driver的面向对象的数据库统一访问接口M ongoA SI (M ongoD B Access Service In terface)。

通过调用MongoASI类中的方法可以很轻松的实现对M ongoDB各种操作,同时,MongoASI还实现了一种通用的抽 象数据结构,该结构可实现大部分数据类型(基本类型、构造类型)的存储,有效的满足了某大型电子信息系统对M ongoDB数据库访问操 作的需求。

关键词:数据库接口;MongoDB;数据结构1引言随着信息技术的不断发展,电子信息产品及互联网应用用户量剧增,数据量呈几何级数增长,巨大的存储压力对海量数据存储技术提出了新的要求。

而传统的关系型数据库难以提供超大规模的数据存储以及高并发的读写访问能力,因此提出了 N o S Q L数据库。

N o S Q L全称是N o t O n l y Sql,指的是非关系型的数据库。

N o S Q L数据库主要应用于大规模系统,具有模式灵活、最终一致性、面向海量数据、分布式、开源、水平可扩展、配置简单、非关系型等特点。

自从谷歌提出B i g T a b l e数据库概念后,N o S Q L技术逐渐成为业界探讨和人们研宄的热点*[1]。

并出现了 H B a s e,Cassandra,M o n g o D B等一系列基于N o S Q L的存储技术。

中国南方电网信息化项目可行性研究报告

中国南方电网信息化项目可行性研究报告

中国南方电网信息化项目可行性研究报告1.概述1.1. 项目背景1.1.1.项目名称海量实时数据平台建设1.1.2.项目承担单位、主管部门及客户项目承担单位:广东科腾公司项目主管部门:广东电网公司项目主要客户:广东省电力科学研究院1.1.3.承担可行性研究的单位广东省电力设计院1.1.4.可行性研究的工作依据1.1.4.1.广东电网公司2009年~2011年信息化创先实施计划广东电网公司于2009年初提出了实现营配一体化工作创先方案,对营销、配网业务进行整理优化的同时,要求对主网、配网涉及的信息系统进行数据和应用集成,以支持营配一体化工作的开展。

其中建立海量实时数据平台,实现准实时数据展现工作是其中重要的组成部分。

在广东省电力科学研究院,随着主网工程系统、主网生产系统、配网GIS系统、配网生产系统以及计量自动化系统建设并投入运行,提高了局对主配网实时监测的能力,同时为准实时展现功能提供了基础的主配网拓扑、设备属性、图形信息和实时数据。

在SCADA实时数据获取和海量实时数据平台建设方面,广东省电力科学研究院也初步拟定了相应的技术方案,计划在2011年实施。

1.1.4.2.广东电网公司信息化创先工作方案根据《广东电网公司创建先进省级电网公司工作总体框架方案》,要求位列第一层面的广东省电力科学研究院局2009年实现国内供电企业领先,并在2010年达到国际先进水平。

为实现创建先进供电企业的目标,省公司制定了通过安全生产、供电可靠性、客户服务、经营绩效四个关键指标来度量总体目标的实现情况。

海量实时数据平台在第一阶段建设的基础上完善并整合各业务系统,更加有效的帮助改善内部业务管理模式,提升管理手段;同时也稳步提高四大关键指标精度。

1.1.5.可行性研究工作的基本内容创建国内乃至国际先进省级电网公司,是广东公司电网落实科学发展观、践行南网方略的重要举措,是以更宽阔的视野、更长远的眼光谋划广东电网新一轮科学发展的具体实践,是实现公司战略目标的根本所在。

IEC 61970组件接口规范研究与应用探讨(全文)

IEC 61970组件接口规范研究与应用探讨(全文)

IEC 61970组件接口规范研究与应用探讨(全文)XX:TP311XX:AXX:1009-3044(2021)31-0000-00Investigation and Discussion on IEC 61970 Componet Interface SpecificationLIANG Hua-jun(College of Software Engineering, Southeast University, NanJing 210096, China)Abstract: IEC 61970 CIS provides standard APIs for the creation of “plug-in”applications in the control center environment.CIS is introduced mainly in paper, then Part 402-Common Service and Part 403-Generic Data Access are researched thoroughly. Some APIs based on CIS are developed and tested.In the Fourth EMS-API Interoperability Test, the APIs are proved normatively and correctly.Key words: IEC 61970; CIM; CIS; interoperability test近年来,计算机技术的不断发展使得电力企业的自动化水平迅速提高,电力企业内部各业务部门新建了许多满足不同需求的应用系统,如能量管理系统(EMS)、调度管理和智能操作票系统(DMIS)、电能量计量系统(TMR)、电力市场技术支持系统(PMOS)等。

由于这些分别来自不同开发厂家的系统在数据模型和接口设计方面的差异,使得系统间的数据交换非常困难,在信息上各个应用系统成为相对孤立的“自动化岛”。

信息化短信平台的通用性模式探讨

信息化短信平台的通用性模式探讨

信息 化时代 的到来使手机等 高科技通 讯产 品不 断普及 , 给人 们 之 间 的信 息 交 流 带来 很 大 的便 利 。
手机短信作为重 要 的信息 传 播手 段 , 具有 重 要 的商 业 价值 和社会价 值 。短信发 送业务作为 一种独 特 的 移 动通 信增值业 务 , 被广 泛适 用 于各 种 行业 。 随着 网络技 术的发展 , 手机 与互 联 网相 结合 的现代 通 讯
( c ol f u l d n t t n F zo ies y Fl o 50 2 C ia Sh o o bi A mii r i , uh uUnvri ,lh u3 00 , hn ) P c sao t z
Absr c :Th spa e o u e n unv ra d ih i p le o als co so f r to e h oo y ta t i p rfc s so ie s lmo ewh c s a p id t l e t r fi o main tc n l g n ma a e n ot r l t r n g me ts fwa e p af m. T n e h oo y o l t r d sg s h k y t r aie e ea o he bid t c n l g fr p a o m e in i t e e o e l g n r f z l
功 能 。因此不 能直 接访 问 各种 管理 软件 的数 据库 ,
通用性 较差 。
1 通用 性模 式 下 的平 台功 能
通用性模式下的信息化短信平台是以面向用户
为主 的 , 活多变 的类 插件平 台 , 灵 安装后作 为管理软 件 的一个 附属功 能模块 , 接适 用 于各 种管 理软 件 直

基于ADO.NET的通用数据访问层设计方法研究

基于ADO.NET的通用数据访问层设计方法研究
关键 词 : D N T F coy模 式 通 用 数 据 访 问 A O. E a tr
1 引 言
在多层应 用程序 设计 时 , 常 需要将 对数据库 的 通 访 问集 中起来 , 以保 证 良好 的封 装性 和可 维护 性 。
2 相关原理分析
2 1 a oy . Fd r设计模式原理 Fd r设计模 式要 求首先提取不 同实现方法的公 a oy 共部分 并定义一 个 用于创建对 象的接 口, 在这个 接 再 口的基 础上 实现 不 同方 法类 , 在运 行时让 子类决定 实 例化哪一个类 。Fd r 设计模式使一个类的实例 化延 a oy 迟到其子类。本文中通用数据访 问方法要 求对多种数 据库 进行处理操作 , 因此 , 需要首先定义 一个操纵数据 库 的接 口, 然后 , 根据 数据库 的不 同, 由类工 厂决定 实 例化哪 个类。 2 2 D . 盯 原理分析 . A O N A O N 主 要 包 括 C n e in aa d pe , D.E T o n do ,D tA a tr D tR a e ,C mma d和 D tSt五 个 对 象 , 中 aa e d r o n aae 其
维普资讯
20 年 第 7 期 07
计 算 机 系 统 应 用
E p bi c n t t n KD F L 1 ” Kd u l o s S r g P I I D 1 P I”; c i
C n e o ,D tA a t r aa e d r o o n din aa d pe ,D tR a e ,C mma d是 n
因此 , 利用. E 为开 发工 具 时, 了屏 蔽 多种 数 在 N T作 为
据库访 问类库 的差别为业 务逻辑层 提供 统一 的接 口, 我 们有必要对基 于 A O N T的数 据访 问层 的设 计 方 D .E 法进行深入研究 。相关 文献资料已经对此问题进行 了

通用数据交换耦合器开发设计原理探析

通用数据交换耦合器开发设计原理探析

2022.11 | 145当前,出版企业的大量数据如机构数据、人员数据、产品数据、政务数据、商务数据、用户数据和内容数据等分散在党和政府部门、出版单位、发行商、图书馆、科研院所、广电商平台、电商平台等等主体当中。

现有的数据交换技术往往不能将这些数据有机地结合起来,收入数据较分散,导致相关部门和出版行业主体之间信息不畅,信息系统缺乏互联互通,产业链上的数据不能真正地融合起来,要达到汇聚、高效、共享、联合、协同更是天方夜谭。

而且,当前国内外出版企业普遍采用“FTP+XML”接口模式进行数据交换,此模式开发的接口采用的是“软件代码与业务代码交织在一起”的模式,任意节点业务规则的变化都会导致所有接口需要重新设计。

此种数据交换模式无论是研发还是后续的维护和修改都耗资巨大,远远超出了出版企业的承受能力。

因此,通过通用数据交换耦合器实现数据(含文件)的安全、可控、准确传递是很有必要的。

一、通用数据交换耦合器设计方案(一)需求分析通用数据交换耦合器承担了不同的“端交换方案”中的公有部分,同时接收来自不同出版企业或者第三方服务商所提供的“端交换方案”,对其进行准确地分析处理,再转化为相对应主体所需要的格式,完成对不同信息系统数据的统一部署管理和满足各个信息系统之间的数据交换需求。

考虑到目前出版行业以及与其有业务联系的企业所建立的信息系统大都采用关系型数据库存放数据,把通用数据交换的研究锁定在关系型数据库尤其是各种主流的关系型数据库是可行的而且极具代表性的。

通用数据交换耦合器首先是一个异构数据的管理平台,可以连接到各个异构数据库,比如Oracle、SQL Server、Mysql等,并且能够进行实时的新增、删除、修改、查询等操作。

其次,通用数据交换耦合器又是相关数据的转换备份平台,在耦合器这个平台上可以把满足条件的数据转化为XML格式的文件备份起来,也可摘要:当前,出版企业普遍采用“FTP+XML”的接口模式来进行数据交换,基于此模式开发的接口缺点是软件代码与业务代码交织在一起,任意部分业务规则的变化都会导致所有接口需要重新修改设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2. 框架的设计
为了编写可复用、可维护性好的代码,人们在实践经验中逐渐探索出了一些有针对性 的设计方案,而这些设计方案经过人们反复利用与修正,最终形成了某个特定场景下一般 问题的解决方案[2],即我们现在通常所说的设计模式。本文所研究的就是数据访问这一特 定的应用场景下,实现支持多种RDBMS的通用数据访问的解决方案。在此框架中我们需要 用到两种最常用的设计模式:Proxy模式和Abstract Factory模式。
} …… } }
而在 OracleProxy 和 DB2Proxy 中我们定义了数据库的连接和各种操作。真正的操作则 通过各厂商的驱动程序实现的具体代理(如 OracleOraProxy)中实现。OracleProxy 代码如 下(DB2Prxoy 同): public interface OracleProxy{
-4-

DatabaseCreator factory=new OracleCreator(); //生成代理类,重构在以下进行。 //OracleProxy oracleMSProxy = factory.createOracleMSProxy(); OracleProxy oracleOraProxy = factory.createOracleOraProxy(); oracleOraProxy.connect(); oracleOraProxy.execInsert(table); oracleOraProxy.close();
通过以上角色的定义,我们已经形成了各种数据库驱动程序实现的不同代理的工厂, 在完成这一模块后,我们需要将其整合到上一节设计的代理模块中去。实际上,我们这一 模块的设计就是完成上述代理框架的 TableProxy 类的功能。在图 1 中,DBTable 类和 TableProxy 类实际上分担不同的职责:DBTable 类(严格来说,应该是各具体数据库表类 RealTableX)负责对每个数据库表类的各字段值的设置和获取以及各种 SQL 语句(如添加、 修改和删除等)的生成;而 TableProxy 类负责数据库的连接以及各种 SQL 语句的执行(包 括存储过程、事务等)。而在我们的数据库代理生成模块中,我们的目的是生成各种数据库 驱动程序实现的代理。而这些驱动程序所要实现的方法就是 TableProxy 类中要实现的功能。 因此,数据 库代理模块中的各种代理如 OracleProxy 类和 DB2Proxy 类就是我们要整合的对象,即这两 个类替换 TableProxy 类。而真正的代理则是由具体创建者类(OracleCreator 和 DB2Creator) 生 成 的 具 体 产 品 类 , 即 具 体 数 据 库 厂 商 代 理 类 (OracleOraProxy 、 OracleMSProxy 和 DB2MSProxy、DB2IBMProxy)。数据库代理生产模块的 UML 图如图 2 所示。
关键词: 复用; 设计原则; 代理模式; 工厂方法模式
中图法分类号: TP311
文献标识码: A
1.引言
随着计算机的广泛应用,各行各业的企业都加速自身的信息化建设。大多数信息系统 都不可避免地涉及到数据的存储及访问,有效且优质的数据访问代码,对于现实中任何企 业应用程序的性能和适用性来说,都是至为关键的。要改进现有系统,没有哪种方式比优 化数据访问代码更好了[1]。
在具体应用中,当系统更换RDBMS或数据库驱动程序时,我们只需利用OracleCreator 或DB2Creator来重构[5]生成不同的数据库厂商代理,然后通过生成的各种代理来访问具体 的数据库表。在访问时我们利用统一的接口DBTable类,这样屏蔽了具体的数据库表类, 从而提高了系统的复用性。
3.பைடு நூலகம்架的实现
1本课题得到云南省自然科学基金资助项目(2005IT17)。 -1-

对象技术中的设计原则:Liskov 原则[3]。通过上面的设计,我们的数据访问的代理模式如 图 1。这些数据库操作按其使用功能,可分为两类:一类是数据库的连接与释放,我们定 义为connect()和close()方法。另一类是对数据的具体操作,这些操作有:数据的查询、删除、 修改、添加功能(execSelectSQL()、execDeleteSQL()、execUpdateSQL()、execInsertSQL()) 以及事务的处理(begineTrans()、commit()、rollback())等(如图 1TableSubject所示)。而 在具体的RealTableX中我们屏蔽了这些操作。
一般大中型企业中都会有一些早期开发的遗留系统,在对不同系统的整合过程中,会 涉及到调用不同数据库的数据。将企业的业务逻辑与数据访问隔离开来就成为了一个关键 的工作,这样当后台数据库发生变更时,不至于引起客户端程序的大量改动,从而保证了 系统的整体的稳定性与数据访问程序的可移植性。据此,本文提出了一个集中控制且支持 多种数据库平台的数据访问模式。
2.1 应用 Proxy 设计框架
根据Proxy模式的机制,我们需要建立三组类[4]:由关系型数据库表映射成的具体处理 业 务 的 数 据 对 象 RealTableX , 用 来 接 受 来 自 所 有 客 户 端 的 数 据 访 问 请 求 并 将 其 转 发 给 RealTableX的代理对象TableProxy和为保证代理对象具备代理数据对象的功能,即能在任何 时候能“替代”RealTableX对象的统一接口TableSubject。
之后在各自的数据库代理中创建代理,在实现创建不同数据库代理时我们可屏蔽掉另
-3-

一 不 同 数 据 库 ( 此 例 中 的 DB2 ) 代 理 , 具 体 手 段 可 采 用 如 抛 出 异 常 等 。
OracleCreator 的代码: public class OracleCreator implements DatabasCreator { public OracleProxy createOracleOraProxy(){
在这里我们对数据库的连接模块给出本框架的 java 实现代码。首先在 DatabaseCreator 接口中定义要创建的各种实际可能用到的代理,在这里我们以不同厂商(MS、Oracle、IBM) 的 Oracle 和 DB2 的数据驱动程序为例。 public interface DatabaseCreator { public OracleProxy createOracleOraProxy(); public OracleProxy createOracleMSProxy(); public DB2Proxy createDB2IBMProxy(); public DB2Proxy createDB2MSProxy(); }

通用数据访问模式的研究1
陈卫,丁志强,徐劲松
昆明理工大学信息工程与自动化学院,云南昆明(650051)
摘 要: 运用面向对象的设计原则,将代理模式与工厂方法模式相结合,提出了一种新的 通用数据访问模式。该模式能够支持多种关系型数据库管理系统和数据驱动程序,通过将 应用层与数据层隔离,大大减少了系统的耦合性,具有广泛的实际应用前景。
public int connect (); public int close (); public int execInsertSQL (DBTable table); //other useful methods } 最后,在客户端,我们根据需要生成各中代理,通过代理执行各种操作,在这里我们 通过调用各具体数据库表类(RealTableX)的查询获取方法实现各种数据操作,从而与代 理模块无缝的结合起来。客户端的代码片断如下所示: DBTable table = new RealTable1();
-2-

DB2MSProxy 和 DB2IBMProxy。在这里我们可以扩展任意数据库的代理,如可根据实际需 要添加 SQLSrvCreator,来实现 SQL Server 数据库的访问。 3)抽象产品类(Abstract Product):为一类产品对象声明一个接口。本模块中我们的抽象 产品类为 OracleProxy 和 DB2Proxy 接口。它们提供连接数据库的各种操作以及转换操作的 结果等功能的定义,本模块中的抽象产品接口实际上就是上节图 1 中的 TableProxy,稍后 我们具体论述。 4)具体产品类(Concrete Product):实现抽象产品中定义的所有接口。在具体产品中的接 口方法由各种数据库厂商或第三方的数据驱动程序支持。这些驱动程序可以是同一数据库 的不同厂商提供的(如对于 oracle 数据库的驱动程序有 oracle 自己提供的 OracleInProcServer 和 MS 提供的 OracleClient),也可以是不同数据库的统一厂商提供的(MS 提供的 OleClient 和 OracleClient)。所有这些具体产品类都实现抽象产品类定义的操作以达到支持不同 RDBMS 和不同数据库厂商的数据驱动程序。从而极大地增强了数据库替换的灵活性和可 维护性。
上述的 RealTableX 类为具体业务表类,实际操作中会随着业务的变化而增加或者废弃 一些不需要的数据表,为了适应这种需求的灵活性,我们使用统一的接口来替代 RealTableX 对象,让所有客户使用代理只针对一个接口来访问,而让所有其他的数据库表都继承这个 接口,我们将这个统一的接口命名为 DBTable。这一改变正是应用了面向
return new OracleOraProxy(); } public OracleProxy createOracleMSProxy(){
return new OracleMSProxy(); } public DB2Proxy createDB2IBMProxy(){ //此处屏蔽此方法实现,在 DB2Creator 中 //同理屏蔽创建 Oracle 代理的方法
2.2 应用 Factory Method 设计数据库连接模块
相关文档
最新文档