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.