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