ミドルウェア
黒と青の背景画像
ミドルウェア

ミドルウェアは、アプリケーション、アプリケーション・コンポーネント、およびバックエンド・データソース間の接続を簡素化することで、分散型アプリケーションの開発を高速化します。

注目の製品

WebSphere Hybrid Edition

Red Hat OpenShift on IBM Cloud

WebSphere Application Server

MQ

IBM API Connect

Event Streams


ミドルウェアとは

ミドルウェアとは、分散型ネットワーク内の2つ以上のアプリケーションやアプリケーション・コンポーネント間で、1つ以上の種類の通信や接続を可能にするソフトウェアです。 ミドルウェアは、互いに接続するように設計されていないアプリケーションを簡単に接続し、それらをインテリジェントに接続する機能を提供することで、アプリケーション開発を効率化し、市場投入までの時間を短縮します。

ミドルウェアには多くの種類があります。  メッセージ・ブローカー やトランザクション処理モニターのように、1種類の通信に特化したものもあります。 また、 ウェブア・プリケーションサーバー やモバイル・デバイス用ミドルウェアなどは、特定の種類のアプリケーションを構築するために必要な、あらゆる種類の通信および接続機能を提供します。 また、クラウド型の Integration Platform as a Service (iPaaS) や エンタープライズ・サービス・バス(EBS)のように、企業内のすべてのコンポーネントを接続する集中的な統合ハブとして機能するものもあります。 (開発者が自分でカスタマイズしたミドルウェアを作ることができるミドルウェアさえあります。)

ミドルウェアの名前の由来は、最初のミドルウェアが、アプリケーションのフロントエンド、またはクライアントと、クライアントがデータを要求するバックエンドのリソース(データベース、メインフレーム・アプリケーション、または特殊なハードウェア・デバイスなど)との間の仲介役として機能するのが一般的だったからです。 

しかし、今日のミドルウェアはこのスコープをはるかに超えて動作しています。 例えば、ポータル・ミドルウェアには、アプリケーションのフロントエンドとバックエンドの接続用ツールが含まれ、データベース・ミドルウェアには、通常、独自のデータ・ストアが含まれます。 また、後述するように、コンテナ技術を活用して、開発者が複数のクラウドに分散したリソースへ接続することを可能にするミドルウェアも登場しています。


ミドルウェアの仕組み

ミドルウェアは、最も基本的なレベルでは、開発者がアプリケーション・コンポーネント(サービスまたはマイクロサービス)、データソース、コンピューティング・リソース、またはデバイスに接続する必要があるたびに、カスタム統合を作成することなく、アプリケーションを構築することを可能にします。

これは、一般的なメッセージング・フレームワークを使用して、異なる アプリケーションやサービスの通信を可能にするサービスを提供することで実現しています。例えば、JSON(JavaScript Object Notation)、 REST(Representational State Transfer)、XML(Extensible Markup Language)、SOAP(Simple Object Access Protocol)、またはWebサービスなどです。 一般的にミドルウェアは、Java、C++、PHP、およびPythonなどの複数の言語で書かれたコンポーネントを相互に連携させるためのサービスも提供しています。

ミドルウェアは、このような相互運用性を提供するだけでなく、開発者が以下のようなサービスを提供します。

  • 接続と統合を構成および制御 ミドルウェアは、クライアントやフロントエンド・アプリケーションのリクエストに含まれる情報に基づいて、バックエンド・アプリケーションやサービスからのレスポンスをカスタマイズすることができます。 小売店の電子商取引アプリケーションでは、ミドルウェアの アプリケーション・ロジックが、 バックエンドの在庫データベースからの商品検索結果を、HTTPリクエスト・ ヘッダー に含まれるIPアドレスや位置情報に基づいて、最寄りの店舗の位置でソートすることができます。
  • 安全な接続とデータ転送  ミドルウェアは通常、Transport Layer Security(TSL)や他のネットワーク・セキュリティー・プロトコルを使用して、フロントエンド・アプリケーションからバックエンド・データソースへの安全な接続を確立します。 また、認証 機能を提供し、フロントエンド・アプリケーションからの認証情報(ユーザー名とパスワード)やデジタル証明書の要求にチャレンジすることができます。 
  •  分散システム全体でトラフィックを動的に管理します。 アプリケーションのトラフィックが急増した場合、エンタープライズ・ミドルウェアは、クライアントのリクエストをオンプレミスやクラウドの複数のサーバーに分散させることができます。 また、同時処理機能により、複数のクライアントが同じバックエンド・データソースに同時にアクセスしようとする際の問題を防ぐことができます。

ミドルウェアの種類

