|
|
オープンソースJ2EE APサーバ JBossの可能性 |
第3回:JBossのアーキテクチャ
著者:ダイテックC&D 高橋 康弘 2005/5/13
|
|
|
前のページ 1 2 3 4 次のページ
|
|
3つめのメリット
|
JMXを利用するメリットの3つめは、コンポーネント間の結合を疎にすることです。MBean同士はお互いのリファレンスを直接内部に持つことはありません。MBean間でサービスを利用する場合は、必ずJMXサーバ(JBossカーネル)を経由してオペレーションを呼び出すことになります。JBossカーネルに対してサービスの特定を行う場合であっても、クラス名を直接指定するのではなく、MBean名称を利用します。呼び出し手順は次のようなイメージになります。
|
- JBossカーネルオブジェクトを取得する
- JBossカーネルに対して利用するサービスをMBean名+属性(あるいは操作)名で指定する
- JBossカーネルは指定された名前に対応する実コンポーネント(クラス)を検索し、処理を実行する
- 実行結果を呼び出し元に対して返答する
|
このように、必ずサービスを利用する場合はJBossカーネルを経由しますので、MBeanとして作成されたサービスの内部実装が変わったとしても、インターフェース部分が変わらないのであれば、サービスを利用する側(クライアント)の変更は必要ありません。この辺りの考え方はインターフェースを前提にプログラミングをするEJBの考えとよく似ています。
このしくみを利用することで、JBossはサービス実装の切り替えが容易に行えるようになっています。JBossには切り替え可能なコンポーネントモジュールが多数存在しますが、JBossカーネルに登録するコンポーネントを指定する設定を編集するだけで機能の差し替えが可能です。当然独自に実装したサービスと置き換えたり、JBossが標準で用意していない機能を新規サービスとして追加することも同様な手順で簡単に行えます。
|
JBossとTomcat
|
JBossはWebコンテナとしてTomcatを標準で組み込んでいます。Tomcatの機能自体は単体でリリースされているものとほぼ同じです。ただ、Tomcat全体がMBeanとしてラッピングされています。JBossカーネルからみると、TomcatはWebコンテナとして振る舞うひとつのサービスとなります。
先ほどJMXコンソールの説明で参照した「Catalina:type=Server」は、TomcatをラッピングしているMBeanの情報を参照したことになります。単体のTomcatはそれ自身がひとつのJava VM上で動作しますが、MBeanとしてJBoss内部に組み込まれている状態では、JBossカーネルやその他のサービスと同じJava VM上で動作します。そのため、Web層からEJBにアクセスしたりする場合であっても、ローカルリファレンスを利用することができますので、データのシリアライゼーションなどの余分なオーバヘッドが無く、効率よく処理されます。
Tomcat単体の場合、静的ページやWARファイルを配置する場所はTomcatをインストールしたディレクトリ以下の「webapps」ディレクトリなどになりますが、JBossと統合されたことにより、このようなディレクトリはなくなっています。
WARファイルをデプロイする場合は、前回の説明にあったように「$JBOSS_HOME\server\default\deploy」(デフォルトの設定を使う場合)に配置することになります。しかし、このディレクトリにはWARファイルの中に含まれていない静的なHTMLファイルや画像ファイルだけを配置することができません。そういったファイルを配置したい場合は「deploy」ディレクトリ以下の「jbossweb-tomcat50.sar\ROOT.war」に配置してください。
Tomcatで設定可能な事項は、基本的にJBossに内蔵されているTomcatでも設定できます。Tomcatの設定に関する詳細は省略しますが、設定は以下のファイルに対して行えばほとんどの場合可能です。
|
- $JBOSS_HOME\server\default\deploy\jbossweb-tomcat50.sar以下の次のファイル
- server.xml
conf\web.xml
META-INF\jboss-service.xml
|
|
前のページ 1 2 3 4 次のページ
|
|
|
|
著者プロフィール
株式会社ダイテックC&D 高橋 康弘
入社以来Windowsを中心としたアプリケーション開発に従事。2000年頃からJavaを扱うようになり、2年ほど前からオープンソースを利用したシステム開発を開始。最近はJBoss+オープンソースの組み合わせでWEBアプリケーション開発に携わることが多い。
資格:JBoss認定コンサルタント
|
|
|
|