企業級應用開發平臺——CUBA Platform7

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組件。

企業級應用開發平臺——CUBA Platform7

[WEB前端界面示例]

前端界面 (Polymer)

Google Polymer是CUBA-Platform的另一個可選的前端界面技術,通過Restful API與CUBA項目服務端進行通訊。Google Polymer客戶端界面一般用於功能操作較少,但界面要求更靈活、可提供移動優先的響應式WEB界面。

企業級應用開發平臺——CUBA Platform7

[Polymer界面示例]

過濾器

CUBA用戶界面的一個重要功能:過濾器, 這個組件能夠讓用戶自定義搜索條件,並且開發起來很簡單:開發人員只需將它放到一個顯示實體列表的頁面就萬事大吉了。用戶或管理員可以根據各自的需求定義各自的搜索條件。

過濾器得益於CUBA元數據驅動的開發理念,過濾器能感知到自己綁定的實體,通過元數據,過濾器可準確地展示出表格可過濾的字段、限制關鍵字的值類型、提供備選值列表等。

企業級應用開發平臺——CUBA Platform7

[添加過濾字段]

企業級應用開發平臺——CUBA Platform7

[過濾器界面]

安全控制

訪問控制對於企業級應用來說至關重要,在CUBA項目中所有的用戶操作均由安全子系統控制。

CUBA支持實體級別、行級別、實體屬性級別(列級別)的數據讀寫控制;功能界面功能也可以基於角色開放或拒絕;也可以對界面上的組件進行基於角色的權限控制。行級別的安全機制用來控制用戶只能對實體的某些數據記錄(行)的訪問 - 例如,某部門的用戶只能看到該部門用戶創建的文檔。

所有權限設置都可以在運行時通過界面進行配置,所有更改都可以由系統管理員線上操作。當然,所有數據的更改歷史都有記錄,誰在何時更改了什麼 -出現問題時溯源以及彙報都很方便!

內置的企業級應用必備功能

內置基礎的WEB安全設施

CUBA-Platform作為一個框架,整合了最佳安全實踐,可自動對WEB應用程序中的大部分常見漏洞提供防護。比如跨站腳本(XSS)攻擊、跨站請求偽造攻擊(CSRF)、SQL注入攻擊等。

用戶管理模塊

用戶管理模塊包含了用戶管理、角色管理、訪問組管理等界面,通過用戶管理模塊可在運行時對系統用戶、角色、訪問組進行增、刪、改的維護;可對用戶的權限進行管理。

管理員工具

CUBA-Platform內置了多個管理員實用工具,這些有助於系統管理員瞭解系統的運行情況、快速查找定位系統問題、自動執行重複性的管理任務等。

1.日誌查看功能

通過日誌查看功能,系統管理員不必登錄服務器,直接登錄系統來查看各種日誌,比如服務器日誌、實體日誌、session日誌等。

2.實體(Entity)探查

CUBA-Platform可在運行時分析實體定義、動態生成實體數據瀏覽界面、數據編輯界面,管理員可通過實體探查功能查看、維護系統數據。

3.性能統計

通過性能統計功能,管理員可 全面瞭解系統運行的數據,比如系統運行時間、內存佔用數據、CPU佔用數據、數據庫連接數據、客戶端請求數據等。這些數據可為管理員優化系統配置、硬件配置、排查問題提供依據。

4.定時任務

通過定時任務,管理員可配置任意需要週期性或定時執行的任務,比如定時清理磁盤空間、定時發送系統狀態通知等。

5.數據恢復

CUBA-Platform支持數據軟刪除,實體刪除執行了刪除操作後並不被物理刪除,只是給數據添加了刪除標記。如果發生了數據誤刪,管理可通過數據恢復功能恢復刪除的數據。

6.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專家團隊。

企業級應用開發平臺——CUBA Platform7

用戶可以自己選擇IDE開發業務邏輯,比如IntelliJ IDEA或Eclipse。CUBA也提供了CUBA應用的集成開環境:CUBA Studio —— 一個輔助開發的可視化工具,CUBA有關的任務都可以通過它自動完成:

  • 配置項目基礎信息可視化設計UI和數據模型
  • 帶有多種佈局選項的增刪查改腳手架頁面
  • 自動生成和運行數據庫腳本
  • 為監聽處理器(handlers)和接口創建腳手架代碼

Studio與IDE之間的所有改動都是同步的,用戶可以完全自由地選擇在哪裡進行更改。為了進一步提高開發人員的效率,Studio會自動熱部署除數據模型之外的所有代碼。因此,Studio大大避免了例行工作和編寫樣板代碼的工作量,而且還不限制用戶對編碼工具的選擇。

如果用戶考慮將舊系統升級到流行的技術棧,CUBA也有解決方案。Studio自帶的遷移工具可以將舊數據庫轉換為符合CUBA平臺的數據庫,並根據數據模型自動生成頁面,用戶只需要添加自定義頁面和遷移業務邏輯代碼。


分享到:


相關文章: