2015年、エンタープライズJava開発はどう変わる?──トップ・アーキテクト、エバンジェリストらが語る

Oracle Java & Developers編集部
2015-01-06 11:00:00
  • このエントリーをはてなブックマークに追加

2015年、大きく進化したJava EE 7とJava SE 8がいよいよ普及期に入ると見られる。これらにより、エンタープライズJava開発はどう変わっていくのか? トップ・アーキテクトやJavaエバンジェリストらに展望を聞いた。

 Java EE 7やJava SE 8に対応したアプリケーション・サーバの登場が予定される今年、エンタープライズJava開発はまた一歩、大きく前進しようとしている。企業システム開発基盤に対するさまざまなニーズに応えながら進化してきたJava EE、そしてエンタープライズJava開発の現在と未来を、長年Javaに携わってきたアーキテクトやエバンジェリスト、コンサルタントらはどう見据えているのだろうか。日本Javaユーザーグループ(JJUG)の会長を務め、グロースエクスパートナーズのアーキテクトとして活動する鈴木雄介氏(同社執行役員 ビジネスソリューション事業本部長)、日本オラクルでJavaエバンジェリストを務める寺田佳央氏、同じく日本オラクルでJavaコンサルタントとして活躍する加藤田益嗣氏(テクノロジーコンサルティング統括本部 ITソリューション本部 インプリメンテーションアーキテクト部 シニアコンサルタント)に聞いた。

多くの企業がJava EE 7への移行に意欲。マルチデバイス/マルチシチュエーショナルなアプリケーションへのニーズも拡大

──皆さんは日頃、Javaコミュニティやユーザー企業、SIerの方々と緊密に交流されているわけですが、その中でエンタープライズJavaに関する最近のトレンドや課題と感じていることは何でしょうか?

グロースエクスパートナーズ 執行役員 ビジネスソリューション事業本部長/日本Javaユーザーグループ 会長の鈴木雄介氏
グロースエクスパートナーズ 執行役員 ビジネスソリューション事業本部長/日本Javaユーザーグループ 会長の鈴木雄介氏

鈴木氏(以下、敬称略):近頃、特にヘルスケアや製造業などのお客様からよくいただくのは、マルチデバイス、マルチシチュエーショナルなアプリケーション※1の構築に関するご相談です。クライアントとしてスマートフォンやタブレット、PC、各種の機械/機器/センサーを活用したいといったご要望が増えているのです。

 こうしたシステムは、サーバ側はJavaで作りますが、クライアント側はマルチテクノロジー化が進んでおり、Windowsの機能をフルに活用するなら.NETを、iOSデバイスやAndroidデバイスを使うならHTML5とネーティブAPIを、機器/機械系ならLinuxや組み込みOSをといった具合に使い分ける必要があります。このマルチデバイス/マルチシチュエーショナルに対応したアプリケーションの実現は、今年以降、エンタープライズJava開発の領域でホットなテーマになると感じています。

※1 多様なデバイスと、モバイルやオフィスといったさまざまな利用状況に対応することを前提に作られるアプリケーション。

加藤田氏(以下、敬称略):私は企業のJava導入を支援する活動を主に行っていますが、最近多いのはリプレース案件で、「旧式化したJava環境やフレームワークを更改したい」といったご相談をよくいただきます。また、開発生産性を高める目的から、Javaによる技術標準の策定やテスト環境の整備などをご支援する機会も多いですね。Java EE 7対応アプリケーション・サーバ製品が登場してくることもあり、「今年、来年にカットオーバーするシステムはJava EE 7で作ろう」というお客様が多く、そのお手伝いに奔走しているという状況です。

──そうした企業では現在、どのようなJava環境を利用しているのでしょうか?

加藤田:Java EE 5、あるいはそれ以前のバージョンの上で、独自開発のフレームワークを使っているケースが多いですね。そのため、メンテナンスや外部への開発委託で多くのコストと手間がかかることが大きな課題となっています。この状況から脱却するための標準技術として、今ならJava EE 7が最適だとの判断から、Java EE 7への移行を決断されるようです。最近のJava EEを使ったことのないお客様は開発者教育の段階から支援させていただいていますが、皆さん「今のJava EEは標準技術だけでここまでのことが、こんなに簡単にできるのか」と驚かれますね。

──プロプライエタリなJava環境からJava EEによる標準への移行が進みつつあるわけですね。寺田さんはJavaエバンジェリストとして、日本全国のJavaコミュニティやオラクルのパートナー企業、SIerの方々と交流されています。エンタープライズJavaに関して、それらの方々の主な関心事はどこにあるのでしょうか?

寺田氏(以下、敬称略):やはり、昨年後半からJava EE 7に関心を持つ方が増えてきました。既存のフレームワークを最新のJava EEに対応させる取り組みを開始したという話もよく聞きますし、ユーザー企業の方からは「最新のJava EEを使った開発が行えるSIerを紹介してほしい」といったご相談もいただいています。プロプライエタリな技術にロックインされる心配のない標準技術としてJava EEをご評価いただいているのでしょう。

Java EEの役割は「標準技術の安定版の提供」にシフト。それを最先端のイノベーションと共存させているところがJavaの凄さ

──Java EEは、J2EEの時代からさまざまな経緯を経て今の方向性にまとまりました。鈴木さんは現在のJava EEをどう評価していますか?

鈴木:まず今日のJava EEの役割は、「開発技術の最先端」を担うものではないと思っています。今後のアプリケーション開発を変えていくような新たな技術や手法は、さまざまなコミュニティの先端にいる人たちが生み出しており、その中からエンタープライズ・システム開発で確実に使えるものを取り入れ、安定版として提供するというかたちにJava EEの位置付けが明確化してきました。つまり、先端を突っ走るのではなく、技術を標準化し、展開していくのが今日のJava EEの非常に大切な役割だと理解しています。

 その一方で、JVMを核にしたJavaテクノロジー全般の領域では、現在もシステム開発の世界をリードする新たな技術や手法が次々に誕生しています。ここがJavaの凄いところで、Java EEという安定版と尖ったエッジの技術/イノベーションをJVMの上で共存させている。この多様性はJavaの大きな特色ですね。

──安定版とエッジのテクノロジーを1つのプラットフォーム上で使えることがエンタープライズJavaの魅力というわけですね。

鈴木:エッジの部分に関して言えば、リアクティブと呼ばれるようなサーバ側からプッシュする仕組みや、IoT(Internet of Things)のような大量のトランザクションを正確にさばく仕組みについて、Javaが安定した機能を提供してくれると期待しています。

 昨年のJavaOneで流通系企業の面白い事例が発表されました。その企業ではバックエンドで昔ながらのEJB(Enterprise JavaBeans)によるビジネス・ロジックが動いており、そのフロントにJVM上で動くScalaで開発したリアクティブなレイヤを新たに導入したそうです。そのレイヤですべてのトランザクションを受け付けて、EJBコンポーネントに対するゲートウェイとして機能させているわけです。それにより、既存のシステムを各種のモバイル・デバイスや機器に対応させているのですが、これはまさにJavaでしか実現できないことです。

 これまでは、新たなアーキテクチャやテクノロジーを取り入れるために、既存のシステム資産を捨てなければならないことが多々ありました。しかし、安定版とエッジを共存させられるJavaであれば、捨てずに済む可能性が高まるわけです。これはエンタープライズの世界では非常に大きな魅力です。そして、現在はScalaで作っているような最先端の仕組みが、やがては安定版としてのJava EEに取り込まれていくのでしょう。

【参考情報】

──2016年のリリースが予定されているJava EE 8では、HTML5対応など「Web開発機能の強化」、CDI(Contexts and Dependency Injection)も活用した「開発容易性のさらなる向上」、「クラウド環境への対応」が機能強化の大きな柱になるといいます。これらも踏まえ、寺田さんは今後のJava EE開発において、何が鍵になるとお考えですか?

日本オラクル シニアJavaエバンジェリストの寺田佳央氏
日本オラクル シニアJavaエバンジェリストの寺田佳央氏

寺田:Java EE 6以降、CDIの重要性が高まってきており、もともとEJBに備わっていた機能も順次、CDIに取り込まれています。また、CDIの高機能化に伴う肥大化を避けるために、Java EE 8でCDIをモジュール化する計画がありますし、ユニット・テストなどが簡単に行えるようにするために、CDIをJava SE環境で動かせるようにする構想もあります。これらが実現したら、Java EEで軽量なアプリケーションを作る際のコーディングやテストが、より容易になるでしょう。これからのJava EE開発では、CDIを正しく理解し、使いこなすことが1つの鍵となります。CDIはDI機能のほかに、インターセプタやオブザーバ、通知など、さまざまな機能を備えています。Java EE開発に取り組む方には、これらの機能の習得に力を入れていただきたいですね。

──Java EE 8でクラウド対応が検討されているほか、今年リリースされるOracle WebLogic Server 12cの次期バージョンでは、軽量コンテナ技術による「マルチテナント対応」が計画されています。これらは企業のシステム運用管理にも恩恵をもたらしそうですね。

日本オラクル テクノロジーコンサルティング統括本部 ITソリューション本部 インプリメンテーションアーキテクト部 シニアコンサルタントの加藤田益嗣氏
日本オラクル テクノロジーコンサルティング統括本部 ITソリューション本部 インプリメンテーションアーキテクト部 シニアコンサルタントの加藤田益嗣氏

加藤田:今日のお客様の状況を見ていると、開発も大変ですが、同様に運用にも多くの手間がかかっています。例えば、アプリケーション・サーバの設定などをアプリケーションごとにやらなければならず、それが意外と大変なのです。Java EEやアプリケーション・サーバがクラウドに対応すれば、アプリケーション側である程度の制御ができるようになり、運用側と開発側の分業がやりやすくなるのではないかと期待しています。オンプレミスかクラウドかを意識せず、アプリケーションと設定ファイルを作ったら、それをどのような環境にでも簡単にデプロイして動かせるようになると便利ですよね。

鈴木:例えば、「このアプリケーションが動くためには、こうした環境が必要」という情報を定義したファイルを一緒にデプロイするといった具合ですか? それをJava SE 9で予定されているモジュール化の技術などと組み合わせて使うことで、「アプリケーションを依存情報とともにデプロイすると、そのアプリケーション専用に構成されたアプリケーション・サーバが自動的に構成されて起動する」といったことが実現できるかもしれませんね。

加藤田:そうした方向性に進化していってくれると嬉しいですね。