This introduction presents an overview of the key concepts discussed in the subsequent chapters of this book. The book examines lots of different ways in which software on one computer can talk to software on another computer across a network. It examines how clients can connect with servers. The book also introduces the different distributed computing paradigms. It also reviews different kinds of architectures, architectural styles/patterns, and properties that various researchers have used in the past to examine distributed applications and to determine the quality of a distributed application. The book also examines the various technologies in depth in relation to architectures, architectural styles/patterns, and general performance considerations. Middleware is the software that connects software components or enterprise applications. Middleware is the software layer that lies between the operating system and the applications on each side of a distributed computer network. Typically, it supports complex, distributed business software applications.