CUBA-Platform 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
CUBA-Platform 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
CUBA-Platform 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
操作系统 跨平台
软件类型 开源软件
所属分类 企业应用
开源组织
地区 不详
投 递 者 JmixChina
适用人群 未知
收录时间 2018-12-20

软件简介

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内置了多个管理员实用工具,这些有助于系统管理员了解系统的运行情况、快速查找定位系统问题、自动执行重复性的管理任务等。

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专家团队。

       

用户可以自己选择IDE开发业务逻辑,比如IntelliJ IDEA或Eclipse。CUBA也提供了CUBA应用的集成开环境:CUBA Studio —— 一个辅助开发的可视化工具,CUBA有关的任务都可以通过它自动完成:

  • 配置项目基础信息可视化设计UI和数据模型

  • 带有多种布局选项的增删查改脚手架页面

  • 自动生成和运行数据库脚本

  • 为监听处理器(handlers)和接口创建脚手架代码

Studio与IDE之间的所有改动都是同步的,用户可以完全自由地选择在哪里进行更改。为了进一步提高开发人员的效率,Studio会自动热部署除数据模型之外的所有代码。因此,Studio大大避免了例行工作和编写样板代码的工作量,而且还不限制用户对编码工具的选择。

如果用户考虑将旧系统升级到流行的技术栈,CUBA也有解决方案。Studio自带的迁移工具可以将旧数据库转换为符合CUBA平台的数据库,并根据数据模型自动生成页面,用户只需要添加自定义页面和迁移业务逻辑代码。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(3) 发布并加入讨论🔥
发表了资讯
2021/07/03 09:07

Top 18 开源低代码开发平台

与使用计算机编程语言构建应用程序的传统方法不同,低代码开发平台是使用图形向导来创建和构建软件的应用程序开发平台。因此,在许多情况下,低代码或无代码(几乎没有代码)这个名称是作为可视化开发工具来帮助设计人员进行拖放、组件浏览器和逻辑构建器的。 低代码/无代码的主要概念并不新鲜,它可以追溯到十多年前的无代码编程 (PWCT) 和类似系统。但是,这一概念在开发者社区中并没有那么可用或得到支持。如今,数十种低代码...

2
120
发表了资讯
2021/03/17 11:33

CUBA Platform 7.2.12 发布,企业级应用开发平台

CUBA Platform 7.2.12 发布,这是一个维护性升级,包含以下重要 Bug 修复或改进: 1. 修正了从登录窗口打开的对话框无法关闭的问题 2. 修正了内置角色system-email-history 没有下载邮件附件权限的问题 3. 修正了 TreeTable 组件无法判断行选中事件来源的问题 4. 修正了扩展服务(Service)的方法在执行时不能被框架拦截的问题 5. 修正了不能依赖 JavaCV 的问题 6. 修正了内置角色 system-reports-full-access 没有报表设计器的...

2
5
发表了资讯
2021/01/04 18:13

CUBA Platform 7.2.11 发布,企业级应用开发平台

CUBA Platform 7.2.11 发布,这是一个维护性升级,包含以下重要Bug修复或改进: 1. 修正了 UberJar 使用 Root Context 启动时首页无限重定向问题 2. 修正了重新打开已卸载界面时出现 IllegalStateException 的问题 3. 修正了根据动态属性对表格排序会出现异常的问题 4. 更新 EclipseLink 到 2.7.3-14-cuba 5. 增加了内置报表设计时超级用户角色 6. 更新 XStream 到 1.4.15 7. 其它30多项Bug修复或改进 详细修复列表请参阅:已解...

1
6
发表了资讯
2020/12/10 11:57

CUBA Studio 15.1 发布,企业级应用开发平台

CUBA Studio 15.1 是一个常规维护版本,进行了一些改进和Bug修复,以下变化值得关注: 1. 支持最新版的 IDEA 2020.3 2. Studio 为应用程序组件类型的项目自动重新生成组件描述 3. 优化了前端项目数据模型的同步过程,使这个过程更加顺畅 4. 修正了 Handler 生成功能对 Groovy 语言编写的控制器失效的问题 5. 修正了某些情况下新建界面时会出现 NPE 的问题 6. 其它20多项问题修正或改进 详细修复列表请参阅:已解决问题列表 CUBA...

0
1
发表了资讯
2020/11/23 17:03

CUBA Studio 15 发布,企业级快速开发平台

很高兴通知大家我们发布了新版的 CUBA Studio - 15.0 发行说明请访问 CUBA Studio 用户向导 可以在 这里 下载 CUBA Studio 或通过 IntelliJ IDEA (2020.2 以上版本)直接升级插件的方式更新。 该版本有以下主要更新: 支持用环境变量配置数据库连接参数 支持在 CUBA 项目树用单独的部分显示所有源文件 支持按月份目录对数据库更新脚本分组 ZipProject Gradle 任务添加至主菜单 统一了订阅事件和安装代理方法的界面 改进了平台版...

0
4
发表了资讯
2020/11/16 12:00

CUBA Platform 7.2.10 发布,企业级应用开发平台

