• 検索結果がありません。

OSS モデルカリキュラムの 学 習 ガイダンス 3. IT 知 識 体 系 との 対 応 関 係 5-1- 基 開 発 フレームワークに 関 する 知 識 と IT 知 識 体 系 との 対 応 関 係 は 以 下 の 通 り 科 目 名 基 本 レベル

N/A
N/A
Protected

Academic year: 2021

シェア "OSS モデルカリキュラムの 学 習 ガイダンス 3. IT 知 識 体 系 との 対 応 関 係 5-1- 基 開 発 フレームワークに 関 する 知 識 と IT 知 識 体 系 との 対 応 関 係 は 以 下 の 通 り 科 目 名 基 本 レベル"

Copied!
23
0
0

読み込み中.... (全文を見る)

全文

(1)

OSS モデルカリキュラムの学習ガイダンス

5-1-基 開発フレームワークに関する知識

1. 科目の概要

開発フレームワークとは何か、その基本的な概念、歴史、特徴とメリットを解説する。 さらに開発フレームワークの種類や特徴を説明し、実際の1開発に役立てることができる知 識やノウハウを示す。

2. 習得ポイント

本科目の学習により習得することが期待されるポイントは以下の通り。 習得ポイント 説 明 シラバスの対応コマ 5-1-基-1.開発フレームワークの歴史、思想と背景 開発フレームワークとは何かを説明し、開発フレームワークの基本理念、目的、発展の歴史、開発フレームワークが登場した背景と思想について解説する。 1 5-1-基-2.開発フレームワークの特徴とメリット 開発フレームワークを利用した開発の特徴と、開発フレームワーク利用の効果、メリットにつ いて解説する。また代表的な開発フレームワークを紹介し、それぞれの歴史や背景、特徴、 利用上の注意点、開発フレームワークの選択方法、ライセンス形態などを説明する。 1 5-1-基-3.Webアプリケーションで利用できるOSSフレームワーク オープンソースによるWebアプリケーション開発フレームワークを紹介する。Struts、JSF、 iBATIS、Hibernate、Seasar2、Springといった代表的なフレームワークを紹介し、それぞれの 開発内容の違いについて解説する。 2 5-1-基-4.Tomcatの特徴とServlet/JSPによるアプリケーション開 発 Java Servlet/JSPコンテナの代表的なものとして、Tomcatを取り上げ、その位置づけ、特徴と Servlet/JSPによるWebアプリケーション開発の具体的な手順を説明する。 3 5-1-基-5.アプリケーションサーバJBossの機能と特徴 アプリケーションサーバについて、例として代表的なアプリケーションサーバであるJBossを取 り上げ、その位置づけ、特徴を解説する。またTomcatとの連携やEJBコンテナ機能、アプリ ケーションサーバ機能など、JBossの持つ様々な機能を紹介する。 3 5-1-基-6.MVCフレームワークの概要 MVCモデルを適用したWebアプリケーション用の開発フレームワークとしてWeb MVCフレー ムワークの概念を説明する。モデル、ビュー、コントローラのそれぞれの役割と、お互いの依 存性を低くしたことによる利点を解説する。 4,5,6,7,8 5-1-基-7.ORマッピングフレームワークの概要 オブジェクト指向アプリケーションのデータとして取り扱うオブジェクトと、リレーショナルデータ ベースに格納されるレコードとの対応を取るための仕組みであるORマッピングについて、基 本的な考え方やオブジェクトとレコードの対応関係、OSSによるORマッピングの実装例につ いて解説する。 9,10,11 5-1-基-8.DIxAOPフレームワークの概要

Dependency Injection (DI)とAspect Oriented Programming (AOP)の概念と利点を整理し、 新しいWebアプリケーションの基盤を成すDIxAOPコンテナの仕組みと基本的な構成、特徴 について解説する。 12,13 5-1-基-9.Spring Frameworkの利用 DIxAOPコンテナ実装のひとつであるSpring Framework の基本的な仕組みと基本的な構 成、特徴について解説する。またStrutsやHibernateなど他のフレームワークとの連携や開発 ツールなど、実際の利用に有効なトピックを紹介する。 14 5-1-基-10.Seasar2の構成と特徴 DIxAOPコンテナ実装のひとつであるSeasar2の基本的な仕組みと基本的な構成、特徴につ いて解説する。またStrutsやJSF、Hibernateなど他のフレームワークとの連携や開発ツール など、実際の利用に有効なトピックを紹介する。 15 ※ 【学習ガイダンスの使い方】 1. 「習得ポイント」により、当該科目で習得することが期待される概念・知識の全体像を把握する。 2. 「シラバス」、「IT 知識体系との対応関係」、「OSS モデルカリキュラム固有知識」をもとに、必要に応じて、 従来のIT 教育プログラム等との相違を把握した上で、具体的な講義計画を考案する。

(2)

3. IT 知識体系との対応関係

「5-1-基 開発フレームワークに関する知識」と IT 知識体系との対応関係は以下の通り。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5-1-基 開発フレーム ワークに関する知識 開発フレームワー クの概要と種類 オープンソースに よるWebアプリ ケーションのフ レームワーク OSSのWebコンテ ナ/J2EEコンテ ナの概要 Webアプリケー ションのMVCフ レームワークの概 要

Strutsの概要 JSFの概要 Tapestryの概要 Wicketの概要 ORマッピングの概要 Hibernateの概要 iBATISの概要 AOPとDIの概要 EJBとJBossSeamの概要 Spring Frameworkの概 要 Seasar2の概要 科目名 基本レベル <IT 知識体系上の関連部分> 科目名 1 2 3 4 5 6 7 8 9 10 11 12 13 1 IT-IAS 情報保証 と情報セキュリ ティ IT-IAS1.基礎的な 問題 IT-IAS2.情報セ キュリティの仕組 み(対策) IT-IAS3.運用上の 問題 IT-IAS4.ポリシー IT-IAS5.攻撃 IT-IAS6.情報セ キュリティ分野 IT-IAS7.フォレン ジック(情報証拠) IT-IAS8.情報の状 態 IT-IAS9.情報セ キュリティサービ ス IT-IAS10.脅威分 析モデル IT-IAS11.脆弱性 2 IT-SP 社会的な観 点とプロフェッ ショナルとしての 課題 IT-SP1.プロ フェッショナルと してのコミュニ ケーション IT-SP2.コン ピュータの歴史 IT-SP3.コン ピュータを取り巻 く社会環境 IT-SP4.チーム ワーク IT-SP5.知的財産 権 IT-SP6.コン ピュータの法的問 題 IT-SP7.組織の中 のIT IT-SP8.プロ フェッショナルと しての倫理的な問 題と責任 IT-SP9.プライバ シーと個人の自由 3 IT-IM 情報管理 IT-IM1.情報管理の概念と基礎 IT-IM2.データ ベース問合わせ言 語 IT-IM3.データ アーキテクチャ IT-IM4.データモ デリングとデータ ベース設計 IT-IM5.データと 情報の管理 IT-IM6.データ ベースの応用分野

