MENU

Node.js on IBM i のDb2 for i 関連機能

Node.jsの概要

 昨今、JavaScriptは最もポピュラーなWebアプリ開発言語であると言っていいだろう。
 
 当初はNetScpae Navigator用であったが、現在ではすべてのブラウザにJavaScript実行エンジンが付属しており、汎用的な言語となっている。
 
 JavaScript実行エンジンとしてGoogleが開発したV8があるが、Node.jsはこのV8をサーバーサイドで実行させ、その上でJavaScriptを動作させる。ポピュラーなJavaScriptを使ってサーバーサイドアプリケーションを(も)構築できる点が、人気の理由となっている。
 
 Node.jsを利用すれば、フロントエンド(ブラウザ)アプリもバックエンド(サーバー)アプリも、両方ともJavaScriptで開発できる。IBM i のNode.js(V8 JavaScriptエンジン)はPASE上で動作する。パッケージを追加してRPG、COBOL、CL、IFSなどへのアクセス、IBM i OSの情報取得、HTTP/HTTPSの送受信も可能である。
 
 IBM i へのNode.jsや後述するrpmのインストールは、ACS(IBM i Access Client Solutions)のオープンソースパッケージ管理を利用すると便利である。

 Node.jsのAPIで、たとえばFile System API (fs)はPOSIX標準に準拠したモデル・手順でファイルシステム(IFS)にアクセスできる。


fs.readFile(path[, options], callback)
fs.mkdir(path[, options], callback)

 

  Node.jsで最もメジャーなリポジトリは npm で、130万以上のペンソースが公開されている。

 npmはパッケージ管理ツールの名称としても知られている。Node.jsのアプリコードはnpmなど公開リポジトリでも、オンプレミスのIBM iを含むプライベートなリポジトリにも格納できる。
  
 npmで公開されているパッケージのほぼすべてが、JavaScriptで記述されている。JavaScriptパッケージは基本的にIBM i 上で動作するので、Node.jsのパッケージもほぼすべてIBM iで動作する(例外的にC/C++でコンパイルするパッケージがあり、これらはIBM iやPower Systems 上でそのままでは動作しない可能性がある)。

 

Db2 for iを利用するためのNode.jsパッケージ

 それではIBM i上のNode.jsで使えるおすすめのOSSやパッケージをいくつか紹介しよう

odbc

 コミュニティでメンテナンスされている。稼働OSを問わず、Node.jsからODBCによりDb2 for i へアクセスできる。IBM i のNode.jsパッケージの多くは、ODBCを想定してビルドされている。
 
 一般にODBCを使用するには、ODBCドライバ・マネージャーとODBCドライバを導入する必要がある。Windowsだけは、ODBCドライバ・マネージャーが初期導入されている。IBM i、Linux、MacではunixODBCとunixODBC-dev(e1)のダウンロード/導入が必要である。
 
 導入後にodbcinst.ini(データソース名 DSNsの定義を追加)、odbc.ini(データソースごとにデータベース接続情報を定義)を設定する。
 
 IBM i へのODBC導入の具体的手順は、githubの次のページを参照してほしい。
 
GitHub: IBM / ibmi-oss-examples
https://github.com/IBM/ibmi-oss-examples/blob/master/odbc/odbc.md
 
 大まかに言えば、IBM iのPASE環境にドライバ・マネージャーとしてunixODBCを導入し、ODBCドライバとしてACSのPASE App パッケージに含まれるODBCドライバ(IBMiODBC_driver.zipから)をインストールする。
 
 2020年11月時点では、上記のURlからリンクする次のページに導入手順が記載されている
 
IBM i OSS Docs: ODBC
https://ibmi-oss-docs.readthedocs.io/en/latest/odbc/README.html

IBM Support: ODBC driver for the IBM i PASE environment
https://www.ibm.com/support/pages/node/885929

 

sequelize-ibmi

 ODBCを使用して、Node.jsアプリとDb2 for iの間でORM(オブジェクト・リレーショナル・マッパー)を実装するパッケージである。Db2 for iのテーブルレコードをNode.jsの(JavaScriptの)オブジェクトに変換する。

 
itoolkit

 Node.jsからIBM iリソースへ接続するためのオールインワンのツールキットである。
 
 Node.jsクライアントからXMLを介してIBM i にアクセスするXMLSERVICE、あるいは前述したodbcやidb-connectorを経由してDb2 for iにアクセスする、CLコマンドやシェルスクリプト、PGMコール等を実行する、データキューを作成する・利用するなど、さまざまな機能がある。
 


著者
佐々木 幹雄氏

日本アイ・ビー・エム株式会社
パワーシステムテクニカルセールス
シニアITスペシャリスト

AS/400利用のお客様担当SEから出発し、さまざまなテクニカル職種を担当。現在はPower Systemsはじめインフラ提案・アーキテクチャ設計を主に担当している。

 

 

[i Magazine・IS magazine]

 


 

特集|Db2 for i 最新Tips~多彩な角度からDb2 for iの高度活用にアプローチする
 
PART 1  Db2 for i の歴史と拡張の方向性
PART 2 Db2 for i サービスとIBM i サービスの機能拡張
PART 3 IBM i Access Client Solutions(ACS)のDb2 for i 関連機能
PART 4 Db2 for iの日常運用を見直す
PART 5 Node.js on IBM iのDb2 for i 関連機能
PART 6 Db2 Mirror for iの概要と運用時の考慮点
Column  SQLサンプルの活用法(IFSオブジェクトの管理)