コラム

JavaEEアプリケーションサーバをちょっと語るコラム

筆者:大西 俊維

クラウド
サーバ
プログラミング
Web
OS
ソフトウェア
ミドルウェア

2015.10.28


なんだかよく分からない Javaのアプリケーションサーバについて解説するコラムです。 Javaのアプリケーションサーバコースを受講検討する方は事前に読んでいただければと思います。


アプリケーションサーバって?


アプリケーションサーバ とは、ビジネス処理(注文処理、在庫処理、顧客処理...)を専門に行う ミドルウェアサーバ の事です。

普段、皆さんが使用するWebシステムの裏側で頑張ってデータ処理をしているサーバです。アプリケーションサーバの中には、Webの処理機能を持つサーバもあり、Web処理機能とビジネス処理機能を持ったサーバの事を Webアプリケーションサーバ と呼んでいます。

3層構造システム

JavaEE アプリケーションサーバ


JavaEE アプリケーションサーバ とは、Javaで開発されたアプリケーションサーバです。JavaEE アプリケーションサーバ は、Javaで開発されたプログラム(Servlet,JSP,EJB)等を組み込んで動かす事ができます。開発されたプログラムをJavaEE アプリケーションサーバに追加する事を デプロイ (配備)と言います。

このサーバにデプロイされたプログラムが、ビジネス処理(注文処理、在庫処理、顧客処理...)を提供しているのです。JavaEE アプリケーションサーバ はデプロイされた、ビジネス処理プログラムを動作させる動作環境( コンテナ )を提供しています。

<代表的な JavaEE アプリケーションサーバ (JavaEE 準拠)>

  • GlassFish
  • Red Hat JBoss Enterprise Application Platform
  • Oracle WebLogic Server
  • WebSphere Application Server

     

コンテナとは?


コンテナとは、JavaEE アプリケーションサーバ の中核となる、JavaEE プログラムの動作環境であり、コンテナがビジネス処理に必要な様々な基本処理を提供するため、ビジネス処理を作成する開発者は基本的な処理部分を作成することなく、ビジネス処理(在庫計算、受発注計算...)のみに集中して開発することができます。開発者にとっては、基本的な処理を作成する必要がなくなるため、従来のシステムと比べ低コストで迅速にビジネスアプリケーションの開発を行う事が出来ます。

<コンテナが提供する基本的な処理>

  • マルチスレッド処理(アプリケーションがマルチスレッドで動作します)
  • ネットワーク処理(基本的なネットワーク接続処理はコンテナが行います)
  • JavaEE アプリケーションの管理(JavaEEアプリケーションのデプロイ、アンデプロイ)
  • セキュリティ管理(ユーザの認証やコンテンツへの認可処理を提供します)


JavaEE アプリケーションサーバ には下記の2つのコンテナがあり、対応する JavaEE プログラムが動作します。

  • Webコンテナ(Web関連の処理を担当)
    Servlet:Webのリクエスト処理が得意な Java プログラム
    JSP:ビュー処理、HTMLでの応答生成が得意な Java プログラム(htmlベースで作成)
     
  • EJBコンテナ(ビジネス処理を担当)
    EJB:ビジネス処理が得意な Java プログラム
    JPA:DBアクセスが得意な Java プログラム

上記のように、JavaEE アプリケーションサーバ はコンテナの集合体で構成されています。

また JavaEE アプリケーションサーバは、コンテナ以外にも様々なインフラストラクチャーサービスがあります。これらのインフラストラクチャーサービスがビジネス処理に必要不可欠な基本の処理や追加処理をサービスとして提供しています。

<コンテナ以外のインフラストラクチャーサービス>

  • JNDIサービス(Java Naming and Directory Interface)
    サービスやコンテナ間の名前を解決するサービス
     
  • コネクションプール(DB Connection Pooling)
    DBサーバ等のコネクションをプーリングして共有するサービス
     
  • JTS(Java Transaction Service)
    トランザクション処理をサポートするサービス
     
  • MessageService
    システム間でメッセージを交換をサポートするメッセージサーバ

JavaEE アプリケーションサーバは、このように様々なコンテナやサービスの塊で構成されています。

もっと詳しく知りたい!という方は、下記のようなトレーニングコースを提供しています。ぜひチェックしてみてください。次回のコラムもお楽しみに。

【関連トレーニングコース】
JBoss Application Administration I (JB248)
JBoss Application Administration I + RHCJA認定試験
Red Hat JBoss Enterprise Application Development II
Java EE 6 アプリケーション開発

筆者紹介

大西 俊維

プロフィール

大西 俊維(Toshiyuki Oonishi)

Java、Linux、ミドルウェア等のコースを担当しています。
主に開発よりの技術が得意分野で、覚える、考える前に一度やってみようを担当コースでは意識しています。
「百聞は一見に如かず」です!


Page Topへ