SlideShare a Scribd company logo
1 of 61
Download to read offline
2021年1月26日
数村憲治
Jakarta EE 9とこれから
Copyright 2021 FUJITSU LIMITED
0
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
Who am I ?
Copyright 2021 FUJITSU LIMITED
}
{
“名前”: “数村憲治”,
“勤務”: “富士通”,
“Jakarta EE”: “Specification Committee メンバー”,
“JCP”: “EC メンバー”,
“Eclipse Foundation”: “ボードディレクター”,
“Twitter”: “@kkzr”
2
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
Copyright 2021 FUJITSU LIMITED
Jakarta EE
■ オープンな仕様
■Jakarta EE Specification Process
■コードファースト
■ オープンソースTCK
■Eclipse TCK License
■オープンな認証プロセス
■ 互換実装
■Jakarta EE Platform (Full Platform/ Web Profile)
4
Copyright 2021 FUJITSU LIMITED
Jakarta EE コミュニティ
18 団体メンバー
123 新規コントリビューター
~65M コードステップ数
31 オープンソースプロジェクト 60 GitHubリポジトリ
5
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
Copyright 2021 FUJITSU LIMITED
Jakarta EE 8 互換実装
7
Copyright 2021 FUJITSU LIMITED
Jakarta EEとEE4J
EE4J
(Eclipse Enterprise for Java)
Jakarta EE
Working Group
■ベンダー中心
■ガバナンス・予算
■仕様承認
■マーケティング・ブランド
■開発者中心
■オープンソースコード/TCK
■仕様作成
■アジャイル・イノベーション
8
Copyright 2021 FUJITSU LIMITED
Jakarta EEの組織
Jakarta EEワーキンググループ
方向性の決定
Platformプロジェクト
[プランの作成]
各仕様プロジェクト
各仕様プロジェクト
[仕様の作成]
EE4Jプロジェクト
承
認
委
任
ステコミ(Steering Committee) 仕様委員会
実装プロジェクト(GlassFishなど)
[実装の作成]
9
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. 最後に
10
Copyright 2021 FUJITSU LIMITED
Jakarta EE 9 コンセプト
■ 容易な新規参入
■新たなベンダーが互換実装を作りやすくする
■コードファースト
■ イノベーションの基礎
■Cloud Native Javaへのキーステップ
■ 簡単な移行
■新しい名前空間へ移行するためのプラットフォーム
11
Copyright 2021 FUJITSU LIMITED
スコープ
■名前空間の変更
■古い仕様の削除
■Java SE 8の仕様を追加
■ドキュメントのアップデート
■javax.* -> jakarta.*
■Jakarta EE 8 のドキュメントは、Java EE 8を
参照させる形式
■Jakartarize
12
Copyright 2021 FUJITSU LIMITED
名前空間の変更
■APIパッケージ名のトップレベルをjavaxからjakartaに変更
■ビッグバン v.s. インクリメンタル
■javaxは、APIを変更しない場合に限って使用可能
■この制約により、Jakarta EE 8では機能追加がなかった
■これから、Jakarta EEに機能追加していくために、javax
を使わないよにする
■必須仕様も、オプション仕様も、すべてのAPIをJakarta EE 9
で変更するビッグバン方式
13
Copyright 2021 FUJITSU LIMITED
名前空間変更による互換性
Jakarta EE 8/Java EE 8以前のアプリは動くのか?
バイナリ互換 ソース互換
ランタイム製品による対応
実装製品は実行時に
パッケージ名を変換する
仕組みを提供することを推奨
Jakarta EE 8ビルド環境を
使用するか、jakarta名前
空間へのソース変更
?
IDE他ツールによる対応
14
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
 https://jakarta.ee/xml/ns/jakartaee/application_9.xsd
 https://jakarta.ee/xml/ns/jakartaee/web-app_5_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
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
仕様バージョン
■ 各仕様のバージョンは、メジャー番号を上げる
■ Maven artifact なども、メジャー番号のアップ
機能追加はないけど、名前空間の変更のため
例: JPA 2.2 → 3.0
17
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
Pruning
■Java EE仕様で使われていたPruning(=Optional)
とは意味が変わっている。
■ 古いAPIを仕様から削除することで、新規参入障壁を軽減
■ 仕様から削除された仕様を製品として提供するかは、
ベンダー次第
仕様からの削除 提供されない
19
Copyright 2021 FUJITSU LIMITED
Jakarta EE 9 で Optional になった仕様
■Jakarta Enterprise Beans 2.x API group
■Jakarta Enterprise Web Services, JSR 109
20
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
開発者は、アプリが
新しい名前空間に
移行できるか検証
Copyright 2021 FUJITSU LIMITED
ツーリングリリース
Jakarta EE 10で加速するための基礎作り
ツールベンダーは
新しい「jakarta.*」
名前空間に対応
Jakarta EE 9はビッグバンに対応するためのツーリングリリース
ランタイムベンダーは
Jakarta EE 8
互換サポート機能
の検証
22
Copyright 2021 FUJITSU LIMITED
対応ツール(調整中・対応中)
IDE
• Eclipse Che
• Eclipse Desktop
• NetBeans
• IntelliJ
• VS Code
移植ツール
• Eclipse Transformer
• Apache migration tool
モニタリング
• New Relic
• AppDynamics
• DataDog
• Elastic
テスト
• JBoss Arquillian
23
Copyright 2021 FUJITSU LIMITED
移植ツール
■ Eclipse Transformer
■ Apache Tomcat migration tool for Jakarta EE
■https://projects.eclipse.org/projects/technology.transformer
■https://github.com/eclipse/transformer
■https://github.com/apache/tomcat-jakartaee-migration
24
Copyright 2021 FUJITSU LIMITED
Eclipse Transformer
■ クラス内で使用されているパッケージ名の変更
■ APIとコマンドラインI/F
■コマンドラインI/F
■javax → jakarta
■任意のルールも設定可能
■クラスローダーからの使用可能(実行時に変換)
■jar/war/classが対象
25
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. 最後に
26
Copyright 2021 FUJITSU LIMITED
仕様委員会 2021年計画
■新リリース [第一優先]
■スピードアップ[第二優先]
■Jakarta EE 9.1 - JDK11対応
■各仕様のアップデート
■9.x プラットフォームリリース (インクリメンタルに機能追加)
■優先度・プランについて、コミュニティからのフィードバック
■仕様プロジェクトと実装プロジェクトの分離
■TCKのモダナイズ
■Jakarta EE 10 メジャーリリース
■GlassFish 依存解消
27
Copyright 2021 FUJITSU LIMITED
Jakarta EE 9.1
2021年1月31日までに、Platformプロジェクトで、リリースプラン決定
できるだけ単純に
2021年1月末
プランレビュー リリース
2021年??月
28
Copyright 2021 FUJITSU LIMITED
ここから後は、ほとんど未確定情報
29
Copyright 2021 FUJITSU LIMITED
スコープ – Jakarta EE 9.1
■ 仕様は、Jakarta EE 9と同じ
■ Java SE 11 サポートの追加のみ
■ Platform Specification と
Web Profile Specification のみ
APIのアップデートはなし
30
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
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
Copyright 2021 FUJITSU LIMITED
互換実装
■ Eclipse GlassFishが候補
■ CI (互換実装)が、どのようにJava SE 11ランタイム
をサポートするかは、ベンダーしだい。
JPMSなど
Jakarta EE 9.1互換のEclipse GlassFishがいつリリース
されるかは、GlassFishコミュニティ次第
33
Copyright 2021 FUJITSU LIMITED
各仕様のマイナーアップデート
■ APIのアップデートは、Jakarta EE 9.1には含めない
■ APIに影響を与えないドキュメントの修正は可
■ 2021年1月末までに、個別のリリースプランが必要
■バグ修正は含める
34
Copyright 2021 FUJITSU LIMITED
Jakarta EE 9.1 APIs
■ PlatformとWebProfileのAPI jarは、再作成
■ 中身は、Jakarta EE 9.0のjarファイルと同じ
■ maven artifact を見やすく、探しやすくするため
35
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
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
リリース間隔
■Feature Release v.s. Time Box
■Time Box
■LTS v.s. STS
1年に1回?
半年に1回?
2年に1回?
3年以上?
仕様としての長期サポートの意味は
38
Copyright 2021 FUJITSU LIMITED
Java SE リリースとの同期
■Java SE 17が2021年リリース予定
■今後、Java SEのアップデートと同期するのか?
Jakarta EE はいつ対応するのか?
39
Copyright 2021 FUJITSU LIMITED
CDI Lite
 Jakarta DI
 Jakarta CDI Lite
 Jakarta CDI Core
 Jakarta CDI EE
AOT、Build Time Injectionなどへの対応のためレベル分け
40
Copyright 2021 FUJITSU LIMITED
設定の外出し
■クラウド・コンテナ利用時のポータビリティ実現
■MicroProfile Configuration
Build Once, Run Anywhere
MicroProfileの仕様を、どのように
Jakarta EEに取込むか?
41
Copyright 2021 FUJITSU LIMITED
既存仕様のアップデート
■Jakarta Security
■Jakarta Concurrency
■Jakarta Messaging
JWT, OAuth2などのサポート
■@MaxConcurrencyなどの追加
■Java SEのcompletable futureのサポート
■Message Driven Beanと同等のCDIサポート
■Kafka/MQTT/AMQP連携
■Java SEスタンドアローンAPI
42
Copyright 2021 FUJITSU LIMITED
既存仕様のアップデート
■Jakarta Persistence
■Jakarta Rest
■NoSQL/JCacheのサポート
■マルチテナンシーのサポート
■Java SEの Recordへの対応
■@Contextの替わりに@Injectのサポート
■Java SEスタンドアローンAPI
■multipart/form-dataのネイティブサポート
43
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
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
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
実装プロジェクトと仕様プロジェクト
https://projects.eclipse.org/projects/ee4j
実装プロジェクト
と仕様プロジェクトで
運用ルールが違う
EE4Jプロジェクト一覧(抜粋)
先頭に、「Eclipse」が付いているのが
実装プロジェクト
先頭に、「Jakarta」が付いているのが
仕様プロジェクト
47
Copyright 2021 FUJITSU LIMITED
仕様のIPフロー
仕様 実装品
コントリビューター
実装者
このダウンストリームラインセンスは、
ASLやEPLではカバーされていない
特
許
実装
特
許
特
許
仕様を実装する目的
でライセンスされる。
改変はできない。
仕様リリース前に
特許の使用を
認める。
48
Copyright 2021 FUJITSU LIMITED
Eclipse Foundation内での運用
■以下の4つで仕様ライセンスをカバー
■Eclipse Foundation Specification Process(EFSP)
仕様策定する場合は、このプロセスに従う必要あり
■Eclipse Foundation Specification License (EFSL)
■Eclipse Foundation TCK License
■Participation Agreement
■IP Policy
49
Copyright 2021 FUJITSU LIMITED
Eclipse MicroProfile
■MicroProfileの仕様を策定するプロジェクト
■これまで(*)のMicroProfileのプロセスでは問題あり
■仕様が、EFSLで提供されていない
■EFSPにしたがったプロセスでない
MicroProfile 4.0がリリースできない
Working Group/仕様委員会の設立が必要
50
(*) 2020年10月
Copyright 2021 FUJITSU LIMITED
MicroProfile ワーキンググループ
■Jakarta EEとは独立したWG
■仕様を策定するのに必要
■2020年10月に設立
■参加メンバー(2021年1月現在)
IBM、Red Hat、Tomitribe、Oracle、Payaraなど
■Steering Committeeが仕様の承認
(独立した仕様委員会は設けない)
■2020年11月にMicroProfile 4.0をWGとして初めてリリース
■2021年1月にMicroProfile 4.1をEFSLでリリース
51
Copyright 2021 FUJITSU LIMITED
MicroProfile と Jakarta EE
2019年秋
CodeOne開催時に、
主要ベンダーでMPWG
の設立意向を確認
2020年初 2020年夏 2020年秋
MicroProfileがJakarta
EEに合流する方向
Umbrella WG 構想
独立したWGとして設立
Jakarta EE WGの予算
の一部が MPWGへ
Cloud Native for Java
構想
52
Copyright 2021 FUJITSU LIMITED
CN4J アライアンス
■MicroProfile と Jakarta EE のシナジーが目的
■ゴール
■ノン・ゴール
■一貫したマーケティング・プロモーション
MicroProfileとJakarta EEは競合ではない
■技術討議をする場を設ける
Jakarta EEはどのようにMicorProfileのAPIを取り入れるか
■現在の、MicroProfile と Jakarta EE WGの構造を変える
■新しいWGを作る
53
■Push v.s. Pull (2020年春)
■CN4Jアライアンス (2021年初)
Copyright 2021 FUJITSU LIMITED
MP APIをJakarta EEにどう取り込むか
forkは好ましくないという議論が白熱
forkする・しないで、議論が再燃
MicroProfile Jakarta EE
互換性 非互換許容 互換性重視
リリースサイクル 数回/年 1回/年(?)
パッケージ名 org.eclipse.microprofile jakarta.ee
■[MPコミュニティ] Pullモデルを選択
■[Jakartaサイド] APIを取込むので、MP APIをforkする。
54
Push/Pullモデル
仕様
作成
push
MicroProfile
・パッケージ名
・互換性
・ライフサイクル
仕様
incubation
graduation
成熟
作成 pull
MicroProfile
Pushモデル:成熟したものをJakarta EEへ提供
Pullモデル:ダウンストリームを気にせず一方的に作る
仕様
利用者
・パッケージ名
・互換性
・ライフサイクル
利用者
55
仕様共有案
案1:MicroProfileの仕様を名前空間を変えずに
Jakarta EEに移動
MicroProfileのブランドが混乱
案2:MicroProfileの仕様を名前空間を変えて
Jakarta EEに移動
MicroProfileは互換性の担保が必要
案3 :MicroProfileの仕様をJakarta EEが参照
循環依存が発生
案4 :Jakarta EEで独自に作る
依存関係は解消できるが、冗長で、
似て非なるものができる。
56
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. 最後に
57
Copyright 2021 FUJITSU LIMITED
Jakarta EE へ参加しよう
https://wiki.eclipse.org/How_To_Contribute
仕様、ソースコード、TCK、Webサイトなど
様々な形で参加可能
58
Copyright 2020 FUJITSU LIMITED
Question?
59
60

More Related Content

What's hot

20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13Amazon Web Services Japan
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!オラクルエンジニア通信
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方Recruit Lifestyle Co., Ltd.
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門Shuji Yamada
 
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Keisuke Takahashi
 
Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Takeshi Fukuhara
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Hirofumi Iwasaki
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsYoshiyasu SAEKI
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)NTT DATA Technology & Innovation
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5Takahiro YAMADA
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所Toru Makabe
 
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaTomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaNorito Agetsuma
 

