BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ アーティクル Spring2.0 Finalの情報

Spring2.0 Finalの情報

ブックマーク

(本記事の情報はリリース当時の2006年9月時点の情報です)

Spring2.0は当初2006年6、7月にリリースされることになっていましたが、遅れが出ていました。Springに一体何が起こっていたのか、InfoQは Rod Johnson、Rob Harrop、Adrian Colyer、Juergen Hollerを含むSpringチームに尋ねました。

1) Spring2.0 finalは現在どういう状況ですか? Spring開発はどうなっているのですか?

私たちはいくつかの重要な分野で現在状況を確認した後、2.0のリリース計画を変更しました。Spring2.0 finalの目標期日は2006年9月26日です(編集部注:実際は10月3日でした)。また、今週別のリリース候補(RC4)を発表するつもりです。

去年12月のSpring ExperienceカンファレンスでSpring2.0開発の幕が開けて以来、私たちは膨大な量のフィードバックをコミュニティから受けてきました。本当に信じられないような反響でした。ユーザの方々は積極的に改善の提案をしてくれただけでなく、様々な環境にまたがる広範なQAテストを実施してくれました。このことが、非同期JMSやJPAサポートそして新たなJSPフォームタグライブラリなど、キーとなる新機能の主要な改善につながりました。

現在私たちは、OSGi環境でSpring2.0を確実に正しく動作させるための作業に全力を挙げています。これは私たちやユーザにとって大変重要なことです。それに加えて、大量の活動がドキュメントの整備に注ぎ込まれています。その結果は、皆さんが2.0のリファレンスマニュアルを開いて、そのカバーする範囲がどれほど広いかを知れば、はっきりと分かります。

全体としては、私たちはこのリリースにおける品質と後方互換性を特に重要視しています。この決定は間違っていなかったと思います。Springの支持基盤となっているユーザの方々には、2.0への移行が可能な限り痛みを伴わないものであることを保証します。リリースは100%の後方互換性をもち、既存プロジェクト内に簡単に置き換え可能なものになるでしょう。それを実現するのは手間のかかることかもしれませんが。達成は困難ですが、企業がSpringを導入するチャンスを与えてくれるユーザの方々や私たち自身にとって必要不可欠なことです。

2) 最近起こったJPAの変更内容にはどういったものがありますか?

JPA1.0仕様はSpring2.0のリリースサイクルが進むまで確定せず、その実装は今ようやく成熟してきたところなので、私たちはその動き回るターゲットを相手に作業を進めてきました。私たちは、それが自分たちのタイムスケールに与えるインパクトを過小評価していました。

しかしSpring2.0全体と同様に、最終的には私たちが心に描いていたものよりも優れた機能を提供することができました。JPA仕様に定義されている拡張永続化コンテキストと依存性注入アノテーションの概念をサポートするため、私たちはJPAとの統合の範囲を広げました。JPA仕様のスペックリードであるMike Keithを含めたJPAの多くの中心メンバーからは有益なアドバイスを得ることができました。また、仕様には含まれないけれども全プロバイダが提供し全ユーザが必要としている機能のために一貫した設定方法を提供することで、ユーザがJPAプロバイダの切り替えを簡単に行えるようにしました。総じて言えば、私たちは環境をまたいでJPAを利用するための使いやすく一貫性のあるモデルを達成しましたし、そのことについて大変嬉しく思っています。

技術的にはJPAのサポートはひとつのチャレンジでした。仕様が要求しているBCIのためです。テスト環境も含めた全ての環境でそれをサポートするため、私たちはバイトコードの埋め込みを可能にする抽象レイヤを構築し、各環境にわたってそれを実装およびテストしなければなりませんでした。BCIの導入を最初に後押ししたのはJPA仕様ですが、これは未来のエキサイティングな可能性を開きます。それは例えば、AspectJのロードタイム・ウィービングを、皆さんがSpringに期待する使いやすさで、ポータブルかつ効率的に行えるということです。

SpringがTopLink Essentialsとうまく連携して動作することを確実にするため、私たちはMike KeithやTopLinkチームの他のメンバーと多くの生産的な作業を行いました。OpenJPAプロジェクトについても胸を躍らせました。2.0 finalリリースでOpenJPAとの常識にとらわれない独創的な統合を実現するため、OpenJPAチームとも作業を行いました。Hibernate のEntityManagerとも統合しますし、他のJPAベンダもSpringと自分たちの製品との統合に協力してくれるか、あるいは彼ら自らが Springを製品に取り入れてくれることを期待しています。

