BKBEARCH.RVW 20090228 "Beautiful Architecture", Diomidis Spinellis/Georgios Gousios, 2009, 978-0-596-51798-4, U$44.99/C$44.99 %E Diomidis Spinellis %E Georgios Gousios %C 103 Morris Street, Suite A, Sebastopol, CA 95472 %D 2009 %G 978-0-596-51798-4 0-596-51798-X %I O'Reilly & Associates, Inc. %O U$44.99/C$44.99 800-998-9938 707-829-0515 nuts@ora.com %O http://www.amazon.com/exec/obidos/ASIN/059651798X/robsladesinterne http://www.amazon.co.uk/exec/obidos/ASIN/059651798X/robsladesinte-21 %O http://www.amazon.ca/exec/obidos/ASIN/059651798X/robsladesin03-20 %O Audience s- Tech 2 Writing 1 (see revfaq.htm for explanation) %P 404 p. %T "Beautiful Architecture" It is difficult to define what architecture is. Many times architecture is defined in terms of what it is not. Architects do not build buildings: they derive the plans from which buildings are made. As design is not the structure, but the organization which drives the structure, so architecture is not design, but is a layer of abstraction above, and informing, design. As I read the foreword of this book, which presented a number of "universal principles" of architecture, the maxims sounded high and fine, and yet my reaction to each was, "Yes, but ..." The preface states that for this work, the editors followed a model used in a prior work about programming code: contacting people who had been involved in well-known or highly innovative projects, and asking them to write essays. Part one is about architecture, starting with chapter one, which asks "What Is Architecture?" Unfortunately, while the authors of the piece collect a number of definitions, they are less successful in getting those delineations to work together, beyond noting that architecture is a set of decisions that are used in the process of design, and that proper architecture has an important bearing on the final outcome. (It's a case of "I know good architecture when I see it.") Chapter two compares two systems and says one with a bad architecture is worse than one with a good architecture. Part two is about Enterprise application architecture. Chapter three examines scaling for growth in the context of online role-playing game systems. A system for image storage and retrieval for retail offerings of portraits is described in chapter four. The concept of the intranet is revisited in chapter five, noting how Web technology can be used for information systems within a company. This piece is more about the technology than architecture. Similarly, chapter six looks at the Facebook application system. Part three moves to system architecture. Some interesting ideas about virtualization architecture are implemented in the Xen system, which is the topic of chapter seven. Some aspects of fault tolerance are addressed in chapter eight's review of the Tandem Guardian system. Chapter nine describes JPC, a software emulation of the hardware of the x86 computer within Java. Virtualization and emulation are both involved in the Jikes RVM that, as chapter ten shows, has Java emulating itself. End-user application architectures are considered in part four. Emacs is an astoundingly extended text editor: it has been used as a development environment, among other things. However, chapter eleven shows that it is based on a fundamentally simple architecture, ensuring that it remains consistent as it grows. The K Desktop Environment (KDE) and a couple of extensions are examined in chapter twelve. Part five looks at languages and architecture. A comparison between functional and object-oriented programming is made in chapter thirteen. Chapter fourteen closes off with some more thoughts on object-oriented programming, and then some thoughts on beautiful buildings with problems. There are some interesting ideas presented in some of the essays in this book. It is, however, difficult to say how far it extends the field of software architecture. copyright Robert M. Slade, 2009 BKBEARCH.RVW 20090228