JavaOne Tokyo 2012 Call For Papers 募集中

JavaOne Tokyo 2012 を 2012 年 4 月 4日~5日の2日間で開催します。既にいろいろなセミナー等でご案内をさし上げているため、ご存知の方も多いかと思いますが、今日は JavaOne 2012 Tokyo の一般公募セッション (Call for Papers) についてご案内させていただきたいと思います。

JavaOne Tokyo では朝はやくから夜遅くまで Java に関する技術情報等を取得できるようになっていますが、通常セッション枠、BoF 枠と用意しそれぞれで一般の開発者の皆様もご登壇いただけるように公募を行なっています。一般公募の募集期間は 2012年1月20日(金)17時まで行なっております。

また、本公募は、日本だけではなく、US Oracle 本社による審査も行われますので、実際の発表のタイトルは日本語でも結構ですが、英語で説明を記載できる方は英語でご記入してください。

残り1週間程となっておりますが、JavaOne Tokyo で私も発表したいという方がいらっしゃいましたら是非ご応募ください。
皆様のご応募を心よりお待ちいたしております。

2012年1月11日 at 3:29 午後

はじめての Java Persistence API

今日は、Java Advent カレンダーの一貫で 12/19 分のエントリを記載します。昨日のなぎせさんに続き掲載します。また明日は私の盟友である岡崎さんです。

先日、なぎせさんより、「ProxyパターンとProxyクラスと黒魔術」と題してSQL の事を取り上げていただきました。また私自身、先日岡山のイベントで JPA について登壇したばかりなので、今日は DB つながりということで JPA (Java Persistence API) について岡山の資料を利用しながらご紹介します。

岡山の発表資料の全部はこちらです。

Java でデータベース (DB) 接続をする際、Java で一番最初に DB 接続をサポートした事から、ながく JDBC が利用されてきました。その後、J2EE に EJB の CMP Entity Bean が導入されましたが、これはとても重量級で扱いにくいフレームワークだったため、残念ながらあまり浸透しませんでした。それに変わって登場したのがオープンソースのフレームワークである JDO/Hibernate などです。

昨今、「もう Java EE 6 でいいんじゃない」、Java EE 6 はかんたんになりましたよ、などのブログ・エントリを書いたり、いろいろな所で登壇させて頂きましたが、JPA もまたかんたんに利用できるようになった、 Java EE の標準 O/R マッピング技術です。JPA は上記のようなオープンソースの O/R マッピング・フレームワークの良い部分を数多く取り入れ、かなり扱いやすくなっていますので、是非今一度標準の JPA のご使用を検討ください。また、JPA 2.0 は JPA 1.0 に比べ表現力がかなり豊かになっていますので、JPA 1.0 で物足りなさを感じられた方も今一度ご検討ください。JPA 2.0 になり、通常のビジネスアプリケーション開発のニーズをほぼ満たせると考えております。

また、ご存知の方もいらっしゃるかと思いますが、JPA は Java EE コンテナ以外の、通常の Java アプリケーションからも利用することができるようになっています。実際、JPA は GAE などでも利用できます。つまり今まで JPA はアプリケーションサーバ上でしか利用できないと思われていた方も、Java EE 環境がなくても JPA は利用できますので Java アプリケーション開発等コンテナの無い環境でも使用をご検討ください。

それでは、JDBC に比べて何が便利になっているかについて説明します。JDBC は低レベルの API しか提供していなかったため、自分で考慮、実装しなければならない事が数多くありました。例えば、JDBC をそのまま利用した場合、コネクションプールの実装はデフォルトでないため、DB にたいする問い合わせ(クエリ)を行う際に、毎回 DBに対してコネクションを張りにいかなければなりませんでした。またキャッシュも実装されていないため、毎回 DB にたいする操作を行わなければなりません。DB サーバにたいする問い合わせ(クエリ)数が少ない場合は、コネクションプールも、キャッシュもさほど重要ではないかもしれませんが、Web アプリケーションのように、クライアントからのリクエスト毎に DB の情報を参照するようなアプリケーションの場合、リクエスト毎に接続を張る、もしくはたとえ同じ情報を読むだけでも DB に接続するなど、必要以上に DB サーバに対して高負荷が掛かってしまいます。このような場合、コネクションプールを利用して DB 接続を再利用したり、キャッシュを利用する事で DB サーバにたいする負荷を軽減できます。さらに、JDBC を利用した場合トランザクション管理についても全て自身で実装、管理しなければならないため、JDBC を利用した場合、数多くの事を考慮しなければならない事がわかります。
JPA を利用すると、このような JDBC で開発者が考慮し実装しなければならない多くの機能を JPA のフレームワーク自身で既に実装していますので、開発者はそれらを再利用、もしくはコンテナに任せることがで、より安全にスケールするアプリケーションをコード量少なく短時間で開発できるようになります。つまり一言でいうならば、JPA を使用する場合、開発生産性が大幅に向上するという事です。たとえば、統合開発環境と連携する事で基本的な CRUD 操作のひな形まで自動生成してくれるためコード記述量も格段に減ります。

それでは実際に、 JPA の構成要素についてご紹介します。JPA は persistence.xml という XML 設定ファイル中に PersistenceUnit を(1つ以上)定義します。この PersistenceUnit 名は EntityManagerFactory のインスタンスを生成するために必要です。EntityManagerFactory から EntityManager のインスタンスを生成し、DB にたいする操作をおこないます。

