ミドルウェア
サーバ間及びコンピュータ・クラスターのノード間の通信に使用され、アプリケーション側からはその手順の複雑さや制御が見えないようにラッピングするための共通機能を提供する。 MPI/CORBA/RPCなど
システム内のサーバやネットワークの監視、バッチ処理のスケジューリング、資源配布等を統合して行える機能を提供する。 A-AUTO/JP1/HP OpenView/Tivoli/Systemwalkerなど
WebフレームワークがHttpリクエストを受け取り、個々の処理(MVCフレームワークであればController)に到達する前に共通処理を実現したい場合がある。これを実現する仕組みの内、以下の2点を備えるものをミドルウェアと呼ぶ。
・個々の処理に到達するまでと、個々の処理から返却する過程の両方で1対である
・ミドルウェア自身は層の概念であり、重ねることができる
似た概念としてフィルターと命名されることの多い概念があるが、フィルターの場合は個々の処理に到達するまでしか考慮されていないことが多い。
この呼称は少なくともDjango1.0の時点で存在しており、Laravel5.0、ASP.NET Core1.0でも採用された。
また、近年ではSlackのbolt-js内など、単に層状の中間処理機構の事をミドルウェアと命名しているケースも少なくない。
単なる、GoFデザインパターンにおけるDecoratorパターンあるいはProxyパターン状の構造もミドルウェアと呼ばれる場合があり、バズワード化が進んでいる。