1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
1
00:00:00,170 --> 00:00:02,770
Now that we have discussed a few foundational aspects
2
00:00:02,770 --> 00:00:05,410
of software architectures, and we have looked at some real
3
00:00:05,410 --> 00:00:07,900
world examples that help us to illustrate some of these
4
00:00:07,900 --> 00:00:10,560
points, to discuss some of these aspects. I want to
5
00:00:10,560 --> 00:00:13,730
introduce and define the different elements that compose a software
6
00:00:13,730 --> 00:00:17,700
architecture and also talk about architectural styles. So let's start
7
00:00:17,700 --> 00:00:20,190
by discussing a software architecture's
8
00:00:20,190 --> 00:00:22,880
elements. A software system's architecture
9
00:00:22,880 --> 00:00:26,690
typically is not, and should not be, a uniform monolith.
10
00:00:26,690 --> 00:00:28,770
On the contrary, an architecture should be a
11
00:00:28,770 --> 00:00:32,910
composition and interplay of different elements. In particular,
12
00:00:32,910 --> 00:00:34,510
as we quickly mentioned at the beginning of
13
00:00:34,510 --> 00:00:36,970
the lesson, there are three main types of elements
14
00:00:36,970 --> 00:00:40,160
in an architecture. Processing elements, data elements, and
15
00:00:40,160 --> 00:00:44,580
interaction elements. Processing elements are those elements that implement
16
00:00:44,580 --> 00:00:48,260
the business logic and perform transformations on data.
17
00:00:48,260 --> 00:00:51,760
Data elements, also called information or state, are those
18
00:00:51,760 --> 00:00:54,180
elements that contain the information that is used
19
00:00:54,180 --> 00:00:57,440
and transformed by the processing elements. And finally,
20
00:00:57,440 --> 00:01:00,030
the interaction elements are the glue that holds
21
00:01:00,030 --> 00:01:02,760
the different pieces of the architecture together. Now,
22
00:01:02,760 --> 00:01:06,030
the processing elements and the data are contained
23
00:01:06,030 --> 00:01:10,350
into the system components, whereas the interaction elements
24
00:01:10,350 --> 00:01:13,900
are maintained and controlled by the system connectors.
25
00:01:13,900 --> 00:01:17,100
And components and connectors get all cooked together
26
00:01:17,100 --> 00:01:19,980
into a systems configuration, which models
27
00:01:19,980 --> 00:01:22,940
components, connectors and their relationships. So
28
00:01:22,940 --> 00:01:24,850
now, let's look at components, connectors
29
00:01:24,850 --> 00:01:26,770
and configurations in a little more detail.
|