SHOEISHA iD

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

連載記事

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

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
GlassFishからアプローチするJava

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

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

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

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

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

はじめに

 この連載では、「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のインストール

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

  1. 1
    「CUDA」 ~マンガでプログラミング用語解説
  2. 2
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 3
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 4
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  5. 5
    VSCodeをUML図やフローチャート作成に使ってみよう
  1. 6
    【超時短テクニカルライティング】生成AIを活用してドキュメントを書く流れを掴もう! NEW
  2. 7
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  3. 8
    「VRAM」 ~マンガでプログラミング用語解説
  4. 9
    健全なソフトウェア設計の第一歩! 既存のPHPソースコードからクラス図を自動生成しよう
  5. 10
    「正解のない仕事」に備える効率的な学び方とは? エンジニアリングマネージャーが認知科学と共に紐解く

アクセスランキング

  1. 1
    「CUDA」 ~マンガでプログラミング用語解説
  2. 2
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 3
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 4
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  5. 5
    VSCodeをUML図やフローチャート作成に使ってみよう
  6. 6
    【超時短テクニカルライティング】生成AIを活用してドキュメントを書く流れを掴もう! NEW
  7. 7
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  8. 8
    「VRAM」 ~マンガでプログラミング用語解説
  9. 9
    健全なソフトウェア設計の第一歩! 既存のPHPソースコードからクラス図を自動生成しよう
  10. 10
    「正解のない仕事」に備える効率的な学び方とは? エンジニアリングマネージャーが認知科学と共に紐解く
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  3. 3
    Python 3.13の新機能、対話型インタプリタの機能強化や高速化などを解説
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    「CUDA」 ~マンガでプログラミング用語解説
  6. 6
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  7. 7
    今後生成AIとどう向き合うべきなのか? 現場のエンジニアと研究者が最新研究事例から語り合う
  8. 8
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  9. 9
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  10. 10
    Vue.js3.4~3.5の新機能をまとめて紹介! 新しいAPIやSSRの改善

イベント

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

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

メールバックナンバー

アクセスランキング

  1. 1
    「CUDA」 ~マンガでプログラミング用語解説
  2. 2
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 3
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 4
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  5. 5
    VSCodeをUML図やフローチャート作成に使ってみよう
  1. 6
    【超時短テクニカルライティング】生成AIを活用してドキュメントを書く流れを掴もう! NEW
  2. 7
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  3. 8
    「VRAM」 ~マンガでプログラミング用語解説
  4. 9
    健全なソフトウェア設計の第一歩! 既存のPHPソースコードからクラス図を自動生成しよう
  5. 10
    「正解のない仕事」に備える効率的な学び方とは? エンジニアリングマネージャーが認知科学と共に紐解く

アクセスランキング

  1. 1
    「CUDA」 ~マンガでプログラミング用語解説
  2. 2
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 3
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 4
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  5. 5
    VSCodeをUML図やフローチャート作成に使ってみよう
  6. 6
    【超時短テクニカルライティング】生成AIを活用してドキュメントを書く流れを掴もう! NEW
  7. 7
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  8. 8
    「VRAM」 ~マンガでプログラミング用語解説
  9. 9
    健全なソフトウェア設計の第一歩! 既存のPHPソースコードからクラス図を自動生成しよう
  10. 10
    「正解のない仕事」に備える効率的な学び方とは? エンジニアリングマネージャーが認知科学と共に紐解く
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  3. 3
    Python 3.13の新機能、対話型インタプリタの機能強化や高速化などを解説
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    「CUDA」 ~マンガでプログラミング用語解説
  6. 6
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  7. 7
    今後生成AIとどう向き合うべきなのか? 現場のエンジニアと研究者が最新研究事例から語り合う
  8. 8
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  9. 9
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  10. 10
    Vue.js3.4~3.5の新機能をまとめて紹介! 新しいAPIやSSRの改善