Can you explain what is 2nd and 3rd tier Middleware? What's the relationship of ODBC?
Middleware is a "glue" layer of software between the network and the applications. This software provides services such as data transportation, service roaming, directory lookup, data access, transaction monitoring, and security. Middleware works much like the "postal system", it allows applications to communicate more easily and effectively. Not using middleware would be as if one would have to deliver the mail oneself!
Typically, middleware encompasses at least two tiers: Client/Server (Tier1/Tier2) or BusinessLogic/Backend integration (Tier2/Tier3). Ideally, the same type of middleware should be used across all tiers. This leads to a consistent end-to-end architecture, which is easier to maintain and to extend, compared to using different types of middleware between Tier1/Tier2, and Tier2/Tier3.
In this sense, a JDBC driver can be seen as a data-access middleware.