ログイン / 登録 アカウント

ミドルウェア

ミドルウェアとは

ミドルウェアとは、共通のサービスと機能をアプリケーションに提供するソフトウェアです。データ管理、アプリケーションサービス、メッセージング、認証、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 リーダー、ビジネスリーダーを支援します。自動化することで、リソース管理や全体的な効率を向上できます。

ミドルウェアの起源

ミドルウェアという言葉が初めて登場したのは、ドイツのガルミッシュ・パルテンキルヒェンで開催された 1968 NATO Software Engineering Conference の報告書です。ソフトウェア・エンジニアリングの分野を定義しようとしていたこの会議では、ソフトウェアの設計、制作、配布などについての議論が交わされました。

ミドルウェアがアプリケーション開発において果たす役割

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

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

コンテナレイヤー

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

ランタイムレイヤー

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

統合レイヤー

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

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

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

ツール

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

必要なミドルウェアツール

Red Hat Runtimes

クラウドネイティブ・アプリケーションの開発とメンテナンスに役立つ製品、ツール、コンポーネントを 1 つのセットとしてまとめて、アプリケーション開発と提供を迅速化します。

Red Hat Integration

ハイブリッド・インフラストラクチャ全体でアプリケーションとデータを接続するための統合およびメッセージング・テクノロジーの包括的なツールで、インテグレーション開発を効率化します。

Red Hat Process Automation Manager

ビジネス上の意思決定とプロセスをインテリジェントに自動化するためのソリューションで、変化するビジネスニーズにすばやく適応します。

ミドルウェアについてさらに詳しく知る