The Adaptive Object-Model Architectural Style

This architectural style leads us to separate the business logic from the application logic, keeping relationships, attributes and behavior stored apart in an XML file or a database. It makes this style very flexible, allowing us to make changes to the business logic without recompiling (and therefore shutting down the system) the code base.

To implement these systems, we need to pay attention to patterns like TypeObject, Properties, Composite and Strategy. TypeObject, for instance, implements a common behavior to a type, allowing us to dynamically add new objects to the system.

This style of architectures seems to be very useful for systems that suffer continue changes and can never stop working.

Publicado en CS 527,English,Software Engineering | Sin comentarios

Guardian

Guardian was the Tandem’s OS, used in the 1970′s. It tried to be fault-tolerant, selling itself as a very reliable system. Indeed they accomplished some of their goals, but the cost was kind of absurd; duplication of hardware. In order to keep backups, Guardian created checkpoints of states of the system and has an asynchronous messaging system to communicate the processors and other parts of the hardware. As an aside note, security was not one of their strengths.

It didn’t last much, and became useless as soon as hardware got more reliable itself. Today there are fault-tolerant environments, but using a different approach. For instance, Google have tons of computers running in parallel. If one of them crashes, the data is still available among others.

Fault-tolerant software is something really hard to achieve. Having backups/checkpoints won’t help that much. You will still have some time in which the system will be unreachable. Also, if there is a buggy piece of code, it will fail over and over again.

In my opinion, we can not think of perfect software. If we do, then we are fooling ourself. The architectures we design are not perfect either. Of course there are fails. But the important thing is to be aware of that and be prepared to face the problems and fix them in a clean and beautiful way.

Publicado en CS 527,English,Software Engineering | Sin comentarios

Sitios de interés