4 IT-WS Webシステムとその技術 IT-WS1.Web技術 [1-Ⅰ-7] IT-WS2.情報アー キテクチャ [1-Ⅰ-7] IT-WS3.デジタル メディア IT-WS4.Web開発 IT-WS5.脆弱性 IT-WS6.ソーシャ ルソフトウェア 5 IT-PF プログラミング基礎 IT-PF1.基本データ構造 IT-PF2.プログラ ミングの基本的構 成要素 IT-PF3.オブジェ クト指向プログラ ミング IT-PF4.アルゴリ ズムと問題解決 IT-PF5.イベント 駆動プログラミン グ IT-PF6.再帰 6 IT-IPT 技術を統 合するためのプロ グラミング IT-IPT1.システム 間通信 [1-Ⅰ-3] IT-IPT2.データ割 り当てと交換 IT-IPT3.統合的 コーディング IT-IPT4.スクリプ ティング手法 IT-IPT5.ソフト ウェアセキュリ ティの実現 IT-IPT6.種々の問 題 IT-IPT7.プログラ ミング言語の概要

7 CE-SWE ソフトウェア工学 CE-SWE0.歴史と概 CE-SWE1.ソフトウェアプロセス CE-SWE2.ソフト ウェアの要求と仕 様 CE-SWE3.ソフト ウェアの設計 CE-SWE4.ソフト ウェアのテストと 検証 CE-SWE5.ソフト ウェアの保守 CE-SWE6.ソフト ウェア開発・保守 ツールと環境 [1-Ⅰ-4] CE-SWE7.ソフト ウェアプロジェク ト管理 CE-SWE8.言語翻訳 CE-SWE9.ソフト ウェアのフォール トトレランス CE-SWE10.ソフト ウェアの構成管理 CE-SWE11.ソフ トェアの標準化 [1-Ⅰ-6] 8 IT-SIA システム インテグレーショ ンとアーキテク チャ IT-SIA1.要求仕様IT-SIA2.調達/手 IT-SIA3.インテグ レーション [1-Ⅰ-4] IT-SIA4.プロジェ クト管理 IT-SIA5.テストと 品質保証 IT-SIA6.組織の特 性 IT-SIA7.アーキテ クチャ 9 IT-NET ネットワーク IT-NET1.ネット ワークの基礎 IT-NET2.ルーティ ングとスイッチン グ IT-NET3.物理層 IT-NET4.セキュリティ IT-NET5.アプリ ケーション分野 [1-Ⅰ-5] IT-NET6.ネット ワーク管理 CE-NWK0.歴史と概 要 CE-NWK1. 通信 ネットワークの アーキテクチャ CE-NWK2.通信ネッ トワークのプロト コル CE-NWK3.LANとWAN CE-NWK4.クライア ントサーバコン ピューティング [1-Ⅰ-3] CE-NWK5.データの セキュリティと整 合性 CE-NWK6.ワイヤレ スコンピューティ ングとモバイルコ ンピューティング CE-NWK7.データ通 信 CE-NWK8.組込み機 器向けネットワー ク CE-NWK9.通信技術 とネットワーク概 要 CE-NWK10.性能評 価 CE-NWK11.ネット ワーク管理 CE-NWK12.圧縮と 伸張 CE-NWK13.クラス タシステム CE-NWK14.イン ターネットアプリ ケーション [1-Ⅰ-5,7] CE-NWK15.次世代 インターネット CE-NWK16.放送 11IT-PT プラットフォーム技術 IT-PT1.オペレー ティングシステム [1-Ⅰ-3] IT-PT2.アーキテ クチャと機構 IT-PT3.コン ピュータインフラ ストラクチャ IT-PT4.デプロイ メントソフトウェ ア [1-Ⅰ-4] IT-PT5.ファーム ウェア IT-PT6.ハード ウェア

12CE-OPS オペレーティングシステムCE-OPS0.歴史と概 CE-OPS1.並行性 CE-OPS2.スケ ジューリングと ディスパッチ CE-OPS3.メモリ管 理 CE-OPS4.セキュリ ティと保護 CE-OPS5.ファイル 管理 CE-OPS6.リアルタ イムOS CE-OPS7.OSの概要 CE-OPS8.設計の原 則 CE-OPS9.デバイス 管理 CE-OPS10.システ ム性能評価 コ ン ピュ ー タ ハー ド ウェ ア と アー キ テ ク チャ 13 CE-CAO コン ピュータのアーキ テクチャと構成 CE-CAO0.歴史と概 要 CE-CAO1.コン ピュータアーキテ クチャの基礎 CE-CAO2.メモリシ ステムの構成と アーキテクチャ CE-CAO3.インタ フェースと通信 CE-CAO4.デバイス サブシステム CE-CAO5.CPUアー キテクチャ CE-CAO6.性能・コ スト評価 CE-CAO7.分散・並 列処理 CE-CAO8.コン ピュータによる計 算 CE-CAO9.性能向上 14IT-ITF IT基礎 IT-ITF1.ITの一般 的なテーマ [1-Ⅰ-4] IT-ITF2.組織の問 題 IT-ITF3.ITの歴史 IT-ITF4.IT分野 (学科)とそれに関 連のある分野(学 科) IT-ITF5.応用領域 IT-ITF6.IT分野に おける数学と統計 学の活用 CE-ESY0.歴史と概 要 CE-ESY1.低電力コ ンピューティング CE-ESY2.高信頼性 システムの設計 CE-ESY3.組込み用 アーキテクチャ CE-ESY4.開発環境 CE-ESY5.ライフサ

