最終回 Ruby on Geronimoを試す【後編】:Apacheの戦士Geronimoが持つ実力(2/2 ページ)
J2EEアプリケーションサーバ「Apache Geronimo」の魅力に迫ってきた本連載もいよいよ今回で最終回となる。今回は、RoGの実現を通して、GBeanの原理をより深く理解してほしい。
RoGを実現してみて
以上で、とりあえず、RoGの実現を通して、GBeanの原理をより深く理解いただけたと思います。しかし、RoGを実際に構築した方なら、rubyGBeanをstopして再度startしようとしてエラーの発生を経験していると思います。この不具合を残していることが心残りです(エラーの原因はクラスローダーの仕組みにあります)。
RoGでエラーを回避する手段をわたしは模索中ですが、1つにはそもそも管理対象がJava以外ということがあります。これは多言語連携のリスクだととらえる必要性を示しています。本当に組み込み系などで利用したいのであれば、専用のGeronimoプロセスを立てる必要も出てきます。しかし、一度Geronimoの上で動作するようになれば、それはJ2EEがサポートする強力なリソース管理やセキュリティ管理手段を手に入れたも同然です。GBeanがJMXを拡張していることを考え合わせれば、プロセスを越えるどころか、マシンを越えてRMI*やSOAP*を通じた管理も可能になります。また、Geronimoのアーキテクチャはマイクロカーネル方式です。不要なGBeanは簡単に外せ、リソースの節約もできます。
わたしがこの記事を書いた一番の動機は、読者の皆さんにGeronimo活用法の発想を豊かにしていただきたいと思ったことです。皆さまもGeronimoに触れ、ぜひ、その秘められた可能性を広げていってください。
コラム:組み込み系機器の管理もGeronimoで
4年程前、わたしは筐体にたくさんデバイスが取り付けられている組み込み系機器のプロジェクトにJavaのサポートで参加しました。その機器はさまざまなメーカーが製品をそろえており、その上にお客様のアプリケーションが製品ごとにカスタマイズされて載っていました。そのミドルウェアではデバイスサービスの起動/停止やアプリケーションからの要求をデバイスサービスに委譲するなど、いま思えば、まさにGeronimoカーネルが担当している部分でした。
ほかの組み込み系機器でも同じ手法が使えないか? と思っているところへGeronimoが登場しました。これは簡単になる! と直感が働きました。だからこそサンプルであっても、「入出力中は終了処理を遅延させ、また、終了状態に入ったらもう以降の処理を受け付けない」コードや今回のRubyがそうであるように「マルチスレッドに非対応のコードを保護する」コードなど、マルチスレッドに関するコードをふんだんに盛り込んでおり、実践的なサンプルとしました。
日本のメーカーは、組み込み系技術に卓越しています。もし、Geronimoの上で組み込み系機器を管理することが実現したら、それはJ2EEというオープンな技術の上で戦える武器を持ったことになります。実際に読者の中から組み込み系の管理にGeronimo採用を決断する方が現れ、その強力な機能を十分活用していただけたなら、わたしにとって望外の成果です。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このページで出てきた専門用語
開発環境を構築し
開発環境の構築手順についてもサンプルファイル内のreadme.txtを参照。
コンフィギュアとクラスローダー
これも現在調査中だが、わたしはコンフィギュアとクラスローダーは1対1に対応付くと考えていた。しかし、GBeanの構成ファイルから
repositoryディレクトリ配下にJARファイルをコピー
簡単にはrepository配下にjarをコピーすればGeronimoはその存在を認識する。このほかにもコンソールからデプロイが可能。
Maven
Project Object Modelと呼ばれる単位でプロジェクトをモデル化し、成果物の管理を行うツール。GeronimoでもMavenの手法が取り入れられているので、Eclipseでの開発からサーバ環境までをファイルレベルでシームレスにつなげられるのではないかとわたしは期待している。
RMI
Remote Method Invocation。別のホストにあるJavaオブジェクトのメソッドを呼び出すための通信手段。
SOAP
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.
関連記事
- developersLife〜開発者という生き方
連載第1回:勇気を出してジェロニモとお近づきになってみる
J2EEアプリケーションサーバ「Apache Geronimo」が静かにブレイクの兆しを見せている。本連載では、このGeronimoの魅力に迫っていく。まず、Geronimoの導入ポイントと、Eclipse+Web Tools Platformを使った開発の流れを紹介しよう。
連載第2回:WTPを使用したWebアプリケーション開発
J前回は、Geronimoの導入と、アプリケーション開発環境となるEclipseとWeb Tools Platform(WTP)をインストールしました。今回は、WTPを使用して簡単なWebアプリケーションを開発する方法を紹介します。
連載第3回:GeronimoカーネルとGBeanアーキテクチャ
Tomcat、Jetty、ActiveMQ、OpenEJBなど、至難と思われたさまざまなオープンソースミドルウェアの柔軟な統合を実現した Geronimo。今回は、その統合を強力に支えるGeronimo特有の柔軟なアーキテクチャを紹介。統合用部品GBeanの疎結合連携を実現する DIカーネル機構などを通して、Geronimoが秘めた本当のポテンシャルを体験しよう。
連載第4回:GBean×DI徹底解剖
コンポーネントの疎結合化・再利用を促す手法であるDI(Dependency Injection)ですが、Geronimoカーネルの最大の特徴は、GBeanの取り扱いにこのDIの考え方を取り入れている点と言えるかもしれません。今回は、GBeanに活用されているDIの仕組みを紹介します。
連載第5回:Ruby on Geronimoを試す【前編】
Geronimoでオープンソースミドルウェアの柔軟な統合を実現できるなら、独自のミドルウェアも統合できるはず! 今回は、統合の実例として、近年注目を集めるRubyのランタイム環境をGeronimo上に統合してみます。- Web 2.0における、Apache Geronimoの成績は?
- Apache Geronimo、J2EE互換テストを通過