Spring Framework に対するオラクルのサポート Oracle ホワイト ペーパー 2007 年 5 月
Spring Framework に対するオラクルのサポート はじめに ソフトウェア開発という独自の世界では 選択の自由も抽象的な概念ではありません 要件に合った方法でのアプリケーション構築を可能にするテクノロジーやフレームワークを選ぶ自由は 絶対不可欠なものです オラクルはこの要求を理解しており Oracle Fusion Middleware スタックにおけるオープン ソース テクノロジーの開発 テスト 最適化 およびサポートに多大なリソースを継続的に投資しています このようなオープン ソース テクノロジーの 1 つが Spring Framework です この優れたアプリケーション フレームワークを利用すると 開発者は ハイエンドのアプリケーション サーバーに配置する高品質アプリケーションを迅速かつ容易に構築できます オラクルは Oracle Containers for J2EE(OC4J) アプリケーション サーバーに対して Spring ベースのアプリケーションのシームレスな配置と実行を可能にするため 多くのリソースを投資してきました ミッション クリティカルな環境でコストを削減し 開発生産性を上げるために 顧客は Oracle 製品を Spring Framework などのオープン ソース テクノロジーと組み合わせて使用しています 発展の要件 オープン ソース テクノロジーの人気は高まる一方です 実際に認識できるコスト削減から開発とサポートにおける高い柔軟性の要望まで 多くの要因がこの人気の原因となっています エンタープライズ アプリケーションの構築フレームワークとしての Spring の人気は ダウンロードが 100 万を超えていることからも明らかです 必要なフレームワーク部品を開発者が選択して使用できる明確な階層化アーキテクチャと 標準に準拠したサービス実装とシームレスに連携する抽象性を備えた Spring は 従来のモノリシックな Java アプリケーション設計フレームワークで実現できる代替手段を提供します どのテクノロジーについても同じことが言えますが オープン ソース フレームワークのユーザーは 多大なカスタマイズや構成をおこなわずに 実行時環境へ容易にアプリケーションを配置 実行 管理できることを求めています 何もしなくてもアプリケーションが機能することを望んでいるのです Spring Framework に対するオラクルのサポート 2
Spring Framework は OC4J などの標準に準拠したアプリケーション サーバーが提供する補完的な Java Enterprise Edition (Java EE) サービスを利用し このサービス上で実行するよう設計されています 標準 アプリケーション フレームワークは統合性に優れたコンポーネントのセットであり これを利用および拡張することで より容易かつ明確で管理しやすいアプリケーション構築が可能になります また アプリケーション構築の基盤となる一方で アプリケーションを機能させ 必要とされる基本的な低レベル サービスを提供するために フレームワークは堅牢な実行時環境に依存しています Spring は アプリケーション サーバーが提供する補完的な Java Enterprise Edition(Java EE) サービスを利用し このサービス上で実行するよう設計されています これらのサービスには データベース接続性 トランザクション管理 (JTA) Web サービス メッセージ (JMS) 永続性(JPA) およびアプリケーション管理があります Spring の長所の 1 つとして ベンダー独自の API に合わせてプログラミングしなくても アプリケーション サーバーが提供する標準 Java EE サービスを汎用的な方法で使用できる点があります このように アプリケーション サーバーのサービスへ依存するかどうかを開発者が選択できます 図 1:Oracle Containers for J2EE(OC4J) のランタイム内で実行される Spring ただし 成功と柔軟性を最大化するため Spring アプリケーションは Java EE に完全準拠したコンテナ上に配置されることがよくあります このコンテナは エンタープライズ クラスのアプリケーションで一般に必要とされるサービスや API を提供します Spring アプリケーションのプラグ アンド プレイを実現するため 配置に関しては J2EE Application Deployment 標準 (JSR-88) など また管理に関しては Java Management(JSR-77) や Java Management Extensions(JMX) などの標準仕様に J2EE 実行時環境を準拠させる必要があります これらの標準に準拠しない場合 開発者は 特定のアプリケーション サーバーへの配置を前提としてアプリケーションを設計することを余儀なくされま Spring Framework に対するオラクルのサポート 3
す これは 柔軟性に対する開発者コミュニティの要望に明らかに反しています 高品質なオープン ソース テクノロジーに対する総合的投資の一部として オラクルは Spring サポートを今後も拡張していきます オラクルの製品戦略 オラクルは コンピューティングに関して 顧客に選択 柔軟性 コスト削減をもたらす取組みを続けています オープン ソース テクノロジーへの投資を通じて オラクルは オープン ソース ソリューションをアプリケーション開発における実行可能な選択肢にできるよう努力しています Springの採用は この取組みを証明するものです このフレームワークは OC4J 上で完全に認証されており SpringベースのアプリケーションがOC4J サーバー上で意図したとおりに機能することが顧客に約束されています オラクルは Springの開発モデルを補完するJava EE 5.0 の主要 API(JPAなど ) とEJB 3.0 に焦点を当てているため 現在のリリースのOracle Containers for J2EE 10g Release 3(10.1.3.2) は Springアプリケーションに理想的なランタイムを提供します オラクルには Spring の開発元である Interface21 と緊密に協力してきた長い歴史があります Spring 1.2 リリース以降 このフレームワークは データ アクセスと永続性のソリューションとして Oracle TopLink をサポートしており Spring 開発者は 市場でもっとも堅牢でスケーラブルな永続性を実装できます Spring 2.0 の Java Persistence API(JPA) 統合を支援するため オラクルは Spring の開発チームとの密接な協業を続けてきました その結果として Spring 2.0 ディストリビューションには Java Persistence API(JPA) のリファレンス実装である TopLink Essentials が含まれており Spring から使用できます Spring は自然なトランザクション抽象化を提供しており 開発者がバックエンドのトランザクション エンジン プロバイダを選択できるため トランザクション アプリケーションの構築によく使用されます 拡張トランザクション管理をサポートするため OC4J 10.1.3.2 は Spring のトランザクション サブシステムとの緊密な統合機能を提供しています この統合により OC4J トランザクション マネージャに対する迅速なダイレクト アクセスが提供されるとともに Spring トランザクション ユーザーにそのほかの OC4J 機能が公開されます Spring は "Plain Old Java Object"(POJO) に基づくアプリケーション開発を可能にします Java EE 5 では EJB 3.0 により類似の POJO コンポーネント モデルがサブスクライブされ Spring とコンテナ間で以前よりも自然な統合ポイントが提供されます OC4J コンテナは Spring Bean をコンテナ内で統合コンポーネントとして使用するように拡張されています ほかに例を見ない方法で Java EE と Spring を統合したことで OC4J は両者の機能のスーパーセットを開発者に提供します OC4J ランタイムへの Spring 統合は 柔軟性に優れた OC4J クラスのローディング インフラストラクチャによって簡素化されています 開発者が簡単な共有ライブラリを構成することで Oracle Application Server クラス Spring Framework に対するオラクルのサポート 4
タ全体ですべてのアプリケーションから Spring を使用できるようになります OC4J 共有ライブラリ フレームワークでは アプリケーションによる複数の Spring バージョンの同時使用もサポートされます ロード時のバイトコード ウィービングが使用されるケースでは OC4J クラス ローダーのフレームワークにより ネイティブ クラスのローダー API への特別アクセスが Spring に与えられます この実装により Spring はコンテナ ランタイムのファーストクラス オブジェクトとして機能します Spring アプリケーションは ほかの Java EE アプリケーションと同様に Oracle Application Server クラスタに配置され その管理フレームワークに固有の機能を自動的に継承します Oracle の JSR-88 ベースの配置フレームワークは 配置時に記述子を編集し 再利用可能な配置計画に対して変更を持続する機能を提供します 特別な構成やコードなしで アプリケーションは OC4J ランタイムによって取得され 即座に使用可能になります アプリケーションを配置すると JMX ベースの Application Server Control 管理コンソールにより Oracle Application Server クラスタに配置された Spring アプリケーションの管理がサポートされます Spring フレームワークにより Spring Bean を管理リソース (MBean) としてコンソール経由で公開できるため Spring Bean を OC4J コンテナ内の標準リソースとして扱うことができます 開発プロセスに対するサポートを強化するため 無償の Oracle JDeveloper IDE 向けの Spring プラグインがリリースされており Oracle JDeveloper の "Check for Updates" 機能を使用して簡単にインストールできます このプラグインにより Oracle JDeveloper 内での Spring ライブラリの作成や Spring スキーマの透過的な登録などの拡張機能が提供されます そのほかの機能には Spring 構成ファイルの直接編集や Spring プロパティの検証機能がありますが これらはすべて Spring ユーザーにとって使用しやすい機能豊富な開発環境内で提供されます Oracle JDeveloper プラグインは Eclipse で現在提供されている Spring サポートを補完します Eclipse もまた OC4J ランタイムに Spring アプリケーションを構築および配置するために使用されています 結論 Spring は ミッション クリティカルなアプリケーションの構築フレームワークとして ビジネス コミュニティと開発コミュニティから明確に受け入れられてきました アプリケーション フレームワークにおける柔軟性と選択の自由に対する要望は増大する一方であり Spring Framework の人気がますます高まることにも疑いの余地はありません オラクルは エンタープライズ品質のソリューションを開発する際の実行可能な選択肢として このテクノロジーのサポートに引き続き取り組んでいきます Oracle Fusion Middleware は OC4J を介して Spring ベースのアプリケーションを配置 ホスティング および管理する業界屈指の実行時環境を今後も提供していく予定です Spring Framework に対するオラクルのサポート 5
Spring Framework に対するオラクルのサポート 2007 年 5 月著者 :Dan Hynes 共著者 :Mike Kieth Mike Lehmann Shaun Smith Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. 海外からのお問い合わせ窓口 : 電話 :+1.650.506.7000 ファクシミリ :+1.650.506.7200 www.oracle.com Copyright 2007, Oracle.All rights reserved. 本文書は情報提供のみを目的として提供されており ここに記載される内容は予告なく変更されることがあります 本文書は一切間違いがないことを保証するものではなく さらに 口述による明示または法律による黙示を問わず 特定の目的に対する商品性もしくは適合性についての黙示的な保証を含み いかなる他の保証や条件も提供するものではありません オラクル社は本文書に関するいかなる法的責任も明確に否認し 本文書によって直接的または間接的に確立される契約義務はないものとします 本文書はオラクル社の書面による許可を前もって得ることなく いかなる目的のためにも 電子または印刷を含むいかなる形式や手段によっても再作成または送信することはできません Oracle JD Edwards PeopleSoft および Siebel は 米国 Oracle Corporation およびその子会社 関連会社の登録商標です その他の名称はそれぞれの会社の商標です