Web Application Architectures

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Advertisements

© Copyright 2008 STI - INNSBRUCK Web Engineering Web Application Architectures Lecture V – 4 th November 2008 Federico M. Facca.
8.
Technical Architectures
02/12/00 E-Business Architecture
Distributed Systems Architectures
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
Chapter 9: Moving to Design
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Web application architecture
Enterprise Resource Planning
Chapter 9 Elements of Systems Design
The Design Discipline.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
An Introduction to Software Architecture
© Copyright 2008 STI - INNSBRUCK Web Engineering Web Application Design & Architectures Lecture 8 Dr. Mohammad Ahmad.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
9 Systems Analysis and Design in a Changing World, Fifth Edition.
Zoljargal.M  Introduction  Methods, approaches  Specifics of Web architecture  Typical components of architectures.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
Java Web 应用开发: J2EE 和 Tomcat 蔡 剑, Ph.D.. 本讲内容 网络系统设计模式 综合案例分析.
J2EE Platform Overview (Application Architecture)
Introduction to Oracle Forms Developer and Oracle Forms Services
Design Patterns-1 7 Hours.
CompSci 280 S Introduction to Software Development
Web Engineering CS-4513 Prepared By: Junaid Hassan Lecturer at UOS M.B.Din Campus
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
N-Tier Architecture.
Introduction to Oracle Forms Developer and Oracle Forms Services
Principles of Network Applications
Introduction to Oracle Forms Developer and Oracle Forms Services
Web Software Model CS 4640 Programming Languages for Web Applications
Software Design and Architecture
CSC 480 Software Engineering
Processes The most important processes used in Web-based systems and their internal organization.
EADD – Introduction Chapter -1.
Introduction to J2EE Architecture
#01 Client/Server Computing
Design and Maintenance of Web Applications in J2EE
Introduction to Databases Transparencies
Lecture 1: Multi-tier Architecture Overview
Patterns.
Software Architecture
Systems Analysis and Design in a Changing World, 6th Edition
Chapter 12: Physical Architecture Layer Design
Chapter 6 – Architectural Design
Architectures of distributed systems Fundamental Models
Software models - Software Architecture Design Patterns
Architectures of distributed systems Fundamental Models
An Introduction to Software Architecture
Chapter 17: Client/Server Computing
Chapter 5 Architectural Design.
Design Yaodong Bi.
Architectures of distributed systems Fundamental Models
Chapter 8, Design Patterns Introduction
Design.
#01 Client/Server Computing
Presentation transcript:

Web Application Architectures Web Engineering Web Application Architectures Lecture V – 4th November 2008 Federico M. Facca

Where are we? There are some changes! # Date Title Lecturer 1 7th Oct Web Engineering Introduction and Overview F. M. Facca 2 14h Oct Collection Requirements for Web Applications 3 21st Oct Web Application Modeling 4 28th Oct Developing Applications with WebML 5 4th Nov Web Application Architectures 6 11th Nov Testing and Usability on the Web 7 18th Nov Web Technologies I 8 25th Nov Mid Term Exam 9 2nd Dec Web Technologies II 10 9th Dec Web Technologies III 11 6th Jan Web Application Development Process 12 13th Jan Web 2.0 Mash-ups F. Daniel (UNITN) 13 20th Jan Project Management for Web Applications 14 27th Jan Final Exam There are some changes!

Overview Introduction Web Application Architectures Wrap-up

What is an architecture? INTRODUCTION

Software Architectures “Architecture is defined [...] as the fundamental organization ofa system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.”(IEEE Architecture Working Group, P1471, 1999) Architectures describe structure Components of software systems, their interfaces and relationships static as well as dynamic aspects blueprint of software system Architectures connect software development phases requirements mapped iteratively to components and their relationships

Software Architectures “Architecture is the set of design decisions [...] that keeps its implementers and maintainers from exercising needless creativity.”(Desmond F. D’Souza and Alan C. Wills, 1999) Architectures describe different viewpoints conceptual view: entities of application domain and their relationships process view: system runs, concurrency, synchronization implementation view: software artefacts (subsystems, components, source code) runtime view: components at runtime and their communication Architectures make systems comprehensible and controllable structuring according to different viewpoints enables communication between different stakeholders

Developing Architectures Influences on Architectures Functional Requirements Clients Users Other Stakeholders Architecture Non-Functional Requirements Performance Scalability Reusability Other?

Developing Architectures Influences on Architectures Technical Aspects Operating System Middleware Legacy Systems Other? Architecture Experience with Existing Architecture Patterns Project Management Other?

Developing Architectures Remember, requirements are always subject to change. Organizational & Environment changes Ambiguous requirements initially Thus, iterative approaches are the suggested means of development Pro: Helps to mitigate design risks Caution: Doesn’t guarantee a good architecture (ex., What about legacy systems?)

