Lecture 1: Multi-tier Architecture Overview

Slides:



Advertisements
Similar presentations
Objectives In this session, you will learn to:
Advertisements

Technical Architectures
BICS546 Client/Server Database Application Development.
15 Chapter 15 Web Database Development Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
Lecture 2 Web application architecture. Themes Architecture : The large scale structure of a system, especially a computer system Design choice: The need.
Introduction to Web Application Architectures Web Application Architectures 18 th March 2005 Bogdan L. Vrusias
Multiple Tiers in Action
Client/Server Architecture
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
N-Tier Architecture.
1 Web Database Processing. Web Database Applications Static Report Publishing a report is prepared from a database application and exported to HTML DB.
INTRODUCTION TO WEB DATABASE PROGRAMMING
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
1 Welcome to CSC 301 Web Programming Charles Frank.
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
Chapter 1 Revealed Distributed Objects Design Concepts CSLA.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Database application development 1. Chapter 8 © 2013 Pearson Education, Inc. Publishing as Prentice Hall OBJECTIVES  Define terms  Explain three components.
1 LM 6 Database Applications Dr. Lei Li. Learning Objectives Explain three components of a client-server system Describe differences between a 2-tiered.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Introduction The concept of a web framework originates from the basic idea that every web application obtains its foundations from a similar set of guidelines.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
The Holmes Platform and Applications
J2EE Platform Overview (Application Architecture)
CS122B: Projects in Databases and Web Applications Spring 2017
CS122B: Projects in Databases and Web Applications Winter 2017
Databases (CS507) CHAPTER 2.
Databases and DBMSs Todd S. Bacastow January 2005.
INLS 623– Stored Procedures
Chapter 9: The Client/Server Database Environment
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
The Client-Server Model
Netscape Application Server
N-Tier Architecture.
Chapter 2 Database System Concepts and Architecture
Database System Concepts and Architecture
The Client/Server Database Environment
MVC and other n-tier Architectures
Web Software Model CS 4640 Programming Languages for Web Applications
The Client/Server Database Environment
The Client/Server Database Environment
Introduction Web Environments
Chapter 9: The Client/Server Database Environment
Introduction to J2EE Architecture
PHP / MySQL Introduction
#01 Client/Server Computing
Design and Maintenance of Web Applications in J2EE
Data, Databases, and DBMSs
CS122B: Projects in Databases and Web Applications Winter 2018
Web Application Architectures
CS122B: Projects in Databases and Web Applications Spring 2018
Software models - Software Architecture Design Patterns
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Web Application Architectures
WPS - your story so far Seems incredible complicated, already
RESTful Web Services.
Back end Development CS Programming Languages for Web Applications
An Introduction to JavaScript
UFCEUS-20-2 Web Programming
Web Application Architectures
Back end Development CS Programming Languages for Web Applications
#01 Client/Server Computing
Presentation transcript:

Lecture 1: Multi-tier Architecture Overview IS333: MULTI-TIER APPLICATION DEVELOPMENT

Objectives To explain the concept of multi-tier design. 12/1/2018

What is a “Tier”? A "tier" can be referred to as a "layer". A wedding cake is said to have tiers while a chocolate cake is said to have layers, but they mean the same thing. 12/1/2018

Tiers/ Layers Characteristics - in Software World Each tier/layer should be able to be constructed separately, possibly by different teams of people with different skills. Several tiers/layers should be able to be joined together to make a whole "something". Each tier/layer should contribute something different to the whole. A chocolate layer cake, for example, has layers of chocolate cake and cream. 12/1/2018

Tiers/ Layers Characteristics - in Software World (cont.) There must also be some sort of boundary between one tier and another. Each tier/layer should not be able to operate independently without interaction with other tiers/layers. 12/1/2018

Basic Idea of Multi-tier Design The basic idea of a multi-tier design is that all of the logical functions of the application are (or at least have the potential to be) separated on provides output to other layers. 12/1/2018

The Standard Logical Layers Presentation logic: The user interface (UI) which displays data to the user and accepts input from the user. In a web application, this is the part which receives the HTTP request and returns the HTML response. Business logic: Handles data validation, business rules and task-specific behavior. Data Access logic: Communicates with the database by constructing SQL queries and executing them via the relevant API. 12/1/2018

Example of Business Logic 12/1/2018

Tiers vs. Layers in Software Tier is a physical unit, where the code / process runs. E.g.: client, application server, database server Layer is a logical unit, how to organize the code. E.g.: presentation (view), controller, models, repository, data access A three-layer solution could easily be deployed on a single tier, such as a personal workstation 12/1/2018

1-Tier Architecture All 3 layers are on the same machine All code and processing kept on a single machine Presentation, Logic, Data layers are tightly connected Scalability: Single processor means hard to increase volume of processing Portability: Moving to a new machine may mean rewriting everything Maintenance: Changing the layer requires changing other layers 12/1/2018

