せてぃーずノート

Javaのイベント参加レポートとかを書いたりします。

Spring Fest 2019メモその2 Reactive Spring

Josh LongさんがライブコーディングをしつつReactiveについて3時間弱熱く語ってくれるセッション。
すごく勉強になった。

リアクティブプログラミングは、より多くのユーザーリクエストを処理するための水平スケール依も効率がいい解決手段。
CPUに効率よく仕事をさせることができる。

これまでのプログラミングではCPUがIO待ちによるアイドリング状態が多い。
IO待ちの間、CPUは何も仕事をしていない。

リクエストを受け付けるため、大量のスレッドが待機状態にする必要がある(IO待ち)。
大量のリクエストを受付けるためにスレッドを増やすと、スレッド管理のためにOS、CPUに無駄な仕事が発生する。

それに対してリアクティブプログラミングはスレッドを効率よく使う。
データが発生するとコールバックで処理を行うため、スレッドをキープし続ける必要はない。

Javaの非同期のIOはJava 1.4でNIOによって実現可能。
18年前に出ているが、APIが使いにくいため使われていなかった。
また、無理に使わなくてもロードバランサーでどうにかできた。(非同期IOに比べれば効率は悪いが・・・)

リアクティブは4つのシンプルなインターフェースの構成。
Subscriber、Publisher、Processor、Subscription

Reactiveに対応したデータソースは、CosmosDB、GoogleのFirebase、Elasticsearchとか様々ある。
RDBSQL使いたい人のためにR2DBCを提供。
R2DBCはGAだが、SpringBootとのインテグレーションはまだ。

ポーリングはユーザーエクスペリエンスがよくない。
特に市場の株価のようなライブの情報が必要となる場合。
リアルタイムの通信が必要な場合、1ソケット1スレッドは効率悪い。
ユーザーが明示的にシャットダウンをしないとスレッドのロスも発生する。

Reactiveの背後にはスケジューラー(のようなもの)がいる
必要なスレッドはCPUのコアだけ。(デフォルト設定)
処理を書く際はブロッキングをしてはいけない
例えば4つのコアがあるときにブロッキングが発生すると、処理性能が25%停止する
ブロッキングしなければいけない場合、ソースで明示的にしなければいけない。

ブロッキングされている処理の検出はBlockHoundで可能

github.com

Reactiveの利点はユーザーの数を2倍にしつつデータセンターのコストをそのままにすること。
新しいプログラミングモデルを提供してくれる。
従来であればリクエストに対して成功・失敗のどちらかを返していたが、リアクティブではいろいろな応答を何回も返せる。

リクエスト数の上限を設定する場合、ノード単位の指定は避ける。
なぜなら、スケールするとその分増えてしまう。
細かい単位での指定が必要。
例えばセール実施中の国は優先度を高くする。
寝ている時間の国の優先度を下げる

認証処理ではbCryptを使うが、これは時間がかかりブロックが発生する。
ReactiveのSpringSecurityはこの処理を別スレッドで行う。

リアクティブの世界の場合、リクエストを受け付けたスレッドと応答を返すスレッドが異なる場合がある。
受け付けたリクエストに対する処理がどのスレッドで行われているかは分からない。
しかし、リクエストではSecurityの情報が必要になる。
スレッドローカルは利用できないため、サブスクライブした処理の中でどこからでも参照できるSubscriberContextを利用する。

サービスは落ちることがある。
綺麗な形で落とし、外から見たら何も起こらなかったようにみせる。
ダウンしているのが分かっていれば、そのサービスを呼ぶ必要はない。
サーキットブレーカーを利用する。

サービスが10インスタンス立ち上がっていることがわかっていれば、どこのサービスを使えるかがわかる。
1つのサービスがダメでも他のところに送ればいいが、リトライ・タイムアウトのハンドリングが難しい。
なので最初からリクエストを全てのサービスに送るヘッジングという手法がある。
リクエストから同じ結果が帰ってくる場合に有効。
最初に応答が返ってきた物を有効にし、他のストリームはキャンセルする。

