CN105468635B - 一种目标特性实时数据库及其应用方法 - Google Patents
一种目标特性实时数据库及其应用方法 Download PDFInfo
- Publication number
- CN105468635B CN105468635B CN201410452969.2A CN201410452969A CN105468635B CN 105468635 B CN105468635 B CN 105468635B CN 201410452969 A CN201410452969 A CN 201410452969A CN 105468635 B CN105468635 B CN 105468635B
- Authority
- CN
- China
- Prior art keywords
- data
- shared drive
- key
- database
- port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Berkeyley DB的目标特性实时数据库及其应用方法,本发明公开的基于Berkeyley DB的目标特性实时数据库包括:数据库更新模块、通信模块、数据读取模块和数据资源模块;所述的通信模块包括映像文件创建端口和共享内存交互端口,数据库与应用程序通过共享内存进行数据交互。本发明解决了基于Berkeyley DB的嵌入式数据库与应用程序不兼容的问题。
Description
技术领域
本发明涉及数据处理领域,特别涉及目标成像半实物/全数字仿真领域的一种基于Berkeyley DB的以共享内存通信的数据库及其应用方法。
背景技术
电磁环境模型是目标成像半实物/全数字仿真的基础,电磁环境建模在产品研发领域发挥着重要应用。实时模拟一个逼真的电磁环境需要大量的数据作为支撑,如何高效地运用这些海量数据,使之满足仿真系统的实时性要求极为重要。
Berkeyley DB是一种零配置运行模式,数据库资源占用少,实时性强,操作简单可靠,满足电磁环境仿真的需要。以Berkeyley DB为核心的嵌入式数据库可以满足仿真系统实时性的要求。所述的以Berkeyley DB为核心的嵌入式数据库直接运行在应用程序进程中,无数据库服务器的概念,应用程序不需要事先同数据库服务建立起网络连接,而是通过内嵌在程序中的Berkeyley DB函数库来完成对数据的保存、查询、修改和删除等操作。但是Berkeyley DB为核心的嵌入式数据库直接嵌入到仿真应用程序中使用可能会发生兼容性问题。例如,有些仿真应用程序需运行在Microsoft Visual C++6.0环境下,而BerkeyleyDB需运行在Microsoft Visual Studio2005或以上版本下,因而将Berkeyley DB直接嵌入到该应用程序会产生版本兼容性问题。解决方案之一是将仿真应用程序移植到与Berkeyley DB兼容的环境下,但对于复杂的仿真应用程序,这样做的代价太大。
发明内容
本发明解决的问题是Berkeyley DB为核心的嵌入式数据库会发生与应用程序不兼容的问题;为解决所述问题,本发明提供一种基于Berkeyley DB的数据库及其应用方法。
本发明提供的基于Berkeyley DB的数据库,包括:数据库更新模块、通信模块、数据读取模块和数据资源模块;所述的通信模块包括映像文件创建端口和共享内存交互端口,数据库与应用程序通过共享内存进行数据交互。
进一步,所述的数据库更新模块包括数据写入端口、数据删除端口和数据更新端口。
进一步,所述的数据读取模块包括实时数据读取端口,负责实时响应客户端数据读取的请求。
进一步,所述数据资源模块包括目标特性数据集,提供应用程序所需要的目标特性数据。
进一步,所述数据库由Key/data对进行数据管理,key为访问数据的关键字,根据服务对象的特征对key进行编码,服务对象在对应特征下的辐射特性数据保存在与key对应的data中。
本发明提供的基于Berkeyley DB的数据库的应用方法,包括:
步骤一、建构数据库;
步骤二、应用程序启动时,数据库所在的服务端调用映像文件创建端口创建共享内存;
步骤三、客户端应用程序在运行过程中,根据服务对象的当前状态形成用于数据访问的key编码,并将所述key编码写入共享内存;
步骤四、服务端在预定的周期内检查共享内存是否更新,如果更新,则读取更新的key编码,在数据资源模块中查询到对应的data,并将data写入共享内存,客户端读取所述data,完成数据交互。
进一步,客户端由通信模块调用共享内存交互端口,首先判断共享内存是否被其他进程占用;如果被占用,则等待;如果未被占用,则获取指向共享内存的指针,并将key编码写入共享内存。
本发明的优点包括:放弃了Berkeyley DB传统的直接嵌入到应用程序中的方式,采用基于共享内存的数据交互方式,即服务端和客户端分别运行在两个独立的进程,两者通过共享内存进行数据交互,从而解决了Berkeyley DB为核心的嵌入式数据库会发生与应用程序不兼容的问题;
Berkeyley DB为核心的目标特性实时数据库可以实时响应客户端的数据请求,响应速度小于1ms。
附图说明
图1是本发明的实施例提供的基于Berkeyley DB的目标特性实时数据库的结构示意图;
图2是本发明的实施例提供的基于Berkeyley DB的目标特性实时数据库的应用方法流程示意图。
具体实施方式
下文中,结合附图和实施例对本发明作进一步阐述。
本发明所提过的基于Berkeyley DB的目标特性实时数据库及其应用方法可以用于所有的数据库,在本实施例中,以电磁环境仿真用数据库为例,对本发明作示意性阐述。
如图1所示,本发明提供的基于Berkeyley DB的目标特性实时数据库,包括:数据库更新模块10、通信模块20、数据读取模块30和数据资源模块40;所述的通信模块30包括映像文件创建端口和共享内存交互端口,数据库与应用程序通过共享内存进行数据交互。
本发明提供的基于Berkeyley DB的目标特性实时数据库,独立于应用程序运行环境。作为服务端,数据库启动后为客户端的应用程序提供后台实时数据支撑。服务端与客户端通过共享内存进行数据交互。
继续参考图1,所述的数据库更新模块10主要由数据写入端口、数据删除端口和数据更新端口构成,所述数据写入端口提供数据写入功能、数据删除端口提供数据删除功能、数据更新端口提供数据更新功能。
根据电磁环境仿真的实际情况,仿真过程中无需实时更新数据库,数据的写入、删除和更新作为数据库的维护环节在仿真程序启动之前完成即可。写入的数据存储在数据资源模块40。
通信模块20负责服务端与客户端的数据交互,由映像文件创建端口和共享内存数据交互端口构成。为了使服务端独立于客户端应用程序的运行环境,解决Berkeyley DB与仿真程序运行环境的兼容性问题,本发明采用基于共享内存的数据交互方式,即服务端和客户端分别运行在两个独立的进程,两者通过共享内存进行数据交互。在应用程序启动时,调用映像文件创建端口,根据事先约定的名称创建映像文件,即共享内存。
数据读取模块30负责实时响应客户端数据读取的请求,主要包括实时数据读取端口。
数据资源模块40提供电磁环境仿真所需的目标特征数据集。
结合参考图1和图2,本发明提供的基于Berkeyley DB的目标特性实时数据库的应用方法包括:
步骤一、建构数据库;
步骤二、应用程序启动时,数据库所在的服务端调用映像文件创建端口创建共享内存;
步骤三、客户端应用程序在运行过程中,根据服务对象的当前状态形成用于数据访问的key编码,并将所述key编码写入共享内存;
步骤四、服务端在预定的周期内检查共享内存是否更新,如果更新,则读取更新的key编码,在数据资源模块中查询到对应的data,并将data写入共享内存,客户端读取所述data,完成数据交互。
基于Berkeyley DB的数据库由key/data对进行数据管理。key/data对相当于关系数据库系统中的行。Berkeyley DB不提供关系数据库中列直接访问的功能,而是在key/data对中的data 项中通过实际应用来封装字段。每对key/data组成一个数据库基本结构单元,整个数据库是由许多这样的结构单元构成。应用程序只需提供key就能够访问到相应的数据。Key/data可以是任意长度的二进制数据。
key是访问数据的关键字,本实施例根据服务对象的特征对key进行编码,例如描述空中飞行目标电磁辐射特性的key可编码为“qh30qv10s0.5h200En0”,表示目标的方位角和俯仰角分别为30°、10°,飞行速度为0.5Ma,飞行高度为200m,发动机额定工作。飞行器在该状态下的辐射特性数据保存在与之对应的data中,其结构采用结构化的数据结构。
typedef struct _SignatureData
{
char key[n1];
float radiance[m*n];
float range[m*n];
// ……其它需要的数据……//
} SignatureData;
key/data对设计完成后,数据库更新模块调用数据写入端口将key/data对写入数据资源模块。如果用户需要删除或更新数据库中已有的key/data对,分别调用数据删除和更新端口即可。根据电磁环境仿真需求,数据库更新无需实时进行,因而,数据库更新工作在电磁环境仿真开始前完成即可,从而进一步保证了仿真对数据库的实时性要求。
完整描述服务对象特性的所有key/data对构成数据资源模块的数据库,为电磁环境仿真提供数据支撑。
如图2所示,客户端和服务端程序启动时调用通信模块的映像文件创建端口,根据事先约定的名称创建映像文件,也即共享内存。客户端应用程序在运行过程中,根据仿真对象的当前状态形成用于数据访问的key编码,并将其写入共享内存。服务端在预定的周期内检查共享内存是否更新,如果更新,则读取更新的key编码,在数据库中查询到对应的data,并将data写入共享内存,客户端读取该data,完成数据交互。整个过程的详细步骤如下:
1) 客户端程序完成key编码后,调用数据读取模块的实时数据读取端口,向共享内存发送key编码;
2) 客户端由通信模块调用共享内存数据交互端口,首先判断共享内存是否被其它进程占用,如果占用,则等待,如果未占用,则获取指向共享内存的指针,并将key编码写入共享内存;
3) 在预定的周期内,服务端调用共享内存数据交互端口,查看key编码是否更新,如果更新,则获取指向共享内存的指针,并读取该key编码;
4) 服务端调用实时数据读取端口,根据key编码查询数据库中与之对应的data,并将其读出后向共享内存发送;
5) 服务端由通信模块调用共享内存数据交互端口,首先判断共享内存是否被其它进程占用,如果占用,则等待,如果未占用,则获取指向共享内存的指针,并将data写入共享内存;
6) 客户端查询到共享内存的data更新后,按照步骤3)类似的方法读取data,并由实时数据读取端口返回给客户端应用程序。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (7)
1.一种目标特性实时数据库,其特征在于,所述数据库基于Berkeley DB,包括:数据库更新模块、通信模块、数据读取模块和数据资源模块;所述的通信模块包括映像文件创建端口和共享内存数据交互端口,数据库与应用程序通过共享内存进行数据交互;所述数据库由key/data对进行数据管理,key为访问数据的关键字,根据服务对象的特征对key进行编码,服务对象在对应特征下的辐射特性数据保存在与key对应的data中;所述数据交互的具体步骤包括:
1) 客户端程序完成key编码后,调用数据读取模块的实时数据读取端口,向共享内存发送key编码;
2) 客户端由通信模块调用共享内存数据交互端口,首先判断共享内存是否被其它进程占用,如果占用,则等待,如果未占用,则获取指向共享内存的指针,并将key编码写入共享内存;
3) 在预定的周期内,数据库所在的服务端调用共享内存数据交互端口,查看key编码是否更新,如果更新,则获取指向共享内存的指针,并读取该key编码;
4) 服务端调用实时数据读取端口,根据key编码查询数据库中与之对应的data,并将其读出后向共享内存发送;
5) 服务端由通信模块调用共享内存数据交互端口,首先判断共享内存是否被其它进程占用,如果占用,则等待,如果未占用,则获取指向共享内存的指针,并将data写入共享内存;
6) 客户端查询到共享内存的data更新后,按照步骤3)类似的方法读取data,并由实时数据读取端口返回给客户端应用程序。
2.依据权利要求1所述的目标特性实时数据库,其特征在于,所述的数据库满足半实物仿真对实时性的要求。
3.依据权利要求1所述的目标特性实时数据库,其特征在于,所述的数据库更新模块包括数据写入端口、数据删除端口和数据更新端口。
4.依据权利要求1所述的目标特性实时数据库,其特征在于,所述的数据读取模块包括实时数据读取端口,负责实时响应客户端数据读取的请求。
5.依据权利要求1所述的目标特性实时数据库,其特征在于,所述数据资源模块包括目标特性数据集,提供应用程序所需要的特性数据。
6.权利要求1至5中任意一项所提供的目标特性实时数据库的应用方法,其特征在于,包括:
步骤一、建构数据库;
步骤二、应用程序启动时,数据库所在的服务端调用映像文件创建端口创建共享内存;
步骤三、客户端应用程序在运行过程中,根据服务对象的当前状态形成用于数据访问的key编码,并将所述key编码写入共享内存;
步骤四、服务端在预定的周期内检查共享内存是否更新,如果更新,则读取更新的key编码,在数据资源模块中查询到对应的data,并将data写入共享内存,客户端读取所述data,完成数据交互。
7.依据权利要求6所述的目标特性实时数据库的应用方法,其特征在于,客户端由通信模块调用共享内存数据交互端口,首先判断共享内存是否被其他进程占用;如果被占用,则等待;如果未被占用,则获取指向共享内存的指针,并将key编码写入共享内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410452969.2A CN105468635B (zh) | 2014-09-09 | 2014-09-09 | 一种目标特性实时数据库及其应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410452969.2A CN105468635B (zh) | 2014-09-09 | 2014-09-09 | 一种目标特性实时数据库及其应用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105468635A CN105468635A (zh) | 2016-04-06 |
CN105468635B true CN105468635B (zh) | 2019-02-15 |
Family
ID=55606340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410452969.2A Active CN105468635B (zh) | 2014-09-09 | 2014-09-09 | 一种目标特性实时数据库及其应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468635B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库系统 |
CN101901250A (zh) * | 2010-06-08 | 2010-12-01 | 中兴通讯股份有限公司 | 一种内存数据库及其数据处理方法 |
CN102298648A (zh) * | 2011-09-29 | 2011-12-28 | 南京国电南自轨道交通工程有限公司 | 开放式实时数据库跨进程访问方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8478772B2 (en) * | 2010-10-21 | 2013-07-02 | Oracle International Corporation | On-device database service for mobile device |
-
2014
- 2014-09-09 CN CN201410452969.2A patent/CN105468635B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库系统 |
CN101901250A (zh) * | 2010-06-08 | 2010-12-01 | 中兴通讯股份有限公司 | 一种内存数据库及其数据处理方法 |
CN102298648A (zh) * | 2011-09-29 | 2011-12-28 | 南京国电南自轨道交通工程有限公司 | 开放式实时数据库跨进程访问方法 |
Non-Patent Citations (2)
Title |
---|
嵌入式数据库Berkeley DB的原理与应用;刘巍巍 等;《科学技术与工程》;20050131;第5卷(第2期);第86-90页 |
监控组态软件框架的设计及实时数据库的实现;郭靖;《中国优秀硕士学位论文全文数据库信息科技辑》;20131215(第S2期);第7-23页 |
Also Published As
Publication number | Publication date |
---|---|
CN105468635A (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102868726B (zh) | 一种互联网信息发布方法及系统 | |
CN102999584B (zh) | 电力gis跨平台空间数据服务方法及系统 | |
CN106611046A (zh) | 基于大数据技术的空间数据存储处理中间件框架 | |
CN110520857A (zh) | 使用虚拟化数据迭代器对神经网络进行数据处理性能增强 | |
CN102508919B (zh) | 数据处理方法及系统 | |
CN105701851B (zh) | 一种基于地理信息的三维渲染引擎系统 | |
CN108536705A (zh) | 数据库系统中对象的编码及运算方法与数据库服务器 | |
CN112347212A (zh) | 面向bim应用的铁路云gis平台及其搭建方法 | |
CN110413595A (zh) | 一种应用于分布式数据库的数据迁移方法和相关装置 | |
CN105447051A (zh) | 一种数据库操作的方法和装置 | |
CN104754052A (zh) | 一种基于Websocket实现消息推送的方法 | |
CN107992767A (zh) | 一种基于多云平台的权限控制方法 | |
CN104298761B (zh) | 一种异构软件系统间主数据匹配的实现方法 | |
WO2022264923A1 (ja) | 3dオブジェクト管理用データ、コンピュータプログラム及び3dオブジェクトの分散管理方法 | |
CN106716405A (zh) | 用于将在计算机设备的本地桌面应用程序上创建的命令和/或内容直接注入至网页浏览器并反之亦然的系统、方法和计算机程序产品 | |
CN108228912A (zh) | 一种业务数据的处理方法及相关装置 | |
CN104133942A (zh) | 智能3d生活数据云服务系统 | |
CN104077374B (zh) | 一种实现ip盘文件存储的方法及装置 | |
CN105468635B (zh) | 一种目标特性实时数据库及其应用方法 | |
CN105242958A (zh) | 一种虚拟试验系统与hla仿真系统数据交换方法 | |
CN103049262B (zh) | 基于远程帧缓存的窗口还原方法 | |
Pastaki Rad et al. | A survey of cloud platforms and their future | |
CN101593176A (zh) | 一种基于Web的参数化跨平台零件库系统 | |
CN104808970A (zh) | 一种实现国际化软件的方法和系统 | |
CN110704468A (zh) | 数据更新方法、装置及控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |