[Java] Java EE 8 and 9

来月のJavaOne報告会あたりで詳細の説明があると思いますが、JavaOne会期中のTweetなどでJava EE 8/9についていろいろと誤解を生む表現が散見されたため、少々まとめておきます。
なお、お約束として以下の文言を入れておきます。

このエントリは個人の見解であり、所属する会社の公式見解ではありません。
Opinions expressed in this blog entry is my personal one and does not represent the official opinion of my employer.

Java EE 8およびJava EE 9に関する内容は、Oracleによる提案(Proposal)に過ぎず、正式決定されたものではありません。内容の賛否や改善要望などはどんどんフィードバックしてください(換言すれば、このタイミングを逃すと変更がききません)。締め切りは10月21日(PDT)中です。
Java EE Community Survey
http://glassfish.org/survey

Java EE 8/9のリリース時期について

既報の通り、Java EE 8は2017年中のリリース、Java EE 9は2018年中のリリースを目指しています。

Java EE 8について

基調講演でも話がありましたが、昨年のJava Day Tokyoにも来てくださったLinda DeMichiel さんのセッションでもう少し詳しい話がありました。セッションスライドの27、28枚目に、Java EE 8として提案しているものが記載されています。
このうち、MVC 1.0はまだ仕様として存在しないので、仕様策定しないことを提案しています。JMS 2.1については延期、Managementについては、仕様のアップデートをしないことを提案しています。
Java EE 8 Update [CON7976](Linda DeMichiel)
https://java.net/downloads/javaee-spec/JavaEE8Update.pdf
当初のJava EE 8で提案していたものから、取り下げを提案しているもの
  • Management 2.0 (JSR 373)
  • JMS 2.1 (JSR 368)
  • MVC 1.0 (JSR 371)
当初のJava EE 8には含まれておらず、新たに追加を提案しているもの
その他、技術面で注力する領域として、以下を挙げています(スライドの29枚目)。これらの内容には、Java EE 8で達成したいもの、Java EE 9で達成したいものが混在しています。例えば、セキュリティについてはOAuth 2.0、OpenID Connect対応はJava EE 9での対応を目指すことを提案しています。
  • プログラミング・モデル
    • Reactive Programmingのための拡張 
    • 統一されたイベントモデル
    • イベントメッセージングAPI
    • JAX-RS、HTTP/2、Lambda、JSON-Bなど
  • パッケージング
    • アプリケーションやランタイムのサービスへパッケージング
    • イミュータブルなスタンドアロンの実行バイナリ
    • マルチアーティファクト・アーカイブ
  • Key Valueストア、Documentストア
    • Key-valueおよびDocumentデータベースのための永続化およびクエリAPI
  • 結果整合性(Eventual Consistency)
    • 観察対象のデータ構造に対する変更を自動的に安定化
  • Serverless
    • インターフェース、パッケージング形式、マニフェストなどの仕様策定
    •  Ephemeral Instantiation(短時間のインスタンス化)
  • Configuration / Configuration for Java EE 8 and the Cloud [CON7979]
    • 構成の外部化
    • 構成へのアクセスのための統一されたAPI
  • Multitenancy
    • 集積度の向上
    • テナントを認知したルーティングおよびデプロイメント
  • State
    • 外部化された状態(State)を保存するためのAPI
  • Resiliency / Portable Cloud ApplicaAons with Java EE [CON8292]
    • クライアント側でのCircuit Breakerをサポートするための拡張
    • Resilient(回復)コマンド
    • システム状態レポートのためのクライアント側のフォーマットの標準化
  • Security / Security for Java EE 8 and the Cloud [CON7978]
    • Secret管理
    • OAuth 2.0サポートの改良
    • OpenID Connectのサポート

Java EE 9で注力したいと考えている技術領域

Java EE 9でOracleが目指そうと提案している技術的な注力ポイントの概要を説明したセッションがEnterprise Java for the Cloud [CON7975]でした。このほか、上記のPortable Cloud ApplicaAons with Java EE [CON8292]でも類似の内容を説明しています。両スライドと併せてご覧いただくと、Java EE 9で注力したい領域として提案している領域の内容の理解が進むと思います。
Enterprise Java for the Cloud (Rajiv Mordani, Josh Dorr, Dhiraj Mutreja)
https://java.net/downloads/javaee-spec/JavaEE9.pdf
なお、Java EE for the Cloud [BOF7984]ではより突っ込んだ議論がありました。この内容はJavaOne報告会で説明があることでしょう。

参考資料

Adam Bienさんや今年のJava Day Tokyoで登壇されたSebastian DaschnerさんのエントリにもJava EE 8/Java EE 9に関する記述があります。
The Ingredients and Roadmap of Rebooted Java EE 8 and 9
http://www.adam-bien.com/roller/abien/entry/the_ingredients_and_roadmap_of
Thoughts on Java EE 8 roadmap update
https://blog.sebastian-daschner.com/entries/thoughts_on_javaee8_update

0 件のコメント:

コメントを投稿