ここまでで RPG で IBM Watson との連携を構築してみようという方への
技術的なまとめと助言を行いたい。
最初に 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 から呼び出して Watson を使う方法である。
ただしこの場合でもデジタル証明書マネージャーの設定は必要である。
株式会社オフィスクアトロでもこのサービス・プログラムの
提供を予定している。
この機能があれば IBM i 開発者が Watson の
ディープ・ラーニング機能を容易に利用することができるようになる。
Ajax ( =JavaScript による非同期通信 )を
RPG と Watson とのあいだのゲートウェイとして RPG からの要求を
Ajax を通じて Watson に渡し、Watson からの返答を Ajax が
IBM i の CGI に渡すというものである。
この場合 HTTP プロトコルのさしたる知識も必要ないし
ブラウザは強力な HTTP クライアントであるので安定動作する。
IBM i のデジタル証明書マネージャーの設定も必要ない。
ただし JavaScript の高度な開発力が必要とされる。
株式会社オフィスクアトロではこれを製品の機能として
取り込むことを計画している。
最後に