JavaOne 2014 サンフランシスコ報告会 Tokyo

JavaOne 2014 サンフランシスコ報告会 Tokyoに行ってきました。

基調講演から振り返る JavaOne 2014

寺田 佳央さん

今年19回目
参加者数 9010名 年々増加している
スピーカー 615名中382名がOracle以外の人
アジアからの参加者は全体の5%
Peter Utzschneider が取りまとめ
今年1年かけたJavaのメッセージはCREATE THE FUTURE JAVA

Javaの継続的な進化

  • コミュニティ
    • OpenJDK
    • JCP
      JCP.next 進化の継続
    • Java User Group
      今年世界で約80のJUGが出来ている
  • テクノロジー
    • Java SE
    • Java Embedded
    • Java EE JSR366が承認
  • Oracle Stewardship
    • Java啓蒙活動
    • OTN
    • Java.net

今年JCP15周年のイベントが多く開催されている

Java8リリース後の現状

今年3月に出たばかりなのに、8か国で80冊以上の本が出ている。これはすごいこと。

Lambda & Stream APIとは

  • Java Language を近代化するための大きな一歩
  • Java Libraries を近代化するための大きな一歩
  • 過去最大のアップグレード

ゴールドマンサックスがJava8をエンタープライズで使用。
リリース前から既に把握していて、リリースに対応するためのコードを既に書いていた。
無名インナークラスをLambdaに変換してテストコードを9%削減できた(10.5万行→9.5万行)

高速化されている。
Fork/Joinの改良
高速なAtomic変数、並列処理ライブラリ

セキュリティ関連対策を実施
年4回定期的なパッチ提供
今後の予定
 2015/01/20
 2015/04/14
 2015/07/14
 2015/10/20

Java SE 8u20の新機能
Advanced Management Console(AMC) 1.0 (ただし契約締結者専用)

  • Java Applet、WebStartの利用状況収集
  • アクセス制限が可能
  • 特定アプリに対し、古いJREでの動作指定が可能

ちょっと触ってみたが、まだ設定が難しい。

Java Embedded

50万ダウンロード
業界全体で体制が整ってきている
多くの人がオンラインで学んでいる

Javaとモバイルのイノベーション
MobileApplicationFramework(有償)
 Javaを書けばiOS、Androidで動く
 標準技術で実装
 デバイスの差異も吸収
 Apache Cordovaでも使用可能

Java SEの将来

Java SE9

  • Project Jigsaw
  • HTTP 2.0
  • Lightweight JSON
  • Cloudに最適化したVM

JDK EnhancementProposal(Java SE9に含まれる予定の機能)
http://openjdk.java.net/jeps

JEP182 -source, -target オプションのルール変更
 JEPには無い
 過去のSEのバージョンでコンパイルするオプション
 Java8でも既に警告が出る
 Java9では指定不可になる
 古いバージョンでのコンパイルが出来なくなる

SE9以降の新しいプロジェクト

  • Project Valhalla
    • value型の追加
      参照型オブジェクトに比べメモリ、パフォーマンスを改善
    • ジェネリクスにおけるプリミティブ型
  • Project Panama
    • JVMとネイティブライブラリ間の相互接続を可能にする新機能

JavaSE7 公式アップデート終了(有償サポートはある)

Java EE の将来

常に業界トレンドを深く観察
ユーザーグループにアンケートを取って新機能を選定
HTML5/Web層の拡張
簡単開発
Cloud稼働用のインフラ

Java EE8 (JSR366)は満場一致で承認がおりた
これから開発が進んでいく

みなさんに積極的に参加してほしい
JUGで開発メンバーにフィードバックできるようになっている
http://glassfish.org/contribute

2016年にJavaEE8が出る予定

その他

IntelがJavaOneに参加
今後Javaへの最適化がされていくと思う

SnapCode
子供向け学習用IDE&RADツール

Oracle感謝祭は遊園地を貸し切って開催
エアロスミスのコンサートも

録画済みセッションを全て近日公開予定

来年はJava20周年
様々なイベントが企画されると思う

Java One 2015 San Franciscoは
2015/10/25 - 2015/10/29

Java コミュニティアップデート

鈴木 雄介さん(JJUGのリーダー)

OUGLS参加報告

Oracle User Group Leader Summit
世界中のオラクル製品ユーザーグループのリーダーが集まる場
JavaOneの直前に2日間開催