双方向の通信をするため、いろいろな仕組みがある。
gRPCはプロトコルバッファーという縛りがある。それに対応したコードは書きたくない。
websocketはセキュリティの問題がある。
さらにペイロードがテキストで多様なデータが飛び交うと難しい。

RsocketとActuatorを組み合わせることで、送信先インスタンスがビジーであれば他のインスタンスにリクエストを送る仕組みがある。
RsocketとSpringSecurityを組み合わせられるため、セキュリティの担保もできる。
ゲートウェイ経由でバックエンドのサービスと直接接続できる。
RSocketならポインタが残るため通信が切断されてもレジュームできる。
クライアントが多くなるほど、他の方式と比較してコストの効率がよくなる。

Spring Fest 2019メモその1 キーノート

Spring One 2019

youtubeにセッションがあり視聴可能

2つの新しい機能を発表
RSocketとR2DBC

Pivotal Spring Rutimeの発表
Java、Spring、Tomcat等をセットでサポート

Springboot2.2の変更点

Java13をサポート
今後、Javaのバージョンの対応はSpringBootのアップデートで対応
(Java14の対応は2.2で行うのではなくSpringboot2.3になる?)

DependencyManegementを更新
最も重要な機能はバナーが256色に対応したこと

Rsocketの追加
Facebookも使用している

Imutable Congfiguration Propertie
一定間隔でコンフィグを再読み込み?

JUnit5

テストメソッドがpublicじゃなくてもよくなる temp directoryとかのテストに必要な便利な機能
SpringBootTestだけで良くなる
RunWithアノテーションが不要になる

パフォーマンス

  • 起動時間の改善:GCの回数削減、メモリフットプリントを小さくなったため
  • 遅延初期化:Beanは要求されなければ作成されない
  • ランタイムのパフォーマンス改善

Graalvmサポート

GraalVMは多言語対応でネイティブイメージを生成可能
ネイティブイメージは起動速度とメモリが圧倒的に少なくなるためサーバレスに向く。
しかし、スループットは下がり、リフレクションや動的プロキシに制約がある

Springは5.2でCGLIBを使わないモードが追加され、大体ネイティブ化できるようになった。
5.3では特に追加しなくてもネイティブ化を可能にする。

SpringCloudのアップデート

アルファベット順でロンドンの駅名を利用
Hoxtonが最新

Spring Cloud Netflixがメンテナンスモードになった。
今後の機能追加はなく、致命的な問題やセキュリティのFixのみ
代替手段は提供されているので公式ドキュメントを参照

Azure Spring Cloud

MicrosoftとPivotalの提携。

CloudNativeBuildpack

ソースコードからOCI標準のコンテナイメージを作成
Dockerファイルは不要
kpackを利用すれば、ビルドしてk8sにデプロイが可能

SpringBoot5.3

JDK17に向けた準備
GraalVMのネイティブイメージサポート
Rsocket、Corutinesの改善

Springboot 2.3

2020/4にリリース予定
コンテナ、k8sサポートの強化
依存ライブラリアップデート(SpringData)
2.3からリリース周期が6ヶ月周期に変更になる(今までは1年周期)

Springのサポート

1.XはすでにEoL
2020年1月に5.0と4.3の最後のリリース
2020/11 SpringBoot2.1 EoL
2020/12 Spring FW5.2 EoL

LINE DeveloperDayで聞いたセキュリティの話メモ

LIFFとかはきっと他の人がブログ書くだろうから地味(?)なとこを・・・。

FIDO

FIDOはセキュアなだけではなく、UXもいい。 LINEはFIDO ユニバーサルサーバーの認定を世界で初めて取得している。 LINEではFIDOを様々なサービスに導入していて、将来的にはパスワードを廃止することを目指している。

