ここまでで RPG で IBM Watson との連携を構築してみようという方への
技術的なまとめと助言を行いたい。
-
Watson との会話は HTTP プロトコルによって行われ、
文字コードはユニコード( UTF-8 )である。 -
通信は TLS 1.2 という SSL である。
-
必要な技術と環境の条件
-
環境
IBM i i5/OS Ver7.1 ( PTF )または Ver7.2 以上
-
通信
デジタル証明書マネージャーによる TLS 1.2 と
アプリケーション ID の登録 -
会話
HTTP プロトコル( GET/POST )
チャンク・デコード
添付ファイルの送信 -
文字コード
CCSID の知識
EBCDIC/UTF-8 の相互変換と
文字のエンコード化
-
-
難易度
最初に RPG による TCP/IP 通信ができる程度の経験と知識があれば
さほど難しくはないと思われていたが結構、難易度が高いことがわかる。
デジタル証明書マネージャーは通信の知識が十分ある人でないと
できないし EBCDIC/UTF-8 の変換は QDCXLATE ではできない。
iconv という UNIX 用の API の使用が必要であるが
iconv の扱いを知っている人は少ないだろう。HTTP プロトコルはさらに一般には馴染みがない。
JavaScript に精通している人であっても実際の HTTP プロトコルを
知っている人はほとんどいない。
IBM の Watson のサイトでは Watson を使う手段に応じて
要求する HTTP プロトコルをシミュレートできるようになっていて
HTTP プロトコルがわかる人にとってはわかりやすくなっている。
とうことは IBM も自分で HTTP プロトコルを作ることを
ユーザーに期待しているようである。 -
参考
【 参考サイト 】
IBM Watson でコーディングのできないド素人がチャットボットを作ってみた
( https://www.ibm.com/think/jp-ja/watson/chatbot-conversation-1/ )視点を変えてみるとこのように IBM i とは関係のない人にでも
Watson を扱うことはできるように見えるが URL を見てわかるように
実はこれは IBM の素人を装ったヤラセである。 -
今後の展開
ブラウザで Watson と簡単な会話をすることは難しくはない。
しかし私達の興味の対象はやはり IBM i から Watson をどのように
利用できるか、またはするか、ということである。
HTTP クライアントということを考えると IBM i から Watson の利用方法は
次の二つの方法が考えられる。-
HTTP クライアント・モジュール( *SRVPGM )を
ILE-RPGから呼び出して使うこれは市販のソフトウェア製品としての HTTP プロトコルを有する
サービス・プログラム( *SRVPGM )のプロシージャーを
ILE-RPG から呼び出して Watson を使う方法である。
ただしこの場合でもデジタル証明書マネージャーの設定は必要である。
株式会社オフィスクアトロでもこのサービス・プログラムの
提供を予定している。
この機能があれば IBM i 開発者が Watson の
ディープ・ラーニング機能を容易に利用することができるようになる。 -
JavaScript ( Ajax )を Watson と RPG とのあいだの
ゲートウェイにするAjax ( =JavaScript による非同期通信 )を
RPG と Watson とのあいだのゲートウェイとして RPG からの要求を
Ajax を通じて Watson に渡し、Watson からの返答を Ajax が
IBM i の CGI に渡すというものである。
この場合 HTTP プロトコルのさしたる知識も必要ないし
ブラウザは強力な HTTP クライアントであるので安定動作する。
IBM i のデジタル証明書マネージャーの設定も必要ない。
ただし JavaScript の高度な開発力が必要とされる。
株式会社オフィスクアトロではこれを製品の機能として
取り込むことを計画している。
-
最後に