マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】WildFly

【OSS情報アーカイブ】WildFly

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「WildFly」とは

「WildFly」基本情報

■概要

WildFly(ワイルドフライ)とは、Java標準準拠のオープンソースアプリケーションサーバです。「JBoss Application Server」から「WildFly」に改名されています。

■基本説明

WildFlyはオープンソースのアプリケーションサーバです。

WildFlyは「Java Enterprise Edition 8プラットフォーム仕様」に準拠し、「高速」「軽量」「高機能」「柔軟」などの特徴を持ち、高品質なアプリケーション構築の基盤となるマネージドアプリケーションランタイムです。

モジュラーサービスコンテナ上に構築された最先端のアーキテクチャにより、アプリケーションの必要に応じてサービスをオンデマンドで利用できます。

■主要開発元

WildFlyプロジェクトは、Red Hatオープンソースプロジェクトの1つとして、Java開発者コミュニティの支援を受けてRed Hatによって開発およびリリースされています。

プロジェクトリーダーはRed Hatによって任命され、ロードマップを設定する権限を持ちます。

Red Hat開発者やコミュニティ開発者などのWildFly開発に関わるメンバーは、ロードマップに従い開発を進めています。

→WildFly →Governance

■経緯

・1999年:初版リリース

JBossは以前、コミュニティ版「JBoss Application Server」とエンタープライズ版「JBoss Enterprise Application Platform」の構成でした。

名称混同を避けるために、コミュニティ版「JBoss Application Server」は「WildFly」に改名されました。

■オフィシャルサイト情報

オフィシャルサイト

→WildFly

ライセンス情報

WildFlyのライセンスは「GNU Lesser General Public License v2.1」です。

詳細について、こちらを参照ください。
→GitHub →wildfly/wildfly →LICENSE.txt

ダウンロード

→WildFly →Downloads

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Apache Tomcat」「Jetty」など。

「WildFly」の高性能Webサーバ「Undertow」

■概要

「Undertow」は、Wildflyのデフォルトサーバとして開発された高性能Webサーバです。

Undertowは、最新のWebアプリケーションの動作基盤として、「Webパフォーマンス」と「スケーラビリティ」を重視した設計になっており、高度な「接続性」「応答性」「拡張性」「柔軟性」を提供します。

NIOをベースにしたブロッキングと非ブロッキングの両方のAPIを提供します。

→undertow.io

■主な特徴

アーキテクチャ

Undertowは、コンポジションベースのアーキテクチャとなっており、小さな単一目的のハンドラを組み合わせることによってWebサーバを構築できます。

Undertowはハンドラを接続するフレキシブルな構成が可能であるため、必要な機能のみを追加して利用できます。

このアーキテクチャにより「完全なJava EEサーブレット4.0コンテナ」または「低レベルのノンブロッキングハンドラ」などについて自由に選択できます。

スケーラブル

Undertowは100万以上の接続に拡張する能力を持ちます。

HTTP/2のサポート

Undertowはデフォルトで「HTTP/2」をサポートします。

そのため、導入時にブートクラスパスを上書きする必要はありません。

HTTPアップグレードのサポート

Undertowは、HTTPポートを介して複数のプロトコルを多重化するための「HTTPアップグレード」をサポートしています。

Webソケットのサポート

Undertowは「JSR-356」を含むWebソケットを完全にサポートしています。

Servlet 4.0のサポート

Undertowは、埋め込みサーブレットのサポートを含む「Servlet 4.0」のサポートを提供します。

同じデプロイメント内にサーブレットとネイティブな非ブロッキングハンドラの両方を混在させることもできます。

アプリケーション埋め込みに対応

Undertowはアプリケーションに埋め込めるように設計されています。Undertowのライフサイクルは、対象となるアプリケーションによって完全に制御されます。

また、数行のコードでスタンドアロンで実行させることもできます。

「WildFly」の主な特徴

「WildFly」の主な特徴

■Java標準

WildFlyは最新のエンタープライズJava標準「Java EE 8」を実装しています。

開発生産性向上

ボイラープレートを排除し、技術的な負担を軽減する使いやすいフレームワークで豊富なエンタープライズ機能を提供することによって、開発者の生産性を向上させます。

開発チームは基本的な処理実装に時間をかける必要はなく、アプリケーションの中核的なビジネスロジックに集中できます。

安定性

Java EEを構成するフレームワークは詳細にテストされており、フレームワークのバグに悩まされる可能性は低いため、憂慮せずに開発できます。

Java標準による連携

Java標準に基づいてアプリケーションを構築すると、さまざまなベンダーのソリューション間で柔軟に移行できます。

既存のアプリケーションサーバからWildFlyに移行してJava標準に準拠することで、より安定してサービス連携を実施できます。