永続化:EntityManager#persist()
削除:EntityManager#remove()
検索:EntityManager#find()

DB の操作を行う際、DB テーブルにたいして Java オブジェクトにマッピングした、Entity クラス(@Entity アノテーションを付加したクラス)を利用しておこないます。Java はオブジェクト指向型言語でクラスとして表現します、一方 DB はテーブルとして表現し、個々のデータを行(ロー)で表現します。JPA 2.0 は JPA 1.0 にくらべ Entity と DB テーブルのマッピング方法も数多く追加で提供されていますので、複雑な DB テーブルも Entity としてマッピング可能です。(本ページ下の参考資料をご参照)


繰り返しますが、Entityは @Entity のアノテーションを付加した単なる POJO です。この Entity クラスは JPA によって管理されていない状態では、単なる Java のオブジェクトとして扱います (例 new MyEntity() でインスタンスを生成した直後の状態)。Persistence Context による管理状態と管理されていない(デタッチ)状態でなにが違うかライフサイクルを用いて紹介します。管理状態とは、Persistence Context によって管理されている状態を指し、すべての Entity はPersistence Context によって管理されています。この状態の時に EntityManager を使って DB に永続化等を行う事ができます。

ライフサイクルの各状態を、実際のコードを用いて説明します。この例ではまず、Customer クラスが Entity で DB の CUSTOMER テーブルにマッピングしています。new Customer(); でインスタンスを作成します。この際、Java の Heap に Customer オブジェクトは含まれていますが、この時点では Persistence Context 内でまだ管理されていません。EntityManager#persist(customer) を実行する事により Persistence Context で管理状態となります。この状態で DB テーブルに対して操作を行うことができますが、たとえばトランザクションのコミット tx.commit() が呼び出されると、DB に対して永続化が行われ、この時に Customer の Entity は Persistence Context の管理状態から外れます(デタッチ状態)。ただし、この Persistence Context の管理状態から外れた際も、Customer は Java Heap 内に参照が残っているため、Java プログラムからは Customer オブジェクトに対しては操作する事ができます(例えば、Customer 電話番号の変更等)。管理状態から外れデタッチ状態の Customer に対して変更を加えた場合、対応する DB の行(ロー)と整合性がとれていません、そこでデタッチ状態の時に加えられた変更を EntityManager#merge() によって更新することができます。

上記までで、Entity, Entity のライフサイクル等を紹介しましたが、EntityManager の管理はアプリケーションサーバ等のコンテナ上で管理する方法と、アプリケーションで管理する方法の二種類があります。またそれぞれでできること、実装方法も異なります。下記にそれぞれにおける違いについてご紹介します。まず、コンテナ上で EntityManager を生成する方法は、@PersistenceContext のアノテーションを付加し persistence.xml に定義した PersistenceUnit 名(ここでは MYJPA_PU)を指定し、EntityManager にインジェクションします。ここでインジェクションされた EntityManager はコンテナ上で動作するため、トランザクション管理等もコンテナ側で行なってくれます。つまりトランザクション管理のコードを明示的に記載しなくても、EntityManager#persist() を実行した際に何らかの例外が発生した場合は、コンテナが自動的にロールバックします。

一方アプリケーションから管理する場合は、@PersistenceContext のアノテーションを付加する方法ではなく、Persistence.createEntityManagerFactory(“MYJPA_PU”)でファクトリを生成後、EntityManagerFactory#createEntityManager() にて EntityManager のインスタンスを生成します。アプリケーションから管理する場合は、コンテナによってトランザクション管理ができないため自身の手でトランザクション管理のコードを記述する必要があります。

最後に DB にたいする問い合わせ方法について紹介します。最もかんたんな方法として EntityManager の find(), getReferecnce() を利用して ID を指定し行う方法があります。しかし一般的には SQL に精通する開発者が問い合わせ(クエリー)を実装しやすいように、JPQL(Java Persistence Query Language) というSQL ライクなクエリ言語を使用して問い合わせをおこないます。通常の SQL はカラムを指定して問い合わせを実施しますが、JPQL では Entity を使用して問い合わせをおこないます。JPQL もまた JPA 2.0 は JPA 1.0 にくらべ表現力が高くなっており、さまざまな問い合わせを実現できますので是非 JPQL をご利用ください。

次に、DB へ問い合わせを行うために、JPQL よりもさらに型安全性を高める実装が可能な Criteria API について紹介します。Criteria API は Java プログラミングによる問い合わせが可能な API を提供します。具体的には、CriteriaBuilder, CriteriaQuery などのクラス、メソッドを使用して実装します、例えば下記のように JPQL クエリを、Java プログラミングで実装する事ができます。

ここで一番最後の行に記載する person.get(“name”) と記載している箇所に注目してください。ここでは、正しく “name” という文字列を使用して記述していますが、仮に “name” と入力すべき所を “nema” と入力ミスしてしまった場合を考えてください。このプログラムを実行するためコンパイルをおこないますが、文法上の間違いはないためコンパイルエラーは発生しません。結果として実行時にランタイムエラーが発生します。


