幕を開けた“Internet of Things”の時代。Javaの適用領域、Java開発者の活躍の場はさらに広がる──Javaエバンジェリスト 寺田佳央氏と振り返る「JavaOne 2013」

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

"プラットフォームとしてのJava"の可能性をさらに広げる「Project Avatar」

 加えて、ストラテジー・キーノートでは、JavaOne 2011でコンセプトが発表された「Project Avatar」のアーキテクチャも明らかにされた。

 それによれば、Avatarとはサーバ・サイドのプログラムをJavaScriptによって開発することを可能にするフレームワークであり、JavaScriptエンジンとしてはJava SE 8で導入予定の「Nashorn」が使われる。

 「Avatarにより、これまでWebブラウザ上で動作するクライアント・アプリケーションをJavaScriptで作っていた開発者が、今後はサーバ・サイドのプログラムもJavaScriptによって開発できるようになります。

 現在、Node.jsなどサーバ・サイドのJavaScript実行環境が普及し、大量のWebコネクションを高速に処理するシステムなどで利用されています。Avatarも、それらと同じことを実現するフレームワークですが、1つ大きく、そして決定的に異なる特徴があります。それは、AvatarがJava(JVM)の上で動作するという点です。

 つまり、AvatarはJava EE対応アプリケーション・サーバの上で利用することができるのです。これにより、Java EE対応アプリケーション・サーバの高い性能、堅牢性、可用性、拡張性、管理性、そしてJavaによる既存資産の活用といった利点を、JavaScriptによるシステムでも享受できるようになります。Java EEで培ったシステム構築/管理ノウハウを生かしてJavaScriptの特性を生かしたシステムを構築/管理できるので、開発者も企業も大きなメリットが得られるでしょう」(寺田氏)

 Avatarは、Java EE 7でサポートされたRESTful Web ServicesやWebSocketなどの技術に加えて、サーバ・サイドのイベント・リクエストのハンドリングやNoSQLにも対応する。そのため、NoSQLデータソースの変更通知をサーバ・サイドで受け取り、それをトリガにしてクライアント・サイドにWebSocketでリアルタイムに情報を配信するといったWebアプリケーションもJavaScriptで書けるようになる。このように、Javaの世界で培われた先進的な実装や既存のIT資産をJavaScript開発者に開放する試みがProject Avatarなのである。

 なお、JavaOne 2013では、このProject Avatarがオープンソースとして公開されることも併せて発表された。すでにjava.netでソースコードが公開されており、Avatarの実行環境をバンドルしたGlassFish 4の提供も開始されている。関心を持たれた方は、寺田氏のブログ記事「はじめての Project Avatar」を参考にして、ぜひ実際にお試しいただきたい。

Java SE 8におけるLambda式の導入は"言語としてのJava"の歴史で最大級の変化

 続いてはテクニカル・キーノートだ。同キーノートでは、まず6月にJava EE 7がリリースされたことが改めて報告された。Java EE 7では、次の3点に力を入れて機能強化が図られている。

開発生産性のさらなる向上:

POJOによる開発範囲が拡大したほか、コードや設定ファイルの記述量が削減され、プラットフォームとしての統一性が高められた

HTML5への対応:

WebSocketやJSON、Restful Web Servicesなど、HTML5による次世代Webアプリケーション開発のための技術が導入された

エンタープライズ・ニーズへの対応:

バッチ処理や並列処理など、企業システムで求められる機能が拡充された

 また、次期バージョンのJava EEに関しては、クラウドへの対応やさらなるHTML5への対応など、次世代のシステム環境の実現に向けてどのような機能を盛り込むかがJavaコミュニティで議論されているという。


米国オラクル Javaプラットフォーム担当チーフ・アーキテクトのマーク・ラインホールド氏

 一方、Java SEに関しては、来春リリース予定のJava SE 8のコンセプトが米国オラクル Javaプラットフォーム担当チーフ・アーキテクトのマーク・ラインホールド氏によって説明された。

 ラインホールド氏によれば、18年にわたるJavaの歴史において、Java SE 8で起きる変化は最もドラスティックなものになるという。Java SE 5におけるジェネリクスの導入よりも大きな変化をもたらすのは、新たに導入されるLambda式だ。

 Lambda式導入の背景には、マルチコア・プロセッサの普及など、近年のハードウェア技術の進化がある。それらの進化をソフトウェアの領域で最大限に生かすことがLambda式を導入する目的なのだ。Lambda式の導入により、具体的には次のようなメリットが得られるという。

  • プログラムの構文を、より簡潔に書けるようになる
  • プログラムの実行性能が向上する
  • プログラムのロジックを、より抽象化できるようになる
  • 並列処理を簡潔に書けるようになる