What's hot (20)

20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門
 
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
 
Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Microsoft Azure Storage 概要
Microsoft Azure Storage 概要
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Helidon 概要
Helidon 概要Helidon 概要
Helidon 概要
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所
 
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷JavaTomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
 

Similar to Jakarta EE 9 と これから

JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020Kenji Kazumura
 
JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209
JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209
JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209オラクルエンジニア通信
 
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019Takashi Ito
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本Takahiro YAMADA
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJavaTakashi Ito
 
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)NTT DATA Technology & Innovation
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方Takahiro YAMADA
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?Takahiro YAMADA
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Takakiyo Tanaka
 
LL2021 Java update
LL2021 Java updateLL2021 Java update
LL2021 Java updatetorutk
 
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...Insight Technology, Inc.
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めYou&I
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)NTT DATA Technology & Innovation
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpYuji Kubota
 

Similar to Jakarta EE 9 と これから (20)

JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020JakartaOne Livestream Japan 2020
JakartaOne Livestream Japan 2020
 
JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209
JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209
JDK: 新しいリリースモデル解説 (ver. 2.2) @ 札幌 - 20190209
 
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
JDK:新しいリリースモデル解説 @ 富山 BuriKaigi 2019
 
20190202 jdk new_release_model_sendai
20190202 jdk new_release_model_sendai20190202 jdk new_release_model_sendai
20190202 jdk new_release_model_sendai
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
JDK:新しいリリースモデル解説 @ 岡山・広島
JDK:新しいリリースモデル解説 @ 岡山・広島JDK:新しいリリースモデル解説 @ 岡山・広島
JDK:新しいリリースモデル解説 @ 岡山・広島
 
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
 
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
Java 17直前!オレ流OpenJDK「の」開発環境(Open Source Conference 2021 Online/Kyoto 発表資料)
 
JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡JDK:新しいリリースモデル解説 @ 熊本・福岡
JDK:新しいリリースモデル解説 @ 熊本・福岡
 
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
 
JDK: 新しいリリースモデル解説(ver.2.1)
JDK: 新しいリリースモデル解説(ver.2.1)JDK: 新しいリリースモデル解説(ver.2.1)
JDK: 新しいリリースモデル解説(ver.2.1)
 
JDK: 新しいリリースモデル解説(ver.2.0)
JDK: 新しいリリースモデル解説(ver.2.0)JDK: 新しいリリースモデル解説(ver.2.0)
JDK: 新しいリリースモデル解説(ver.2.0)
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
JDK: 新しいリリースモデル解説
JDK: 新しいリリースモデル解説JDK: 新しいリリースモデル解説
JDK: 新しいリリースモデル解説
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界
 
LL2021 Java update
LL2021 Java updateLL2021 Java update
LL2021 Java update
 
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
[db tech showcase Tokyo 2016] D13: NVMeフラッシュストレージを用いた高性能高拡張高可用なデータベースシステムの実現方...
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
 
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jpJavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
 

More from Kenji Kazumura

GCを発生させないJVMとコーディングスタイル
GCを発生させないJVMとコーディングスタイルGCを発生させないJVMとコーディングスタイル
GCを発生させないJVMとコーディングスタイルKenji Kazumura
 
