IT環境の急速な変化に伴い、従来のデスクトップPCやノートPCに加えタブレットやスマートフォンのようなモバイルデバイスがごく当たり前に使われるようになってきました。また、今後はIoTの普及に伴い、これまで入出力機器として考えられていなかったデバイスもシステムに接続する必要に迫られることが予想されます。こうした観点から、これらの新しい機器に対応できるインターフェースのモダナイゼーションはシステムの緊急課題と言えるかもしれません。
今回は、ユーザーインターフェース(UI)とシステムインターフェースの2つについて、それぞれのモダナイゼーションを考えてみようと思います。
UIのモダナイゼーション
UIのモダナイゼーションというと、とかくGUI化することであるかのような議論が多いようです。しかし、連載第2回の「プログラムのモダナイゼーション」でも述べたように、UIのモダナイゼーションの核心部分は「ビジネスロジックとUIハンドリングを分離する」という点にあります。UIをGUIにするかCUIにするかはモダナイゼーションの本質とは無関係で、ユーザーの使い勝手やUIの目的にどちらがより適しているかで決めるべき事柄です。 とは言え、UIに何らかの現代風装いを加えたいという社内の要望を完全に無視することはできないでしょうから、モダナイゼーションの本筋を少し離れ、そうした声に応えるためにどのようなアプローチがあるかを簡単に見てみましょう。5250のモダナイゼーション
Access Client Solution(ACS)の5250ディスプレイ・エミュレーター機能は、5250データストリームによるCUIですが、縦横27x132の画面サイズが使用でき、表示文字の色を変更したり背景に画像を表示したりすることができます。また、マウスを使った操作も可能で、ブラウザー、メーラー及び外部プログラムとの連携処理を行うこともできます。これらの機能はACSの設定だけで使うことができ、アプリケーションプログラムには一切手を加える必要がないことが特長です。ACSの機能をフル活用することは、社内業務用アプリケーションのように、これまで慣れ親しんだ操作を大きく変えずに、表示領域を広くしたり、データの見やすさや操作性を改善したりするのに適したモダナイゼーションの手段と言えるでしょう。Webブラウザーによるモダナイゼーション
Webブラウザー機能は、今や多くのユーザーデバイスが標準的に備えています。そこで、既存の5250アプリケーションとWebブラウザーの仲立ちをすることで、既存の5250アプリケーションを修正することなくWebブラウザーによるGUI化を実現しようというアプローチがあります。この方式を採用している製品は市場に数多くありますが、ここでは代表的なものとしてHost Access Transformation ServiceとRational Open Access:RPG版について簡単に説明します。(1)Host Access Transformation Service (HATS)
HATSはTELNETサーバーを介して5250アプリケーションとユーザーデバイスの間でやり取りされるデータストリームをデータ経路の途中で捕え、設定された変換ルールを全ての画面データに適用し、5250データストリームとHTMLとの変換を行います(図1)。HATSは、パッケージソフトウェアのようにDDSソースがない5250アプリケーションのWebブラウザー対応や、ワークステーションIDを指定したい場合などに使用できます。 図1. 5250/HTML変換によるブラウザー対応の概念図 また、WebFacingは元々HATSとは独立した製品でしたが、HATS 7.5からHATSのフィーチャーとして組み込まれています。WebFacingはDDSソースおよびUIMヘルプ・パネルのソースを元に画面ごとに変換ルールを作成し、それに基づいてWebFacingサーバーを経由する5250データストリームとHTMLとの変換を行います。WebFacingは、大きな工数をかけずに、Webブラウザー画面ごとにきめ細かな見た目や、5250の画面に近い操作性を与えたい場合に使用できます。 HATSは対話型CPWを使用するのに対して、WebFacingは対話型CPWを使用しないという違いはありますが、既存の5250アプリケーションを修正することなく画面の入出力インターフェースとしてWebブラウザーが使用できる点が両者の最大の利点です。また、HATS 7.5以降であればHATSとWebFacingは1つのアプリケーションの中で同時に使用することもできます。(2)Rational Open Access:RPG版
Rational Open Access:RPG版 (以下、OARと略記)は、ILE RPGで書かれたアプリケーションプログラムに簡単な修正を加えることで、ユーザーデバイスに合わせた自社開発またはベンダー提供のハンドラープログラムを呼び出せるようにします。これにより、ILE RPGの通常のI/O命令(EXFMT、CHAIN、EXCEPT、READ、WRITE、DELETEなど)を使って様々なデバイスに直接アクセスできるようになります(図2)。つまり、通常のワークステーションやDBファイルを扱うのと同じようにILE RPGでWebブラウザーを始めとする様々な入出力装置を取り扱うことができるようになります。Webブラウザー対応用ハンドラーについて言えば、日本で入手できるものとして、IBMのFFMハンドラーやlooksoftware社のopenlookという製品などがあります。 図2. OARによるユーザーデバイス対応の概念図 補注:現在、市場にはスマートフォン、タブレットを始めとする様々なタイプの新しいデバイスが出現しています。こうしたデバイスをシステムの入出力装置として利用できることも現代のアプリケーションの重要な要件の1つです。ここで紹介したOARは、単にWebブラウザーを介して5250アプリケーションを使用するためのツールと言うより、標準のRPG言語では直接アクセスできないデバイスやリソースにRPGで直接アクセスできるようにするための機能として広く捉えるべきです。実際、ハンドラーを適切なものに変えればRPGプログラムで、後述するWebサービスの呼び出しもできるようになるなど、非常に広い応用範囲を持っています。ISVソリューションによるUIのモダナイゼーション
上記のUIモダナイゼーション・ツールはIBMから提供されるものですが、IBM i の市場にはこの他にも古くからISVベンダーによるGUI化/Web化ツールが多数存在し、かつ多くの使用実績もあります。紙幅の関係でそれらのソリューションを個別にご紹介することはできませんが、日本アイ・ビー・エムのWebサイトにそれらのソリューションの紹介ページがありますので是非参考にしてください。また、iWorldでもこうしたソリューションを紹介する「IBM i ソリューションナイトセッション」を開催し、資料や動画等を公開していきますのでこちらも併せてご覧ください。UIのGUI化における注意点
上で紹介したように、5250データストリームとHTMLの変換を行うことで、既存の5250アプリケーションをそのままWebブラウザーに対応させることが可能ですが、これはモダナイゼーションへの一通過点に過ぎません。なぜなら、この状態ではプログラム構造はモノリシックなままであり、ビジネス変化に迅速に対応することはできないからです。表面的にはGUIが使えるものの、本質的には古いプログラムに化粧を施して表面的に現代風に見せているに過ぎません。むしろ、UIは5250画面であってもプログラムをモジュラー構造に変更する方が目指すべきモダナイゼーションの姿に遥かに近いと言えます。 しかし、ITに詳しくないユーザーから見れば、見かけ上は現代風のGUIが提供されており、これがモダナイゼーションの完成形だと誤解される虞があります。そのような状況は本当の意味でのモダナイゼーションを行おうとした場合の足枷になる可能性があります。そうした問題を起こさないようにするために、UIのGUI化はプログラムのモジュール化とセットで行うことが望ましいでしょう。 UIの話はここまでにして、次にインターフェースのもう一つの形態である人間を介さないプログラム間のデータのやりとりのためのインターフェースのモダナイゼーションについて考えてみましょう。システムインターフェースのモダナイゼーション
現在IBM i で使用できるプログラム間のインターフェースには、DATAQ、MQ、FTP/FTPS、ODBC/JDBC、RPCなどを始めとして様々なものがあります。これらは古くからあるシステムインターフェースですが、今後も使い続けられるものと考えられます。そこで、ここではモダナイゼーションという観点から、今後標準的なプログラム間のインターフェースとして重要性を増すと考えられるWebサービスに焦点を絞って話を進めることにします。Webサービス
Webサービスは、様々なプラットフォーム上で動作する、異なるソフトウェアアプリケーション同士が相互運用するための標準的な手段を提供します。Webサービスは、現在オープン系のシステムではごく当たり前に使用されている技術ですが、IBM i の世界ではまだあまり馴染みのない技術かもしれません。Webサービスの概念は図3に示すように単純明快なものです。 図3. Webサービスの概念図 サービス・リクエスターは、サービス・プロバイダーに要求メッセージを送り、応答メッセージとしてアプリケーションに必要なデータを受け取ります。この要求メッセージおよび応答メッセージのやり取りの方式には、SOAP (Simple Object Access Protocol)とREST(REpresentational State Transfer)の2種類があります。どちらの方式を使うかで、それぞれSOAP WebサービスまたはREST Webサービスと呼ばれます。IBM i はサービス・プロバイダー、サービス・リクエスターのどちらにもなることができ、SOAP Webサービス、REST Webサービスのどちらも使用可能です。サービス・プロバイダーとしてのIBM i
IBM i の標準機能である統合Webサービス・サーバー(IWS)に、IBM i のILEプログラムやサービスプログラムをSOAP WebサービスまたはREST Webサービスとして登録し、使用することができます(図4)。 図4. ILEプログラムのサービス化の概念図 また別の方法として、HATSを利用することでアプリケーションの実行手順をマクロとして登録し、これを元にREST Webサービスを作成することもできます。この場合、アプリケーション・サーバーはIWSではなくWASを使うことになります。サービス・リクエスターとしてのIBM i
IBM iをサービス・リクエスターとして使用するには、以下に述べるようにILE用IWSクライアントを使用する方法、DB2 for i HTTPスカラー関数を使用する方法があります。 ILE用IWSクライアントはILEアプリケーションからWebサービスを使用するためのスタブを生成するツールを提供しており、このスタブを使用することでILEプログラムは通信やデータの形式変換を意識することなくSOAP Webサービスを要求することができます。更にIBM i 7.1以降のILE用IWSクライアントのライブラリーにはWebサービス用の新しい一連のAPI(Transport API)が含まれています。このAPIを使用することでILEプログラムから直接REST Webサービスを要求することもできます。 また、IBM i 7.1から利用可能になった次の8つのDB2 for i HTTPスカラー関数を使用することで、SQL文で直接REST Webサービスを要求することも可能です。- httpGetCLOB
- httpPostCLOB
- httpPutCLOB
- httpDeleteCLOB
- httpGetBLOB
- httpPostBLOB
- httpPutBLOB
- httpDelete
Webサービスの重要性
モダンなシステム間のインターフェースとしてWebサービスが重要な理由は、これがアプリケーション作成の柔軟性を高め、ビジネスに破壊的な影響を及ぼし得る新しいIT技術の取り込みを容易にしてくれるという点にあります。 Webサービスは、連載第2回の「アプリケーションのモダナイゼーション」で述べたモジュラー・プログラミングの考え方を更に一歩推し進めた、柔軟で迅速なアプリケーションの修正を可能にするプログラム構造を実現するものです。モジュラー・プログラミングでは最終的に各モジュールを1つのプログラムに合体させ、それを1つのシステム上に配置するのに対して、各Webサービスは独立したプログラムとして異なるシステム上(同一システム上でも構いません)に置かれ、実行時に呼び出されて、規定された形式(XMLまたはJSON)で要求されたデータを返します。つまり、必要に応じて使用するサービスをダイナミックに差し替えることができ、アプリケーションの柔軟性が格段に向上します。 これまでのITの進化の歴史を見ると、新しいIT技術は既存のITシステムの外で生まれることが多いことが分かります。音声、画像、GPS情報などの入力装置としてのスマートフォンやタブレットなどは近年における良い例ですし、今後はIoTデバイスもその範疇に入ってくることでしょう。これは単なる偶然ではなく、今後もそうした流れは続くでしょう。こうした外部の新しいIT技術がもたらす便益を、素早く自社のITシステムに取り込み、ビジネスの革新を図るためにはWebサービスのような柔軟なシステム間連携の仕組みが必要であることは明白です。 今ブームになっているAI技術をWebサービスによって既存アプリケーションと結び付け、音声応答による受注システムを作ることなど、その気になれば容易に実現できる時代になっています。将来的には量子コンピュータの処理能力を活かしたWebサービスを利用したアプリケーションの作成もできるようになるでしょう。クラウドサービスの出現によってハードウェアのオール自前主義が大きく変わったように、Webサービスによって個々のアプリケーションのオール自前主義も変わろうとしています。そうした時代の潮流に備えるためにもWebサービス化を意識したモジュールを設計し、アプリケーション構造を変えて行くことは極めて重要です。おわりに
ともするとUIをGUI化すると、何となくモダナイゼーションが完了したかのような雰囲気になりがちです。しかし、UIのGUI化は、あくまでもターゲットとするユーザーに最も適したIBM i へのアクセス環境、優れた操作性、理解し易さ、そして場合によっては操作してみたくなる魅力を提供するためのものであり、モダナイゼーションの本質ではありません。 モダナイゼーションの真の目的はビジネスの変化に迅速に対応できるようにITシステムを作り変えることであり、その観点からすればプログラム構造の柔軟性を高めるWebサービス化を推進することの方がはるかに重要であることは理解いただけると思います。 次回は開発・運用環境のモダナイゼーションについて考えます。どうぞお楽しみに。<著者プロフィール>
西原 裕善(にしはら ひろよし)
日本IBMでSEとしてS/34、S/38のシステム設計および導入作業に従事した後、米国ロチェスターの国際技術支援部門に出向し、全世界のIBM SEやお客様に対してAS/400の技術サポートを行う。帰国後、日本IBM システムズ・エンジニアリング(株)でITアーキテクトとして様々なシステムのアーキテクチャ設計を担当。現在はフリーのテクニカル・ライターとしてIBM i を中心に執筆活動を行っています。