つまり上記のように、Criteria API だけでは完全な型安全性が確保できていないことがわかります。型安全性をより高めるためには、Criteria API に加え Metamodel API を併用します。この Metamodel クラス(元の Entity に対して ”_” アンダーバーが付加)は統合開発環境によっては自動生成してくれるため、自分で作成しなくても良い場合もありますが、この Metamodel クラスを Criteria API と併用すると、person.get(“name”) の代わりに person.get(Person_.name)と記載でき、クラスのフィールドで指定可能となるため、コンパイル時に間違いを検知できるようになりランタイムエラーの発生を抑制できます。型安全をより求める場合は、Criterial API と Metamodel クラスを共にご使用ください。

最後に、繰り返しになりますが、
JDBC で実装する場合、自分で実装しなければならないコード、検討しなければならない箇所が多々ありますが、JPA を利用すると、そういった共通で必要な機能はすべてフレームワークが生成してくれています。全ての場合で JPA が有効とは申し上げませんが、JPA を使う事によりスケーラビリティを高める事が容易にできたり、また開発生産性が高まる事によって、よりビジネスロジックの開発に集中していただく事ができるようになります。また運用・保守時においても実装コードの可読性が大幅に高まるため、より保守しやすくなります。今まで標準以外の O/R マッパを使っていた方々も、標準でここまで簡単にできるようになっています。是非 JPA 2.0 を今一度ご検討ください。

JPA 2.0 の新機能はこちらもご参照ください。

私が参考にする Web Page
Java Persistence

おすすめ書籍

2011年12月19日 at 2:03 午後 2件のコメント

Java SE/EE の今後について

先日、Java Developer Workshop #2 へご参加いただいた皆様、誠にありがとうございました。先日の発表で使用したスライドを公開いたします。下記は、Java SE 8, 9, 10, Java EE 7 に関する今後のロードマップ、新機能などをご紹介していますので是非ご覧ください。

当日発表していただいた方々の全てのスライドはこちら(OTN セミナー・オンデマンド・コンテンツ)から入手することができます。

※ 櫻庭さんから P16 の説明箇所についてご指摘頂きました。(2011/12/07 追記)
> p16の最大スコアの取得はコンカレントではなく、シーケンシャルです。
P16 にコンカレントと記載していますが、シーケンシャル実行の間違いでした。

2011年12月5日 at 9:54 午前 2件のコメント

Java 関連ビデオのご紹介

もうすでに、Java Life のラップはご存知の方が多いかと思いますが、Java Life のラップはメーキングビデオ等も作られていたりします。その他今年の Java SE 7 Launch イベントや、 JavaOne の基調講演で実際に流されたビデオをご紹介します。クールなビデオもありますので、是非暇な時にでも御覧ください!!


(Java Life RAP)


(Java Life RAPのメーキング)


(Java SE 7 Launch イベント)

(JavaOne 基調講演で流されたビデオ)

2011年12月4日 at 12:28 午前

オラクルの Java エバンジェリストとして活動再開して1年経過

Duke
オラクル社員となって、昨年の 12 月 1 日にまた Java エバンジェリストとして活動を再開し早いもので1年が経過しました。この1年間様々な出来事があり、色々と大変なこともありましたが何とかそれらの試練を乗り越えることができました。これも一重に私を支えてくださった諸先輩や同僚、そしてJJUG の皆様や日本全国の勉強会でお会いした多くの開発者の皆様のおかげです。皆様のご支援があったからこそ私もこの1年精力的に活動ができました。皆様本当にありがとうございました。来年開催予定の JavaOne Tokyo に向けてこれからも精力的に活動をしてまいりますので、今後もどうぞご支援の程宜しくお願いします。ちなみに JavaOne 2012 Tokyo の登録開始は 1 月 24 日(火)を予定しています。それまで是非楽しみにお待ちください。

ところで、1年前に書いたブログを見てみました、それによると1年間でこんな事を実現したいという意思表示を行なっていました。https://yoshio3.com/2010/12/01/

● 日本 Oracle における Java の窓口を用意する予定です。
→ 実現不可
● Java に対する継続的なメッセージアウトを行います。(ブログ、講演等で)
 ■ 上記を通じJava に対する皆様の不安を払拭していきます。
 ■ Java が今後も安心してお使いいただけるプラットフォームである
  事を、ご理解頂けるよう努めてまいりたいと思います。
→ デブサミ、記事、インタビュー、Java SE 7 Launch、JavaOne 報告会
  などを通じ少しでもメッセージをお届けできたのではないかと思っております。
● 2012 年開催予定の JavaOne (Tokyo or Yokohama ?!) の成功に向けて
 各種方面の調整等を行っています。
→ これから本格的に活動開始ですが、各種コミュニティのご意見などを
  承りながら成功に向け今後も活動したいと思っております。

これらの中で実現できなかったのは下記でした。

● 日本 Oracle における Java の窓口を用意する予定です。

実現に向け取り組んでいたのですが、諸事情により実現ができず申し訳ございませんでした。今は私がコミュニティの皆様の声を吸い上げ、日本オラクルもしくは本社へ情報インプットしていますが、これを将来的には会社としてできればよいと思っております。それに向け社内で継続して支援者、支援組織を模索したいと考えております。
もちろん、今まで同様、私にメッセージをお届けいただければ私に可能な事は対応していきたいと考えておりますので今後もどうぞよろしくおねがいします。