Auth0の人のセッション

企業がセキュリティのどこに投資したいかというアンケートでは認証、アイデンティティマネージャーという回答が高い。 でも実際はネットワークセキュリティ、ファイヤウォールに投資している企業がほとんど。 なぜそこに投資しないのか?

90年代は会社のプライベートな情報を保護するため、DMZ、FWに投資。

2000年代にはSaaSクラウドアプリが登場し、自宅からの接続というケースが発生。 企業はプライベートなセキュリティを拡張するために投資。 VPN、プロキシ、暗号化、ネットワークセキュリティ等々。

2010年代になると、identity providerにより複数のアプリにSSO。 覚えるパスワードの数が減りUXはよくなった。 しかし、企業はエンドポイントセキュリティやVPNに投資を続ける。理由は不明。 また、この頃からアイデンティティに対する侵害が多く発生。

informationisbeautiful.net

日本でもPSNの流出事件とか発生。

企業はようやく多要素認証に投資する。 多要素認証によりセキュリティは強化されたがUXは低下。 企業の利益はUXとデータがもたらすため、セキュリティの投資によりUXが下がると利益も下がる。

ゼロトラストに基づく連続的認証という考え方。 これまでは一度認証したらそのセッションは永続する。 そうではなく、confidentialレベルという数値で管理する。

confidentialレベルは認証した直後が最も高い。 この数値は以下のような場合に下がっていく。

  • 認証してからの時間経過
  • アクセスした地理が普段と異なる
  • キーボードの入力がいつもと違う

これに行おうとしているアクションごとに必要な数値を比較する。 例えば、高額の振り込みを行うのであれば、本人確認を再度要求してconfidentialレベルの数値を高くする。 少額の振り込みであれば、必要な数値は低くなる。 このように、アクションするときはconfidentialの現在の値と必要な数値を比較し、不足しているのであればconfidentialレベルをあげるために認証を要求する。

ゼロトラストはちゃんと勉強しないとダメっぽい・・・。

JAWS DAYS 2019に行ってきた

ランチセッションも含め、懇親会まで7時間ほぼ休みなしのセッション! 午前は多少空席あったけど、午後はほぼどのセッションも満員で立ち見が出るくらいの大盛況。

スライドはここのページにまとめてくれています(多謝)

https://qiita.com/hayao_k/items/91c19480948f26b71705

子育てで覚える AWS Organizations 〜ITエンジニア英才教育〜

AWS Organizationsのセッション。 子供にAWSを使って自由に勉強させるというシナリオで、AWS Organizationsを紹介。 AWSアカウントをポンと渡したいけど、クレカの情報は渡したくない。 IAMだけ渡すとAWSを自由に使ってる感がない Organizationを使って事由に操作させつつも制限をかけたりトレースできるようにする方法。

  • AWS Organizationsを使うと、カードなしでAWSアカウントが作れる
    • カードが登録されてるアカウント(マスター)は必要
  • 組織は階層化でき、徐々に権限を狭めていくようなことも可能
  • マスターの組織から、子の組織で利用可能なマーケットプレイス商品をフィルタリングできる
  • Cloud Trailを使うことで、子の組織のアカウントで行われた操作をトレースできる
    • マスターの組織からでないとCloud Trailを無効にできないので、こっそり操作するようなことは出来ない
  • Resource Access Managerを使うことで、親子のオーガニでVPCのサブネットを共有できる
    • 使いどころとしては、一家で一つあればいいサービスの共有。VPNやファイルサーバー
    • デフォルトVPCは共有できない
  • 会社のAWS運用でも、事業部単位にオーガニを作成し、自由に使ってもらうことが出来る
  • オーガニ間のデータ共有は、S3バケットでやることを推奨

RDBリファクタリングと異種間DB移行の戦い – Amazon DMSを使った止めずにリファクタリングする手法

