富士通技術者による Jakarta EE / MicroProfile / Java SE に関する情報がここに 富士通Javaブログ

カフェでスマートフォンを見る笑顔の女性。

Javaはオブジェクト指向プログラミング言語の一つで、幅広いプラットフォームで動作する汎用性の高い言語として知られており、 特に、エンタープライズアプリケーション開発においては、その安定性と信頼性から長年広く利用されてきました。近年では、クラウドネイティブなアプリケーション開発において重要性が増し、世界中の開発者から支持を集めています。デジタルトランスフォーメーションの成功には、クラウドネイティブなアプリケーション開発が不可欠であり、Javaはそのクラウドネイティブ開発を強力に支援するツールとして世界中で利用されています。
本ブログでは、長年Javaの技術発展に取り組んできた富士通メンバーが、最新のJava技術や開発トレンドに関する情報を発信していきます。開発現場で直面する問題解決に役立つ情報や、Javaコミュニティの最新動向についても詳しく解説していきます。本ブログを通して、皆様のJava開発を強力にサポートし、デジタルトランスフォーメーションを成功へと導くお手伝いをさせていただきます。

開発現場から

富士通ではJavaの技術革新に向け日々さまざまな研究・開発を行っています。そんな開発の現場から最新の情報をお届けします。

OpenJDK

Javaメモリリークが原因の性能トラブルを分析する方法 ~ jcmdツールの使い方 ~

JVMの診断とトラブルシューティングにおいて強力なツールであるjcmdについて解説します。jcmdは、実行中のJavaプロセスに対して様々な診断コマンドを発行できるユーティリティですが、本稿ではヒープダンプやヒストグラムなどのメモリトラブル時の利用方法を紹介します。
男性が机に座り、2つのモニターに数種類のチャートやグラフのデータダッシュボードが表示されている

セキュリティマネージャー廃止への準備を始めましょう ~ 非推奨(Java SE 17)から廃止(Java SE 24)となるJava Security Manager ~

Java SEのSecurityManagerは、サンドボックス機能としてJava黎明期より提供されてきましたが、Java 17で非推奨となり、Java 24で利用できなくなりました。本稿では、SecurityManagerの役割、機能、そしてなぜ非推奨に至ったのかを解説します。また、SecurityManagerに代わる現代的なセキュリティアプローチについても触れ、進化するJavaエコシステムにおけるセキュリティ戦略の再考を促します。
青い南京錠のアイコンが描かれたシールドのデジタルアート。

JDKアップデートに伴うJavadocの機能変更 ~削除された機能と対処について解説~

Javadocは、OpenJDK 13で古い技術に基づく4機能を削除しました。これはHTML5やJPMSなど新技術への対応を進めるためです。本稿では、削除された機能の概要、それらを利用していた場合の影響、および具体的な対処法を解説します。JDK 8やJDK 11から新しいバージョンに移行する際の参考としてください。
抽象的なデジタルネットワーク図がデスクトップモニターに表示されている、モダンなオフィスワークスペースの画像。

Javaバージョンアップにともなう移行ポイント ~ OpenJDKにおける互換性と非互換の考え方 ~

OpenJDKでは6カ月ごとに新しいメジャーバージョンをリリースしており、Java技術のイノベーションスピードが速くなっています。本稿ではJavaバージョンアップにともないアプリケーションを移行する際にポイントとなる、Javaにおける互換性の定義、互換ポリシー、互換プロセスを解説します。アプリケーションを新しいバージョンのJavaに移行する際の参考としてください。
抽象的なデジタルネットワーク図がデスクトップモニターに表示されている、モダンなオフィスワークスペースの画像。

Javaの性能トラブルを防止 ~Javaのガーベジコレクション(GC)ログの見方を知る(G1 GC編)~

Javaアプリケーションの性能トラブルは、JVMのGC処理の長時間化や頻発が原因となることがあります。本稿では、GCによる性能問題を防止するため、G1 GCに焦点を当て、GCログから読み取れる処理時間やメモリ使用状況の分析方法と活用法を解説します。チューニングやプログラム修正の参考にしてください。
青、オレンジ、赤で照らされた正方形のグリッドにさまざまなデータと南京錠の記号。

Javaの性能トラブルを防止 ~Javaのガーベジコレクション(GC)ログの見方を知る(CMS GC編)~

