Objective 2.1: Recognize the effect on each of the following characteristics of two tier, three tier and multi-tier architectures: scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security
Objective 2.2: Recognize the effect of each of the following characteristics on J2EE technology: scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security
Availability
Availability is the degree to which a service or a resource is accessible for the required number of client for the required proportion of time.
Reliability can attribute to availability, but a system can still be available even when reliability decreases.
This is done by building in fault tolerance mechanisms into the architecture.
Fault tolerance is achieved by redundancy, such as passive or active replication.
Availability it tightly coupled to performance and scalability.
Effects
1 tier:
 Poor. Single point of failure.
									2 tier:
 Poor. Single point of failure, usually the database.
									n tier:
 Good. Using an appropriate redundancy mechanism, there is no single point of failure. However, the trade-off here is costs.
									J2EE:
 EJB facilitates availability requirements through support for clustering (multiple
instances; location transparency via JNDI)
									
Fault tolerance
 
The ability to prevent failures even when one or more of the system components fail.
Cold backup
In this mechanism, the primary object synchronizes its state into a stable storage in certain intervals.
In case of a failover, a new instance is created, which loads its state from the storage location.
Warm backup
Passive replication.
In this mechanism, the primary object is accompanied by one or more secondary replicas.
The primary object handles all the requests, but synchronizes its state with the replica.
In case of a failover, the secondary replica becomes the primary objects and takes over.
Hot backup
Active replication.
Again, the primary object is accompanied by one or more secondary replicas.
However, in this case, all servers handle all the requests. The responses are handled by an interceptor.