データベースのリファクタリングのお話。 データベースの寿命はアプリケーションより長いため、データベースのリファクタリングは重要。 でも、アプリやバッチも必ず直さないといけないからコストがかかる。

  • 非正規化はSelectのパフォーマンスは向上するが、Insert・Updateのパフォーマンスは下がる
  • データベースリファクタリングという本があるが、日本語版は今は出版されてない・・・
  • Aurora(MySQL)に書く → RDSのPostgresにデータをコピー(MySQLと同じの古いスキーマ) → データ作成時のトリガーで、新スキーマリファクタリング
  • AuroraとPostgresはAmazonDMSで接続

    • テーブル単位でデータを取得、ルールで加工することもできる
    • テーブル名やカラム名の違いを対応可能
  • 更新頻度が高いとDMSが2〜3秒くらい遅延する

  • 参照をAPIにして、リアルタイム性が必要なものはAuroraを参照する
    • 移行完了して新スキーマに切り替えても、APIなら影響を受けない
  • DMSの問題点
    • DMSがローカルで用意できない
    • DMSが単一障害点
    • AuroraのURLが変わると止まる
    • トリガー失敗でDMSが止まる
    • DMSのタスク上限
  • 元々DMSは一時的に利用するツール
    • 根底に据えるのは悪手
    • 予め使用する期間や目的を決めておく
  • 手を動かしたものだけが世界を変える

金融APIAWSを使う上での利点と欠点

カブドットコムAWS刷新。 証券取引システムを構築したい企業のために、APIとインフラを提供する。 データはオンプレにあり、AWSAPIを提供

  • Cognite
    • 多要素認証、パスワードポリシーをGUI
    • 他のマネージサービスと同じくらいと言われているが、耐久性の案内がない。
    • バックアップができない。CSVダウンロードできるが、リストアするとパスワードリセット。
    • エラーメッセージいけてない
  • API Gateway
    • レート、バースト、クウォーターが便利
    • ただし、再作成時カスタムドメインの設定に時間がかかる(数時間)
  • 認可はアカウント、ウォレット、注文で分けている
  • APIの連携ではなく、顧客のVPCにプライベートリンクで接続する事例もある

EC2からKubernetesへの移行をセキュリティ/モニタリングから考える

Freeeの事例 金融機関やクレカの情報だけでなく、法人向けサービスは生の経営情報を取り扱っていると同じで、セキュリティを非常に重要視している。

  • サイバーキルチェーン
    • 攻撃者の攻略ルート、攻撃の段階を想定して対策する
    • AWSの責任共有モデルの考え方では、EC2に潜入されたらユーザーの対策
  • VPCフローログでrejectのログを取る
    • 攻撃者は内部構造を知らないため、探索している可能性がある
  • セキュリティグループでアウトバウンドをanyにしない(外に情報を出せなくする)
  • AWS WAFだと、ペイロードが見れないため情報が不足。WafCharmを導入。
  • DeepSecurityのログはシスログを利用
  • Amazon GuardDutyはポートスキャンとか検知してくれるは数時間かかる
    • DNSクエリのログはとってくれないので自分で取らないとダメ
  • EKSはDeepSecurityが使える
  • k8s内の内部探索はSysdigで検知

AWS x JAMStack で構築・運用するサーバーレスなWeb Front

  • JAMStackはJavaScript,API,MarkUpの頭文字
  • サイトジェネレーターはGatsbyが人気。Reactベース
  • アプリ系としては、Nextjs
  • AWSではAPI Gateway,Appsync,DynamoDB,Lambdaとか
    • デプロイはCodeBuild
  • https://dependabot.com/
    • Githubのpackage.jsonで使ってるライブラリにアップデートがある場合、自動的にissue立ててくれるサービス
    • Javaにも対応しているので後で試してみよう