Javaアプリケーションのメモリ解放はJVMのGCが自動で行いますが、GC中のアプリ停止は性能トラブルの要因となります。GCログは処理時間やメモリ状況を記録し、トラブル調査に有用です。本稿では、Enterprise Application PlatformのOpenJDK 11を例に、Concurrent Mark-Sweep GC(CMS GC)ログの読み方を説明します。CMS GCログからOld領域のGC処理が並行して行われることを確認し、CMS GCを用いたアプリケーションの安定稼働に役立てるための参考にしてください。
青、オレンジ、赤で照らされた正方形のグリッドにさまざまなデータと南京錠の記号。

Javaの性能トラブルを防止 ~Javaのガーベジコレクション(GC)ログの見方を知る(シリアルGC / パラレルGC編)~

OpenJDKでJavaアプリケーションを実行する際、JVMによるGCがメモリを自動管理しますが、GC処理中のアプリケーション停止は性能トラブルの原因となります。GCログは、処理時間やメモリ使用状況を記録し、トラブル調査に有用です。JDK 8とJDK 9でGCログの出力形式が変わり、JVM統合ロギングフレームワークに統合されました。本稿では、新しいGCログの採取・読み方・分析方法を、シリアルGCとパラレルGCを中心に解説します。GCの頻発や長時間GC、メモリーリークは、アプリケーションの停止やレスポンス悪化のトラブルにつながりますので、本稿を安定稼働の参考にしてください。
青、オレンジ、赤で照らされた正方形のグリッドにさまざまなデータと南京錠の記号。

Enterprise Application Platformでのトラブルシューティング技法(第2回):Javaの性能劣化原因を突き止める~コードキャッシュ領域不足の確認~

OpenJDKでは、動的コンパイラーがJava実行を高速化しますが、「コードキャッシュ」領域の不適切なチューニングは期待通りの高速化を妨げ、性能劣化を招きます。本稿では、このコードキャッシュ領域に起因するトラブルとその原因・対処法を解説します。大規模システムで長時間運用する際に発生しうる、コードキャッシュ領域不足による性能劣化問題について、適切なチューニングを実施し、アプリケーションの安定稼働に役立てるための参考にしてください。
モニターの前に座ってプログラミングをする女性。

Enterprise Application Platformでのトラブルシューティング技法(第1回):OpenJDK 11のJDKツールの概要を知る

Enterprise Application Platformでのトラブルシューティング技法として、Java用ツールの概要を解説します。Interstage Application ServerでJDK 8を利用されていた方がEnterprise Application Platformへ移行する際、使用ツールやその方法が変更される可能性があり、本稿ではこのツールの対応について説明します。
モニターの前に座ってプログラミングをする女性。

Jakarta EE

Eclipse Transformerのご紹介と、javaxパッケージ名前空間からjakartaパッケージ名前空間への変換例(Part 2)~Mavenプラグインを利用~

Jakarta EE 8以前では、javaxで始まる名前空間がパッケージ名やスキーマ名に使われていましたが Jakarta EE 9以降では名前空間がjavaxからjakartaに変更されました。本稿では、アプリケーション内で参照しているJakarta EE APIをjakartaパッケージ名前空間に変更する作業支援ツールをご紹介します。ここでは、JavaのビルドツールのひとつであるMavenのプラグインを利用した変換例をご紹介します。Mavenプラグインを利用することで、ソースコードは変えずに、生成物だけJakarta EE 10に対応させることができます。
青と紫の光の粒子が波のように流れる抽象的な背景。

Eclipse Transformerのご紹介と、javaxパッケージ名前空間からjakartaパッケージ名前空間への変換例(Part 1)

Jakarta EE 8以前では、javaxで始まる名前空間がパッケージ名やスキーマ名に使われていましたが Jakarta EE 9以降では名前空間がjavaxからjakartaに変更されました。本稿では、アプリケーション内で参照しているJakarta EE APIをjakartaパッケージ名前空間に変更する作業支援ツールをご紹介します。これらのツールを使うことで作業負荷の軽減が可能となります。ここでは、ツールの一つとしてJakarta EEと同じくEclipse Foundation内で開発されている、Eclipse Transformerを紹介します。
青と紫の光の粒子が波のように流れる抽象的な背景。

