运行时架构
是什么 Mendix 运行时以及它如何支持关键架构原则?
这个 Mendix 运行时在云原生架构的上下文中执行您的应用程序。在本节中,我们将介绍 Mendix 运行时及其相关功能。我们还将深入了解运行时执行的几个重要方面。
哪个组件负责模型执行?
这个 Mendix Runtime 解释并执行应用程序的模型。Runtime 具有 兼容十二要素应用 使用行业领先的 Java 和 Scala 技术进行设计。
如何 Mendix 执行模型?
这个 Mendix 运行时直接执行模型,这意味着模型实际上是应用程序,而不是中介。与可视化建模设计实际生成代码(例如 Java 或 .NET)的方法相反, Mendix 模型解释方法具有许多独特的特点和优点,如下所述。
变更管理
可以更轻松地适应应用程序的更改。此外,由于模型是应用程序, Mendix 保障应用程序和模型的兼容性。
自定义扩展
使用自定义代码扩展模型可以更加优雅地控制,因为模型可以知道自定义代码并将其包含在一致性检查中,而不是将自定义代码插入生成的代码中。 Mendix的模型解释方法解决了代码生成的基本往返问题,即模型中的更改会与自定义代码扩展发生冲突。此外,生成的代码中没有自定义更改意味着平台的技术架构可以在不影响模型的情况下实现现代化。这意味着从技术创新中获益更容易、更便宜。
监控
与预先定义监视参数相比,可以更动态、更灵活地设置运行时监视和分析应用程序行为。
调试
开发人员无需了解生成的代码与可视化模型之间的关系,因此调试和解决问题变得更容易。调试和解决问题是在模型上进行的,而不是在生成的代码上。
如何 Mendix 实现无状态架构?
为了确保可扩展性、性能和高可用性, Mendix 已实现无状态运行时。这意味着任何可用的运行时实例都可以处理用户请求,无论任何先前的请求或后续请求。
为了实现这一点,运行时实例在用户请求期间具有状态。在请求结束时,所有已提交的状态将保存到数据库中。所有未提交的状态将连同客户端需要的所有其他数据一起返回给客户端。
欲了解更多信息,请参阅 聚类 Mendix 运行时 ,在 Mendix Studio Pro 指南.
的组成部分是什么 Mendix 运行时?
运行时由两个主要架构层组成:
- 客户端运行时 – 为网络和移动客户端提供服务
- 服务器运行时 – 可扩展的运行时来处理服务器端逻辑
卓越
这个 Mendix 运行时架构由多个组件组成。客户端运行时负责用户交互,包含一个 UI 小部件层、一个用于执行离线逻辑的逻辑层和一个用于离线存储的数据层。服务器运行时负责执行逻辑、管理数据、与客户端通信以及实现安全性。
下图概述了客户端运行时和服务器运行时的主要组件。

服务器运行时
这个 Mendix 服务器运行时由以下主要组件组成:
- HTTP服务器 – 包含在 Mendix 运行时处理来自 Web 和移动客户端的请求以及处理服务请求
- 客户端接口 – 负责与 Web 和移动客户端的通信;API 用于检索数据、保存数据更改并执行微流逻辑
- API 请求处理程序 – 负责或实现 REST、SOAP 和 oData 等 API。服务器运行时还支持自定义请求处理程序的扩展
- 核心运行时 – 负责正确启动和关闭应用程序并加载所需的库和扩展
- 实体模型引擎 – 执行实体模型和实体活动
- 微流引擎 – 执行微流(逻辑)和微流活动。
- 工作流程引擎 – 执行工作流程、工作流程任务和活动。
- 查询处理程序 – 处理与应用程序连接的数据库的数据库查询的执行。
- 数据库连接器 – 处理应用程序数据库中数据对象的持久化和检索;还负责创建和更新持久化数据所需的数据库结构。服务器运行时支持多个数据库连接器,每个连接器支持不同的数据库管理系统。(有关详细信息,请参阅 数据库的作用是什么 Mendix 支持? 在数据存储中)
- 安全代理 – 使用标准协议进行身份验证和授权来处理用户和应用程序访问。
- 事件和动作处理程序 – 处理同步和异步通信和流程。
- 自定义库 – 服务器运行时还支持扩展,以丰富标准运行时特性和功能,例如使用 Java 操作。
客户端运行时
这个 Mendix 客户端运行时由以下组件组成:
- 页面引擎 – 生成 UI 并处理小部件和客户端核心运行时之间的交互。
- 纳流发动机 – 使用以下方式处理客户端数据验证和更复杂的客户端逻辑 Mendix 纳流
- 可插入小部件 – UI 由小部件组成。小部件是可插拔的,这意味着客户端运行时可以使用自定义小部件进行扩展。
- 核心运行时 – 处理与 Mendix 服务器运行时使用安全的 JSON over HTTP 协议。管理前端使用的数据;基于 React Flux 模式处理状态并将更改推送到 UI 组件。
- 事件和动作处理程序 – 处理异步通信和流程。
- 本地存储 – 处理客户端设备上的数据缓存(存储)。
- 自定义操作 – 客户端运行时还支持扩展,以使用 JavaScript 操作丰富标准运行时特性和功能。
Web客户端
Web 客户端采用单页架构设计,其中单个 JavaScript 网页被加载到浏览器中,然后该网页将更新页面并与 Mendix 根据用户操作的需要运行时。这可能包括检索网页的部分内容以及检索和存储数据。它用于所有基于浏览器的 Mendix 应用程序,包括渐进式 Web 应用程序。
原生移动客户端
Mendix 原生移动应用程序是真正运行在 React Native。该框架使使用最先进的原生技术构建的移动应用程序能够提供最佳的移动用户体验:
- 无障碍服务 – 可以在标准设备应用商店中发现应用程序,安装在移动设备上,并通过图标打开
- 离线可用性 – 由于应用程序安装在移动设备上(包括所有必需的资源和本机客户端),最终用户可以使用您的 Mendix 应用程序离线,相关应用程序数据存储在您设备上的 SQLite 数据库中
- 本机用户界面 – 原生应用程序使用原生用户界面组件,具有流畅的动画和原生的外观和感觉。
- 支持本机功能 – React Native 使应用程序能够使用本机设备功能,从而使您可以受益于移动设备中可用的所有传感器,例如摄像头和麦克风
有关详细信息 Mendix 移动设备支持,请参阅 原生移动应用.