見せてやろう…Serverlessの本当の力を…!!

  • マイクロサービスは複雑化させない
  • 依存関係の向きを揃える
    • 書き込みと読み込みで、同じデータを取り扱う必要はない
  • 非同期処理をベースに設計する
    • 指示して待ってる(同期)なら、自分でやれ
  • reInvent2018のセッション

  • 非同期処理の利点

  • 課題
    • エラーハンドリング *リトライ可能なエラーはリトライ。
      • リトライできないエラーをどうするか
  • API GatewayのWebSocketはただのマネージドなWebSocketではない
    • 非同期+ポーリングの構築はツライ
  • 接続に対してConnectionIDが振られる
    • ConnectionIDを使い、全く別のLambda関数からクライアントにデータが投げれる
    • 途中でエラーになった場合、エラーが発生した関数からClientに応答を返せる

Kubernetes on AWS/EKSベストプラクティス

ベストプラクティスは移り変わる。 このベストプラクティスは現時点(EKS Tokyoリージョンオープン)のもの。

  • EKSはManagedなControlPlaneを提供する
    • GKEほど全部はやってくれない
  • 小さく始めるなら、CloudWatch Logs、Elasticsearch
    • メトリクスはPrometheus
    • 分散トレーシングはX-Ray
  • ツールはeksctl、terraform-aws-eksがおすすめ
  • eksctlはプロダクションレディのクラスタも作れる

    • Cluster as a code
  • ツール紹介は大量すぎるので元スライドで・・・

  • EKSは造り込みを減らしたいときに採用すべき

    • ECSでもスケールはできる。数千サーバーの事例あり。でも、作り込みが多い。
    • 最新が使いたい、eksが信用できない場合はセルフマネージ
  • cloudwatchはレートリミットと料金が厳しい。特にメトリクス。

運用のコツ

  • 敷居の高さをカバー
    • 必ず相談窓口をおく。(代わりに運用をするチームではない)
    • 新規開発・移行・デプロイに関するドキュメントの整備
    • リファレンス実装を提供
  • blast redius(爆発半径)はちいさく
  • 標準機能でも使わないほうがいいものがある
    • persistence volumeはクラスタ作り変える時に問題になる
    • オートスケーラーはstaticで
    • サービスはNodePortで。LBにすると、クラスタ削除時にELBも一緒に消える
    • Ingressは使わない
    • external-dnsは、クラスタ作り直しが辛い
  • クラスタのアップデートは失敗する可能性がある
  • ノード監視をサボらない
    • 時刻同期のずれとか見張る
    • kube-node-initで初期設定ができる
  • k8sにロックインされないようにする
    • S3とかAWSのサービスはきちんと使う

まとめ

あの参加人数を、人数に対して広いとは言えない会場で運営していたスタッフさんに感謝。 内容は消化不良を起こすくらい満漢全席でした。

OpenJDK11でStruts 1.3.10を動かす

酔っぱらった勢いでやった。今は反省していない。

用意したもの

OpenJDK 11.0.1
JDK 11.0.1 GA Release

StrutsといえばTomcat!!
何も考えずにapache-tomcat-9.0.12を用意

IDEはもちろんEclipse
最新のEclipse SimRelをダウンロード!
IDEA?何それ?

Strutsはサンプルアプリをダウンロード
http://ftp.jaist.ac.jp/pub/apache/struts/1.3.10/struts-1.3.10-apps.zip
もうStruts1なんて覚えてないよ・・・

結果とか

懐かしい画面!10年くらい前によく見たわー!

f:id:setys:20181023233731p:plain

なんか動いた!!
デモを動かしてもある程度は動く!

f:id:setys:20181023233800p:plain

まとめ

  • MavenもGradleも使ってないプロジェクト久々に触った
  • Struts 1はいい加減卒業しよう
  • BorderBreak、Wonderland Warsはいいゲーム

JJUGナイトセミナー「JDK 11リリース記念:今知っておくべきJDK 11の重要ポイント」に行ってきたメモ

最初に

↓を必ず読もう