イクル CE-ESY6.要件分析 CE-ESY7.仕様定義 CE-ESY8.構造設計 CE-ESY9.テスト CE-ESY10.プロ ジェクト管理 CE-ESY11.並行設 計(ハードウェ ア、ソフトウェア CE-ESY12.実装 CE-ESY13.リアル タイムシステム設 計 CE-ESY14.組込み マイクロコント ローラ CE-ESY15.組込み プログラム CE-ESY16.設計手 法 CE-ESY17.ツール によるサポート CE-ESY18.ネット ワーク型組込みシ ステム CE-ESY19.インタ フェースシステム と混合信号システ ム CE-ESY20.センサ 技術 CE-ESY21.デバイ スドライバ CE-ESY22.メンテ ナンス CE-ESY23.専門シ ステム CE-ESY24.信頼性 とフォールトトレ ランス 複 数 領 域 に ま た が る も の 15CE-ESY 組込みシステム シ ス テ ム 基 盤 10CE-NWK テレコミュニケーション 分野 組 織 関 連 事 項 と 情 報 シ ス テ ム 応 用 技 術 ソ フ ト ウェ ア の 方 法 と 技 術

(3)

OSS モデルカリキュラムの学習ガイダンス

4. OSS モデルカリキュラム固有の知識

OSS モデルカリキュラム固有の知識として、具体的な Java 言語の開発フレームワークに 関する知識がある。ここで扱うフレームワークの実装は、一般的な開発フレームワークの 考え方を踏襲したものである。 科目名 第1回 第2回 第3回 第4回 第5回 第6回 第7回 (1) 開発フレームワー クの特徴 (1) Webアプリケー ションとオープンソース フレームワーク

(1) Tomcat (1) WebMVCの概念 (1) Strutsとは (1) JSFとは (1) Tapestryとは (2) 開発フレームワー クの特性 (2) WebMVCフレーム ワーク (2) Jboss (2) 実装のプロセス (2) JSPのカスタムタ グライブラリ (2) JSPのカスタムタ グライブラリ (2) HTMLテンプレート (3) どのようにフレー ムワークを選択し、利 用するか (3) Webアプリケー ション構築で利用され る代表的なオープン ソースフレームワーク (3) Winstone (3) MyFaceとは (4) ライセンス形態 (4) それぞれの開発 内容の違い (5) 基本的なアプリ ケーション記述の例 (6) サンプルプログラ ム 第8回 第9回 第10回 第11回 第12回 第13回 第14回 第15回 (1) Wicketとは (1) OR (2) 代表的なORマッ ピングライブラリ/フ レームワーク

(1) iBATISの概要 (1) DIxAOPの機能 (1) EJB3とは (1) Spring Frameworkの構成と特 徴、メリット (1) Seasar2の構成と 特徴、メリット (2) 代表的なORマッ ピングライブラリ/フ レームワーク (2) オブジェクトとリ レーションのマッピング 仕様 (2) オブジェクトとリ レーションのマッピング 仕様 (2) 実装フレームワー ク

(2) JBoss Seamとは (2) DIxAOP以外の主 な機能 (2) DIxAOP以外の主 な機能 (3) マッピングファイル の作成 (3) 開発ツール (3) 開発ツール (3) 開発ツール (4) ライセンス (4) ライセンス (4) ライセンス (5) 公式サイトとリファ レンス紹介 (5) 公式サイトとリファ レンス紹介 (5) 公式サイトとリファ レンス紹介 5-1-基 開発フレーム ワークに関する知識 (網掛け部分はIT 知識体系で学習できる知識を示し、それ以外は OSS モデルカリキュラム固有の知識を示している)

(4)

開発体系分野 5-1-基 開発フレームワークに関する知識 基本 習得ポイント 5-1-基-1. 開発フレームワークの歴史、思想と背景 対応する コースウェア 第 1 回 開発フレームワークの概要と種類

5-1-基-1. 開発フレームワークの歴史、思想と背景

開発フレームワークとは何かを説明し、開発フレームワークの基本理念、目的、発展の歴史、開発 フレームワークが登場した背景と思想について解説する。 【学習の要点】 * 開発フレームワークとは、アプリケーションソフトを開発する際に頻繁に必要とされる汎用的な機 能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことである。 * 開発フレームワークは、ソフトウェア開発におけるさまざまな経験を踏まえ、開発生産性を向上さ せようとする試みの中で、長い時間をかけて発展してきた。 図 5-1-基-1 開発フレームワークの背景

(5)

【解説】 1) 開発フレームワークとは 開発フレームワークとは、アプリケーションを開発する場合に必要となる部品や、実装上のアウトラ イン、および、制約を提供するもので、ソフトウェア開発における生産性や保守性の向上を目的と する。アプリケーションの骨組み部分が洗練された形であらかじめ提供されているため、開発担当 者のスキルに依存する新規開発部分の割合を減らすことが可能で、結果として設計レベルの欠陥 を最小限にとどめ、一定の成果物品質を維持できる。 2) 開発フレームワークの基本構成 開発フレームワークは、フローズンスポットとホットスポットから構成される。 * フローズンスポット アプリケーションによらず常に必要となる機能を有した部分であり、固有のアプリケーションを開 発する際には変更の必要がないものをいう。開発フレームワークでは、これらの機能をそのまま 提供する。 * ホットスポット アプリケーションによって個別に開発される部分。開発フレームワークでは、この部分を実装上 の制約という形で提供する。フレームワークが規定する制約に則ってホットスポット部分を実装 することにより、初めて開発フレームワークの利点を享受することができる。 フローズンスポットの占める割合がホットスポットのそれに対して大きければ大きいほど、固有のア プリケーション開発時の工数は少なくなり、より高い開発生産性を得られる。しかしそれと同時に、フ レームワークによる制約が多くなるため、そのフレームワークを適用できるアプリケーションは限定さ れ、汎用性を失ってしまう。このように、フレームワークの汎用性と、そのフレームワークを適用した ことにより得られる開発生産性の向上度合いは、常にトレードオフの関係にある。 3) 開発フレームワーク発展の背景 開発フレームワークは、ソフトウェア開発において先人の知恵を再利用し、開発生産性を向上させ ようとする試みの中で、長い時間をかけて発展してきたものである。特に GUI アプリケーションの開 発における定型処理を標準化しようとする動きの中で、1980 年に発表された統合開発環境である、 Smalltalk において取り入れられた MVC(Model/View/Controller)の概念は、現在では GUI アプリケ ーションに留まらず、Web アプリケーション開発に用いられるフレームワークにも大きな影響を与え ている。

(6)

開発体系分野 5-1-基 開発フレームワークに関する知識 基本 習得ポイント 5-1-基-2. 開発フレームワークの特徴とメリット 対応する コースウェア 第 1 回 開発フレームワークの概要と種類

5-1-基-2. 開発フレームワークの特徴とメリット

開発フレームワークを利用した開発の特徴と、開発フレームワーク利用の効果、メリットについて解 説する。また代表的な開発フレームワークを紹介し、それぞれの歴史や背景、特徴、利用上の注意 点、開発フレームワークの選択方法、ライセンス形態などを説明する。 【学習の要点】

