Distributed Systems Architecture: A Middleware Approach

The goal of this introduction is to present an overview of the content of this book. We will also use it as a vehicle for explaining our motivation behind writing the book and the objectives we set out to achieve. We identify the target group we want to reach with this book and then present a chapter-by-chapter breakdown of the topics discussed.
The pervasiveness of networking technology both locally (e.g., local area networks) and globally (e.g., the Internet) enables the proliferation of distributed applications. Since the parts of a distributed application execute in different physical locations, these applications offer a number of advantages: geographical constraints can be matched, applications become fault tolerant through replication, and performance can be improved by parallelizing a task to name just a few. Taking a closer look at the execution environment reveals its heterogeneity: different hardware platforms, network technologies, operating systems, and programming languages can make the development of distributed applications a big challenge.
Middleware What is needed for distributed systems, therefore, is an infrastructure that suitably supports the development and the execution of distributed applications. A middleware platform presents such an infrastructure because it provides a buffer between the applications and the network (see Figure 1.1). The network merely supplies a transport mechanism; access to it depends heavily on technological factors and differs between various physical platforms. Middleware homogenizes access to networks and offers generic services for applications. It also bridges technological domains and encapsulates the differences between...