guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代这2个东西。
guzz主要功能与特点:
- 现代大规模系统设计,技术上吸收了ibatis/hibernate的优点
- 支持像hibernate一样的对象化持久、映射和方便的增删改查
- 支持像ibatis一样,让dba参与sql设计的复杂数据库操作和优化
- 支持应用程序使用大量的数据库和主从读写分离
- 支持超越范式的特殊关联、非结构化数据等异构资源的统一管理
- 支持数据表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务
- 支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom)
- 支持组件化服务(SOA),构建企业/项目实施基础平台
- 提供面向对象的数据库读取标签(JSP Taglib),加快页面展示层的快速变更、开发与部署
- 支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理
项目地址:http://code.google.com/p/guzz/
文档:http://www.guzz.org/wiki/GuzzGuide
1.2.7正式版 更新介绍:
- 支持表分切。允许同一对象按照业务规则,分别存储在不同的表中。如新闻评论:新闻频道的评论存放在 tb_c1,娱乐:tb_c2,体育tb_c3,其他:tb_c4,满足同类在线数据的数据表平行扩展需要。表分切命名为:Shadow Table。
- 支持自定义属性表。允许分切后的每张小表拥有自己的动态对象属性和字段。如购物网站中:商品对象拥有统一的名称、价格、编号、评分等,但不同的商品可能有自己特殊的属性,如图书拥有ISBN和出版社作者,服装拥有尺码、颜色、款式等等。自定义属性允许程序只定义1个商品域对象,然后通过自定义属性和切表,将每1种特定的商品分切到1张自己特殊的表中,这张表同时拥有商品通用的字段以及这种商品自己的字段,查询时可以按照特殊字段直接在数据库中进行关系查询。在guzz中,自定义属性的定义允许存储到数据库中,像普通对象一样动态生成和管理,不用配置复杂的xml。自定义属性命名为:Custom Table。
- 增加并行任务支持。用于多个远程服务同步的调用,降低等待时间。
- 增加hilo和seqhilo主健生成策略。至此,hibernate支持的常见主健生成策略,guzz都支持了。
- 增加外挂环境接口。如果在spring中启动,允许在guzz中获取spring定义的bean。
应用示例说明:
本次更新有很多新概念需要介绍,因此篇幅较长。详细的示例和说明请参看:
表分切:
http://www.guzz.org/wiki/GuzzShadow
自定义属性表(基于表分切):[url]http://www.guzz.org/wiki/GuzzCustomTable [/url]
并行任务执行(基于服务):
http://www.guzz.org/wiki/GuzzFutureService
主健生成策略:
http://www.guzz.org/wiki/GuzzHbm
下一版本计划:
- 数据库自动分库支持。允许同一张表,分散在多台数据库中。
- 提供更多对服务的支持。
- 探索SASS(软件就是服务)的数据层模型。
- 其他。