Web Application Architectures



Similar documents
Web Application Development Process

Aerospace Software Engineering

The Role of the Software Architect

Stock Trader System. Architecture Description

Client-server 3-tier N-tier

Requirements Engineering for Web Applications

Applying 4+1 View Architecture with UML 2. White Paper

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

IT Architecture Review. ISACA Conference Fall 2003

Software Life-Cycle Management

B. WEB APPLICATION ARCHITECTURE MODELS

What Is the Java TM 2 Platform, Enterprise Edition?

SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS

zen Platform technical white paper

Java Project Management. Java Project Management: Agenda. Extreme Java G

Application Performance Testing Basics

Chap 1. Introduction to Software Architecture

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

Basic Concepts. Software Architecture Lecture 3. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

Event based Enterprise Service Bus (ESB)

Architecture. Reda Bendraou

JReport Server Deployment Scenarios

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

System types. Distributed systems

A Comparison of Open Source Application Development Frameworks for the Enterprise

Software Architecture Document

Java Project Management: Agenda

Load Testing of Loan Search Project Report

Service Oriented Architecture 1 COMPILED BY BJ

SCADA Cloud Computing

Apache Jakarta Tomcat

So You Want an SOA: Best Practices for Migrating to SOA in the Enterprise. Eric Newcomer, CTO

Large-Scale Web Applications

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

Sistemi ICT per il Business Networking

Commercial software development with the help of J2EE architecture and MVC

A review and analysis of technologies for developing web applications

Design Approaches of Web Application with Efficient Performance in JAVA

Performance Modeling for Web based J2EE and.net Applications

Japan Communication India Skill Development Center

E-commerce. business. technology. society. Kenneth C. Laudon Carol Guercio Traver. Third Edition. Copyright 2007 Pearson Education, Inc.

Getting Things Done: Practical Web/e-Commerce Application Stress Testing

Enterprise Application Designs In Relation to ERP and SOA

QATrax Technical Guide

OWB Users, Enter The New ODI World

Middleware support for the Internet of Things

secure intelligence collection and assessment system Your business technologists. Powering progress

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Service Oriented Architecture

Web Application Framework: Review

A framework for web-based product data management using J2EE

Core Java+ J2EE+Struts+Hibernate+Spring

Software Architecture

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

Electronic Commerce Engineering

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS

CLOUD COMPUTING: ARCHITECTURE AND CONCEPT OF VIRTUALIZATION

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

see >analyze >control >align < WhitePaper > planningit: alfabet s Logical IT Inventory

Enterprise Integration Architectures for the Financial Services and Insurance Industries

SOA, case Google. Faculty of technology management Information Technology Service Oriented Communications CT30A8901.

Chapter 6 Essentials of Design and the Design Activities

How To Understand The Architecture Of Java 2Ee, J2Ee, And J2E (Java) In A Wordpress Blog Post

25 May Code 3C3 Peeling the Layers of the 'Performance Onion John Murphy, Andrew Lee and Liam Murphy

Java Technology in the Design and Implementation of Web Applications

Middleware- Driven Mobile Applications

SOA Success is Not a Matter of Luck

Mobile Performance Testing Approaches and Challenges

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

High-level Design. What is software architecture?

Platform Autonomous Custom Scalable Service using Service Oriented Cloud Computing Architecture

Service-Oriented Architecture and Software Engineering

Tutorial on Client-Server Architecture

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Service Oriented Architectures

An Architecture for Web-based DSS

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Application of MVC Platform in Bank E-CRM

Client/server is a network architecture that divides functions into client and server

Taxi Service Design Description

An introduction to creating JSF applications in Rational Application Developer Version 8.0

Patterns in Software Engineering

Customer Bank Account Management System Technical Specification Document

LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

SOA REFERENCE ARCHITECTURE: SERVICE ORIENTED ARCHITECTURE

A Case Study of the Systems Engineering Process in Healthcare Informatics Quality Improvement. Systems Engineering. Ali M. Hodroj

Core J2EE Patterns, Frameworks and Micro Architectures

Extend the value of your core business systems.

Web Service Implementation Methodology