3) JMSについては?

SpringのJMSメッセージリスナ機能は全ての主要なJMSプロバイダに対してテストが行われました。J2EE環境か否か、トランザクションはXAかローカルか、プーリングされているかどうか、など全てのJMSのシナリオに対応できるように、ユーザのフィードバックに基づき重要な進展がありました。これは現在利用可能であるもののうち最も柔軟なJMSメッセージリスナ機能で、ネイティブなJMSプロバイダとローカルのJMSトランザクションを使って作業を行うための機能を提供する唯一の存在です。

4) OSGi環境でSpringを利用することの意味は?

OSGiは、モジュールから見ることが可能な型に厳格な可視性ルールを設定することで、アプリケーションをモジュール(OSGiの用語では「バンドル」と呼ぶ)に分割するためのすばらしい基礎を提供しています。OSGiは、モジュールの複数バージョンを並行して開発できるようサポートし、クライアントをそのインポート定義に従って互換性のある最も新しいバージョンに紐付けてくれます。また、モジュールを実行時にインストール、アップデート、スタート、ストップ、そしてアンインストールできる動的な環境も提供しています。しかし、OSGiにはモジュール内部のコンポーネント同士を紐付ける方法が欠けており、モジュール間のサービス同士を紐付けるための(宣言的なサービス詳細記述を通じた)基礎的なサポートしか提供してくれていません。そこでSpring のOSGiサポートが必要になるのです。

SpringのOSGiサポートではSpringを使うことでバンドルの設定を簡単にします。そのためにバンドルがアクティブ化されるときに自動生成されるSpringアプリーションコンテキストを使用します。同様に、OSGi用の新しいSpringネームスペースハンドラはOSGiサービスを表しているbeansを定義し(そしてそれらサービスのライフサイクルを追跡し)、beansをOSGiサービスとしてエクスポートし、OSGiの設定管理サービスから設定プロパティを取得することを簡単にしてくれます。Springはまた、OSGi用に設計されていないエンタープライズライブラリをOSGi環境上でも引き続き利用できるよう透過的にコンテキストクラスローダの管理を行います。

簡単に言うと、Spring-OSGiはSpringと関連付けることで生まれたシンプルで使いやすい特性によってOSGiフレームワークの基盤となる力を提供することを目指しているのです。

5) IBM、BEA、OracleはOSGiを使って何をしようとしているのですか? Springがその中で一翼を担うのは何故重要なのですか?

多くの組織はOSGiがエンタープライズソフトウェアに与える価値を認識しています。たとえば、IBMのWebSphere6.1はOSGiカーネルを基盤としています。企業を支援していくのはOSGiアライアンスにとって新しい方針で、エキスパートグループの形成を視野に入れて、関係者を集めた特別なエンタープライズワークショップ(source)が組織されているところです。IBM、BEA、Oracleはこのイベントに代表を送ってくるでしょう。

IBM、BEA、OracleはSpringのOSGiサポートにおいてInterface21とも協力しています。SpringとOSGiは結びつくのは当然の成り行きです。OSGiがエンタープライズのほうを目指して進んでいるのなら、ユーザがSpringを使うことでOSGiの力を解き放てるようにすべきなのは当然のことです。

6) Spring2.0以降についてはどのように考えていますか?

私たちはSpring2.0を終点ではなく次に進むための強力な土台であると考えています。私たちが今後半年から一年半くらいの間に予定している作業のための安定したプラットフォームを提供することに、多くの作業を投入しました。

その一例はAOPの分野にあります。Spring2.0のAspectJとの統合は洗練されており極めてパワフルです。ユーザが使っているのが Spring AOPのプロキシベースのランタイムかAspectJかを問わず、AOPを利用するための単一のプログラミングモデルを提供しています。 Spring2.0の次の話をすると、私たちは常識にとらわれない斬新なアスペクトを追加するための研究に興味をもっています。JPA統合のために開発したロードタイム・ウィービングの抽象化によって、SpringのアスペクトをAspectJで構築することが可能になるなどエキサイティングな可能性が開けているので、その抽象レイヤの上に構築することになるでしょう。

