Weitere ähnliche Inhalte Ähnlich wie Java EE から Jakarta EE へ - Eclipse Foundation への移行で気になってたこと Ian Robinsonたちに全部聞いてみた - (20) Java EE から Jakarta EE へ - Eclipse Foundation への移行で気になってたこと Ian Robinsonたちに全部聞いてみた -1. 2018/4/27 GlassFish Users Group Japan セッション資料
から へ
- Eclipse Foundation への移行で気になってたこと
Ian Robinsonたちに全部聞いてみた -
SOMPOシステムズ株式会社
西野大介
@nishino_chekhov
14. 今回参加いただいたメンバー
(左から)
Ian Robinson (DE, WebSphere Lead Architect)
Steve Wallin (IBM Runtime Technology architect)
Kevin Sutter (MicroProfile and Jakarta EE architect )
Mike Thompson (WebSphere Architect)
Kyle Brown(DE, Cloud Architecture and Solition Engineering)
(右) Jason McGee (IBM Fellow, VP and CTO, Cloud Platform)
(左から)
Steve Wallin (Program Director - IBM Runtime Technologies)
Walt Noffsinger (WebSphere Director)
19. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
EE4Jの最新状況
• 37 Java EEコンポーネントのうち約半分
Eclipse管理下のリポジトリ*へ移行済
• Mike Milinkovich( Eclipse Foundation
エグゼクティブディレクター)は次のバ
ージョンのJava EEをJakarta EEという新
名称でさらに発展させてリリースする基
礎が整ったと、4月 or 5月くらいに発表
したいと考えている
(全コードやTCKの移行完了)
Steve Wallin
(Program Director - IBM
Runtime Technologies)
Oracle管理下 https://github.com/javaee
EE4J管理下 https://github.com/eclipse-ee4j
*
24. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
Java SEとJakarta EEの関係
• 一方でIBMはJVM実装を昨年9月にOpen
J9としてオープンソース化
• OpenJ9はIBM SDK 8 SR5 以上および今
年9月にでてくるIBM SDK 11のベースに
• IBMは商用のJavaからオープンな形でビ
ルドされ開発されるJavaに移行していく
Steve Wallin
(Program Director - IBM
Runtime Technologies)
27. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
Java 9とリリースサイクル
• Java 9があまり使われていないのは、日本だけで
はない(把握している中で本番でJava 9を使って
いるのは1,2件)
• 多くはJava 8を継続利用
• 個人の見解ではJava 9,10はDev/Test 用途がメイ
ン
• 現時点ではJava 11が業界のフォーカス(その準
備用がJava9,10)
Steve Wallin
(Program Director - IBM
Runtime Technologies)
29. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• リリース間での差異はかなり小さい
• Java 10は直近6週間で1つFixが入った程度
• リリースサイクル間の6ヶ月の間に、初期の
頃のコードにいくつか変更が入り、そのあ
と安定化され、最後の数週間のビルドは非
常に安定
• つまり、まず9から10へのマイグレーション
はごくごく小さい
Java 9とリリースサイクル
Steve Wallin
(Program Director - IBM
Runtime Technologies)
30. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• そして10から11も同じ傾向になる想定
• このように今後6ヶ月のサイクルで出てく
るリリース間のマイグレーションは難しく
ない
• むしろもっともチャレンジングなのはJava
8から9のマイグレーション
• Java 8から9へのマイグレーションが完了す
れば、そのあとのマイグレーションは格段
に楽になるはず
Java 9とリリースサイクル
Steve Wallin
(Program Director - IBM
Runtime Technologies)
32. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
Java10で追加されたフィーチャー
http://openjdk.java.net/projects/jdk/10/
Features
286: Local-Variable Type Inference
296: Consolidate the JDK Forest into a Single Repository
304: Garbage-Collector Interface
307: Parallel Full GC for G1
310: Application Class-Data Sharing
312: Thread-Local Handshakes
313: Remove the Native-Header Generation Tool (javah)
314: Additional Unicode Language-Tag Extensions
316: Heap Allocation on Alternative Memory Devices
317: Experimental Java-Based JIT Compiler
319: Root Certificates
322: Time-Based Release Versioning
コーディング上の唯一の変更点
286: Local-Variable Type Inference
ローカル変数型推論(var)
https://tryjshell.org/
フィーチャー一覧
Java 9とリリースサイクル
37. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
Jakarta EEというリブランドによる利点
• IBMにとって、すでにMicroProfileで取り
組んできた内容をJakarta EEの次のバー
ジョンにとても取り入れやすくなった
• IBMはJakarta EEの次のバージョンに最
も早く対応できるはず(すでに
MicroProfileの機能をLibertyに取り入れ
ているため)
Libertyのストラテジー① エンタープライズJava
Ian Robinson (DE,
WebSphere Lead Architect)
38. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
Jakarta EE + MicroProfileにより、さらに実現したいこと
• Jakarta EEとMicroProfileで標準アプリ
ケーション・プログラミング・モデル
を定義したい
• 標準モデルにのっとったアプリケーシ
ョンをLibertyにデプロイするだけで、
実装上に定義された拡張機能をコンテ
ナに構築された環境とつなぐことがで
きる、といったことを実現したい
Libertyのストラテジー②プログラミングモデル
Ian Robinson (DE,
WebSphere Lead Architect)
39. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
標準アプリケーション・プログラミング・モデルの例
• あるアプリに、マイクロサービスによるヘルス
チェックのエンドポイントがあるとする
• MicroProfileには、ヘルスチェックのエンドポ
イントをAnnotationする標準の仕組みを定義し
てある
• Libertyの世界では、「MicroProfileで定義され
たメソッド」を基盤のクラウド・インフラの機
能とつなぎ、ヘルスチェックエンドポイントを
使ってマイクロサービスの死活状態を確認する
といったことができるようになる( Liberty側
にて、この仕組みに関連する実装+アプリをデ
プロイする際にLibertyと一緒に利用されるツー
ルを用いることで実現)
Libertyのストラテジー②プログラミングモデル
Ian Robinson (DE,
WebSphere Lead Architect)
43. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
2016
• Java One開催のタイミングで
MicroProfileについて発表
過去の出来事 おさらい
2017
• Oracle / IBM / Red Hatの鼎談
https://www.youtube.com/watch?v=6emPnRChsEE
https://www.slideshare.net/DaisukeNishino1/oow2017-and-javaone2017-report-daisuke-nishinosompo-systems
Libertyのストラテジー
~2015
• Java界隈の様々な課題
47. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• Java EEとMicroProfileにConflictする部分
はない
• MicroProfileはCDIとJAX-RSをベースとし
てJava EEテクノロジを拡張するもの
• 例えば、MicroProfileで定義されるFault
Tolerant Annotationを例にとると、Fault
Tolerantの振る舞いはCDIコンテナ(CDI
managed bean)を介してEnableされるよ
うデザインされている
• MicroProfileはJava EEを拡張するものであ
り、進化を妨げるものではない
言語仕様や製品間のConflict
Ian Robinson (DE,
WebSphere Lead Architect)
49. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• Google、IBM、Lyftが開発し、2017年5月にオープンソース化した
ソフトウェア
• 「サービスメッシュ」と呼ばれる機能を果たす
• サービスメッシュでは、マイクロサービス間の通信を統一的な仕組
みで制御
• これにより、きめ細かなセキュリティの確保、流量制御、フェイル
オーバー、ブルー/グリーンデプロイメント、カナリアデプロイメ
ントなどを容易にする
Istioとは(以下引用)
引用元 http://www.atmarkit.co.jp/ait/articles/1802/09/news015.html
言語仕様や製品間のConflict
52. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• あるサービスがもう1つのサービスの呼出をリ
トライするケースにおいて、Istioが存在する場
合は、 Istio Proxyも、Fault Tolerantと同じよ
うなハンドリングを行う機能があるので
Conflictしてしまう
• Istioが存在する環境において、Fault Tolerant
構成がされたアプリケーションがデプロイされ
た場合、IstioがRetryロジックの支配権を握れる
ようにする実装をLibertyに入れている(ただし、
アプリケーション側でFallbackは使えるように
することで、矛盾がおきないようにする)
例2:フォールトトレラント
言語仕様や製品間のConflict
Ian Robinson (DE,
WebSphere Lead Architect)
55. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• OpenJDKとのAPIサービスの差異をなくす
ための努力を継続
• その1つの取り組みが昨年秋に行った
OpenJ9(IBM J9 JVMのEclipse配下でのオ
ープンソース化)
• 現在はIBM JavaはOpenJDKとEclipse
OpenJ9ベースで作成
• したがって、APIサービスのレベルでは
OpenJDKと全く同じに
Steve Wallin
(Program Director - IBM
Runtime Technologies)
Java間の差異SKIP
56. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• 以前は、IBM Javaは異なるXMLやJavaテク
ノロジーの中で異なるコンポーネントを実
装
• OpenJ9でその差異を最小限にする
• 一方で、IBM Javaでは最高のパフォーマン
スを実現するJVM機能の提供を
• Footprint、起動時のパフォーマンス、IOT
テクノロジーなどの領域へ
• これにより、OpenJDK with OpenJ9はベス
トなCloud Javaテクノロジーを提供する
Steve Wallin
(Program Director - IBM
Runtime Technologies)
Java間の差異SKIP
58. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• 提供サービスについて総合的にオープンであることに高いプラ
イオリティ設定
• WebSphere Libertyは、オンプレ、クラウド(パブリック/プラ
イベート)など自由に持ち運べるというのがコンセプト
• WORAの恩恵でベンダーロックインの心配も少ない
• クラウド環境でJavaを選択されるケースは限られるが、Javaの
持つ優位性
• Java間の差異が少なくなることでさらに最適化
見解
Java間の差異SKIP
60. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
Ian Robinson (DE,
WebSphere Lead Architect)
• IBM Cloud FunctionsではNode.jsやPHPが多い
• Javaの起動時間の課題は、Cloud Functionsの
インスタンス間でJVMをキープすることで最適
化することも対策
• ただ、Javaにとって最適な領域は堅牢でハイ・
パフォーマンスが求められるアプリケーション
で、コンスタントにアクセスがあるもの
• 不定期に利用されるFunctionsなら他言語推奨
クラウド、サーバレス環境におけるJavaSKIP
69. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
JavaOne Oracle Code One 2018
“Make Java Great Again”
例年より一日減り、コミュニティキーノートがなくなる?
IBM社にとっても重要な情報発信の場であったのでは
OpenJ9、Open Liberty
2016 2017
JavaOneの今後
* JavaOneは先日Oracle Code Oneへの名称と内容変更が発表されましたが、
このインタビュー上は当時のままJavaOneとして掲載します
77. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
Steve Wallin
(Program Director - IBM
Runtime Technologies)
• Java SEは従来通りOracle管理、進化の道も
Oracle主導
• Java SEについてもJava EEと同じようなパ
スを今後たどることで同じ効果が得られる
ことを期待
• それが実現されるまでの間、IBMはOpenJ9
でJVMのイノベーションを推進
• Oracleとパートナーシップを組んでJavaの
進化を進める
Javaコミュニティの今後
83. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• 仕様策定の観点では従来のJCPよりもコミ
ュニティに対して平等な機会が与えられる
• それは多くの人にとってJakarta EEのワー
キンググループに入るモチベーションにも
なるはず
• WGに入ることで、仕様に影響を持つだけ
でなく仕様策定のプロセスにも影響を与え
ることができる
• 特にプロセスはまだ定義中のため、今のよ
うに非常に早い段階で入ることはプロセス
の確立に大きく関与できるはず
2) 仕様策定プロセスへの影響、その確立
Javaコミュニティの今後
Ian Robinson (DE,
WebSphere Lead Architect)
85. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• これまでのコミュニティの構造を参照しながらリビルドし
ていく(JakartaOne(仮) やJakarta champion(仮) 、仕様策
定のプロセス改善など)
• これまでの有識者はそちらに移行し、あらたなメンバーも
参加していくという流れになるのでは
• 複数のベンダーがかなりやる気でNimbleなので、コミュニ
ティ活動は活発化しそう
• Java SEとの関係性のいびつさ、そして再言及
見解
Javaコミュニティの今後
87. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
まとめ
• 2016年のJavaOneにぶつけたMicroProfileの発表から、
2017年のEE4Jの立ち上げ
• 少しずつJavaとそのコミュニティの進みたい方向が整備さ
れ、また我々にも見えるようになってきた印象
• Jakarta EEはJakartaOne(仮)やJakarta champion(仮)など
の新設により、言語周辺のエコシステムも含めリプレイス
していく姿勢
• MicroProfileやMVCなど、バラバラになっていたフィーチ
ャーはいずれもJakarta EEに集約
• 全てが集約されるとまた歩みが遅くなってしまわないか心
配になるが、参加者の権利がフラットになったことでコミ
ュニティ活動は活発化しており、いまのところいい調子
88. * 発言は意訳したものであり、全ての見解は西野個人の見解です
* いずれも未確定情報であり変更となる可能性があります #glassfish_jp
• 各社ベンダーがクラウド化を推進する中で、明確に得手不
得手が決まっているJavaがその存在感を保っていけるかど
うかはまだまだ未知数
• CPUリソースを使用するものはJavaに優位性があるといえ
ど、サーバレス環境での課金上のメリットなどは完全には
見えない
• とはいえJavaは人気があり、ユーザーも多く、ミッション
クリティカルな現場での導入実績も豊富で、多数のベンダ
ーも精力的にサポート
• まだまだ進化しているJava。今後も流行り続けるかどうか、
その軸となるJakarta EEの活動に注目
• ★もちろん注目するだけではなくて…
まとめ