企业级应用开发平台 CUBA-Platform

企业级应用开发平台 CUBA-Platform

Apache
跨平台
2018-12-20
CUBAChinaTeam
CUBA-Platform 正在参加 2019 年度最受欢迎开源中国软件评选,请投票支持!
CUBA-Platform 在 2019 年度最受欢迎开源中国软件评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票赢奖品
已投票

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平台的数据库,并根据数据模型自动生成页面,用户只需要添加自定义页面和迁移业务逻辑代码。

的码云指数为
超过 的项目
加载中

评论(3)

luwenhua
luwenhua
和bex5是同类吧
CUBAChinaTeam
CUBAChinaTeam
CUBA Platform 重点在企业级系统开,像MIS、ERP 类的后端管理系统。 CUBA Platform 本身是基于 apache 协议,完全开源免费。而且发展历史较长,基于CUBA Platform 的应用遍布全球范围。这大概是一些重要的区别。
钛元素
钛元素
应该是有所限制的吧?我去官网看看。

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

CUBA Studio 12.2 发布,这是一个常规维护版本,最大的变化是支持了最新发布的 IDEA 2019.3 。同时也修复了多项Bug,主要包括: 1. 如果有实体属性名是以单个小写字母开头时不能编译项目的问...

12/04 11:18

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

CUBA Platform 7.1.2 发布,这次发布主要包含对 CUBA Core 以及图表、BPM 等扩展组件的 Bug 修复,共计20多项,推荐升级。 主要的 Bug 修复和改进: 1.APP启动时可能出现异常的问题 2.增加了 ...

11/13 11:40

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

CUBA Studio 12.1 发布,这是一个常规维护版本,修复 Bug 共 41 项,主要包括: 1. 界面设计器使用 JxBrowser时出现死锁的问题 2. 界面控制器使用 Groovy 语言时顶部快捷操作按钮失效的问题 ...

11/01 13:39

CUBA Studio 12 正式版发布,企业级应用开发平台

CUBA Studio 12 正式版今天发布,这是一个大版本更新,带来了多项重大改进。可以从这里下载,如果您使用的是 IDEA 插件版,在 IDEA 中更新插件就可以了。 主要改进包括: 1. 使用原生 UI 重写...

10/12 11:16

CUBA Studio 12 BETA 发布

大家好! 我们发布了 CUBA Studio 版本 12.0.BETA 。 版本 12 包含以下重要改动: 重写界面布局设计器 界面布局设计器使用原生的 IntelliJ UI 组件进行了重写。现在的设计器有更好的性能,更...

10/09 11:13

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

CUBA Platform 7.1.1 发布,这次发布主要包含对 CUBA Core 以及图表、BPM 等扩展组件的 Bug 修复,共计 20 多项,推荐升级。 主要的 Bug 修复和改进: 修正了包含已移除枚举值的过滤器时出现异...

09/25 11:25

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

CUBA Platform 7.1 发布,这是自年初发布 7.0 以来最大的一次版本升级。 本次更新有大量新的特性加入,在这里我们列举几个重要特性: 1. 通用UI:现在可以通过组合已存在的可视化组件来创造新...

09/10 11:08

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

CUBA Studio 11.2 发布,本次发布包含17项 Bug 修复,主要修复的 BUG 包括: 1. 实体设计器中的 "Go to" 操作对枚举引用无效 2. 打开界面设计器时出现 NPE 3. JXBrowser 与 IDEA 2019.2 不兼容...

08/23 10:55

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

CUBA Platform 7.0.10 发布,这次发布主要包含对 CUBA Core 以及报表等扩展组件的 Bug 修复,共计30多项,推荐升级。 主要的 Bug 修复和改进: 1. 修正了在日期属性上进行时间段搜索且时间段值...

08/13 10:58

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

CUBA Studio 11.1 发布,本次发布主要更新包括: 1. 提供对 IntelliJ IDEA 2019.2 的支持 2. 对即将发布的 CUBA Platform 7.1 提供支持 另外包括32项Bug修复或功能改进,修正的重要Bug包括:...

07/31 10:55

没有更多内容

加载失败,请刷新页面

暂无问答

CUBA China 最新进展

各位关注CUBA平台的朋友,你们好!   距上次发布动态我们又沉默了大概两个月时间,这期间我们一直在翻译CUBA平台的文档。CUBA平台的开发文档相当丰富,所以这需要耗费较多的时间,至少比我...

2018/11/27 20:29
263
2
CUBA Platform

CUBA Platform —— 开源的、可靠的企业级应用开发利器 原文:CUBA Platform: An Open-Source Java Framework for Rapid Application Development 翻译:CUBA China CUBA-Platform 官方网站:...

2018/07/29 21:47
531
0
TypeScript SDK 以及 React 客户端更新

在 CUBA 项目中,我们会持续不断的评估更符合前端惯例、以前端为中心的 UI 开发技术。这里我们会分享一下前端工具、库以及前端代码生成的最新进展。 TypeScript SDK 这个 SDK 是可以用在任何...

11/06 18:04
37
0
初次应用CUBA-Platform REST API Add-on 启动错误

Listening for transport dt_socket at address: 8787 十一月 12, 2019 6:52:06 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent 信息: The APR based Apache Tomcat N...

11/12 19:01
9
0
遇见CUBA CLI

原文:Meet CLI for CUBA Platform 翻译:CUBA China CUBA-Platform 官网 : https://www.cuba-platform.com CUBA China 官网 : http://cuba-platform.cn   众所周知,在软件开发者的世界,...

2018/11/23 22:03
52
0
CUBA 使用 Spring 查询接口

原文链接:https://www.cuba-platform.com/blog/spring-query-interfaces-in-cuba 翻译:CUBA China CUBA-Platform 官网 : https://www.cuba-platform.com CUBA China 官网 : http://cuba-pl...

2018/12/24 20:30
96
0
CUBA与Spring相比,有很大的不同吗?

原文:Developing with CUBA - a big shift from Spring? 翻译:CUBA China CUBA-Platform 官网 : https://www.cuba-platform.com CUBA China 官网 : http://cuba-platform.cn 欢迎转载,转载...

2018/08/07 18:15
251
0
如何开发高度可定制的产品

原文:how-to-develop-a-highly-customizable-product 翻译:CUBA China CUBA-Platform: https://cuba-platform.com CUBA-China:http://cuba-platform.cn 欢迎转载, 转载请注明来源。 本文探...

2018/07/30 19:34
241
0
TypeScript SDK 和 REST API

在本文中,我们将讨论CUBA平台中已经存在很长时间的一个功能,但是很多人还不知道,这就是前端SDK生成器,并了解它如何与CUBA的REST API插件一起使用。 Java+JavaScript - 在 web 中喜结连理...

11/27 11:40
10
0
sdkman管理Java软件多版本切换

sdkman管理Java软件多版本切换 sdkman(Software Development Kit Manager,简称SDKMAN)是用来方便的管理多个版本的开发环境的工具,提供简洁的命令列出支持的软件如:java maven spring sca...

2018/09/08 21:45
77
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部
天津时时彩