第5回 Ruby on Geronimoを試す【前編】:Apacheの戦士Geronimoが持つ実力(2/2 ページ)
Geronimoでオープンソースミドルウェアの柔軟な統合を実現できるなら、独自のミドルウェアも統合できるはず! 今回は、統合の実例として、近年注目を集めるRubyのランタイム環境をGeronimo上に統合してみます。
HelloGBean
次にHelloGBeanの冒頭です(リスト3)。HelloGBeanもGBeanLifcycleのほかにHelloを実装しています。これはクライアントコードから呼ばれるインタフェースです。ちなみに、GBeanであることを知らなくても良いようにJNDI*経由で取得できるように15行目でContextにバインドしています。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
さて、ここで注目すべきは、5、8、11行目です。これでHelloGBeanを生成するときにInvokerインスタンスが必要であり、第2引数として渡されることを示しています。ほかに6行目で「objectName」、7行目で「kernel」という属性が現れていますが、これは何でしょうか? 実はGeronimoでは、magic属性というものが定義されており、「objectName」は自分自身の(JMX仕様の)ObjectNameを表す文字列、「kernel」はGeronimoのカーネルをそれぞれ取得できる属性です。この属性をプランファイルに書く必要はありません。HelloGBean用のプランファイルはリスト4のようになります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
3行目では、HelloGBeanがRubyGBeanに依存するので親子関係を定義しています。次に注目すべきところとして、6〜13行目があります。これはRubyGBeanのObjectNameを書き下したものです。
HelloServlet
ここまでできれば、後はクライアントコードです。これはHelloServlet(リスト5)でHelloインタフェースをlookupするようにしてみました。そのため、geronimo-application.xml(リスト6)、geronimo-web.xml(リスト7)でHelloGBean用のコンフィギュアを親に持つようにしています。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
<application ... configId="sample.enterprize/sample.enterprize" parentId="configure/helloGBean">
<web-app ... configId="sample.web/sample.web" parentId="configure/helloGBean">
次回は
いよいよ次回が本連載の最終回となります。連載第3回、第4回、そして今回解説した内容に基づいて実際に手を動かし、挙動を確かめてみましょう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このページで出てきた専門用語
JNDI
Java Naming and Directory Interface。Javaでネーミングおよびディレクトリ機能を利用できるようにするAPI。
本記事は、オープンソースマガジン2006年5月号「注目のJ2EEサーバー Apacheの戦士Geronimoが持つ実力」を再構成したものです。
著者紹介
日本アイ・ビー・エム システムズエンジニアリング株式会社
万仲龍樹・中山清喬・杉田直哉・津田嘉孝
日本アイ・ビー・エム システムズ・エンジニアリング株式会社(ISE)は、日本アイ・ビー・エムグループにおけるSE技術者の専門家集団として1992年7月に設立された。
発足以来、IBM製品を中心とした難易度の高い複雑なシステム構築や先進技術の適用場面において、卓越したITスキルによりお客様と開発現場を支援してきた。
近年は、仮想化技術・グリッドコンピューティング・Web 2.0・オープンソースソフトウェア等々の先進技術分野での支援も展開している。
関連記事
- 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徹底解剖
Tコンポーネントの疎結合化・再利用を促す手法であるDI(Dependency Injection)ですが、Geronimoカーネルの最大の特徴は、GBeanの取り扱いにこのDIの考え方を取り入れている点と言えるかもしれません。今回は、GBeanに活用されているDIの仕組みを紹介します。 - Web 2.0における、Apache Geronimoの成績は?
- Apache Geronimo、J2EE互換テストを通過
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.