統合は、常にアプリケーション開発の重要な部分です。しかし、このトピックは、これまでアプリケーション開発の市場ではあまり注目されていませんでした。クラウド ネイティブおよび「サービスとしての」ソフトウェア オプションの成熟により、異なるアプリケーションを接続してデータを交換し、イベントをトリガーし、ワークフロー プロセスを調整する API の必要性が高まっています。
At Mendix、私たちはプラットフォームに投資し、アプリケーションとサービスをさまざまな方法で簡単に接続できるようにしてきました。最近ではRESTが使われています。RESTはアプリケーションが通信するためのAPIとWebサービスを構築するための標準となっていますが、他のWebサービスプロトコルを認識することが重要です。標準化されたフレームワークとAPIは、解決しようとしている問題に応じて有効なオプションです。時間をかけて、ユースケースを特定してみましょう。 Mendix 統合において役割を果たす、統合を構築するための指針となる原則 Mendix、そしてプラットフォームが統合の課題を解決して企業を支援する方法について説明します。
統合のユースケースを特定する
Mendix システムを統合するためのさまざまなプロトコル、フレームワーク、APIを提供します。 Mendix アプリケーション間や異種のソフトウェア ソリューション間での統合は、非常に重要な課題です。しかし、統合に使用するテクノロジを選択する前に、ユース ケースを特定しておくと、意思決定に役立ちます。最も一般的な統合ユース ケースと、それを満たすために使用されるテクノロジについて見ていきましょう。
レガシーシステムの拡張
一般的な使用例 Mendix レガシー システム上に最新の UI とモバイル アプリを構築することです。レガシー システムに接続すると、SOAP ベースの Web サービスがまだ多く見られます。 Mendixのウェブサービスサポートにより、これらのシステムをすぐに利用できるようになります。 Mendix アプリケーションは、複雑なXMLメッセージを Mendix エンティティ。
レガシー データベースやカスタム プロトコルの上に直接アプリを構築することも一般的です。 Mendix 既存のデータベースで直接SQLクエリを実行するためのデータベースコネクタを提供します。カスタムプロトコルの場合は、コネクタキットを使用して、 Mendix 分野の様々なアプリケーションで使用されています。
サードパーティのサービスを使用する
ソフトウェア コンポーネントと機能がサービスとして提供されるケースが増えています。大手クラウド ベンダーはすべて、テキスト認識から画像認識、住所検証から完全なビジネス プロセス自動化まで、多くの興味深いサービスを提供しています。これらのサービスを公開するテクノロジとして、その大部分は REST を使用していますが、一部の SOAP テクノロジもまだ使用されています。
APIを公開する
多くの企業が参加している デジタルエコシステムデータ、アルゴリズム、トランザクション、ビジネス プロセスを公開する API は、この目標の達成に重要な役割を果たします。API により、独立した企業、人、モノのグループが標準化されたデジタル プラットフォーム上で共同作業できるようになります。REST は、これらの API を実装する主な方法です。
マイクロサービスアーキテクチャを使用して複雑なソリューションを構築する
ソフトウェア開発プロセスのスピードと俊敏性を実現するには、ソリューションを小さなコンポーネントに分割し、 小規模な自律的なDevOpsチームによって開発および運用される 必要不可欠となっています。
複数のアプリ間でデータとロジックを共有するには、実装に多大な労力が必要になることがよくあります。 Mendix マイクロフローとドメイン モデル エンティティに基づいて、必要な API のほとんどを生成することで役立ちます。
マイクロサービスの場合、メッセージ バスまたは iPaaS を使用してコンポーネントを分離すると、稼働時間やスケーラビリティの向上などの追加の利点がもたらされます。 Mendix ほとんどの商用メッセージング製品と連携します。最新の iPaaS プラットフォームは、REST プロトコルに基づくパブリッシュおよびサブスクライブ機能を提供します。リアルタイムのプッシュベースのメッセージングは、通常、REST Webhook を通じて提供されます。
マイクロサービスのベスト プラクティスでは、スマート エンドポイントとダム パイプの概念が推奨されています。実際には、これはメッセージ バスがアプリ間のメッセージの転送のみを担当することを意味します。アプリ自体がメッセージを必要な形式に変換できる必要があります。 Mendixのインポートおよびエクスポート マッピングを使用すると、メッセージ形式をあるアプリから別のアプリに変換する方法を視覚的に簡単に定義できます。
特注のフロントエンドおよびモバイル アプリケーション用のバックエンド システム
開発者向け モバイルアプリの多くは、データを保存し、バックエンドシステムと統合するためのバックエンドを必要とします。 Mendixドメイン モデル用の Rest API を生成できる を使用すると、5 分でモバイル アプリケーションのバックエンドを作成できます。バックエンドの構築に多くの時間を費やす必要はなく、モバイル データを保存するためだけに別のバックエンド言語 (およびデータベース テクノロジ) を学習する必要もありません。
Mendix アプリケーションのデータを保存するだけではありません。ロジックと統合を強力にサポートしているため、 Mendix として デジタル統合ハブを選択します。 Mendixベースのバックエンドは、他のバックエンド アプリケーションやサービスからデータを取得し、データの変換と検証を処理します。
そして何よりも、バックオフィスのプロセスを管理するための管理ウェブページの作成は、 Mendix通常、これらのバックオフィス Web ページを構築するには、専門的な mBaaS ソリューションを使用すると、さらに多くの労力がかかります。
ガイダンスの原則
上で述べたように、当社の統合機能の主な目標の 1 つは、外部システムへの接続です。当社はこれをできるだけシンプルかつ生産的にすることを目指しています。ただし、外部システムを扱う場合、生産性だけでは十分ではありません。制御、俊敏性、コラボレーションは考慮すべき重要な側面です。 Mendix プラットフォームを提供します。
管理
自分の管理下にないシステムを扱う場合、統合の詳細を制御できることが非常に重要になります。これらのシステムは必ずしも仕様に従って正しく実装されているとは限らず、古いシステムで古い手法が使われている場合もあるため、相手側に適応できる必要があります。
つまり、外部システムと自社システムの間でメッセージを変換するためのシンプルで柔軟な方法が必要になります。 Mendix アプリケーション。
In Mendix これはマッピングで処理されます。インポートマッピングを定義して、受信したメッセージを Mendix オブジェクト。オブジェクトを外部システムに送信する場合、エクスポート マッピングを使用して変換できます。これは、XML メッセージと JSON メッセージの両方で機能します。マッピングは再利用可能なので、Web サービス、Rest サービス、コネクタ キットの統合にも使用できます。
次のスクリーンショットは、注文と注文明細を含む XML または JSON メッセージが Order オブジェクトと OrderLine オブジェクトに変換されるインポート マッピングを示しています。 
速度
スピードは、生産性だけでなく、アプリケーションを簡単に変更できることも意味します。外部システムがサービスに依存している場合、またはその逆の場合、外部依存関係に影響を与えずにアプリケーションを変更できることが重要です。ここで役立つ重要なツールは、API のバージョン管理と、交換されるメッセージに関する明示的な契約の 2 つです。
交換するメッセージが同じままであることを保証するために、メッセージ定義を使用してこれらのメッセージを定義できます。ユースケースに応じて、これは XML スキーマ、JSON 構造、またはドメイン モデル エンティティの 1 つから開始されたメッセージ定義を使用して実行できます。メッセージ定義と互換性のないマッピングに変更を加えると、一貫性チェックが表示されます。
次のスクリーンショットは、エンティティから開始されたメッセージ定義を示しています。関連付けられたエンティティがある場合は、これらを含めて集約メッセージを定義できます (例: 注文明細を含む注文)。

