[发明专利]对象存储方法和系统有效
申请号: | 201010504185.1 | 申请日: | 2010-09-30 |
公开(公告)号: | CN101963944A | 公开(公告)日: | 2011-02-02 |
发明(设计)人: | 王昊沙 | 申请(专利权)人: | 用友软件股份有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F17/30 |
代理公司: | 北京友联知识产权代理事务所(普通合伙) 11343 | 代理人: | 尚志峰;汪海屏 |
地址: | 100094 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 对象 存储 方法 系统 | ||
1.一种对象存储方法,其特征在于,包括:
步骤102,对对象的多个实例进行序列化处理,获得每个实例的字节流;
步骤104,将所述多个实例中的第一个实例的字节流依次与其他实例的字节流进行比较,获得多个差异流;
步骤106,将所述第一个实例的字节流和所述多个差异流进行存储,以用于表示所述对象的多个实例。
2.根据权利要求1所述的对象存储方法,其特征在于,包括:
步骤101,预置字节流格式;
在所述步骤102中,根据所述字节流格式,对所述对象的多个实例进行序列化处理,获得每个实例的字节流。
3.根据权利要求2所述的对象存储方法,其特征在于,在所述步骤101中,还预置对象表和字符串表,
其中,所述对象表中记录每个对象的对象代码,所述字符串表用于对每个对象的实例的字符串成员进行哈希处理以得到哈希索引值;
在所述步骤102中,对所述每个实例进行序列化处理时,对于所述每个实例中的值类型成员,将所述值类型成员的值写入到所述每个实例的字节流中,
对于所述每个实例中的引用类型成员,在所述对象表中存在所述引用类型成员的引用对象的对象代码,将所述引用对象的对象代码写入所述每个实例的字节流,在所述对象表中不存在所述引用对象的信息时,将所述引用对象写入到所述每个实例的字节流中,并在所述对象表生成所述引用对象的代码,
对于所述每个实例中的字符串类型成员,根据所述字符串表对所述字符串成员进行哈希处理,在所述字符串表中不存在所述字符串成员时,将得到的所述字符串成员的哈希索引值及所述字符串成员写入所述每个实例的字节流中,在所述字符串表中存在所述字符串成员时,只在字节流中写入所述字符串成员的哈希索引值。
4.根据权利要求3所述的对象存储方法,其特征在于,每个字节流包括:
固定长度数据流,记录对应对象中值类型成员的值,引用类型成员对应的固定长度的对象或对象代码;
非固定长度数据流,记录所述对应对象中引用类型成员对应的非固定长度的对象;
字符串数据流,记录所述对应对象中的字符串类型成员及所述字符串成员对应的哈希索引值。
5.根据权利要求4所述的对象存储方法,其特征在于,在所述步骤104中,根据所述其他实例中指定实例的字节流中的固定长度数据流与所述第一个实例的字节流中的固定长度数据流的比较结果,所述指定实例的字节流中的字符串数据流与所述第一个实例的字节流中的字符串数据流的比较结果,以及所述指定实例的字节流的非固定长度数据流,得到所述指定实例的差异流。
6.根据权利要求1至5中任一项所述的对象存储方法,其特征在于,还包括:
步骤108,根据所述第一个实例的字节流和所述多个差异流,获得所述对象的多个实例的字节流;
步骤110,对所述对象的多个实例的字节流进行反序列化处理,得到所述对象的多个实例。
7.一种对象存储系统,其特征在于,包括:
序列处理模块,对对象的多个实例进行序列化处理,获得每个实例的字节流;
比较处理模块,将所述多个实例中的第一个实例的字节流依次与其他实例的字节流进行比较,获得多个差异流;
存储模块,将所述第一个实例的字节流和所述多个差异流进行存储,以用于表示所述对象的多个实例。
8.根据权利要求7所述的对象存储系统,其特征在于,还包括:
设置模块,预置字节流格式;
所述序列处理模块根据所述字节流格式,对所述对象的多个实例进行序列化处理,获得每个实例的字节流。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友软件股份有限公司,未经用友软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010504185.1/1.html,转载请声明来源钻瓜专利网。