1-Tier Architecture 12/1/2018

1-Tier Architecture (blurry boundary) 12/1/2018

2-Tier Architecture Database runs on Server Separated from client Easy to switch to a different database Presentation and logic layers still tightly connected Heavy load on server Potential congestion on network Presentation still tied to business logic 12/1/2018

2-Tier Architecture 12/1/2018

3-Tier Architecture Each layer can potentially run on a different machine Presentation, logic, data layers disconnected Presentation Layer contains Presentation logic Business Layer Business logic Data Layer Data Access logic Database Client Server DB Server 12/1/2018

3-Tier Architecture 12/1/2018

The Rules of the Multi-tier Architecture The code for each layer must be contained with separate files which can be maintained separately. Each layer may only contain code which belongs in that layer. Thus business logic can only reside in the Business layer, presentation logic in the Presentation layer, and data access logic in the Data Access layer. 12/1/2018

Requests and Responses in the 3 Tier Architecture 12/1/2018

The Rules of the Multi-tier Architecture (Cont.) The Presentation layer can only receive requests from, and return responses to, an outside agent. This is usually a person, but may be another piece of software. The Presentation layer can only send requests to, and receive responses from, the Business layer. It cannot have direct access to either the database or the Data Access layer. 12/1/2018

The Rules of the Multi-tier Architecture (Cont.) The Business layer can only receive requests from, and return response to, the Presentation layer. The Business layer can only send requests to, and receive responses from, the Data Access layer. It cannot access the database directly. 12/1/2018

The Rules of the Multi-tier Architecture (Cont.) The Data Access layer can only receive requests from, and return responses to, the Business layer. It cannot issue requests to anything other than the DBMS which it supports. Each layer should be totally unaware of the inner workings of the other layers. 12/1/2018

The 3-Tier Architecture for Web Application Presentation Layer Static or dynamically generated content rendered by the browser, e.g., HTML, CSS, Javascript (front-end) Logic Layer A dynamic content processing and generation level application server, e.g., Java EE, ASP.NET, PHP, ColdFusion platform (middleware) Data Layer A database, comprising both data sets and the database management system or RDBMS software that manages and provides access to the data (back-end) 12/1/2018

Web services or external HTML pages N-Tier Architecture Elsewhere Layer Web services or external HTML pages Requester/ Consumer Layer Presentation Layer Business-Logic Layer Accessor Layer Persistance Layer Web browser/ XML parser or other client Validation/ Processing/ Content Providing modules Database Get Update/ Delete modules Display modules 12/1/2018

N-Tier Architecture (cont.) This architecture differs from standard (3-Tier) in three respects: It explicitly states that the persistence layer (the database and its database management system) and the accessor layer, which feeds SQL queries to the persistence layer, are separated. It explicitly lists the requester/consumer layer as part of the application, even though the software running there is usually not under the control of the developer building the rest of the application (in the case of a browser, it’s from the Mozilla team or Microsoft or whomever). It acknowledges that remote resources (the elsewhere layer) can be an integral part of a multi-tier application. 12/1/2018

N-Tier Architecture (cont.) Persistence Layer: The database or other storage mechanism that keeps data in an organized way. Accessor Layer: The programs that pass queries to the persistence layer (in other words, the programs in which structured query language (SQL) statements are hard- coded). These programs expose “get” and “set” functions. Business-Logic Layer: The programs that process user input and stored data and come up with a useful result. Presentation Layer: The programs that format the results of the logic layer as hypertext markup language (HTML), extensible markup language (XML), or whatever else the user requires. 12/1/2018

N-Tier Architecture (cont.) Requester/consumer Layer: The Web browser, XML parser, or other client that makes requests of the application and receives its output. Elsewhere Layer: The external Web services, HTML pages, and other resources to which applications make reference. 12/1/2018

Advantages of Multi-Tier Architecture Flexibility - By separating the business logic of an application from its presentation logic, a Multi-Tier architecture makes the application much more flexible to changes. Maintainability - Changes to the components in one layer should have no effect on any others layers. Also, if different layers require different skills (such as HTML/CSS in the presentation layer, PHP/Java in the business layer, SQL in the data access layer) then these can be managed by independent teams with skills in those specific areas. 12/1/2018

Advantages of Multi-Tier Architecture Reusability - Separating the application into multiple layers makes it easier to implement re-usable components. A single component in the business layer, for example, may be accessed by multiple components in the presentation layer, or even by several different presentation layers (such as desktop and the web) at the same time. Scalability - A Multi-Tier architecture allows distribution of application components across multiple servers thus making the system much more scalable. Reliability - A Multi-Tier architecture, if deployed on multiple servers, makes it easier to increase reliability of a system by implementing multiple levels of redundancy. 12/1/2018

References Multi-tier Application Programming with PHP, Practical Guide for Architect and Programmer, David Wall, 1st Edition http://www.tonymarston.net/php-mysql/3-tier- architecture.html 12/1/2018