バージョン管理は Rest 公開に組み込まれています。API のバージョンを指定して、それをエンドポイント アドレスの一部にすることができます。異なる動作の API を提供する必要がある場合は、元の定義をコピーしてバージョン番号を変更するだけで、新しいバージョンを提供できます。これにより、全員が新しいバージョンに移行するまで、2 つのバージョンを並行して実行できます。

協調性
統合には通常、組織内外の他の人々とのコラボレーションが必要です。私たちは、外部データを内部データに変換する方法を定義する視覚的なマッピングを提供するなど、これをできるだけ簡単にすることを目指しています。これらのマッピングは視覚的な性質を持っているため、技術者以外の人々も含め、組織内の誰とでもコラボレーションできます。
コラボレーションを促進するもう 1 つのツールは、サービス用のドキュメントと契約が自動的に生成されることです。これにより、他のユーザーが簡単に理解して使用できるようになります。実装するすべての REST API には、API によって提供されるすべてのリソースとメソッドを説明する OpenAPI ドキュメントが自動的に含まれます。前のセクションで示したように、メッセージ定義にドキュメントとサンプル値を含めると、これらも OpenAPI ドキュメントに含まれます。これにより、ユーザーは簡単に API を使い始めることができます。

同様に、 Mendix WSDL ベースのドキュメント ページを生成します。
ツール
統合の主なユースケースを見て、統合を構築するための指針を確認したので、これらを実装するための主なツールを見ていきましょう。 Mendixリストは次のとおりです。
- ウェブサービス – Mendix SOAP ベースの Web サービスの公開と使用をすぐにサポートします。
- REST サービス - マイクロフローおよびエンティティの REST 公開および消費。
- oData – OData 標準に基づいて BI およびデータ分析ツールで使用するためのエンティティを公開します。
- コネクタ キット - カスタム Java ロジックによる統合。
- コネクタ – App Store から入手できるコネクタ キットを使用したカスタム統合。
ウェブサービス
Mendix Web サービスの公開と利用の両方をサポートします。
- マイクロフローを Web サービス操作として公開できます。
- WSDL 契約をインポートすることで、Web サービスを利用できます。
Web サービスの作成は、マイクロフロー エディターで [Web サービス操作として公開...] を選択するだけで簡単です。マイクロフローを Web サービス操作に変換すると、入力パラメーターとマイクロフローの戻り値が自動的に操作の入力メッセージと出力メッセージに変換されます。