CUBA Platform 7.2.10 发布,这是一个维护性升级,包含以下重要Bug修复或改进: 1. 修正了 DataManager 在保存包含软引用的实体时出现异常的问题 2. 修正了根据 ID 创建 Filter 时可能出现异常的问题 3. 修正了 RowsCount 组件位置不确定的问题 4. 表单标题允许换行显示 5. 修正了 Windows 下过长的 classpath 可能导致某些 CUBA Gradle 任务执行失败的问题 6. 其它20多项问题修正或改进 详细修复列表请参阅:已解决问题列表 CU...

0
0
发表了资讯
2020/11/11 12:06

CUBA Studio 15 Beta 版发布

大家好, 我们已经发布了 CUBA Studio 15.0.BETA1 。 这个版本有以下重要变化 : 数据库连接参数支持环境变量 现在可以将敏感的数据库连接参数添加到环境变量(需要 CUBA 7.2.7及以上版本),以避免将这些参数存储到版本控制系统 下列数据库连接参数可以定义为变量: database host database port database name user password 数据存储的 “Define JDBC Datasource In” 应该设置为 “Application” 比如, 定义环境变量: PG_DB...

0
0
发表了资讯
2020/10/26 18:10

CUBA Platform 7.2.9 发布,企业级应用开发平台

CUBA Platform 7.2.9 发布,这是一个维护性升级,包含以下重要Bug修复或改进: 1. 修正了 MaxTextLength 属性与 UUID 列冲突的问题 2. 修正了界面组件较多时出现 CPU 占用高,界面加载慢的问题 3. TransactionalDataManager 组件增加了物理删除功能 4. 修正了 'like' 表达式在自定义过滤器中不能正确运行的问题 5. Gradle 构建插件:更新 tomcat 到 9.0.28 以允许设置 SameSite=None cookie 策略 6. 其它20多项 Bug 修复或改进 ...

0
5
发表了资讯
2020/10/09 12:29

CUBA Studio 14.3 发布,企业级应用开发平台

CUBA Studio 14.3 是一个常规维护版本,进行了一些改进和Bug修复,以下变化值得关注: 1. 修正了自定义数据库驱动不加载的问题 2. 修正 Kotlin 项目中生成数据库脚本时出现 “Read access is allowed from event dispatch thread” 异常提示的问题 3. 修正了 Windows系统中 CUBA 菜单有时会消失的问题 4. 支持最新版的 IDEA 2020.2.3 CUBA Platform 是一款开源且免费的企业级应用开发框架,已有10年以上的发展历史,由俄罗斯的 ...

10
2
发表了资讯
2020/09/18 11:57

CUBA Studio 14.1 发布,企业级应用开发平台

大家好,CUBA Studio 14.1 已发布,可以从这里下载最新版,或者直接在IDEA中更新CUBA插件。 CUBA Studio 14.1 是一个常规维护版本,进行了一些改进和Bug修复,以下变化值得关注: 1. 修正了 HotDeployTask 某些情况下会出现 NPE 的问题 2. 修正了在某些机器上 HSQL 启动巨慢的问题 3. 修正了 Kotlin 插件禁用的情况下不能创建中间件测试用例的问题 4. 修正了 CUBA 项目树不能显示某些项目文件的问题 5. 修正了从版本控制系统导入...

0
3
发表了资讯
2020/07/28 11:49

CUBA Platform 7.2.7 发布

CUBA Platform 7.2.7 发布,这是一个维护性升级,包含以下重要Bug修复或改进: 1. 修正了选择动态属性作为过滤器条件时可能出现 NPE 的问题 2. 修正了某些情况下运行时自定义约束失效的问题 3. 修正了某些情况下 EntityChangedEvent 事件不能触发的问题 4. 修正了某些情况下修改后的实体没有合并到父界面数据上下文的问题 5. 优化了自定义 LoginException 对暴力登录计数器的更新规则 6. 其它40多项 Bug 修复或改进 详细修复列表...

1
1
发表了资讯
2020/06/30 14:56

CUBA Studio 14 Beta 版发布

大家好, 我们发布了 CUBA 14 Beta版。 这个版本主要包含以下变化: 为中国开发者优化了基础设施 在中国大陆部署了 CUBA 制件仓库,现在项目构建速度问题已得到解决 ”扩展市场“ 界面中的扩展信息翻译为了中文 优化了外部资源节点,使访问速度更快 支持为附加数据存储生成数据库迁移脚本 我们添加了跟踪附加数据存储数据库架构变化的功能。要为附加数据存储生成数据库迁移脚本,请使用 Data Store Properties 中新添加的选项按...

3
2
发表了资讯
2020/06/22 13:04

CUBA Platform 7.2.5 发布,企业级应用开发平台

CUBA Platform 7.2.5 发布,这是一个维护性升级,包含以下重要Bug修复或改进: 1. 修正了某些情况下 BaseIntIdentityIdEntity 不能触发 EntityChangedEvent 的问题 2. 修正了具有临时属性的实体进行 EntityFetcher 调用会失败的问题 3. 提升了界面权限UI的可用性 4. 修正了编辑器视图范围比浏览视图范围小时会出现 “Unfetched attribute error ”的问题 5. 构建工具:修正了 Java8 下 buildUberJar 创建了空清单的问题 6. 其它...

