SiriusWeb初体验,一个开源的低代码平台

查理谈科技 2024-05-08 00:27:43

Eclipse Sirius 是一个老牌的模型驱动开发的一体式开发平台,主要开发人员和企业(Obeo)都是在法国, 用户通过UML 模型来记录业务信息, 通过Eclipse Sirius 来产生代码, 这是一套完整的Model Driven Development 的快速开发方案。 但是随着Eclipse 的势微, 以及更多的Web 在线开发的流行, Sirius的这一套开发套件,在国内已经基本没有什么人感兴趣了, 即使这一套技术也非常强大。

庆幸的是,Eclipse Sirius 团队终于意识到了这一点, 及时抓住了低代码开发这个开发潮流的尾巴, 推出了Sirius Web。

Eclipse Sirius Web 是一个可以轻松创建工作室并将其部署到 Web 的框架, 在保留了 Eclipse Sirius Desktop 成功的原则,并将其提供在基于云的现代堆栈上。

ProjectEditor

一、 Sirius Web概述

Sirius Web 是一个开源平台,用于为客户的业务问题定义建模环境。 使用 Sirius Web,可以定义业务领域的概念和一些专用工具。 另一方面,Sirius Components 是一组后端和前端组件,可以在各种应用程序中重用,以构建基于表示的建模工作台。

Sirius Web 提供了一个建模工作台来构建基于模型的应用程序。 有两种用户将与 Sirius Web 交互,每种用户都使用应用程序的特定方面。 首先,工作室制作者将使用 Sirius Web 定义其业务的所有概念以及操作这些概念的图形工具。 其次,最终用户将使用这些概念来捕获一些业务知识并通过一些专用工具来操作这些数据。

因此,Sirius Web 可以分为四个主要部分。 说明符在“元”级别工作,它们描述域中的业务概念以及视图中表示的描述。 最终用户将通过这些表示来操纵这些概念的实例。

topics

因此,最终用户操作的语义数据由域描述,而图形表示由视图描述。 由于这些表示是为用户的业务量身定制的,因此它们是由域中定义的概念配置的。 因此,最终用户可以使用这些表示来操纵他们的数据。

关系

二、概念解释

Sirius Web 是 Sirius “Desktop”项目的后代。 这两个项目都试图满足相似的要求并拥有相同的理念。 Sirius Web 为过去使用过 Sirius 桌面的指定者提供了一个兼容层。

☞☞☞☞☞☞领域(domain)

在一个领域中,规范制定者(Specifier)将定义其业务的所有概念及其属性以及这些概念之间的各种关系。 规范制定者可以使用 Sirius Web 独有的新的领域(domain)语言来指定这些概念。 他们还可以重复利用为 Sirius 桌面创建的现有 ecore 文件。

由于大多数时候语义数据都是使用 Eclipse EMF 框架来操作的,因此领域(domain)有时被称为元模型甚至 EPackages。

使用领域(domain),规范制定者可以创建诸如车辆和发动机之类的概念及其属性名称、速度、energyType、numberOfWheels 等。规范制定者应该对业务及其各种规则有深入的了解。

☞☞☞☞☞☞视图(view)

在视图中,规范制定者将创建他们想要提供给最终用户的表示的描述。 视图可用于描述各种表示形式,例如图表或表单来编辑数据。

Sirius Web 附带视图(View)语言来创建和参数化各种表示。 在 Sirius 桌面中,说明者将使用 一个名为odesign 的文件来创建表示的描述。 可以将这些 odesign 文件导入 Sirius Web 中,以重复使用在 Sirius 桌面中创建的一些工具。

使用视图,规范制定者(Specifier)可以创建图表的描述,最终用户将使用该描述来定义各种车辆。 规范制定者(Specifier)可以用领域的概念参数化图的描述并指定一些业务规则。 例如,规范制定者(Specifier)可以指示车辆如果有四个轮子,则将显示为汽车的图像;如果车辆只有两个轮子,则将显示自行车的图像。

☞☞☞☞☞☞数据(data)

最终用户将能够实例化领域的概念来创建一些语义数据。 例如,使用我们描述的域,他们将能够创建具有各种配置的大型选择车辆。

他们只能操纵说明符定义的概念,从而防止他们创建完全不连贯的数据集。 在示例中,最终用户只能操作与车辆相关的数据。

☞☞☞☞☞☞展现(Representations)

为了操作这些数据,最终用户将有权访问规范制定者(Specifier)定义的表示形式。 这些表示将为最终用户提供一些专用于该领域特定方面的工具。

规范制定者(Specifier)可以创建如下表示:

技术描述表格(form)显示各个组件的图表(diagram)专门用于不同部分之间的电缆管理的图表diagram)用于捕获车辆维护期间编写的报告的表格(reports)这些表示可以使用专用于业务内部特定角色的方法来显示数据的子集。

三、本地运行Sirius Web

Eclipse Sirius Web目前提供了两种运行方式,一种是本地运行Sirius Web 环境,另一种是访问Obeo提供的云环境。

这里介绍如何在本地运行, 用到的技术主要是Docker和Java, Java 要求jdk 17.

首先,通过Docker 运行后端的PostgreSQL 12数据库,如果已经有PostgreSQL 12实例,也可以不需要Docker。

这里假定启用Docker PostgreSQL 12 数据库:

docker run -p 5433:5432 --rm --name sirius-web-postgres \ -e POSTGRES_USER=dbuser \ -e POSTGRES_PASSWORD=dbpwd \ -e POSTGRES_DB=sirius-web-db \ -d postgres:12

运行后的Docker 容器:

其次, 运行Sirius Web 应用, 这是一个包含了前端和后端的应用, 前端采用React开发。

后端采用Spring Boot。

下载后端的Jar应用, 下载地址https://github.com/eclipse-sirius/sirius-web/packages?tab=packages&q=+org.eclipse.sirius.sirius-web-sample-application

注意这个地址只是一个下载页面,进入到链接之后的页面,在页面的右侧寻找jar文件:

下载完之后, 通过如下命令运行:

java -jar sirius-web-sample-application-2023.10.4.jar \--spring.datasource.url=jdbc:postgresql://localhost:5433/sirius-web-db \--spring.datasource.username=dbuser \--spring.datasource.password=dbpwd \--spring.liquibase.change-log=classpath:db/changelog/sirius-web.db.changelog.xml

运行正常的话,打开本地的8080端口,就可以看到本地页面了:

具体如何使用,这里就不具体展开介绍了,比较繁琐, 以后会有专门的文章来介绍。大家有空可以先把本地环境搭建起来试一下。

四、总结

跟我们常见的所见即所得的拖拽式生成CRUD页面的低代码平台不同, Eclipse Sirius Web 其实更偏向于工业领域,还是在Eclipse Sirius的基础之上的进一步升级, 还是以定义模型、定义模型展现、生成展示页面、展示页面和后端模型的互动 这四个方面为主, 这一点, 体现了Eclipse 模型驱动开发的一以贯之的思想, 只不过Eclipse Sirius Web 已经可以做到脱离Eclipse 平台, 能独立在浏览器上编辑和操作、展示模型, 这本身也是一个了不起的进步, 其设计思想,值得国内低代码平台的同行们研究和借鉴。

0 阅读:0

查理谈科技

简介:感谢大家的关注