CUBA Platform 6.3的新增功能

我们很自豪地宣布新版本的CUBA平台和Studio全面上市!
也许这是有史以来功能最丰富的平台版本之一–在各个级别都有重要的变化:体系结构,可扩展性,API可用性和性能。

本文介绍了该平台的主要增强功能。 发行说明中提供了完整的更改列表:
Platform 6.3发行说明
Studio 6.3发行说明

应用组件

如您所知,平台始终具有功能分解的机制:一方面,平台本身被拆分为核心和附加组件,另一方面,具有创建扩展项目的能力。 扩展机制受到限制,因为它只能在垂直方向上工作–您可以为一个基础项目创建许多扩展,但不能创建类似于CUBA Reporting或BPM的加载项与其他加载项组合在最终应用程序中使用,并在其他项目中重复使用。

现在,通过引入应用程序组件的概念解决了该问题。 使用应用程序组件,您可以将大型应用程序分解为一组功能模块,并将它们开发为单独的项目。 此外,这些模块可以重复使用–您可以将它们包含在不同的应用程序中,就像使用CUBA高级附加组件一样。

例如,在出租车管理应用程序中,组件的结构可以如下:

应用组件

在这里,CUBA,报告和全文搜索是平台提供的组件。 信用卡付款和定价是可重用的组件,可在不同的应用程序中使用; 驱动程序工资包含仅提供给某些客户的可选功能。 这种可选的依赖性意味着您不仅可以在开发中,而且可以在部署阶段将应用程序组件包括在应用程序中。

实际上,一个应用程序组件(或应用程序组件)只是一个公开一些有关其自身信息的应用程序。 有关模块,配置属性和组件工件的信息包含在一个特殊文件中:app-component.xml; 特殊的JAR清单条目用于自动发现类路径中的组件。 应用程序组件也可以看作是全栈库:它们提供所有级别的功能,包括实体,数据库DDL脚本,中间件服务,UI屏幕甚至CSS主题。

如果要使其成为组件,Studio会为当前项目自动生成app-component.xml。 只需使用“项目属性”选项卡上的链接。 为了在应用程序中使用组件,请编辑项目属性,然后将该组件添加到“自定义组件”列表中。

您可以在文档中看到创建和使用应用程序组件的示例。

支持多个数据存储

到目前为止,平台机制只能与为应用程序选择的单个数据库一起使用。 您可以直接通过JDBC或其他连接使用其他数据源,但是它太复杂了,无法在标准UI组件中显示和编辑此类“外部”数据。

CUBA 6.3中实现的数据存储概念旨在解决使用相同的标准平台机制(例如数据感知可视组件)在单个应用程序中处理来自不同来源的数据的问题。 数据存储实际上是具有几种用于加载和保存实体的方法的接口。 该平台当前包含此接口的一种实现,允许通过ORM层处理关系数据库。 您可以在项目中创建自己的数据存储实现,例如,与NoSQL数据库,内存网格或与其他应用程序集成。

当您在应用程序中使用多个数据存储时,其数据模型将包含映射到来自不同位置的数据的实体。 如果数据存储区是RDBMS,则实体将被注释为JPA持久类。 否则,实体将是非持久性的,自定义数据存储实现负责将实体映射到数据。 一个应用程序将始终具有一个连接到RDMS的“主”数据存储区,以存储平台实体,例如用户,角色,过滤器等。应用程序实体可以分散在任意数量的不同存储区中。

例如,下图表示应用程序的数据存储结构,该应用程序在数据库级别与ERP系统集成在一起,使用MongoDB作为文档存储,并使用REST API连接到远程信息系统。 CUBA的本机零件以绿色显示,自定义零件以黄色显示。

资料储存库

混合数据模型和定制数据存储为创建微服务(或更具体地说, 自包含系统 )开辟了道路。 假设您有一个Sales应用程序,其中包含用于管理客户和产品的功能。 您可以将应用程序分为三个独立的项目:Sales,Customers和Products,每个项目都有自己的数据库和UI。 在“销售”应用程序中,您将创建两个其他数据存储库以与其他应用程序集成。 在最简单的情况下,数据存储可以是内置的RdbmsStore,因此Sales应用程序将仅连接到其他数据库。 为了实现更宽松的耦合,您可以使用REST API创建自定义数据存储,并将远程数据映射到Sales数据模型的非持久实体。 因此,您将拥有三个相对较小的独立应用程序:客户和产品可以独立工作,销售包含基于标准CUBA机制但使用远程系统数据的业务逻辑和UI。

