1」の開発が停止した今日、オープンソースなどによる独自フレームワークで対応してきた企業のシステム開発は、1つの節目を迎えたと言える。EE環境への移行が、これから多くの企業で進められることになるだろう。EEへの移行が求められる理由と、それによるメリットについて解説した。EEに関するセッションの1つとして、日本オラクルでJavaに関するコンサルティング・サービスを提供する大橋氏が講演を実施。EE環境への移行が急がれる背景と、それがもたらすメリットを説明した。大橋氏は冒頭、エンタープライズJavaプラットフォームの進化の歴史を振り返った。Injection:依存性の注入)といった最新のコンセプトや技術を取り入れ、より開発生産性や柔軟性の高いプラットフォームとして進化してきた。7は、その最新の成果となる。EE自体の進化と比べると、「日本のエンタープライズ開発の現場は大きく変わっていない」と嘆く。"車輪の再発明"や独自実装に固執して変化を嫌う風潮があるからだと看破し、そのために「プラットフォームは進化しているのに、業務としての開発は、以前と比べてあまり効率的なものになっていない」(大橋氏)と指摘する。した現場の状況は、「日本のエンタープライズ開発にとっての危機だ」と大橋氏は警鐘を鳴らす。「日本のエンタープライズ開発は、一部の優秀な技術者によって支えられているという現実がある。今、彼らに大きな負担がかかっている。時代遅れのガバナンス、業務の中で旧態依然とした技術としか向き合えないといった状況では、新しい技術や考え方を取り入れ、技術者個人としての価値を継続的に高めていきたいという彼らの欲求には応えられない。EEへの移行を進めることは、このような状況を変えるためにも意味があるのだ。EEを使うことで得られるメリットとして、大橋氏は大きく次の4つを挙げる。「開発生産性の向上によって業務を従来よりも大幅に効率化できる」ことが、優秀な人材の流出を防ぎ、成果物の品質を高めるための大切な要素になる。EE環境への移行を進めるにあたり、最初に念頭に置くべき「3つのポイント」を示した。それらのポイントとは、「(1)DRY化促進による運用維持コストの削減」、「(2)JSFによるコンポーネント・ベース開発」、「(3)CDIによるコンポーネントの疎結合化」である。EEをベースにした開発における、さまざまな"重複"のコストを削減していくという視点だ。EEフレームワーク」と「非標準のAPIをベースにした独自の業務フレームワーク」の間で重複が発生し、特にプラットフォーム更改時などに検証や対応のコストが高くなりがちになるというデメリットが生じる。EE環境への移行は、そうしたフレームワークの重複管理の手間をなくし、なおかつ既存のアプリケーション資産を保護するうえでも有効なのだ。1.4ベースのアプリケーションを動作させることが可能だ。EEの標準機能だけを使うように構成すればよい。EE環境へ移行していけるようになる。EEの標準技術をどう使うか」、「標準技術で足りない機能をどう補完するか」、「今後の周辺環境の変化にどう対応していくか」といったことを含む、エンタープライズ開発に関する戦略の見直しを行うことが重要になる。「(2)JSFによるコンポーネント・ベース開発」に関しては、ユーザー・インタフェース(UI)フレームワークとしてのJSFの活用が鍵になる。EEへの移行を阻害する要因の1つになっている」と指摘する。「実際に現場の方に話を伺うと、『このままではダメで、いつかは変えなければいけない』と感じている方が多い。それでも踏み切れない理由としては、『慣れ』、『新たな技術の習得にかかるコスト』、『(国内における)導入事例情報の少なさ』などが挙げられる。EEへの移行に積極的なところが出てきている。EE環境への移行を進めるべき理由の1つだ。EEの1要素であるJSFは、画面上にUI部品を配置し、それにJavaクラスのフィールドとメソッドをマッピングしていくことで生産性の高い開発が行えるコンポーネント・ベースのフレームワークである。JSFを採用することで、「煩わしいHTTPリクエスト処理の実装が不要となり、開発やテストが容易に行える」、「コンポーネントの再利用が容易になる」といったメリットを受けられる。「パフォーマンス面でJSFに不安を感じるという方もおられるようだが、大規模でスケーラビリティが求められるシステムでは、必要に応じてJAX-RSでアクション・ベースに処理を実装できる。EEにはエンタープライズ・アプリケーションの開発に必要な機能が標準機能としてひととおり備わっている。EEに標準で備わるDI機能だ。1.4のようにサードパーティのプロダクトを使うことなくコンポーネント化を促進し、フレームワーク実装への依存性を弱めることが可能になる。バグの局所化やテストの容易化、コンポーネント単位での置き換えなどへの対応も可能になる。大橋氏は、CDIを使うことのメリットとして、「業務アプリケーションにフレームワークの部品をインジェクト(注入)することで、フレームワーク実装への依存性を下げ、APIは維持しつつ、さらに周辺技術の変化に対応するかたちで、注入したコンポーネントだけを後から変更することが可能になる」と説明する。CDIでは、インジェクトされるインスタンスはコンテキストで管理される。具体的には、スコープ内で初めのインジェクト時にインスタンスが生成され、スコープの終わりに解放されるという動作となり、同一のスコープ内であれば同じインスタンスが注入される。そのため、同一スコープ内でのインスタンスの再利用を意識する必要はない。CDIでは、インスタンスの動的な取得が可能であることを利用し、監視情報のイベントを送出したり、フレームワーク部品のパラメータを動的に変更したりすることなどが可能になるという。これらの特性を活用することで、JavaEEアプリケーションの開発やメンテナンスがさらに容易になるのだ。EE開発の導入としては十分。そこから先の段階に進んでいくことができる」と語り、次のような言葉で講演を締めくくった。EEを使ってほしい』と言うつもりはない。実際に最新のJavaEEは、皆さんの現場が抱える課題を解決するためのさまざまな機能を備えている。EEへの移行を進めてほしい。EE導入事例を発表して、それを広くシェアしていただきたい。IDEA」、そして「NetBeans」。Pi(ラズベリーパイ)」。Piの上でも、実はJavaFXアプリケーションを動かすことができる。