Jump to section

ミドルウェアとは

URL をコピー

ミドルウェアとは、アプリケーションに共通のサービスや機能を提供し、開発者や事業者がより効率的にアプリケーションを構築および展開できるようにするための、ソフトウェアやクラウドサービスのことです。ミドルウェアはアプリケーション、データ、ユーザーをつなぐ手段として機能します。

「ミドルウェア」という言葉は、1960 年代後半以降、ソフトウェア・エンジニアリング用語として、また幅広い先進的なソフトウェア・コンポーネントに適用される 1 つのカテゴリとして使われてきました。ミドルウェアには、アプリケーション・ランタイム、エンタープライズ・アプリケーション統合、そしてさまざまな種類のクラウドサービスが含まれます。データ管理、アプリケーションサービス、メッセージング、認証、アプリケーション・プログラミング・インタフェース (API) 管理 は一般に、すべてミドルウェアで処理されます。

現在、ミドルウェアは、先進的なクラウドネイティブ・アーキテクチャの技術的基盤となっています。マルチクラウド環境やコンテナ化環境を持つ組織では、ミドルウェアによってアプリケーションの開発と運用のコスト効率が広範にわたって向上します。

ミドルウェアで実現できることについての概要はこちら

広義の分類では、Web サーバーから認証システム、メッセージングツールなど、あらゆるものがミドルウェアに該当します。ここで、先進的な開発におけるミドルウェアの一般的なユースケースの一部を紹介します。

Middleware New Application Development diagram

新規アプリケーションの開発

ミドルウェアはさまざまなユースケースで先進的および一般的なランタイムをサポートできます。開発者とアーキテクトは、基礎となるランタイム、フレームワーク、プログラミング言語のセットに従い、プラットフォームを越えて俊敏に作業できます。ミドルウェアでは、Web サーバー、シングルサインオン (SSO)、メッセージング、インメモリキャッシュなど、よく使用される機能も提供されます。

Middleware optimization of existing applications diagram

既存アプリケーションの最適化

ミドルウェアは、レガシーのモノリシック・アプリケーションをクラウドネイティブ・アプリケーションに変換する開発者の作業を支援し、有益なツールのパフォーマンスと移植性を向上させながらアクティブな状態を維持します。

Middleware comprehensive integration diagram

包括的な統合

ミドルウェア統合ツールは内外の重要なシステムを接続します。変換、接続性、構成可能性、エンタープライズ・メッセージングなどの統合機能を SSO 認証と組み合わせて、開発者が各アプリケーションに機能を拡張しやすくします。

Middleware app programming interfaces diagram

アプリケーション・プログラミング・インタフェース (API)

多くの場合、ミドルウェアサービスへのアクセスは API を介して行います。API とは、アプリケーションが相互に通信できるようにする、ツール、定義、プロトコルのセットです。API によって、まったく異なる製品とサービスが共通レイヤーを通じて接続できるようになります。

Middleware data streaming diagram

データストリーミング

API はアプリケーション間でデータを共有する 1 つの手段ですが、非同期データストリーミングという別のアプローチがあります。このアプローチでは、データセットを中間ストアに複製し、ここでデータを複数のアプリケーション間で共有できます。よく知られたリアルタイム・データ・ストリーミング向けオープンソース・ミドルウェア・ツールの 1 つが、Apache Kafka です。

Middleware intelligent business automation diagram

インテリジェントなビジネス自動化

ミドルウェアは、手動による意思決定を自動化しようとする開発者、アーキテクト、IT リーダー、ビジネスリーダーを支援します。自動化することで、リソース管理や全体的な効率を向上できます。

組織はクラウドネイティブ開発への移行を進めており、ソフトウェア開発者とシステムアーキテクトは、アプリケーション・プラットフォームの事前設計とアーキテクチャに注力する必要がありました。これには、アプリケーションを開発、展開、実行するためのフレームワークと機能を選択して設定することが必要であり、すべてミドルウェアによって処理できます。これらの機能を導入することで、組織はクラウドからより多くのメリットを得ることができます。アプリケーションは、オンプレミスシステムからパブリッククラウドまで、複数のインフラストラクチャ上にデプロイでき、意図したとおりに機能します。

複雑性を管理し、アプリケーションをコスト効率よく迅速に開発し続ける手段として、組織はミドルウェア (その多くが現在クラウドサービスとして提供され、デプロイと管理が単純化されている) に関心を寄せています。ミドルウェアは、高度に分散されたプラットフォーム上でスムーズかつ一貫して動作するアプリケーション環境をサポートできます。また、ソフトウェア・サプライ・チェーンのセキュリティ、DevSecOps 戦略、および自動化もサポートできるため、チームはセキュリティリスクを管理しながら、新しく優れたアプリケーションをより迅速に構築できます。