最後に、
この1年間できた事とできなかった事ありましたが、ご支援頂いた皆様本当にありがとうございました。来年に向けまた精力的な活動を行なっていきたいと思いますので、引き続きどうぞよろしくおねがいします。

2011年12月1日 at 1:55 午前

GlassFish ユーザ・グループ・ジャパン 2011 年末勉強会&忘年会

今年も昨年末に続き年末に GlassFish 勉強会を開催することにしました。今年は実際の企業環境での利用経験なども聞ける基調な機会です。発表者のご要望により当日 UStream ができない内容もあります。ぜひ直接ご参加ください。また忘年会の開催も予定していますので、ぜひ忘年会にもご参加ください。

参加のご登録はコチラから

アジェンダ:

  • GlassFish FAQ 回答セッション (50分)

 GlassFish の運用に関して皆様が頻繁に頂く疑問にお答えする形で
代表的な質問に対する回答を分かり易くご紹介します。

 例:
1. GlassFishを(Tomcatのように)サービスで動かすことは出来ますか?
2. GlassFish 3.1はJava 7環境で動作しますか?
3. GlassFish 4.0の管理コンソールがWebLogicみたくなるって本当?
4. Windows環境でGlassFishのクラスタを組むにはどうすればいいの?
5. GlassFishに日本人のコミッタはいますか?
6. なぜGlassFishよりTomcatの方が選ばれているのですか?

 ご登壇者:
GlassFish ユーザ・グループ・ジャパン 蓮沼 賢志氏

  • 休憩 10 分

  • タイトル:楽天におけるGlassFishの使い方 (50分)

 GlassFish v2.1 から GlassFish を使い続ける楽天株式会社において
導入の背景、運用規模、実際にどのような技術を組み合わせて
利用しているかについてお話頂きます。

 ご登壇者:
楽天株式会社 仲宗根 徹也氏
楽天株式会社 木村 亮氏

日時:12 月 9 日(金)
時間:19:00-21:00(会場:18:30)
会場: 日本オラクル株式会社 本社
東京都港区北青山2-5-8 オラクル青山センター
最寄り駅: 地下鉄銀座線 外苑前駅 4B出口
主催: GlassFish ユーザ・グループ・ジャパン
参加費用: 無料
定員: 80名

そして勉強会の後、GlassFish ユーザ・グループ・ジャパン 2012 懇親会&大忘年会を開催も予定しています。
忘年会の参加ご登録はコチラから

2011年11月30日 at 10:40 午後 2件のコメント

JavaOne 2011 Day 3 Oracle 感謝イベント

「JavaOne Day 3 感謝イベント開催」

JavaOne の 3 日目はキーノートはなく朝 8:30 から技術系のセッションが開始されています。私はこの日明け方までレポートや他の仕事を行っていたため、午前中少し仮眠をとり Road to Java EE 7 のセッションから参加しました。この日はキーノートがないため参加者の皆様には夕方まで、セッションの参加に没頭して頂くことになります。私はいくつかのセッションに参加した後、仕事で Moscone West 等に行ったりもしていました。Moscone では JavaOne とは別途 Oracle Open World というイベントが開催されており(こちらの方がイベントとしては大きい)、開発者向けのイベントというよりも、ビジネス色の濃いイベントが開催されていました。実際に行ってみると JavaOne ではネクタイをしている方は殆どいないのですが、OOW の会場では多くの方がネクタイを付けており、JavaOne 会場になじんだ服装で行くと少し浮いてしまう感がありました。




Oracle 感謝イベント

さて、夕方からは Oracle の感謝イベントが「トレジャーアイランド」と呼ばれる場所で開催されました。Sun の頃の JavaOne と同様、ご参加頂いた皆様に喜んで頂く催し物を提供しますが、今回 Oracle はこのトレジャーアイランドと呼ばれる場所で OOW/JavaOne に参加頂いた皆様に Sting のコンサートや、アトラクション等を無料で開放しました。





もちろん食事も無料です。ホットドックや BBQ を提供するコーナも用意されています。



とても寒い夜だったのですが、月が綺麗に見えていたので月の写真も撮ってみました。

3日目は、夕方まではセッションを受けて頂き、夜から感謝際が開催され1日が終わっていきました。
このような遊びも提供するのは JavaOne らしいですね!!

2011年10月11日 at 6:40 午前

JavaOne 2011 Day 2 Java 戦略キーノート

「JavaOne 2011 2日目: Java 戦略キーノート」

今日から JavaOne 2 日目の開催で Java Strategy(戦略) キーノートが開催しました。このキーノートでは、今後の Oracle の Java に対する方向性、また今後提供される製品に含まれる様々な技術、また新しくパートナーもしくは JCP の EC に選出された方など非常に内容が豊富で開発者をわくわくさせるアナウンスが多くありました。

まず最初は、 Diamond スポンサーの1社である Juniper Networks 社の CTO である David Ward 氏による “how programmable networking is critical to application development (プログラム可能なネットワークはアプリケーション開発にとって重要なのか?)” という発表から始まりました。彼は、現在クラウドが全盛の世の中で “ソフトウェアで定義したネットワーク(software-defined network) “をプログラミングできることを開発者は認識し、活用すべきだという内容を紹介していました。

