本发明涉及计算机,特别是涉及一种业务对象的动态管理方法、装置、设备及介质。
背景技术:
1、内存型键值数据库(in-memory key-value database),是一种数据库管理系统,它将数据存储在内存中,以键值对的形式进行存储和检索。它使用一个哈希表,表中的键(key)用来定位值(value),即存储和检索具体的值(value)。
2、传统的使用内存型键值数据库保存对象数据的方法包括:1)业务系统根据需要创建对象,填充属性,生成唯一的不重复键(key),并将对象序列化成值(value),调用数据库的set api;2)业务系统根据需要删除对象,需要找到原有对象的键(key),调用数据库的remove api;3)业务系统根据需要查找对象,需要找到原有对象的键(key),调用数据库的getapi获取到值(value),并将其反序列化成业务对象;4)业务系统根据需要更新对象,需要找到原有对象的键(key),调用数据库getapi得到值(value),并将值(value)反序列化成对象old_object,把需要更新到的属性赋值到old_object中,再将其序列化成值(value),然后调用数据库的setapi完成更新。
3、在上述方法中,内存型键值数据库虽然提升了数据处理速度,其中所使用的哈希表用键(key)来定位值(value),并不能直接对值(value)进行索引以及查询,这使得业务系统需要自己实现序列化和反序列化的过程,从而导致代码冗杂,以及体验感较差的问题;再者,不同的业务系统的键(key)存在重复的风险,容易造成插入数据库失败。为了让业务系统更专注于对象本身的内容,而不用过分依赖数据库的相关操作。因此,亟需一种有效的方法解决上述问题。
技术实现思路
1、鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种业务对象的动态管理方法、装置、设备及介质。
2、为实现上述目的及其他相关目的,本发明提供一种业务对象的动态管理方法,所述方法包括:
3、接收针对内存型键值数据库中业务对象的操作请求,在业务系统中创建所述操作请求对应的待处理对象,并填充所述待处理对象的关键属性;
4、从面向对象库中调用所述操作请求对应的目标api,并将所述待处理对象及其父类引用传入所述目标api,且通过所述目标api,使用反射将所述父类引用转换为所述待处理对象的子类引用;
5、通过所述目标api,从所述业务系统的名称表和关键属性表中查询出所述待处理对象的目标名称和关键属性,并利用所述目标名称和所述关键属性,生成所述内存型键值数据库的键值;
6、通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作。
7、可选地,所述接收针对内存型键值数据库中业务对象的操作请求的步骤之前,还包括:
8、在所述业务系统初始化时,将多个全局唯一名称注册到名称表中,以及将多个不同关键属性注册到关键属性表中;其中,所述名称表用于区分不同的业务;所述关键属性表用于区分同一业务的不同对象。
9、可选地,所述通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作,包括:
10、在所述操作请求为在所述内存型键值数据库中创建业务对象的请求时,利用所述目标api遍历所述待处理对象的属性,并将其序列化为字符串类型的值;
11、将所述键值和所述值保存至所述内存型键值数据库。
12、可选地,所述通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作,包括:
13、在所述操作请求为在所述内存型键值数据库中删除业务对象的请求时,利用所述目标api从所述内存型键值数据库中查询出所述键值对应的值;
14、将所述键值和所述值从所述内存型键值数据库中删除。
15、可选地,所述通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作,包括:
16、在所述操作请求为在所述内存型键值数据库中查询业务对象的请求时,利用所述目标api从所述内存型键值数据库中查询出所述键值对应的值;
17、将所述值反序列化为业务子类对象,并将所述业务子类对象返回给所述业务系统。
18、可选地,所述通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作,包括:
19、在所述操作请求为在所述内存型键值数据库中更新业务对象的请求时,利用所述目标api从所述内存型键值数据库中查询出所述键值对应的值,并将所述值反序列化为业务子类对象;
20、遍历所述待处理对象的属性,得到需要更新的属性和属性值,且将所述需要更新的属性和所述属性值填充至所述业务子类对象中;
21、将所述业务子类对象重新序列化为第二值,并将所述键值和所述第二值保存至所述内存型键值数据库。
22、可选地,所述方法还包括:
23、接收针对内存型键值数据库中对象列表的获取请求,在业务系统中创建所述获取请求对应的临时对象数组,并填充各个临时对象的关键属性;其中,所述临时对象数组中包含一个或多个临时对象;
24、从面向对象库中调用所述获取请求对应的目标api,并将各个临时对象及其父类引用传入所述目标api,且通过所述目标api,使用反射将所述父类引用转换为所述各个临时对象的子类引用;
25、通过所述目标api,从所述业务系统的名称表中查询出各个临时对象的目标名称,并根据所述目标名称,在所述内存型键值数据库中查询出所述目标名称对应的目标数据;
26、将所述目标数据反序列化为子类对象,并将所述子类对象添加至预设的对象列表中,且在将各个子类对象添加至所述对象列表后,将所述对象列表返回至所述业务系统。
27、第二方面,本发明还提供一种业务对象的动态管理装置,所述装置包括:
28、接收模块,用于接收针对内存型键值数据库中业务对象的操作请求,在业务系统中创建所述操作请求对应的待处理对象,并填充所述待处理对象的关键属性;
29、调用模块,用于从面向对象库中调用所述操作请求对应的目标api,并将所述待处理对象及其父类引用传入所述目标api,且通过所述目标api,使用反射将所述父类引用转换为所述待处理对象的子类引用;
30、生成模块,用于通过所述目标api,从所述业务系统的名称表和关键属性表中查询出所述待处理对象的目标名称和关键属性,并利用所述目标名称和所述关键属性,生成所述内存型键值数据库的键值;
31、执行模块,用于通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作。
32、第三方面,本发明提供一种电子设备,所述电子设备包括:存储器与处理器;所述存储器用于存储计算机程序;所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如上所述的业务对象的动态管理方法的步骤。
33、第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被电子设备执行时实现如上所述的业务对象的动态管理方法的步骤。
34、本发明提供的上述一个或多个技术方案,可以具有如下优点或至少实现了如下技术效果:
35、本发明的业务对象的动态管理方法、装置、设备及介质,所述方法包括:接收针对内存型键值数据库中业务对象的操作请求,在业务系统中创建所述操作请求对应的待处理对象,并填充所述待处理对象的关键属性;从面向对象库中调用所述操作请求对应的目标api,并将所述待处理对象及其父类引用传入所述目标api,且通过所述目标api,使用反射将所述父类引用转换为所述待处理对象的子类引用;通过所述目标api,从所述业务系统的名称表和关键属性表中查询出所述待处理对象的目标名称和关键属性,并利用所述目标名称和所述关键属性,生成所述内存型键值数据库的键值;通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作。
36、由此,本发明通过在业务系统和内存型键值数据库之间引入一个面向对象库,可以利用面向对象库中的api实现对内存型键值数据库的具体操作(如,创建、查询、更新、删除),可以有效地解决业务系统过分依赖内存型键值数据库的技术问题,并提高了系统的可扩展性和稳定性,且业务系统无需感知业务对象的序列化和反序列化过程。
1.一种业务对象的动态管理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述接收针对内存型键值数据库中业务对象的操作请求的步骤之前,还包括:
3.根据权利要求1所述的方法,其特征在于,所述通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作,包括:
4.根据权利要求1所述的方法,其特征在于,所述通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作,包括:
5.根据权利要求1所述的方法,其特征在于,所述通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作,包括:
6.根据权利要求1所述的方法,其特征在于,所述通过所述目标api,根据所述键值对所述内存型键值数据库执行所述操作请求对应的操作,包括:
7.根据权利要求1所述的方法,其特征在于,还包括:
8.一种业务对象的动态管理装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,所述电子设备包括:存储器与处理器,其中,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有程序,所述程序运行时,用于执行时实现权利要求1至7中任一项所述方法的步骤。
