「顧客ニーズへの柔軟かつ速やかな対応」、「開発環境のカイゼン」──Java EE 6の採用で構造計画研究所が得たメリット

Oracle Java & Developers編集部
2014-05-19 16:00:00
  • このエントリーをはてなブックマークに追加

自社製品の機能強化と対応プラットフォーム拡大のため、初めて取り組んだJava EE開発。構造計画研究所の菊田洋一氏らは、それによってどのようなメリットを得たのだろうか?

構造計画研究所の菊田洋一氏が、Java EE 6採用のメリットを語った

構造計画研究所 製造ビジネス・ソリューション部 ETO技術室の菊田洋一氏
構造計画研究所 製造ビジネス・ソリューション部 ETO技術室の菊田洋一氏

 日本オラクルは2014年4月、ユーザー企業の情報システム部門管理職やアーキテクトらを対象にしたセミナー「最新のJavaを3時間で知るJava解説セミナー」を開催した。昨年より定期開催されている同セミナーの特色は、日本オラクルのエンジニアやコンサルタントがJavaおよびJava EEの最新動向について解説するほか、ゲスト・スピーカーとして招かれたユーザー企業のアーキテクトらが、Java EEへの取り組み状況を直接紹介している点だ。今回のセミナーでゲスト・スピーカーとして登壇したのは、本サイト記事「初めてのJava EE 6開発! 最初の壁をどう乗り越えた?──最新Java EE開発"虎の穴" 第1回 菊田洋一氏」にもご登場いただいた構造計画研究所の菊田洋一氏(製造ビジネス・ソリューション部 ETO技術室)である。

 上の記事でも紹介しているように、菊田氏らは一昨年末より、製造業などに向けた販売管理システムの機能強化や対応プラットフォームの拡大を図るべく、初めてのJava EE開発に取り組んだ。最初は手探りの状態で情報収集からスタートした菊田氏らは、開発フレームワークとしてJava EE 6を採用。約半年間の開発期間を経て、昨年半ばに無事、Java EE版の製品をリリースしている。

 菊田氏によるセッション「初めてのJava EE 6開発とその活用メリットについてのご紹介」の前半では、Java EE 6を採用した理由や、初めてのJava EE開発にどう取り組んだのかが語られた。それらの詳細については前掲の記事をお読みいただくとして、ここではセッション後半に菊田氏が語った「Java EE採用のメリット」に関する要旨を紹介する。

顧客ニーズへの柔軟な対応、開発効率の向上──Java EEの採用で得たメリット

 前述のように、菊田氏らがJava EE 6を採用した理由は、販売管理システムで使用していた海外製コンフィグレータ・エンジンの機能をフルに活用し、また製品の対応プラットフォームを拡大するためであった。Java EE 6を採用したことで、それらの目的は無事に達せられたが、そのほかにもさまざまなメリットが得られたという。主なものとして、菊田氏は「顧客要望への柔軟性の向上」と「開発効率の向上」を挙げる。

 業務系のアプリケーション製品では、その開発にあたり、営業担当者や顧客などのステークホルダーから、「画面」に関してさまざまな要望が寄せられる。例えば、「顧客に見せるデモンストレーションの見栄えを良くしたい」、「現場担当者にとって使いやすいリッチなWeb UIが欲しい」といった具合だ。ただし、JavaScriptのUIライブラリを扱える開発者や、Web UIのデザインに長けたデザイナーをタイミング良くアサインできない場合、そうした要望にスムーズに対応するのは難しかった。

 菊田氏のチームでは、Java EE 6の標準Web UI構築フレームワークである「JSF(JavaServer Faces)」を利用して、それらの要望に速やかに対応できる体制を作ったという。JSFと併せて菊田氏らが活用しているのは、トルコのプライム・テクノロジー(Prime Technology)が開発しているオープンソースのJSFリッチ・コンポーネント・ライブラリ「PrimeFaces」である。

 PrimeFacesには、標準でカレンダーやグラフ、グリッドなどを含む100以上のWeb UIコンポーネントが用意されている。モバイル・デバイス向けのUIコンポーネントも備えており、ドキュメントも充実している。菊田氏らは、このPrimeFacesを活用してステークホルダーらが求めるWeb UIのサンプルを速やかに作成することで、彼らのコンセンサスを得ながら画面設計の作業をスムーズに進めているという。

 ただし、JSFを利用するにあたっては、注意すべき点もあるようだ。

 「JSFでは、HTTPを強く意識しないかたちで下位レベル技術の抽象化が行われており、画面のHTMLがサーバ・サイドで生成されるという特性があります。そのため、クライアントのWebブラウザ側で動作する一般的なJavaScriptフレームワークと比べて、デバッグに手間がかかると感じる場合があるかもしれません。

 また、JSFは基本的にステートフルなアーキテクチャであり、処理が重たくなりがちです。設計の際には、ある程度パフォーマンスのことを意識する必要があるでしょう。例えば、スコープ設定でApplication ScopeやSession Scopeを多用せず、負荷テスト・ツールを使って事前に十分なテストを行うことをお勧めします」(菊田氏)

 こうしたJSF特有のクセを把握してうまくカバーしながら、メリットを最大限に生かす方法を探っていくのがベストな使い方だと菊田氏は語る。

人手でやっていた作業の効率化/自動化──Java EEの採用により、開発環境の"カイゼン"も進む

 Java EEの採用は、開発環境の改善においても大きな効果をもたらした。

 Java EEを導入する以前、菊田氏らは.NETだけで開発を行っていたが、現場の開発環境について、次のような課題を感じていたという(当時は.NET 2.0であったため。現在は.NETでも同等のことが行える)。

  • ライブラリの依存関係が複雑なうえ、依存性の管理ができていない
  • モジュール公開のためのビルドや開発リポジトリへのアップロード、開発メンバーへのメール通知などがすべて手作業であり、非効率
  • 開発環境が複雑なため、それを熟知した特定のメンバーしかビルド作業が行えない
  • 自動テストの仕組みがなく、リグレッション・テストが人海戦術になってしまう

 菊田氏らはJava EEの導入を機に、こうした環境の改善にも取り組んだ。具体的には、ライブラリの依存関係を管理するツールとして「Maven」を導入したほか、継続的インテグレーション・ツールとして「Jenkins」を採用。ビルドやリポジトリへの登録、結果のメール通知などを、すべて自動化することに成功した。テストに関しては、「JUnit」による単体テスト、「Arquillian」によるインテグレーション・テストを工程に組み込み、テストに要する手間を減らしつつ、成果物の品質を確保しているという。

 「こうした開発環境の"カイゼン"は、Java EEを使わない場合でも実現可能かもしれません。しかし、Javaの周辺で培われてきたオープンな技術、Java EEという標準フレームワークを使ったからこそ、カイゼンのための仕組みを手軽かつ効率的に導入できたのだと思います」(菊田氏)