Microprofileでエンタープライズ品質
Microprofileでエンタープライズ品質Microprofileでエンタープライズ品質
Microprofileでエンタープライズ品質Kenji Kazumura
 
Versatil Javaチューニング
Versatil JavaチューニングVersatil Javaチューニング
Versatil JavaチューニングKenji Kazumura
 
Challenge for GlassFish Builpack
Challenge for GlassFish BuilpackChallenge for GlassFish Builpack
Challenge for GlassFish BuilpackKenji Kazumura
 
Python + GDB = Javaデバッガ
Python + GDB = JavaデバッガPython + GDB = Javaデバッガ
Python + GDB = JavaデバッガKenji Kazumura
 
JavaDayTokyo2015 [3-1]
JavaDayTokyo2015 [3-1]JavaDayTokyo2015 [3-1]
JavaDayTokyo2015 [3-1]Kenji Kazumura
 
Javaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使うJavaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使うKenji Kazumura
 

More from Kenji Kazumura (9)

GCを発生させないJVMとコーディングスタイル
GCを発生させないJVMとコーディングスタイルGCを発生させないJVMとコーディングスタイル
GCを発生させないJVMとコーディングスタイル
 
Microprofileでエンタープライズ品質
Microprofileでエンタープライズ品質Microprofileでエンタープライズ品質
Microprofileでエンタープライズ品質
 