* Web MVC フレームワークを導入すれば、Model と View とを記述すればよく、Controller 部分の 開発工数を節約できる。 * O/R マッピングフレームワークを導入すれば、オブジェクトと関係データベースとのインピーダン スミスマッチを解消できる。 * DI コンテナを導入すれば、オブジェクト間の依存関係の管理を DI コンテナに移譲でき、オブジ ェクト間の依存性を疎に保つことができる。 図 5-1-基-2 代表的なフレームワーク

(7)

【解説】 1) 開発フレームワークの種類と特徴 Web アプリケーション開発でよく用いられている開発フレームワークには、Web MVC フレームワー ク、O/R マッピングフレームワーク、DI コンテナがある。 * Web MVC フレームワーク Web MVC フレームワークは、MVC モデルを適用した Web アプリケーション用の開発フレームワ ークである。一般的な Web MVC フレームワークでは、Controller をフローズンスポットとしてフレ ームワーク側で提供し、残りの Model と View をホットスポットとしてアプリケーションごとに開発す る。Web MVC フレームワークの代表的なものとして Struts があり、Struts が普及して以来、PHP の Zend Framework や Ruby の Ruby on Rails など、他の言語でも Web MVC フレームワークが 開発され、普及していった。 * O/R(オブジェクト/関係)マッピングフレームワーク O/R マッピングフレームワークは、オブジェクト指向言語におけるオブジェクトと関係データベー スのデータ構造の差異を吸収し、自動変換を行う機能を有した開発フレームワークである。オブ ジェクト指向言語で関係データベースを扱う場合、データモデルの設計思想の違いから、オブ ジェクトとデータベース・テーブルとのマッピングのために、毎回煩雑な処理を行わなければな らない。このデータモデルの設計思想の違いからくる概念モデル構造と論理データベース構造 の違いをインピーダンスミスマッチというが、O/R マッピングフレームワークでは、このマッピング における定型処理をフローズンスポットとして提供し、インピーダンスミスマッチを解消する手助 け を す る 。 Java で は 元 々 、 イ ン ピ ー ダ ン ス ミ ス マ ッ チ を 解 消 す る た め の 仕 組 み と し て 、 EJB(Enterprise Java Beans)における Entity Bean があった。しかしこの EJB は、分散オブジェクト としての性質も併せ持つなど、単なるオブジェクトとリレーショナルデータのマッピングツールとし ては複雑過ぎ、中小規模の開発を主とする多くの開発者には受け入れられなかった。このよう な中、もっと簡単に O/R マッピングを実現したいという要望から、Apache Torque をはじめ、現在 よく使われている Hibernate や iBATIS などの O/R マッピングフレームワークが開発され、その 後、他の言語でも ActiveRecord など同様のものが開発されていった。なお、現在の EJB 最新仕 様である EJB3 では、過去の教訓から Hibernate などの O/R マッピングフレームワークの影響を 大きく受けており、従来に比べて大幅に利用しやすくなっている。 * DI(Dependency Injection)コンテナ DI コンテナは、オブジェクト間の依存関係を設定ファイルに記述することで、依存関係の管理を DI コンテナに移譲することができる仕組みを持つ開発フレームワークである。IoC(Inversion of Control)コンテナ、軽量コンテナ、DI フレームワークなどとも呼ばれる。他のオブジェクトを呼び 出す際には抽象的な名前とインタフェースのみを利用し、どの具象クラスを用いてどのような初 期化を行ったオブジェクトを用いるかは、全て DI コンテナが外部から注入してくるのに任せる。 このような仕組みを利用して開発することで、他の具象クラスに依存したコードを排除し、オブジ ェクト間の依存性を疎に保つことができる。Java における EJB も、同様の機能を有するが、O/R マッピングフレームワークの項でも述べた通り、EJB は汎用的な反面、非常に複雑で扱いづらい 仕様であった。DI コンテナの代表的な実装として Spring があるが、Spring はこの複雑すぎる EJB の代替として、個人により開発が開始され、以降オープンソースプロジェクトとして急速に成長し、 普及していった。日本でも、オープンソースのプロジェクトで開発が進められている DI コンテナ として、Seasar2 がある。

(8)

開発体系分野 5-1-基 開発フレームワークに関する知識 基本 習得ポイント 5-1-基-3. Web アプリケーションで利用できる OSS フレームワーク 対応する コースウェア 第 2 回 オープンソースによる Web アプリケーションのフレームワーク

5-1-基-3. Web アプリケーションで利用できる OSS フレームワーク

オープンソースによる Web アプリケーション開発フレームワークを紹介する。Struts、JSF、iBATIS、 Hibernate、Seasar2、Spring といった代表的なフレームワークを紹介し、それぞれの開発内容の違い について解説する。 【学習の要点】

* Struts は Java の Web MVC フレームワークとして広く利用されている。

* Hibernate は Java の O/R マッピングフレームワークとして広く利用されている。

* iBATIS は Hibernate などと異なり SQL を直接記述できるので、柔軟なデータベースアクセスが 可能である。 * Seasar2 は国産の DI コンテナで、日本語ドキュメントが非常に豊富である。 図 5-1-基-3 開発フレームワークの主な OSS 実装 種類 Web MVC フレームワーク Struts JSF (Sun の参照実装) Apache MyFaces ICEFaces DIコンテナ O/Rマッピング フレームワーク 名称 Hibernate iBATIS Seasar2 Spring Framework 特徴 Servlet/JSP を利用、設定をXML で記述 JSF準拠 JSF準拠 JSF準拠 O/R マッピングをXML で記述 SQL 文を直接記述可能

国産、AOP サポート、Less Configuration思想 AOP サポート、MVC フレームワーク内包

(9)

【解説】

1) OSS の Web MVC フレームワーク

* Struts(Apache Struts) http://struts.apache.org/

Struts は、Servlet と JSP の技術を用いて Web アプリケーションを開発する際に利用する、Web MVC フレームワークで、Apache ソフトウェア財団のトップレベルプロジェクトとして開発が進めら れている。Struts を利用して Web アプリケーションを開発する際には、Model 部分である Action クラス、View 部分である JSP ページと View に埋め込まれる ActionForm クラスを作成し、これら の関連を XML の設定ファイルに記述する。

* JSF(JavaServer Faces) http://java.sun.com/javaee/javaserverfaces/

JSF は、JSR(Java Specification Request)に定められた Java における Web MVC フレームワーク の標準仕様である。JSF では、Web ページ表示を構成するコンポーネントを UI コンポーネントと 呼び、高度に抽象化されている。また、標準で JSP カスタムタグライブラリを提供しているが、 View 部分に JSP を強制するわけではなく、別のものに置き換えることも可能である。JSF の代表 的な OSS 実装は以下の通りである。