アイスブレイクとしてコミュニティの未来を考えて絵にしたり

何をするのか

  • 地域コミュニティの話し合い
  • 各コミュニティからの報告
  • ユーザーグループの成長について
    今年主なテーマはソーシャルメディアの利用
    ソーシャルメディアを利用してどうやってユーザーやスポンサーを集められるか
  • Chief Customer Officeの話
    ORACLEがいかに顧客の声に興味があるかを延々と話してた。

感想

  • コミュニティ運営は世界中で苦労がある
    東京は特異性がある
     世界でも東京のメンバー数は多い方
     イベントにこんなに集まってくれるのはすごい
  • 面白いアイデア
    動画配信やリモート講師
     日本はタイムゾーン的に海外とのリアルタイムは難しい
    子供向けイベント
  • (相変わらず)Javaは仲が良い
    夜はBBQが恒例
    他のOracleコミュニティに比べると仲が良い
    ビジネスカジュアルって書いてあるのに余裕でTシャツでくる

JJUG視点でのJavaOneの感想

サプライズはない

  • Oracle is not Sun.
    今年1月のサミットで言われた言葉
    予定通りのスケジュール(Sunにはできなかった)
    顧客の声を聞く
  • 個人的には歓迎
    Sun好きには不評ですが成熟期のJavaには必要
    Javaはコミュニティを通じて顧客の声を聞こうとしている
    いろんなところで気遣いを感じた

特にEEはコミュニティ重視

  • コミュニティサーベイはたぶん初めて
  • JCPに基づくプロセスを重視
  • とにかくユースケースを知りたがっている

これからのJJUG

JJUG CCC 2014
 11/15 @ベルサール西新宿
 Simon Ritter参戦

フィードバックください
@JJUB #jjug
members@java-users.jp

常に幹事募集中です!

Java アーキテクチャトレンド

鈴木 雄介さん(JJUGのリーダー)

Javaに閉じないアーキテクチャのトレンドの話
バズワード多めで話します
具体的な実装の話はしません

世の中の流れ

IoT

  • あらゆるものがネットに接続
  • デバイスの多様化と大量化
  • 経験の一体化

サービスへ

アプリケーション開発からサービス運営へ

  • アプリケーション開発
    仕様を定義
    開発者が作る
    基本的には閉じられた世界
  • サービス運営
    利用からフィードバック
    様々な人が関わる
    外的要因に影響される

企画、開発、運用が協力(リーンとかDevOpsとか)

アーキテクチャ

Microservices Architecture

  • 考え方
    • 固有のドメインに固有のサービスがある
    • サービス同士はAPIとメッセージを介して連携
  • SOAとの違い
    • SOA
      モノシリックなアプリケーションをサービス化
    • MSA
      サービスを小さなサービスで構成

Reactive

  • 日本語では反応的な
  • 特徴
    • イベント駆動
    • 容易な拡張
    • 障害体制が高い
    • 応答性が高い(エラーが出ても何かを返す)

JavaOneで紹介された製品

  • OSGi
    MSAかは微妙だけどモジュールは大事
  • Play+Akka
  • Spring Boot・Dropwizard
    EoDだけではない監視や障害対応機能
  • RabbitMQ
  • Closure はこれから
    まだかっこいい実装のOSSが無い

JavaOneで話されていた設計

  • DDD(Domain Driven Design)を出す人が大半
  • 変化の境界線を見つけることが大事
  • とはいえ、手探りでって印象
    カオスの淵

NoSQL

  • CAP定理
  • とはいえ、ACIDは重要
  • 正解がないので、個別のプロダクトの特徴を見極めるのが大事
    JavaOneではMongoDBが多かった気がする

なぜJavaなのか

Javaがオープンだから

  • 企業が求める安定性と挑戦が両立している
  • 両輪がフィードバックするのが理想的

安定や後方互換性もある
変化はゆっくり
常に試行錯誤し、新しいことをやる

サマリ

エンターブライズも楽しくなってきた

  • 大量だけでなく多様になっている点に注意
  • 常に変化する全体にどうアプローチするか

バズワードに注意

  • 製品を安易にくくらない(NoSQLとか)
  • 銀の弾丸はない

Java Embedded 関連のアップデート

大山 弘樹さん(@ooyama)

去年も今年もIoTとRaspberryPiが多い
RaspberryPiが売りたいんじゃないか(笑)