MicroProfile

MicroProfile OpenAPIを使用したセキュアAPIのドキュメント化

Jakarta RESTfull Web Servicesを使用したアプリケーションを、MicroProfile OpenAPIでドキュメント化する方法について解説します。Jakarta RESTful Web Servicesのアプリケーションのドキュメント化方法、特にセキュリティスキーマ、また、Swagger UIでの検証方法について紹介します。APIドキュメントをセキュアに公開する際には、本稿を参考にしてください。
コードが映る巨大スクリーンを見つめ熟考する技術者

MicroProfile Metricsを利用したコンテナ環境での水平オートスケール手法 ~ MicroProfileとKubernetes Horizontal Pod Autoscalerの連携 ~

MicroProfile Metricsを使用し、アプリケーション固有のメトリクスを定義・公開する方法について解説します。MicroProfile Metricsと連携し、アプリケーション固有のメトリクスに基づいて、水平オートスケールを実現する手法について解説します。Kubernetesにも、CPUやメモリー情報に応じてスケール手段は提供されていますが、現実には、スケールの判断材料としてそれだけでは不十分な場合があります。アプリケーション固有のメトリクス情報を利用することで、きめ細かなスケールが可能になります。
コードが映る巨大スクリーンを見つめ熟考する技術者

MicroProfile JWTによるスケーラブルでセキュアなマイクロサービス構築 -入門編(Part 2)-

MicroProfile Interoperable JWT RBACを使用し、Javaでセキュアなマイクロサービスを構築する方法について、本稿では、Jakarta RESTful Web Services アプリケーションにおいて、JWTの使用方法を紹介します。MicroProfile JWTを使うことで、既存のJavaアプリケーションに大きな変更を加えることなく、認可のシステムを組み込むことができるようになります。
キーボードを打つ手と、背景に表示されたプログラミングコード。

MicroProfile JWTによるスケーラブルでセキュアなマイクロサービス構築 -入門編(Part 1)-

MicroProfile JWTによるロールベースアクセス制御(RBAC)について解説します。Webアプリケーションの認証・認可システムはOAuth2を利用することが一般的になっています。しかし、モノリシックサービスでは問題なかったOAuth2の利用が、マイクロサービスアーキテクチャー(以下、MSA)ではスケーラビリティーを阻害する問題になることがあります。本稿では、MSAにおけるOAuth2利用時の問題を紹介した後、この問題を解決する方法を解説します。
キーボードを打つ手と、背景に表示されたプログラミングコード。

MicroProfile Config/HealthとKubernetes

MicroProfile Config/HealthがKubernetesと親和性が高い理由について解説します。デファクトスタンダードなコンテナ環境となったKubernetes上で、MicroProfile規約に準拠した実装を利用した場合に、どのようなメリットがあるかご紹介します。
サーバーが並ぶ通路に、光るデジタルな地球儀が浮かぶ。

MicroProfile OpenAPIによるAPI管理(Part2):MicroProfile OpenAPI annotationを利用しドキュメント化する

MicroProfile OpenAPIのannotationを使い、詳細なドキュメントを生成する方法を解説します。プログラム中にannotationを使う方法のため、コードとドキュメントの一致がとりやすく、メンテナンスに役立てることができるようになります。また、OpenAPIに関連するツールも豊富にあり、今回紹介したOpenAPI Generatorなどを使って、REST APIのテストコードをドキュメントと連携して簡単に作成することができるようになります。
コードが映る巨大スクリーンを見つめ熟考する技術者

MicroProfile OpenAPIによるAPI管理(Part1):既存のJavaコードをドキュメント化する

MicroProfile OpenAPIを使ったAPI管理方法を紹介します。マイクロサービスを始めたときに出てくる課題の一つに、サービスを追加・修正する度に必要となるAPI管理があります。MicroProfile OpenAPIで用意しているさまざまなannotationをJAX-RSのコードに付与することで、OpenAPIの仕様書を作成できますが、今回はこれらのannotationは一切使用せずに、素のJAX-RSコードだけで仕様書を作成します。すでに既存の動作しているJAX-RSプログラムがあり、それらのコードを修正することなく、API仕様書を作成します。
コードが映る巨大スクリーンを見つめ熟考する技術者