Patterns describe recurring design problems 3 types of patterns Patterns & Frameworks Patterns describe recurring design problems 3 types of patterns Architecture patterns (e.g. MVC) Design patterns (e.g. Publisher-Subscriber) Idioms (e.g. Counted-Pointer in C++) They are a guideline, implementation must be grounded to the specific problem Patterns need to be “integrated” among them! Structure Relationships and interactions Specific to peculiar implementations

Frameworks: another option to reuse existing architecture Patterns & Frameworks Frameworks: another option to reuse existing architecture something that provides you a frame to be filled! Reuse of existing software objects that just need to be properly configured Bound to a specific technology Require training High cost of switch Level of customization not always accetable

Web APPLICATION Architectures

Architecture Types Layering Aspect Data Aspect “Separation of concerns” How many concurrent users are you serving? Shared needs among multiple applications? (e.g., security) Data Aspect What kind(s) of data are you delivering? Structured vs. non-structured On-demand vs. real-time What are the bandwidth requirements? Size & nature of data Again, audience concerns

Web Platform Architecture (WPA) Architecture Types Web Platform Architecture (WPA) Platform = Infrastructure Hardware Software modules & configurations Choice of software platform (e.g., J2EE, .NET) Web Application Architecture (WAA) Conceptual view of how key business processes and needs are separated & implemented Often domain-specific Greater complexity requires greater modularity From architectures to web application architectures: MOM P2P

Web Application Presentation Security Search Example of a WAA Web Application Presentation Business Logic Data Management Personalization Security Search

Generic Web (Platform) Architecture The Web “platform” is based on TCP/IP HTTP HTML It’s essentially a Client/Server architecture! In term of patterns one of the simplest one But still thing can get complex… Components on the network (firewall, proxy, load balancer) Components in the intranet (Web server, application server, data base, legacy systems, web services)

Model View Controller Architectural Pattern from Smalltalk (1979) Decouples data and presentation Eases the development

Model View Controller Model View Controller encapsulate application state responds to state queries exposes application functionality notifies views of changes View renders the models requests updates from models sends user interaction to controller allows controller to select view Controller defines application behavior maps user actions to model updates selects view for response one for each functionality

Web Architectures: Specifics Technological constraints HTTP Broad variety of technical solutions application servers, proxies, firewalls, legacy applications checking of quality difficult e.g., performance depends on various components, like database, network bandwidth, processor, memory, code, … improvement of quality difficult e.g., code performance may not change overall performance substantially Technical solutions inhomogeneous and immature short product life cycles missing standards impede component integration from different manufactures many solutions are open source: continuity of development, extendibility, … Global access to Web applications internationalization, cultural differences

Model-View-Controller 2 (MVC 2) Adaptation of MVC for the Web stateless connection between the client and the server notification of view changes re-querying the server to discover modification of application’s state

Client/Server (2-Layer) Web/App Server Services Database Dynamic HTML Static HTML

N-Layer Architectures Client Application Server (Business Logic, Connectors, Personalization, Data Access) Presentation Layer Firewall Proxy Web Server DBMS B2B Backend (Legacy Application, Enterprise Info System) Business Layer Data Layer

Why an N-Layer Architecture? Separating services in business layer promotes re-use among applications Loose-coupling – changes reduce impact on overall system. More maintainable (in terms of code) More extensible (modular) Trade-offs Needless complexity More points of failure

JSP-Model-1 Architecture

JSP-Model-2 Architecture 1. user request 2. create/change model 3. create/change view 4. generate output 5. server response

Struts Architecture 1. user request 2. forwarding to controller 3. create/change model 4. create/change view 5. generate output 6. server response

That’s almost all for day… WRAP-up

Things to keep in mind (or summary) Good design of architecture is crucial You can leverage on patterns and frameworks Both have advantages and disadvantages Design is constrained on Web “infrastructure” MVC is the most commonly used pattern

Bibliography Mandatory reading Chapter 4

Next Lecture # Date Title Lecturer 1 7th Oct Web Engineering Introduction and Overview F. M. Facca 2 14h Oct Collection Requirements for Web Applications 3 21st Oct Web Application Modeling 4 28th Oct Developing Applications with WebML 5 4th Nov Web Application Architectures 6 11th Nov Testing and Usability on the Web 7 18th Nov Web Technologies I 8 25th Nov Mid Term Exam 9 2nd Dec Web Technologies II 10 9th Dec Web Technologies III 11 6th Jan Web Application Development Process 12 13th Jan Web 2.0 Mash-ups F. Daniel (UNITN) 13 20th Jan Project Management for Web Applications 14 27th Jan Final Exam

Questions?