回答:
あなたの会社が4つの異なる製品を製造していて、クライアントが別の3つの異なる会社の別の3つの異なる製品を持っているとします。
いつかクライアントは、すべてのシステムを1つの巨大なシステムに統合しないのかと考えました。10分後、IT部門は2年かかると語った。
あなた(賢明な開発者)は、さまざまなシステムをすべて統合して、同種の環境でそれらを一緒に動作させてみませんか?クライアントマネージャーがあなたを見つめています...あなたは続けて、ミドルウェアを使用し、すべての異なるシステムの入力/出力、それらが使用するリソースを調べ、適切なミドルウェアフレームワークを選択します。
ミドルウェアフレームワークを途中に置いたまま、非技術系マネージャーに説明します。最初のシステムはXのものを生成し、システムYとZはそれらの出力を消費します。
ミドルウェアはひどく曖昧な用語です。ある場合の「ミドルウェア」は、別の場合にはありません。一般に、ミドルウェアとして分類されるものには、次の特性があると期待できます。
主に(通常は排他的に)ソフトウェア。通常、特別なハードウェアは必要ありません。
それは場合はありませんでしたが、それに依存するアプリケーションは、そのアプリケーションの一部としてそれを組み込むしなければならないとの重複の多くを経験するでしょう。
ほとんどの場合、2つのアプリケーションを接続し、それらの間でデータを受け渡します。
これはオペレーティングシステムとほとんど同じ定義であることに気づくでしょう。したがって、たとえば、TCP / IPスタックまたはキャッシングはミドルウェアと見なすことができます。ただし、OSも同じ機能を提供できます。実際、ミドルウェアは、オペレーティングシステムに依存する一連のアプリケーションに固有の、オペレーティングシステムの特別な拡張機能と考えることができます。より高レベルのサービスを提供するだけです。
ミドルウェアの例:
ウィキペディアにはかなり良い説明があります:http : //en.wikipedia.org/wiki/Middleware
それでは始まります
ミドルウェアは、ソフトウェアコンポーネントまたはアプリケーションを接続するコンピューターソフトウェアです。ソフトウェアは、1つ以上のマシンで実行されている複数のプロセスが相互作用できるようにする一連のサービスで構成されています。
ミドルウェアとはいくつかの例を示します。
簡単に言えば、ミドルウェアは、異種システムを統合するサービスを提供するソフトウェアコンポーネントです。
複雑なエンタープライズ環境では、2つ以上のエンタープライズシステムを統合して互いに通信する必要がある場合、いくつかの課題があります。通常、これらのシステムは、異なる言語(C ++、Java、Cobolなど)を使用して異なるプラットフォームで開発されているため、お互いの言語を理解しません。
そこで、次のようなサービスを提供するミドルウェアソフトウェアが登場します。
ミドルウェアの典型的な例は、IBMメッセージブローカー(WMB / IIB)、WESB、Datapower XI50、Oracle Fusion、MuleなどのESB製品です。
したがって、ミドルウェアは、主にサービスを消費するアプリとサービスプロバイダーのアプリの間に位置し、これらのアプリが互いに対話するのを助けます。
ミドルウェアとは、アプリケーションが着信要求に応答する方法です。ミドルウェアは着信要求を調べ、この要求に基づいて決定を行います。ミドルウェアのみを使用してアプリケーション全体を構築できます。たとえばASP.NETは、次の主要なHTTPミドルウェアコンポーネントで構成されるWebフレームワークです。
上の図に示すように、ASP.NETにはさまざまなミドルウェアコンポーネントがあり、これらは着信要求を受け取り、それをC#クラス(この場合はコントローラークラス)にリダイレクトします。
である(と私は、この文言を作ってるんだけど、収まるように思われる)は、Webアプリケーション開発における一般的な定義があります:HTTP要求および/または応答を変更するために設計されていますが、(通常は)応答を提供していないコンポーネントは、全体として、リクエスト処理中の動作変更のパイプラインを形成するために一緒にチェーンされるように設計されています。
ミドルウェアによって一般的に実装されるタスクの例:
ここで重要なのは、これらのどれもクライアントへの応答に完全に責任があるわけではないということです。代わりに、それぞれが何らかの方法でパイプラインの一部として動作を変更し、実際の応答はシーケンスの後半(パイプライン)からのものになるようにします。
通常、ミドルウェアは、ある種の「ルーター」の前に実行されます。ルーターは、リクエスト(通常はパス)を調べ、適切なコードを呼び出してレスポンスを生成します。
個人的には、「ミドルウェア」という用語はその総称として嫌いですが、一般的に使用されています。
Middleware
ネイティブに通信できないWebアプリケーションとWebサービスの間にあり、多くの場合、異なる言語/フレームワークで記述されています。
そのような例の1つはOWIN middleware for .NET
、owinの人々がと呼ばれるMicrosoftホスティングソフトウェアでWebアプリをホストすることを余儀なくされる前の環境ですIIS
。owinが開発された後、IISとセルフホストの両方でホストする機能が追加されました。IISでは、インターフェースとして機能するOwinのサポートが追加されました。またhost .NET web apps on Linux via Mono
、Owinのサポートを追加したも可能になります。
またSingle Page Applications
、OwinがHttp
要求/応答コンテキストを処理する作成機能を追加したため、authentication/authorization
Owinの上にOAuth2を介してロジックを追加できます。たとえば、ユーザー認証のロジックを含むクラスを登録するようにミドルウェアを構成できます(例:OAuth2実装の場合)またはhttp要求/応答メッセージを管理する方法のロジックを含むクラス。これにより、1つのアプリケーションを別のデータ形式(json、xmlなど、Webを対象としている場合)を介して他のアプリケーション/サービスと通信させることができます。
アプリケーションレベルのコード変更を気にすることなく、他のソフトウェアやシステムと統合して、高可用性、スケーラビリティに関してアプリケーションが実行し、アプリケーション機能を実行するためのソフトウェアまたはツールにすぎません。
例:アプリケーションを実行するオペレーティングシステムにはIPの変更が必要です。コードでそれを心配する必要はありません。これは、構成を簡単に更新できるミドルウェアスタックです。
例2:ランタイムメモリの割り当てで問題が発生し、アプリケーションの使用量が増加していると感じます。コードにバグやボトルネックがない限り、それについてあまり気にする必要はありません。アプリケーションが実行するもの。
例3:複数の異なるソフトウェアがあり、それらが互いに対話したり、すべてのシステムで理解できる共通の形式でデータを送信したりする必要がある場合は、ミドルウェアシステムが便利です。
提供された情報がお役に立てば幸いです。
私が間違っていない場合は、ソフトウェアアプリケーションフレームワークで、コンテキストに基づいて、ユーザーとアプリケーションの間で特定のアクティビティを実行するために組み合わせることができるmiddleware
次の役割を検討できrequest
ますresponse
。