ミドルウェアとは
ミドルウェアは、オペレーティングシステムをアプリケーション、データ、ユーザーに接続するソフトウェアレイヤーです。シングルサインオン (SSO) やアプリケーション・プログラミング・インタフェース (API) 管理などの一般的なサービスと機能を提供します。開発者はミドルウェアを利用して、アプリケーション・コンポーネント間の一貫性のある単純化された統合を実現できます。これによって開発者は、レガシーシステムを含むさまざまなエンドポイントや環境に接続するのに時間を費やすことなく、アプリケーションのコア機能を構築できるようになります。
「ミドルウェア」という言葉は、1960 年代後半以降、ソフトウェア・エンジニアリング用語として、また幅広い先進的なソフトウェア・コンポーネントに適用される 1 つのカテゴリとして使われてきました。ミドルウェアには、アプリケーション・ランタイム、エンタープライズ・アプリケーション統合、そしてさまざまな種類のクラウドサービスが含まれます。データ管理、アプリケーション・サービス、メッセージング、認証、API 管理は一般に、すべてミドルウェアで処理されます。
現在、ミドルウェアは、先進的なクラウドネイティブ・アーキテクチャの技術的基盤となっています。マルチクラウドおよびコンテナ化された環境を持つ組織の場合、ミドルウェアを使用すると、アプリケーションを大規模に開発および実行するためのコスト効率が高くなります。
ミドルウェアの種類
広いカテゴリとして、ミドルウェアには、Web サーバーから認証システム、メッセージングツールに至るまで、あらゆるものが含まれます。ここでは、最新の開発におけるミドルウェアの一般的なユースケースをいくつか紹介します。
新しいアプリケーションの開発
ミドルウェアは、さまざまなユースケースで最新の一般的なランタイムをサポートできます。開発者とアーキテクトは、基本的なランタイム、フレームワーク、プログラミング言語のセットに従って、プラットフォームを問わず俊敏に作業できます。ミドルウェアは、Web サーバー、シングルサインオン (SSO)、メッセージング、インメモリキャッシュなどの一般的に使用される機能も提供できます。
既存のアプリケーションの最適化
ミドルウェアは、開発者がレガシーのモノリシック・アプリケーションをクラウドネイティブ・アプリケーションに変換する際に、重要なツールを、そのパフォーマンスと可搬性を向上させながら活用し続けられるようにします。
包括的な統合
ミドルウェア統合ツールは、重要な内部システムと外部システムを接続します。変換、接続性、構成可能性、エンタープライズ・メッセージングなどの統合機能と SSO 認証を組み合わせることで、開発者はさまざまなアプリケーションにわたって機能を容易に拡張できるようになります。
アプリケーション・プログラミング・インタフェース (API)
多くのミドルウェアサービスは、アプリケーションの相互通信を可能にするツール、定義、プロトコルのセットである API を介してアクセスされます。API を使用すると、まったく異なる製品やサービスを共通のレイヤーを介して接続できるようになります。
データストリーミング
API はアプリケーション間でデータを共有する 1 つの方法ですが、非同期データストリーミングという別のアプローチもあります。これにより、中間ストアにデータセットが複製され、複数のアプリケーション間でデータを共有できます。リアルタイム・データストリーミングでよく知られているオープンソース・ミドルウェアツールの 1 つが、Apache Kafka です。
インテリジェントなビジネス自動化
ミドルウェアは、開発者、アーキテクト、IT、ビジネスリーダーが手動による意思決定を自動化するのに役立ちます。自動化により、リソース管理と全体的な効率が向上します。
Red Hat のリソース
クラウド・コンピューティングにとってミドルウェアが重要な理由
組織はクラウドネイティブ開発への移行を進めており、ソフトウェア開発者とシステムアーキテクトは、アプリケーション・プラットフォームの事前設計とアーキテクチャに注力する必要がありました。これには、アプリケーションを開発、展開、実行するためのフレームワークと機能を選択して設定することが必要ですが、すべてミドルウェアによって処理できます。これらの機能を導入することで、組織はクラウドからより多くのメリットを得ることができます。アプリケーションは、オンプレミスシステムからパブリッククラウドまで、複数のインフラストラクチャ上にデプロイでき、各場所で意図したとおりに機能します。
複雑性を管理し、アプリケーションをコスト効率よく迅速に開発し続ける手段として、組織はミドルウェア (その多くが現在クラウドサービスとして提供され、デプロイと管理が単純化されている) に関心を寄せています。ミドルウェアは、高度に分散されたプラットフォーム上でスムーズかつ一貫して動作するアプリケーション環境をサポートできます。また、ソフトウェア・サプライ・チェーンのセキュリティ、DevSecOps 戦略、および自動化もサポートできるため、チームはセキュリティリスクを管理しながら、新しく優れたアプリケーションをより迅速に構築できます。
アプリケーション開発においてミドルウェアが果たす役割
最新のビジネスアプリは、オンプレミスやクラウド全体で大規模に実行できるように設計されています。これらを構築するために、開発者には統一された基本機能を備えたアプリケーション環境が必要です。このような環境を構築する鍵となるのがミドルウェアです。
これらの機能は、次のように 4 つのレイヤーとツールとして考えることができます。
コンテナレイヤー
ミドルウェアのこのレイヤーは、アプリケーション・ライフサイクルのデリバリーの側面を統一的な方法で管理します。CI/CD、コンテナ管理、サービスメッシュ機能を備えた DevOps 機能を提供します。
ランタイムレイヤー
このレイヤーには、カスタムコードの実行環境が含まれています。ミドルウェアは、マイクロサービス、高速データアクセス用のインメモリキャッシュ、高速データ転送用のメッセージングなど、高度に分散されたクラウド環境向けに軽量のランタイムとフレームワークを提供できます。
統合レイヤー
統合ミドルウェアは、カスタムアプリや購入したアプリに接続するサービスを提供し、また、メッセージング、統合、API を通じて SaaS (Software-as-a-Service) アセットを提供することで、機能するシステムを形成します。さらに、インメモリデータベースおよびデータキャッシュサービス、データ/イベントストリーミング、API 管理も提供できます。
プロセス自動化および意思決定管理レイヤー
開発ミドルウェアのこの最後のレイヤーでは、重要なインテリジェンス、最適化と自動化、意思決定管理が追加されます。
ツール
これら 4 つのミドルウェアレイヤーに加えて、アプリケーション開発ツールがあります。これにより、チームはプリセットのテンプレートとコンテナを使用してアプリケーションを構築できるようになり、効率的なコード共有と共同開発が容易になります。ツールは、オンプレミスとクラウドで一貫性のあるアプリケーション開発およびデリバリー・エクスペリエンスをサポートします。
ミドルウェアと API
API は、ソフトウェアを統合するための一連の定義とプロトコルを確立し、1 つのアプリケーションが他の製品やサービスと通信できるようにします。API によって開発者が新しいアプリケーション・コンポーネントを既存のアーキテクチャに統合する方法が単純化されるので、チームのコラボレーションが容易になり、便利な新しい機能をソフトウェアにすばやく追加できます。
API とマイクロサービスの使用は、クラウドネイティブ・アプリケーション開発の基本部分です。API 接続を容易にするサービスは、一種のミドルウェアです。API 管理ツールを使用すると、開発者は API を共有、配信、制御、および収益化することができます。
サービスメッシュやデータストリーミングなどの他のアプリケーション・サービス・ツールと共に API 管理を使用すると、ハイブリッドクラウド環境全体でアプリケーションを大規模に実行できます。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。