メッセージは完全に制御可能で、次のスクリーンショットに示すように、含める属性や使用する名前を選択できます。これにより、外部との契約が安定していることを保証しながら、アプリケーションに変更を加えることができます。契約について言えば、この情報を使用するだけで、WSDL とドキュメントの両方を自動的に生成できます。

WSDLがある場合、 Mendix アプリケーションまたは3rd パーティーアプリケーションでは、簡単にインポートできます Mendix アプリ。新しい「Consumed Web Service」ドキュメントを作成し、WSDL の場所を指定するだけで準備完了です。

マイクロフローの Web サービス呼び出しアクティビティを使用すると、使用する Web サービス内の任意の操作を呼び出すことができます。外部 Web サービスを呼び出すときは、インポート マッピングとエクスポート マッピングを使用して、サービスと交換する必要があるメッセージとの間でドメイン モデルを簡単に変換できます。

インポートとエクスポートのマッピングは、外部データを変換する強力な手段を提供します。 Mendix オブジェクトを変換し、その逆も可能です。サポートされる機能の一部:
- オブジェクト間の関連付けを自動的に検出して作成します。
- 継承やその他の複雑な XML タイプのサポート。
- WSDL または XML スキーマから必要なドメイン モデル エンティティを生成できます。
- 新しいオブジェクトを作成したり、既存のオブジェクトをオブジェクト化するために使用できます。
- マイクロフローを使用して属性を変換できます。
- メッセージ内のどの属性をキー属性として扱うかを指定できます。
- Acord 標準のような複雑な XML スキーマ定義をサポートします。
これらのマッピングは、Xml および Json、Web サービス、REST、コネクタに再利用できます。

RESTサービス
私たちはあなたができることをとても誇りに思っています Mendix RESTパブリッシュで。最新の生産性向上により、 Mendix API を作成する最も簡単で生産性の高い方法です。
今月のリリースでは次のものを追加しました:
- ドメイン モデルからエンティティの完全な Rest API を生成します。
- コネクタからエンティティをドラッグして完全な REST API を生成します。
- コネクタからメッセージ定義にドラッグして、エンティティのデフォルトのメッセージ定義を生成します。
- メッセージ定義からデフォルトのマッピングを生成します。
これらの生産性の向上により、以下に示すように、文字通り数秒でドメイン モデル用の REST API を作成できるようになりました。

最近のほとんどの新しいサービスは、Web サービスではなく REST を使用しています。REST を使用するには、サービスの設計を少し変更する必要があります。Web サービスは、リモート ロジックを呼び出してアクセスを提供することです。REST では、外部アプリで使用できるデータ モデルを設計します。ドメイン モデル内のオブジェクトはリソースと呼ばれます。リソースに対する操作は標準化されています。
- 1 つ以上の既存のリソースを読み取りまたは検索する (GET)
- 新しいリソースを作成する (POST)
- 既存のリソースを変更する (PUT)
- 既存のリソースを削除する (DELETE)
このアプローチは、Swagger や OpenApi などの REST サービスの契約でも見られます。最初にリソースがリストされ、次にこれらのリソースに対する操作がリストされます。
その Mendix REST 公開機能は、OpenApi で使用されるアプローチに従います。つまり、最初にリソースを定義し、次にそれらのリソースに対する操作を定義します。リソース、交換されるメッセージ、および操作を実装するマイクロフローを定義するため、REST API を完全に制御できます。
あるいは、 Mendix これらすべてを自動的に処理します。ドメイン モデルからエンティティを公開するか、公開 REST ドキュメントのリソース セクションにエンティティをドラッグするだけで、セキュリティを含む必要なものがすべて生成されます。エンティティに定義したすべてのセキュリティ ルールは、REST API によって自動的に使用されます。
実装するAPIを完全に制御したい場合でも、モバイルアプリケーションのバックエンドを5分で生成したい場合でも、 Mendix 出来る。