Javaは今も無償です

JDK 11リリースなので改めて「新しいJDKリリースモデル解説(サマリー&アップデート)」 by 伊藤 敬さん

スライドは↓↓↓

JDK: 新しいリリースモデル解説(ver.2.1)

Oracle JDK

  • 前々からアナウンスされていた商用ライセンス版
    • だけじゃなく、社内もしくは個人での開発・テスト・デモであれば無償利用可能(OTNLAライセンス)
  • OTNからダウンロードできる
  • OTNLAライセンス版も3年間のアップデートが提供される(・・・かもしれない)
    • まだ検討中
  • 商用ライセンスを個人で買う手段は現在用意中

Oracle OpenJDK

  • OracleがビルドしたOpenJDK
  • LTSなし。商用ライセンスもなし
  • Java 8までと同じライセンス

その他

  • 10/16に11.0.1がリリース予定
  • リリース情報はこれからもOpenJDK
    • リリースドキュメントはしっかり見て!!

Java 11 : サポートとVM機能 編 by 久保田 祐史さん

スライドは↓

Introduction to Java 11: Support and JVM Features #jjug

Java11のサポートとJVMについて

  • サポートは開発サポート、配信サポート、問い合わせサポートの3つ。
  • 無償で使いたい人の結論はAdoptOpenJDKからダウンロード。最低4年間の配信サポートが得られる。

  • OpenJDKのメンテナンスリードOracleが務める

    • でも、Java 6のようにOracleが辞めた後、Redhat等が引き継いでサポートを続ける可能性はある。
  • Oracle JDKからOpenJDKの乗り換えは比較的簡単だけど、証明書が若干ネックになるかも

    • ライセンスの関係等でOracle JDKに含まれていた証明書が入っていない可能性
    • OpenJDKを自分でビルドすると空っぽ
  • Java8のサポートが切れるまでにはJava11に移行する

    • ただし、Java 8の有償サポートを受けてる人は2025年まで有効。なので、Java 11ではなく、Java17(次のLTS。2021/9)まで引っ張る選択肢もある
  • 4年以上のバイナリ配信サポートが欲しければ有償サポートしかない

    • 外にサポートを求めてもエース級がくるとは限らない。あえてサポートを受けず、組織内でエースを育てるのもあり。

JVM

JEP 330: Launch Single-File Source-Code Programs

Javaファイルを直接実行できる。例えば、java Hoge.javaで実行できる。

  • メインメソッドと1ファイルで完結するという制約あり
  • Javaソースをスクリプト化できる。これが本当のJavaScript!
JEP 328: Flight Recorder

もともとJava Flight Recorderだったが、Javaが商標に引っかかるからFlight Recorderになった
ツールじゃなくてJREに組み込まれている

JEP 318: Epsilon: A No-Op Garbage Collector

Epsilon GC。何もしないGC。まだ試用版。

メモリ監視とか行わない。なので、何も考えずに使うとOOEMが起こる。
研究や開発で使うのを想定。JITの効果測定とか(GCが邪魔しない)

JEP 333: ZGC: A Scalable Low-Latency Garbage Collector

Java11では試用版のポーズレスGC。世代別GCではないので、色々変わる。
64bit、Linux限定。
今後、クラスアンロード周りを始め、修正がガンガン入ってくる。
また、運用するためには、LinuxのLargePageとNUMA周りも気にしないとダメ。

Java 11:APIの変更点 編 by きしだなおきさん

Nestedクラスのアクセス制御

public、protected、default、private以外の5つ目のアクセス制御。ネストクラス間のprivateメンバーアクセス。
今まではコンパイルすると別クラスになるので、アクセス用のメソッドが生成されていた。
Nest Mate APIでアクセスできる

Dynamic Class Costants

Classfileフォーマットの拡張。言語やコンパイラの実装自由度、クラス読み込みが早くなる(定数の遅延実行)
Java 11ではコンパイラが未対応(?)
将来的にはstatic finalの定数とかも対象に含めたい。