CPUから見たG1GC
CPUから見たG1GCCPUから見たG1GC
CPUから見たG1GC
 
Versatil Javaチューニング
Versatil JavaチューニングVersatil Javaチューニング
Versatil Javaチューニング
 
microprofile
microprofilemicroprofile
microprofile
 
Challenge for GlassFish Builpack
Challenge for GlassFish BuilpackChallenge for GlassFish Builpack
Challenge for GlassFish Builpack
 
Python + GDB = Javaデバッガ
Python + GDB = JavaデバッガPython + GDB = Javaデバッガ
Python + GDB = Javaデバッガ
 
JavaDayTokyo2015 [3-1]
JavaDayTokyo2015 [3-1]JavaDayTokyo2015 [3-1]
JavaDayTokyo2015 [3-1]
 
Javaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使うJavaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使う
 

Jakarta EE 9 と これから

  • 2. 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
  • 3. Who am I ? Copyright 2021 FUJITSU LIMITED } { “名前”: “数村憲治”, “勤務”: “富士通”, “Jakarta EE”: “Specification Committee メンバー”, “JCP”: “EC メンバー”, “Eclipse Foundation”: “ボードディレクター”, “Twitter”: “@kkzr” 2
  • 4. 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
  • 5. Copyright 2021 FUJITSU LIMITED Jakarta EE ■ オープンな仕様 ■Jakarta EE Specification Process ■コードファースト ■ オープンソースTCK ■Eclipse TCK License ■オープンな認証プロセス ■ 互換実装 ■Jakarta EE Platform (Full Platform/ Web Profile) 4
  • 6. Copyright 2021 FUJITSU LIMITED Jakarta EE コミュニティ 18 団体メンバー 123 新規コントリビューター ~65M コードステップ数 31 オープンソースプロジェクト 60 GitHubリポジトリ 5
  • 7. 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
  • 8. Copyright 2021 FUJITSU LIMITED Jakarta EE 8 互換実装 7
  • 9. Copyright 2021 FUJITSU LIMITED Jakarta EEとEE4J EE4J (Eclipse Enterprise for Java) Jakarta EE Working Group ■ベンダー中心 ■ガバナンス・予算 ■仕様承認 ■マーケティング・ブランド ■開発者中心 ■オープンソースコード/TCK ■仕様作成 ■アジャイル・イノベーション 8
  • 10. Copyright 2021 FUJITSU LIMITED Jakarta EEの組織 Jakarta EEワーキンググループ 方向性の決定 Platformプロジェクト [プランの作成] 各仕様プロジェクト 各仕様プロジェクト [仕様の作成] EE4Jプロジェクト 承 認 委 任 ステコミ(Steering Committee) 仕様委員会 実装プロジェクト(GlassFishなど) [実装の作成] 9
  • 11. 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. 最後に 10
  • 12. Copyright 2021 FUJITSU LIMITED Jakarta EE 9 コンセプト ■ 容易な新規参入 ■新たなベンダーが互換実装を作りやすくする ■コードファースト ■ イノベーションの基礎 ■Cloud Native Javaへのキーステップ ■ 簡単な移行 ■新しい名前空間へ移行するためのプラットフォーム 11
  • 13. Copyright 2021 FUJITSU LIMITED スコープ ■名前空間の変更 ■古い仕様の削除 ■Java SE 8の仕様を追加 ■ドキュメントのアップデート ■javax.* -> jakarta.* ■Jakarta EE 8 のドキュメントは、Java EE 8を 参照させる形式 ■Jakartarize 12
  • 14. Copyright 2021 FUJITSU LIMITED 名前空間の変更 ■APIパッケージ名のトップレベルをjavaxからjakartaに変更 ■ビッグバン v.s. インクリメンタル ■javaxは、APIを変更しない場合に限って使用可能 ■この制約により、Jakarta EE 8では機能追加がなかった ■これから、Jakarta EEに機能追加していくために、javax を使わないよにする ■必須仕様も、オプション仕様も、すべてのAPIをJakarta EE 9 で変更するビッグバン方式 13
  • 15. Copyright 2021 FUJITSU LIMITED 名前空間変更による互換性 Jakarta EE 8/Java EE 8以前のアプリは動くのか? バイナリ互換 ソース互換 ランタイム製品による対応 実装製品は実行時に パッケージ名を変換する 仕組みを提供することを推奨 Jakarta EE 8ビルド環境を 使用するか、jakarta名前 空間へのソース変更 ? IDE他ツールによる対応 14
  • 16. 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  https://jakarta.ee/xml/ns/jakartaee/application_9.xsd  https://jakarta.ee/xml/ns/jakartaee/web-app_5_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
  • 17. 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
  • 18. Copyright 2021 FUJITSU LIMITED 仕様バージョン ■ 各仕様のバージョンは、メジャー番号を上げる ■ Maven artifact なども、メジャー番号のアップ 機能追加はないけど、名前空間の変更のため 例: JPA 2.2 → 3.0 17
  • 19. 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
  • 20. Copyright 2021 FUJITSU LIMITED Pruning ■Java EE仕様で使われていたPruning(=Optional) とは意味が変わっている。 ■ 古いAPIを仕様から削除することで、新規参入障壁を軽減 ■ 仕様から削除された仕様を製品として提供するかは、 ベンダー次第 仕様からの削除 提供されない 19
  • 21. Copyright 2021 FUJITSU LIMITED Jakarta EE 9 で Optional になった仕様 ■Jakarta Enterprise Beans 2.x API group ■Jakarta Enterprise Web Services, JSR 109 20
  • 22. 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
  • 23. 開発者は、アプリが 新しい名前空間に 移行できるか検証 Copyright 2021 FUJITSU LIMITED ツーリングリリース Jakarta EE 10で加速するための基礎作り ツールベンダーは 新しい「jakarta.*」 名前空間に対応 Jakarta EE 9はビッグバンに対応するためのツーリングリリース ランタイムベンダーは Jakarta EE 8 互換サポート機能 の検証 22
  • 24. Copyright 2021 FUJITSU LIMITED 対応ツール(調整中・対応中) IDE • Eclipse Che • Eclipse Desktop • NetBeans • IntelliJ • VS Code 移植ツール • Eclipse Transformer • Apache migration tool モニタリング • New Relic • AppDynamics • DataDog • Elastic テスト • JBoss Arquillian 23
  • 25. Copyright 2021 FUJITSU LIMITED 移植ツール ■ Eclipse Transformer ■ Apache Tomcat migration tool for Jakarta EE ■https://projects.eclipse.org/projects/technology.transformer ■https://github.com/eclipse/transformer ■https://github.com/apache/tomcat-jakartaee-migration 24
  • 26. Copyright 2021 FUJITSU LIMITED Eclipse Transformer ■ クラス内で使用されているパッケージ名の変更 ■ APIとコマンドラインI/F ■コマンドラインI/F ■javax → jakarta ■任意のルールも設定可能 ■クラスローダーからの使用可能(実行時に変換) ■jar/war/classが対象 25
  • 27. 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. 最後に 26
  • 28. Copyright 2021 FUJITSU LIMITED 仕様委員会 2021年計画 ■新リリース [第一優先] ■スピードアップ[第二優先] ■Jakarta EE 9.1 - JDK11対応 ■各仕様のアップデート ■9.x プラットフォームリリース (インクリメンタルに機能追加) ■優先度・プランについて、コミュニティからのフィードバック ■仕様プロジェクトと実装プロジェクトの分離 ■TCKのモダナイズ ■Jakarta EE 10 メジャーリリース ■GlassFish 依存解消 27
  • 29. Copyright 2021 FUJITSU LIMITED Jakarta EE 9.1 2021年1月31日までに、Platformプロジェクトで、リリースプラン決定 できるだけ単純に 2021年1月末 プランレビュー リリース 2021年??月 28
  • 30. Copyright 2021 FUJITSU LIMITED ここから後は、ほとんど未確定情報 29
  • 31. Copyright 2021 FUJITSU LIMITED スコープ – Jakarta EE 9.1 ■ 仕様は、Jakarta EE 9と同じ ■ Java SE 11 サポートの追加のみ ■ Platform Specification と Web Profile Specification のみ APIのアップデートはなし 30
  • 32. 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
  • 33. 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
  • 34. Copyright 2021 FUJITSU LIMITED 互換実装 ■ Eclipse GlassFishが候補 ■ CI (互換実装)が、どのようにJava SE 11ランタイム をサポートするかは、ベンダーしだい。 JPMSなど Jakarta EE 9.1互換のEclipse GlassFishがいつリリース されるかは、GlassFishコミュニティ次第 33
  • 35. Copyright 2021 FUJITSU LIMITED 各仕様のマイナーアップデート ■ APIのアップデートは、Jakarta EE 9.1には含めない ■ APIに影響を与えないドキュメントの修正は可 ■ 2021年1月末までに、個別のリリースプランが必要 ■バグ修正は含める 34
  • 36. Copyright 2021 FUJITSU LIMITED Jakarta EE 9.1 APIs ■ PlatformとWebProfileのAPI jarは、再作成 ■ 中身は、Jakarta EE 9.0のjarファイルと同じ ■ maven artifact を見やすく、探しやすくするため 35
  • 37. 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
  • 38. 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
  • 39. Copyright 2021 FUJITSU LIMITED リリース間隔 ■Feature Release v.s. Time Box ■Time Box ■LTS v.s. STS 1年に1回? 半年に1回? 2年に1回? 3年以上? 仕様としての長期サポートの意味は 38
  • 40. Copyright 2021 FUJITSU LIMITED Java SE リリースとの同期 ■Java SE 17が2021年リリース予定 ■今後、Java SEのアップデートと同期するのか? Jakarta EE はいつ対応するのか? 39
  • 41. Copyright 2021 FUJITSU LIMITED CDI Lite  Jakarta DI  Jakarta CDI Lite  Jakarta CDI Core  Jakarta CDI EE AOT、Build Time Injectionなどへの対応のためレベル分け 40
  • 42. Copyright 2021 FUJITSU LIMITED 設定の外出し ■クラウド・コンテナ利用時のポータビリティ実現 ■MicroProfile Configuration Build Once, Run Anywhere MicroProfileの仕様を、どのように Jakarta EEに取込むか? 41
  • 43. Copyright 2021 FUJITSU LIMITED 既存仕様のアップデート ■Jakarta Security ■Jakarta Concurrency ■Jakarta Messaging JWT, OAuth2などのサポート ■@MaxConcurrencyなどの追加 ■Java SEのcompletable futureのサポート ■Message Driven Beanと同等のCDIサポート ■Kafka/MQTT/AMQP連携 ■Java SEスタンドアローンAPI 42
  • 44. Copyright 2021 FUJITSU LIMITED 既存仕様のアップデート ■Jakarta Persistence ■Jakarta Rest ■NoSQL/JCacheのサポート ■マルチテナンシーのサポート ■Java SEの Recordへの対応 ■@Contextの替わりに@Injectのサポート ■Java SEスタンドアローンAPI ■multipart/form-dataのネイティブサポート 43
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. Copyright 2021 FUJITSU LIMITED 実装プロジェクトと仕様プロジェクト https://projects.eclipse.org/projects/ee4j 実装プロジェクト と仕様プロジェクトで 運用ルールが違う EE4Jプロジェクト一覧(抜粋) 先頭に、「Eclipse」が付いているのが 実装プロジェクト 先頭に、「Jakarta」が付いているのが 仕様プロジェクト 47
  • 49. Copyright 2021 FUJITSU LIMITED 仕様のIPフロー 仕様 実装品 コントリビューター 実装者 このダウンストリームラインセンスは、 ASLやEPLではカバーされていない 特 許 実装 特 許 特 許 仕様を実装する目的 でライセンスされる。 改変はできない。 仕様リリース前に 特許の使用を 認める。 48
  • 50. Copyright 2021 FUJITSU LIMITED Eclipse Foundation内での運用 ■以下の4つで仕様ライセンスをカバー ■Eclipse Foundation Specification Process(EFSP) 仕様策定する場合は、このプロセスに従う必要あり ■Eclipse Foundation Specification License (EFSL) ■Eclipse Foundation TCK License ■Participation Agreement ■IP Policy 49
  • 51. Copyright 2021 FUJITSU LIMITED Eclipse MicroProfile ■MicroProfileの仕様を策定するプロジェクト ■これまで(*)のMicroProfileのプロセスでは問題あり ■仕様が、EFSLで提供されていない ■EFSPにしたがったプロセスでない MicroProfile 4.0がリリースできない Working Group/仕様委員会の設立が必要 50 (*) 2020年10月
  • 52. Copyright 2021 FUJITSU LIMITED MicroProfile ワーキンググループ ■Jakarta EEとは独立したWG ■仕様を策定するのに必要 ■2020年10月に設立 ■参加メンバー(2021年1月現在) IBM、Red Hat、Tomitribe、Oracle、Payaraなど ■Steering Committeeが仕様の承認 (独立した仕様委員会は設けない) ■2020年11月にMicroProfile 4.0をWGとして初めてリリース ■2021年1月にMicroProfile 4.1をEFSLでリリース 51
  • 53. Copyright 2021 FUJITSU LIMITED MicroProfile と Jakarta EE 2019年秋 CodeOne開催時に、 主要ベンダーでMPWG の設立意向を確認 2020年初 2020年夏 2020年秋 MicroProfileがJakarta EEに合流する方向 Umbrella WG 構想 独立したWGとして設立 Jakarta EE WGの予算 の一部が MPWGへ Cloud Native for Java 構想 52
  • 54. Copyright 2021 FUJITSU LIMITED CN4J アライアンス ■MicroProfile と Jakarta EE のシナジーが目的 ■ゴール ■ノン・ゴール ■一貫したマーケティング・プロモーション MicroProfileとJakarta EEは競合ではない ■技術討議をする場を設ける Jakarta EEはどのようにMicorProfileのAPIを取り入れるか ■現在の、MicroProfile と Jakarta EE WGの構造を変える ■新しいWGを作る 53
  • 55. ■Push v.s. Pull (2020年春) ■CN4Jアライアンス (2021年初) Copyright 2021 FUJITSU LIMITED MP APIをJakarta EEにどう取り込むか forkは好ましくないという議論が白熱 forkする・しないで、議論が再燃 MicroProfile Jakarta EE 互換性 非互換許容 互換性重視 リリースサイクル 数回/年 1回/年(?) パッケージ名 org.eclipse.microprofile jakarta.ee ■[MPコミュニティ] Pullモデルを選択 ■[Jakartaサイド] APIを取込むので、MP APIをforkする。 54
  • 57. 仕様共有案 案1:MicroProfileの仕様を名前空間を変えずに Jakarta EEに移動 MicroProfileのブランドが混乱 案2:MicroProfileの仕様を名前空間を変えて Jakarta EEに移動 MicroProfileは互換性の担保が必要 案3 :MicroProfileの仕様をJakarta EEが参照 循環依存が発生 案4 :Jakarta EEで独自に作る 依存関係は解消できるが、冗長で、 似て非なるものができる。 56
  • 58. 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. 最後に 57
  • 59. Copyright 2021 FUJITSU LIMITED Jakarta EE へ参加しよう https://wiki.eclipse.org/How_To_Contribute 仕様、ソースコード、TCK、Webサイトなど 様々な形で参加可能 58
  • 60. Copyright 2020 FUJITSU LIMITED Question? 59
  • 61. 60