- Sunの参照実装 http://java.sun.com/javaee/javaserverfaces/download.html

- Apache MyFaces http://myfaces.apache.org/

- ICEfaces http://www.icefaces.org/main/home/ 2) OSS の O/R マッピングフレームワーク * Hibernate http://www.hibernate.org/ Hibernate は、オブジェクトのプロパティと関係データベースのカラムとのマッピングを XML で記 述しておくことで、O/R マッピングを Hibernate に移譲できる。 * iBATIS http://ibatis.apache.org/ iBATIS は Apache ソフトウェア財団のトップレベルプロジェクトとして開発が進められている。 Hibernate などと異なり、SQL 文と、その SQL 文を呼び出すメソッド名、および SQL 文の実行結 果として取得された結果セットのマッピング先クラス名を XML で記述し、O/R マッピングを実現 する。SQL 文を直接記述できるため、柔軟なデータベースアクセスを行いつつ、ソースコードか らはインピーダンスミスマッチの問題を排除できる。 3) OSS の DI コンテナ * Seasar2 http://s2container.seasar.org/

Seasar2 は、DI と AOP(アスペクト指向プログラミング)をサポートした軽量コンテナである。O/R マ ッピングフレームワークである S2Dao や S2JDBC や、JSF 実装の Teeda など、サブプロジェクト で連携先エンジンが開発されているほか、S2JSF や S2Struts、S2Hibernate などを使用すること により、他のエンジンとシームレスに統合できる。設計思想として Less Configuration を掲げてお り、大抵のアプリケーションで同様であろう部分は、極力設定をしなくても動作するように意識さ れている。国産であるため、日本語ドキュメントが非常に豊富である。

* Spring Framework http://www.springframework.org/

Spring Framework は、DI と AOP をサポートした軽量コンテナで、JDBC によるデータベースアク セスを抽象化するレイヤや MVC フレームワークを内包している。また Struts や Hibernate との連 携機能を持つ。

(10)

開発体系分野 5-1-基 開発フレームワークに関する知識 基本 習得ポイント 5-1-基-4. Tomcat の特徴と Servlet/JSP によるアプリケーション開発 対応する コースウェア 第 3 回 フリーの Web コンテナ/J2EE コンテナの概要

5-1-基-4. Tomcat の特徴と Servlet/JSP によるアプリケーション開発

Java Servlet/JSP コンテナの代表的なものとして、Tomcat を取り上げ、その位置づけ、特徴と Servlet/JSP による Web アプリケーション開発の具体的な手順を説明する。

【学習の要点】

* Tomcat は Java Servlet/JSP コンテナとして、高いシェアを誇り、事実上の標準となっている。 * Tomcat の実行モードには、スタンドアロン、内部プロセス、外部プロセスの 3 つがあるが、内部

プロセスにより、Apache HTTP Server と連携させる方法が主流である。

(11)

【解説】

1) Tomcat の特徴

http://tomcat.apache.org/

Tomcat (Apache Tomcat)は、Java Servlet と JSP のコンテナ(実行環境)であり、Java Servlet と JSP 技術の公式な参照実装(ソースコードレベルで参照できる実装)として使われている。ASF(Apache ソ フトウェア財団)が運営するプロジェクトで開発されている OSS であり、Apache ソフトウェアライセンス に基づいてリリースされている。

2) Tomcat の位置づけ

Tomcat は実行モードによって 3 つの位置づけがある。Apache HTTP Server と連携する内部プロセ ス型がもっとも多く利用されている。

* スタンドアロン型

Tomcat 自体に Web サーバの機能が内蔵されており、Java ベースの Web アプリケーションであ れば、別途 Web サーバを導入することなく利用することができる。

* 内部プロセス型

他の Web サーバ上で Tomcat を実行することで、その Web サーバと連携する。 * 外部プロセス型

他の Web サーバとは別に Tomcat を実行し、プロセス間通信によってその Web サーバと連携す る。内部プロセス型に比べ、処理速度は落ちるが、安定性や拡張性の点でメリットがある。 3) Servlet/JSP による Web アプリケーション開発

Servlet/JSP による Web アプリケーションを Tomcat で動作させるには、基本的には以下のような手 順で行う。

* アプリケーション用ディレクトリ作成

アプリケーションを配置するディレクトリを作成し、アプリケーション(JSP ファイルや class ファイル) を配置する。

* WEB-INF 作成

WEB-INF ディレクトリを作成し、WEB-INF ディレクトリ下に web.xml を作成する。web.xml には、 Servlet/JSP のマッピング情報などを記述する。 * server.xml 編集 Tomcat をインストールしたディレクトリ下の conf/server.xml を編集し、アプリケーション用ディレ クトリを登録する。 * 他の Web サーバの設定 他の Web サーバと連携する場合、その Web サーバ経由でアクセスできるよう設定する。 * Tomcat 再起動

(12)

開発体系分野 5-1-基 開発フレームワークに関する知識 基本 習得ポイント 5-1-基-5. アプリケーションサーバ JBoss の機能と特徴 対応する コースウェア 第 3 回 フリーの Web コンテナ/J2EE コンテナの概要

5-1-基-5. アプリケーションサーバ JBoss の機能と特徴

アプリケーションサーバについて、例として代表的なアプリケーションサーバである JBoss を取り上 げ、その位置づけ、特徴を解説する。また Tomcat との連携や EJB コンテナ機能、アプリケーション サーバ機能など、JBoss の持つ様々な機能を紹介する。 【学習の要点】 * Java EE 規格に準拠したソフトウェアは Java アプリケーションサーバと呼ばれ、アプリケーション サーバの主流をなす。 * JBoss は、欧米では企業システムや政府機関システムでの導入実績もあり、他の商用アプリケー ションサーバに劣らない機能と性能を実現している。 図 5-1-基-5 JBoss の構成

(13)

【解説】

1) JBoss とは

JBoss (JBoss Application Server)は、OSS の Java アプリケーションサーバである。Java アプリケーシ ョンサーバとは、Java EE に準拠したソフトウェアを指す名称である。JBoss は LGPL ライセンスで提 供される。

2) JBoss の位置づけと特徴

JBoss には Web コンテナ(Tomcat)やデータベース管理システム(HSQLDB)が同梱されているので、 JBoss を導入するだけで Web アプリケーションの動作環境が構築できるようになっている。また、プ ログラムをアップデートする際、特定のディレクトリにファイルを設置すれば、JBoss が自動でデプロ イする。JBoss 本体を動作させたままプログラムのアップデートが可能なため、この機能は「ホットデ プロイ」と呼ばれる。

3) Java EE (Java Platform, Enterprise Edition)

