Webアプリケーションの時代は終わるか?

株式会社ピーデー
川俣 晶
2002/02/13


TCO削減ブーム

 1990年代の一時期に、TCO(Total Cost of Ownership)という言葉が流行した。その背景には、パソコンは安くなったけれど、それを維持運営するためのコストは依然として変わらず、実際にパソコンを運用するトータル・コストはあまり安くなっていない、という状況があった。では、どうやってトータルなコストを下げるのか。基本的なアイデアは、クライアント・パソコンにあれこれインストールしたり、設定したりすると手間と時間がかかるので、それらをサーバに置き、クライアントは身軽になるべきだというものだ。

 これに対応する1つのアイデアは、ネットワーク・コンピュータなどと呼ばれる、ハードディスクを持たない一種のパソコンだ。LAN経由でOSを起動したり、アプリケーション・ソフトを起動したりするように考えられたものだ。これなら、すべての管理はサーバに一元的に集中するので、維持管理コストは下がる。しかし現実問題として、それなりの台数のクライアントをストレスなく稼働させるには、LANもサーバも十分な性能を持っているとはいい難く、いつの間にか忘れ去られた感がある。

 別のアイデアは、Webブラウザ上で業務システムを稼働させてしまうというものだ。クライアントには通常のパソコンを使うが、クライアントには専用業務ソフトをインストールせず、Webブラウザ経由でサーバ上に用意されたソフトにアクセスし、利用する。この方法は、OSやWebブラウザといった基本ソフトまでサーバから読み込むわけではないのでLANへの負荷も少なく、より現実的に稼働可能なアイデアといえる。この考え方をさらに進めると、サーバを自社内に置く必要もなく、外部業者のサーバを活用して、サーバの維持管理コストまで削減することも不可能ではない。これは、ASP(Application Service Provider)と呼ばれているものだ。

ブームの結末

 マイクロプロセッサが発明される以前には、巨大なコンピュータが集中的に何もかも処理するという未来像がよく描かれていた。例えば米ソの2大コンピュータが結託して人間を支配してしまう映画『コロッサス』(Colossus:The Forbin Project:邦題『地球爆破作戦』)のようなイメージが、典型的なコンピュータ観であったのではないだろうか。しかし、現実の世界では、たかが手書きの文書を清書するとか、ゲームで遊ぶといった実に日常的な用途にコンピュータの処理能力は大量に消費されており、どんなすごいコンピュータであろうと、すべてのニーズをストレスなく満たすことは不可能な時代になった。例えば、筆者の大学時代には、最新のメインフレームが導入されたというのに、待ち時間も考慮に入れたらパソコンの方が計算が早く終わるということで、使用料を取るメインフレームを避ける動きがあった。計算は確かにメインフレームの方が速いのだが、全体として結果が得られるまでの時間はパソコンの方が速かったということだ。

 だが、世の中には、このような動きを是としない人たちもいる。つまり、独立した雑多なパソコンの集合体など間違った猥雑な存在であり、秩序正しく運営された巨大コンピュータで何もかも処理してこそ、だれもが安心してコンピュータを使えるのだという考え方だ。その背景には、あまりにも不安定すぎる現在のパソコンを改善しようという善意があるのは間違いない。

 もっとも、善意とは違う理由で一極集中主義を担いでいる人たちもいるような気配がある。つまり、マイクロソフトやインテルばかりがもうけるのは面白くないから、現在のパソコンとは違った実現方法をはやらせたいという考え方である。

 しかし、現実の問題として、巨大コンピュータに何もかも統合するという一極集中主義の成功例は極めて少ない。その理由は簡単で、利用者が期待する処理能力を、一極集中主義では提供できないからだ。特に通信回線の限界は大きな障害となる。仮に、平均すればトラフィックを処理するのに十分だとしても、アクセスが一時期に集中してパンクするといったことも考えられる。また、通信回線を強化すると、それが大きなコストアップになりかねない。

 それを踏まえたうえで、Webアプリケーションがなぜ成功したのか、その理由を考えることができるだろう。Webアプリケーションで使用されるさまざまな技術は、もともと細い通信回線で快適に利用できるように配慮されたインターネット技術を基盤としている。例えば、Webブラウザはキャッシュを備えており、一度使ったコンテンツを何度もサーバに取りに行ったりしないインテリジェンスを持つ。また、JavaScriptやJava Appletなど、クライアント側で実行させられる小さなコードを添付することも容易であり、レスポンスを改善することができる。