続いて、Hassan Rizyi (Senior Vice President, Oracle Fusion Middleware) が壇上にあがりました。

Hassan は Java が今後も前に向かって進むための3本柱を紹介しました。

● コミュニティ
● 提供する技術
● Oracle の Java に対するリーダシップと管理

Hassan はこれらの紹介中に、直近の Java の各技術 (Java SE 7, Java EE 7, JavaFX 2.0, Java ME)における活動に対するスコアカード(成績表)を提供しました。この中で JavaFX 2.0 は今年の JavaOne 期間中に提供した他、それ以外の技術もそれなりに良い結果を出した事を示しています。例えば Java SE 7 は今年 7 月 28 日に予定通り提供した他、Java SE 8 も JSR が登録され対応中である事、着実に前に進んでいる事がこれらのチェック項目から分かります。この中で本日赤文字で記されている Mac OS X 上 の JDK 7 開発者プレビュー版の提供を正式にアナウンスしました。

Mac OS X における JDK 7 の開発者プレビュー版を正式発表

その後、Hassan は下記の3名を壇上に迎えました。

IBM Jason Gartner 氏
RedHat Dr. Mark Little 氏
Intel Steven Chin 氏

ここで、IBM の Gartner 氏は IBM の環境上で動作する新しい Java SE 7 を先週提供した事を発表しました。その他、Intel のハードウェアプラットフォームではこの4年間で Java のパフォーマンスが 14 倍も向上した事等も伝えられました。

Hassan に続いて壇上にあがったのは昨日も登壇した Adam Messinger でした。
Adam Messinger は新しいアプリケーションモデルや新しい機器の上で Java が動作する
よう動作環境が拡大していくのが自分の役目である事を述べました。


そしてこれらを実現するための重要な要素が Java SE 8 で提供されるモジュール化の昨日である事を伝えました。一方で Java SE 7 で提供された Project Coin や Java SE 8 で提供される Lambda 式は開発者の開発生産性を向上する技術である事を述べています。

続いて、Adam は Twitter 社の Rob Benson 氏を壇上に迎えました。Rod 氏は Twitter 社のトラフィックを次のように紹介しました。

● 2 億 3000 万リクエスト/日
● ストリーミング API で 約 6 テラバイトのデータを配信/日
● パブリック API 13 億リクエスト/日

そして、これらの処理を実行できる環境が現在だけではなく将来に渡っても必要だった事を延べました。また、 Java を選んだ理由として複数の言語 (Scala, Clojure) をサポートしていたからだとも述べました。さらには強力で巨大なオープンソースコミュニティを持つ事なども理由として挙げました。最後に、Twitter 社は OpenJDK コミュニティに参加し、JCP のメンバーとしても活動する事を発表しました。

Twitter 社 JCP の EC メンバーに!!


続いて、Adam は JavaFX の今後の重要性を改めて発表しました。今後のリッチクライアントアプリケーションの開発のメインは JavaFX で行って頂くことを延べ、既存の Swing アプリケーションとの連携についても述べました。またビジュアル開発が可能な JavaFX Scene Builder 等も紹介しました。その後、Adam は同僚である Nandini を壇上に迎え様々なモバイル機器上で動作する JavaFX のゲームのプロトタイプをデモしました。

ここで多くの開発者の注目を浴びたのは、Nandini が Apple の iPad 上で JavaFX の
ゲームを動作させた事です。今まで iOS 上のアプリケーションは Objective-C で開発
する必要がありましたが、JavaFX を使って iPad アプリケーションを今後作成できる
ようになる日がやってくるかもしれません。

最後に、Adam は重大な発表を行いました。今までクローズドで開発していた JavaFX を最初はコンポーネントからオープンソース化し、将来的にはフレームワークもオープンソース化する事を発表しました。また OpenJDK コミュニティの承認が得られた後、JavaFX を標準化し Java SE の一部として使えるようにする計画がある (JavaFX 3.0) 事も発表しました (Java SE 8 以降の予定)。これにより、今後 JavaFX は今まで以上に重要性を増し、Java の標準リッチクライアントアプリケーションを作成するための技術として使われるようになる事でしょう。

リッチクライアントにご興味のある方は、つい先日アナウンスされたばかりの JavaFX 2.0 を使っていまから JavaFX の世界に足を踏み入れましょう。

続いては Mobile & Embedded です(ところで、最近Java MEよりJava Mobile & Embeddedとカテゴライズする事がありますが、Embeddedの中にSE EmbeddedとCDCが含まれるためです)。Mobileでは、Java ME/CLDCがJava SEに同期する、つまり次のバージョンはJava ME 7/8となる事が発表されています。もちろんメジャーバージョン番号だけでなく、SE 7の言語拡張をMEへ、MEのAPIをSEでも、という同期が予定されるようです。一方、Embeddedでは、ようやくCDCとJava SEがJava SE 8で統合される事が発表されました。Java SE 8のモジュール化実装に基づき、組込みデバイス向けにサブセットしたCDC Profileが用意されていきます。さらに、なんとJavaFXをCDC Profileの標準GUIとして採用する方針とのこと、JavaFX Mobile、JavaFX TVがJavaFX 2.0で打ち切らましたが、これは組込み開発者にとってはとても嬉しいニュースです。ゲストには、SE EmbeddedやOJECの強力なパートナーARMのVPであるLance Howarthや、Feature Phone (Java Mobile)向けにもアプリを配布するGetjarのCEOのIIja Laursがスピーチを行いました。