Java EE は、Java SE(Java Platform, Standard Edition)を主に企業の大規模システム向けに拡張した、 Java の機能セットの仕様であり、次のような機能(抜粋)が定められている。

* Web コンテナ(Java Servlet、JSP のサポート) * EJB(Enterprise JavaBeans)コンテナ

* JMS(Java Message Service)による非同期メッセージ通信

* JAAS(Java Authentication and Authorization Service)や JACC(Java Authorization Contract for Containers)による認証

* JMX(Java Management Extensions)によるシステム管理

* Java RMI(Remote Method Invocation)や IIOP(Internet Inter-ORB Protocol)による分散処理 4) Tomcat との連携

JBoss のパッケージには Tomcat が同梱されており、Tomcat と連携することで、Web コンテナの機能 を実現している。

5) EJB コンテナ

JBoss は EJB コンテナ機能を有する。EJB とは、JavaBeans(Java アプリケーション開発における部品 の作成や利用に関する規格)を企業向けに拡張した仕様である。EJB では、ネットワークシステムに おけるサーバプログラミングのための機能が追加されており、セッション処理のための Session Bean、 データ保存のための Entity Bean、非同期処理などのための MDB(Message-Driven Bean)の 3 つに 大別される。EJB は低レベル処理の一切を引き受けているので、開発者はビジネスロジックだけに 専念することができる。

(14)

開発体系分野 5-1-基 開発フレームワークに関する知識 基本 習得ポイント 5-1-基-6. MVC フレームワークの概要 対応する コースウェア 第 4 回 Web アプリケーションの MVC フレームワーク概要 第 5 回 Struts の概要 第 6 回 JSP の概要 第 7 回 Tapestry の概要 第 8 回 Wicket の概要

5-1-基-6. MVC フレームワークの概要

MVC モデルを適用した Web アプリケーション用の開発フレームワークとして Web MVC フレームワ ークの概念を説明する。モデル、ビュー、コントローラのそれぞれの役割と、お互いの依存性を低く したことによる利点を解説する。 【学習の要点】 * Web MVC により役割を分離させることで、プログラムに変更があった場合に他の役割への影響 を抑えることができる。 * モデルはデータとビジネスロジックを担当し、処理の中核となる。 * ビューは UI への出力を担当する。 * コントローラはユーザの入力イベントを受け取り、それに対応したモデルとビューの制御を行う。 図 5-1-基-6 Web MVC モデル

(15)

【解説】 1) Web MVC の概念 MVC モデルはアプリケーションの構造を表し、M(モデル)、V(ビュー)、C(コントローラ)のそれぞれ の機能を明確に分離し、互いの依存性を低下させる。MVC モデルを採用することで設計・実装の 分業や各機能の交換・再利用が容易になる利点がある。 2) モデルの役割 モデルはデータ管理とビジネスロジックを受け持ち、アプリケーションの中核となる。 * データ管理 データベースとの連携を行い、UI 以外のデータの入出力を管理する。 * ビジネスロジック アプリケーションの具体的な処理を行う。 3) ビューの役割 ビューは出力を受け持つ。表示のためにモデルから値を受け取る。 Web アプリケーションにおいては、ブラウザへ HTML 型式で出力を行う。 4) コントローラの役割 コントローラはアプリケーション全体の制御を受け持ち、モデルとビューの連絡を行う。 * 入力受付 クライアントからのリクエストを受け付けたり、フォームからの入力パラメータを受け取ったりする。 * ビジネスロジックの依頼 リクエストの内容を判断し、適切なビジネスロジックの実行をモデルに依頼する。また、ビジネス ロジックを処理した結果を受け取る。 * 画面遷移 ビジネスロジックの実行結果に応じて、結果の出力をビューに依頼する。 5) サービス指向 ビジネスロジックをモデルとコントローラのどちらに記述すべきという点については様々な意見が存 在する。これに対する答えの一つとして、ビジネスロジックを分離し、サービスという形でモデルとコ ントローラの間に位置付ける設計モデルが存在する。

(16)

開発体系分野 5-1-基 開発フレームワークに関する知識 基本 習得ポイント 5-1-基-7. OR マッピングフレームワークの概要 対応する コースウェア 第 9 回 OR マッピングの概要 第 10 回 Hibernate と JPA の概要 第 11 回 iBATIS の概要

5-1-基-7. OR マッピングフレームワークの概要

オブジェクト指向アプリケーションのデータとして取り扱うオブジェクトと、リレーショナルデータベース に格納されるレコードとの対応を取るための仕組みである OR マッピングについて、基本的な考え方 やオブジェクトとレコードの対応関係、OSS による OR マッピングの実装例について解説する。 【学習の要点】 * オブジェクト指向言語を用いてリレーショナルデータベースを利用するアプリケーションを開発し た場合、オブジェクトとデータベースのデータ構造の違いが問題となる場合がある。

* OR マッピング(Object Relational Mapping)はオブジェクトとリレーショナルデータベースの相互 変換を行う仕組みである。

* OR マッピングではクラスがテーブル、インスタンスが行、インスタンスの属性が列に対応する。

(17)

【解説】 1) オブジェクト指向とリレーショナルデータベース オブジェクト指向言語を用いてリレーショナルデータベースを利用するアプリケーションを開発した 場合、データ構造がアプリケーション内とデータベース内に二重に存在することになる。これらのデ ータ構造の間に互換性がない(インピーダンスミスマッチ)ため、データ構造間の変換処理が必要 となる。また、変換処理のほかにも、アプリケーション内のデータとデータベース内のデータの同期 処理、データの一貫性を確保するための仕組みなど、煩雑な処理を必要とする場合が多く、開発 者の負担となりやすい。 2) OR マッピング OR マッピングとは、オブジェクト指向言語におけるデータ構造と、リレーショナルデータベースのデ ータ構造の違いを吸収し、相互変換を可能とする仕組みである。OSS を含め様々な実装が存在し、 無償で利用可能なものも多い。これらを利用することで開発者の負担を削減することができる。 3) OR マッピングの基本 OR マッピングの利用方法として、多くのライブラリ/フレームワークに共通する要素を以下にあげ る。 * オブジェクト指向のクラスは、データベースのテーブルに対応する。 * インスタンスは、データベースの行に対応する。 * インスタンス属性は、データベースの列に対応する。 * データの検索結果はインスタンスのセットとして返却される。 * データの更新は、検索によって得られたインスタンスの属性値を変更することによって行う。 4) OR マッピングの実装 OR マッピングを実現するライブラリ/フレームワークの例を以下にあげる。 * JPA(Java Persistent API)

