GlassFishとTomcatの違い Part 1.
Apache Tomcat 5.5.x/6.1の管理とGlassFish v2の管理の違い
についてこれから、少しずつ連載して行きたいと思います。
#本文は、今までTomcatを使用してきた方を対象に書いておりますので、
#Tomcat自身を触った事のない方は多少わかりずらい点もあるかと思います。
#以降では、Tomcatでこのようにしてできた事がGlassFishではどうやるの?
#という、管理者の御要望に応えるべく乗り換えが少しでも
#楽になればと思い、すこしずつ書いて行きたいと思います。
まず、はじめに、
インストール方法についてですが、こちらは今やインストーラが
付いていたり、コマンドを実行すればそのままサービスを起動
できますので、互いに遜色なくどちらも簡単にインストールできます。
ここでは、GlassFish/SJS Application Server 9.1それぞれの
インストール方法について概要を説明します。
インストール
1:GlassFish v2のインストールDownLoad
# java -Xmx256m -jar glassfish-installer-v2-b58g.jar” # cd glassfish # chmod -R +x lib/ant/bin # lib/ant/bin/ant -f setup.xml |
2:Sun Java System Application Server 9.1 のインストール
http://blogs.sun.com/okazaki/entry/application_server_9_1
3:Sun Java System Application Server 9.1 with HADBのインストール
http://blogs.sun.com/yosshi/page/Apparchive
サーバの起動
さて、インストール後、起動するわけですが、それぞれ
下記を実行します。
Tomcatでは下記を実行します。
# apache-tomcat-6.0.14/bin/startup.sh |
一方、GlassFish v2/SJS Application Server 9.1は
下記のコマンドを実行します。
# glassfish/bin/asadmin start-domain domain1 |
上記を実行すると、それぞれ8080番ポートでサービスが
提供されるようになります。
GlassFishではそれ以外に、管理画面に接続するための4848番ポート、
HTTPSで接続するための8181番ポート等もLISTENされています。
ポート番号の変更方法
このポート番号を変更したい場合は、下記のように管理コンソールから
「構成」ー>「HTTPサービス」ー>「HTTP リスナー」を選択して
変更が可能です。(下記では18080に変更)

また、その設定内容は下記のディレクトリ配下に記載されています。
glassfish/domains/domain1/config/domain.xml
<http-listener acceptor-threads=”1″ address=”0.0.0.0″ blocking-enabled=”false” default-virtual-server =”server” enabled=”true” family=”inet” id=”http-listener-1″ port=”18080″ security-enabled=”false” server-name =”” xpowered-by=”true”> |
さて、ここですでに御気付きの事と思いますが、エンドユーザに対する
サービスを提供するポート番号(18080)と、管理者が管理をする
ポート番号(4848)が異なっている点に御気付きの事と思います。
Tomcatの場合、管理用のツール(apache-tomcat-[version]-admin.zipに
よる管理も含む)を利用する場合、サービスを提供している
ポート番号(8080)と同一のポート番号(8080)で管理を行います。
つまり、Tomcatの場合は管理サービスを一旦起動すると、
任意のユーザが管理画面に物理的にアクセスできるような状況になり
後はRealmによるユーザ認証が残っているだけとなります。
#少し調べてできなさそうだったので上記を書きましたが、
#変更できたらすいません。(^_^;)、だれか教えてください。
一方、GlassFishではデフォルトで管理用のポート番号(4848)と
サービスを提供するポート番号(8080)が異なります。
そこで、エンドユーザに対してサービスを提供している状況でも
管理サーバに接続し、GUIで監視等を含む管理ができるようになります。
また、接続するポート番号が異なるため、FireWall等により、
管理用のポート(4848)に対してアクセスできるネットワーク
セグメントを限定させる等の防御も容易に実現できます。
さらに、Realmによるユーザ認証を行う事で、よりセキュリティに
強い環境を構築しやすくなります。

管理者のパスワードの変更方法
最後に管理者のパスワードの変更方法ですが、
Tomcatではapache-tomcat-6.0.14/conf/tomcat-users.xmlに
記載しますが、デフォルトでは記載がなし(ログイン不可)で、
記載する場合も、パスワードを直接ファイル内に記載しています。
(暗号化パスワードにする場合、FileRealmではなくJDBC Realm等に
する必要あり。)
> more tomcat-users.xml <?xml version=’1.0′ encoding=’utf-8′?> <tomcat-users> <role rolename=”manager”/> <user username=”tomcat” password=”tomcat” roles=”manager”/> </tomcat-users> |
一方、GlassFishでは下記のように、管理コンソールより「アプリケーションサーバ」ー>
「管理者パスワード」を選択し変更が可能となります。

この際、修正されたパスワードは、下記に暗号化されて保存されています。
こちらの方がより安全ですね。
glassfish/domains/domain1/config/admin-keyfile
> more admin-keyfile admin;{SSHA}/mqU+LHmuoWrL4KSafGVdbNR5aDW3dbjkUDosQ==;asadmin # Domain User and Password – Do Not Delete Entry Above |
ここで、少し余談ですが、GlassFish v3では、より管理方法が洗練される予定です。
下記のURLに記載されるように、代理の管理者や、ロールベースの管理
等も実装される予定です。
http://wiki.glassfish.java.net/Wiki.jsp?page=GlassFishV3Themes
C.) Advanced administration
Administration features should scale as needs grow.
Developers, administrators, deployers, operators, etc should only
be presented with the tools required to fulfill their role.
Potential administration features include:
* Delegated Administration
* Role Based Administration
* Centralized management of all deployment tiers (Load balancer, application server, HADB).
* More complete SNMP Support
* Scripting support for Self Management and Command-Line.
* Feature parity between command-line interface and web console.
* Customization of administration console based on role
* Ability to compose and create tasks.
Entry filed under: Application Server/GlassFish.