Uncode 是基于Java 语言的一系列开源后端开发组件,主要包括:移动后端开发框架Uncode-BaaS,通用数据库访问组件Uncode-DAL和分布式任务调度组件Uncode-Schedule。其核心设计目标是使移动后端开发更加简单、易于维护,同时框架对部分基础操做进行了封装,提供认证、安全控制、Restful等基础功能模块,能够大大提升开发速度,下降开发成本。数据库
Uncode 项目开发始于2014年底,做者冶卫军(Juny Ye)架构师,具备多年电商、银行等大型系统开发和架构经验,随着移动互联网的流行,在移动互联网领域带领技术团队创业多年。深入体会到中小公司在发展过程当中所遇到的各类技术问题,因此发起 Uncode 系列开源项目,但愿能够为中小公司快速发展提供参考和方向。Uncode 采用对商业应用友好的Apache Licence 2.0协议。开源以来在中国最大的开源社区深受广大开发者欢迎。后端
Uncode 系列项目秉承如下设计目:快速开发、代码简单、易于学习、功能强大、轻量级、易扩展,在坚持以上设计目标的同时,本着不重复制造轮子的原则,很好的应用和整合现有流行框架,打创功能全面的移动应用后端系列组件,完全解放中小公司开发者的生产力,让中小公司开发者将更多的精力投入到具体业务实现,下降公司产品研发的时间和人力成本,使产品快速投向市场。缓存
Uncode 经过实践将逐步造成了一系列移动互联网公司后端开发组件,并将在 Uncode 开发社区展现出来。安全
Uncode-BaaS移动后端开发框架,注于移动应用后端服务开发,旨在让移动后端开发变得更简单。任何企业或我的,经过Uncode-BaaS均可以给移动应用快速定制个性化的后端业务逻辑,能够大大下降后端开发时间和成本。Uncode-BaaS框架提供了这种灵活性,可让您的代码实现很是简单,并直接在各类云服务上运行。一旦你更新了代码,全部的移动应用都会当即自动更新,新功能的发布将会变得更加简单可控。架构
一、简单易用负载均衡
Uncode-BaaS移动后端开发框架,简单易用,易于开发。开发者能够自已制定或者直接使用第三方插件实现移动应用后端业务逻辑,让开发者能够快速完成业务逻辑制定,并直接运行,彻底省掉后端开发的时间和人力成本。使开发者能够投入更多精力到移动应用自己,研发出更具竞争力的移动产品。框架
二、易于维护分布式
Uncode-BaaS移动后端开发框架,为开发者提供集成测试功能,能够随时进行测试,直接运行,无需发布。具备良好的可扩展性,无需对原有业务进行修改,便可实现扩展,同时多个服务之间能够互相调用。能够根据业务量自动扩容,不会对现有业务产生任何影响,具备完美的可伸缩性。学习
三、个性化定制测试
Uncode-BaaS移动后端开发框架,能够帮助开发者为自已的移动应用定制个性化的业务逻辑,能够知足全部业务场景的需求。开发者能够用最小的成本快速定制出所须要的业务逻辑,在众多移动应用中脱颖而出,占领先机。同时当应用须要调整时,开发者也能够快速重试。
四、低成本快速开发
Uncode-BaaS移动后端开发框架,对移动后端业务逻辑进行了高度封装,提供很是简单的方法,可使任何开发者根据自已的业务须要定制业务逻辑,同时咱们提供很是完善的帮助文档、示例应用和在线问答,帮助您完成业务定制。您能够彻底不须要后端开发人员,将大量精力投入到移动应用自己,极大的下降人工及时间成本。
五、多终端
Uncode-BaaS移动后端开发框架,基于标准rest协议,能够适用全部终端,包括IOS、Android、Windows Phone、Html5等。不用在移动应用中做任何代码嵌入,就能够对开发者的应用进行全方位的统计和分析,大大下降了移动应用开发的难度和成本,同时能够保证数据的及时性和准确性。
六、安全可靠
Uncode-BaaS移动后端开发框架,为了保障数据安全,能够同时对服务和数据进行权限控制,对于服务能够设置服务的访问对象和操做权限。对于数据自己,能够分别按照用户、角色和用户组,对表或字段级使用权限进行严格控制,能够保障最小粒度的权限控制,完美解决移动应用数据安全问题。另外利用云特性保障存储安全。
Uncode-DAL通用数据访问组件,本着不重复制造轮子的原则,基于Mybatis、Spring JDBC、Hibernate、MongoDB等ORM框架开发,同时支持基于多数据源的读写分离、主备切换、故障转移,自动恢复、负载均衡、缓存等。能够大大提升开发速度。
一、基于Mybatis、Spring JDBC、Hibernate等ORM框架实现通用DAL层功能,并能够与已有项目彻底兼容。同时支持在ORM框架之间任意切换,不须要对代码做任何改动。
二、实现统一的DAL层Cache,能够自由设置过时时间。
三、实现基于多数据源(DataSource)的读写分离、主备切换、故障转移、恢复检测和负载均衡。
四、使用该组件建议遵循如下规则:
在使用DTO时,字段名称与数据库表字段一致,不区分大小写,也能够不使用任何DTO类,直接使用MAP。
不支持连表查询,主要是单表操做,若是须要连表请与原生orm框架配合使用。
SQL默认主键字段为id,NoSql默认主键字段为_id。
Uncode-Schedule基于Zookeeper和Quartz/Spring Task的分布式任务调度组件,很是小巧,无需任何修改就可使Quartz和Spring Task具有分布式特性,并确保全部任务在集群中不重复,不遗漏的被执行。
一、基于流行的Zookeeper和Quartz/Spring Task的分布任务调度组件。
二、集群任务节点以单个JVM为单位,确保每一个任务在集群中不一样节点上不重复的执行。
三、单个任务节点故障时自动转移到其余任务节点继续执行。
四、弱依赖于Zookeeper,任务节点启动时须要保证Zookeeper可用,任务节点运行期Zookeeper集群不可用时任务节点保持可用前状态运行,Zookeeper可用后自动注册任务并恢复正常。
五、支持已有任务动态中止和运行。
六、使用注意事项:
单节点故障时须要应用自已保障数据完整性或幂等性。
具体使用方式和Quartz和Spring Task相同,只须要添加ZKScheduleManager配置便可。
2015 年 Git@OSC 新增热门开源软件项目 Top 50