1
Architectural Styles 1
Architectural Styles
Ana Moreira Fernando Brito e Abreu
Architectural Styles 2
Banking software architecture 2 Architectural Styles 1 WebLogic - - PDF document
Architectural Styles Ana Moreira Fernando Brito e Abreu 1 Architectural Styles Banking software architecture 2 Architectural Styles 1 WebLogic Network Gatekeeper's software architecture 3 Architectural Styles GNOME Desktop Accessibility
1
Architectural Styles 1
Architectural Styles 2
2
Architectural Styles 3
Architectural Styles 4
3
Architectural Styles 5
Architectural Styles 6
4
Architectural Styles 7
Architectural Styles 8
5
Architectural Styles 9
Architectural Styles 10
6
Architectural Styles 11
Architectural Styles 12
12
7
Architectural Styles 13
Architectural Styles 14
Some architectural styles emphasize different aspects such as: subdivision of functionality, topology or interaction style
8
Architectural Styles 15
Style is the classification of a system’s architecture according to those with similar patterns A pattern is a common solution to a common problem; patterns may be classified as idioms, mechanisms, or frameworks
Architectural Styles/Patterns Design Patterns Emphasis Reuse conceptual integrity Reuse conceptual integrity Abstraction Level Architecture Component Use Concept that needs to be adapted Directly applicable
Architectural Styles 16
set of predefined subsystems specify responsibilities rules and guidelines for organising subsystem relationships
9
Architectural Styles 17
Architectural Styles 18
separation of concerns and anticipation of change low coupling high cohesion
Almost all compilers are build as “pipe-and-filter” Almost all network protocols are built as “layers”
10
Architectural Styles 19
favour reusability and maintainability hinder performance
Architectural Styles 20
context-problem/solution/consequences/…
11
Architectural Styles 21
The Unified Software Development Process,
A System of Patterns: Pattern-Oriented Software Architecture, F. Buschman et al. Object-Oriented Modeling and Design, J. Rumbaugh Design and use of software architectures, J. Bosch. Software Architecture in Practice, P. Clements, L. Bass &
Applied Software Architecture, C. Hofmeister et al. Software Product Lines, P. Clements & L. Northrop Software Architectures: Perspectives on an Emerging Discipline, M. Shaw. Synthesis-Based Software Architecture Design, Tekinerdogan & Aksit. …
Architectural Styles 22
Pipe & filter Client-server Blackboard Object-oriented Layers Implicit Invocation or Event-based Architectures SOAs (Service Oriented Architectures)
12
Architectural Styles 23
Architectural Styles 24
13
Architectural Styles 25
Feedback-loops: useful when a system does continuous controlling of a physical system Splitting pipes: this will allow the parallelising the processing Producer (Pump): Produces data and puts it to an output port that is connected to the input end of a pipe. Consumer (Sink): Gets data from the input port that is connected to the output end of a pipe and consumes the data.
Architectural Styles 26
14
Architectural Styles 27
Unidirectional flow Control flow derived from data flow
Architectural Styles 28
Unix commands alone are powerful, but when we combine them together, we can accomplish complex tasks with ease. The way we combine Unix commands is through using pipes (“|”) and filters (e.g. cat, awk, sort)
$ cat basket.txt Layer1 = cloth Layer2 = strawberries Layer3 = fish Layer4 = chocolate Layer5 = punch cards $ cat basket.txt | awk -F= '{print "HAS: " $2}' | sort HAS: chocolate HAS: cloth HAS: fish HAS: punch cards HAS: strawberries $
15
Architectural Styles 29
Architectural Styles 30
16
Architectural Styles 31
Architectural Styles 32
17
Architectural Styles 33
Architectural Styles 34
18
Architectural Styles 35
Architectural Styles 36
Functional decomposition
Typical style in the classical (procedural) programming paradigm
Information (representation, access method) hiding
Typical style in the Object-oriented paradigm
Layered decomposition
Each level only communicates with its immediate neighbours Client-server
Typical style in web services / SOAs
19
Architectural Styles 37
Architectural Styles 38
20
Architectural Styles 39
Architectural Styles 40
21
Architectural Styles 46
Architectural Styles 47
22
Architectural Styles 50
Architectural Styles 51
23
Architectural Styles 52
Architectural Styles 58
24
Architectural Styles 59
Architectural Styles 62
25
Architectural Styles 63
Architectural Styles 64
26
Architectural Styles 65
Architectural Styles 66
27
Architectural Styles 72
Architectural Styles 73
28
Architectural Styles 76
s1 s2 s3 s4 c1 c2 c3 c4 c5 c6 c7 c8 c9 c1 c1 1 c1 2
Architectural Styles 77
Client - a program that makes requests (to the servers) and handles input/output with the system environment Server - a program that services requests from clients
Connection channels (e.g. RPCs, http, ODBC)
29
Architectural Styles 78
Architectural Styles 79
30
Architectural Styles 80
Application Logic Presentation Logic Data Management
Architectural Styles 81
31
Architectural Styles 82
Architectural Styles 83
32
Architectural Styles 84
Thick client Thin client
Architectural Styles 86
33
Architectural Styles 87
Architectural Styles 88
34
Architectural Styles 89
Architectural Styles 90
35
Architectural Styles 91
Client tier Security tier Application server Integration tier Data storage tier
Architectural Styles 92
36
Architectural Styles 93
Client code has application server address Application code has database server address
Architectural Styles 94
37
Architectural Styles 95
connected to a data-space; there are typically no connections between processing units (bus-topology)
Architectural Styles 96
Behaviour Types:
Accessed by a set of components; e.g. database or server
Sends notification to components when data of interest changes; e.g. blackboard or active database Constraints: Consistency of repository: various types of (transaction) consistency
38
Architectural Styles 97
Architectural Styles 98
39
Architectural Styles 99
Architectural Styles 101
40
Architectural Styles 102
Architectural Styles 103
41
Architectural Styles 105
Architectural Styles 106
Events represent happenstances inside an entity that may (or
may not) be of interest to other entities
Direct registration with announcing entities Or, explicit event broadcast and registration infrastructure
WEBSTER: hap·pen·stance Function: noun Etymology: happen + circumstance Semantics: a circumstance especially that is due to chance
42
Architectural Styles 107
1.Event announcement is broadcast 2.Procedures associated with registrations (if any) are invoked
Architectural Styles 108
Typical implentation by the Observer design pattern
43
Architectural Styles 109
Architectural Styles 110
44
Architectural Styles 111
Architectural Styles 112
45
Architectural Styles 113
In chapter 5, Software Architecture in Practice
Architectural Styles 114
Well-understood solutions applied to new problems
Shared implementations of invariant aspects of a styles
A phrase such as “client-server” conveys a lot of information
Supported by style standardization e.g., CORBA, JavaBeans
Enabled by the constrained design space
Style-specific depictions matching engineers’ mental models
46
Architectural Styles 115
The Internet as a blackboard Does that scale?
e.g. client-server, service-oriented architectures e.g. context-aware mobile application: implicit invocation
Almost all compilers are build as “pipe-and-filter” Almost all network protocols are build as “layers”
Architectural Styles 116
47
Architectural Styles 117
Architectural Styles 118
Input: Sequence of lines An Introduction to Software Architecture Key Word in Context Output: Circularly shifted, alphabetized lines An Introduction to Software Architecture Architecture An Introduction to Software Context Key Word in in Context Key Word Introduction to Software Architecture An Key Word in Context Software Architecture An Introduction to to Software Architecture An Introduction Word in Context Key
48
Architectural Styles 119
Advantages: good performance Disadvantages: poor modifiability
Architectural Styles 120
Advantages: good support for reuse Disadvantages: poor extendability
49
Architectural Styles 121
Advantages: good support for extendability Disadvantages: poor control, space utilization
Architectural Styles 122
50
Architectural Styles 123