REST 操作の実装を見ると、任意のマイクロフローを REST 操作の実装として使用できます。 Mendix は、必要なパラメータと、インポートまたはエクスポート マッピングが必要なオブジェクトを自動的に検出します。これは、操作ダイアログで指定できます。たとえば、PDF ドキュメントを取得する操作を提供する場合は、バイナリ データまたはファイル ドキュメントの送受信を使用することもできます。
次のスクリーンショットでは、Http ステータス コードまたはステータス メッセージをオーバーライドするために使用できるオプションの httpResponse パラメータを使用しています。必要に応じて、http ヘッダー値の値を決定するなど、http 要求にアクセスするように指定することもできます。

すでに投稿の冒頭で述べたように、 Mendix は、作成するすべての Rest サービスに対して OpenAPI 契約とドキュメント ページを自動的に提供します。メッセージ定義にサンプル値を提供すると、Rest サービスのユーザーは文字通り「実行」を押すだけで、サービスの呼び出し結果を確認できます。これ以上簡単にすることはできません。

REST サービスの呼び出しも簡単です。まず、メッセージ定義を作成して、使用する外部リソースの外観を定義します。通常、最も簡単な方法は、サンプルの JSON メッセージをコピーして貼り付けることで JSON 構造を作成することです。 Mendix 以下に示すように、メッセージの構造と該当する属性タイプが自動的に決定されます。

次に、外部の Rest サービスにデータをインポートおよびエクスポートするためのマッピングを定義します。これは、上記の例に似ています。まだ説明されていない機能の 1 つは、適切なエンティティがまだない場合にドメイン モデル エンティティを生成できることです。これは、サンプル JSON に基づいてメッセージを定義した場合である可能性があります。
最後に、マイクロフローの「REST 呼び出し」アクティビティを使用して REST API を呼び出します。これは、API の URL を指定するだけの単純なケースで、リクエスト タブとレスポンス タブでは、使用するマッピングを定義できます。

oデータ
Mendix 現在、特定のユースケースの統合機能として、モデラーで oData を提供しています。 提供 Mendix 分析用のアプリデータ. 次に、 Mendix oDataに基づくSAP統合も提供ただし、これは次のセクションで説明するように、コネクタ キット テクノロジに基づいています。
OData は、データベースに期待されるのと同様のインターフェイスを提供します。リソースに対する挿入、選択、更新、削除機能があります。OData は、Rest 上でデータ言語を標準化することでこれを実現します。この利点は、すべてのクライアント ツールが、公開するデータの操作方法を事前に理解できることです。
ODataをサポートするデータ分析ツールは、Microsoft ExcelからTableau、ETLツール、LINQPadなどの基本的なクエリツール、さらには Rのような統計分析ツールつまり、データを公開できるのは Mendix 一度設定すれば、これらのツールはすべてアプリ内のデータを直接操作できます。
あなたの Mendix OData 経由でデータを取得するには、ドメイン モデル内のエンティティで [OData リソースとして公開...] を選択します。

次に、公開する属性を指定できます。また、このデータにアクセスできるユーザーも指定できます。もちろん、ドメイン モデル エンティティに指定されたすべてのエンティティ アクセス ルールは、OData を通じてデータを取得するときにも適用されます。