戦略キーノート後のJava ME (こちらはMobile & EmbeddedにCardも含まれてます)に関するプレスリリースでは、Java ME 7(CLDC)を新しいJSRとしてJCP内で広く議論していくとのアナウンスも出ています。
http://www.oracle.com/us/corporate/press/512685

モバイル系の話の後、Cameron Purdy による Java EE のロードマップの紹介がありました。Purdy は始めに “エンタープライズアプリケーションの標準開発プラットフォームは” Java EE だけで、Java EE はコミュニティ、複数ベンダ、オープンソース
プロジェクトを通じて入手した技術であると述べました。また、彼は世界中のエンタープライズ開発の中で現在、”ナンバー1”の選択肢であり、4000 万以上のダウンロード数がある事も付け加えました。また、今後 java EE プラットフォームは PaaS 環境における標準になるであろうとも述べました。

● 次期 JPA (EclipseLink) のマルチテナンシー対応
● Caching API
● JSON サポート
● REST サポート

続いて、Cameron は ESPN の Sean Comerford 氏を壇上に迎え、ESPN においてプロプラエタリティのコンテナからオープンソースのコンテナに移行した話をした彼らは実際 GlassFish を採用し Java EE の使用のいくつかの部分を実際に使用している。Sean 氏は ESPN は誰でもどんな時にもスポーツニュースを提供するために様々なデバイスをサポートしなければならないが、その際に JAX-RS と CDI を使用し簡単に実現したと述べた。またクラウド環境で使うためにより簡単な作業で作業効率があがるとも述べました。

最後に Adam Messinger が壇上に戻ってき、Cameron と共に Project Avatar と呼ばれる
新しいプロジェクトについて語りました。HTML 5の登場により Web システムはクライアント/サーバ型のアーキテクチャに向かうとし、デスクトップのブラウザから、モバイル機器のブラウザまでクロスプラットフォームの問題がまた再燃する可能性がある事が予想されます。これらを解決するために Project Avatar では動的なリッチクライアントのソリューションを提供します。

※ Project Avatar についてはまだまだ情報が少ないのですが、今後情報が入り次第
 追って報告します。

本日アナウンスされた内容のまとめ

● Java SE 7 の Mac OS X 対応
● Java SE 8 のロードマップ紹介 (2013 年夏頃 ※ 2012 年 冬リリース予定が変更)
● JavaFX Windows, Mac OS X, Linux, 組み込み環境
● JavaFX のオープンソース化と標準化 (Java SE 8 以降)
● Java EE 7 クラウド対応
● Project Avatar Java 用の HTML 5 統合

その他
● Twitter 社の OpenJDK, JCP の参加
● IBM OpenJDK 7 の提供開始

2011年10月5日 at 10:59 午後 1件のコメント

JavaOne 2011 Day 1 テクニカル・キーノート

「JavaOne 2011 San Francisco 始まる – Java One テクニカルセッション -」

10 月 3 日 JavaOne 2011 San Francisco がついに開催されました。世界中の Java 開発者にとって1年に1度の世界最大のイベントに今年も世界中から多くの方に集まって頂きました。今年は趣向をこらし技術イベントなので技術から始めようとの趣旨の元一般の Keynote より先にテクニカル・キーノートを実施するという開発者にとって、ほんの少しだけにくい演出もありました。

今年の司会進行は、今や Java の顔といえばこの人、Adam Messinger (Vice President of Development, Oracle Fusion Middleware) が担当しました。Adam から今年の参加者は昨年に比べ増加している点や、今後開催される世界の JavaOne について、そしてもちろん来年開催する JavaOne Tokyo 2012 についても紹介しました。(Adam さんを最初に壇上に迎えるアナウンスの際、彼の事を Mark Reihhold(後述) と紹介され、僕は Mark じゃないんだけどね、なんて笑いながら軽い口調で言って会場を和ませる事ができるのも Adam さんの人柄だからできる所でした。)

今後の JavaOne の予定

● 2011 年 12 月 6-8 日 (Latin America)
● 2012 年 4 月 4-6 日 (TOKYO) ※実際は 4/4 – 4/5 の 2 日間

今年の JavaOne を迎えるに辺って改善・検討した点

● より広い空間(会場、展示空間等)
● 参加者の増加
● 拡張された技術項目
● すばらしいコミュニティとの協力

ハードウェアと共に成長・進化する Java


Adam からの紹介により Diamond スポンサーである Intel の Doug Fisher 氏よりスポンサーセッションが開始しました。 Doug Fisher 氏のセッションでは Intel における長年の Java との協力関係について、他の Intel 社員と共に Intel ハードウェア・プラットフォームに おける Java VM の最適化やミドルウェアにおける最適化についてお互いの社員が壇上に登場し発表を行いました。また Doug からは Java VM のパフォーマンスを大幅に改善するためオラクルと継続して協力し Java SE 7/8 でも Intel プラットフォームは最適な環境である事を紹介しました。