■アーキテクチャ「プラガブルサブシステム」

WildFlyのアーキテクチャは、必要に応じて機能を追加または削除できるプラガブルサブシステムに基づいています。

サブシステムの削除

サブシステム機能はサブシステムブロックに配置された設定によって制御されます。

単純な設定ブロックを削除するだけでサブシステムを削除できます。

たとえば、サーブレットのみをサポートしたい場合は「Undertow」サブシステム以外のすべてのサブシステムを削除できます。

サーバリソースオーバーヘッドの削減

このアーキテクチャにより必要のない機能を削除できるため、アプリケーションサーバ動作に必要な全体的なディスクフットプリントとメモリオーバーヘッドを削減できます。

■構成ファイル

サブシステムごとに設定

WildFlyの設定ファイルは、サブシステムごとに編成されており、一元化されたシンプルでユーザーフレンドリーな方法で設定できます。

設定ファイルのカスタマイズ

サブシステム設定ファイルは、デフォルトでインテリジェントな設定になっていますが、ニーズに最も合うようにカスタマイズできます。

設定方法

設定ファイルは、さまざまな方法で設定できます。

これらのオプションにより、ニーズに最も適したツールと言語を使用したカスタム自動化が可能になります。

・CLI
・Webベース管理コンソール
・ネイティブJava API
・HTTP/JSONベースのREST API
・JMXゲートウェイ など

■高速スタートアップ

WildFlyのブートプロセスは、不要な待機を排除するため高度に最適化されており、マルチコアプロセッサの能力を引き出すためのサービスが同時に開始されます。

優先度が低いサービスは起動指示があるまで動作しません。

このブートプロセス最適化の結果、WildFlyの起動時間は、以前のバージョンと比較して、10分の1に短縮されるケースもあります。

■2つの動作モード

WildFlyには2つの動作モードがあります。

①従来型シングルJVM「スタンドアロンモード」
②マルチJVMオプション「ドメインモード」

■ドメインモード

設定同期

ドメインモードでは任意の数のプロセスとホストで設定を同期できます。

ドメインコントローラ

すべてのシステムに中央制御ポイントであるドメインコントローラが追加されます。

個々のホストに直接ランタイムメトリックを問い合わせできます。特に大規模ドメインの場合は、ドメインコントローラがボトルネックになるのを防ぎます。

省リソース

WildFlyは、他のソリューションとは異なり、ドメインモードは最小限のリソースを消費し、実行中のアプリケーションに影響を与えないように設計されています。

「WildFly」の主な機能

「WildFly」の主な機能

■Web開発機能

WildFlyはWeb開発のための最新の標準をサポートしています。

Web Socket機能

Web Socketサポートにより、アプリケーションは「最適化されたカスタムプロトコル」と「全二重通信」をバックエンドインフラストラクチャとの間で使用できます。

この機能は、特に、モバイルデバイスと通信を行う場合に効果的に利用できます。

RESTベースデータアクセス機能

最新のWebアプリケーションでは、リッチな動的JavaScriptを使用したクライアント指向が進んでいるため、Webを介したデータアクセス機能は重要な要素となっています。

WildFlyは「JAX-RS 2」や「JSON-P」など、RESTベースのデータアクセスに関する最新規格をサポートしています。

非同期および非ブロッキングAPI機能

Webアプリケーションの接続性と応答性に対するニーズは高まっています。

WildFlyは従来の「ブロッキングI/Oアプリケーション」を最適化します。

また、アプリケーション内の重要なリソースのパフォーマンスを最大化することを可能とする「非同期および非ブロッキングAPI」も提供します。

■堅牢化機能

WildFlyには「フォールトトレランス機能」「クラスタリング機能」「セッションレプリケーション機能」「Webプロキシ機能」などの各種堅牢化機能が基本レベル機能として組み込まれています。

■メモリ管理機能

WildFlyはメモリ管理に対して積極的なアプローチを取っています。

ヒープ割り当てを最小限に

基本ランタイムサービスは、ヒープ割り当てを最小限に抑えるために開発されました。

これらのサービスは重複したフルパースで共通のキャッシュされたインデックス付きメタデータを使用するため、ヒープとオブジェクトの混乱が軽減されます。

モジュール式クラスローディング

モジュール式クラスローディングを使用すると、クラスの重複やシステム設定が必要としないロードを防げます。

ベースメモリのオーバーヘッドを減少できるだけではなく、ガベージコレクタの一時停止を最小限に抑えることにつながります。

小型デバイスでも実行可能

これらの最適化を組み合わせることで、WildFlyは標準のJVM設定であっても小型デバイスで実行できます。

また、アプリケーションデータのためのヘッドルームが増えることで、高いスケーラビリティがサポートされます。

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。