Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures...

17
4/23/2013 1 © Copyright 2013 Ioan Toma & Srdjan Komazec Web Engineering Web Application Architectures 2 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

Transcript of Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures...

Page 1: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

1

1© Copyright 2013   Ioan Toma & Srdjan Komazec

Web Engineering

Web Application

Architectures

2

Where we are?

# Date Title

1 5th March Web Engineering Introduction and Overview

2 12th March Requirements Engineering for Web Applications

3 19th March Web Application Modeling

4 9th April Web Application Architectures

5 16th April Developing Applications with WebML

6 23rd April Testing and Usability of Web Applications

7 30th April Maintenance and Performance of Web Applications 

8 7th May Web Technologies I

9 14th May Web Technologies II

10 21st May Web Application Development Process

11 28th May Project Management for Web Applications

12 4th June Web Application Security

13 11th June Mobile Application Development I

14 18th June Mobile Application Development II

14 25th June Final Exam

Page 2: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

2

3

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

4

INTRODUCTIONWhat is an architecture?

Page 3: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

3

5

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

6

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

Page 4: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

4

7

Developing ArchitecturesInfluences on Architectures

Architecture

Functional Requirements• Clients• Users• Other Stakeholders

Non-Functional Requirements• Performance• Scalability• Reusability• Other?

8

Developing ArchitecturesInfluences on Architectures

Technical Aspects• Operating System• Middleware• Legacy Systems• Other?

Architecture

Experience with• Existing Architecture• Patterns• Project Management• Other?

Page 5: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

5

9

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

10

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!

Page 6: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

6

11

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

12

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?)

Page 7: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

7

13

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

14

WEB APPLICATION ARCHITECTURES

Page 8: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

8

15

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

16

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

Page 9: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

9

17

Example of a WAA

Web Application

Presentation Business Logic Data Management

Personalization Security Search

18

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)

Page 10: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

10

19

Model View Controller

• Architectural Pattern from Smalltalk (1979)• Decouples data and presentation• Eases the development

20

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

Page 11: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

11

21

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

22

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

Page 12: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

12

23

Client/Server (2-Layer)

Client

Web/App Server

Database

Services

Dynamic HTML

Static HTML

Client

Server

24

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

Page 13: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

13

25

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

26

JSP-Model-1 Architecture

Page 14: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

14

27

JSP-Model-2 Architecture

1. user request2. create/change model3. create/change view4. generate output5. server response

28

Apache Struts Architecture

Enhances the JSP model 21. user request2. forwarding to controller3. Selecting model in form of Java bean4. Selecting view to represent contents5. generate output6. server response http://struts.apache.org/

Page 15: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

15

29

WRAP-UP

30

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

Page 16: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

16

31

Bibliography

• Mandatory reading– Kappel, G., Proll, B. Reich, S. & Retschitzegger, W. (2006). Web Engineering, Wiley &

Sons. 4th Chapter

• Web links– Model-View-Controller pattern http://en.wikipedia.org/wiki/Model-View-Controller

32

Next Lecture

# Date Title

1 5th March Web Engineering Introduction and Overview

2 12th March Requirements Engineering for Web Applications

3 19th March Web Application Modeling

4 9th April Web Application Architectures

5 16th April Developing Applications with WebML

6 23rd April Testing and Usability of Web Applications

7 30th April Maintenance and Performance of Web Applications 

8 7th May Web Technologies I

9 14th May Web Technologies II

10 21st May Web Application Development Process

11 28th May Project Management for Web Applications

12 4th June Web Application Security

13 11th June Mobile Application Development I

14 18th June Mobile Application Development II

14 25th June Final Exam

Page 17: Web Application Architectures - STI Innsbruck · 2013-04-23 · • Web Application Architectures – Introduction • Software architectures • Architectures development • Patterns

4/23/2013

17

33

Questions?