Node-REDとは
はじめに
今回IBM i のユーザーに向けたNode-REDの環境構築編ということで紹介をさせていただきます。
IBM i でなにか新しいことが出来ないかと、ネタを探していた時に筆者が過去に受けたwatson研修で、Node-REDというツールを使用したことを思い出し実際に実装してみたことがきっかけです。
IBM i 上のマスターファイルを参照するまでの環境構築編となります。
ほかにも様々な応用の仕方があるため、是非挑戦してみてください。
Node-REDは様々な機能を持ったノードを結び付けてアプリケーションのフローを作成することができます。
ブラウザ上で編集を行うのですが、各機能の結び付けや配置はドラック&ドロップでできますのでプログラム未経験者でも直感的に触れるのが特徴です。
またオープンソースソフトウェアなので無償でアプリケーションの開発が行える点も嬉しいです。
ほかにも下記のような特徴があります。
・ローコードでアプリケーションを作成できます
・多種多様なノードを結び付けて容易にフローを作成できます
・作成したフローは容易に移行ができます
・Node.js上に構築ができるためOSを自由に選択できます
yumの導入
yumの導入の前にSSH接続が可能な環境になっていることをご確認ください。
※これは必須になります。
SSH接続が分からない場合はこちら:https://www.e-bellnet.com/category/knowledges/doc/member/2305-01.php
SSHでファイル転送をセキュアにしよう(3-3.IBM i 側のSSHサーバー構成と起動/安心パック契約社向け限定コンテンツ)
準備ができたらACSで操作していきます。
ACSのメイン画面("ようこそ"が表示される)を起動し、「管理」の中の「オープン・ソース・パッケージ管理」をクリックします。
「SSHに接続」の画面が出たら「システム」を確認し、SSH接続で使用するユーザーとパスワードを入力します。
「照会メッセージ」が表示されたら「はい(Y)」で応答してください。
※10分ほどかかります。
Node.jsの導入
「オープン・ソース・パッケージ管理」が表示されたら「使用可能なパッケージ」タブを選択します。
Nodejs xxを選択してインストールしてください。
xxにはバージョンが入りますので、インストールしたいバージョンを選んでください。
「Package Installation」が表示されたあと、「Is this ok [y/N]:」と出ますので「Y」で応答してください。
完了したら「Complete!」と表示されますので「Package Installation」を閉じてください。
「オープン・ソース・パッケージ管理」で「インストール済みパッケージ」タブを選択します。
選択したバージョンのNodejsが表示されていればインストール完了です。
Node-REDの導入
ホスト・コード・ページを939にして5250画面を開きます。
インストール時に作成したユーザーでサインオンしてください
CALL QP2TERM
を実行します。
cd /QOpenSys/pkgs/lib/nodejs(ver)/bin
を実行してください。verにはインストールしたバージョンを入れます。
npm install -g --unsafe-perm node-red
を実行してください。
add ** packages from ** contributors in **
のようなメッセージが表示されたらF3で戻ります。
WRKLNK '/QOpenSys/pkgs/lib/nodejs(ver)/bin'
を実行して「node-red」「node-red-pi」があることが確認出来たら導入完了です。
Node-REDの起動
CALL QP2TERM
で
cd /QOpenSys/pkgs/lib/nodejs(ver)/bin
を実行し、
node-red
を実行すると起動できます。
ただしこの画面を閉じてしまうとNode-REDも終了してしまうので、Starting flowsのようなメッセージが出たらセッションは開いたままにしてください。
ブラウザで http://IPアドレス:1880 を開くとNode-REDの画面を表示できます。
Node-REDでマスターファイル参照するまで
実際にNode-REDからIBM i の既存物理ファイルを参照するデモ環境のフローを作成していきます。
今回使用するレコード様式は下記のような物理ファイルを想定しております。
Node-REDの画面右上のハンバーガーメニューをクリックし、「パレットの管理」をクリックしてください。
「ノードの追加」タブをクリックし、検索バーに「DB2」と入力し「node-red-contrib-db2-for-i」を探して「ノードの追加」をクリックしてください。
※ここでエラーが出る場合はNode-REDを実行しているジョブで正しいパスが指定されていない可能性があります。
※Node-RED起動時に「PATH=/QOpenSys/pkgs/bin:$PATH」を実行してパスを指定するなどをして再度ノードの追加を行ってください。
下記のようなポップアップが表示されるので追加をクリックし、
インストールが正常に完了すれば、Node-REDの画面左の「ストレージタブ」に「DB2 for i」が増えているはずです。
次は実際に物理ファイルを参照するためのフローを作成していきます。下記のようにNode-REDの画面左にあるノードをメインボードへドラッグ&ドロップし、各ノードを線で繋いでください。
※使用するノードは「inject」「function」「DB2 for i」「json」「debug」になります。
functionノードをダブルクリックし、コードにSQLを記述していきます。
※今回は商品コードが0001の商品を参照するSQLをコーディングしております。
DB2 for iノードをダブルクリックし、赤枠のペンマークをクリックしてください。
下記の設定を参考に、IBM i のユーザープロファイル、パスワードを入力し、追加をクリックしてください。
jsonノードをダブルクリックし、JSON文字列フォーマットチェックを付けて完了をクリックしてください。
タイムスタンプの左側のボタンをクリックするとフローが自動的に開始され、SQLの実行結果がデバッグ画面に表示されれば完成です。
さいごに
今回はNode-REDで既存の物理ファイルを取り扱う方法について解説をさせていただきましたが、ほかにも外部API(Google、ChatGPT、LINE BOT、X..etc)との連携や、スマートフォンからの写真をIBM i へ保管したりとさまざまな活用方法がございます。
是非これを機にNode-REDでのアプリケーション開発にチャレンジしてみてください!
作者プロフィール
ベル・データ株式会社 Power事業部 Power統括部 第2インストラクチャー・サービス部
川上 雅也(2018年入社)
ゲーム開発を行う学校にて4年間プログラミングを経験したのちベル・データへ
現在はIBM i の構築がメイン業務ですが、IBM i の中で面白いことが出来ないかと日々ネタを探しています
小寺 詩織(2020年入社)
文系学部卒なのでベル・データに入社後はITのきほんのきから始めました
IBM i の構築をしつつ、プログラム言語の勉強やIT業界の新しい情報を集めています