This chapter makes some simple and very intuitive points in defining architecture. An architecture is basically composed on 4 parts: A problem domain which state the problem that the architecture is designed to solve, a philosophy which is the ideas behind the architecture being developed, a set of construction guidelines and predefined components that can be use to avoid designing from scratch
The author uses these 4 steps in developing architecture for fault tolerant systems. Fault tolerant systems as defined in the thesis are software systems that behave reasonably in case of errors. They have a hierarchical structure consisting of multiple levels. The complexity of tasks performed at each level increases with the levels. So the top level performs the most complex task. To achieve fault tolerance the author emphasizes strong encapsulation to prevent errors in one part of the system from affecting other parts. Error isolation is the key here and is the main characteristics of COPL . The processes running on the machine must be isolated so that an error in one process does not affect another process.
Another point That I found interesting is the notion of “fast fail” where a process stops in case of an error. The idea is that the process should either work properly or should signal the failure and stop. I think this is a good idea and can be implemented for some systems. However it is kind of counterintuitive to the notion of fault tolerance. It seems more logical that such systems should try to recover from failure especially given the fact that failures are part of most software systems.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment