LoginSignup
5
1

More than 1 year has passed since last update.

IBM App ConnectのiPaaS機能を活用してMQ接続を効率的に開発

Last updated at Posted at 2023-04-22

はじめに

IBM MQは今年30周年を迎える歴史のある製品です。現在も多くの企業の基幹システム間の連携で活躍しています。近年は、クラウドでの活用例も増えてきており、MQ Client/Serverの連携だけでなく、ほかのサービスと効率的に接続する要望も増えてきています。この記事では、App Connect(iPaaS)機能を活用して、MQとの連携を効率的に実現するための方法をご紹介します。今回は以下のようなイメージ図の開発をご紹介します。

image.png

1. MQインターフェースのAPI化開発

1.0 事前準備 - MQ on IBM Cloud環境

今回は、IBM Cloudで提供されているMQフリープランのインスタンスを登録します。
インスタンス画面からキュー・マネージャーを登録します。

image.png

アプリケーション資格情報を登録します。
この情報は後ほどApp Connectから接続する際に使用します。

image.png

キューマネージャーを選択して、エンドポイント情報を確認します。

image.png

1.1 App Connectコンソール接続

以下がApp Connect Designaer(iPaaS)のコンソール画面です。今回は、Cloud Pak for Integration環境(v12.0.7)を使用しています。IBM CloudでもApp Connect機能は提供されていますので、そちらをご活用いただくことも可能です(ただし、現在は非推奨サービスとなってしまっています)。

image.png

1.2 MQアダプターを使用した接続登録

この機能では、様々なサービスとの連携のためのアダプター機能を提供しています。
今回は、IBM MQアダプターを使用します。

image.png

手順1.0で確認・登録した情報を設定していきます。

image.png

認証に成功すると、以下のようにアカウントとして登録されます。

image.png

1.3 API flow開発 - エンドポイント

ホーム画面から「Create flows for an API」を選択して、APIフローを開発します。

image.png

以下のようなイメージでAPIの名前(api-mq)と、データモデル(user)、プロパティー(id,name,job)を設定していきます。

image.png

次に「Operations」タブを選択して、APIの操作を登録していきます。
ここでは、GETとPOSTの2種類の操作を設定していきます。

image.png

1.4.1 API flow開発 - POSTフロー

次に2種類の操作に対するフローを開発していきます。
POSTを選択すると、以下のようにフロー開発画面に遷移します。

image.png

事前に登録したカタログサービスを組み合わせてLowCodeでフロー開発を実現できます。先ほど登録した「IBM MQ」の「Put message to a queue」を選択します。

image.png

この処理でどのような操作を実施するか設定します。以下の例では、「DEV.QUEUE.1」というキューに対して、要求電文をPUTする処理を実施します。

image.png

1.4.2 API flow開発 - GETフロー

同様の手順でGETのフローも設定していきます。

image.png

接続アダプターは同じく「IBM MQ」ですが、処理内容として「Get message from a queue」を選択します。

image.png

このアダプターで取得したデータをJSON Parserを使用してフロー内で認識できるオブジェクトに変換します。
対象データとなるJSON Inputは、IBM MQの「Message payload」をマッピングします。Output SchemaとしてExample JSONで想定されるデータをもとに「Generate Schema」でデータ形式を認識できるようにします。

image.png

最後のResponseにて、Response headerとResponse bodyを設定します。
Response bodyには最初に設定したデータモデルのプロパティーが設定されていますので、JSON Parserで認識した各データをマッピングします。

image.png

以上で開発は完了です。右上のDoneを押下して、API Designer画面に戻ります。
以下のように右上のStopボタンを押下してフローを「Started」にします。

image.png

1.5 API動作確認

「Test」タブから動作確認を実施できます。

image.png

この画面からAPIを実施できます。
以下は、「POST /user」の実施例です。

image.png

以下は、「GET /user」の実施例です。
先ほど登録されたメッセージを取得することができました。

image.png

2. MQとCloudnatとのEvent連携開発

2.0 事前準備 - Cloudant on IBM Cloud環境

今回は、IBM Cloudで提供されているCloudantのフリープランのインスタンスを登録します。

image.png

また、App Connectから接続するためのサービス資格情報を登録しておきます。

image.png

2.1 Cloudantアダプターを使用した接続登録

カタログから「Cloudant」アダプターを接続します。

image.png

step 2.0で確認した資格情報を設定します。

image.png

資格情報に問題がなければAccount1として登録されます。

image.png

2.2 Event flow開発

ホーム画面から「Create an event-driven flow」を選択して、APIフローを開発します。

image.png

以下のようなフロー開発画面に遷移します。
起点となるEventを登録します。今回はIBM MQの「New message on a queue」を選択します。

image.png

以下のように設定することで、「DEV.QUEUE.1」にメッセージが新たに到着した際にフローが開始されます。

image.png

IBM MQアダプターで取得したメッセージ情報を「JSON Parser」アダプターでフロー上で認識できる形式に変換します。

image.png

IBM Cloudantアダプターの「Update or create document」を選択し、データベースへの更新設定を実施します。
以下の例では、「user-mgmt」データベースに対して、QueueメッセージからIDフィールドと合致するドキュメントを更新・登録する処理を実施しています。

image.png

以上で開発は終了です。
右上のメニューからフローを開始します。

image.png

2.3 Event動作確認

step1で開発したAPIを使用してMQにメッセージを登録します。

image.png

登録後すぐに、Eventフローが動作して、「Cloudant」の「user-mgmt」にドキュメントが登録されることが確認できます。

image.png

同じIDで再度メッセージを送信すると、Cloudant側に更新が反映されます。

image.png

image.png

おわりに

この記事では、App ConnectのiPaaS機能を使用してMQとの接続を効率的に開発する方法を紹介いたしました。
同期的なAPIや、非同期的なEventでのMQ連携をiPaaS機能を活用することで、LowCodeで容易に実現することができます。
MQの活用ユースケースを広げる一助となりますので、ぜひご活用いただければと思います。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1