公開されたエンティティをMicrosoft ExcelやPowerBIなどのツールで直接開くことができ、常に最新の情報を得ることができます。 Mendix アプリケーション。
より詳しい情報を探す Mendix OData サポート の三脚と Rを使用してデータから洞察を得る方法 Mendix apps.
コネクタキット
すぐに使える統合機能のいずれかがニーズに合わない場合は、 Mendix コネクタキットを使用してカスタム統合を実装します。コネクタキットを使用すると、カスタム統合を実装できます。 マイクロフローアクティビティ Mendix Java APIサードパーティのJavaライブラリを再利用して、必要な統合を実現できます。実装したMicroflowアクティビティはツールボックスに完全に統合されるため、 Mendix 開発者は Java の知識がなくても使用できます。
Java とのカスタム統合を作成するには、カスタム Java アクションを作成します。Java アクションの Java ソース ファイルが生成されます。ここで、Java 実装を提供したり、既存の Java ライブラリを呼び出したりすることができます。他の開発者が顧客のマイクロフロー アクティビティを簡単に使用できるように、以下に示すように、マイクロフロー エディター ツールボックスにアクティビティを表示する方法を定義できます。

カスタム統合のユーザーには、他のマイクロフロー アクティビティと同様に、マイクロフロー ツールボックスにアクティビティが表示されるようになります。

他のプロジェクトでもカスタム統合のメリットを享受したい場合は、ソースモジュールを Mendix Appstore。
詳細はこちら Mendix コネクタキット:
- https://docs.mendix.com/howto/extensibility/howto-connector-kit
- https://www.mendix.com/blog/introducing-mendix-connector-kit/
- https://www.mendix.com/blog/writing-code-in-a-low-code-world/
- https://apidocs.mendix.com/7/runtime/
コネクタ
これらのカスタムコネクタキットベースの統合は、すでに多数存在しています。 Mendix Appstore。
SAP OData コネクタ
その SAP oData コネクタ 簡単に構築できます Mendix SAPアプリケーション上で動作します。ODataモデルクリエーターは、 Mendix SAP APIハブで公開されている内容に基づいてドメインモデルが作成されるため、SAP APIのカスタマイズもドメインモデルに含まれます。 Mendix 応用。
Appstoreリンク:
- https://appstore.home.mendix.com/link/app/74525/Mendix/SAP-OData-Connector
- https://appstore.home.mendix.com/link/app/105622/Mendix/SAP-OData-Model-Creator
データベースコネクタ
データベースコネクタを使用すると、既存のデータベースでSQLクエリとストアドプロシージャ呼び出しを実行できます。コネクタはクエリを実行し、取得したデータを Mendix オブジェクト。Appstore には、pl/sql プロシージャ、参照カーソル、ユーザー定義型などの Oracle 固有の拡張機能をサポートする Oracle コネクタも含まれています。

Appstoreリンク:
- https://appstore.home.mendix.com/link/app/2888/Mendix/Database-Connector
- https://appstore.home.mendix.com/link/app/8683/Mendix/Oracle-Connector-(Beta)
Apache Kafka コネクタ
アパッチカフカ は分散ストリーミングプラットフォームであり、異なるアプリケーション間での大量のメッセージ交換や、IoTセンサーデータなどの処理を特に目的としています。Kafkaコネクタを使用する Mendix アプリは Kafka を介してメッセージを送受信できます。
機械学習と認知コネクタ
コネクタは数多くあり、 Mendix 特定の目的のために機械学習を使用できるアプリストア。画像やテキストの識別、チャットボットによる自動変換、テキスト内の感情の検出などが例として挙げられます。
Redis コネクタ
Redis は、分散型マルチインスタンス アプリケーションを構築するときに役立つインメモリ データベースです。Redis は、データ キャッシュおよびメッセージ ブローカーとして使用できます。
Appstoreリンク:
IOTコネクタ
前述の Kafka コネクタの他に、IoT データで使用できるコネクタがいくつかあります。
- MQTT クライアント: https://appstore.home.mendix.com/link/app/3066/Mendix/MQTT-Client
- AWS IoT コネクタ: https://appstore.home.mendix.com/link/app/2868/Mendix/AWS-IoT-Connector
- KPN Lora コネクタ: https://appstore.home.mendix.com/link/app/2747/First-Consulting/KPN-LoRa-Connector
アプリケーションの需要が高まるにつれて、アプリケーションが満たす必要のあるユースケースの多様性をサポートするために、アプリケーションを相互に接続する必要性が高まります。 Mendix は、新しい接続を簡単に構築、管理し、組織内のさまざまなシステムやサービスに公開できるようにするガイドラインに結び付けられた柔軟な統合オプションを提供します。統合の構築に役立つ適切なツールとオプションを開発者に提供することで、開発者は、スピード、コラボレーション、制御を備えたアプリの作成と接続に必要な柔軟性を得ることができます。