Java 2 Platform, Enterprise Edition (J2EE) Bruno Souza Java Technologist, Sun Microsystems, Inc.

Transcription:

Web Engineering Web Application Architectures Copyright 2013 Ioan Toma & Srdjan Komazec 1 Where we are? # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements Engineering for Web Applications 3 19 th March Web Application Modeling 4 9 th April Web Application Architectures 5 16 th April Developing Applications with WebML 6 23 rd April Testing and Usability of Web Applications 7 30 th April Maintenance and Performance of Web Applications 8 7 th May Web Technologies I 9 14 th May Web Technologies II 10 21 st May Web Application Development Process 11 28 th May Project Management for Web Applications 12 4 th June Web Application Security 13 11 th June Mobile Application Development I 14 18 th June Mobile Application Development II 14 25 th June Final Exam 2 1

Overview Web Application Architectures Introduction Software architectures Architectures development Patterns and frameworks Specifics of Web applications Web Application Architectures Architecture types MVC, Client-Server, N-Layer, JSP Model 1 and 2, Apache Struts Summary 3 What is an architecture? INTRODUCTION 4 2

Software Architectures Architecture is defined [...] as the fundamental organization of a 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 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 artifacts (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 3

Developing Architectures Influences on Architectures Functional Requirements Clients Users Other Stakeholders Architecture Non-Functional Requirements Performance Scalability Reusability Other? 7 Developing Architectures Influences on Architectures Technical Aspects Operating System Middleware Legacy Systems Other? Architecture Experience with Existing Architecture Patterns Project Management Other? 8 4

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 9 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 amongst each other! 10 5

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 acceptable 11 Specifics of Web apps High quality demands Security Extensibility Adaptability Stability Performance Broad range of technical solutions that can be integrated. Hard to evaluate quality demands (various components) Hard to solve (where is the problem?) 12 6

Specifics of Web apps Inhomogeneity and immaturity of technical solutions Fast product lifecycles Many components: open source quality? Lack of standards Global requirements Multi linguality Cultural adaptation? E.g. Google for Korea 13 WEB APPLICATION ARCHITECTURES 14 7

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 15 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 16 8

Example of a WAA Web Application Presentation Business Logic Data Management Personalization Security Search 17 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 ones But still things 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) 18 9

Model View Controller Architectural Pattern from Smalltalk (1979) Decouples data and presentation Eases the development 19 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 20 10

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 21 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 22 11

Client/Server (2-Layer) Client Client Server Web/App Server Services Static HTML Database Dynamic HTML 23 N-Layer Architectures Client Firewall Proxy Web Server Application Server (Business Logic, Connectors, Personalization, Data Access) Presentation Layer Business Layer Backend (Legacy Application, Enterprise Info System) DBMS B2B Data Layer 24 12

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 25 JSP-Model-1 Architecture 26 13

JSP-Model-2 Architecture 1. user request 2. create/change model 3. create/change view 4. generate output 5. server response 27 Apache Struts Architecture Enhances the JSP model 2 1. user request 2. forwarding to controller 3. Selecting model in form of Java bean 4. Selecting view to represent contents 5. generate output 6. server response http://struts.apache.org/ 28 14

WRAP-UP 29 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 30 15

Bibliography Mandatory reading Kappel, G., Proll, B. Reich, S. & Retschitzegger, W. (2006). Web Engineering, Wiley & Sons. 4 th Chapter Web links Model-View-Controller pattern http://en.wikipedia.org/wiki/model-view-controller 31 Next Lecture # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements Engineering for Web Applications 3 19 th March Web Application Modeling 4 9 th April Web Application Architectures 5 16 th April Developing Applications with WebML 6 23 rd April Testing and Usability of Web Applications 7 30 th April Maintenance and Performance of Web Applications 8 7 th May Web Technologies I 9 14 th May Web Technologies II 10 21 st May Web Application Development Process 11 28 th May Project Management for Web Applications 12 4 th June Web Application Security 13 11 th June Mobile Application Development I 14 18 th June Mobile Application Development II 14 25 th June Final Exam 32 16

Questions? 33 17