MicroProfileによるマイクロサービスの分散トレース(Part2):MicroProfile OpenTracingとJaegerによる可視化

MicroProfile OpenTracingとJaegerを利用し、分散トレースした情報を可視化する方法について、OpenTracing APIを使い、より細かなトレース情報を出力する方法を紹介します。
管制室で、複数モニターを使いシステム運用を行う女性

MicroProfileによるマイクロサービスの分散トレース(Part1):MicroProfile OpenTracingとJaegerによる可視化

MicroProfile OpenTracingとJaegerを利用し、分散トレースした情報を可視化する方法について解説します。OpenTracing APIは一切使わず、既存のJAX-RSのみのプログラムでもサービスの呼出し経路や、サービスの詳細情報を見ることができました。MSAではサービス間の呼出し関係が複雑になりがちですが、MicroProfile OpenTracingを使うことで、呼出し関係やボトルネックの可視化ができるようになります。
管制室で、複数モニターを使いシステム運用を行う女性

富士通の取り組み

ワーキンググループへの参加状況や、製品の提供情報等、富士通の取り組みについて説明します。

富士通のJakarta EE(Java EE後継技術)への取り組みについて

Jakarta EEとは何か?ワーキンググループに参加する当社の取り組みとは?など分かりやすく解説します。
ノートパソコンの前で、笑顔の女性と身振り手振りで話す男性。

Eclipse Adoptiumワーキンググループへの参加

富士通はAdoptiumのメンバーとして、OpenJDKの発展に貢献しています。この記事では、OSS利用におけるセキュリティリスクとAdoptiumのセキュリティへの取り組みについて説明します。
会議室でテーブルを囲み、笑顔で活発に議論するビジネスワーカーたち。

動画ラインナップ

タイトル 概要
クラウドネイティブアプリケーションを品質向上させるJavaプログラミングパラダイム~データ指向プログラミング(DOP)~ 最新Javaランタイムが提供する機能を例に用い、APIを通じて多種多様なサービスとつながるクラウドネイティブシステムを安全・堅牢にする手段の一つとして考えられている、データ指向プログラミングについてデモを交え、JCP Executive Committee委員から紹介
JakartaEEとMicroProfile 最新のJakarta EE 10のハイライト、現在議論されている次期Jakarta EE 11の展望、および、11月にリリース予定のマイクロサービス向けJava技術のMicroProfile 6についてJakarta EE WG仕様策定委員からご紹介
クラウドネイティブJava OSS最新情報 2022年9月にリリースされたJakarta EE 10を中心に、クラウドネイティブに向けて進化を続ける最新のJava動向を、Jakarta EE WG仕様策定委員から解説
Javaアプリケーションのクラウドリフト/シフトの進め方と富士通のソリューション 既存Javaアプリケーションのクラウド移行に向けた移行のポイントと富士通のソリューションをご紹介
はじめてのMicroProfileシリーズ 第1回 MicroProfile Metrics MicroProfile Metricsを使ったマイクロサービスの監視についてデモンストレーションを交えて解説
はじめてのMicroProfileシリーズ 第2回 MicroProfile OpenAPI MicroProfile OpenAPIの利点や実際に仕様書を作るまでの流れをデモンストレーションを交えて解説

関連する製品

Enterprise Application Platform

Enterprise Application Platform(エンタープライズ アプリケーション プラットフォーム)は、最新のJakarta EE、MicroProfileを実装したエンタープライズ用途で使用できるクラウドネイティブなアプリケーションサーバーです。
パソコンを見ながら会話する2人のビジネスパーソン

Interstage Application Server

Interstage Application Server(インターステージ アプリケーション サーバー)は、標準技術準拠による高いオープン性と基幹システムで培ってきた高信頼・高性能な技術で、業務アプリケーションの安定稼働を実現するソフトウェアです。
タブレットデバイスを操作するスーツ姿のビジネスマンの手元。

特集

PostgreSQL インサイド ~ PostgreSQLに関する富士通の情報がここに ~

PostgreSQLに関する富士通の情報がここに。OSSデータベースの企業利用をお考えのお客様必見です。

クラウド運用管理 ~クラウドにおけるシステム安定稼働のポイント!~

クラウド上のシステム運用にお悩みの方必見!クラウド運用の課題と解決策をチェックしましょう。