© Copyright 2008 STI - INNSBRUCK www.sti-innsbruck.at Web Engineering Web Application Architectures Lecture V – 4 th November 2008 Federico M. Facca.

Slides:



Advertisements
Similar presentations
Executional Architecture
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
© Copyright 2008 STI - INNSBRUCK Web Engineering Web Application Development Process and Project Management for Web Lecture XI – 20.
© Copyright 2008 STI - INNSBRUCK Web Engineering Collection Requirements for Web Applications Lecture II – 14 th October 2008 Federico.
Web Application Modeling
8.
© Copyright 2008 STI - INNSBRUCK Web Engineering Developing Applications with WebML Lecture IV – 28 th October 2008 Federico M. Facca.
Technical Architectures
Chapter 17: Client/Server Computing Business Data Communications, 4e.
02/12/00 E-Business Architecture
Distributed Systems Architectures
Software Architecture Design Instructor: Dr. Jerry Gao.
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
Chapter 7: Client/Server Computing Business Data Communications, 5e.
Chapter 9: Moving to Design
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Web application architecture
What is Software Architecture?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
INFO 355Week #61 Systems Analysis II Essentials of design INFO 355 Glenn Booker.
Chapter 9 Moving to Design Part 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 9 Elements of Systems Design
The Design Discipline.
CPTE 209 Software Engineering Summary and Review.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 Copyright © 2004, Oracle. All rights reserved. Introduction to Oracle Forms Developer and Oracle Forms Services.
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 -
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11Slide 1 Chapter 11 Distributed Systems Architectures.
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
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
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.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Chapter 9  2000 by Prentice Hall. 9-1 Client/Server Computing.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
9 Systems Analysis and Design in a Changing World, Fifth Edition.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Zoljargal.M  Introduction  Methods, approaches  Specifics of Web architecture  Typical components of architectures.
J2EE Platform Overview (Application Architecture)
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
Software Design and Architecture
#01 Client/Server Computing
Web Application Architectures
Lecture 1: Multi-tier Architecture Overview
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Chapter 5 Architectural Design.
#01 Client/Server Computing
Presentation transcript:

© Copyright 2008 STI - INNSBRUCK Web Engineering Web Application Architectures Lecture V – 4 th November 2008 Federico M. Facca

Web Engineering (703512) Where are we? #DateTitleLecturer 17 th OctWeb Engineering Introduction and OverviewF. M. Facca 214 h OctCollection Requirements for Web ApplicationsF. M. Facca 321 st OctWeb Application ModelingF. M. Facca 428 th OctDeveloping Applications with WebMLF. M. Facca 54 th NovWeb Application ArchitecturesF. M. Facca 611 th NovTesting and Usability on the WebF. M. Facca 718 th NovWeb Technologies IF. M. Facca 825 th NovMid Term ExamF. M. Facca 92 nd DecWeb Technologies IIF. M. Facca 109 th DecWeb Technologies IIIF. M. Facca 116 th JanWeb Application Development ProcessF. M. Facca 1213 th JanWeb 2.0 Mash-upsF. Daniel (UNITN) 1320 th JanProject Management for Web ApplicationsF. M. Facca 1427 th JanFinal ExamF. M. Facca 2 There are some changes!

Web Engineering (703512) Overview Introduction Web Application Architectures Wrap-up 3

Web Engineering (703512) INTRODUCTION What is an architecture? 4

Web Engineering (703512) 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 5

Web Engineering (703512) 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 6

Web Engineering (703512) Developing Architectures Influences on Architectures Architecture Functional Requirements Clients Users Other Stakeholders Non-Functional Requirements Performance Scalability Reusability Other? 7

Web Engineering (703512) Developing Architectures Influences on Architectures Technical Aspects Operating System Middleware Legacy Systems Other? Architecture Experience with Existing Architecture Patterns Project Management Other? 8

Web Engineering (703512) 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?) 9

Web Engineering (703512) 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! 10

Web Engineering (703512) 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 11

Web Engineering (703512) WEB APPLICATION ARCHITECTURES 12

Web Engineering (703512) Architecture Types Layering 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 13

Web Engineering (703512) 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 14

Web Engineering (703512) Example of a WAA Web Application Presentation Business LogicData Management Personalization SecuritySearch 15

Web Engineering (703512) 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) 16

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

Web Engineering (703512) Model View Controller Model –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 18

Web Engineering (703512) 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 19

Web Engineering (703512) 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 20

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

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

Web Engineering (703512) 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 23

Web Engineering (703512) JSP-Model-1 Architecture 24

Web Engineering (703512) JSP-Model-2 Architecture user request 2. create/change model 3. create/change view 4. generate output 5. server response

Web Engineering (703512) Struts Architecture user request 2. forwarding to controller 3. create/change model 4. create/change view 5. generate output 6. server response

Web Engineering (703512) WRAP-UP That’s almost all for day… 27

Web Engineering (703512) 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 28

Web Engineering (703512) Bibliography Mandatory reading –Chapter 4 29

Web Engineering (703512) Next Lecture 30 #DateTitleLecturer 17 th OctWeb Engineering Introduction and OverviewF. M. Facca 214 h OctCollection Requirements for Web ApplicationsF. M. Facca 321 st OctWeb Application ModelingF. M. Facca 428 th OctDeveloping Applications with WebMLF. M. Facca 54 th NovWeb Application ArchitecturesF. M. Facca 611 th NovTesting and Usability on the WebF. M. Facca 718 th NovWeb Technologies IF. M. Facca 825 th NovMid Term ExamF. M. Facca 92 nd DecWeb Technologies IIF. M. Facca 109 th DecWeb Technologies IIIF. M. Facca 116 th JanWeb Application Development ProcessF. M. Facca 1213 th JanWeb 2.0 Mash-upsF. Daniel (UNITN) 1320 th JanProject Management for Web ApplicationsF. M. Facca 1427 th JanFinal ExamF. M. Facca

Web Engineering (703512) Questions? 31