ホーム
Topics
middleware
公開日:2024年7月31日
寄稿者:Stephanie Susnjara、Ian Smalley
ミドルウェアとは、アプリケーションやコンポーネントの間で通信や接続を可能にするソフトウェアです。分散ネットワーク内で異なるシステムを同士を繋げる「ソフトウェアの接着剤」のような役割を果たします。
ミドルウェアは、当初は接続するように設計されていなかったプラットフォーム間の接続を促進するインテリジェントな機能を通じて、アプリケーション開発を最適化し、市場投入までの時間を短縮します。
ミドルウェアには、次のような種類があります。
IBM WebSphere Automationがミドルウェア管理の自動化の成熟度を高めて、コストを削減することにどのように役立つかをご覧ください。
1960年代後半に初めて導入されたミドルウェアという用語は、アプリケーションのフロントエンド(クライアント)と、クライアントがデータを要求する可能性のあるバックエンドリソース(例えばデータベース、メインフレーム・アプリケーション、または特殊なハードウェア・デバイスなど)の仲介役として機能していた初期のバージョンに由来しています。1980年代には分散コンピューティングの発展に伴い、新しいアプリケーションを従来のレガシー・システムにリンクさせる方法としてミドルウェアの使用が増加しました。
しかし現代のミドルウェアは、この範囲をはるかに超えて機能しています。例えば、ポータル・ミドルウェアには、アプリケーションのフロントエンドとバックエンドの接続用ツールが含まれています。データベース・ミドルウェアには通常、独自のデータ・ストアが備わっています。
ミドルウェアは、現代のクラウドネイティブ・アプリケーション開発において重要な役割を果たすように進化してきました。コンテナ・テクノロジーを使用することで、DevOpsやその他のチームがマルチクラウド環境全体に分散されたリソースに接続できるようになります。これにより、継続的インテグレーション(CI)と継続的デリバリー(CD)(CI/CD)をサポートし、アプリケーションのコーディング、テスト、展開を最適化して、急速な拡張とビジネスの成長を実現できます。
システム間の通信やデータ管理ツールのためのクラウドベースのサービスとして、企業がミドルウェアを活用するケースが増えています。Technavio社の調査では、サービスとしてのミドルウェア(MWaaS)市場は、2023~2028年にかけ全世界において、年平均成長率17.73%で、454億4,000万米ドル拡大すると予測されています。この調査によると、この成長はクラウド・コンピューティングの広範な採用と、サーバーレス・コンピューティングおよびマイクロ・サービスの増加によるものであると述べられています。1
開発者は、ミドルウェアを使用することで、アプリケーション・コンポーネント(サービスまたはマイクロ・サービス)、データ・ソース、コンピューティング・リソース、またはデバイスに接続する必要があるときはいつでも、カスタム統合を構築することなくアプリケーションを開発できます。
ミドルウェアは、JavaScript Object Notion(JSON)、表現状態転送(REST)、拡張マークアップ言語(XML)、Simple Object Access Protocol(SOAP)、Webサービスなどの共通のメッセージング・フレームワークを介してさまざまなアプリケーションやサービスが通信できるようにするサービスを提供します。通常、ミドルウェアは、Java、C++、PHP、Pythonなどの複数の言語で記述されたコンポーネントが相互に通信できるようにするサービスも提供します。
標準的なミドルウェアのアーキテクチャー・コンポーネントには次が含まれます。
ミドルウェア・サービスは、作業を節約する相互運用性を提供するだけでなく、次の方法でソフトウェア開発者を支援します。
ミドルウェアは、クライアントまたはフロントエンドのアプリケーションのリクエスト情報に基づき、バックエンドのアプリケーションまたはサービス・レスポンスをカスタマイズできます。例えば、小売業者のeコマース・アプリケーションでは、ミドルウェア・アプリケーションのロジックにより、HTTPリクエスト・ヘッダーのIPアドレスまたは位置情報に基づいて、バックエンドの在庫データベースからの製品検索結果を最寄りの店舗の場所でソートできます。
ミドルウェアは通常、フロントエンドのアプリケーションからTransport Layer Security(TSL)または他のネットワーク・セキュリティ・プロトコルを使用するバックエンド・データソースへの安全な接続を確立します。認証機能を提供し、認証情報(ユーザー名とパスワード)またはデジタル証明書を求める難しいフロントエンド・アプリケーションの要求にも対応できます。
アプリケーションのトラフィックが急増した場合、エンタープライズ・ミドルウェアは、オンプレミスまたはクラウド内の複数のサーバーにクライアントのリクエストを分散するように拡張できます。同時処理機能により、複数のクライアントが同じバックエンド・データソースに同時にアクセスしようとした場合の問題を防ぐことができます。
ミドルウェアは、開発者がアプリケーションのモダナイゼーションを実施し、モノリシックなレガシー・アプリケーションをマイクロサービス・アーキテクチャーに基づくクラウド・アプリケーションに変革するのをサポートします。
開発者は、ミドルウェアの自動化を通じて、複雑なITタスクの管理を最適化および自動化し、効率を向上させることができます。
ミドルウェアは、チームがアプリを迅速に構築し、セキュリティ・リスクを軽減できるようにすることで、DevSecOps(開発・セキュリティ・運用の略語)をサポートします。
ミドルウェアには、さまざまな種類があります。特定の種類の接続に焦点を当てたものもあれば、特定のアプリケーション、アプリケーション・コンポーネント、デバイスに焦点を当てたものもあります。特定のソフトウェア開発タスクのためにミドルウェアの機能を組み合わせるものもあります。最もよく知られており、最も一般的に使用されているミドルウェア・ソフトウェアには、次のようなものがあります。
メッセージ指向ミドルウェア(MOM)を使用することで、さまざまなメッセージング・プロトコルを使用するアプリケーション・コンポーネントがメッセージを通信および交換できるようになります。MOMは、アプリケーション間でメッセージを翻訳または変換することに加えて、メッセージのルーティングを管理するため、メッセージは常に適切な順序で適切なコンポーネントに到達します。MOMには例えば、メッセージ・キューやメッセージ・ブローカーなどがあります。
リモート・プロシージャー・コール(RPC)ミドルウェアを使用することで、あるアプリケーションが、同じコンピューター上または別のコンピューターまたはネットワーク上で実行されている別のアプリケーションのプロシージャーを、あたかも両方が同じコンピューター上の同じアプリケーションの一部であるかのようにトリガーできるようになります。
データまたはデータベース・ミドルウェアは、バックエンドのデータベースへのアクセスとやり取りを簡素化します。通常、データベース・ミドルウェアは、何らかの形式のSQLデータベース・サーバーです。
アプリケーション・プログラミング・インターフェース(API)ミドルウェアは、開発者がアプリケーションのAPI を作成、公開、管理して、他の開発者がAPIに接続するためのツールを提供します。
一部のAPIミドルウェアには、APIを収益化するためのツールが含まれているため、さまざまな組織は有料でAPIを使用することができます。APIミドルウェアの例には、API管理プラットフォーム、APIゲートウェイ、API開発者ポータルなどがあります。
オブジェクト・リクエスト・ブローカー(ORB)ミドルウェアは、あるアプリケーション・オブジェクトまたはコンポーネントからのリクエストと、分散ネットワーク上の別のオブジェクトまたはコンポーネントによるそのリクエストの履行との間のブローカーとして機能します。
ORBは、共通オブジェクト・リクエスト・ブローカー・アーキテクチャー(CORBA)で動作します。CORBAを使用することで、あるソフトウェア・コンポーネントが他のソフトウェア・コンポーネントがホストされている場所やユーザーインターフェイス(UI)がどのようなものかを知らなくても、別のソフトウェア・コンポーネントにリクエストを送信できます。「ブローカリング」は、交換時にこの情報を処理します。
トランザクション・ミドルウェアは、分散ネットワーク全体でのデータ・トランザクションの実行をサポートするサービスを提供します。最もよく知られているトランザクション・ミドルウェアは、トランザクション処理モニター(TPM)です。TPMは、トランザクションをあるステップから次のステップへと進めて、データ交換の実行や、必要に応じてデータの追加、変更、削除などを行い、完了まで実行します。
非同期データ・ストリーム・ミドルウェアは、中間のストアでデータ・ストリームを複製し、複数のアプリケーション間でのデータ共有を可能にします。Apache Kafkaは、最もよく知られたリアルタイム・イベント・ストリーミング用のミドルウェア・オープンソース・プラットフォームの1つです。
デバイス・ミドルウェアは、特定のモバイル向けオペレーティング・システム(OS)用のアプリを開発するための統合および接続機能を提供します。
ポータル・ミドルウェアは、さまざまな関連アプリケーションのコンテンツと機能を1つの画面上に統合して、単一の複合アプリケーションを作成するためのツールとリソースを提供します。
ロボット・ミドルウェアは、複数のメーカーや拠点のロボット・ハードウェア、ファームウェア、ソフトウェアの統合を簡素化します。
ミドルウェアには、エンタープライズ・アプリケーション・ミドルウェアとプラットフォーム・ミドルウェアという2つの大きなカテゴリーがあります。
組織は、エンタープライズ・アプリケーション統合ミドルウェアを活用して、エンタープライズ統合ハブを確立できます。これにより、拡張されたエンタープライズ全体のすべてのアプリケーション、アプリケーション・コンポーネント、ビジネス・プロセス、およびバックエンド・データソースを接続するための方法を標準化できます。
約10年前まで、最も普及していたエンタープライズ・アプリケーション統合ミドルウェアは、サービス指向アーキテクチャー(SOA)内の統合ハブとして機能するエンタープライズ・サービス・バス(ESB)でした。
現在では、サービスとしての統合プラットフォーム(iPaaS)により、オンプレミス、プライベートクラウド、パブリッククラウド環境を組み合わせたハイブリッドクラウド全体でアプリケーション、データ、プロセス、サービスを接続できます。これにより、組織のデータセンター内で統合ミドルウェア(およびそれを実行するハードウェア)の購入、導入、管理、保守にかかる労力と費用を回避できます。主要なクラウド・サービス・プロバイダー(CSP)であるMicrosoft Azure、Google Cloud、Amazon Web Services(AWS)、IBM Cloudは、いずれもiPaaSソリューションを提供しています。
プラットフォーム・ミドルウェア(またはアプリケーション・プラットフォーム・ミドルウェア)は、アプリケーション開発をサポートします。アプリケーションまたはビジネス・ロジック用のランタイム・ホスティング環境(Javaランタイム環境(Java RE))、コンテナ、またはその両方)を提供することで、アプリケーションの配信を高速化します。プラットフォーム・ミドルウェアには、エンタープライズ・アプリケーション・サーバー、Webサーバー、コンテンツ管理システム(CMS)、および上記のその他のミドルウェアが含まれる場合や、これらを組み合わせる場合があります。
サービスとしての統合プラットフォーム(iPaaS)とサービスとしてのプラットフォーム(PaaS)はどちらも、異なる目的を果たすクラウドベースのコンピューティング・ソリューションです。iPaaSがアプリ、デバイス、システムの統合を可能にすることに焦点を当てているのに対して、PaaSはアプリケーションを構築、実行、管理するためのプラットフォームを提供します。
PaaSは、社内で開発プラットフォームを構築するよりもコスト効率に優れた方法でアプリケーションを開発できるため、IT予算が限られている中小企業やスタートアップ企業に人気があります。iPaaSは、複雑で動的なアーキテクチャーを運営する大規模な組織や企業にとってより良い選択肢です。
その一方で、iPaaSサービスは、PaaS やサービスとしてのソフトウェア(SaaS)などのクラウド・サービスと連動して使用されることがよくあります。たとえば、iPaaSをPaaS(Cloud FoundryやRed Hat OpenShiftなど)やSaaS(GitHub)開発ソリューションと組み合わせて使用される場合があります。
クラウドネイティブは、基本的なクラウド・コンピューティング・テクノロジーを使用して、ハイブリッドクラウド環境全体で一貫した開発、展開、管理を実現するためのアプリケーション開発のアプローチです。
今日のクラウドネイティブ・アプリケーションは、マイクロサービスから構築され、広く使用されているコンテナ・オーケストレーション・プラットフォームのKubernetesを使用するコンテナにデプロイされています。
マイクロサービスは、独自のスタックを包含する疎結合のアプリケーション・コンポーネントであり、相互に独立してデプロイおよび更新できます。これらは、REST API、メッセージ・ブローカー、イベント・ストリームの組み合わせを用いて通信します。
コンテナは、軽量で実行できるタスクです。マイクロサービスなどのアプリケーション・コードと、クラウドや従来のITインフラストラクチャー上でそのコードを実行するために必要なOSライブラリーと依存関係のみをパッケージ化します。
これらのテクノロジーと関連のテクノロジーを組み合わせることで、まったく新しいハイブリッドクラウド・アプリケーションを提供し、クラウドで使用できるように従来のレガシー・システムをモダナイズするための、一度開発すればどこにでも展開できる強力なプラットフォームを構築できます。ただし、さらに多くのソフトウェア・アプリケーション、データ・ソース、プログラミング言語、ツール、分散システムを組み合わせた複雑な開発環境にもつながります。
ミドルウェアは、この複雑さの一部を解決できます。ただし、コンテナ化されたアプリケーションを従来のミドルウェアで実行すると、コンテナが排除するように設計されていたインフラストラクチャーのオーバーヘッドなど、それ自体が複雑になる可能性があります。このため、クラウド・アプリケーション開発プラットフォームには、必要な接続機能だけをコンテナにパッケージ化できるように、コンテナ化またはモジュール化されたミドルウェアが含まれています。
ミドルウェアはゲーム・エンジンとして機能し、ゲーム開発を支援します。このソフトウェア・レイヤーは、ビデオ、オーディオ、その他の重要なコンポーネントをシームレスに統合するのに役立ちます。
金融機関にとって、ミドルウェアはアプリケーションと顧客データベースを統合し、リアルタイムでのトランザクション処理を含むデジタル・バンキング・サービスをサポートします。
医療データに安全にアクセスして共有することは、困難なことでした。ミドルウェアは、医療分野の相互運用性にとって非常に重要であり、遠隔医療プラットフォームや電子健康記録(EHR)などのさまざまな医療システムやアプリケーション間でシームレスなデータ・フローを可能にします。
eコマース企業は、ミドルウェアを使用して、オンライン・プラットフォームと注文処理などの重要なバックエンド・サービスを接続し、顧客体験を向上させています。
ミドルウェアは製造業において、エンタープライズ・リソース・プランニング(ERP)プラットフォームなどのビジネス・ソフトウェア・システムと他のアプリケーションを繋げ、オペレーション全体を一元的に見るのに役立ちます。これは、保守、サプライチェーン、品質保証などを最適化し、合理化するのに役立ちます。
ソーシャル化や収益化の取り組みの促進など、複数のクラウドにわたるAPIエコシステムを管理できます。
インテグレーション・プラットフォーム・ソフトウェアで接続・自動化して、ビジネスの可能性を解き放ちましょう。
IBMアプリケーション・デリバリー・ソリューションが新しいクラウドネイティブ・アプリケーションの構築と既存のアプリケーションのモダナイズにどのように役立つかをご覧ください。
統合機能を通じて、すべてのアプリとデータを接続しましょう。
メッセージ・ブローカーは、クラウドネイティブ、マイクロサービス・ベース、サーバーレス、およびハイブリッドクラウド・アーキテクチャーをサポートするアプリケーション間の通信テクノロジーです。
iPaaSは、オンプレミス環境とクラウド環境間の統合を標準化および簡素化するクラウドベースのソリューションです。
REST APIは、アプリケーションを統合するための柔軟で軽量な方法を提供し、マイクロサービス・アーキテクチャーでコンポーネントを接続するための最も一般的な方法となっています。
API管理は、企業およびマルチクラウド環境内において、アプリケーション・プログラミング・インターフェース(API)接続を構築、公開、管理するスケーラブルなプロセスです。
ビジネス・プロセスの効率アップを図る上で、機械学習(ML)と人工知能(AI)を意思決定の最適化(DO)に組み込むことが不可欠です。
ビジネスを成功に導くには、データをリアルタイムで活用することが不可欠です。