A layer = a part of your code, if your application is a cake, this is a slice.
A tier = a physical machine, a server.
A tier hosts one or more layers.
Example of layers:
- Presentation layer = usually all the code related to the User Interface
- Data Access layer = all the code related to your database access
Tier:
Your code is hosted on a server = Your code is hosted on a tier.
Your code is hosted on 2 servers = Your code is hosted on 2 tiers.
For example, one machine hosting the Web Site itself (the Presentation layer), another machine more secured hosting all the more security sensitive code (real business code - business layer, database access layer, etc.).
There are so many benefits to implement a layered architecture. This is tricky and properly implementing a layered application takes time. If you have some, have a look at this post of Microsoft:http://msdn.microsoft.com/en-gb/library/ee658109.aspx
N-layers of application may reside on the same physical computor(same tier) and the components in each layer communicates with the components of other layer by well defined interfaces. Layered architecture focuses on the grouping of related functionality within an application into distinct layers that are stacked vertically on top of each other. Communication between layers is explicit and loosely coupled. With strict layering, components in one layer can interact only with components in the same layer or with components from the layer directly below it.
The main benefits of the layered architectural style are:
Abstraction,Isolation, Manageability, Performance, Reusability, Testability.
Abstraction,Isolation, Manageability, Performance, Reusability, Testability.
N-tier architecture usually has atleast three separate logical parts, each located on separate physical server. Each tier is responsible for a specific functionality. Each tier is completely independent from all other tiers, except for those immediately above and below it. Communication between tiers is typically asynchronous in order to support better scalability.
The main benefits of tier achitecture styles are:
- Maintainability: Because each tier is independent of the other tiers, updates or changes can be carried out without affecting the application as a whole.
- Scalability: Because tiers are based on the deployment of layers, scaling out an application is reasonably straightforward.
- Flexibility: Because each tier can be managed or scaled independently, flexibility is increased.
- Availability: Applications can exploit the modular architecture of enabling systems using easily scalable components, which increases availability.
No comments:
Post a Comment