Webアプリケーションの問題点

 ではWebアプリケーションがあれば万事解決なのだろうか。残念ながらそうではない。もともとWebブラウザはインターネット上のWWWコンテンツを閲覧するためのソフトであって、業務システムを稼働させるために生み出されたわけではない。これにより不都合を生じることがある。例えば、適切な順番で入力ページを切り替えていかねばならない場合でも、Webブラウザは順番と関係なくページにアクセスできてしまう。

 業務アプリケーションでなくても、利用者サイドから評判が悪いことがある。例えばWebアプリケーションとして構築された電子掲示板システムなどで、使い勝手が悪いという意見が出るのも珍しくない。それを解消するために専用クライアント・ソフトが開発される場合もある。

 このような動きの中で、もう一度何が本当に必要なのかを見直すことは価値があるだろう。皆が欲しいのは、正確にはWebアプリケーションではなく、維持管理の金のかからないシステムである。つまり、業務用ソフトをサーバ上に置いたまま実行でき、しかもネットワークやサーバに過大な負荷をかけない賢いシステムであればよいのだ。

.NET Frameworkを用いた挑戦

 @ITの掲示板で、「NothingBut.NETFW」さんが「Webアプリケーションの終焉」と題したスレッドを立てた(Insider.NET会議室の当該スレッドのページ)。ここで紹介されたサンプル・ソフトは、1つの未来の可能性を示すものといえるだろう。ここで紹介されているのは、.NET Framework上で実行可能な簡単なゲーム・ソフトだが、インターネット上のあるURLにアクセスして、.exeファイルを実行する点に特徴がある。この実行ファイルは、クライアント・パソコンのキャッシュ上に転送されてから実行されるが、セキュリティ・マネージャの機能により、ローカルファイルなどへのアクセスは制限されている。機能的にはJava Appletと同じようなものといえるが、決定的に違うのは見た目である。Java Appletは基本的にWebブラウザで表示されるページの一部を構成するものだが、ここでダウンロードされるゲームは1個の独立したウィンドウを開いて動作するものだ。つまり、Webブラウザのユーザー・インターフェイスに拘束されることなく、まったく独自のユーザー・インターフェイスをデザインすることができる。

 また、このソフトは、ウィンドウのサイズと位置を、クライアント・パソコン中のisolated storageという記憶領域に保存する。これは、完全に隔離された記憶領域である。また、実行ファイルが本来置かれていたサーバとの通信は許されるので、ハイスコアをサーバ側で管理する機能もある。

 もちろん、このようなソフトは、.NET Frameworkの実行環境が含まれたパソコンでなければ使えないので、何も特別なソフトをインストールせずに利用できるとはいい難い。しかし、これからのWindowsには.NET Frameworkが標準で組み込まれ、オープンソースによる.NET Frameworkの互換環境の開発が行われていることを考えれば、OSの世代交代が一巡すれば、容易に利用できる定番の技術になるかもしれない。つまり、アプリケーション・ソフトはサーバ上に置いて管理し、クライアント・パソコンはそのソフトをキャッシュに取り込んで実行することが、当たり前のようになるかもしれない。 End of Article


川俣 晶(かわまた あきら)
 株式会社ピーデー代表取締役、日本XMLユーザー・グループ代表、日本規格協会 次世代コンテンツの標準化に関する調査研究委員会 委員、日本規格協会XML関連標準化調査研究委員会 委員。1964年東京生まれ。東京農工大化学工学科卒。学生時代はENIXと契約して、ドラゴンクエスト2のMSXへの移植などの仕事を行う。卒業後はマイクロソフト株式会社に入社、Microsoft Windows 2.1〜3.0の日本語化に従事。退職後に株式会社ピーデーの代表取締役に就任し、ソフトウェア開発業を始めるとともに、パソコン雑誌などに技術解説などを執筆。Windows NT、Linux、FreeBSD、Java、XML、C#などの先進性をいち早く見抜き、率先して取り組んできている。代表的な著書は『パソコンにおける日本語処理/文字コードハンドブック』(技術評論社)。最近の代表作ソフトは、携帯用ゲーム機WonderSwanの一般向け開発キットであるWonderWitch用のプログラム言語『ワンべぇ』(小型BASICインタプリタ)。

 「Insider.NET - Opinion」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間