EJB3 の仕様の一部であり、EJB3 に準拠したコンテナで利用することができる。J2SE 5.0 仕様で 導入されたアノテーション(あるデータに対してメタデータとして注釈を付与すること)を利用して クラスとテーブルを関連付ける。

* Hibernate

Java で利用可能な OR マッピングフレームワークのうち、最も広く利用されているものの一つ。 Hibernate 本来の API のほかに JPA に準拠したインタフェースも提供する。

* iBATIS 検索に利用する SQL を設定ファイル内に明示する、という特徴を持つ OR マッピングフレームワ ークであり、Java から利用できる。SQL の知識を活かした性能チューニングが行いやすい。 * ActiveRecord Ruby on Rails に含まれている OR マッピングライブラリ。クラスとテーブルの関連付けを規約によ って行うため、設定ファイルやソースコードの記述量を大幅に削減できる。

(18)

開発体系分野 5-1-基 開発フレームワークに関する知識 基本 習得ポイント 5-1-基-8. DIxAOP フレームワークの概要

対応する コースウェア

第 12 回 AOP と DI の概要

第 13 回 EJB と JBoss Seam の概要

5-1-基-8. DIxAOP フレームワークの概要

Dependency Injection (DI)と Aspect Oriented Programming (AOP)の概念と利点を整理し、新しい Web アプリケーションの基盤を成す DIxAOP コンテナの仕組みと基本的な構成、特徴について解説 する。

【学習の要点】

* Dependency Injection(DI)はオブジェクト間の依存関係を実行時に自動的に解決する仕組みで ある。

* Aspect Oriented Programming(AOP)は、ログの出力や例外処理のような、アプリケーション中の 複数の箇所で横断的に利用される共通処理を分離することで、プログラムのモジュール性を高 めようとするプログラミング方法である。

* DI と AOP の実行環境を提供するフレームワークとして Seasar2 や Spring などがある。

(19)

【解説】 1) DI(Dependency Injection) DI とは、プログラムのモジュール間の依存関係を実行時に解決する仕組みである。例えばオブジ ェクト A がオブジェクト B に依存している(オブジェクト A がオブジェクト B を利用している)場合、オ ブジェクト A がオブジェクト B を生成した上で利用するという方法が考えられる。この方法の欠点は、 オブジェクト A がオブジェクト B に関する情報をソースコード中に持っていなければならない、という 部分にある。もしオブジェクト A がオブジェクト B の代わりに別なオブジェクトを利用する必要が生じ た場合、オブジェクト A のソースコードを修正しなければならない。DI を利用した場合、依存するオ ブジェクトの生成手続きは実行環境によって自動的に行われる。そのため、オブジェクト同士の依 存関係をソースコード中に記述する必要が無い。これにより、ソフトウェアのコンポーネント化が促 進され、保守のしやすい構造を実現できる。また、JNDI(Java Naming and Directory Interface)を利 用した場合のような、煩雑な生成手続きを省略することが可能になる。 2) DI の実現 DI の実現方法として、オブジェクトの依存関係を設定ファイル、またはアノテーションに記述してお く方法が利用されている。DI コンテナは設定ファイル、およびアノテーションに基づいてオブジェク トの生成と注入を行う。Seasar2 のように、コンテナが自動的に依存関係の解決を行う実装も存在す る。注入の方式として、setter メソッドを利用する場合や、コンストラクタを利用する場合などがある。 3) AOP(Aspect Oriented Programming)

AOP とは、プログラム中で横断的に利用される機能をアスペクトとして分離する手法である。AOP を 利用することで、問題領域に特化したロジック部分を変更することなく、プログラムの複数の部分で 利用される機能の修正、追加を行うことが容易になる。アスペクトとして扱うことが可能な機能の例と しては、ログの出力や例外処理などがあげられる。 4) AOP の実現 AOP の実現方法として、アスペクトとなる処理を行うメソッドを実装したクラスを用意し、設定ファイル、 またはアノテーションで実行条件に関する設定を行う方法が利用されている。AOP コンテナは設定 ファイル、およびアノテーションに基づいて、アスペクトを適用する。AOP を利用する上で必要な概 念を以下に示す。 * Advice アスペクトが行う処理と、実行するタイミングを表す。この場合のタイミングとは、例えば後述する Pointcut としてあるメソッドが指定された場合に、処理が実行されるのはメソッドの呼び出し前か、 呼び出し後か、といった情報である。 * Joinpoint Advice を適用可能な場所を表す。一般的な Joinpoint としては、メソッド呼び出しなどがあげられ る。 * Pointcut Joinpoint のうち、実際に Advice を適用する場所を表す。具体的なメソッド名で指定する場合や、 正規表現によって複数のクラス、メソッドなどを指定する場合がある。 * Aspect

(20)

開発体系分野 5-1-基 開発フレームワークに関する知識 基本 習得ポイント 5-1-基-9. Spring Framework の利用 対応する コースウェア 第 14 回 Spring Framework の概要

5-1-基-9. Spring Framework の利用

DIxAOP コンテナ実装のひとつである Spring Framework の基本的な仕組みと基本的な構成、特徴 について解説する。また Struts や Hibernate など他のフレームワークとの連携や開発ツールなど、実 際の利用に有効なトピックを紹介する。

【学習の要点】

* Spring Framework は DI と AOP の実行環境を提供する他、MVC のサポートや、トランザクション 管理、およびデータベース接続の抽象化機能などを備え、Web アプリケーションの全ての層を カバーするフレームワークである。

* Spring Framework の DI は他のフレームワークと併用することが可能であり、Controller として Struts を利用する、OR マッピングライブラリとして Hibernate を利用する、といった使い方が可能 である。

* Spring Framework の開発に利用できるツールとして、Spring IDE が Eclipse のプラグインとして 提供されている。

Hibernate

JSF

Struts

図 5-1-基-9 Spring Framework の構造

Core

Web

ORM

AOP

DAO

Context

Spring

MVC

iBATIS

ORマッピング

フレームワーク

を統合可能

既存のMVC

フレームワーク

を利用可能

(21)

【解説】 1) Spring Framework の構成 Spring Framework を構成するモジュールのうち、主なものを以下にあげる。 * Core container DI を始めとした全ての機能の基礎となる、BeanFactory を提供する。BeanFactory の基本的な機 能は、XML ファイルなどの定義に従って、オブジェクトを適切に組み立てることである。

* Application context module

BeanFactory を拡張し、国際化メッセージ機能や、アプリケーションのライフサイクルにおけるイ ベント処理機能、バリデーション機能などを提供する。また、JNDI アクセス機能や、EJB との統合 機能など、エンタープライズ分野向けの機能を提供する。

* AOP module

