MONO-X製品 # API-Bridge # IBM i (AS/400)

2024年10月に「コンテンツセキュリティ基盤Boxとの連携活用」をテーマに開催されたウェビナーのサマリーを全5回にわたるブログシリーズにしてお届けします。
今回の第5回目は、コンテンツ基盤としてのBoxの集約という点で3つの疑問のうち、最後のひとつについて考察し、まとめに入ります。
MONO-Xについて
まず初めに弊社、株式会社MONO-Xのご紹介をさせていただきます。2024年3月末に社名変更いたしましたが、変更前はオムニサイエンスとして、長らくIBM i 向けのツールの開発や製品の取り扱いを行っております。
IBM i のデータを参照するツール「PHPQUERY」のリリース後、本日ご紹介させていただきます「API-Bridge」や昨今ではBtoB取引のウェブ化を可能とするSaaSの「MONO-X One」などIBM i ユーザー様向けにIBM i を最大限活用できるようなツールの開発に注力しており、データ連携インフラの創造を掲げ、より一層ユーザー様の発展に貢献できるような取り組みを行っております。
API連携について
ご存じの方も多いとは思いますが、こちらの図にある通りAPI連携には役割が2つございます。
1つ目は、IBM i がサーバーになるパターンです。
IBM i の既存のデータやロジックを定義したAPIを通じて公開する形となります。SaaSで作成されたアプリケーションから、IBM i の業務データをリアルタイムに参照したり、またSlackやLINEなどのコミュニケーションツールを通じて何らかの情報を返すなどが考えられます。
簡単に説明すると、こちらのパターンではAPI-Bridgeを導入することで、ウェブの管理画面よりAPIを定義し管理することが可能になります。呼び出されるAPIのURLの定義を行い、実行する処理の紐付けを行います。実行する処理としてはSQLを直接またグラフィカルにブラウザー画面上で作成可能で、他にも既存のCL/RPGを実行させるなどの定義が可能になっています。その他作ったAPIの動作を確認するツールやAPIに必要となるセキュリティトークンの発行などの機能も備えており、IBM i をAPI化するにあたって有用な機能を揃えたツールです。
2つ目は、IBM i がクライアントとなり外部サービスを利用する形です。
Boxへのファイル連携やIBM i の業務処理の結果を、IBM i 側からの発信でコミュニケーションツールに通知するなどのパターンになります。
本日は主に後者のクライアントとなるパターンを中心にご紹介させていただきます。
IBM i をクライアント化する際のポイント
こちらのポイントは下記のような3つほどあると考えています。
- ①IBM i を起動しAPIを実行した結果をIBM i に取り込みたいという場合
- ②IBM i からコミュニケーションツールに通知を行いたいという場合
- ③IFS区画のファイルをクラウドストレージにアップロードしたいという場合
このような処理を業務に組み合わせたい場合にIBM i をクライアント化するのが有用な形かと考えられます。このクライアントのパターンでは、5250のエミュレータ機能としてAPI-Bridgeの機能を提供しています。どこのAPI、つまりはどのURLに対してどのようなパラメーターを渡し、結果をどこに出力するのかといった定義の作成やその管理をサポートするツールです。
REST APIは、JSON形式でのデータのやり取りが基本ですが、IBM i での利用を考慮し、解析結果を物理テーブルに登録するところまでAPI-Bridgeがサポートしています。作成した定義はコマンドで実行できるため、既存のプログラムにコマンドの実行処理を組み込んでいただくことで、ライブのAPI連携を実現し、結果データを取得することができます。
最近ではDXや災害対策、セキュリティやコンプライアンスの強化としてBoxとIBM i の連携のご相談が増えてきていると感じます。特に文書管理、文書の保管やデータのバックアップなどの連携を検討されているお客様が多く、本日ご紹介したAPI-Bridgeのクライアント機能でもBoxとの連携を強化した、Boxエディションをご提供させていただいております。
API-Bridgeのデモ操作

表示しているのはコマンドの一例ですが、IBM i からBoxへの連携をより簡単に実施できるよう、BoxのAPIに対応するコマンドをこのように準備し、BoxのAPIを意識せずプログラムのコード内や実行時に利用できるようにしています。またBoxとの連携に必要となる設定周りについても、Boxの管理画面より出力した設定をそのまま利用できるようにし、より簡単にBox連携を実現できるようなものとなりますので、利用のイメージを実際のデモでご紹介させていただきたいと思います。
表示しているのは、5250のエミュレータで左側はIFSのあるディレクトリです。では、この5250のエミュレータよりBoxのAPIを実施してみたいと思います。
事前準備としては、Boxでの認証設定やアプリケーションの作成というのがありますが、こちらは設定済みとなっております。
まず、こちらのAPI-Bridgeで準備しているプログラムを実行します。こちらのプログラムを実行することによりBoxのAPIに対してリクエストを投げ、Boxのフォルダ内のファイルの一覧を取得するようなことができます。その結果、指定したBoxのフォルダ内に存在しているファイルの一覧が表示されます。BoxではIDというのがそれぞれのファイルやフォルダに付与されていて、このIDによりオブジェクトを一意に特定するような仕組みになっています。
それでは、ファイルをこのBoxのフォルダにアップロードする手順についてです。
先ほどご説明しましたとおり、あるIFSのディレクトリになっておりまして、アップロード用のテキストファイルが今現在、存在している状況になっております。
5250の画面でも確認をしてみますと、実際はこちらのディレクトリにアップロード用のファイルが存在することが確認できます。
BoxのAPIを使ってファイルをアップロードするには、API-Bridgeで用意しているこちらのコマンドを実行してアップロードが可能です。引数として、IDだったりファイルパス等を指定していますが、IDに関してはBox側のフォルダに0というIDが付いているので、0を指定しており、ローカルIFS上にあるファイルパス、アップロード元のファイルパスとアップロード後のファイル名を指定して実行します。
処理が終わりましたので、再度Box側のファイルの一覧を取得するプログラムを実行します。
一覧が取得できましたが、先ほどまで存在しなかったファイルが確認できます。このアップロードテキストが、アップロードされていることが確認できます。
続いて、逆にダウンロードできるか行ってみたいと思います。
Boxのフォルダ内に、ダウンロードテキストというファイルを用意しています。Boxの方にはこちらのファイルがございますが、IFS上には今ダウンロードのファイルはない状態となっています。ファイルをダウンロードする際にはこちらのIDをAPIで指定して実行することとなります。こちらのコマンドで、先ほどのファイルIDを指定し、ダウンロード先のパスを指定した上で実行すると、BoxのAPIのダウンロードのAPIを実行し、ファイルを取得するというような処理を行うこととなります。
処理が実行されましたので、IFS上の表示を更新すると、ダウンロードファイルがダウンロードされていることが確認できます。同じく5250の方でも確認をしますと、先ほどまでなかったファイルがきちんとダウンロードできることが確認できます。
最後に
ご覧いただいた通りIBM i からでもコマンドの実行でBoxとの連携が可能になり、IBM i にとって比較的難しいと思われているAPIの連携のイメージも変わったのではないのかなと思います。
本日の内容を受けてのご相談などございましたらぜひ弊社までお気軽にご相談いただければと思います。本日はご静聴ありがとうございました。
前回の記事はこちら
▼「API-Bridge」についての詳細は以下リンクをご覧ください。
API-Bridge公式サイト
お問い合わせ・ご相談はこちら