现在,来自不同数据存储的实体不能具有直接关系。 这意味着,如果您要创建来自不同商店的实体的引用,则必须为“外国”实体的ID创建一个持久属性,为该实体本身创建一个非持久属性,并处理其加载和保存以编程方式。 在将来的平台版本中,我们将提供在应用程序级别上链接实体的简单声明方式。

使用Studio,您可以在“项目”属性页面的“高级”选项卡上快速配置其他数据存储(RDBMS或自定义)。

有关数据存储配置的详细信息,请参见文档 。

基础实体类

我们重构了实体的基类 ,以使它们更加轻巧。 现在,最小实体只能具有一个必需的系统属性-id,并且可以将其映射到几乎任何数据库类型,包括IDENTITY。 此外,还支持复合键。

这意味着现在您可以为几乎所有现有数据库创建CUBA实体,而无需修改其架构。 因此,例如,您的新CUBA应用程序可以与旧版数据库以及旧版系统同时使用。 它还允许您通过连接第三方数据库作为其他数据存储来与第三方系统集成。

单点登录

CUBA应用程序的单点登录(SSO)允许用户通过在浏览器会话中输入一次登录名和密码来登录到多个正在运行的应用程序。 在使用多个系统时,此功能对于无缝的用户体验至关重要。 当不使用LDAP集成时,它还可以帮助管理员在一处管理用户密码。
由于任何CUBA应用程序都可以是身份提供者(IDP),它是SSO基础结构的核心元素,因此CUBA SSO只需很少的设置即可。 所有配置都可以在部署阶段完成,因此在开发应用程序时不必担心。

so

该图显示了具有两个应用程序的SSO系统。 应用程序1同时是身份提供者和服务提供者(即只是提供某些功能的应用程序)。 它包含一个特殊的登录表单,显示给SSO系统的所有用户。 App 2是服务提供商,它将用户重定向到App 1 IDP进行登录。 用户密码仅由IDP检查,但用户角色和权限是完全分开的。

请参阅文档中有关单点登录的更多信息。

匿名用法

现在,您可以创建具有可用的UI屏幕的应用程序,而无需登录。 该平台包含一个预定义的“匿名”用户,因此代表该用户执行登录之前运行的所有应用程序代码。 默认情况下,匿名用户具有所有权限,因此在允许匿名访问之前,请不要忘记创建仅具有必需权限的角色。

工作原理:应用程序中有两个顶级窗口:登录窗口和主窗口。 前者适用于匿名用户,后者适用于经过身份验证的用户。 默认情况下,登录窗口仅包含登录表单,但是您可以向其中添加任何可视组件和数据源,甚至可以添加主窗口元素(例如用于打开其他屏幕的WorkArea)。 为了创建您自己的用于匿名访问的登录窗口,请转到Studio中的“屏幕”部分,然后单击“创建登录窗口”。

新的REST API

平台上已包含很长时间的通用REST API的第一个版本并不是完全RESTful的-它实际上是一个Web API,可通过HTTP提供CRUD和查询执行。 在平台版本6.3中,我们引入了一个全新的REST API v2 ,该API符合REST的体系结构样式:URI和HTTP动词的使用,OAuth2身份验证。 与改进的JSON序列化一起,新的REST API大大简化了Web和移动客户端应用程序的创建。

除了使用实体进行CRUD操作之外,REST API v2还允许您执行预定义的JPQL查询并调用服务方法。 方法必须由开发人员明确允许,并且可以接受和返回简单类型,实体和POJO以及这些类型的集合。 这种灵活的服务处理方式使您不必创建仅用于将Java类型转换为JSON的Spring MVC控制器-这种转换通常可以自动完成。 因此,您只需在中间件上创建常规服务,然后在rest-services.xml中注册公开的方法。 之后,您可以从客户端传递参数并以JSON接收结果来调用这些服务方法。

