Professional Documents
Culture Documents
LSN 9 Web Application Architectures and Infrastructure
LSN 9 Web Application Architectures and Infrastructure
LSN 9 Web Application Architectures and Infrastructure
D E V E L O P M E N T
Introduction
Methods, approaches
Specifics of Web architecture
Typical components of architectures
Client Server Architecture.
2-Tier Architecture.
N-Tier Architecture.
2
Architectures
3
Architectures
Architectural design is the first stage in the
design process and represents a critical link
between the design and requirements
engineering process.
The architectural design process is concerned
with establishing a basic structural
framework that identifies the major
components of a system and the
communications between these components.
4
Architectures
5
What is an Architecture?
6
What is an Architecture?
7
What is Architecture?
When we create architecture we try to break
the functional requirements and quality
requirements down into software components
and their relationships and interfaces in an
iterative approach.
This process is supported by a number of
approaches, such as the Unified Process.
Its development is primarily influenced by
requirements.
8
Developing Architecture
9
Developing Architecture
10
Developing Architecture
11
Stakeholder Communication
12
System analysis
13
Large-Scale Reuse
14
Architectures
Architectural design stage forces software
designers to consider key design aspects early
in the process.
Hofmeister et al (2000) suggest that the
software architectures can serve as a design
plan that is used to negotiate system
requirements and as a means of structuring
discussions with clients, developers and
managers.
15
Architectures
16
Architectures
17
Performance.
18
Security
19
Safety
20
Availability
21
Maintainability
22
Architectures
23
Patterns
24
Patterns
25
Framework
⚫ Lack of standard.
26
Architectural Design Decisions
27
Architectural design decisions
28
Architectural design decisions
Is there a generic application architecture that can be
used?
How will the system be distributed?
What architectural styles are appropriate?
What approach will be used to structure the system?
How will the system be decomposed into modules?
What control strategy should be used?
How will the architectural design be evaluated?
How should the architecture be documented?
29
Architecture reuse
30
Architectural styles
31
Architectural Styles
32
Architectural Styles
33
Architectural Structure
34
System decomposition
35
Control Strategy
36
Architecture Evaluation
37
Architecture Documentation
38
Architecture Documentation
39
Architectural Models
⚫ An interface model.
⚫ Relationship models.
⚫ A distribution model.
40
Architectural Models
41
Architectural models
42
System organisation
This reflects the basic strategy that is used to
structure a system.
Designers must make decisions on the overall
organisational model of a system early in the
architectural design process.
Three organisational styles are widely used:
⚫ A shared data repository style;
⚫ A shared services and servers style;
⚫ An abstract machine or layered style.
43
The repository model
Sub-systems must exchange data so that they
can work together effectively.
This may be done in two ways:
⚫ Shared data is held in a central database or
repository and may be accessed by all sub-
systems;
⚫ Each sub-system maintains its own database
and passes data explicitly to other sub-
systems.
44
Repository Model
45
Advantages of Repository model
46
Advantages of Repository Model
47
Disadvantages of Repository Model
48
Disadvantages of Repository Model
49
Disadvantages of Repository Model
50
Client-Server Model
51
Components of a Client-server model
52
Client Server Model
C
l N
i e
e t
n w
t o
s r
k
Server
53
Servers
A set of servers offer services to other
subsystems.
Examples of servers are:
⚫ Print servers that offer printing services.
⚫ File servers that offer file management
services.
⚫ Compile servers which offers programming
language compilation services.
⚫ Application servers.
54
Clients
55
Network
56
Client-server Model
57
Client-server Model
58
Advantages of Client-server characteristics
59
Disadvantages of Client-Server Model
There may be no shared data model across
servers and sub-systems use different data
organisation.
⚫ This means that data interchange may be
inefficient;
Redundant management in each server;
No central register of names and services - it
may be hard to find out what servers and
services are available.
60
Abstract machine (layered) model
61
Layered Model
62
Layered Model
63
Modular decomposition styles
64
Sub-systems and modules
65
Subsystems and Modules
66
Modular decomposition
⚫ Function-oriented pipelining.
67
Object models
68
Invoice processing system
69
Object model advantages
Objects are loosely coupled so their
implementation can be modified without
affecting other objects.
The objects may reflect real-world entities.
OO implementation languages are widely
used.
However, object interface changes may cause
problems and complex entities may be hard
to represent as objects.
70
Function-oriented pipelining
Functional transformations process their
inputs to produce outputs.
May be referred to as a pipe and filter model
(as in UNIX shell).
Variants of this approach are very common.
When transformations are sequential, this is a
batch sequential model which is extensively
used in data processing systems.
Not really suitable for interactive systems.
71
Invoice processing system
72
Advantages of Pipeline model
Supports transformation reuse.
Intuitive organisation for stakeholder
communication since they think of their work
in terms of output and input processing.
Easy to add new transformations.
Relatively simple to implement as either a
concurrent or sequential system.
73
Disadvantage of Pipelining Model
74
Reference architectures
Architectural models may be specific to some
application domain.
Two types of domain-specific model
⚫ Generic models which are abstractions from a number of
real systems and which encapsulate the principal
characteristics of these systems. Covered in Chapter 13.
⚫ Reference models which are more abstract, idealised
model. Provide a means of information about that class of
system and of comparing different architectures.
Generic models are usually bottom-up models;
Reference models are top-down models.
75
Reference architectures
76
Reference Architectures
77
OSI reference model
78
Categorizing Architectures
79
Categorizing Architectures: Layering
Software systems are structured in several tiers
to implement the principle of “separation of
concerns”.
80
Layering Aspect: Data Aspect
Relational DB
XML
⚫ Non-structured
Multimedia contents
81
Specifics of Web Application Architectures
82
Specifics of Web Application Architectures
Platform
⚫ J2EE, .NET
Problems
⚫ Using of wide range of different systems is
increasingly difficult
⚫ Wide variety of problems
⚫ Inhomogeneity (lack of uniformity)
⚫ Immaturity (lack of experience).
83
Components of a Generic Web Application
Architecture
84
Components of a Generic Web Application
Architecture: Client
85
Client Applications (Software)
Provides user interface
Stores some settings
Can do some data processing
Little to no application data storage
⚫ Same view of data no matter where
you login
86
Components of a Generic Web Application
Architecture :Firewall
87
Components of a Generic Web Application
Architecture: Proxy
88
Server Applications (Software)
89
Components of a Generic Web Application
Architecture: Web Server
90
Components of a Generic Web Application
Architecture : Database server
91
Components of a Generic Web Application
Architecture : Media server:
92
Components of a Generic Web Application
Architecture: Content management server
93
Components of a Generic Web Application
Architecture: Application server
94
Components of a Generic Web Application
Architecture: Legacy application
95
2 Layered Architecture
The 2-layer architecture can take different forms
with in the environment of Web applications.
96
Classic Example:
Early Banking Systems
97
Classic Example:
Early Banking Systems
98
Classic Example:
Early Banking Systems
99