一种通用的游戏数据接口层的制作方法

文档序号:12465402阅读:307来源:国知局

本发明涉及计算机技术领域,特别是涉及一种通用的游戏数据接口层。



背景技术:

在游戏研发领域,有很多核心开发模块,包括网络层、分发层、并发层、数据层及节点集群等,每个开发模块的设计都对系统的性能、可用性、便捷性有很大的影响,因此对于上述开发模块的设计构建至关重要。

针对上述开发模块,有与之关联的开发框架,如网络层有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框架;利用缓存隔离数据库操作;支持异步持久化批量写入;数据操作接口统一,可扩展的实现模式。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1