ランタイムアーキテクチャ
は何ですか Mendix ランタイムとそれが主要なアーキテクチャ原則をどのようにサポートするか?
この Mendix ランタイムは、クラウドネイティブアーキテクチャのコンテキスト内でアプリケーションを実行します。このセクションでは、 Mendix ランタイムとそれに関連する機能。また、ランタイム実行のいくつかの重要な側面についても詳しく見ていきます。
モデルの実行を担当するコンポーネントはどれですか?
この Mendix ランタイムはアプリのモデルを解釈して実行します。ランタイムには 12要素認証アプリ対応 業界をリードする Java および Scala テクノロジーを使用して設計します。
どのように Mendix モデルを実行しますか?
この Mendix ランタイムはモデルを直接実行します。つまり、モデルは文字通りアプリケーションであり、仲介者ではありません。視覚的にモデル化された設計が実際にコードを生成するアプローチ(Javaや.NETなど)とは対照的に、 Mendix モデル解釈アプローチには、以下に説明するいくつかの独自の特性と利点があります。
変更管理
アプリケーションの変更にも容易に対応できます。また、モデルがアプリケーションであるため、 Mendix アプリケーションとモデルの互換性を保護します。
カスタム拡張機能
生成されたコードにカスタム コードを挿入する場合とは対照的に、モデルはカスタム コードを認識し、それを一貫性チェックに含めるため、カスタム コードを使用したモデルの拡張はよりエレガントに制御されます。 Mendixのモデル解釈アプローチは、モデルの変更がカスタムコード拡張と競合するという、コード生成の基本的なラウンドトリップ問題を解決します。さらに、生成されたコードにカスタム変更がないため、モデルに影響を与えることなくプラットフォームの技術アーキテクチャを最新化できます。つまり、技術革新の恩恵を受けるのがより簡単で安価になります。
監視
事前にモニター パラメーターを定義するよりも、ランタイムでのアプリケーションの動作の監視と分析をより動的かつ柔軟に設定できます。
デバッギング
開発者は、生成されたコードがビジュアル モデルとどのように関連しているかを理解する必要がないため、デバッグと問題解決が容易になります。デバッグと問題解決は、生成されたコードではなく、モデルに対して行われます。
どのように Mendix ステートレスアーキテクチャを実装しますか?
スケーラビリティ、パフォーマンス、高可用性を確保するために、 Mendix ステートレス ランタイムを実装しました。つまり、以前のリクエストや後続のリクエストに関係なく、利用可能なランタイム インスタンスであればどれでもユーザー リクエストを処理できます。
これを実現するために、ランタイム インスタンスはユーザー リクエストの期間中、状態を保持します。リクエストの終了時に、コミットされたすべての状態がデータベースに保存されます。コミットされていないすべての状態は、クライアントが必要とするその他のすべてのデータとともに、クライアントに返されます。
詳細については、を参照してください。 クラスター化 Mendix ランタイム 会場は Mendix Studio Pro ガイド.
の構成要素は何ですか? Mendix ランタイム?
ランタイムは 2 つの主要コンポーネントで構成されます。
- 取引実績 – ウェブおよびモバイルクライアント
- ランタイムサーバー – サーバーサイドロジックを処理するスケーラブルなランタイム
サーバーアーキテクチャ
この Mendix サーバー アーキテクチャは、ロジックの実行、データの管理、クライアントとの通信、セキュリティの実装を行う複数のコンポーネントで構成されています。以下の図は、すべてのコンポーネントの概要を示しており、その後に各コンポーネントの役割について簡単に説明しています。
この Mendix ランタイムは次のコンポーネントで構成されます。
- プラットフォームコア – アプリケーションの正しい起動とシャットダウン、必要なライブラリと拡張機能の読み込みを担当します
- オブジェクトキャッシュ – オブジェクトの作成と削除を処理します
- セッションマネージャー – ユーザー セッションの作成と、ログアウトまたは放棄されたセッションのクリーンアップを管理します。
- HTTPサーバー – に含まれる Mendix Webおよびモバイルクライアントからのリクエストを処理し、サービスリクエストを処理するランタイム
- マイクロフローエンジン – マイクロフローとマイクロフローアクティビティを実行します
- データ層 – アプリケーションデータベースからオブジェクトを永続化および取得します。また、データを永続化するために必要なデータベース構造の作成と更新も担当します。データ層は多数の異なるデータベースをサポートし、データは一般的なデータモデル設計のベストプラクティスに従って保存されます(詳細については、セクションを参照してください)。 データベースの機能 Mendix サポート? in データストレージ)
- 統合レイヤー – Webサービス、REST API、アプリサービス、ODataの受信および送信サービスリクエストを処理します
- クライアントAPI – Webおよびモバイルクライアントとの通信を担当します。APIは、データの取得、データの変更の保持、マイクロフローロジックの実行に使用されます。
- 構成API – このJSON APIは、 Mendix ランタイムを構成するためのポータルとコンテナ ビルドパック
- モニタリングAPI – このJSON APIは、 Mendix 監視メトリックを取得するためのポータルとコンテナ ビルドパック
- カスタムAPI – このJava APIは、 Mendix ランタイム(マイクロフロー アクティビティやエンティティ リスナーなど)
クライアントアーキテクチャ
この Mendix クライアントはユーザーとのやり取りを担当し、UI ウィジェット レイヤー、オフライン ロジックを実行するロジック レイヤー、オフライン ストレージ用のデータ レイヤーで構成されます。次の図は概要を示しています。
この Mendix クライアントは次のコンポーネントで構成されます。
- 通信層 – メタデータ、セッション管理、およびデータを交換します Mendix 安全なJSON over HTTPプロトコルを使用しているランタイムサーバー
- データ層 – フロントエンドで使用されるデータを管理します。React Flux パターンに基づいて状態を処理し、UI コンポーネントに変更をプッシュします。
- ロジック層 – データ検証やより複雑なロジックを処理 Mendix ナノフロー
- UIコンポーネントレイヤー – ウィジェットのライフサイクルとウィジェット間の通信を管理し、すぐに使えるウィジェットを提供します
ネイティブモバイルクライアント
Mendix ネイティブモバイルアプリは、 ネイティブに反応するこのフレームワークにより、最先端のネイティブ テクノロジーを使用して構築されたモバイル アプリは、最高のモバイル ユーザー エクスペリエンスを提供できるようになります。
- ユーザー補助 – アプリは標準のデバイスアプリストアで見つけられ、モバイルデバイスにインストールされ、アイコンから開くことができます。
- オフラインでの利用 – アプリはモバイルデバイスにインストールされるため(必要なリソースとネイティブクライアントを含む)、エンドユーザーは Mendix アプリはオフラインで、関連するアプリデータはデバイス上のSQLiteデータベースに保存されます。
- ネイティブユーザーインターフェース – ネイティブ アプリは、スムーズなアニメーションとネイティブのルック アンド フィールを備えたネイティブ ユーザー インターフェイス コンポーネントを使用します。
- ネイティブ機能のサポート – React Nativeを使用すると、アプリケーションはネイティブデバイス機能を利用できるようになります。これにより、カメラやマイクなど、モバイルデバイスで利用可能なすべてのセンサーを活用できるようになります。
の詳細について Mendix モバイルデバイスのサポートについては、 ネイティブモバイルアプリ.
Webクライアント
ウェブクライアントはシングルページアーキテクチャを使用して設計されており、単一のJavaScriptウェブページがブラウザに読み込まれ、ページが更新され、 Mendix ユーザーのアクションに応じて実行します。これには、Webページの一部を取得することや、データの取得と保存が含まれる場合があります。これは、すべてのブラウザベースのアプリケーションで使用されます。 Mendix プログレッシブ ウェブ アプリケーションを含むアプリケーション。
クライアントは主にHTML5、SassとBootstrapを使用したCSS、Reactフレームワークを使用して実装されています。詳細については、 Webクライアント設定 会場は Mendix Studio Pro ガイド.