以上で、とりあえず、RoGの実現を通して、GBeanの原理をより深く理解いただけたと思います。しかし、RoGを実際に構築した方なら、rubyGBeanをstopして再度startしようとしてエラーの発生を経験していると思います。この不具合を残していることが心残りです(エラーの原因はクラスローダーの仕組みにあります)。
RoGでエラーを回避する手段をわたしは模索中ですが、1つにはそもそも管理対象がJava以外ということがあります。これは多言語連携のリスクだととらえる必要性を示しています。本当に組み込み系などで利用したいのであれば、専用のGeronimoプロセスを立てる必要も出てきます。しかし、一度Geronimoの上で動作するようになれば、それはJ2EEがサポートする強力なリソース管理やセキュリティ管理手段を手に入れたも同然です。GBeanがJMXを拡張していることを考え合わせれば、プロセスを越えるどころか、マシンを越えてRMI*やSOAP*を通じた管理も可能になります。また、Geronimoのアーキテクチャはマイクロカーネル方式です。不要なGBeanは簡単に外せ、リソースの節約もできます。
わたしがこの記事を書いた一番の動機は、読者の皆さんにGeronimo活用法の発想を豊かにしていただきたいと思ったことです。皆さまもGeronimoに触れ、ぜひ、その秘められた可能性を広げていってください。
4年程前、わたしは筐体にたくさんデバイスが取り付けられている組み込み系機器のプロジェクトにJavaのサポートで参加しました。その機器はさまざまなメーカーが製品をそろえており、その上にお客様のアプリケーションが製品ごとにカスタマイズされて載っていました。そのミドルウェアではデバイスサービスの起動/停止やアプリケーションからの要求をデバイスサービスに委譲するなど、いま思えば、まさにGeronimoカーネルが担当している部分でした。
ほかの組み込み系機器でも同じ手法が使えないか? と思っているところへGeronimoが登場しました。これは簡単になる! と直感が働きました。だからこそサンプルであっても、「入出力中は終了処理を遅延させ、また、終了状態に入ったらもう以降の処理を受け付けない」コードや今回のRubyがそうであるように「マルチスレッドに非対応のコードを保護する」コードなど、マルチスレッドに関するコードをふんだんに盛り込んでおり、実践的なサンプルとしました。
日本のメーカーは、組み込み系技術に卓越しています。もし、Geronimoの上で組み込み系機器を管理することが実現したら、それはJ2EEというオープンな技術の上で戦える武器を持ったことになります。実際に読者の中から組み込み系の管理にGeronimo採用を決断する方が現れ、その強力な機能を十分活用していただけたなら、わたしにとって望外の成果です。
開発環境の構築手順についてもサンプルファイル内のreadme.txtを参照。
これも現在調査中だが、わたしはコンフィギュアとクラスローダーは1対1に対応付くと考えていた。しかし、GBeanの構成ファイルから
簡単にはrepository配下にjarをコピーすればGeronimoはその存在を認識する。このほかにもコンソールからデプロイが可能。
Project Object Modelと呼ばれる単位でプロジェクトをモデル化し、成果物の管理を行うツール。GeronimoでもMavenの手法が取り入れられているので、Eclipseでの開発からサーバ環境までをファイルレベルでシームレスにつなげられるのではないかとわたしは期待している。
Remote Method Invocation。別のホストにあるJavaオブジェクトのメソッドを呼び出すための通信手段。
Simple Object Access Protocol。オブジェクト間の通信をXMLベースの記述で行うプロトコル仕様。
本記事は、オープンソースマガジン2006年5月号「注目のJ2EEサーバー Apacheの戦士Geronimoが持つ実力」を再構成したものです。
日本アイ・ビー・エム システムズエンジニアリング株式会社
万仲龍樹・中山清喬・杉田直哉・津田嘉孝
日本アイ・ビー・エム システムズ・エンジニアリング株式会社(ISE)は、日本アイ・ビー・エムグループにおけるSE技術者の専門家集団として1992年7月に設立された。
発足以来、IBM製品を中心とした難易度の高い複雑なシステム構築や先進技術の適用場面において、卓越したITスキルによりお客様と開発現場を支援してきた。
近年は、仮想化技術・グリッドコンピューティング・Web 2.0・オープンソースソフトウェア等々の先進技術分野での支援も展開している。
Copyright © ITmedia, Inc. All Rights Reserved.