また、オラクルの Ashok Joshi (Senior Director of Development NoSQL Database) からは、新しい製品であるOracle NoSQL Database の紹介を行いました。Ashok の JavaOne での説明はとても短いものでしたが、Oracle Open World のセッションで詳細が別途報告される物と想定しております。

進化から革命へ : Java 7 から Java 8


さて、テクニカル・キーノートの最初を飾るのはやはりこの人、今 Java Platform 開発者の中で最も重要なキーパーソンの一人である Mark Reinhold (Chief Architect of the Java Platform Group) が Java SE Platform について語りました。彼はまず始めに今年 7 月 28 日にリリースされた Java SE 7 について紹介する所から始めました (Project Coin, Invokedyanmic, Fork/Join 等)。

この中で Invokedynamic の説明の箇所では元同僚でもある JRuby の開発者の一人Charles Nutter 氏を壇上に呼び、Invokedynamic により JRuby のパフォーマンスが著しく改善された点等を紹介しました。また、invokedynamic により今や Java 言語だけの実行環境ではなくなった Java VM は他の動的言語もサポートします、その中で今回Mark により JavaScript エンジンである Project Nashorn の紹介も行いました。また、来年末リリース予定である Java SE 8 についても紹介しました。Java SE 8 では Project Lambda, Project Jigsaw と呼ばれる2つのプロジェクトで実装される成果物が大きな変更点である旨紹介し、Lambda, Jigsaw それぞれについて如何に Java 言語が変わっていくかについて説明しました。Lambda, Jigsaw については別途紹介予定なため本誌では説明を割愛します。

最後に Mark から今回 Java SE 9 について初めて触れられました。

Java SE 9
  ● self-tuning JVM
  ● improved Native Integration
  ● Big Data
  ● Reification
  ● Tail Calls/Continuations
  ● Meta-Object Protocol
  ● Multi-Tenancy
  ● Resource Management
  ● Heterogeneous Computer model

祝 : JavaFX 2.0 正式リリース




今年の JavaOne 2011 の目玉といえばこれでしょう。JavaOne 開催初日である 10 月 3 日待望の JavaFX 2.0 が正式にリリースされました。JavaFX の説明では JavaFX のチーフ・アーキテクトである Richard Bair (Client Java Platform, Oracle) が担当し発表を行いました。彼は JavaFX はクロス・プラットフォームにおける相互運用性が実現できる事、開発生産性が高い事が重要である事を延べ、それを実現する為のツールとして下記の4製品のリリースを発表しました。

● JavaFX 2.0 の正式リリース
● JavaFX 2.0 Developer Preview for Mac OSX
● JavaFX Scene Builder Early Access
● NetBeans 7.1 Beta (JavaFX 2.0 対応)

JavaFX 2.0 のデモでは 2D/3D のグラフィックを使用したアニメーションの動作や
非常にリッチな表現が可能なテーブル(表)等のデモを行った他、JavaFX ラボから
来た方は JavaFX 2.0 を使用して 3D で書かれた Duke をモーションキャプチャして
操るデモを行い多いに会場の注目を浴びていました。JavaFX の表現力はとても豊か
なため是非ご使用ください。

クラウドへ移行する Java EE


JavaFX のデモに続いて Java EE のスペックリードである Linda Demichiel から Java EE 7 について説明し、今後 Java EE が PaaS 環境へ対応する事を述べました。さらにパブリッククラウド、プライベートクラウド、ハイブリッドクラウドを実現したいユーザや顧客に対してそれを実現する方法を提供したいと述べました。
具体的に クラウド環境へ適用する為に、新たに JAX-RS クライアントAPI, キャッシュ API, 状態管理 API, JSON API 等を追加予定である事を発表しました、また API の追加に加え既存 API をマルチテナンシー対応にするため拡張する事も説明しました。また Linda の同僚である Arun Gupta より Java EE の参照実装である GlassFish を使用してサーバの使用状況に応じて動的にインスタンスを増やすデモの実演等も行われました。

Arun が実施したデモは http://glassfish.java.net/javaone2011/ のサイトから入手する事も可能です。

Java Mobile&Embeddedハイライト



時間がおして始まったJava Mobile & Embeddedパートは、スペックリードのHinkmondが、2011年に達成したJavaCard、Java Mobile、Java Embeddedに関するアップデートを駆け足で紹介してくれました。JavaCardからはNFCやM2Mへの対応、Java MobileではWeb Integrationや新しいクールなUI、Java Embeddedではエンタープライズとの統合(おそらくBDBやMobile Serverとの連携)や、Java TVでの新しいメディアストリームアプリケーションの紹介がありました。ちなみに、JavaCardはこれまで65億枚の出荷実績を持ち、Java Mobile(携帯電話)は30億台、Java TV(テレビ)は1.25億台の実績のあるテクノロジーです。また、7月のJava SE 7のGAと同時にJava SE 7 for Embeddedをリリースした事も重要なアップデートとして触れられました。2011には他には次のようなアップデートがありました。

Oracle Java Wireless Client 3.0
JSR 229 1.1: Payment API
LWUIT 1.5
JSR 253: Mobile Telephony API
Java ME SDK 3.0.5
JSR 172 1.1: J2ME Web Service API
Oracle Java Embedded Client 1.x
Java SE Embedded 7
Java Card Development Kit 3.0.4
Oracle Java Wireless Client 3.1
Oracle Java Services Bridge Beta

