Chapter 1 Architecture

You can’t build a system without some idea of what you want to build. And you can’t build it if you don’t know the environment in which it will work.

GUI programs are different to batch processing programs; games programs are different to business programs; and distributed programs are different to standalone programs.

They each have their approaches, their common patterns, the problems that typically arise and the solutions that are often used.

This chapter covers the high level architectural aspects of distributed systems. There are many ways of looking at such systems, and many of these are dealt with.