AOP 環境を提供する。AOP Alliance インタフェースに基づいたアスペクトの構築機能と、 AspectJ(AOP が可能となるように拡張した Java)のサポートを提供する。

* JDBC abstraction and the DAO module

JDBC を利用したプログラミングで発生する煩雑なコードを削減し、簡潔な DAO(Data Access Object)の構築を支援する。また、AOP を利用したトランザクション管理機能を提供する。 * Object-relational mapping integration module

JDBC abstraction and the DAO module をベースとして、Hibernate や iBATIS といった OR マッ ピングフレームワーク向けの DAO の構築を支援する。 * Spring MVC framework Spring 自身が提供する、MVC アーキテクチャによるプレゼンテーション層を構築するためのフレ ームワーク。 2) Spring Framework と他のフレームワークの連携 * Struts との連携 Struts との連携用のプラグインが用意されており、連携にあたっては struts-config.xml に登録し ておく必要がある。連携方法として以下の方法がある。

- アクションクラス内で、ApplicationContext オブジェクトを経由して、Spring 管理下の Bean を

取得する。アクションクラスで DI 機能を利用することはできない。

- リクエストが Spring 管理化のアクションクラスに委譲されるように、Struts の processorClass

として DelegatingRequestProcessor を指定する。アクションクラスは通常の Bean と同様に、 Spring のコンテキストに登録する。この場合、アクションクラスで DI 機能を利用できる。 * Hibernate との連携

Hibernate との連携にあたっては、抽象化レイヤとして HibernateTemplate を利用することができ る。HibernateTemplate を利用することで、セッションのオープンとクローズといった手続きを Spring にまかせることができる。HibernateTemplate の設定情報として、SessionFactory の生成に 必要な情報(DataSource クラス、Hibernate マッピングファイルなど)を Spring コンテキストで指定 する。

3) Spring Framework アプリケーションの開発ツール

(22)

開発体系分野 5-1-基 開発フレームワークに関する知識 基本 習得ポイント 5-1-基-10. Seasar2 の構成と特徴 対応する コースウェア 第 15 回 Seasar2 の概要

5-1-基-10. Seasar2 の構成と特徴

DIxAOP コンテナ実装のひとつである Seasar2 の基本的な仕組みと基本的な構成、特徴について解 説する。また Struts や JSF、Hibernate など他のフレームワークとの連携や開発ツールなど、実際の 利用に有効なトピックを紹介する。 【学習の要点】

* Seasar2 コンテナは、DI と AOP の実行環境を提供するほか、ソースコードを修正した際の再デ プロイ、および、アプリケーションサーバの再起動なしに修正を認識する HOT deploy 機能を備 える。

* Seasar プロジェクト内には、Seasar2 コンテナが提供する DI/AOP/HOT deploy 機能を、Struts や JSF など既存のフレームワークと共に利用することを目的とした様々なサブプロジェクトが存 在する。

* Seasar2 の開発に利用できるツールとして、利用するフレームワークに応じた Eclipse のプラグイ ンが提供されている。

(23)

【解説】

1) Seasar2 の設定

Seasar2 は Spring と同様、DI と AOP の環境を提供するコンテナ/フレームワークである。従来 Spring では設定の多くを XML ファイルで行っていたため、設定ファイルの記述が膨大なものとなり、開発 者の負担となる場合があった。Spring2.5 では、アノテーションを利用することで XML ファイルによる 設定量を減らすことが可能になっているものの、コンテナの動作を開発者が明示する、という方針 は変わっていない。Seasar2 では Spring 以上に設定量の削減に力を入れており、コンテナが自動 的に設定を行う機能が充実している。以下に例をあげる。 * 自動バインディング DI を利用する際に、依存関係を明示していない場合でも、インタフェースやクラス、属性名など によってコンテナが自動的に依存関係を解決する。 * コンポーネントの自動登録 ファイルシステム、およびjar ファイルからクラスを検索し、Seasar2 のコンポーネントとして自動的 に登録する。コンポーネントに対する名前付けも自動的に行うことができる。 * アスペクトの自動登録 アスペクトの適用先となるクラスのクラス名のパターンや、実装インタフェースを指定することで、 複数のクラスに対し、自動的にアスペクトを登録する。 2) HOT deploy

Seasar2 には HOT deploy と呼ばれる、コンテナに登録されたクラスを自動的にロードし直す仕組み が存在する。HOT deploy 機能により、ソースコードを修正した際に、アプリケーションサーバの再起 動や、プログラムの再デプロイを行うことなく、修正結果を確認することが可能になる。 3) Seasar2 と他のフレームワークの連携 Seasar プロジェクトには、Seasar2 で既存のフレームワークを利用することを目的とした様々なサブ プロジェクトが存在する。以下に例をあげる。 * Teeda JSF に DI と AOP の機能をベースとした拡張機能を提供し、より開発しやすい環境を提供する。 View には JSP の代わりに HTML を利用する。

* SAStruts(Super Agile Struts)

Struts をベースとした、POJO と DI を中心とするフレームワークを提供する。アクションクラスやア クションフォームには POJO を利用する。アクションクラス内で必要なオブジェクトはアノテーショ ンによる DI で取得する。

* S2Hibernate-JPA

Seasar2、Hibernate3、Hibernate Annotations、Hibernate EntityManager を連携させ、Seasar2 の アプリケーション内で JPA を利用することを容易にするフレームワーク。

4) Seasar2 アプリケーションの開発ツール * Kijimuna

Eclipse プラグイン。Seasar2 の設定ファイルである Dicon ファイルの編集を支援する。 * Dolteng

図 5-1-基-4    Tomcat の実行モード
図 5-1-基-7    OR マッピング
図 5-1-基-8    Dependency Injection
図 5-1-基-10    Seasar2 プロジェクト

参照

関連したドキュメント

主として、自己の居住の用に供する住宅の建築の用に供する目的で行う開発行為以外の開

を占めている。そのうち 75 歳以上の後期高齢者は 1,872 万人(14.9%)、80 歳以上は 1,125 万

目的 これから重機を導入して自伐型林業 を始めていく方を対象に、基本的な 重機操作から作業道を開設して行け

市民的その他のあらゆる分野において、他の 者との平等を基礎として全ての人権及び基本

第20回 4月 知っておきたい働くときの基礎知識① 11名 第21回 5月 知っておきたい働くときの基礎知識② 11名 第22回 6月

現在、電力広域的運営推進機関 *1 (以下、広域機関) において、系統混雑 *2 が発生

 英語の関学の伝統を継承するのが「子どもと英 語」です。初等教育における英語教育に対応でき

 本計画では、子どもの頃から食に関する正確な知識を提供することで、健全な食生活