ME EmbeddedとSE Embeddedの2つがある
ハードをがっつり使いたいならME
MEにはJNIが無い

Java SE & JavaFX 関連のアップデート

櫻庭 祐一さん(@skrb)

Project Valhalla

Value Types

配列の(メモリ的な)要素が実態を指すポインタではなくて実態そのものを入れる

value lass Point {
  final int x;
  final int y;
}

Immutableなのでスレッドセーフ

Specialized Generics

ジェネリクスにプリミティブ型が使える
今までのジェネリクスはコンパイルしたら型の情報が消えるが、プリィティブ型を使うといろいろ問題があるのでこれから議論されていくだろう。

Project Panama

Foreign Function Interface

ネイティブコードをコールする際、Javaのメソッドを呼ぶかのように使える。
ネイティブで扱いづらかったものが統一して使えるようになる。
ヒープの使い方を再度見直して効率よく使えるようにする。

Data Layout Control と Arrays2.0

セッションで話がなかった

Project Sumatra

GPGPUの話で、去年盛り上がっていたが今年はいまいち。
AMDからはスピーカが出ていたが、Oracleから出てなかった。

Project Jigsaw

いまいち進んでいない印象。
モジュールの関連性を図にする予定だったがあきらめたっぽい?
最初いろいろやる予定だったが、今はシュリンクさせてなんとかSE9に乗るのではないか。
MLの流通量は上がってきている。

JVMのイメージファイルが作れるようになる。
必要なモジュールだけをまとめたもの。
exeファイルも作りやすくなるのではないか。

JavaFX

JavaFX 8u40で追加されるもの

  • Accessibility
    音声で読み上げてくれる
  • Dialog
  • 法線(SE9から?)
    3Dの面に対するベクトル
    今まではJavaFXが勝手に決めていた
    法線を自分で決められるようになる。

Java EE 関連のアップデート

上妻 宜人さん

Java EE8 テーマ

  • HTML5/Web層の拡張
  • かんたん開発
  • クラウド上でのインフラ

まだ作業中なので、仕様は変わる可能性がある。

Servlet4.0

HTTP/2対応

  • GoogleのSPDYプロトコルが原型
  • バイナリフレーム/ヘッダ圧縮/多重化
  • ヘッダの意味合い(GET/POST/200 OK など)は基本的に踏襲

ストリームによる多重化
StreamIDへのアクセス

サーバープッシュ

  • WebSocketを置き換えるものではない
  • 関連リソースをサーバープッシュ
    例えば、htmlの要求が来たら関連するjs,png,cssをプッシュする
  • 問題点についての解決策については話がなかった

Java SE9 でもHTTP/2に対応予定
新たなHTTPのAPIを追加。(HTTP/2に限らず1にも対応)

MVC1.0

アクションベースMVC
そもそも必要か、JAX-RSに入れるかの議論があったが、結果的に独立した仕様として検討がスタート

テンプレートは対象外
既にJSPとFaceletsがある

既存仕様との連携
 CDI, Bean Validation

JSF 2.3

CDI連携の強化

@javax.faces.bean.ManagedBeanの扱いの見直し

  • 非推奨ではなく @java.inject.Named と同様として扱う

EL式のキャッシュによる性能向上

マルチコンポーネントのバリデーション

JAX-RS 2.1

パフォーマンス向上

  • Non-Blocking I/O APIのサポート(主にサーバーサイド)
  • Reactiveプログラミングモデル(主にクライアントサイド)

SSE - Serer Send Eventのサポート

Java EE内連係の強化

  • JSON-Bとの連携
  • MVC1.0との連携

JSON-B 1.0

JSONとJavaオブジェクトのマッピング

  • JAXB(XML Binding)と同様に相互互換
  • 既存実装としてJackson data bindingなど

JavaとJSONでのプロパティ名を変えるにはアノテーションを使用。

JSON-P 1.1

JSON Processing

  • JavaEE7導入のJSON処理API
  • JSONを出力するためのJavaAPI

JavaEE8 - JSON Patch

  • JSONデータの一部を置き換える仕組み(RFC6902)
  • HTTP "PATCH" と組み合わせてJSONデータの差分更新に使う
    • "PUT"は対象URLリソース全体を置き換えることを示す
    • "POST"はリソースの新規作成に用途を絞る

CDI 2.0

非同期イベント機能の導入
通知する側が通知される側の完了を待たない。
受け側は通知を受け取ったことだけを返す。

