RPG

321. RPG の Watson 連携のまとめ

ここまでで 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 の利用方法は
    次の二つの方法が考えられる。

    1. HTTP クライアント・モジュール( *SRVPGM )を
      ILE-RPGから呼び出して使う

      これは市販のソフトウェア製品としての HTTP プロトコルを有する
      サービス・プログラム( *SRVPGM )のプロシージャーを
      ILE-RPG から呼び出して Watson を使う方法である。
      ただしこの場合でもデジタル証明書マネージャーの設定は必要である。
      株式会社オフィスクアトロでもこのサービス・プログラムの
      提供を予定している。
      この機能があれば IBM i 開発者が Watson の
      ディープ・ラーニング機能を容易に利用することができるようになる。

    2. JavaScript ( Ajax )を Watson と RPG とのあいだの
      ゲートウェイにする

      Ajax ( =JavaScript による非同期通信 )を
      RPG と Watson とのあいだのゲートウェイとして RPG からの要求を
      Ajax を通じて Watson に渡し、Watson からの返答を Ajax が
      IBM i の CGI に渡すというものである。
      この場合 HTTP プロトコルのさしたる知識も必要ないし
      ブラウザは強力な HTTP クライアントであるので安定動作する。
      IBM i のデジタル証明書マネージャーの設定も必要ない。
      ただし JavaScript の高度な開発力が必要とされる。
      株式会社オフィスクアトロではこれを製品の機能として
      取り込むことを計画している。

最後に

RPG による IBM Watson の利用はやっと始まったばかりである。
今後、実用的なログインやメンバー登録、料金支払いや
高度な AI としての利用を見込めるようになる。
IBM i から AI への利用は今までのコンピュータ利用から
新しい AI 利用への架け橋となることを願っている。