2020.07.14Cloud , Mendixガイド

ランタイムアーキテクチャ

  • このエントリーをはてなブックマークに追加

1 Mendixランタイムとは何ですか?それは主要なアーキテクチャの原則をどのようにサポートしますか?

Mendixランタイムは、クラウドネイティブアーキテクチャのコンテキスト内でアプリケーションを実行します。このセクションでは、Mendixランタイムのコアコンポーネントとその関連機能について説明します。また、ランタイム実行のいくつかの重要な側面についても詳しく見ていきます。

1.1 モデルの実行を担当するコンポーネントはどれですか?

Mendixランタイムはアプリのモデルを解釈して実行します。ランタイムには、業界をリードするJavaおよびScalaテクノロジーを使用したTwelve-Factor App互換の設計があります。

1.2 Mendixはモデルをどのように実行しますか?

Mendixランタイムはモデルを直接実行します。つまり、モデルは文字通りアプリケーションであり、仲介ではありません。視覚的にモデル化されたデザインが実際にコード(Javaや.NETなど)を生成するアプローチとは対照的に、Mendixモデルの解釈アプローチには、以下に説明する多くの固有の特性と利点があります。

1.2.1 変更管理

アプリケーションの変更に、より簡単に対応できます。さらに、モデルはアプリケーションであるため、Mendixはアプリケーションとモデルの互換性を保護します。

1.2.2 カスタム拡張

生成されたコードへのカスタムコードの挿入とは対照的に、モデルはカスタムコードを認識し、それを整合性チェックに含めるため、カスタムコードによるモデルの拡張はよりエレガントに制御されます。 Mendixのモデル解釈アプローチは、コード生成の基本的なラウンドトリップ問題を解決します。それにより、モデルの変更がカスタムコード拡張と競合します。さらに、生成されたコードにカスタムの変更がないことは、モデルに影響を与えずにプラットフォームの技術アーキテクチャを最新化できることを意味します。これは、技術革新から利益を得る方が簡単かつ安価であることを意味します。

1.2.3 モニタリング

ランタイムでのアプリケーションの動作の監視と分析は、事前に監視パラメータを定義するのではなく、より動的かつ柔軟に設定できます。

 

2.1 サーバーのアーキテクチャ

Mendixサーバーアーキテクチャは、ロジックの実行、データの管理、クライアントとの通信、セキュリティの実装を行う複数のコンポーネントで構成されています。以下の図は、すべてのコンポーネントの概要を示しており、その後にそれらの役割の簡単な説明が続きます。

Mendixランタイムは、次のコンポーネントで構成されています。

  • プラットフォームコア–アプリケーションの正しい起動とシャットダウン、および必要なライブラリと拡張機能の読み込みを担当します。
  • オブジェクトキャッシュ–オブジェクトの作成と削除を処理します。
    セッションマネージャー–ユーザーセッションの作成とログアウトまたは破棄されたセッションのクリーンアップを管理します。
  • HTTPサーバー– Webおよびモバイルクライアントからの要求を処理し、サービス要求を処理するためにMendixランタイムに含まれています。
  • マイクロフローエンジン–マイクロフローとマイクロフローアクティビティを実行します。
  • データ層–アプリケーションデータベースからオブジェクトを永続化して取得します。
  • データの永続化に必要なデータベース構造の作成と更新も行います。
  • データレイヤーは多数の異なるデータベースをサポートし、データは一般的なデータモデル設計のベストプラクティスを使用して保存されます。
  • 統合レイヤー– Webサービス、REST API、アプリサービス、ODataの着信および発信サービス要求を処理します。
    クライアントAPI – Webおよびモバイルクライアントとの通信を担当します。 APIは、データの取得、データ変更の永続化、およびマイクロフローロジックの実行に使用されます。
  • 構成API –このJSON APIは、開発者ポータルとコンテナービルドパックがランタイムを構成するために使用します。
  • 監視API –このJSON APIは、開発者ポータルとコンテナビルドパックが監視指標を取得するために使用します。
  • カスタムAPI –このJava APIは、Mendixランタイムを拡張するために使用されます(たとえば、microflowアクティビティまたはエンティティリスナーを使用して)。

2.2 クライアントのアーキテクチャ

Mendixクライアントはユーザーインタラクションを担当し、UIウィジェットレイヤー、オフラインロジックを実行するロジックレイヤー、オフラインストレージ用のデータレイヤーで構成されます。この図は概要を示しています。

Mendixクライアントは、次のコンポーMています。

  • 通信レイヤー–セキュアなJSON over HTTPプロトコルを使用しながら、Mendixランタイムサーバーとメタデータ、セッション管理、データを交換します。
  • データ層–フロントエンドで使用されるデータを管理します。 React Fluxパターンに基づいて、状態を処理し、変更をUIコンポーネントにプッシュします。
  • ロジックレイヤー– Mendixナノフローを使用して、データ検証とより複雑なロジックを処理します。
  • UIコンポーネント層–ウィジェットのライフサイクルとウィジェット間の通信を管理し、すぐに使えるウィジェットを提供します
2.2.1 モバイルクライアント

モバイルアプリケーションは同じHTML5、CSS、およびReactベースのクライアントアーキテクチャを使用しますが、Apache Cordovaを使用してデプロイされます。このフレームワークにより、最先端のWebテクノロジーを使用して構築されたモバイルアプリは、優れたモバイルユーザーエクスペリエンスを提供できます。

  • アクセシビリティ–アプリは、標準のデバイスアプリストアで見つけて、モバイルデバイスにインストールし、アイコンから開くことができます。
  • オフラインでの利用–アプリはモバイルデバイスにインストールされているため(必要なすべてのリソースと潜在的にキャッシュされたデータを含む)、エンドユーザーはMendixアプリをオフラインで使用でき、関連するアプリデータはデバイスのSQLiteデータベースにキャッシュされます。
  • ネイティブ機能のサポート– Apache Cordovaを使用すると、JavaScriptアプリケーションでネイティブデバイス機能を使用できるようになり、カメラやマイクなど、モバイルデバイスで利用可能なすべてのセンサーを活用できるようになります。
2.2.2 Webクライアント

Webクライアントは単一ページアーキテクチャを使用して設計されています。単一のJavaScript Webページがブラウザに読み込まれ、ページが更新され、ユーザーのアクションに応じてMendixランタイムと対話します。これには、Webページの一部の取得や、データの取得と保存が含まれる場合があります。

クライアントは主にHTML5、SassとBootstrapを使用したCSS、およびReactフレームワークを使用して実装されます。

翻訳:https://www.mendix.com/evaluation-guide/enterprise-capabilities/runtime-architecture

  • このエントリーをはてなブックマークに追加

このエントリーにコメントする

必須項目は全て入力してください。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)