ユーザー・インターフェースの進化の過程と現状
コンピュータ・システムはデジタルの世界のものとはいえ、かならず人間とやりとりする部分が必要です。それが端末装置などのユーザー・インターフェース(UI:User Interface)です。コンピュータのUIは、時代とともに様々に形を変えました。
発生当初のコンピュータでは、入力はスイッチ、紙テープ、パンチカード、タイプライター端末が入出力装置でした。その後、オンライン型端末(IBM3270やIBM5250)のキーボードやライトペンと発展し、ウィンドウシステムと共にマウスが登場しています。出力装置としては、紙テープ、パンチカード、インパクト・プリンター、ドットプリンター、オンライン端末表示装置(IBM3270やIBM5250)と発展し、現在ではウィンドウシステムが主流となりました。
1990年以前のコンピュータ・システムのほとんどは、「ホストvs端末」の型式でした。この当時のUIは、「端末装置」と呼ばれる機械によって実現されていました。装置が提供する機能の範囲でしかユーザーとの会話はできなかったわけです。
たとえば、IBM3270やIBM5250では、表示する画面を「フィールド」と呼ばれる場所を定義していくことで作って行きます。ライトペンでクリックして操作する装置もありましたが、フィールドをクリックすることができた程度です。IBM3270G(グラフィック)と呼ばれる図を表示する装置もありましたが、ホスト上ですべて処理して端末に送信していました。このため、とても反応が悪く「サクサク動く」というレベルではありませんでした。多くのユーザーが同時にアクセスするともなれば、なおさらです。
この時代のアプリケーション(業務用の)ソフトウェアは、基本的にすべてホスト上で処理されていました。アプリケーションは、端末装置に画面を「ストリーム」と呼ばれるデータとして送信し、入力内容を受け取って次の処理を行う、という対話をして動作していました。
1990年代に入って、ウィンドウシステムの登場とともに大きな変化をもたらしたのは、コンピュータの小型化と低価格化です。ウィンドウシステムが登場したことと、小型化、低価格化が進んだことの相生効果により、「手元にコンピュータを置き、そこでいろいろな対話処理をさせる」という分散モデルが一般的になりました。これは、UI技術を急激に発展させる要因となりました。ユーザーの机の上それぞれにパソコンが置かれ、すべてにCPUが搭載されている上、ソフトウェアを開発して動作させることができます。UI用のソフトウェアを開発することで「端末の機能」という殻をやぶることができるわけです。このような背景で生まれた実行モデルが「クライアントサーバー」です。
クライアントサーバーは、パソコン時代に入って急激に広まりました。ソリューションそのものがクライアントサーバー型で作られているもの(Lotus Notes/Dominoなど)、パソコン用のソフトウェア開発・実行環境をサーバーやホストコンピュータに遠隔接続して使うもの(Microsoft社Visual Basicなど)と、様々なものが登場しました。
クライアントサーバーの特徴は、アプリケーションがパソコン側(端末側)でも動作する、ということです。旧来は3270や5250といった装置が担当していた操作そのものの処理をプログラミングできるようになったわけです。