Archive for 2013年10月3日
JavaOne ストラテジー・キーノートのまとめ
まとめ:
今年の、JavaOne のテーマは昨年に引き続き、「MAKE THE FUTURE JAVA」でしたが、今年の JavaOne のもう一つのテーマは「Internet Of Things」ではないかと思います。昨今 Java というと、エンタープライズでの適用が多いかと想定しますが、Java はエンタープライズ用途だけではなく、幅広くインターネットに接続する全てのデバイスに Java を適用できる、そのような時代がやってくるのではないかと思わせるような基調講演でした。Java EE 7 は今年の 6 月に正式リリースし次の Java EE 8 のリリースに向けて準備をまさに始めた所です。そして、来年の春にリリース予定の Java SE 8 についても機能 FIX し、興味のある開発者はいますぐ、お試し版を利用できるようになっています。しかし、Java SE や Java EE のようなプラットフォームだけではなく、今組み込みデバイス用の Java にも大きな変化が生まれようとしています。今年の JavaOne では、Internet Of Things (組み込みのデバイス) に向けての Java の取り組みを大きく紹介した内容となっていました。今まで組み込みというと、同じ Java の開発者でも敷居が高そうと思われた方もいらっしゃるかと思いますが、来年登場する Java SE 8 以降は、Java SE 8 のノウハウを使い、Raspberry PI や Lego Mindstorm なども制御できるようになります。こうした取り組みは大学・研究機関で色々な研究用途で使用して頂きたいですし、さらに製造業などでも是非実用化を目指していただきたいと思っております。
今年で JavaOne は Sun の頃から数え通算 18 回目の開催となります。また、4年ぶりに JavaOne がモスコーン・センターに帰ってきました。今年の JavaOne は Oracle の Java プロダクト・マネージメントのバイス・プレジデントPeter Utzschneiderが取りまとめました。
Peter は冒頭で、今年は、昨年の JavaOne よりもイベント規模を大きくし、そして昨年よりも良いイベントにしたいと考えていると語りました。実際、今年の JavaOne には世界 92 カ国から参加頂いています。JavaOne は開発者による、開発者のためのイベントで 5 日間で 400 以上のテクニカルセッションが提供されます。このプログラムを決定するにあたって、コンテンツの選定委員は量や質を十分に検討し、選定は非常に難航した事もつげました。
また、今年は単にセッションを行うだけではなく、より多くのコミュニティの活動を行います。例えば、展示会場で開催される、Codegarten に参加してください、そこではご自身の Java のコードの改善方法についてエキスパートが教えてくれます。また、スケジュールを確認し都合が合えば Raspberry Pi チャレンジにも参加してみてくださいと語りました。
まず、Peter は昨年と同様、Java に関する進捗のアップデートを行いました。コミュニティにおいては、OpenJDK コミュニティの参加者が1年間で10%増加し、また、Java の開発者によって新しい Java ユーザグループも作成され Java のコミュニティが世界中で広がってきました。テクノロジーの分野では、今年 Java EE 7 を正式にリリースする事ができました。オラクルの運営(Stewardship)においては、Java のエバンジェリストチームや、OTN の活動によって各種イベントや参加メンバーが増えてきています。また、コミュニティ・メンバーの協力やチームの活躍によって Java Magazine の発行も継続して行っています。
これらを通じ、今年は Java にとって良い1年だったと言えます。
* 9 Million Java Developers Worldwide
* #1 Choice for Developers
* #1 Development Platform
* 3 Billion Mobile Phones Run Java
* 100 Percent of Blu-ray Disc Players Ship with Java
* 97 Percent of Enterprise Desktops Run Java
* 5 Billion Java Cards in Use
* 7 Billion Java Cards Sold
* 89% of desktops run java
* 125 million TV devices run java
* 5 of top 5 OEMs ship java
我々にとって重要な事は未だ、世界の中で Java は No.1 の開発プラットフォームである事です。Java は巨大なコミュニティを形成しており、Java をベースとして持つ開発者も多数います。そして、巨大なインフラストラクチャや、インターネット・デバイスもまた Java で稼働しています。
今日のキーノートで皆様に提供する内容は、将来を築きあげていくための信じられないほど多くの基礎知識を提供します。今年の JavaOne のテーマは昨年と同様、将来の Java を築き(Make The Future Java)上げる事ですが、それらの内容を今日ここでご覧頂くことができます。
我々は、Make The Future Java について今一度考えなければなりません。昨年を振り返ってみると、我々はやり残した作業があり、それらに対応していく必要があります。今、IT 業界は、非常に多くの技術革命や、非常に大きな変革を迎えています。そしてそれらは多くの課題が存在し、それらを解決する事が今後大きな機会を得る事になります。それを、皆様と一緒に解決していきたいと考えています。
我々自身は、Java をより良く、さらに強く、より堅牢に、そして今後 10 年間の使われ続けるプラットフォームとして適切に築きあげる事です。
インターネットにおいて、毎月、毎週、毎日、毎時間、1 分間でモバイルとソーシャルを組み合わせると、信じられないほど大量のデータが作成されています。人々はそれを共有したり作ったり、そのための新しいサービスや新しいアプリケーションを作成しています。これらを実現するためには大量のインフラが必要になりますが、多くが Java プラットフォーム上で稼働しています。そして、多くの人々は今これらのインフラを電気や水のような通常インフラと同様に扱っています。また、皆様は日々、信じられないほどのデータ取り扱っています。
過去データを扱うためには、リアルタイム性、フィルタリング、ファイルの大小などを検討し取り扱っていましたが、今全く新しいパラダイムが利用できるようになっています。例えば BigData や FastData なども利用できます。また、BI(Business Intelligence)や解析を通じて全てをバックアップできます。
また、データの配置場所、データ自身の寿命等も考えなければなりません。
データ自身が生命の源となり、開発者はそれらのデータを活用して革新的な新しいアプリケーションを構築できるようになります。
また、これらにモバイルやソーシャルを組み合わせて操作すると新たな事も発生します。
見積もりは色々とありますが、デバイスが今後数年間で、インターネットに接続するデバイス数は、100億〜500億と見積もられています。10 億としてもとても巨大な数です。そしてこれらのデバイスの多くは組み込み分野に存在し、ムーアの法則に従い、より安価になりますが、一方でパワフルになってきます、そして最も重要な事はインターネットに接続できる事です。これが IoT(Internet Of Things)なのです。
今まさに、業界全体が大きな変革が行われおり、Java の開発者にとって大きな変化がおき、大きなコミュニティが形成されようとしています。
我々が現在使用する全てのモバイルデバイスは、相互に接続する事ができリモートから制御もできます。ます。そして将来的には、我々が住む物理的な世界(家電製品や様々な物理的な物)をインターラクティブに制御できるようになるでしょう。
また、クラウドベースでの開発へ本格的にシフトし始めました。
数年前はどのクラウド環境で動作させるのかを議論していました。要求・要望に対する選択、インフラを気にせずに簡単にプロビジョニングできるか否か、アプリケーション開発に集中できるか否かを検討すると当然の事に思えます。また、クラウドベースへ移行する際に、セキュリティや、どのようにしてコンテナ・ベースから、サービス・ベースに移行できるか、それぞれ再度考えなければなりません。また、移植性も考えなければなりません。どのようにしてアプリケーションを物理的なサーバからクラウド環境へ移行するのか。また異なるクラウド環境への移植が可能かどうかも検討しなければなりません。
まとめると、今、IT 業界は信じられないほどの大きな変革が必要になってきます。2013 年の JavaOne では我々の業界を取り巻く変革についてご紹介します。
3年前のオラクルの Stewardship において、Java SE 7/EE 7 に関するメジャーなアップデートの発表を行いました。そして、Java を前進させる事(Moving Java Forward)を発表しました。この中で、IT 業界をとりまく世界では、dizzying(めまいがするような)変化がおきています。我々オラクルは Java の開発者が将来にわたって適用できる技術を身につけるために必要な事を提供しますと強調した。この作業に関して、どうぞご一緒に参加してください。
ここで、今年の JavaOne の最初のデモをご紹介します。皆様は恐らく気付いていないと思いますが、皆様ご自身がこのデモに参加しています。
ここに表示される図は、この会場にお集り頂いている皆様で、パートナー企業の一社である日立コンサルティング・ユーロテック(Hitachi Consulting and Eurotech)が作成したデモですが、モスコーンの会場入り口のドアにセンサーがつけてあり、通過する人を記録しています。そして参加者皆様の来場状況を示すデモです。このデモは、人間か犬かを判別し、入場か退場かも判別します。そして、これはゲートウェイ上で稼働する Java SE ベースのアプリケーションで作成されています。
計算が完了した後、そのデータはクラウド上でアップロードされ、分析と BI(Business Intelligence)アプリケーションを起動し、集計結果を Java ベースのアプリケーションで表示しています。このデモの重要なポイントはいくつかありますが、既存の Java の構成部品を利用し、洗練されたデモを作成する事ができ、また異なる技術を組み合わせ、全ての小型のデバイスからクラウドベースにオープンスタンダードの技術だけを利用してできるという事です。
このデモは、ほんの数週間で実装され、まさに Java の素晴らしさを証明するデモになりました。
ここで、Peter から Nandini Ramani, Vice President of Engineering, Java Client
and Embedded Platforms を壇上に迎え入れました。Nandini はまず、世界における Java 適用状況を歴史を振り返り紹介しました。Java は様々な範囲のデバイスで動作します。以前はそれぞれのデバイス用に特化し、カスタマイズした Java VM の実装を行ってきました。そして、Java はそれぞれの分野において成功してきました。しかし、それぞれの実装は分岐していき年を重ねる毎にどんどん独立して動作するようになっていきました。我々はプラットフォームの視点で考えると、統一されたプラットフォームがとても重要と考えています。
統一プラットフォームは、API と言語仕様の視点で考えなければなりません。Java SE 7 を見てみると3つの実装(CLDC, CDC, Java SE)が存在します。それらは、Java 構文の観点では共通事項がありますが、多くの部分で様々な違いが存在します。CDC、CLDC の存在はプラットフォームとしてはは正しいと考えています。また、言語の視点では、CLDC は今なお Java 1.3 の言語仕様で、CDC は Java 1.4.2 をベースにしています。つまり Java ME は Java SE がバージョン 5, 6, 7 で得てきたような進化や革命に追随できていませんでした。そこで、将来我々は、Java ME と Java SE の統一したプラットフォームを提供する予定で考えています。実際に統一プラットフォームを構築するためには、非常に多くの事を実施しなければなりません。そこで、まず我々は Java SE 8 で CDC の置き換えとなるコンパクト・プロファイルを提供します。
また、API の観点では、Java ME 8 で、NIO, 新しいコレクションのようなライブラリを利用できるようにします。言語の観点では Java ME 8 から、皆様になじみのある構文(アノテーション、ジェネリクス、string in switchのような構文)を使用できるようにします。
つまり、Java MEと Java SE を API と言語の視点で共通部分を増やしていき、複雑な実装の部分を抽象化し、簡単に開発ができる点にフォーカスします。これによって開発者は、ご自身のスキルセットをJava ME, Java SE といったプラットフォームによる区別をなくし、1人の Java 開発者が組み込みからデスクトップまで同じノウハウで共有できるようになります。
組み込み分野における上位レイヤについて紹介します。現在、ARM, freescale, QUALCOMM, Rasbery PI, gemalto, ST など、チップセット提供企業と共にに作業をしています。組み込み分野では、現在開発は断片的です。なぜなら非常に多くのベンダーが存在し、非常に多くのチップセットが存在し、またそれらは、それぞれ別の OS やデバイス・ドライバを使用しています。つまり全てのデバイスを同じように稼働させる事は困難である事を皆知っています。だからそれぞれに特化し開発が必要で断片的になります。一方で、それらのベンダーの多くは、Internet Of Thing を実現する為には、オープン・スタンダードな標準のプラットフォームが必要と考えています。そこで、市場に投入するために Java が合理的な選択肢になっているのです。ARM, freescale, QUALCOMM 等は今年の JavaOne でスポンサー企業として名を連ねていますが、freescale に関しては最終日のコミュニティ・キーノートの基調講演で発表してくれます。そこで何故 Java がそれらの IoT デバイスにとって意味があるのかが語られるでしょう。また、皆様は、デモ・展示会場に是非お越しください。そこで彼らが何をしているのかを是非尋ねてみてください。その時に何故、こうした事に意味があるのかが理解できるでしょう。今年の、Java ME 3.2.0 のリリース以降、ME プラットフォームのポーティングが行われています。Java SE Embedded 同様 Java ME も Rasbery PI のような大きなプラットフォームで利用できます。また、いくつかのパートナーで SDK をリリースして、とても簡単に入手、利用ができるようになっています。これには全ての Java Development Kit が含まれます。
ここで、Nandini は gemalto のワイヤレス・モジュールを観客に見せ、gemalto は Java ME を大々的にサポートしている事を紹介しました。我々は、様々なチップセット用、様々なプラットフォーム用に、積極的に Java ME のリリースを行っています。また、それを実現するために、今年の 8月に Oracle Java Platform Integrator Program を正式リリースしました。このプログラムでは基本的に2つの内容をパートナーに対して提供します。一つ目は、現在まだ、サポートをしていないプラットフォームに対して、簡単に Java SE Embedded をポーティングをできるようにする事です。2つ目は、ご自身のライブラリを使って、例えば、ヘルスケアや、製造、スマートフォン、ファクトリ・オートメーションなど市場のニーズに応えるために、プラットフォームを拡張できる機会を与える事です。
エコシステムを包容(Embrace)し、パートナーにとって必要な機能を、パートナー自身で実装できるような仕組みを提供します。これは大きな一歩です。
コミュニティからのフィードバックは如何ですか?我々は、Java エバンジェリスト・チームを通じてたくさんのコミュニティに対する支援活動を行っており、彼らを通じてたくさんの、積極的なフィードバックを得ています。
ここで、Nandini はサンディエゴで開催されたQualcomm Uplinq conference の Uplinq ハッカソンで最優秀賞を受賞した APX ラボの Andrew Sugaya 氏を壇上に招き入れました。通常、JavaOne の基調講演に招く方は何ヶ月もかけて調整をしますが、Andrew とは数日間をかけて登壇して頂く事を調整しました。それほど Andrew が実装した内容は素晴らしいものでした。
APX ラボではヘッドフォンやワイヤレス・デバイスを作成しています。Qualcomm の Uplinq conferenceでは朝 10:00に開場に集まって朝食をとりイベントを開始します。このハッカソンには4つのカテゴリが存在していて、私は、”Connected to Home experience” のカテゴリに参加しました。それは、まさに Internet of Things を表すカテゴリでした。最初に黒い箱を手に入れました。それは開発プラットフォームとして全ての機能が含まれるものでしたが、その黒い箱はとても強力で、その使い方について最初は理解ができませんでした。幸運にも、私は実装において Java ME を選択し約 7 時間で実装することができました。最初に、部屋の温度データを取得し、そのデータをクラウド上のサーバ側に送信します、サーバ側でデータの解析をし、家の電球の色を変更しるような物を作成しました。彼は言いました。今回は電球を使用しましたが、今や何でもできます、トースターでも、ビールのジョッキ、今座っている椅子でさえ将来的にはつながるのです。
彼は、それまで Java での開発を経験した事はありましたが、 Java ME を使用した経験はありませんでした。しかしJava ME を使うととても簡単に実装できることを理解し、Java ME を選択しました。
ご参考:
http://www.apx-labs.com/company/press/andrew-wins-hackathon/
我々は、プラットフォームの統合、エコシステム、Andrew の経験などについて語ってきました。我々は重要な事を伝えなければなりません、来年の春には Java SE 8 がリリースされますが、Java SE 8 にはたくさんの機能が含まれています。重要な機能には、Lambda 式の対応やJavaScript エンジンの Nashornが重要です。Nashorn は、JSR 292: Supporting Dynamically Typed Languages on the JavaTM Platform を利用した物ですが、これらの詳細は、テクノロジー・キーノートでも紹介されるでしょう。そして、Java SE 8 の先の将来については、Java 9 で Project Jigsaw を導入し、モジュール化が可能なプラットフォームを提供する予定です。また、Java SE 9 以降になるかと思いますが、Java で GPU を制御する Project Sumatra 等も今 OpenJDK の元で開発をはじめています。これらにご興味がある場合、是非、OpenJDK にアクセスして、チェックアウトしてください。
最後にまとめますと、これからの Java は下記のようなロードマップで提供予定です。Java SE 8 のリリース時には Java ME 8 も同時にリリースをする予定です。テストプレビューがダウンロードできるようになっていますので、入手して試していただきフィードバックをください。
最後に、モスコーン・センターに帰ってきた事をとても喜んでいますと語って Nandini は壇上を去りました。
次に、Peter は Cameron Purdy, VP of Cloud Application for Oracle を壇上に招き入れました。Cameron にとって今年は、とてもお忙しい年だと思いますが、Java EE 7 の正式リリース大変おめでとうございます。2年前の JavaOne で私たちは Java EE 7 で何を含めるかを話しました。そして昨年は、Java EE 7 で含まれる機能について紹介しました。そして、今年ついに Java EE 7 をリリースできました。これも、パートナー、業界団体、コミュニティ、そして我々の開発チームの成果です、皆様に大変感謝しています。
ここで、Java EE 7 のメジャーなテーマについて今一度振り返って説明をしてください。最初に、私たちは Java EE 7 では Java の中でもエンタープライズの側面にフォーカスしています。今回、エンタープライズ・ニーズへの対応としてバッチ処理を含めています。また開発生産性の向上も実現しています。Java EE 7 ではとても開発がかんたんになる仕組みを取り入れています。例えば、CDI (Context Dependency Injection)ですが、Java EE 6 につづいて全ての Java EE のプラットフォームで利用できるように改善しています。これによって開発生産性の向上が多いに見込まれます。
また、Java EE 7 の中でもっとも重要なテーマとして HTML 5 のサポートがあげられます。実際とても素晴らしい技術が含まれています。WebSocket,RESTful のサポートなどがあげられます。これらは、通常の Web ベースのアプリケーション開発が可能です。
それでは、Java EE のアプリケーションが、現在のクラウド・ベースのアプリケーション開発への適用については如何でしょうか?
2年前の時点で Java EE 7 のメインテーマとしてクラウドを取り上げておりクラウド環境におけるアプリケーション開発に関する部分を盛り込む予定でした。タイミング的な問題から、Java EE 7 のテーマは HTML 5 対応に変更したわけですが、現在の Java EE 7 でも非常に多くの機能がクラウド環境で利用可能です。
まず、新しいセキュリティ・ロールがあげられますが、クラウドにおけるセキュリティを提供します。また DB などのデータソースの設定も簡単にできるようデフォルトのリソースが利用可能になっています。また標準で DB スキーマを生成する仕組みなども提供され、テーブル作成と同時に事前にデータを取り込む事もできます。
また、一つのアプリケーションから他のアプリケーションに対して RESTful Web サービスを通じて簡単に利用する事もできます。また、JSF では表面的なアプリケーションの開発が可能で、マルチテナントに対応したアプリケーションの開発も容易にできるようになっています。
既にあなた達は、将来的に含める機能について検討していると思いますが、その一部を共有していただけないでしょうか。
Java EE は Java EE 5 以降、Java EE 6, Java EE 7 とエンタープライズアプリケーションにおける簡単開発にフォーカスしてきました。そして、これらの技術間の関連性は今後も継続します。今実際に我々が検討している技術をいくつかあげるとするならば、JCache,JSON-Binding等があげられますが、EE 業界や、コミュニティ、パートナーから、素晴らしいサポートを頂いて、Java EE 業界が何をしているか関連性をたしかめながら検討していきます。
Java EE 7 のローンチの際は、非常に多くの方がイベントに参加し、動画を参照し、実際にダウンロードをしてくださいました。Java EE 7 のお披露目は成功をおさめることができました。
Java EE 7 の開発に並行して実施されていたと想定しますが、2年前の JavaOne で Cameron はもう一つのプロジェクトを紹介しましたが、その進捗について教えてください。2年前に Project Avatar というプロジェクトを発表しました。その時は、とても多くの情報が掲載されましたが、Avatar はいつ出てくるのか
質問をされる事もありました。Avatar の概要は次の通りです。
まず、単純な、HTML 5 対応の Java EE のアプリケーションを作成します。例えば Java EE 7 のWebSocketなどのプログラミングモデルです。次に、従来は、DB に対してリクエスト、レスポンス型の問い合わせを行っていました、もちろんそれも利用できますが、新たに、NoSQL データベースをサポートし、データベース側からライブ情報や変更通知等をアプリケーションに送るような実装もできるようになります。つまり、今までのリクエスト・レスポンス型のアプリケーションではなくイベントによる通知、検知などが行えるようになります。また、Avatar は Java SE 8 上で動作する JavaScript エンジンの Nashorn とも共同動作できるようになっています。Avatar 自身は Java EE コンテナ上で稼働し、既存のJava EE のアプリケーションに対して、Node.js の開発スタイル等を取り込んで、既存の Java EE アプリケーションを拡張できるようになっています。つまり Node.js のアプリケーションがアプリケーション・サーバ上で動作する事になるのです。
今年、ここでご紹介している内容は、プレ・アナウンスメントではなく、正式な公開情報です。本日、ただいまより、Project Avatar をオープン・ソース化し皆様に提供します。これは全く新しいオープンソースプロジェクトです。
Project Avatar のオープンソース化の発表後、Cameron は壇上を去りました。
Peter は最後に下記のようにまとめました。皆様は、いつも Java に関するテクノロジーの情報を探していらっしゃるかと思いますが、OTN の Java の Web サイトから情報を入手してください。また、それ以外にも Twitter, FaceBook などからも情報を入手できます。ぜひ、これらのサイトにアクセスして情報を得たり、またそれらに参加をしてください。
今日、Nandini や Cameron Purdy が話しをした内容をみた時、この業界に大きな変化がおこっている事がご理解いただけるでしょう。今日参加して頂いた事を心より感謝します。ファンタスタティックな週をお迎えください。