2.0では操作性だけでなく内部性能の向上にも努めています。
これはその格闘の物語のお話です。
製品を使用していて印象に残るのはやはり製品のパフォーマンスです。
ほんの1秒以下のパフォーマンスでも確実に使用感に残ります。
AutoWeb/2.0ではある明細画面が表示されるまで1/10秒以下という
パフォーマンスの良さを誇っていますがなお改善の余地を探しています。
その中での最近の研究をご報告申し上げます。
■ HTTP/2.0 を検討
2015年にはGoogleによってHTTP/1.1に代わるHTTPフロトコルとして
HTTP/2.0が発表されましたが HTTP/2.0の基本は SSLです。
HTTP/2.0の採用も調査致しましたがIBM iの社内ユーザーですべての
通信をSSLにするには設定などにおいてなおハードルが高いものとして
今回は採用を見送りました。
■ WebSocket採用の失敗
㈱オフィスクアトロの技術の試行はすべて成功しているわけではありません。
中にはこのように失敗の例もありますのであえて公表致します。
WebSocketとは2011年に仕様が公開された単一のTCP/IP接続上で双方向通信のチャンネルを提供するTCP/IPの通信プロトコルです。
WebSocketはそれまでHTTP/1.0のプロトコルで通信が切断されるという
歴史的に問題を通信の保持で解決し双方向の通信を実現する新しいプロトコルでした。
・通信を持続して保持
・双方向の通信を実現
・Base64にエンコードして通信
という特徴があります。
これによってXボタン問題や戻るボタン問題、さらに複数セッション、タブ・ブラウザ対応を解決できますがAutoWebでは既に仮想対話式環境によって
これらの問題は解決済みです。
WebSocketは依然にIoTでも使用していましたので導入に技術的な問題はありませんでした。
そこで通信の保持と双方向の通信という点に着目してWebSocket対応の大規模改革を行いました。
通信もプログラム稼働時には<html>全体ではなく<body>部分のみを送信するという通信量の削減まで試みました。
その結果として
・WebSocketではBase64にエンコードするので通信サイズがむしろ増えてしまう。
・結果として通常の通信より遅くなってしまった(3倍遅くなりました)
という問題が発見されたためにWebSocketの採用は棄却されました。
応答速度は依然として1/10秒以下の単位ですが遅くなるという機能を
採用することはできません。
効果を期待して大規模改造を試みましたが
パフォーマンスをむしろ低下させてしまうという残念な結果に終わりました。
■ 通信量の削減による6%のパフォーマンス改善
しかしWebSocket採用試験の中でプログラム稼働中は
<html>全体を送付するのではなく
<body>部分のみを送付するように改善していました。
この部分では確実に通信量が削減されているはずでした。
そこでWebSocketの通信を通常のHTTPプロトコル通信で<body>部分のみの通信を
生かしたところ次のような効果を見出すことができました。
_
あるプログラムの初期画面から明細画面を表示するパフォーマンスを測定したところ
項目 | <html>全体の送信 | <body>のみの送信 |
---|---|---|
通信バイト数 | 29959バイト | 28110バイト(93.8%) |
平均パフォーマンス | 0.064095秒 | 0.061481秒(94.7%) |
という結果を出すことができました。
1/100秒単位の改善ですが体感的には速くなったことは確実に感じて頂けます。
AutoWebの応答速度は0.06秒という速さですがそれでもさらに速くなる技術を
求めています。この数値は弊社の開発用IBM i Power6 での実測値です。
お客さまの実行環境ではさらなる高い応答が得られるものと思います。
※実験の結果ではロール・アップ操作ではデータ部分(body)のみが送信されていますので特にパフォーマンスが良くなったことを実感して頂けるようです。
■ Webはパフォーマンスが命
社内でつねに語られている合言葉は「Webはパフォーマンスが命」です。
お客さまにつねに快適にお使い頂けますようにサーバー・サイドのプログラム命令の
ひとつひとつにもパフォーマンスに配慮しての製品作りに心がけております。
今後ともパフォーマンス改善に対する技術革新を続けて行きたいと存じます。