Webアプリ開発事始 第4回

TCP/IPネットワークとWebアプリケーションの基礎(4)
~実行環境と開発環境
長谷川裕行
有限会社 手國堂

業務処理はサーバーサイドで

サーバーサイド・アプリケーションとクライアントサイド・アプリケーションを単純に区別すれば、サーバー側とクライアント側のどちらでプログラムを実行するかということだけなのですが、実際の処理では、これが大きな違いとなって現れてきます。


- どちらに負荷がかかるか? -

サーバーサイドで実行されるCGIやASPでは、当然のことながらサーバーに負荷が集中します。一方Javaに代表されるクライアントサイドのアプリケーションは、サーバーにはほとんど負荷をかけない代わりに、実行するクライアントの側に負荷がかかります。

クライアントサイド・アプリケーションの実行で発生するクライアントの負荷は、クライアント単体のものとなります。そのため、ネットワーク全体の効率には影響しません。アプリケーションをクライアントサイドとすることで、サーバーにかかる負荷を複数のクライアントに分散できます。



- 組織内では事情が変わる -

クライアント・サーバー方式の負荷分散の仕組みは、処理能力がまちまちなコンピュータが多数接続されるインターネットでは、非常に有効です。しかし、組織内のイントラネットでは、接続するクライアントの能力がほぼ均質化でき、接続する時間帯や起動するアプリケーションも限られています。従って、クライアントサイドで実行するメリットはあまりありません。

組織内のネットワークでは、クライアントにあまり高性能なコンピュータを配備しない方がコスト面で有利です。そのため、強力なWebサーバーを用意してサーバーサイドでアプリケーションを実行させる方が効果的です。



- 複雑な処理はCGIでは厳しい -

サーバーサイド・アプリケーションの代表格であるCGIは、クライアント数やアクセス頻度の限られたイントラネットで威力を発揮します。しかしCGIでは、あまり複雑な処理を実現できません。

入出力画面とデータ処理とを切り分けた形で動作するCGIでは、単純なデータの受け渡しが中心となります。顧客管理やグループウェアなど複雑で大規模なアプリケーションをCGIで実現するには、非常に困難な作業を伴います。

サーブレットやASPのように、Webサーバーと連動する機構が存在しないため、データベースとのやり取りを、CGI経由で動かすプログラムが独自に解決しなければなりません。この点も、業務処理では問題となります。


- ASPまたはサーブレット -

TCP/IPネットワークで大量の情報を効率よく扱えるよう、ユーザーインターフェイスも含めた画面全体のデザインと、データベース処理などの中枢部分とを同じプログラミング言語で作成できるWindowsのASPが登場しました。

ASPでは、画面の生成もデータベースの処理もVBスクリプトで記述できます。また、ActiveXコンポーネントを使って複雑な機能を組み込むことも可能です。

ただ、ASPはWindowsの機能であり、Windows系のWebサーバー(Windows 2000とWindows XP)でしか使えないという問題があります。

“Javaサーブレット”は、主にLinuxなどUNIX系OSで使用されます。Javaはクライアントサイド・アプリケーションの開発手段として、多くのプログラマーに使われてきています。Javaサーブレットは、そのJavaで作ったアプリケーションを、サーバーサイドで動作させる仕組みです。


- 目次 -
HTMLの前と後
HTMLとタグ
サーバーで動くかクライアントで動くか
サーバーサイド・アプリケーション
クライアントサイド・アプリケーション
業務処理はサーバーサイドで
どちらに負荷がかかるか?
組織内では事情が変わる
複雑な処理はCGIでは厳しい
ASPまたはサーブレット
データベースとサーバーサイド・アプリケーション
あとがき

Copyright © MESCIUS inc. All rights reserved.