RPG

318. IBM Watson はどのような通信をしているか ?

先でブラウザを使えば IBM Watson と簡単に通信できるのか実験してみた。
ここでは Watson が使っている通信をもう少し調べてみよう。
Watson は通信手段として

  • SSL ではなく通常の HTTP では通信できないのか?
  • SSL を使っているのであればどのような SSL を使っているのか?

について調べてみたい。
もし Watson が通常の HTTP プロトコルでも通信できるのであれば
RPG/COBOL で Watson と通信するときも SSL ではなく
通常の HTTP のほうが開発が簡単であるからだ。
そこで先の URL の https と書かれていた部分を http に置換えて

http://watson-api-explorer.ng.bluemix.net/language-translator/api/v2/translate?model_id=en-ja&text=I am a boy

と URL 欄に入力して実行すると

http で成功したと思いきや URL 欄を良く見ると http が https に書き換えられている。
これは Watson がリダイレクトしたもので、やはり Watson は SSL による通信のみを
要求しているのである。

それでは次に Watson はどのような規格のSSLを必要としているのだろうか?
ブラウザのインターネット・オプションで「詳細設定」タブを選択して「セキュリティ」を
探してみると次のように表示される。

SSL には機密保護がリリース・アップ毎に強化されていって
現在は TLS 1.2 までが揃っている。
そこで SSL 2.0 や 3.0 のチェックをはずして Watson にアクセスしても
正常に返事は戻ってくる。
しかし TLS 1.2 をはずしたのでは

とのエラーとなって Watson との通信は失敗する。
ということは私達もこれから RPG や COBOL を使って Watson と通信しようとすると

  • SSL 通信が必要である。
  • しかもその SSL は TLS 1.2 規格でなくてはならない。

という条件が必要となる。
IBM i の i5/OS リリースはこの規格を満たしているのだろうか?
調べたところ次のような結果であった。

SSL TLS 1.2 のサポート
Ver 5.4 ×
Ver 6.1 ×
Ver 7.1 ( PTF が必要 )
Ver 7.2
Ver 7.3

これが IBM が Ver7.1 以上を推薦する理由である。