This document discusses middleware and application integration. It begins with the author's background and defines middleware as software that connects applications. The main challenges driving integration are growing use of packaged applications, legacy systems, open B2B collaboration, and changing business processes. Middleware addresses these challenges by preserving existing systems and allowing best of breed applications to integrate. The document then categorizes middleware into data access, messaging, object transactional, and integration broker types. It explains each type and how they provide integration. The document concludes with guidance on evaluating middleware based on integration requirements and criteria like performance, scalability, and vendor viability.