NetBeans 7.4でクライアント・サイドJavaScriptからサーバ・サイドまでを一気通貫でデバッグすることが可能に

 テクニカル・キーノートでは、「Project Easel」の成果が組み込まれた最新の統合開発環境として「NetBeans 7.4」も紹介された。Project Easelとは、昨年のJavaOneで発表された、JavaScriptを使ったHTML5ベースのクライアント・プログラムとサーバ・プログラムを、ともにNetBeans上でデバッグできるようにするというプロジェクトだ。

 これまでのJava EE開発は、クライアント・サイドのJavaScriptのデバッグはWebブラウザの拡張機能などを使って行い、サーバ・サイドのプログラムは統合開発環境上で行うといった具合に、異なる環境を使い分けて行っていた。それに対して、NetBeans 7.4では、フロントのJavaScriptからサーバ・サイドのJavaプログラムまでを1つの環境でシームレスにデバッグすることが可能になる。

 「例えば、NetBeans 7.4上でHTML5ベースのWebアプリケーションのデバッグを開始し、途中で一時停止ボタンをクリックすると、そのときにJavaScriptが参照している変数の値を確認することができます。さらにステップを進めてリクエストがサーバ・サイドに送られた段階になると、今度はサーバ・サイドでのデバッグが始まり、途中で一時停止ボタンをクリックするとサーブレットなどが参照している変数の値などを確認できます。

 また、JavaScriptやJavaコード、HTMLだけでなく、CSSを編集して、その結果をリアルタイムに確認することも可能です。HTML5によるリッチなユーザー・インタフェースを備えたWebアプリケーションの開発が、これまでよりも大幅に効率化できるので、ぜひJavaScriptをお使いの開発者の皆さんに試してみていただきたいですね」(寺田氏)

「"標準のJava"ですべての開発をカバー」をチェス・ゲームのデモで実証

 テクニカル・キーノートでは、もう1つ、強く打ち出されたメッセージがある。それは「次世代アプリケーションの開発は、標準のJavaですべてカバーできる」ということだ。先に寺田氏が触れたように、JavaOne 2013では、"Internet of Things"にもつながるこのコンセプトがすでに実現されていることが、チェス・ゲームのデモによって示された。

 披露されたチェス・ゲームは、サーバ・サイドのシステムとクライアント・サイドのアプリケーションおよびデバイスから成る。サーバ・サイドのシステムは、WebSocketなど最新の技術を使いJava EE 7ベースで構築されている。

 一方のクライアント・サイドについては、さまざまな形態のアプリケーションが用意された。具体的には、PC上のHTML5アプリケーション、Raspberry Piベースのタブレット上で動作するタッチ・インタフェースを備えたアプリケーション、PC上で動作するJavaFXベースの3Dアプリケーション、そしてRaspberry Piを使って組み立てられたチェス・マシーンといった具合だ。

 「クライアント側は、HTML5アプリケーションやタッチ・アプリケーション、JavaFXによる3Dアプリケーション、そして3Dプリンタで駒を成形したリアルなチェス・ゲームまで、すべてのプログラムを標準のJava技術によって開発し、それらに対してサーバ・サイドは1つのJava EE 7アプリケーションで対応できることが具体的なデモによって示されました。クライアント/サーバ間の連携にはWebSocketやJAX-RS、JSONなどを使用します。さまざまなクライアント・デバイスがサーバ・サイドと連携して動作するシステムを標準のJavaだけで作ることのできる、まさに"Internet of Things"を体現した世界がすでに実現されているのです」(寺田氏)