ミドルウェアにはさまざまな種類があります。 あるものは特定のタイプの接続性に焦点を当て、あるものは特定のアプリケーション、アプリケーション・コンポーネント、およびデバイスに焦点を当て、あるものは特定の開発タスクのためにミドルウェアの機能を組み合わせます。 最もよく知られており、一般的に利用されるミドルウェアには、以下のようなものがあります。

  • メッセージ指向ミドルウェア(MOM) は、異なるメッセージング・プロトコルを使用するアプリケーション・コンポーネントが、メッセージを交換するための通信を可能にします。 アプリケーション間のメッセージの翻訳(または変換)に加えて、MOMはメッセージが常に適切なコンポーネントに適切な順序で届くようにルーティングを管理します。 MOMの例としては、 メッセージキュー や メッセージ・ブローカーなどがあります。
  • リモート・プロシージャー・コール(RPC)・ミドルウェア は、あるアプリケーションが別のアプリケーションのプロシージャーを起動させ、同じコンピュータ上、または別のコンピュータやネットワーク上で動作している別のアプリケーションが、あたかも同じコンピュータ上の同じアプリケーションの一部であるかのように動作することを可能にします。
  • データまたはデータベース・ミドルウェア は、バックエンドのデータベースへのアクセスや相互作用を容易にします。 一般的にデータベース・ミドルウェアは、何らかの形のSQLデータベース・サーバーです。
  • API(アプリケーション・プログラミング・インターフェース) ミドルウェア は、開発者が自分のアプリケーションの API を作成、公開、および管理し、他の開発者がAPIに接続できるようにするためのツールを提供しています。 一部のAPI ミドルウェア の中には、他の組織がAPIを有償で利用できるようにする 収益化ツール が含まれています。 APIミドルウェアの例としては、API管理プラットフォーム、APIゲートウェイ、およびAPI開発者ポータルなどがあります。
  • オブジェクト・リクエスト・ブローカー(ORB)・ミドルウェア は、あるアプリケーション・オブジェクトやコンポーネントからのリクエストと、 分散ネットワーク上の別のオブジェクトやコンポーネントによるリクエストのフルフィルメントを仲介する役割を果たします。 ORBは、Common Object Request Broker  Architecture(CORBA)で動作します。これにより、あるソフトウェア・コンポーネントは、他のソフトウェア・コンポーネントがどこでホストされているか、そのUIがどのようなものかを知らなくても、他のソフトウェア・コンポーネントにリクエストを出すことができます。その間「仲介」によりこの情報が処理されます。
  • トランザクション・ミドルウェア は、分散型ネットワーク上でのデータ・トランザクションの実行をサポートするサービスを提供します。 トランザクション・ミドルウェア としては、 トランザクション・プロセッシング・モニター (TPM)がよく知られています。TPMは、データ交換の実行、必要に応じたデータの追加/変更/削除など、トランザクションが次のステップに、そして最後まで進むようにします。
  • 非同期データ・ストリーミング・ミドルウェア は、データ・ストリームを中間ストアに複製することで、複数のアプリケーション間でのデータ共有を可能にします。 Apache Kafka はリアルタイム・データ・ストリーミングのためのミドルウェアとして最もよく知られた事例の1つです。
  • デバイス・ミドルウェアは、特定のモバイルOS向けのアプリケーションを開発するための 統合および接続機能のセットを提供しています。 
  • ポータル・ミドルウェア は、さまざまな関連アプリケーションのコンテンツや機能を「ガラス」または単一の画面上で統合し、単一の複合アプリケーションを作成するためのツールやリソースを提供します。
  • ロボット・ミドルウェア は、複数のメーカーや場所から提供されたロボットのハードウェア、ファームウェア、およびソフトウェアを統合するプロセスを簡素化します。

エンタープライズ・アプリケーション統合ミドルウェア


エンタープライズ・アプリケーション統合ミドルウェアは、企業がエンタープライズ統合ハブを確立することを可能にします。これは、社内のすべてのアプリケーション、アプリケーション・コンポーネント、ビジネス・プロセス、およびバックエンド・データ・ソースを接続する標準的な方法です。

10年ほど前までは、企業のアプリケーション統合ミドルウェアといえば、サービス指向アーキテクチャー(SOA) の統合ハブとなるエンタープライズ・サービス・バス(ESB) が主流でした。 今日では、 iPaaS(Integration Platform-as-a-Service)と呼ばれるクラウド・ホスティング・モデルにより、企業はオンプレミス、プライベートクラウド、およびパブリッククラウドの各環境で、アプリケーション、データ、プロセス、およびサービスを接続することができますが、統合ミドルウェア(およびその上で動作するハードウェア)を自社のデータセンターで購入、インストール、管理、および維持のための作業や費用は必要ありません。

プラットフォーム・ミドルウェア


プラットフォーム・ミドルウェア(またはアプリケーション・プラットフォーム・ミドルウェア)は、アプリケーションやビジネス・ロジックのために、 Javaランタイム環境(Java RE)、コンテナ、またはその両方などのランタイムホスティング環境を提供することで、アプリケーションの開発をさらにサポートし、アプリケーションの提供を加速することができます。 プラットフォーム・ミドルウェアには、エンタープライズ・アプリケーション ・サーバー、Webサーバー、コンテンツ管理システムなどが、上記のミドルウェアの他に含まれたり、組み合わされたりしています。


