CUBA Platform
CUBA Platform
——?開源的、可靠的企業級應用開發利器
原文:CUBA Platform: An Open-Source Java Framework for Rapid Application Development
翻譯:CUBA China ????????????????????????????????????????????????????????
CUBA-Platform?官方網站:https://www.cuba-platform.com
CUBA?China?官方網站:http://cuba-platform.cn
歡迎轉載,轉載請注明來源
前言
????????CUBA China是CUBA-Platform在中國的合作伙伴,是由多名具有十年以上豐富的行業軟件、工具軟件開發經驗的開發人員組成的團隊,同時部分團隊成員具有長期的跨國公司工作背景。
????????作為企業軟件開發行業的“老兵”,我們經歷過眾多的開源框架,包括國內的、國外的,我們每個人對于所使用過的框架都持有種種不滿意,直到我們發現了CUBA-Platform,她有近十年的歷史(GITHUB上自2009年起有代碼提交)、源自實踐的設計、豐富的文檔、開放的姿態、先進的技術棧、完備的企業軟件基礎功能、高度可定制的系統架構、開發工具加持等等,所有這些深深地打動了我們。
????????獨樂樂不如眾樂樂,所以我們計劃將CUBA-Platform帶入中國,為中國的企業軟件開發人員提供一個新的選擇。
????????我們將與CUBA官方一起在中國推廣CUBA-Platform、構建并維護中國地區CUBA-Platform的社區、為中國地區開發人員提供關于CUBA-Platform的技術服務。
????????這篇文章是我們介紹CUBA-Platform的第一篇文章,后續我們會持續推出一系列翻譯或原創文章。 如果您希望進一步了解CUBA-Platform,請關注我們我們的公眾號。
?
摘要
? ? ? ?本文為CUBA-Platform簡介?,一個結合了可靠架構、企業級應用程序“必備”功能和應用程序快速開發工具的開源框架。
為什么需要開發框架?
? ? ? ?從進入計算機時代起,企業應用軟件開發一直面臨一個挑戰:雖然企業應用開發的目的是解決實際業務問題,但事實上開發人員必須花費大量時間和精力在純技術層面,比如軟件架構和一些很通用的功能。
? ? ? ?為了解決上述技術與業務之間的不對等精力消耗,涌現了很多開發框架,目的都是為了提高抽象級別,將開發人員從低級繁雜的工作中解放出來。隨著時間的推移,這些開發工具越來越智能,使得開發效率越來越高。Borland Delphi就是21世紀初最成功的例子之一,它能使開發產出大幅提升。
? ? ? ?過去的十年以來, 企業級應用軟件的需求越來越多、系統越來越龐大、功能越來越復雜、技術更新迭代不斷,促生了對新一代高效框架和開發工具的需求。
? ? ? ? 在這篇文章里我們要介紹?CUBA-Platform??:一個結合了可靠架構、企業級應用程序必備功能和快速應用程序開發工具的開源框架,它有助于大幅提高研發團隊的開發效率、提高交付質量。
CUBA平臺與其他框架有何不同?
? ? ? ?CUBA平臺與其他大多數Java框架最大的區別是:它的抽象級別更高,開發人員可以只專注于解決業務問題。它把稍高但是又有些偏“底層”的技術細節(如Vaadin,Spring和EclipseLink)也封裝起來,并自帶豐富的應用功能和開發工具,因此開發人員可以最大限度地專注于業務實現?。同時,CUBA并不限制對底層代碼的訪問,這樣可以保證框架可以適應具體項目的需求。
? ? ? ?CUBA平臺能為開發企業應用程序帶來巨大價值:復雜的數據模型、數十或數百個頁面、各式各樣的業務流程、系統的健壯性安全性等等。??
CUBA應用內部細節初探
架構
? ? ? ?CUBA應用程序具有標準的三層體系架構。連接各層的紐帶是元數據 – 就是我們所知的數據模型。它使所有可視組件都具有數據感知能力。比如,表格可以知道自己所展示實體的屬性、標簽知道自己在顯示日期。類似地,元數據有助于可視組件通過ORM與數據層進行通信,ORM用來定義對象的關系圖,決定是否需要加載或者更新數據。安全子系統、報表生成器和平臺的其他組件也有同樣的機制。
前端界面(Vaadin)
? ? ? ?CUBA-Platform使用Vaadin作為默認的前端界面框架,并提供聲明式的界面開發模型,用戶可以在可視化設計器或XML中定義頁面布局。CUBA框架內置70多種Vaadin可視化組件供選擇,比如各類按鈕、表格組件、樹組件、表單字段、?地圖組件、動態圖表、透視表等等,涵蓋企業應用界面需要的一切組件。界面定義完成后,在Java控制器中添加組件的初始化邏輯和事件處理邏輯。基于組件的數據感知功能,用戶可以非常快速地創建專業的企業應用頁面。業務邏輯代碼和頁面布局代碼分離,系統更易于維護。如果各式各樣可視化組件還是不能滿足用戶需求,CUBA也可以靈活的集成外部JavaScript庫、GWT或Vaadin組件。
[WEB前端界面示例]
?
?
前端界面?(Polymer)
? ? ? ?Google Polymer是CUBA-Platform的另一個可選的前端界面技術,通過Restful API與CUBA項目服務端進行通訊。Google Polymer客戶端界面一般用于功能操作較少,但界面要求更靈活、可提供移動優先的響應式WEB界面。
[Polymer界面示例]
?
過濾器
? ? ? ?CUBA用戶界面的一個重要功能:過濾器 – 這個組件能夠讓用戶自定義搜索條件,并且開發起來很簡單:開發人員只需將它放到一個顯示實體列表的頁面就萬事大吉了。用戶或管理員可以根據各自的需求定義各自的搜索條件。
? ? ? ?過濾器得益于CUBA元數據驅動的開發理念,過濾器能感知到自己綁定的實體,通過元數據,過濾器可準確地展示出表格可過濾的字段、限制關鍵字的值類型、提供備選值列表等。
[添加過濾字段]
[過濾器界面]
安全控制
? ? ? ?訪問控制對于企業級應用來說至關重要,在CUBA項目中所有的用戶操作均由安全子系統控制。
? ? ? ?CUBA支持實體級別、行級別、實體屬性級別(列級別)的數據讀寫控制;功能界面功能也可以基于角色開放或拒絕;也可以對界面上的組件進行基于角色的權限控制。行級別的安全機制用來控制用戶只能對實體的某些數據記錄(行)的訪問 - 例如,某部門的用戶只能看到該部門用戶創建的文檔。
? ? ? ?所有權限設置都可以在運行時通過界面進行配置,所有更改都可以由系統管理員線上操作。當然,所有數據的更改歷史都有記錄,誰在何時更改了什么?-出現問題時溯源以及匯報都很方便!
企業級應用必備功能
內置基礎的WEB安全設施
? ? ? ?CUBA-Platform作為一個框架,整合了最佳安全實踐,可自動對WEB應用程序中的大部分常見漏洞提供防護。比如跨站腳本(XSS)攻擊、跨站請求偽造攻擊(CSRF)、SQL注入攻擊等。
用戶管理模塊
? ? ? ?用戶管理模塊包含了用戶管理、角色管理、訪問組管理等界面,通過用戶管理模塊可在運行時對系統用戶、角色、訪問組進行增、刪、改的維護;可對用戶的權限進行管理。
管理員工具
? ? ? ?CUBA-Platform內置了多個管理員實用工具,這些有助于系統管理員了解系統的運行情況、快速查找定位系統問題、自動執行重復性的管理任務等。
? ? ? ?日志查看功能
? ? ? ?通過日志查看功能,系統管理員不必登錄服務器,直接登錄系統來查看各種日志,比如服務器日志、實體日志、session日志等。
? ? ? ?實體(Entity)探查
? ? ? ?CUBA-Platform可在運行時分析實體定義、動態生成實體數據瀏覽界面、數據編輯界面,管理員可通過實體探查功能查看、維護系統數據。
? ? ? ?性能統計
? ? ? ?通過性能統計功能,管理員可 全面了解系統運行的數據,比如系統運行時間、內存占用數據、CPU占用數據、數據庫連接數據、客戶端請求數據等。這些數據可為管理員優化系統配置、硬件配置、排查問題提供依據。
? ? ? ?定時任務
? ? ? ?通過定時任務,管理員可配置任意需要周期性或定時執行的任務,比如定時清理磁盤空間、定時發送系統狀態通知等。
? ? ? ?數據恢復
? ? ? ?CUBA-Platform支持數據軟刪除,實體刪除執行了刪除操作后并不被物理刪除,只是給數據添加了刪除標記。如果發生了數據誤刪,管理可通過數據恢復功能恢復刪除的數據。
? ? ? ?Session查看
? ? ? ?通過用戶會話功能,管理員可查看所有在線的用戶,并可對用戶會話進行管理。比如發送消息給用戶、注銷用戶登錄等。
多語言和多時區支持
? ? ? ?CUBA-Platform提供了標準化多語言開發規范,可以使業務系統很方便地支持多國語言,這點對于開發國際性的業務系統很有幫助。
通用REST API
? ? ? ?通過CBUA-Platform,可很容易地實現REST API。方便外部系統與CUBA開發的業務系統進行集成,外部系統可以通過REST API調用基于CUBA的業務系統的中間件服務、訪問領域實體數據。交互的數據格式支持JSON和XML。
報表管理
? ? ? ?報表模塊可以幫助開發人員快速生成各種類型的統計報表,并支持以多種格式輸出。
工作流模塊
? ? ? ?CUBA Platform的BPM模塊基于Activiti,提供流程設計、執行和管理業務流程的工具,支持BPMN 2.0標準。
全文檢索
? ? ? ?CUBA-Platform的全文搜索(FTS)功能對實體屬性和上傳的文件內容進行索引,提供非結構化搜索。
CUBA應用部署
? ? ? ?在程序部署和軟件運行環境方面,可選項很多。CUBA應用程序有多種部署配置方案,可以在單個服務器運行所有程序,或者采用單獨中間件(后臺服務程序)加Web集群的方式。
? ? ? ?平臺開箱支持的數據庫有:PostgreSQL,Oracle,Microsoft SQL Server,MySQL和HSQL(通常用于原型設計),隨著項目的發展,用戶也可以輕松地切換數據庫。
? ? ? ?WEB應用方面,?CUBA應用程序可以部署到任何Java EE Web 服務器(例如Jetty,Tomcat,Glassfish或Websphere)。當然,用戶也可以把應用編成Docker鏡像,也可以在流行的PaaS云中部署,比如CloudFoundry,OpenShift或Jelastic。
如何開發CUBA應用?
? ? ? ?使用CUBA 平臺開發應用程序,你只需要懂得Java SE,XML和JPQL – 你的應用程序代碼會更統一更易于維護。你的開發團隊也更加靈活 – 你并不需要專門的Web開發人員或Java EE專家團隊。
?
? ? ? ?配置項目基礎信息可視化設計UI和數據模型用戶可以自己選擇IDE開發業務邏輯,比如IntelliJ IDEA或Eclipse。CUBA也提供了CUBA應用的集成開環境:CUBA Studio – 一個輔助開發的可視化工具,CUBA有關的任務都可以通過它自動完成:
- 帶有多種布局選項的增刪查改腳手架頁面
- 自動生成和運行數據庫腳本
- 為監聽處理器(handlers)和接口創建腳手架代碼
? ? ? ?Studio與IDE之間的所有改動都是同步的,用戶可以完全自由地選擇在哪里進行更改。為了進一步提高開發人員的效率,Studio會自動熱部署除數據模型之外的所有代碼。因此,Studio大大避免了例行工作和編寫樣板代碼的工作量,而且還不限制用戶對編碼工具的選擇。
? ? ? ?如果用戶考慮將舊系統升級到流行的技術棧,CUBA也有解決方案。Studio自帶的遷移工具可以將舊數據庫轉換為符合CUBA平臺的數據庫,并根據數據模型自動生成頁面,用戶只需要添加自定義頁面和遷移業務邏輯代碼。
收費嗎?
? ? ? ?如標題所述,核心框架(CUBA Framework)是開源的,是Apache 2.0許可, 源碼都在GitHub上。所以對用戶在CUBA上開發的軟件沒有許可限制。您可以免費使用IDEA或Eclipse基于CUBA Framework進行業務系統的開發。
? ? ? ?如果您想加快開發過程或者團隊中有一些初級開發人員,那么您可以使用CUBA Studio來幫助提升開發效率。CUBA Studio提供免費和商業版本。免費版的CUBA Studio功能齊全,但限制了應用程序數據模型數量。免費版是創建項目和探索平臺功能的理想選擇,在項目達到了免費版限制后,如果想進一步開發可以在Java IDE中繼續開發,或者購買商業版許可證。商業版中支持更多高級附加組件:報表、圖表、地圖、全文搜索和工作流。
結束
? ? ? ?CUBA-Platform是一個基礎設施可靠、通用功能完善的開發框架,一篇文章不足以概括她的方方面面。希望本文可以讓您對CUBA平臺有一個初步的了解并且決定親自試一試。接下來您可以:下載免費的Studio,根據快速入門指南,在幾分鐘內運行您的第一個CUBA應用程序!
? ? ? ?您也可以訪問我們的論壇,通過討論提交您的問題、想法。
轉載于:https://my.oschina.net/cubacn/blog/1917833
總結
以上是生活随笔為你收集整理的CUBA Platform的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: brother的PT-9800PCN标签
- 下一篇: srttrail txt无法开机_win