2013年5月24日金曜日

Java Day Tokyo 2013



Java Day Tokyo 2013 に行ってきました。
その時のレポートを書きたいと思います。




まずはキーノートです。
これからはJava ME Embedded。小型の組み込み市場への導入を加速させる。
それは昔、サーバーの市場をJavaEEで満たしたように。とおっしゃっていました。
期待しましょう。

それとJDK8の話をしていました。
正式版のリリース予定は2014年2月で、今後は2年サイクルでメジャーバージョンを
上げていく予定との事です。JDK9は2016年2月ということになります。

JDK8に組み込まれた主要なものとしてラムダ(Lambda)式の導入がありました。
ラムダ式というとコードをより簡素にスマートに記述できるのがメインであると感じられるが
実際はもっと重要な効果があるようです。
それは今時のコンピューターにはマルチコアなCPUが当たり前で、同時に複数の処理をこなす
事があたりまえの時代なのですが、ラムダ式の効果は「もっと効率的にCPUを使おうよ」
ということらしいです。それもThreadのような大きな単位ではなくてもっと細かい処理の単位で
パラレル処理が行えるようです。

ラムダ式については試してみたいと思っています。
JDK8のearly releaseが以下からダウンロードできます。
https://jdk8.java.net/download.html


あとは、JavaFX。
JavaFXがJavaの標準GUIライブラリとして採用されましたので、デスクトップアプリケーション等の
UIはJavaFXで書くことになっていくのかなと思いました。
数年前に名前を聞いたっきりあまり聞かなかったのですが、JDKの標準に組み込まれ更に進化
していたようでこれも少し興味がわいてきました。
JavaFXスクリプトで記述する必要があったのですが、もうそのスクリプトは廃止されJavaのAPIとしてJavaFXが使えるようになったようです。

・多彩なGUI部品を持っています。例えばチャートなど
・ハードウェアアクセラレーションを使った高速なレンダリング
・H.264のサポート、動画再生のAPI
面白そうですね。


最後にJaveEEでWebSocketに対応する(JavaEE7 finalリリースはあと少し)との事です。
今までサーバーから情報をクライアントに渡す場合(PUSH)、クライアントからしか接続
できないので、ポーリングやロングポーリング等で「ごまかしていた」わけです。
それがwebSocketにより完全な全二重通信が可能になるわけですね。
webSocketは当然httpとは別のプロトコルなので、http通信をトリガとしてプロトコルを
upgradeしてあげる必要があります。
httpヘッダの最初の要求には

Upgrade: websocket
Connection: Upgrade

と書かれてます。これがhttpプロトコルをwebsocketプロトコルにupgradeするということです。
upgradeされたらhttpのプロトコルに従う必要はなくなるわけです。
例えばhttp requestに対して必ずhttp responseを返す等というルールに従う必要はありません。
サーバーが一方的にクライアントに対してデータを定期的に送りつけるという事ができます。

websocketを使うと通信のオーバーヘッドがとても少なくすみ効率的です。
Arun Guptaさんは実際にエコーサーバーを使ってどれだけの違いがあるか試して頂けました。

100byteのペイロードを1000回エコー要求した場合
http req/resp では8198msec
websocket では      248msec
8.2秒と0.2秒。ここまで差がついてしまうとは驚きでした。

glassFish4.0等で試す事ができますので興味ある方はどうぞ。


最後にJJUGグループに参加して皆でjavaを創っていきましょう!とのことでした。

日本JJUGグループ
http://www.java-users.jp/


それでは失礼致します。

0 件のコメント:

コメントを投稿