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
Extensibility
Extensibility is the ability to add or modify additional fuctionality without impacting existing functionality
Extensibility is enhanced by low coupling, interfaces and encapsulation. (Basically, modularity...)
Effects
1 tier:
Poor. Tight coupling.
2 tier:
Poor. Data manipulation and business logic are often mixed. The code is dependent on the DB schema.
n tier:
Good. Using layering and modularity, components can be modified independently.
J2EE:
J2EE supports extensibility because it has built-in support for modularity.E.g: JSPs can handle presentation, Servlets can handle routing, and EJBs can handle business logic.
Coupling
Coupling is the level of interdependency between an element and its environment (other elements)
An element with low coupling is not dependent on too many other elements, and can thus more easily be isolated than elements with high coupling.
Cohesion
Cohesion is a measure of uniformity of the responsibilities of an element.
An element with highly related responsibilities has high cohesion.
Modularity
Modulatiry is the property of a system that measures the extent to which it is composed out of separate parts called modules.
Modules should be encapsulated through a separation between its interface and its implementation.
A good module is characterized by low coupling and high cohesion.