教育から環境、宇宙まで、今年もさまざまなJavaコミュニティの活動成果を披露

 Java開発者の祭典であるJavaOneにおいて最大の盛り上がりを見せるのは、Javaコミュニティの活動成果や今後の活動方針が示されるコミュニティ・キーノートと、コミュニティ関連のイベントだ。

 JavaOne 2013では、コミュニティ関連のイベントとして「Raspberry Piチャレンジ」を開催。これは、JavaOne参加者がチームを組み、Raspberry Piを使った斬新なアプリケーションを作り上げるというものだ。

 「会期中に完成したのは7作品。それらの中には、Raspberry PiとGoogle Glass、心拍計を使い、Google Glassを通して見た人の心拍数を表示するといったものや、クラウドと連携してラジコン・カーを操作するといったものがありました。今回は日本からも女性が1名参加されていましたね。世界中から集まった参加者とともに、その場で何かを作り上げながら交流を深めるといった体験ができるのもJavaOneだからこそです」(寺田氏)

 また、Javaコミュニティの活動で主導的な役割を果たすJavaチャンピオンとJavaユーザー・グループによる新サイト「jCountdown」も紹介された。これは、世界中のユーザーがWebブラウザ上で利用しているJavaのバージョンをトラッキングするという試みである。

 「近年はJavaに対してもセキュリティ脆弱性を突いたサイバー攻撃が頻発しており、その観点から、常に最新のセキュリティ対策が施されたJava SEを使うことが推奨されます。jCountdownは、1人でも多くのユーザーに対してそのことを啓蒙し、最新のJavaへの道標を示すべくJavaコミュニティによって開設されました」(寺田氏)

 コミュニティ関連でもう1つ注目したい発表は、サンフランシスコに本社を構えるスクエア社が、Open JDKのコミュニティに参加したというアナウンスだ。同社は、デバイスなどで利用可能な軽量な暗号化技術などの開発で貢献するという。

 「このスクエア社のように、ぜひ日本企業の皆さんにも、Open JDKなどJavaコミュニティにおける技術開発や検証にご参加いただきたいですね。コミュニティとのコネクションがないことが障害となるようでしたら、それについては私たちがお手伝いさせていただきます。Javaコミュニティの活動に参加することは、技術面やビジネス面で必ずメリットをもたらすはずです」(寺田氏)

 一方、コミュニティ・キーノートでは、Javaの適用が進む下記5つの領域における具体的な取り組みが紹介された。

  • 教育
  • 安全
  • 環境
  • 海洋
  • 宇宙

 「『海洋』の領域に関しては、"Javaの生みの親"であるジェームス・ゴスリング氏が登壇し、氏がチーフ・ソフトウェア・アーキテクトを務める海洋調査会社リキッド・ロボティクスの取り組みが紹介されました。

 私が最も感銘を受けたのは『教育』に関する発表です。これに関しては、ベルギーのJavaユーザー・グループの創設者であるステファン・ジャンセン氏らの取り組みが紹介されました。彼らは、これからの時代を担う子供たちにJavaプログラミングの楽しさや取り組み方を教える目的で、昨年から「Devoxx 4 Kids」というカンファレンスを開催しています。そのカリキュラムは他国のJavaコミュニティに無償で提供しており、すでに欧州や北米、アジアの国でも、Devoxx 4 Kidsのカリキュラムを使ったJavaの教育プログラムが実施されているとのことです。こうした活動を日本でもやれるとよいのですが」(寺田氏)

 そのほか、「安全」の領域では自動車の自律走行プロジェクトが、「環境」の領域では家庭の電力消費量監視サービスが、「宇宙」の領域ではNASAの衛生管理システムがといった具合に、各領域におけるJavaの適用事例が紹介された。それらの詳細については、寺田氏のブログ記事「JavaOne 2013 コミュニティー・キーノートのまとめ」を参照されたい。

 「このように、JavaOneには毎年、世界中のさまざまな領域で活躍する方々がJavaコミュニティのメンバーとして参加されるので、彼らと直接コミュニケーションして、先進領域におけるJavaの活用例をはじめ、いろいろな話を聞くことができます。JavaOneに参加することで、研究開発の面でも、個人のスキル向上の面でも、そしてビジネスの面でも、多くのメリットが得られるでしょう。ぜひ来年は、この記事をお読みの皆さんも一緒にJavaOneに参加しましょう!」(寺田氏)

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]