[製品紹介]
オープンソースEJBサーバのデファクトを目指す
JBoss 3
JBossの機能 |
JBossは、J2EE 1.3の機能を備える本格的アプリケーションサーバである。次のような機能をもつ。
- Servlet 2.3, Java Server Pages(JSP) 1.2
- Enterprise JavaBeans(EJB) 2.0
- Java Management Extensions(JMX)
- Java Naming and Directory Interface(JNDI)
- Java Messaging Service(JMS) 1.1
- Java Transaction API(JTA), Java Transaction Service(JTS)
- J2EE Connector Architecture(JCA)
- Java Authentication and Authorization Service(JAAS)
- IIOP/Webサービス
- HSQLDBデータベース
Webコンテナをバンドルしているので、JBossだけでWebアプリケーションを実行できる。バンドルされたWebコンテナにはTomcatとJettyとの2種類があり、別々のJBossのアーカイブとなっている。機能に差はないので、JBossをダウンロードする際に好きな方を取得すればよい。例えば、jboss-3.2.1.zipはJettyをバンドルしたものであり、一方、jboss-3.2.1_tomcat-4.1.24.zipはTomcatをバンドルしたものである。Tomcatを使い慣れたユーザーはTomcat版の方を利用するとよいだろう。
JBoss 3.2.2からはWebコンテナの事情が多少異なるので注意が必要だ。現在、JBoss 3.2.2RC4(ベータ版)が公開されているが、jboss-3.2.2RC4.zipがTomcatをバンドルしたものであり、jboss-3.2.2RC4_jetty-4.2.11.zipがJettyをバンドルしたものである。つまり、JBoss内でのTomcatとJettyの位置づけが逆になっている。
EJBコンテナは、CMP(Container Managed Persistence)2.0に対応している。これは、CMR(Container Managed Relationship)やEJB-QL(EJB Query Language)を含むものであるので、さまざまなEJBを実行できる。
また、HSQLDBというJavaで書かれた軽量データベースを含むのも面白い点だ。デフォルトの設定でこのデータベースを使うようになっているので、何かちょっとテストするときに便利である。もちろん、JDBCドライバを使ってほかのデータベースを使うこともできる。
使いやすいアプリケーションサーバ |
JBossのインストールは簡単だ。アーカイブを展開すればインストールは完了する。サーバの起動は、展開された起動スクリプトを実行するだけでよい。上述したように、Webコンテナやデータベースもデフォルトで組み込まれているので、このままでもJ2EEアプリケーションを実行することができる。
さらに、ホットデプロイ機能により、アプリケーションのデプロイも容易だ。JBossの起動後であっても、deployディレクトリにアーカイブ(EJB-JARやWAR、EAR)をコピー(もしくは展開してコピー)すれば、それらモジュールが読み込まれる。JBossを再起動する必要はない。これがホットデプロイと呼ばれる機能である。逆に、ファイルを削除すればアンデプロイとなる。ファイルを上書きすれば、アンデプロイ、デプロイが順番に実行される。ホットデプロイは、アプリケーション開発時に重宝する機能だ。
マイクロカーネルアーキテクチャ |
JBossのアーキテクチャは、マイクロカーネルと呼ばれる先進的なものになっている。これはJBossの最大の特徴であり、先ほどのホットデプロイが可能なのもこのアーキテクチャのおかげである。
マイクロカーネルはJMX(Java Management Extensions)をベースとする。JMXはネットワーク上に分散した機器やソフトウェア(管理リソース)をリモートから監視するためのJavaの仕様である。すなわち、管理リソースをJMXクライアント(これはMBeanと呼ばれ、それぞれのサービスに対応する)にすれば、それをJMXサーバ(すなわちMBeanサーバ)に管理させることができ、管理リソースの状態(属性)をJMXという統一されたAPIで監視、操作することができる。
管理するためのJMXとアプリケーションサーバとは関係がないように思われるが、管理というJMXの概念を大きく拡張させたのがJBossのマイクロカーネルアーキテクチャである。JMXでは、クライアントとサーバ間、また、クライアント間で疎な連携が実現される。この点に注目し、管理しやすくするだけのためでなく連携しやすくするために、クライアントをコンポーネント化する実装手段として、JBossはJMXをアーキテクチャの核として採用した。だから、JBossのマイクロカーネルの実体はMBeanサーバであり、1つ1つのサービスはMBeanコンポーネントになっている。
このマイクロカーネルアーキテクチャにより、JBoss全体の構成は、小さなカーネル部分とアドオン可能なサービス部分とに分かれ、カーネルを再起動することなくサービスを動的に追加、削除できるようになっている。だから、JBossは、カスタマイズしやすく柔軟なアプリケーションサーバなのだ。
JMXベースの管理コンソール |
JBossでは、アプリケーションサーバが持つべきひとつひとつの機能がMBeanとしてラップされている。すなわち、WebコンテナもEJBコンテナもトランザクションマネージャもMBeanである。先ほどWebコンテナの説明で、TomcatやJettyがバンドルされていると書いたが、これは単にファイルが一緒に付いてくるという意味ではない。それぞれがWebコンテナというサービスとしてMBean化されているという意味だ。だから、Webコンテナの実装を容易に切り替えられる。
|
また、自分でMBeanを実装してサービスを追加することもできる。JBossを土台に、既存のサービスをカスタマイズしたり、サービスを追加したりして、独自のアプリケーションサーバを仕立て上げることも可能だ。
|
|
クラスタリング |
JBossはクラスタリング機能ももつので、本格的な運用もまかせられる。次のようなクラスタリング機能がある。
|
クラスタリングの目的には2つある。負荷分散としての機能とダウンタイムを少なくするための多重化の機能だ。Stateful Session Beanの情報やHTTP Sessionの情報までも共有することができるので、JBossは実用に堪えるクラスタリングサーバとなっている。
2/3 |
INDEX |
||
JBOSS | ||
Page1 |
||
Page2 JBossの機能 使いやすアプリケーションサーバ マイクロカーネルアーキテクチャ クラスタリング |
||
Page3 JBossの今後 〜 Beyond J2EE J2EEの課題 AOPを取り入れたJBoss 4 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|