Zhaoqing power converter station for high-voltage direct-current transmission line, Guangdong province, China Siemens press picture, © Siemens AG
It is hard to meet complex distributed system requirements such as scalability and dependability if only the application, host operating system, and network perspectives are considered. The application should focus on 'business logic' rather than 'plumbing,' and the operating system and network should focus on endsystem resource management and communication protocol processing respectively. To address other key perspectives, this chapter describes twelve patterns pertaining to middleware, which is distribution infrastructure software that shields applications from many inherent and accidental complexities of operating systems and networks.
Several trends influence the way we conceive and construct distributed systems [ScSc01]:
Information technology is becoming commoditized: hardware and software are generally getting more powerful, cheaper, and better at a relatively predictable rate. The commoditization of hardware, such as CPUs and storage devices, and networking elements such as IP routers and WiFi devices, has been underway for decades. More recently, software is being commoditized due to the maturation of object-oriented languages such as Java, C#, and C++, and commercial-of-the-shelf operating ...