TOPサーバ構築・運用> クライアント/サーバサイド技術の違い
はじめてのサーバサイドJava
はじめてのサーバサイドJava

第1回:Are you ready for Server Java ?

著者:WINGSプロジェクト  山田 祥寛   2006/4/7
前のページ  1  2
クライアント/サーバサイド技術の違い

   ユーザの操作や条件に応じて動的な効果を実現するといった意味では、クライアントサイド技術とサーバサイド技術とはよく似ています。しかしこれら両者の間には、決定的な違いがあります。

   それは、クライアントサイド技術がデータを維持するための手段を持たないということです。言い換えれば、クライアントサイド技術ではユーザが入力したデータなどをデータベースやファイルシステムなどに保存しておくことができません(クライアント側のデータが勝手に書き換えられたら大変ですから、これは当然です)。

   クライアントサイド技術が実現する「動的」とは、あくまであらかじめサイト管理者によって提供されたコンテンツを「手を変え品を変え見せ方を変え」ているにすぎず、コンテンツ(データ)そのものは不変(静的)であるのです。

   一方のサーバサイド技術では、サーバ上のデータベースやファイルシステムとの連携はごく当たり前に行うことができます。例えば最もイメージしやすい例としては、掲示板アプリケーションなどがあげられるでしょう。

   掲示板アプリケーションは、別にあらかじめ中身の記事を提供しているわけではありません。あくまで記事を書き込むための入れ物を用意しているにすぎません。しかし、ユーザが記事を追記していくことで、どんどん情報を「蓄積」していくことができます。つまりコンテンツがユーザによって作られていくのです。

   これはデータ処理という観点から見たとき、サーバサイド技術がクライアントサイド技術に勝る大きなポイントです。

   だからといって、クライアントサイド技術がサーバサイド技術よりも劣っているという話ではありません。クライアントサイド技術では実行にあたってサーバとクライアント間の通信が発生しない分、より軽快な動作を望むことができます。

   例えば、画面上の一部の表示をダイナミックに変更したいというような動作は、サーバサイドでも行えますが、パフォーマンスの観点から見ればクライアントサイド技術を使うのが適当です。


サーバサイド技術の中でのサーバサイドJava

   さて、クライアントサイド技術とサーバサイド技術との違いがわかったところで、いよいよサーバサイド技術の中の「サーバサイドJava」の位置づけに注目してみることにしましょう。

   先にも述べたように、サーバサイド技術と一口に言っても様々な技術が乱立しています。その中でサーバサイドJavaはどのような特徴をもっているのでしょうか。

   もちろんコンパイル(一括翻訳)言語であることによるパフォーマンスの高さや"Write Once, Run Anywhere"(一度書いたらどこででも動く)可搬性はいずれもサーバサイドJavaの重要な特長ですが、その中でも注目すべきポイントは利用実績の高さだと筆者は思っています。

   ここ数年来、企業システムにおける基幹系システムの基盤技術として、サーバサイドJavaは多くの実績を積み重ねてきました。そこで重ねられた開発/設計ノウハウやデザインパターン、開発者層の厚みは、サーバサイドJavaの大きな強みであると言えるでしょう。開発/設計をきちんと学びたい人間にとっては格好の技術です。

   またサーバサイドシステム向けに標準化された仕様として、サーバサイドJavaにはJ2EE(Java2, Enterprise Edition)が用意されているのも大きな魅力です。

   J2EEではアプリケーションの基本構成となるEJB(Enterprise JavaBeans)やメッセージング・サービスのJMS(Java Message Service)、ネームサービスであるJNDI(Java Naming and Directory Interface)など、サーバサイド・アプリケーションの構築に必要な仕様が標準化されています。

   つまりJ2EE対応のアプリケーションサーバでありさえすれば、開発者は環境に制約されることなく、かつ可搬性に富んだ高度なアプリケーションを構築できることを意味します。

   いかがですか?

   ここまででWebの中でのサーバサイドJavaの位置づけが少しずつ理解できてきたでしょうか。

   次回以降ではJ2EEの最も基本的な構成要素である、JSP&サーブレットを使って簡単なWebアプリケーションを作成してみることにします。

Java技術の3つのエディション

   Javaの技術は、その目的に合わせて3つのエディションから構成されています(表1)。

  • J2SE(Java2 Platform, Standard Edition)
  • J2EE(Java2 Platform, Enterprise Edition)
  • J2ME(Java2 Platform, Micro Edition)

表1:Java技術の3つのエディション

   このうち、J2SEはすべてのJavaアプリケーションを動作するために必要な基本動作環境です。J2EEもJ2SEの上で動作するサーバ・アプリケーション構築用のフレームワークです。J2MEは携帯電話や家電製品などの組み込みシステム向けに開発された開発/実行環境です。Javaはこれら3つのエディションを使い分ける(または組み合わせる)ことで、様々なシステムに柔軟に適用できるのが特徴です。

前のページ  1  2


WINGSプロジェクト  山田 祥寛
著者プロフィール
有限会社WINGSプロジェクト   山田 祥寛
Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト(http://www.wings.msn.to/)」の代表。主な著書に「10日でおぼえる入門教室シリーズ(Jakarta・JSP/サーブレット・PHP・XML)」(以上、翔泳社)、「書き込み式 SQLのドリル」(ソシム)など。最近ではIT関連技術の取材、講演まで広くを手がける毎日。

INDEX
第1回:Are you ready for Server Java ?
  サーバサイドJavaはWeb上で動作する技術
クライアント/サーバサイド技術の違い