デモでは、Java MobileのNetwork APIが紹介されました。Network APIはキャリアがネットワーク機能を開発者へ利用可能にするものです。実際に、最近クーポンサービスなどで流行っている位置情報を使ったジオフェンス(仮想的な地理的境界)を利用し、AdamがOakland駅に到着したと同時に携帯電話に、SMSで周辺情報がプッシュされるデモが実演されました。

もう一つはTVのデモで、PS3のJavaアプリケーションからDLNA対応のプリンタやスマートフォンへネットワーク連携するアプリケーションでした。RIOのBlu-rayのポストカード作成アプリケーションを使い、再生しているBlu-rayムービーから好みのシーンをキャプチャして、そこに好きなメッセージや画像を入れて加工し、DLNA経由でポストカードをプリンタへ送り印刷して見せました。また、出力先を変えてスマートフォン(Androidアイコンが!?)に送信して同じ画像を再生して見せてくれました。

時間オーバーして始まったため、Hinkmondのセッションは10分しか無くちょっと残念でした。しかし、デモグラウンドでは約1/3のブースがJavaCard, Java Mobile, Java Embedded関連で、スマートメータやヘルスケアモニタなど新しいJava搭載デバイスのデモもたくさん紹介されていました。また、2日目のStrategy Keynoteの方で、Java SEとJava ME CDCが統合し組込み向けにCDC Profileの予定や、CDCのGUIにJavaFXが予定されているなど、大きなロードマップがアナウンスされています。

まとめ、
今年のテクニカル・キーノートで新しい情報が取り上げられたのは、まさに新製品をリリースしたばかりの JavaFX 2.0 です、続いて Java EE 7, Java SE 7/8 と続く形になります。個人的に感じた事は Java SE に関しては、新しい情報は殆どなく以前何れかの場所で説明された内容、もしくはそれに近い内容が多い印象でした、唯一 Java SE 9 のコンセプトは例外で今回初めて出て来た情報ではないかと思います。また注目度は、セッション数にも比例している所があり、今年の JavaOne は特に JavaFX のセッション数が非常に多い事からも Oracle が本気で JavaFX に対して取り組みを始めた事を現している事になります。続いて多かったのが Java EE 7 に関連のセッションです。クラウドというキーワードを元に PaaS 環境で利用可能になる今後の Java EE 7 にも是非ご注目ください。

最後に、
本日発表された製品に関する情報は下記より入手可能です。
http://blogs.oracle.com/otn/entry/the_most_exciting_oracle_openworld

また、今回のキーノートで JavaFX にご興味を持たれた方は、是非 JavaFX のセッションへ足をお運びいただくか日本の開発者の皆様も是非、新しくなった JavaFX 2.0 の情報を色々と入手して頂き、是非お試しください。

2011年10月4日 at 8:09 午後

JavaOne 2011 Day-0

JavaOne 2011 Day-0



今日は JavaOne 開催前日なのですが、とあるイベントがあり朝一から参加していました。(このイベントの詳細はお伝えできなくてすいません。)



上記のイベントが終わって昼食を取った後、午後から GlassFish のコミュニティイベントが開催されているので Moscone West に移動しました。Moscone に到着すると、なんと本物のヨットを建物の中に入れて展示してるではないですか!!オラクルのラリーさんはやる事が派手ですね!!




GlassFish のコミュニティイベントで今後の内容についてプロダクトマネージャから説明があった後、Java EE のスペックリード、GlassFish の開発者と生で議論ができる場がもたれ GlassFish の実装に興味を持つエンジニアが残って話しあいをする場が用意されました。普段は直接接する事のできない生の開発者と直接議論ができる事によりメールベースでは聞きづらい事、もしくは答えづらい内容も Face to Face ならば話やすい所も議論されたようです。生の意見交換ができるのは本当に貴重な事ですね。




GlassFish のイベントも終わり、JavaOne Open House と呼ばれるがイベント Mason 通りで開催されたのでこれに参加してまいりました。ここでは今年の JavaOne の Duke Choice Award が発表され、それぞれの受賞者に対して Adam からトロフィーが進呈されました。














さて、JavaOne Open House のイベントも終わり、今日の締めくくりは GlassFish ユーザコミュニティの飲み会です。
ThirstyBear と呼ばれる現地では有名な?!お店で開催されました。日曜日には写真のように踊りも踊っていただけるという事でお店も大変なにぎわいでした。GlassFish のコミュニティはお店の2階を貸し切りにしてフリードリンクで参加ができるようになっていました。私はここに日本人の開発者の皆様と参加してきました。このイベントには、Java の父であるジェームス・ゴスリングもいらっしゃっていて、私も写真を一枚撮らせて頂きました。まだ初日が始まっていないのに色々な事をした1日でした。会社が変わってもNetBeansやGlassFish をこよなく愛してくれるジェームスに感謝!!



そんなこんなで Day-0が終了です。いよいよ明日からは JavaOne が始まります。

2011年10月4日 at 9:48 午前

Older Posts Newer Posts


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2026年2月
 1
2345678
9101112131415
16171819202122
232425262728  

カテゴリー

clustermap

ブログ統計情報

  • 1,314,016 hits

Feeds

アーカイブ