Tiered architectures

advertisement
Tiered architectures
1 to N tiers
An architectural history of computing
• 1 tier architecture
– monolithic Information Systems
– Presentation / frontend , application tier (where all computations…
are performed, and data storage (databases) were merged into a
single tier
• 2 tier architecture
– separation of frontend from the databases and applications
– client/server architecture
• 3 tier architecture
– The further separation of the databases (data tier) from the
applications (application tier).
• N tier architecture
– The applications tier is divided into a number of individual modular
applications
2
The Tiers (layers)Frontend
• Frontend (presentation) tier:
– How the data should appear to the user and how the
user should interact with the interface
• Application logic tier:
– Data Processing e.g. Business Logic & calculations
– Can be referred to as: Business logic/rules.
• Data(resource) management tier:
– Deals with the different data sources of the
Information Systems; essentially it can be considered
as a Database Management System
3
1 – Tier Architectures
• Monolithic Systems
• Presentation, application logic, and resource management
were merged into a single tier
• Advantages:
– easy to optimise performance
– no compatibility issues between layers
– no client development, maintenance….
• Disadvantages:
4
– monolithic pieces of code and hard to modify
– Old system so lack of qualified programmers for these
systems
2 - Tier Architectures
• Separation of front end from other 2 layers
– Client/server systems with thin clients/fat clients
– Use RPC (Remote Procedure Calls) to communicate between tiers
• Advantages
– Portability
• Disadvantages
– Scalability is not great
– legacy system problems
5
3-tier architecture
3 - Tier Architectures
• Separating DBMS tier from application tier (middleware)
– There is an additional layer between client and server
• integration logic
• application logic
• Two alternatives approaches:
– Client tier leads to
• Fat clients
• Must be reimplemented on each type of client
• Each software update must be redistributed
– Data tier leads to
• Different applications have different needs for the same data
• Performance issues due to resource (data) usage; e.g. concurrency
7
3 - Tier Architectures
• Advantages
– Increased scalability by distributing the application layer across many
nodes
– Flexibility
• Disadvantages
– performance loss if distributed over the internet due to restricted
bandwidth
– problem when integrating of the 3 tiers
8
Middleware or Application tier
• Middleware refers to the software which is common to multiple
applications
• Middleware typically includes a set of components such as resources and
services that can be utilised by applications either individually or in various
subsets.
• E.g. Android provides a middleware layer including libraries that provide
services such as data storage, screen display, multimedia, and web browsing
• The distinction between operating system and middleware functionality is,
to some extent, arbitrary.
•
The middle ware Provides runtime environment for components in the middletier
– Component management
– Transaction, event and security services
– Provides connections to databases, mainframes and legacy systems
9
N-tier: multiple application layer
modules
n -tier

N-tier is a generalisation of the 3-tier architecture

Reflects the reality that most 3-tier systems are not selfcontained.

Most 3-tier systems connect into other systems in order to
complete the processing.
 Ryan air connects to paypal / mastercard/ hertz

N-tier system reflects this business logic
 E.g. A system such as a ryanair online-booking can have
many elements to its middleware.
11
General benefits of adding tiers:
middleware components
Increase in the number of tiers means:
• Increase flexibility, functionality and ways of distribution
However this is offset by:
• Increases communication costs
• Complexity rises leading to higher cost and risk
• Increases in duplication can lead to redundancy.
• The above issues can be lessened or overcome by using clustering with
higher spec machines; fragment the work to take advantage of the system
architecture (parallel (cluster) system). Remember that a cluster is a system
with many nodes (computers) that are integrated together in such a way as
to behave as a single system.
12
Ways to overcome issues associated
with N-tier systems
• Use faster machine
– Increases the ability to do more work in a unit of time by processing tasks more
rapidly.
– Applies to almost any nodes in the system (from edge servers to database
server).
– Need to analyse reasons for slow processing to correctly specify machine (i.e.
CPU, networking, disk access, memory)
• Cluster machines
– Splits up workload into manageable chunks to obtain more predictable
response times.
– However there is a need to identify and address any data synchronisation
issues between clustered machines and select appropriate load balancing
mechanisms.
13
Sample Question
• Distinguish between the different types of
tiered architecture, illustrating your answer
with examples where suitable.
Download