先進的なビジネスアプリケーションは、大規模にオンプレミスやクラウド上で実行するように設計されています。このようなアプリケーションを構築するには、統一された基本機能を備えたアプリケーション環境が必要です。このような環境を構成するために、ミドルウェアは大切な役目を担います。

このような機能は 4 つのレイヤーおよびツールとして提供されます。

コンテナレイヤー

このミドルウェアのレイヤーは、アプリケーションのライフサイクルの提供について統一した方法で管理します。CI/CD による DevOps 機能、コンテナ管理、サービスメッシュ機能を提供します。

ランタイムレイヤー

このレイヤーには、カスタムコードの実行環境が含まれます。ミドルウェアは、マイクロサービス、高速データアクセス用のインメモリキャッシュ、高速データ転送用のメッセージングなど、高度に分散されたクラウド環境向けに軽量ランタイムとフレームワークを提供します。

統合レイヤー

統合ミドルウェアは、カスタムアプリケーションと市販のアプリケーションを接続するサービスと、メッセージング、統合、API を介して機能するシステムを形成する SaaS (Software-as-a-Service) アセットを提供します。インメモリデータベースおよびデータキャッシュサービス、データ/イベントストリーミング、API 管理も提供できます。

プロセス自動化および意思決定管理のレイヤー

最後に、この開発ミドルウェアレイヤーにより、重要なインテリジェンス、最適化と自動化、意思決定管理が追加されます。

ツール

ミドルウェアのこれらの 4 つのレイヤーに加えて、アプリケーション開発ツールがあります。これによりチームはプリセットされたテンプレートとコンテナを使用してアプリケーションを構築し、効率的なコード共有や共同開発を促進できます。ツールにより、アプリケーション開発と提供手順がオンプレミスでもクラウドでも矛盾なく一貫して行われるようになります。

API は、ソフトウェアを統合するための一連の定義とプロトコルを確立し、1 つのアプリケーションが他の製品やサービスと通信できるようにします。API によって開発者が新しいアプリケーション・コンポーネントを既存のアーキテクチャに統合する方法が単純化されるので、チームのコラボレーションが容易になり、便利な新しい機能をソフトウェアにすばやく追加できます。

API とマイクロサービスの使用は、クラウドネイティブ・アプリケーション開発の基本部分であり、API 接続を容易にするサービスが一種のミドルウェアです。API 管理ツールを使用すると、開発者は API を共有、配信、制御、および収益化することができます。

サービスメッシュやデータストリーミングなどの他のアプリケーション・サービス・ツールと共に API 管理を使用すると、ハイブリッドクラウド環境全体でアプリケーションを大規模に実行できます。

関連資料

記事

統合 (インテグレーション) とは

統合に関する詳細な情報をお探しですか?デジタル・トランスフォーメーションとは何か、どのように導入できるか、そして、オープンソースがどのような相乗効果をもたらすのかを説明します。

記事

Apache Kafka とは

Apache Kafka は分散データストリーミング・プラットフォームで、レコードのストリームをリアルタイムで公開、サブスクライブ、保存、処理できます。

記事

API とは

API はアプリケーション・プログラミング・インタフェースの略であり、アプリケーション・ソフトウェアを構築および統合するための一連の定義とプロトコルです。

統合 (インテグレーション) の詳細はこちら

製品

セキュリティを念頭に置き、ハイブリッドクラウド全体で大規模にアプリケーションを構築、デプロイ、運用できるように設計された包括的な統合 (インテグレーション) およびランタイムテクノロジー。 

ハイブリッドクラウドのエクスペリエンスを効率化するホスト型およびマネージド型のプラットフォーム、アプリケーション、データサービスが含まれます。これにより、クラウドネイティブ・アプリケーションの提供に伴う運用コストと複雑さを軽減できます。

クラウドネイティブ・アプリケーションの開発とメンテナンスに役立つ製品、ツール、コンポーネン​トを 1 つのセットとしてまとめたものです。Red Hat AMQ、Red Hat Data Grid、Red Hat JBoss® Enterprise Application Platform、Red Hat JBoss Web Server、 Red Hat の OpenJDK ビルド、Red Hat の Quarkus ビルド、クラウドネイティブ・ランタイム一式、Migration Toolkit for Applications、シングルサインオンおよびランチャーサービスが含まれます。

ハイブリッド・インフラストラクチャ全体でアプリケーションとデータを接続するための統合お​よびメッセージング・テクノロジーの包括的なツール。Red Hat 3scale API Management、Red Hat AMQ、Red Hat Runtimes、変更データキャプチャ、およびサービスレジストリが含まれます。

リソース

e ブック

クラウドネイティブとハイブリッドクラウドの融合:戦略ガイド

トレーニング

無料のトレーニングコース

Red Hat Agile Integration Technical Overview