JPAの領域では更なる作業も計画中です。たとえば仕様にはないがよく使われる機能を提供するポータブルな手段を整備するためのJPAベンダとの作業など。機能の例としてはクライテリアAPIなどがあります。これはSpring2.0が将来の開発のための土台となる部分の提供をあらかじめ予定していたもう一つの領域です。

私たちは更なる使いやすい機能を着実にリリースしていくつもりです。たとえば、繰り返し行われる作業を簡略化するXML拡張タグの追加などです。 Spring2.0の使用はSpring1.xに比べて格段に単純になっています。使いやすい機能の提供については、特にWEBアプリケーションの領域で私たちは現在も作業を進行中です。

年内の最優先事項のひとつはOSGiとの完全な統合を実現させることです。基盤となる部分はSpring2.0ですでに完成しましたが、完全な実装は 2.1か2.2になるでしょう。技術的な統合が完成すれば、サーバソフトウェアを開発している企業だけでなくアプリケーション開発者にとってもエキサイティングな利益をもたらすことになると考えています。

7) Acegi Security、Spring Web Flow、Spring Web ServicesといったサブプロジェクトはどのようにSpring2.0に組み込まれるのですか?

それら三つのプロジェクトは全て、Spring1.2との互換性をできる限り保ちながらSpring2.0の機能を活用することになるでしょう。

Acegiは堅牢なソフトウェアで、Springのユーザの間では有名です。Spring2.0はAcegiの設定を簡略化する手段を特に提供しているので、Acegiはより多くのユーザを得ることができるはずです。

Spring Web Flowは人々が期待を寄せる次世代WEBアプリケーション開発テクノロジです。ユーザとの複数ステップにわたる対話を、他のどの技術よりもうまく結合してくれます。1.0 finalリリースでは、将来一層汎用的になることを目指し、プロダクトをうまく載せるための基礎を準備します。バージョン1.0はSpring2.0と同じタイムスケールで進行中です。次のリリース候補(RC4)は今週公開で、デフォルトを使用してフロー実行エンジンの設定を簡略化した Spring2.0用のXMLスキーマを導入しています。

Spring Web Servicesは最近現れ始めた新しいプロジェクトです。Javaを使った軽量なドキュメント駆動のWEBサービスの実装をサポートするために Spring上に構築されているものです。今後のバージョンではSpring2.0のWEBサポートやリモート連携の向上を生かすことになるでしょう。

一般に、Springフレームワークのコアはサービスの共通の基盤を提供していますが、より特定されたドメインを扱うためにサブプロジェクトでも利用されます。Spring2.0が、これらのサブプロジェクトやSpringコミュニティの他の新プロジェクトやエンドユーザの皆さんのために開いている新たな可能性に、私たちの胸は高鳴っています。

追加の情報源

最新のSpring2.0の機能の適用方法は今年12月に開催されるThe Spring Experience(source)カンファレンスで学べます。

Interface21(source)はSpringフレームワークを支援している企業で、Spring関連のトレーニングやコンサルティング、ワールドワイドなサポートサービスを提案しています。

最新のSpring2.0リリース候補はこちらからダウンロード(source)してください。

TopLink Essentials(サイト・英語)はOracle TopLinkのオープンソースのコミュニティエディションで、JPAの参照実装です。

Open JPA(サイト・英語)は、完全な仕様準拠を目指す、製品利用に適したエンタープライズ級のオープンソースJPA実装です。

Spring環境でJava Persistence Architecture (JPA)を始めましょう(source)

スタンドアロンのJMSプロバイダとSpring環境で実行可能な非同期メッセージリスナであるメッセージドリブンPOJOについて学びましょう(source)

こちらでSpring2.0とAspectJを使ったアスペクト指向プログラミングについてもっと読むことができます(source)

OSGiアライアンス(サイト・英語)は、OSGiプラットフォームをベースとしたアプリケーションの相互運用性にフォーカスを当てた技術的イノベーターで構成される独立した非営利団体です。

 

編集部より:本Articleは本来ニュース性のあるArticleでしたが、インタビューがあったのであえて掲載致しました。

原文はこちらです:http://www.infoq.com/articles/spring-2-update

(このArticleは2006年9月5日にリリースされました)

この記事に星をつける

おすすめ度
スタイル

BT