AT Unit2 Systems - Models
AT Unit2 Systems - Models
Davinia Hernández-Leo
1
Use of descriptive models
• Physical models
– Hardware composition in terms of computers and
their interconnecting networks
• Architectural models
– The architecture of a system is its structure in terms
of separately specified components and their
interrelationships
2
Physical models
Emergence of mobile,
– Contemporary distributed systems ubiquitous and cloud computing.
Great heterogeneity.
3
Physical models
• An example
intranet
☎
☎
☎ ISP
backbone
satellite link
desktop computer:
server:
network link:
4
Architectural models
• Three-stage approach:
– Core underlying architectural elements
– Composite architectural patterns
– Middleware platforms
5
Architectural models
Architectural elements
6
Architectural models
Architectural elements – Communicating entities
7
Architectural models
Processes and execution threads
• Process
– Execution program requiring some resources:
• Space memory locations
• Processor registers
• Open files
• Etc.
– Sequential and independent execution
8
Architectural models
Processes and execution threads
Processes Threads
9
Architectural models
Architectural elements – Communicating entities
10
Architectural models
Architectural elements – Communicating entities
• Objects
– Object oriented approaches (in design and programming
languages)
– Objects interacting and representing natural units of
decomposition
– Objects are accesed via interfaces with an associated
interface definition language (or IDL).
• IDL provides a specification of the methods defined on an object
11
Architectural models
Architectural elements – Communicating entities
• Components à SEMINAR 3
– Response to the problems of distributed objects
– Similar to objects (problem-oriented abstraction and
accessed through interfaces)
– Key difference: A more complete contract for system
construction, that is, they specify their interfaces and
makes all dependencies explicit
– Encourages and enables third-party development of
components
– Promotes a purer compositional approach removing
hidden dependencies
12
Architectural models
Architectural elements – Communicating entities
13
Architectural models
Architectural elements – Communication paradigms
14
Architectural models
Architectural elements – Communication paradigms
• Interprocess communication
– Low-level support for communication between
processes
• Message-passing primitives
• Socket programming à SEMINAR 2
• Multicast communication
15
Architectural models
Architectural elements – Communication paradigms
16
Architectural models
Architectural elements – Communication paradigms
• Indirect communication
– Group communication:
• Paradigm supporting one-to-many communication
• It relies on the abstraction of a group which is represented in the system by a
group identifier
– Publish-subscribe systems
• Information-dissemination systems wherein a large number of producers (or
publishers) distribute information items of interest (events) to a similarly large
number of consumers (or subscribers)
– Message queues
• Point-to-point service whereby producer processes can send messages to a
specified queue and consumer processes can be notified of the arrival of new
messages in the queue
– Distributed shared memory
• An abstraction for sharing data between processes that do not share physical
memory. Programmers are nevertheless presented with a familiar abstraction
of reading or writing (shared) data structures as if they were in their own local
address spaces, thus presenting a high level of distribution transparency.
17
Architectural models
Communicating entities and communication paradigms
18
Architectural models
Architectural elements – Roles and responsibilities
19
Architectural models
Architectural elements – Roles and responsibilities
• Client-Server
– The most important, often and widely employed
– Servers may in turn be clients of other servers
20
Architectural models
Architectural elements – Roles and responsibilities
• Peer-to-Peer
– All processes involved in a task or activity play similar role
– All participating processes run the same program and offer the
same set of interfaces to each other
– The resources available to run the service grow with the number of
users
21
Architectural models
Architectural elements – Placement
22
Architectural patterns
23
Architectural patterns
Layering
24
Architectural patterns
Layering
26
Architectural patterns
Tiered architecture
27
Architectural patterns
Tiered architecture
28
Associated middleware solutions
29
Associated middleware solutions
Categories of middleware
30
Case Study – Microservices