1
4
发表了资讯
2020/05/21 11:13

CUBA Studio 13.3 发布,企业级应用开发平台

大家好,CUBA Studio 13.3 已发布,可以从这里下载最新版,或者直接在IDEA中更新CUBA插件。 CUBA Studio 13.3 是一个常规维护版本,进行了一些改进和Bug修复,以下变化值得关注: 1. 修正了 CUBA 项目向导中 SDK 总是为空的问题 2. 现在可在 Studio 中扩展自定义主题 3. 修正了某些情况下打开新创建的项目时会出现 Throwable 异常的问题 4. 提升了对 CUBA Frontend 前端模块的支持 5. 项目模型导出功能优化,导出文件中按模型的...

4
4
发表了资讯
2020/04/21 14:43

CUBA Studio 13.2 发布,企业级应用开发平台

大家好,CUBA Studio 13.2 已发布,可以从这里下载最新版,或者直接在IDEA中更新CUBA插件。 CUBA Studio 13.2 是一个重要维护版本,带来大量改进和Bug修复,以下变化值得关注: 1. 增加了对 IDEA 2020.1 的支持 2. 支持安装体验版应用程序扩展 3. 在 Form组件、Table组件及 DataContainer组件的向导中现在可以使用“行内(inline)”视图 4. 对于自定义DB,如果没有找到程序运行所需的DB驱动程序,现在会给出更详细的提示信息 5. 修...

5
6
发表了资讯
2020/04/09 13:40

CUBA Platform 7.2.3 发布,企业级应用开发平台

CUBA Platform 7.2.3 发布了,这是一个维护性升级,包含以下重要Bug修复或改进: 1. 支持在 Jetty 容器下启用 Websocket 2. 修正了如果实体包含只读引用时会导致 DataContext 合并失败的问题 3. ScrollBoxLayout 支持编程的方式改变滚动条位置 4. 修正了某些情况下角色编辑界面会出现NPE的问题 5. 修正了某些情况下提交包含继承关系的实体时会报错的问题 6. 其它多项Bug修复 详细修复列表请参阅:已解决问题列表 CUBA Platform ...

2
4
发表了资讯
2020/03/30 12:01

CUBA Platform 7.2.2 发布,企业级应用开发平台

CUBA Platform 7.2.2 发布,这是一个维护性升级,主要包含以下Bug修复: 1. 给过滤器添加 DateTime 属性时出现 NPE异常的问题 2. 具有大量列的表格在浏览器缩放时出现列错位的问题 3. 对 Image 属性的 getMetaPropertyPath 调用始终返回 null的问题 4. 根据复合主键列排序时出现 SQLServerException 的问题 5. TimeField 组件不允许用户设置 null 值的问题 6. 其它 20 多项Bug修复 详细修复列表请参阅:已解决问题列表 CUBA Pla...

1
3
发表了资讯
2020/03/17 15:09

CUBA Studio 13.1 发布,企业级应用开发平台

大家好,CUBA Studio 13.1 已发布,可以从这里下载最新版,或者直接在IDEA中更新CUBA插件。 CUBA Studio 13.1 主要修正以下问题: 1. 创建 front-end 模块时重复添加 REST API 依赖的问题 2. Studio 内置开发时容器 “Try shutdown” 功能不可用的问题 3. 新项目创建成功后会出现“NoSuchElementException“的问题 4. 新的登录界面模板缺失图标的问题 5. 创建枚举表单标题不正确的问题 6. 其它二十多项 Bug 修复 详细的Bug修复列...

3
6
发表了资讯
2020/03/09 12:26

CUBA Platform 7.2.1 发布,企业级应用开发平台

CUBA Platform 7.2.1 发布,这是一个维护性升级,主要包含以下Bug修复: 1. 从登录界面打开其它界面时会出现NPE的问题 2. TimeField 组件不能显示出错误提示的问题 3. 设置了 $cuba-sidemenu-title-gradient = false 时出现 ParseException 的问题 4. 声明式定义的弹窗通知与API方式定义的弹窗通知的延时不一致的问题 5. NamePattern 包含引用属性时,提交DataContext 会出现 Unfetched attribute exception 的问题 详细修复列表...

1
3
发表了资讯
2020/03/06 13:20

CUBA Platform 7.2.0 发布,企业级应用开发平台

CUBA Platform 7.2.0 发布,这次发布很多新功能,以及多项 Bug 修复,推荐升级。 部分破坏性改动: 1. remember-me 机制重写 2. Login 界面重构,相关代码需要做一定的修改 3. SideMenu 组件布局改动,使用到该组件的界面需要检查兼容性。 4. 引入新的安全范围概念,删除了 `cuba.anonymousSessionId` 应用程序属性。 5. UserSession 类改动比较大,如使用过该类,需参考文档迁移。 主要新功能: 1. 全面支持 Kotlin。 2. 安全子...

3
7
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
3 评论
266 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部