Web Application Architectures

Slides:



Advertisements
Similar presentations
Lecture 2 Web application architecture. Themes Architecture : The large scale structure of a system, especially a computer system Design choice: The need.
Advertisements

Multiple Tiers in Action
Web Applications Internet Engineering Spring 2014 Bahador Bakhshi
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
CRM WEB UI – ARCHITECTURE- DEFINITIONS For More details please go to
N-Tier Architecture.
Client/Server Architectures
Client/Server Technology Two-Tier Architecture Three-Tier Architecture Josh Antonelli Jenn Lang Joe Schisselbauer Chad Williams.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
MACIASZEK, L.A. (2001): Requirements Analysis and System Design. Developing Information Systems with UML, Addison Wesley Chapter 6 - Tutorial Guided Tutorial.
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
Kyung Hee University 1/41 Introduction Chapter 1.
Google App Engine Data Store ae-10-datastore
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
The basics of knowing the difference CLIENT VS. SERVER.
DAT602 Database Application Development Lecture 1 Course Structure & Background knowledge.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
Basics Components of Web Design & Development Basics, Components, Design and Development.
Imposing MVC design sample in.NET. Design patterns are very useful to solve complex design issues if used well. The primary concept of the Model View.
Introduction & Outline
Databases and DBMSs Todd S. Bacastow January 2005.
Web Technologies Computing Science Thompson Rivers University
INLS 623– Stored Procedures
Chapter 9: The Client/Server Database Environment
Structure of a web application
N-Tier Architecture.
Chapter 2 Database System Concepts and Architecture
Definition of Distributed System
Model View Controller
Server Concepts Dr. Charles W. Kann.
MVC and other n-tier Architectures
Web Software Model CS 4640 Programming Languages for Web Applications
Software Design and Architecture
The Client/Server Database Environment
CSC 480 Software Engineering
Web Applications Security What are web Applications?
AJAX.
CHAPTER 3 Architectures for Distributed Systems
Database Architectures and the Web
Introduction to J2EE Architecture
#01 Client/Server Computing
Design and Maintenance of Web Applications in J2EE
Advanced Operating Systems
Data, Databases, and DBMSs
Web Browser server client 3-Tier Architecture Apache web server PHP
Distributed System Using Java 2 Enterprise Edition (J2EE)
Modern web applications
Lecture 1: Multi-tier Architecture Overview
Model-View-Controller (MVC) Pattern
Web Application Architectures
Tiers vs. Layers.
Introduction & Outline
Chapter 6 – Architectural Design
Modern web applications
WPS - your story so far Seems incredible complicated, already
Back end Development CS Programming Languages for Web Applications
An Introduction to JavaScript
Introduction To Distributed Systems
DR. JOHN ABRAHAM PROFESSOR UTPA
Database System Architectures
Web Technologies Computing Science Thompson Rivers University
UFCEUS-20-2 Web Programming
Client-Server Model: Requesting a Web Page
Web Application Architectures
Graduation Project #1 University Internet Student Registration System
Back end Development CS Programming Languages for Web Applications
#01 Client/Server Computing
Presentation transcript:

Web Application Architectures Internet Engineering Bahador Bakhshi CE & IT Department, Amirkabir University of Technology

Outline MVC Design Pattern Multilayer Design Microservices Architecture

Outline MVC Design Pattern Multilayer Design Microservices Architecture

Web Application Development (Large) Applications cannot be developed in ad-hoc manner We need design & architecture (SW engineering) Concept separation, Component, Relations, … There are so many architectural patterns ETL, MFT, EAI, TDS, … http://en.wikipedia.org/wiki/Architectural_pattern Common architectures in web applications MVC, MVVM, … Multi-layer (Multi-tier), Microservices, …

MVC: Model-View-Controller Does all the computational work It contains data and performs computation on it View (the user interface) Show the results from model or controller Controller (of states sequences) Handles events/requests affecting model or view User inputs/requests go to the controller Available commands are determined by controller (based on model) Tells the model what to do Examples: Word Processor In calculator: Using the memory as an example help to understand the Model

MVC Interactions?!

MVC Interactions (cont’d) model controller updates model view queries model model signals changes view controller controller updates view event event is passed to the controller

MVC for Web Applications Model Database tables (persistent data) Session information (current stat data) Parts of processing View (X)HTML CSS Controller Client-side scripting Part of processing by server side scripting

MVC for Web Applications MVC works fine for desktop application The origin is from graphical application development 1970s Consider large & distributed web application, e.g., online transactions, e-banking, … View  Model interactions?!! View is in user’s browser Model is in back-end server User  Controller interaction? User don’t have direct access to controller Complicated processing on huge data Model cannot both hold data & process it

Outline MVC Design Pattern Multilayer Design Microservices Architecture

Layering Approach MVC Difficulties are due to triangular topology Linearize the topology  Layering approach Common layering in web applications Presentation Layer Business logic Layer Data (management/resource) Layer These layers are purely abstractions Not correspond to physical distribution All layers may or may not be on the same machine

Multilayer Architecture

Presentation Layer User interface of the application GUI HTML based browser Displays information (processing output) which are get from the business logic layer Gets user’s requests and pass them (with required data) to the business logic layer Note that the user interface of web applications can be made up client side & server side codes What is this layer in Gmail?

Business Logic Layer The work that the application needs to do Processing/Computing/Calculations Receives requests from presentation layer Fetches required data from data layer Process the request & data Output is sent back to the presentation layer What does this layer do in Gmail?

Data Layer Provides data access interface to business logic Hide data storage details Hide heterogeneity of underlining systems Communicating with data store systems Database server Messaging system … What is this layer in Gmail?

Old Multi-layer Web App Server-Side Rendering Presentation Layer Client Side (Browser) Server Side Presentation + Business Layer PHP Data Layer DB HTML + CSS + JS + …

Modern Multi-layer Web App Client-Side Rendering Presentation Layer Client Side (Browser) Server Side Presentation + Business Layer PHP Data Layer DB C V M Ajax, REST, … HTML + CSS + JS + …

Multi-layer Architecture Issues Scalability!!! Business logic is monolithic Tightly coupled modules How to scale it? Fault tolerance If a part of business logic is failed  ??? Upgrade How to upgrade a modules of business logic?

Outline MVC Design Pattern Multilayer Design Microservices Architecture

Micro-Service Idea Complex process can be divided into multiple loosely-coupled component Each component Is autonomous Provides well-defined services Via Remote API call Distributed application Easy to scale Different technologies can be used

Microservices Architecture

Microservices for Modern Web App Server Side Service-1 Presentation Layer Client Side (Browser) web Server DB Service C V M Service-n Service-2 Ajax, REST, … HTML + CSS + JS + …

References MVC Wiki page MVVM Wiki page Multi-Layer/Multi-Tier Wiki page Microservices Wiki page