仕様のモジュール分割

  • CDI仕様が肥大化してきて、Weld以外の安定実装が少ない

Java EE Management API 2.0

REST APIによる監視・デプロイの標準化

REST APIによる管理

REST APIによるアプリケーションのデプロイ

Java EE Secrity 1.0

JavaOneではセッションが無く、これから検討されていく

スコープを整理中

Schedule

2016/Q3 リリース


井上誠一郎さん

Java EE8

Apache TomEE, Java EE Web Profile

  • 読み方はトミー
  • TomcatベースのJava EE実装
  • Tomitribe社がバックについた

Project Avatar

  • TSA(Thin Server Architecture)
  • サーバーサイドJavaScript

Avatarのセッションは4つくらい

  • Avatar2.0
  • TSAの言及はほとんどなくなった
  • Node.js互換アピールに完全シフト
    Node.js on the JVM
    ~95% Node.js API compatibiliry
    many of the node-modules work

Nodes.jsとの違い

  • Nashornベース:Competes with Googl V8
  • マルチスレッド
  • スレッドごとにイベントループ

ロードマップ

  • 2015年 Avatar Commercial Support
  • 公開資料に書いてあった

Spring Framework

前はOracleがSpringを敵視してる感があったが、今回はそれほどでもない。
あくまで個人の印象。

Spring Framework4の特徴

  • embedded Webサーバー(Spring Boot)
  • message centric architecture
  • async processing

Spring Boot Actuator

ほとんどコードを書かなくてもWebアプリがモニタリング可能(REST API)

http://localhost:8080/health を叩いて死活監視

http://localhost:8080/info を叩くと管理ビーンのメソッドコール数の統計情報

Webサイトの手順に従ってやれば15分でできる。

Springは実用的
ドキュメントやMaven等のツールとの連携がやっぱりすごい。

まとめ

Java EEは進化を継続
AvatarはNode.js互換路線
Spring Frameworkに復活の印象(Spring Boot以降)

HeapStats の発表と出展を通して見えた JavaOne2014

高雄 慎二さん(NTT OSSセンタ)

JavaOneを情報発信の場として考えるきっかけになればいい。

展示ホール出展

世界のユーザーに直接リーチ出来ることに魅力を感じて参加
150名以上が来訪
通訳の人もいたが忙しい時は通訳してる暇がないので直接対応

出展までの流れ

5月 申込フォームをDLしてメールで送信
費用は$7500
2名までJavaOne参加のフルチケットがつく
チケット無しの展示員は何人でもOK

6月 ExhibitorKitが届く
展示に必要なレンタル物品を注文
電源のレンタルも必要(別業者)

9月 展示物を用意
手荷物で直接運搬
チラシは必須。忘れたので現地で印刷

出展のメリット

世界の関連製品と肩を並べて比較される
世界のターゲットユーザの人々に直接リーチできる
他の会社から一緒にやろうよとか言われた
バッチスキャナの威力
 名刺交換する暇がなかったが、気軽に顧客情報を得た

注意点

他のブースでExhibitorKitの既製品を使ってるところはほとんどなかった
文字の多いパネルは良し悪しあり
細かいトラブルはあるので、ゆとりが必要
 注文したディスプレイが届かずに夜中まで待ったり

HeapStats発表

出席者

予約 63名
実際 約20名
国籍 Japan、USA、フィンランド等

Speakerのメリット

世界中の人に直接語り掛ける経験
反応が直接わかる
展示よりも長時間深い話ができる
参加登録が2名まで無料
Speaker専用の部屋がある(らしい)

発表までの流れ

Call For Proposals 3/4 - 4/15
採否通知 5中 - 6中
Speaker Portalからいろいろ登録
 発表資料の登録はぎりぎりでもOK ~9/28

Call For Proposals

Titleは短めに
Abstractは公開される
Summaryは選考用?
Video 過去のプレゼン実績の動画記録
 そんなに難しく考えずに、動画をとって送ればいいと思う

英語は?

日常の仕事で英会派はほとんどしない
英語ドキュメントはそれなりに読む
ネイティブチェックは依頼(展示パネルのみ)
 発表資料はぎりぎりまで作っていたので
現地の通訳を1名依頼

まとめ

参加者との距離が格段に近くなる
世界の中での自分の立ち位置が見える感覚
技術(Java)に国境なし
BOF(birds of a feather)は初めての発表の場としてちょうどよい