Java EEとCORBAモジュールの削除

JAX-WSとかJAXBとかはMavenでライブラリ取ってくる必要あり。 CORBAはメンテナンスできる人がいなくなった?(まぁ、使ってる方がレアだし・・・?)

HTTPクライアント

Java9で入っていたHTTPクライアントがスタンダードに。
HTTP2、Reactive対応。

varの拡張

varがLambdaでも使えるように。Lambda内でアノテーションをつけるときに便利。

APIの追加

StringにisBlank、strip(全角空白対応のtrim)、Charactor.toStringにintパラメーター(キャスト不要になった)

FilesにReadString,WriteStringが追加され、小さいコードを書く時便利になった。
nullReader,nullWriterは/dev/nullみたいなもの
Path.ofはインターフェースにofメソッドを追加するという最近の流行りに追従。

Collections.toArrayにintFunctionを指定できるようになった
toArray(String[]::new)のように書ける

Streamのfilterでnotが書きやすくなった
文字列が空「じゃない」フィルターでもメソッド参照がつかえる

Thread.destroyとかstopとか削除されたAPIがある

ArrayIndexOutOfBoundsExceptionのメッセージがわかりやすくなった

JapaneseDateの新元号対応。NewEraとして入ってる
新しい元号は、12.0.1(4/25)に反映される予定

Timソートのバグが直った
静的解析ツールKeYで検出

QA

Q:Java 11でJAX-WSやJAX-Bがなくなった背景は?
A:削除の背景は開発速度の違い。Java EEの変更をSEに入れるのが大変。また、Jackarta EEになってパッケージが変わるという理由もある。

Q:年号を起動時に指定できる? A:Enumだからできない。

JJUGからの案内

来月はナイトセミナーだけでなく、OracleCodeOneの報告会を予定。12月はJJUG CCC。
立て続けにイベントがあるのでみんな来てね。

修正メモ

  • スライド追加
  • JDK 11.0.1のリリース日が間違ってたので修正

JJUGナイトセミナー「Jakarta EE, MicroProfile, Payara が目指すもの」へ行ってきた

風邪気味の金曜日、そして週末胃腸炎。ちょっと回復したのでようやく書けた・・・。

EE4J

Jakarta EE

今後のロードマップ

未定のこと

  • ライセンスはできるだけオープンにして欲しいとは言われてる
    • しかし、EE4Jほどにはならないと思われる
  • ワーキンググループに参加するためのFee
    • Java EEOracle時代)はとても高かったので、お手頃にしたいと思っている
  • Glassfishの扱いが未定
    • 参照実装になるかも未定・・・
    • ピックアップする人が出るか
  • リリース頻度をあげたい
    • でも、半年ごとというJavaのリリース速度に合わせると、Jakarta EEが管理しきれないから、それよりは遅くなる
  • すでにある仕様の取り扱い
    • 法的に持ってこれないものも多い・・・
    • その場合スクラッチで構築しなければいけない
  • javaxパッケージの取り扱い

Microprofile

  • 2.0がリリース
  • Payara MicroやOracleのHelidon等がある

Helidon

  • 日本ではあまり知られてない
    • 海外でもまだこれからっぽい

雑感

  • EE4JとJakarta EEの関係が不安
    • Jakarta EEの方はベンダーの思惑とかが入ってくると思われる
    • EE4Jが純粋な開発者が欲しいものを追求した時に問題になりそう
  • そもそも、Jakarta EEが複数のベンダーでやっていけるのか
    • PayaraのようなJakarta EEがほぼ全てのベンダーと、Oracle富士通のようなそれ以外もあるベンダーの温度差
    • Springのように1ベンダーが主体になった方が速度は向上しそうだけど・・・
  • 個人的にはMicroprofileとEE4Jがいい感じに連携していくといいなーと思う