新的REST API还提供了用于获取当前用户详细信息和权限,关于应用程序数据模型的信息以及有关REST API本身的机器可读文档的端点。

屏幕代理

在新的平台版本中,有一种机制可让您将UI屏幕调整为适用于不同的设备:台式机,平板电脑,电话。 您只需为每个受支持的设备创建多个版本的屏幕布局,并为其指定相同的ID,但使用不同的屏幕代理值。 然后,在运行时,平台将根据用户从中访问应用程序的当前设备选择适当的屏幕版本。

这种简单的方法并不是真正的响应方式,因为例如,当用户更改设备方向时,屏幕将不会变形。 如果您不介意通过媒体查询编写CSS,请使用CssLayout容器获取完全响应的屏幕。

查询缓存

毫无疑问,使用数据库时,缓存是最有效的性能优化。 现在,除了实体缓存之外,您还具有带有非常简单的API的查询缓存 。 这意味着您可以为ORM查询的LoadContext Query设置数据源的可缓存属性,下次您使用相同参数执行查询时,该查询的结果将被缓存并重用。 当然,当您更新或删除查询中使用的类型的实体时,查询会自动从缓存中退出。

不要忘记为查询缓存中涉及的实体设置实体缓存-这两个缓存应该一起工作。

摘要

在结束本文时,我想指出,大多数改进是针对来自CUBA社区的真实用户请求而做出的。 非常欢迎您在我们的支持论坛上分享有关如何改善平台的想法。

翻译自: https://www.javacodegeeks.com/2016/10/whats-new-cuba-platform-6-3.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8952.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

53岁周鸿祎考上清华博士;图灵奖得主杨立昆炮轰ChatGPT:五年内就没人用了;Red Hat恪守对开源的承诺|极客头条

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&…

ChatGLM-6B的基座/部署/微调/实现:从GLM到6B的LoRA/P-Tuning微调、及6B源码解读

前言 随着『GPT4多模态/Microsoft 365 Copilot/Github Copilot X/ChatGPT插件』的推出,绝大部分公司的技术 产品 服务,以及绝大部分人的工作都将被革新一遍 类似iPhone的诞生 大家面向iOS编程 有了App Store现在有了ChatGPT插件/GPT应用商店&#xff…

53岁周鸿祎考上清华博士;图灵奖得主杨立昆炮轰ChatGPT:五年内就没人用了;Red Hat恪守对开源的承诺|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

爆 ChatGPT 大规模封号亚洲节点,并停止注册;Google 否认 Bard 窃取 ChatGPT 数据进行训练|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

ChatGLM2发布,位居C-Eval榜首!

文章目录 中文大语言模型评估基准:C-EVALChatGLM2-6B部署推理环境配置模型下载git-lfs安装 代码调用基于gradio的网页版Demo显存占用情况数理逻辑 推理性能显存占用的减少量化对模型性能的影响 基于 P-Tuning v2 的微调(官方)环境配置微调数据…

最新ChatGPT GPT-4 文本推理技术详解(附ipynb与python源码及视频讲解)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(二)

目录 前言最新ChatGPT GPT-4 文本推理技术详解1. 什么是推理(Reasoning)?2. 导入ChatGPT3. 测试ChatGPT的推理能力3.1 演绎推理(Deductive Reasoning)3.2 归纳推理(Inductive Reasoning)3.3 溯因…

火狐Merlin插件要登录谷歌账号

这个怎么破 谷歌又用不了

Edge 浏览器:隐藏功能揭秘与高效插件推荐

文章目录 一、前言二、Edge 的各种奇淫巧计2.1 开启 Edge 分屏功能2.2 启动 Edge 浏览器后直接恢复上次关闭前的页面2.3 解决 Edge 浏览器无法同步账号内容2.4 开启垂直标签页(推荐)2.5 设置标签分组(推荐)2.6 设置标签睡眠时间&a…

chatgpt注册报错:Oops!The email you provided is not supported. 根本原因是邮箱无效

如图所示,很多朋友在注册chatGPT是都会遇到这样的问题,显而易见就是邮箱不支持,openai为了保证数据安全限制了一些邮箱的注册。 目前已经知道的不再支持注册的有: QQ邮箱 163邮箱 微软邮箱 谷歌邮箱 CN结尾的邮箱都不支持 火…