ミドルウェアとクラウド・ネイティブ・アプリケーション

クラウド・ネイティブとは、クラウド・コンピューティングの基本技術を活用したアプリケーション開発手法であり、オンプレミス、プライベートクラウド、パブリッククラウドのいずれの環境においても、一貫した開発、展開、および管理を提供することを目的としています。 

具体的には、現在のクラウド・ネイティブ・アプリケーションは、 マイクロサービスから構築されたアプリケーションを、 Kubernetesを使ってオーケストレーションされた コンテナ に展開したものです。 マイクロサービスは、独自のスタックを包含する疎結合のアプリケーション・コンポーネントであり、互いに独立して展開・更新することができ、REST API、メッセージ・ブローカー、イベント・ストリームを組み合わせて相互に通信することができます。 コンテナは、マイクロサービスなどのアプリケーション・コードと、そのコードを従来のITやクラウド・インフラストラクチャー上で実行するために必要な、OSライブラリや依存関係だけをパッケージ化した軽量な実行ファイルです。

これらの技術と関連技術を組み合わせることで、新しいハイブリッドクラウド・アプリケーションを提供したり、従来のレガシー・システムをクラウドで使用できるように モダナイゼーション したりするための、強力で、1度開発すればどこにでもデプロイできる、プラットフォームが生まれます。 しかし、それは同時に、さらに多くのソフトウェア・アプリケーション、データ・ソース、プログラミング言語、ツール、および分散システムを組み合わせた複雑な開発環境にもつながります。 

ミドルウェアはこの複雑さの一部を解決することができますが、コンテナ化されたアプリケーションを従来のミドルウェアで実行すると、それ自体の複雑さが加わるだけでなく、コンテナが排除するために設計されたようなインフラストラクチャーのオーバーヘッドが発生します。 そのため、 Cloud Foundry (IBM外部へのリンク)や Red Hat Open Shift など、人気の高いクラウド・アプリケーション開発プラットフォームは、コンテナ化されたミドルウェアを含むように進化しています。このミドルウェアは必要な接続機能だけをモジュール化してコンテナに収めることができます。


ミドルウェアとIBM Cloud®

ミドルウェアが重要な役割を果たすデジタル変革を組織が加速する中、自動化の必要性が拡大しています。 ビジネスとITの運用全体における、より優れた自動化への移行は、小規模で測定可能なほど成功したプロジェクトから開始する必要があります。その後、他のプロセスや組織の他の部分に合わせてスケーリングおよび最適化できます。

IBMと協業することで、事前構築されたワークフローを含む、 AIを活用した自動化機能を利用できるようになります。これにより、あらゆるプロセスをよりインテリジェントなものにすることで、イノベーションを加速させます。

次のステップに進んでください。

  • IBMは、数十年にわたってミドルウェア・ソリューション業界におけるリーダーとして認められており、以下のような製品を中心とした幅広いミドルウェア・ポートフォリオを有しています。
    • エンタープライズ・メッセージングのためのIBM® MQ 
    • 最も売れている、 IBM WebSphere® アプリケーション・プラットフォーム
    • 複数のクラウドにまたがる組織のAPIエコシステム全体を管理する、IBM API Connect® 
    • オープン・ソースのApache Kafkaテクノロジーを基盤としたイベント・ストリーミング・プラットフォーム、IBM Event Streams
  • コンテナ・ベースでAIを活用したソリューションである IBM Cloud Pak® for Automationの詳細はこちら。  Red Hat® OpenShift®上に構築されたこれらのソリューションは、1度開発すれば、あらゆるクラウド上のどこにでもデプロイでき、IBM Watson®のパワーを活用することができます。
  • このHFS調査レポートで、 自動化を成功させるための5つの「必須機能」 (IBMの外部へのリンク)についてお読みください。

 IBM Cloudアカウント で今すぐ始めましょう。


関連ソリューション

AIを活用した自動化

IBMは、お客様のビジネス・ワークフローからIT運用まで、AIを活用した自動化を提供いたします。 主要企業がどのように変革を進めているかをご覧ください。


WebSphere Application Server

エンタープライズ・アプリケーション向けの柔軟でセキュリティーが充実したJavaサーバー・ランタイム環境です。


IBM API Connect

複数のクラウドにまたがるAPIエコシステムを管理し、ソーシャル化と収益化の努力を後押しします。


Event Streams

Apache Kafkaを基盤としたイベント・ストリーミング・プラットフォームであるIBM Event Streamsは、イベントにリアルタイムで対応し、より魅力的な顧客体験を実現するのに役立ちます。


Red Hat OpenShift on IBM Cloud

Red Hat OpenShift on IBM Cloudは、パブリック環境やハイブリッド環境でOpenShiftを活用して、俊敏性、市場への即応性、拡張性、信頼性の向上を図ります。