最近、ミドルウェアについて多くの人が話しているのを耳にしましたが、ミドルウェアの正確な定義は何ですか? ミドルウェアを調べると、多くの情報といくつかの定義が見つかりますが、これらの情報と定義を読んでいると、ほとんどすべての「ウェア」は何かの途中にあるようです。では、すべてのものはミドルウェアですか?
または、ミドルウェアではないウェアの例はありますか?
最近、ミドルウェアについて多くの人が話しているのを耳にしましたが、ミドルウェアの正確な定義は何ですか? ミドルウェアを調べると、多くの情報といくつかの定義が見つかりますが、これらの情報と定義を読んでいると、ほとんどすべての「ウェア」は何かの途中にあるようです。では、すべてのものはミドルウェアですか?
または、ミドルウェアではないウェアの例はありますか?
あなたの会社が 4 つの異なる製品を製造していて、クライアントが別の 3 つの異なる会社から別の 3 つの異なる製品を持っているとします。
ある日、クライアントは、すべてのシステムを 1 つの巨大なシステムに統合してみませんか、と考えました。10 分後、彼らの IT 部門は、それには 2 年かかると言った。
あなた (賢明な開発者) は、すべての異なるシステムを統合して、それらを連携させてみませんか?と言いました。クライアント マネージャーがあなたを見つめています... 続けて、私たちはミドルウェアを使用します。すべての異なるシステムの入力/出力、それらが使用するリソースを調査し、適切なミドルウェア フレームワークを選択します。
非技術マネージャーへの説明
ミドルウェア フレームワークが中間にある場合、最初のシステムは X のものを生成し、システム Y と Z はそれらの出力を消費する、などです。
ミドルウェアは非常に漠然とした用語です。ある場合の「ミドルウェア」とは、別の場合ではありません。一般に、ミドルウェアとして分類されるものには、次の特性があると予想できます。
主に (通常は排他的に) ソフトウェア。通常、特別なハードウェアは必要ありません。
それがなければ、それに依存するアプリケーションはアプリケーションの一部としてそれを組み込む必要があり、多くの重複が発生します。
ほぼ確実に 2 つのアプリケーションを接続し、それらの間でデータを渡します。
これは、オペレーティング システムとほぼ同じ定義であることがわかります。したがって、たとえば、TCP/IP スタックまたはキャッシングはミドルウェアと見なすことができます。ただし、OS も同じ機能を提供できます。実際、ミドルウェアは、オペレーティング システムに依存する一連のアプリケーションに固有の、オペレーティング システムに対する特別な拡張機能のように考えることができます。ワンランク上のサービスを提供するだけです。
ミドルウェアの例:
ウィキペディアには非常に良い説明があります: http://en.wikipedia.org/wiki/Middleware
それでは始まります
ミドルウェアは、ソフトウェア コンポーネントまたはアプリケーションを接続するコンピューター ソフトウェアです。このソフトウェアは、1 台以上のマシンで実行されている複数のプロセスが対話できるようにする一連のサービスで構成されています。
ミドルウェアとは何かでいくつか例を挙げます。
私が知っている(少なくとも)3つの異なる定義があります
ビジネス コンピューティングでは、ミドルウェアはアプリケーションとサービス間のメッセージングおよび統合ソフトウェアです。
ゲームでは、ミドルウェアはサードパーティが提供するものであれば何でも構いません
(一部の) 組み込みソフトウェア システムでは、ミドルウェアは、アプリケーションが使用するサービスを提供します。サービスは、ハードウェア抽象化レイヤーによって提供される機能から構成されます。アプリケーション レイヤーとハードウェア抽象化レイヤーの間に位置します。
簡単に言えば、ミドルウェアは、異種システムを統合するためのサービスを提供するソフトウェア コンポーネントです。
複雑な企業環境では、2 つ以上の企業システムを統合して相互に通信する必要がある場合、多くの課題があります。通常、これらのシステムは、異なる言語 (C++、Java、Cobol など) を使用して異なるプラットフォームで開発されているため、互いの言語を理解することはできません。
ここに、次のようなサービスを提供するミドルウェア ソフトウェアが登場します。
ミドルウェアの典型的な例は、IBM Message Broker (WMB/IIB)、WESB、Datapower XI50、Oracle Fusion、Mule などのESB製品です。
したがって、ミドルウェアはほとんどの場合、サービスを利用するアプリとサービス プロバイダーのアプリの間に位置し、これらのアプリが互いに通信できるようにします。
ミドルウェアは、アプリケーションが着信リクエストにどのように応答するかに関するものです。ミドルウェアは受信リクエストを調べ、このリクエストに基づいて決定を下します。ミドルウェアのみを使用してアプリケーション全体を構築できます。たとえば、ASP.NET は、次の主な HTTP ミドルウェア コンポーネントで構成される Web フレームワークです。
上の図に示すように、ASP.NET にはさまざまなミドルウェア コンポーネントがあり、着信要求を受け取り、それを C# クラス (この場合はコントローラー クラス) にリダイレクトします。
ミドルウェアは、しばしば複雑で既存の別々のプログラムを「接着」するソフトウェアの総称です。ミドルウェアと頻繁に接続されるソフトウェア コンポーネントには、エンタープライズ アプリケーションや Web サービスなどがあります。
ミドルウェアの例: CORBA、Remote Method Invocation (RMI)、...
上記の例はすべて、異なるプロセス間の通信を処理できるようにするソフトウェアの一部です (同じマシン上で実行されているか、インターネットなどを介して分散されています)。
Webwork に関する私自身の経験から、ミドルウェアはユーザー (Web ブラウザー) とバックエンド データベースの間のものでした。ユーザーが入力したもの (例: iPad の注文、注文を満たすのに十分な数の iPad があるかどうかを確認するなど、魔法のようなビジネス ロジックを実行する) を取得し、それらの変更を反映するようにバックエンド データベースを更新するのはソフトウェアでした。
これは、ネットワーク内の分散コンピューティング システムの両側にあるオペレーティング システムとアプリケーションの間のソフトウェア層です。実際、異種ネットワークとソフトウェア システムを接続します。