Middleware is the work that goes on between the front end (browsing device) and the back end (a data store).
Consider a banking application that must verify stringently who you are and check your account balance and credit rating. Your account balance and credit rating are probably stored on two separate systems. Should you attempt to minimize the consequences if one of these systems is temporarily unavailable? How great an impact on your software are you willing to accept when these external systems change? Where should the flexibility be built in?
Middleware may be important to you if your application:
- Applies more than trivial business logic to data before displaying it in the front end
- Makes use of data which you do not control
- Interacts with other, self-contained systems
- Is expected to evolve over time
- Requires more than trivial security