【まとめ】Java SE 9/EE 8リリースイベント 兼 JavaOne 2017 報告会
Javaな仕事に戻ったのもあり、JJUGのイベントに行ってきました。
当日の発表内容や様子は、以下にまとめてくださった方がいるようです。
ちなみにこのイベントの内容は、動画で公開されています。
参加できなかった方もこちらを見ていただけると、Javaの今がわかって良いのではないでしょうか!
といったところで、あとは各発表の私のメモになります。
- 1. JavaOne 2017 Overview & Announcements
- 2. JDK9, Release Cadence & Future
- 3. Intel's Persistent Memory
- 4. Java EE 8
- 5. Microservices Topic & Approach
- 6. Fn Project
- 7. Community&総括
- 8. LT
- 所感
1. JavaOne 2017 Overview & Announcements
https://youtu.be/XT2tIh9r6Eo?t=0m4s
- 7の時代はCoin, Lambda, Jigsawを企画していた
- 9でようやくMilling CoinとJigsawが入った
- 機能追加が9では91(8のときは55
今まで
これから
- OpenJDKとOracle JDKの技術的差分を2018年後半までになくす
- 機能リリースを6ヶ月に1度に
- バージョン表記は$YEAR.$MONTHになる(JDK 9、18.3、18.9
- OpenJDKのバイナリは無償配布(OracleJDKは有償になる
スケジュール
- この1年で移行期間が終わる
- 後継バージョンのリリースまでがサポート期間になる
2. JDK9, Release Cadence & Future
https://youtu.be/XT2tIh9r6Eo?t=30m24s
資料
- https://www.slideshare.net/YujiKubota/java9-and-future-jjug
- https://github.com/ykubota/jigsaw-sample_jp
ローカル変数の型推論であるAmberが入ると、Javaもだいぶ省力化できるようになりそう
JShellとライブラリの話
発表者が途中で変わる(吉田真也さん @shinyafox @bitter_fox
- REPLツールが有ると教育分野で人気(これがJShellをつくるモチベーション
- 新しいコレクションファクトリのSet.of()とかで作ったSetはイミュータブルになる
- StreamAPIでtakeWhileで途中中断とかできるようになった
3. Intel's Persistent Memory
https://youtu.be/XT2tIh9r6Eo?t=1h18m18s
- 今までのメモリより容量がめっちゃ増えた(4倍
- めっちゃ安い(2分の1
- OracleDB 18cがこれをサポートする
- 5倍くらい早くなる
Javaでも効果が出るように進めている
PMの使い方
- メモリのスケールアップ(揮発するメモリ
- ストレージのスケールアップ
自分が定義したクラスをPMに保存するって言う処理も書ける
- PersistentObjectを継承すると行ける
- 実装方法はPanamaのクラス定義の仕方を参考にしている
リアルタイムに値を変更できるようになる
4. Java EE 8
https://youtu.be/XT2tIh9r6Eo?t=2h25s
現段階で話せることが今回の発表内容
- Java EE 8
- EE4J
- Panel Discussions
- Key Takeaway
Java EE 8のリリース
Javaの目指すところ
Open Evolving Nimble Scalable
Java EEは?
Available Open Nimble
もっとOpenに、もっとNimbleにしていかないといけない
->だからEclipse Foundationに移管することに決めた
移管プロジェクトがEE4J(ブランド名はまだ未定
EE4J
https://projects.eclipse.org/projects/ee4j/charter
- Open
- プロセスを透明化する
- 沢山の人に参加してもらって決めていくことを目的にしている
- Oracleも1ベンダーとしてコミットしていく
- Compatible
- Flexible
- オープンソースのプロセスに従ってライセンスしていく
- Nimble
- 2018年の中旬までには移管したい
Java EEをOracleはどうサポートしていくのか
- 今までの契約は引き続きサポートしていく
- ライセンス許諾したベンダには、2025年までにEE4Jに移行するようにしてくれとアナウンスしている
- EE4Jの発表を待ってくれという状況
パネルディスカッションの話
MicroProfileが将来的にはJava EEにマージされようとしている
MicroProfileとはなんぞや
Q. 標準化団体どうすんの?(今はJCP
- 今はできれば作りたくない。時間がかかってしまう懸念がある
- JSRは?
- やり方は真似したい(踏襲する流れになっている
MicroProfile 2.0でJava EE 8の機能が入ってくる(2018/3/31
Key takeaway
- Java EE 8がようやくリリースされた
- EE4Jは始まったばかり
- みんな意見を言ってくれ(食い気味に
5. Microservices Topic & Approach
https://youtu.be/XT2tIh9r6Eo?t=2h39m
- ホテルを早めに予約しないと辛い(10月のサンフランシスコはいろんなイベントがやっている
- 近くて4万、車で10分15分で2万(1泊
- 土曜日が40時間ぐらいになる(時差の影響
- 10月は結構寒い(特に夜
- 行き先や料金とかもアプリでその場で決定できてよかった(Uber
- セッションの事前予約はしっかりね
- パネルディスカッション系のセッションは辛い(英語力ぅ・・・ですかねぇ・・・
セッションの紹介
- https://docs.google.com/presentation/d/1NX0AIMhAyC1G2c3_TjHDFedkhTMm60iEsiaZofZE6XM/edit#slide=id.g123c1734fc_2_0
- https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/
モノリスからMicroservicesへ
自社の事例を話していたセッションで共通している内容
- まだ旅は続いている
技術よりも組織・文化についてかなり強調されている
- コンウェイの法則
- 組織のコミュニケーション構造がシステムに反映される
- 逆法則もある
- Autonomyを何より重視
- 独立リリースを継続的に可能な状態にする
- 破壊的な変更はちゃんと手続きを取る
- エンドポイントの移行期間を設けるとか
今の議論の対象は、サービスという部品をどう協調動作させるかということになっている
Eventual Consistency
結果整合性、いつか一致していればいいというものであれば、マイクロサービスにあっている
Event sourcing
- データストアをイベント記録に使う
- データをどんどんインサートしていく(更新しない
CQRS
都合のいいデータストアにEventual Consistencyでデータを同期していくとイイね!
CQRSってなんぞ?
複数ServiceにまたがったTransaction
- Long Running Action
- MicroProfileの仕様
- WildFlyが一部だが単独で利用できる
考察
- 今、自分たちにマイクロサービスの必要性があるかを考えたほうがいい
- ある程度は固まっていているほうがいい
- あとから分離できるようにソースコード上書いておくのは大事
- 組織や文化とセットで考える必要がある
- 継続的に分散されたサービスを扱っていけないのであれば、きつい
- どこまでの複雑性や変化を受け入れられるかを考えながら分割するのがいい
- Service間Transactionとかやりだすとつらそう
6. Fn Project
https://youtu.be/XT2tIh9r6Eo?t=3h31m55s
Functionとは? 入力を受けて何かして出力する小さいプログラム
Functionの問題点 - 各ベンダの独自実装 - Javaのサポートが甘い
理想的なFunctionのプラットフォームとは? - Open Sourceでベンダーロックインされていない - 場所を選ばず使える(クラウド - 簡単に使える - Dockerで動く - デプロイとかで既存のものが使える
Fn projectはApache 2.0 License
FDKというJava用の開発キットが用意されている
CIを利用していてもCIの結果が戻ってくるまで数分かかる Fnではここが数秒間になるようにしようとしている
Fn Flow
複数の処理をまとめられる(コンカレントAPIっぽく使える
ブログ
- http://chiroito.hatenablog.jp/entry/2017/10/10/211951
- http://chiroito.hatenablog.jp/entry/2017/10/10/235141
7. Community&総括
https://youtu.be/XT2tIh9r6Eo?t=3h43m30s
図を出すと反応が多い
JJUG CCC fallの申し込みよろしく
8. LT
懇親会は出てないのですが、見つけた資料の内容がよかったのでこちらも貼っておきます。
所感
- Javaが生まれ変わろうとしている感じがある
- Oracle依存が強いとライセンス費用がやばくなりそう
- 自動生成系のライブラリはこれから辛そう
- 実際、JOOQの自動生成処理がJava9だとエラーになって動作しない
- JOOQはまだメンテナスされているからいいにしろ、メジャーバージョンアップデートのときになんとか対応できていた系のライブラリはそのうち使えなくなりそう
- コンウェイの法則はありますあります
- マイクロサービスが目的になっているところもありますあります
- 去年ぐらいにCQRSなデータストア採用できないか考えてたけど、やっぱりまた考えないといけないかなぁ
- Fn Projectは実際のコード見てみたらなんか期待を感じた