Java テクノロジ
このユニットでは、さまざまな種類の Java フレームワーク、サーバー、およびプラットフォームを区別します。
Spring Framework
Spring Framework はアプリケーション フレームワークであり、制御の反転 (IoC) コンテナーです。 Spring は、歴史的に Enterprise JavaBeans (EJB) モデルを補完するために使用されてきました。 その主な機能は次のとおりです。
- 依存関係の挿入
- アスペクト指向プログラミング
- ビジネスの抽象化
Spring Boot
Spring Boot は Spring Framework 上で実行され、強固な自動構成を備えています。 Spring Boot アプリケーションはスタンドアロンで実行され、マイクロサービスに最適です。
Spring Data
Spring Data を使用すると、データベース (リレーショナルおよび非リレーショナル)、MapReduce フレームワーク、およびクラウドベースのデータ サービスに対するデータ アクセスが簡略化されます。
Spring Security
Spring Security は、Spring ベースのアプリケーションをセキュリティで保護するための "事実上" の標準です。 高レベルの認証とアクセスの制御が提供されます。 たとえば、Spring Security は Active Directory と密接に統合されます。
Spring Cloud
Spring Cloud は、分散システム用に使用されます。 Spring Cloud は、サービス検出、構成管理、監視、および優れた開発者エクスペリエンスを備えています。
Spring Batch
Spring Batch は、日常業務に不可欠な堅牢なバッチ アプリケーション用の軽量フレームワークです。
MicroProfile と Jakarta EE
MicroProfile と Jakarta Enterprise Edition (EE) は、Java EE 仕様のオープンソースのフォローアップと考えることができます。
MicroProfile は、マイクロサービス アーキテクチャの一連の仕様です。 それは自らを "マイクロサービス アーキテクチャ用に Enterprise Java を最適化するためのオープン フォーラム" と呼んでいます。 MicroProfile は、複数の実装にわたるイノベーションと、共通の関心分野での共同作業を目的としています。
Jakarta EE は、エンタープライズ アプリケーションを構築するための一連の仕様です。 そのモジュール化された構造により、開発者は効率的なソフトウェア ソリューションを作成できます。 Jakarta EE アプリケーションは、EAR ファイルまたは WAR ファイルとしてパッケージ化できます。
WebProfile は、Web フォーカスがあるバックエンド サービス向けの Jakarta EE のサブセットですが、心配はいりません。 エンタープライズ プラットフォームではその上に特定の API を追加することができます。
アプリケーション サーバー
Java EE アプリケーションは、Java EE 準拠のアプリケーション サーバー (WebLogic、WebSphere、WildFly、GlassFish、Payara など) にデプロイする必要があります。
Apache Tomcat は、HTTP サーバーと Java サーブレット コンテナーです。 サーブレット、Java Server Pages (JSP)、Java 式言語、および Java WebSocket の仕様が実装されています。
Oracle WebLogic Server は、エンタープライズ アプリケーションを開発、デプロイ、および実行するための統一された拡張可能なプラットフォームです。 WebLogic Server では、Java EE と Jakarta EE の堅牢で成熟した実装が提供されます。
Red Hat JBoss Enterprise Application Platform では、オンプレミスおよび仮想の両方の実装向けに、またプライベート、パブリック、またはハイブリッド クラウドで、エンタープライズ レベルのセキュリティとパフォーマンスが提供されます。
WildFly は、JBoss EAP のオープンソース アップストリームです。 このコミュニティ主導のサーバーは開発とテストに最適です。
IBM WebSphere Application Server (WAS) は、エンタープライズ アプリケーション向けの柔軟でセキュリティに優れた Java サーバー ランタイム環境です。 高い信頼性が重視されます。 マイクロサービスおよび標準ベースのプログラミング モデルがサポートされます。 ご自分のペースで最新化し、ワークロード全体の可視性を向上させることができます。また、エンタープライズ アプリケーションを分析し、Kubernetes への旅を進めることができます。
Open Liberty は、WAS のコミュニティ主導のオープンソース バージョンです。
Oracle GlassFish は、多数の Java EE Web 標準 (サーブレットや JSPなど) の参照実装です。
マイクロサービス指向アーキテクチャのその他のフレームワーク
Netty は、非ブロッキングの I/O (NIO) クライアントおよびサーバー フレームワークです。 これによって、プロトコル サーバーやクライアントなどのネットワーク アプリケーションをすばやく簡単に開発できます。 これにより、TCP や UDP ソケット サーバーなどのネットワーク プログラミングが大幅に簡素化され、合理化されます。 Netty は、メンテナンス可能な高パフォーマンスのプロトコル サーバーおよびクライアントを迅速に開発するための、非同期のイベントドリブン ネットワーク アプリケーション フレームワークです。
Quarkus は、OpenJDK HotSpot と GraalVM 向けに調整された Kubernetes ネイティブ Java スタックです。 Quarkus の勢いはますます高まっています。 なお、このようにパフォーマンス重視のフレームワークは他にも多数あります。たとえば、Vert.x、Helidon、Payara Micro、KumuluzEE などです。
Micronaut は、最新の JVM ベースのフルスタック フレームワークです。これは、モジュール型の、簡単にテスト可能なマイクロサービス、およびサーバーレス アプリケーションをビルドするためのものです。 リフレクションを使用しない依存関係の挿入とアスペクト指向のプログラミング ランタイムが Micronaut の特徴です。 これにより、Micronaut アプリケーションを GraalVM で実行しやすくなります。