GPT-4 Plugins插件的介绍与使用

OpenAI公司近期给ChatGPT PLUS用户推送了广受期待的插件(plugin)的功能,本文为对于各插件的功能进行总结,包括OpenAI自主托管的两款插件(网页浏览器web browser与代码解释器code interpreter)和一些第三方插件。 ChatGPT PLUS用户…

GPT4 Mobile可无限问答次数-支持Chrome/Firefox/Brave/Opera

GPT4 mobile的使用开源库:https://github.com/VictorZhang2014/gpt4-mobile-extension-chrome Talk is cheap, show me the code. 兄弟们,我直接上效果图,有需要的各位自行下载 目前支持谷歌浏览器(Chrome)、火狐浏览器(Firefox)、Brave、…

Claude使用教程

ChatGPT想必小伙伴们都已经很熟悉了,很多大佬已经介绍过了,这里来讲一下ChatGPT的竞品--Claude。这款工具无需翻墙,无需等待,无需付费直接使用,而且效果媲美ChatGPT!一个字:香! 下面…

如何用 Python 做自动化测试

本文来自作者 Vant 在 GitChat 上分享 「如何用 Python 做自动化测试」 编辑 | 哈比 一、Selenium 环境部署 1. window 环境部署 1.1 当前环境 Win10 64 位系统;Python3.6.2(官方已经更新到了 3.6.4) 官方下载地址:https://www.py…

chatgpt赋能python:如何使用Python操作软件按钮来提高工作效率

如何使用Python操作软件按钮来提高工作效率 作为一名有10年Python编程经验的工程师,我很清楚Python在提高工作效率方面的威力。Python可以轻松地操作软件按钮,无论是在Windows还是Linux系统中。在本篇文章中,我将与大家共享一些Python操作软…

痛点-调研-明确需求-实现-测试-发布 不需要手一步到位使用AGI生成去广告脚本,复制粘贴发布到Greasy Fork

总算又想起密码了, 自从用了语雀后, 其他平台基本都不再使用了 csdn 真的**, c h a t g p t 是禁词(已经改为了AGI, 通用型人工智能), 你倒是说清楚啊,直接来一句违反社区规定, 莫名其妙, 得靠猜…服了 今天来补上一篇利用AGI生成的js去广告脚本 前置知识(不看也问题不大) …

chatgpt赋能Python-python_helium

Python Helium: 简介与使用 Python Helium是Python语言下一个高效的UI自动化测试库。 它允许用户创建自动化测试,模拟用户对GUI应用程序的交互,从而确保应用程序在不同设备、浏览器和操作系统上的稳定性和可靠性。Helium非常易于使用,因为其…

chatgpt赋能python:用Python下载软件详解

用Python下载软件详解 在日常使用电脑时,我们不可避免地需要下载各种各样的软件。但是,在一些特殊的情况下,比如需要定期下载某些软件更新或者需要通过脚本自动化下载一些软件,使用浏览器下载就显得很麻烦。那么,这时…

Firefox火狐浏览器提示您的链接不安全的详细解决办法

Firefox火狐浏览器提示您的链接不安全该怎么办?出现这个问题,网页就打不开了,刷新没用,该怎么办呢?下面我们就来看看详细的教程,需要的朋友可以参考下 1、本办法主要针对以下这种状况,“您的链…

【AutoGPT】你自己运行,我先睡了—— ChatGPT过时了吗?

系列文章目录 【AI绘画】Midjourney和Stable Diffusion教程_山楂山楂丸的博客-CSDN博客 目录 系列文章目录 前言 一、AutoGPT是什么? 二、AutoGPT带来的利弊 三、AutoGPT和ChatGPT区别 四、未来 总结 前言 ChatGPT是否过时?AutoGPT的兴起&#…

Chatgpt:Your session has expired解决办法-中文首发

昨天晚上出现的情况,基本是登录chatgpt后一使用就会提示这个,然后让我重新登录,然后一直重复。 我以为是服务器出问题了,就没管。 因为我晚上自己有用api插件访问,发现没问题,加上微博上也没发现chatgpt崩了…