SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

GlassFishからアプローチするJava

GlassFishからアプローチするJava~入門編~
第1回「GlassFishとNetBeansのインストール」

アプリケーションサーバって何だろう

  • このエントリーをはてなブックマークに追加

 この連載では、「GlassFish」という製品を利用して、Java言語に親しんでもらうことを目的としています。第1回目の今回は、普段はあまり意識しない「アプリケーションサーバとは何か」に焦点を当て、アプリケーションサーバの役割を改めて学んでいきたいと思います。

  • このエントリーをはてなブックマークに追加

はじめに

 この連載では、「GlassFish」という製品を利用して、Java言語に親しんでもらうことを目的としています。第1回目の今回は、普段はあまり意識しない「アプリケーションサーバとは何か」に焦点を当て、アプリケーションサーバの役割を改めて学んでいきたいと思います。

対象読者

  • Javaでなにかしらのアプリケーションを作成したことのある方
  • Javaの変数の宣言や、if文・for文・while文の制御文を踏まえてアプリケーションを作成したことのある方

 オブジェクト指向プログラミングができなくとも構いません。徐々に学んでいければと考えています。また、学びやすいWebアプリケーションをサンプルとするので、Webアプリケーションとは違った分野を勉強したい方には当連載は向いていません。

改めてアプリケーションサーバって何だろう

 GlassFishもアプリケーションサーバの1つです。最近では開発環境がアプリケーションサーバの面倒を見てくれるため、アプリケーションサーバの役割が分かりづらくなってきています。これはこれで開発するには基盤を理解する手間が省け、ビジネスロジックに専念できるというメリットがありますが、Javaの理解を深めたいのであれば、アプリケーションサーバの役割を知ることも重要です。Javaを理解するには言語仕様や開発環境の理解が非常に重要で、それらを解説した入門書もたくさんあります。当連載ではGlassFishを通して今一度アプリケーションサーバという観点からJavaを理解していきたいと考えています。

アプリケーションサーバは何をやってくれるのか

 まず、アプリケーションサーバの意味をウィキペディアの「アプリケーションサーバ」のサイト内の記載から、「アプリケーションサーバと呼ぶ場合、一般には Java EEを採用したWebアプリケーションサーバを指し」という箇所に限定して使用します。よくまとめられたいい解説なので、ぜひ目を通してみてください。

 Java入門者から「Java SEのインストールが終わったけど、Java EEをどこからインストールするか分からない」という質問を受けたことがあります。こういう質問もありうるのかなと思います。Java EEという場合、Java EEの仕様を指すのか、Java EEの仕様を実装した製品を指すのか曖昧に使用されることが多いからだと思います。また、SunがReference Implementationを提供していた頃の名残かもしれません(今でも提供しているのか調べていませんが本筋とは関係ないのでご容赦ください)。

 当連載で紹介するGlassFishも上記のような定義でのアプリケーションサーバです。そのため、Java EEの仕様に従った製品ではありますが、すべてをサポートしているかどうかはマニュアル等で調べる必要があります。例えば、TomcatはJSPやServletはサポートしても、EJBはサポートしていません。GlassFishの中にはTomcatの血も流れていますが、GlassFishはEJBをサポートしています。このように製品によって違いがあるため、Java EEの何をサポートしているかを知ることは重要なことです。

 また、次のような機能もGlassFishは備えています。

  • JMS(Java Message Service)
  • JNDI(JavaNaming and Directory Interface)
  • JavaMail
  • JBI(Java Business Integration)
  • ORB(Object Request Broker)

 上記のとおり、Javaを学習するには十分すぎるほどの機能が含まれます。JNDI以外は当入門編では説明しません。応用編を書く機会があればぜひ説明したいところです。

 難しい言葉ばかり出てきて余計にアプリケーションサーバがなんだか分からなくなってしまいました。誤解を恐れずに筆者なりの言葉を使うと、アプリケーションサーバとは、「業務システムの開発・構築・運用に耐えうるJavaの機能を乗せたサーバ」です。すごく乱暴な言い方になりましたが、最初はこれくらいの理解で始めましょう。おそらく理解が深まるにつれ、この定義は崩れてきます。とにかく何かを理解するには難しい定義からではなく自分なりに解釈したものを常に修正していく方がはるかに楽ですし、自分の中でイメージが固まってゆくのが楽しくなってきます。

 アプリケーションサーバといえども人それぞれ、プロジェクトそれぞれの使い方があるわけであり、置かれた状況によっても変わります。つまり、データベースサーバ、プリンタサーバ、ファイルサーバなどと同じように、利用者にある機能を提供するサーバであり、アプリケーションを乗せるためのサーバ、特に業務システムの使用に耐えうるサーバをアプリケーションサーバと今の時点では理解しておきましょう。

GlassFishを使うには

 以前はコマンドラインを使って開発する方が言語を習得する上では効果的であると言われ、筆者もそのように考えていました。しかし、10年ぶりくらいに仕事でプログラミングする機会があり、Java経験1年のメンバーの仕事ぶりを見て考え方が変わりつつあります。開発ツールを実にうまく使い、筆者の10倍は生産性が高いのです。肝心のロジック部分はオブジェクト指向の理解不足から冗長な記述になっており、他の技術者が見て理解しづらいものでしたが、実際の仕事では生産性も求められることを考えると、コマンドラインでは非常に苦しいのが現状です。従って、開発ツールの習熟とともに言語の基礎、Javaの場合であればオブジェクト指向的な作り方を学ぶ必要があります。

 当連載では開発ツールとしてNetBeansを使用しつつ、言語の基礎を説明する予定です。執筆時点(2009年12月19日)ではGlassFishを継続して開発することがOracleから公表されていますが、NetBeansについては明言されていません。しかし、NetBeansがなくなることはないでしょう。コミュニティは存続し、NetBeansは生き残っていきます。皆さんの多くはEclipseを使っていると思いますが、Eclipseに習熟している方もNetBeansでの開発をお薦めします。開発ツールの多様さを知ることで、開発の場面により使い分けが可能となるからです。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
GlassFishとNetBeansのインストール

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
GlassFishからアプローチするJava連載記事一覧

もっと読む

この記事の著者

川久保 智晴(カワクボ トモハル)

haruプログラミング教室(https://haru-idea.jp/)主宰。COBOL、FORTRANで13年、Javaを中心としたWeb開発で11年。3つしか言語知らないのかというとそうでもなく、sed/awk、Perl、Python, PHP,  C#, JavaScriptなども一時期は業...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4743 2010/01/21 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング