2021年1月26日
数村憲治
Jakarta EE 9とこれから
Copyright 2021 FUJITSU LIMITED
0
Slide 2
Slide 2 text
Copyright 2021 FUJITSU LIMITED
アジェンダ
1. Jakarta EE とは
2. Jakarta EE 9
3. Jakarta EE 9.1
4. Jakarta EE 10 and Beyond
5. CN4Jアライアンス
6. 最後に
1
Slide 3
Slide 3 text
Who am I ?
Copyright 2021 FUJITSU LIMITED
}
{
“名前”: “数村憲治”,
“勤務”: “富士通”,
“Jakarta EE”: “Specification Committee メンバー”,
“JCP”: “EC メンバー”,
“Eclipse Foundation”: “ボードディレクター”,
“Twitter”: “@kkzr”
2
Slide 4
Slide 4 text
Copyright 2021 FUJITSU LIMITED
アジェンダ
1. Jakarta EE とは
2. Jakarta EE 9
3. Jakarta EE 9.1
4. Jakarta EE 10 and Beyond
5. CN4Jアライアンス
6. 最後に
3
Slide 5
Slide 5 text
Copyright 2021 FUJITSU LIMITED
Jakarta EE
■ オープンな仕様
■ Jakarta EE Specification Process
■ コードファースト
■ オープンソースTCK
■ Eclipse TCK License
■ オープンな認証プロセス
■ 互換実装
■ Jakarta EE Platform (Full Platform/ Web Profile)
4
Slide 6
Slide 6 text
Copyright 2021 FUJITSU LIMITED
Jakarta EE コミュニティ
18 団体メンバー
123 新規コントリビューター
~65M コードステップ数
31 オープンソースプロジェクト 60 GitHubリポジトリ
5
Slide 7
Slide 7 text
Copyright 2021 FUJITSU LIMITED
ロードマップ
2019/9
Jakarta EE 8 Jakarta EE 9 Jakarta EE 9.1 Jakarta EE 10
2020/11 2021/? 202x
次のステップ
■ CDI中心
■ Java SE の最新技術を利用
■ ポータビリティとベンダー中立
6
Slide 8
Slide 8 text
Copyright 2021 FUJITSU LIMITED
Jakarta EE 8 互換実装
7
Slide 9
Slide 9 text
Copyright 2021 FUJITSU LIMITED
Jakarta EEとEE4J
EE4J
(Eclipse Enterprise for Java)
Jakarta EE
Working Group
■ ベンダー中心
■ ガバナンス・予算
■ 仕様承認
■ マーケティング・ブランド
■ 開発者中心
■ オープンソースコード/TCK
■ 仕様作成
■ アジャイル・イノベーション
8
Copyright 2021 FUJITSU LIMITED
名前空間変更による互換性
Jakarta EE 8/Java EE 8以前のアプリは動くのか?
バイナリ互換 ソース互換
ランタイム製品による対応
実装製品は実行時に
パッケージ名を変換する
仕組みを提供することを推奨
Jakarta EE 8ビルド環境を
使用するか、jakarta名前
空間へのソース変更
?
IDE他ツールによる対応
14
Slide 16
Slide 16 text
Copyright 2021 FUJITSU LIMITED
スキーマ
⚫ Java EE 8
⚫ Java EE 7
⚫ http://xmlns.jcp.org/xml/ns/javaee/application_8.xsd
⚫ http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd
Jakarta EE 8/Java EE 8以前は、JCPのURLを使用
⚫ http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd
⚫ http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
⚫ http://xmlns.jcp.org/xml/ns/javaee/application_8.xsd
⚫ http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd
Jakarta EE 9のスキーマは、jakarta.eeのURLを使用
https://jakarta.ee/xml/ns/jakartaee/#9
■ Java EE 8のスキーマ―も利用可能(Java EE 7以前はベンダー依存)
■ スキーマ一覧
⚫ Java EE 9
15
Slide 17
Slide 17 text
Copyright 2021 FUJITSU LIMITED
Java SE バージョン
■ 各APIはJava SE 8ソースレベルでコンパイル
■ Jakarta EE 9 PlatformとWebプロファイルの互換実装は、
Java SE 11で動作しなければならない
Java SE 8での動作は任意
Java SE 8で動作しなければならない
Java SE 9以降での動作は任意
16
Copyright 2021 FUJITSU LIMITED
Jakarta EE 9で削除される仕様 (pruning)
■ Jakarta Stable API プロジェクト仕様
■ Jakarta XML Registries
■ Jakarta XML RPC
■ Jakarta Deployment
■ Jakarta Management
■ Support for Distributed Interoperability
■ Jakarta Enterprise Beans Core Contracts and
Requirements, Chapter 10 (注)
(注) Optional Features でない方
18
Copyright 2021 FUJITSU LIMITED
Jakarta EE 9 で Optional になった仕様
■Jakarta Enterprise Beans 2.x API group
■Jakarta Enterprise Web Services, JSR 109
20
Slide 22
Slide 22 text
Copyright 2021 FUJITSU LIMITED
Java SE 8から追加されるAPI
■ Jakarta Activation (必須)
■ Jakarta XML Binding (オプショナル)
■ Jakarta XML Web Services (オプショナル)
■ Jakarta Web Services Metadata (オプショナル)
■ Jakarta SOAP with Attachments (オプショナル)
これらのAPIも、javax から jakarta パッケージに変更
21
Slide 23
Slide 23 text
開発者は、アプリが
新しい名前空間に
移行できるか検証
Copyright 2021 FUJITSU LIMITED
ツーリングリリース
Jakarta EE 10で加速するための基礎作り
ツールベンダーは
新しい「jakarta.*」
名前空間に対応
Jakarta EE 9はビッグバンに対応するためのツーリングリリース
ランタイムベンダーは
Jakarta EE 8
互換サポート機能
の検証
22
Copyright 2021 FUJITSU LIMITED
スコープ – Jakarta EE 9.1
■ 仕様は、Jakarta EE 9と同じ
■ Java SE 11 サポートの追加のみ
■ Platform Specification と
Web Profile Specification のみ
APIのアップデートはなし
30
Slide 32
Slide 32 text
Copyright 2021 FUJITSU LIMITED
Java SE 11対応
■ もともと、Jakarta EE 9で、Java SE 11対応予定
■ 2020年6月に、「Java SE 8を必須」、に変更
Java SE 11必須、Java SE 8はオプショナル
TCKの対応が困難
Jakarta EE 9 リリース後、
Jakarta EE 9.1 で速やかにJava SE 11対応
31
Slide 33
Slide 33 text
Copyright 2021 FUJITSU LIMITED
Java SE 11対応
■ API ソースレベル
■ TCK ソースレベル
■ target/source レベルは、引き続き、Java SE 8レベル
■ API(jarファイル)は、Java SE 8と11の両方で使われる
■ TCKはJava SE 8レベルでコンパイル
■ 一つのTCKバイナリで、Java SE 8と11の両方で、
互換テストに使用できる
32
Slide 34
Slide 34 text
Copyright 2021 FUJITSU LIMITED
互換実装
■ Eclipse GlassFishが候補
■ CI (互換実装)が、どのようにJava SE 11ランタイムを
サポートするかは、ベンダーしだい。
JPMSなど
Jakarta EE 9.1互換のEclipse GlassFishがいつリリース
されるかは、GlassFishコミュニティ次第
33
Copyright 2021 FUJITSU LIMITED
Jakarta EE 9.1 APIs
■ PlatformとWebProfileのAPI jarは、再作成
■ 中身は、Jakarta EE 9.0のjarファイルと同じ
■ maven artifact を見やすく、探しやすくするため
35
Slide 37
Slide 37 text
Copyright 2021 FUJITSU LIMITED
アジェンダ
1. Jakarta EE とは
2. Jakarta EE 9
3. Jakarta EE 9.1
4. Jakarta EE 10 and Beyond
5. CN4Jアライアンス
6. 最後に
36
Slide 38
Slide 38 text
Copyright 2021 FUJITSU LIMITED
バージョニング
■基本的にSemantic Versioningに従う
■非互換がある場合に、メジャーバージョンアップ
■機能追加は、マイナーバージョンアップ
Jakarta EE
9.1
Jakarta EE
9.2
Jakarta EE
10.0
Jakarta EE
9.0
Java SE 11対応 機能追加 非互換を伴う機能追加
・・・
37
Copyright 2021 FUJITSU LIMITED
Jakarta EE Platform以外のJakarta 仕様
■Jakarta MVC 2.0
■Jakarta NoSQL
https://jakarta.ee/specifications/mvc/
https://jakarta.ee/specifications/nosql/
44
Slide 46
Slide 46 text
MVC
Copyright 2021 FUJITSU LIMITED
プロファイル(例)
Web Profile
+
Platform
外部
既存
オプション
新規
Enterprise Beans
Messaging
Activation
Mail
Connectors
Concurrency
Batch
Authorization
XML Binding
XML Web Services
Enterprise Web Services
SOAP with Attachments
Web Services Metadata
Enterprise Beans 3.x
Enterprise Beans 2.x
Cloud Profile
+
Web Profile
Servlet
Server Pages
Expression Language
Debugging Support
Standard Tag Libraries
Server Faces
WebSocket
Enterprise Beans Lite
Persistence
Transactions
Managed Beans
Interceptors
CDI
Authentication
RESTful Web Services
JSON Processing
JSON Binding
Annotations
Bean Validation
Dependency Injection
Security
Cloud Profile
CDI Lite
Config
45
Slide 47
Slide 47 text
Copyright 2021 FUJITSU LIMITED
アジェンダ
1. Jakarta EE とは
2. Jakarta EE 9
3. Jakarta EE 9.1
4. Jakarta EE 10 and Beyond
5. CN4Jアライアンス
6. 最後に
46
Copyright 2021 FUJITSU LIMITED
??
■ プラットフォーム以外の仕様
■ Jakarta MVC 2.0
■ Jakarta NoSQL https://jakarta.ee/specifications/mvc/
https://jakarta.ee/specifications/nosql/
65
Slide 67
Slide 67 text
Copyright 2021 FUJITSU LIMITED
Program Plan (Specification Comm.)
https://docs.google.com/presentation/d/1Kh8I7xjYPW9YFK9NHZwgd55UNuzScRTufzZJYVMp2Z0/edit#slide=id.g9591dbaa17_0_14
■ 新しいリリース [第一優先]
■ スピードアップ[第二優先]
■ Jakarta EE 9 on JDK11
■ Update individual specifications
■ 9.x platform release(s) with incremental features
■ Obtain community feedback on priorities/plan
■ Split specification and implementation projects
■ Modernize TCKs, build TCK knowledge to achieve
relase golas
■ Major Jakarta EE 10 relase
■ Eliminate GlassFish depnedencies
66
Slide 68
Slide 68 text
Copyright 2021 FUJITSU LIMITED
Compatible Implementation
■ CI (互換実装)が、どのようにJava SE 11ランタイムを
サポートするかは、ベンダーしだい。
JPMS
67
Slide 69
Slide 69 text
Copyright 2021 FUJITSU LIMITED
ツール
Jakarta EE 10に備えて、ツールの整備
Jakarta EE 9 ツーリングリリース
■ IDE
■ モニタリングツール
■ テストツール
■ 移植ツール
68
Slide 70
Slide 70 text
Copyright 2021 FUJITSU LIMITED
CDI
EJB
Lite CDI
head of time
compilation
まだ
69