CN106776968A - 一种通用的游戏数据接口层 - Google Patents
一种通用的游戏数据接口层 Download PDFInfo
- Publication number
- CN106776968A CN106776968A CN201611104385.1A CN201611104385A CN106776968A CN 106776968 A CN106776968 A CN 106776968A CN 201611104385 A CN201611104385 A CN 201611104385A CN 106776968 A CN106776968 A CN 106776968A
- Authority
- CN
- China
- Prior art keywords
- data
- class
- database
- manipulation
- interface
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种通用的游戏数据接口层,包括基础定义模块、数据操作模块、数据库操作模块及数据库操作工具模块;基础定义模块包括数据层接口类和注解定义类,数据层接口类用于用户进行数据操作,注解定义类用于用户对所定义的数据库类进行注解标识,注解包括缓存注解和持久化注解;数据库操作工具模块包括数据扫描类和数据注册类;数据操作模块包括数据操作实现抽象接口和数据操作实现类,数据操作实现类用于实现用户数据操作指令,数据操作实现抽象接口用于根据注解进行带缓存的数据操作或无缓存的数据操作;数据库操作模块包括数据库连接类和数据库对象基类。本发明接口层可提供简单、高效的数据接入,且能够融合第三方缓存。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种通用的游戏数据接口层。
背景技术
在游戏研发领域,有很多核心开发模块,包括网络层、分发层、并发层、数据层及节点集群等,每个开发模块的设计都对系统的性能、可用性、便捷性有很大的影响,因此对于上述开发模块的设计构建至关重要。
针对上述开发模块,有与之关联的开发框架,如网络层有Netty、并发层有AKKA。Netty是一套提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。AKKA是一套用于构建高并发、分布式的系统的工具包和运行环境。
对于数据层,有Hibernate、MyBatis等数据库对象关系映射框架及Cobar、MyCat数据库中间件,Hibernate、MyBatis等数据库对象关系映射框架虽然可以简化代码、提高编码效率,但性能并不突出,且自带的缓存系统,均是简单、无法支持大量级的系统,无法满足游戏研发的需求。在游戏研发领域,性能是关键,如何提供一种简单、高效、能融合第三方缓存的数据接口层,是目前数据层开发亟待解决的问题之一。
发明内容
本发明主要解决的技术问题是提供一种通用的游戏数据接口层,可提供简单、高效的数据接入,且能够融合第三方缓存。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种通用的游戏数据接口层,包括基础定义模块、数据操作模块、数据库操作模块及数据库操作工具模块;基础定义模块包括数据层接口类和注解定义类,数据层接口类用于用户进行数据操作,注解定义类用于用户对所定义的数据库类进行注解标识,注解包括缓存注解和持久化注解;数据库操作工具模块包括数据扫描类和数据注册类,数据扫描类和数据注册类用于根据用户数据操作指令进行注解的扫描和注册;数据操作模块包括数据操作实现抽象接口和数据操作实现类,数据操作实现类用于实现用户数据操作指令,数据操作实现抽象接口用于根据注解进行带缓存的数据操作或无缓存的数据操作;数据库操作模块包括数据库连接类和数据库对象基类,数据库连接类和数据库对象基类用于实现带缓存的数据操作或无缓存的数据操作。
其中,数据层接口类为IData,用于提供操作接口。
其中,注解定义类包括PO和Cacheable,PO为持久化注解,Cacheable为缓存注解。
其中,数据扫描类为AutoScan,数据注册类为PoRegister。
其中,数据操作实现类包括SyncData和AsyncData,SyncData、AsyncData为IData的实现类,分别用于实现同步、异步数据操作。
其中,数据操作实现抽象接口包括Dao和CacheDao,Dao根据PO进行无缓存的数据操作,CacheDao根据Cacheable进行带缓存的数据操作。
其中,数据库连接类包括DataSource和SqlHelper。
其中,数据库对象基类为TableObject,用于实现对象关系转化。
其中,数据库操作工具模块包括数据库密码加密类。
其中,数据库密码加密类为EncodePassword。
本发明的有益效果是:区别于现有技术的情况,本发明的通用的游戏数据接口层包括基础定义模块、数据操作模块、数据库操作模块及数据库操作工具模块,其中,基础定义模块包括数据层接口类和注解定义类,注解定义类包括PO和Cacheable,数据操作模块包括数据操作实现抽象接口和数据操作实现类,数据操作实现类包括SyncData和AsyncData,数据操作实现抽象接口包括Dao和CacheDao。通过上述方式,本发明接口层可同步或异步持久化到数据库或进行缓存,实现简单、高效的数据接入,且能够融合第三方缓存。
具体实施方式
本实施例通用的游戏数据接口层包括基础定义模块、数据操作模块、数据库操作模块及数据库操作工具模块,各模块的功能具体如下:
基础定义模块包括数据层接口类和注解定义类,其中,数据层接口类用于用户进行数据操作,注解定义类用于用户对所定义的数据库类进行注解标识,具体地,注解包括缓存注解和持久化注解。
在本实施例中,数据层接口类为IData,对外提供操作接口,屏蔽具体实现。注解定义类包括PO和Cacheable,其中,PO为持久化注解,Cacheable为缓存注解,带有PO注解的持久化到数据库,带有Cacheable注解的进行缓存。
数据库操作工具模块包括数据扫描类和数据注册类,数据扫描类和数据注册类用于根据用户数据操作指令进行注解的扫描和注册。
在本实施例中,数据扫描类为AutoScan,数据注册类为PoRegister。该两个类用于用户的应用启动时,进行注解的扫描和注册。
数据操作模块包括数据操作实现抽象接口和数据操作实现类,其中,数据操作实现类用于实现用户数据操作指令,数据操作实现抽象接口用于根据注解进行带缓存的数据操作或无缓存的数据操作。
在本实施例中,数据操作实现类包括SyncData和AsyncData,SyncData、AsyncData为IData的实现类,分别用于实现同步、异步数据操作。对于同步、异步数据操作,用户可根据需要进行选择。数据操作实现抽象接口包括Dao和CacheDao,用于实现SyncData或AsyncData,其中,Dao根据PO进行基础的无缓存的数据操作,CacheDao是Dao的子类,根据Cacheable实现带缓存的数据操作。
数据库操作模块包括数据库连接类和数据库对象基类,其中,数据库连接类和数据库对象基类用于实现带缓存的数据操作或无缓存的数据操作。
在本实施例中,数据库连接类包括DataSource和SqlHelper,数据库对象基类为TableObject,用于实现对象关系转化。上述类用于实现Dao或CacheDao。
在本实施例中,数据库操作工具模块还包括数据库密码加密类,即EncodePassword,用于对数据库密码进行加密,防止因配置文件明文记录密码导致的不安全性。数据库操作工具模块还可包括返回结果基类,即BaseResultSetHandler,用于允许用户进行返回结果的类扩充。基础定义模块还包括BasePo。
以上所述,本实施例接口层的基础定义模块用于存放基础类文件,该基础类文件用于提供给用户进行调用。数据操作模块集中了数据操作的具体实现,包括同步、异步两种不同的实现及数据缓存操作的实现。数据库操作模块实现对象关系转化框架,该框架为自研框架,并提供数据库连接和操作的接口。数据库操作工具模块包括对象自动注册、数据库密码加密等。
在实际应用中,本实施例接口层的框架具体包括:数据操作接口、缓存接入、数据库接入、数据库工具、数据操作、数据定义。接口层和缓存、数据库进行交互,完成数据的缓存和持久化,并通过数据操作接口对外提供操作接口。数据操作接口包括多种方法,用户根据需要进行调用,因为在不同的实际应用系统中,整体的架构不同,和数据操作接口的连接方式也不同,需要应用系统根据自己的需要构建连接。
在本实施例中,自研框架为ORMapping框架,其应游戏研发的特性,抛弃重度的对象关系转化框架,采用高效的DbUtils类进行数据持久化操作,并利用自定义PO注解,实现便捷的数据库对象类定义。
在本实施例中,为达到更高效的数据获取能力,引入Redis缓存,Redis是一个基于内存亦可以持久化的、Key-Value数据库,支持分布式部署,由于其基于内存,存储速度快,所以一般都用于缓存。引入Redis缓存,并利用自定义的Cacheable注解,可以方便的指定需要进行缓存的类。对于Cacheable注解的类,在接口层中,会自动采用缓存,此操作对于用户不可见,也不需要用户关注具体的实现细节。
在本实施例中,数据的批量写入可以带来很大的性能提升,进一步降低对于数据库的负荷。但是批量写入会带来时延问题,因此,不同的场景对于批量写入的需求不同。对此,接口层定义了基础类IData,并实现了同步和非同步写入的实现类,由用户根据需要,具体指定操作方式。
综上所述,本发明的接口层作为游戏数据接口层,具有统一的数据操作接口,可屏蔽用户与具体实现,还可增加可扩展性。具体地,本发明接口层利用IData的基类做接口定义,并提供给外部系统使用。
相对于现有游戏开发中,数据接口层设计复杂、性能低下的缺点,利用本发明通用的游戏数据接口层可对不同游戏的数据接口层进行快速开发,并具有高效的数据持久化能力。本发明接口层的特点如下:使用ORMapping框架;利用缓存隔离数据库操作;支持异步持久化批量写入;数据操作接口统一,可扩展的实现模式。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种通用的游戏数据接口层,其特征在于,包括基础定义模块、数据操作模块、数据库操作模块及数据库操作工具模块;
所述基础定义模块包括数据层接口类和注解定义类,所述数据层接口类用于用户进行数据操作,所述注解定义类用于用户对所定义的数据库类进行注解标识,所述注解包括缓存注解和持久化注解;
所述数据库操作工具模块包括数据扫描类和数据注册类,所述数据扫描类和数据注册类用于根据用户数据操作指令进行所述注解的扫描和注册;
所述数据操作模块包括数据操作实现抽象接口和数据操作实现类,所述数据操作实现类用于实现用户数据操作指令,所述数据操作实现抽象接口用于根据所述注解进行带缓存的数据操作或无缓存的数据操作;
所述数据库操作模块包括数据库连接类和数据库对象基类,所述数据库连接类和数据库对象基类用于实现带缓存的数据操作或无缓存的数据操作。
2.根据权利要求1所述的通用的游戏数据接口层,其特征在于,所述数据层接口类为IData,用于提供操作接口。
3.根据权利要求2所述的通用的游戏数据接口层,其特征在于,所述注解定义类包括PO和Cacheable,所述PO为持久化注解,所述Cacheable为缓存注解。
4.根据权利要求3所述的通用的游戏数据接口层,其特征在于,所述数据扫描类为AutoScan,所述数据注册类为PoRegister。
5.根据权利要求4所述的通用的游戏数据接口层,其特征在于,所述数据操作实现类包括SyncData和AsyncData,所述SyncData、AsyncData为IData的实现类,分别用于实现同步、异步数据操作。
6.根据权利要求5所述的通用的游戏数据接口层,其特征在于,所述数据操作实现抽象接口包括Dao和CacheDao,所述Dao根据所述PO进行无缓存的数据操作,所述CacheDao根据所述Cacheable进行带缓存的数据操作。
7.根据权利要求6所述的通用的游戏数据接口层,其特征在于,所述数据库连接类包括DataSource和SqlHelper。
8.根据权利要求7所述的通用的游戏数据接口层,其特征在于,所述数据库对象基类为TableObject,用于实现对象关系转化。
9.根据权利要求8所述的通用的游戏数据接口层,其特征在于,所述数据库操作工具模块包括数据库密码加密类。
10.根据权利要求9所述的通用的游戏数据接口层,其特征在于,所述数据库密码加密类为EncodePassword。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611104385.1A CN106776968B (zh) | 2016-12-05 | 2016-12-05 | 一种通用的游戏数据接口层 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611104385.1A CN106776968B (zh) | 2016-12-05 | 2016-12-05 | 一种通用的游戏数据接口层 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776968A true CN106776968A (zh) | 2017-05-31 |
CN106776968B CN106776968B (zh) | 2020-10-23 |
Family
ID=58878737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611104385.1A Active CN106776968B (zh) | 2016-12-05 | 2016-12-05 | 一种通用的游戏数据接口层 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776968B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434517A (zh) * | 2021-08-26 | 2021-09-24 | 中博信息技术研究院有限公司 | 缓存方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286167A (zh) * | 2007-04-11 | 2008-10-15 | 软件股份公司 | 用于访问物理数据存储器中的文件的系统和方法 |
CN101459676A (zh) * | 2008-12-31 | 2009-06-17 | 中国科学院计算技术研究所 | 针对文件系统的基于高速网络的消息传输框架和方法 |
CN101739460A (zh) * | 2009-12-16 | 2010-06-16 | 中国科学院对地观测与数字地球科学中心 | 基于网格的空间数据源统一化服务系统和方法 |
CN103399753A (zh) * | 2013-08-19 | 2013-11-20 | 银联商务有限公司 | 软件架构 |
CN104252339A (zh) * | 2013-06-25 | 2014-12-31 | 腾讯科技(深圳)有限公司 | 接口层开发、接口层实现数据交互的方法和装置 |
CN104778073A (zh) * | 2015-04-17 | 2015-07-15 | 广东电网有限责任公司信息中心 | 一种新型信息安全攻防实验平台及其实现方法 |
-
2016
- 2016-12-05 CN CN201611104385.1A patent/CN106776968B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286167A (zh) * | 2007-04-11 | 2008-10-15 | 软件股份公司 | 用于访问物理数据存储器中的文件的系统和方法 |
CN101459676A (zh) * | 2008-12-31 | 2009-06-17 | 中国科学院计算技术研究所 | 针对文件系统的基于高速网络的消息传输框架和方法 |
CN101739460A (zh) * | 2009-12-16 | 2010-06-16 | 中国科学院对地观测与数字地球科学中心 | 基于网格的空间数据源统一化服务系统和方法 |
CN104252339A (zh) * | 2013-06-25 | 2014-12-31 | 腾讯科技(深圳)有限公司 | 接口层开发、接口层实现数据交互的方法和装置 |
CN103399753A (zh) * | 2013-08-19 | 2013-11-20 | 银联商务有限公司 | 软件架构 |
CN104778073A (zh) * | 2015-04-17 | 2015-07-15 | 广东电网有限责任公司信息中心 | 一种新型信息安全攻防实验平台及其实现方法 |
Non-Patent Citations (1)
Title |
---|
王子宁: "基于J2EE的大众点评闪惠项目优惠系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434517A (zh) * | 2021-08-26 | 2021-09-24 | 中博信息技术研究院有限公司 | 缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106776968B (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101799826B (zh) | 一种基于虚拟视图的网络化数据共享系统及方法 | |
CN105389367B (zh) | 基于Mongo数据库的电网图形多时态多级分布式存储方法 | |
CN102938776A (zh) | 基于ajax技术的动态页面处理系统 | |
CN106095698A (zh) | 面向对象的缓存写入、读取方法及装置 | |
CN103051714A (zh) | 一种水利云平台的实现方法 | |
Geambasu et al. | CloudViews: Communal Data Sharing in Public Clouds. | |
CN103268245B (zh) | 一种气象数据快速处理流程化的方法 | |
CN106776968A (zh) | 一种通用的游戏数据接口层 | |
Vishwanath et al. | Accelerating tropical cyclone analysis using LambdaRAM, a distributed data cache over wide-area ultra-fast networks | |
WO2021110570A1 (en) | Providing a dynamic random-access memory cache as second type memory | |
Wang et al. | A SaaS-friendly service community model and its application in the nationwide service network for sharing science and technology information | |
Addisie et al. | Collaborative accelerators for streamlining MapReduce on scale-up machines with incremental data aggregation | |
Parashar | Big data challenges in simulation-based science. | |
US8103125B2 (en) | Generating an amalgamated image including a static image and a dynamic image | |
Dubey et al. | Heterogeneous data mining environment based on dam for mobile computing environments | |
CN104216707A (zh) | 一种支持多种管理模式的统一管理方法 | |
Dongxu et al. | Architecture design of power system fault calculation based on cloud computing technology | |
Qiu et al. | EasiSMP: A resource-oriented programming framework supporting runtime propagation of RESTful resources | |
Wang et al. | Research on government gis construction and application technology based on cngi | |
Song et al. | SM@ RT: representing run-time system data as MOF-compliant models | |
Liu et al. | Research on gis spatial database based on grid computing | |
Guo et al. | Better realization of mobile cloud computing using mobile network computers | |
Aberer et al. | Data management for a smart earth: the swiss NCCR-MICS initiative | |
US20160140059A1 (en) | Multiple memory management units | |
Fleisch et al. | High performance distributed objects using distributed shared memory and remote method invocation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |