0% found this document useful (0 votes)
19 views

AT Unit2 Systems - Models

The document discusses physical and architectural models for distributed systems. It covers topics like processes, threads, communication paradigms, roles and responsibilities. Key aspects covered include client-server and peer-to-peer architectures.

Uploaded by

roger.bastida01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

AT Unit2 Systems - Models

The document discusses physical and architectural models for distributed systems. It covers topics like processes, threads, communication paradigms, roles and responsibilities. Key aspects covered include client-server and peer-to-peer architectures.

Uploaded by

roger.bastida01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Systems models

Davinia Hernández-Leo

Aplicaciones Telemáticas (Unit 2)

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

• Baseline physical model: distributed system as


an extensible set of computer nodes interconnected
by a computer network for the required passing of
messages

• Beyond this baseline model, we can usefully identify


three generations of distributed systems
– Early distributed systems Nodes were typically desktop
computers and therefore
relatively static, discrete and
– Internet-scale distributed systems autonomous.

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

• To understand the fundamental building blocks


of a distributed system, it is necessary to
consider four key questions:
– Entities communicating?
– Communication paradigm used?
– Roles and responsibilities?
– Mapping to physical distributed infrastructure?

6
Architectural models
Architectural elements – Communicating entities

• From a system perspective, the entities that


communicate in a distributed system are typically
processes.
– In some environments, the entities are nodes (sensor
networks)
– In most distributed system environments, processes are
supplemented by threads

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

• Execution thread à SEMINAR 1


– Running program that shares the memory image and
other process resources with other threads
– Its execution can be launched in parallel with another
one

8
Architectural models
Processes and execution threads

• “Threaded program” à Higher potential (performance


increased by executing asynchronous and parallel
code)

• Threads: Independent control flows within the same


process sharing global data (global variables, files, etc.),
but having their own stack, local variables and
program counter
– Light processes (smaller context)
• Need little memory
• Have low creation cost
– Suitable model for exploiting parallelism in a multiprocessor
environment
– Improve operating systems performance by reducing the overhead
caused by the context change between processes
Computer Computer

Processes Threads
9
Architectural models
Architectural elements – Communicating entities

• From a programming perspective, processes are


not enough, and more problem-oriented
abstractions have been proposed:
– Objects
– Components
– Web services

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

• Web Services à SEMINAR 4


– Based on objects and components: encapsulation of
behaviour and access through interfaces
– Key difference: Integrated into the World Wide Web,
using web standards to represent and discover services
• W3C defines a web service as:
“a software application identified by a URI, whose interfaces and
bindings are capable of being defined, described and discovered
as XML artefacts. A Web service supports direct interactions with
other software agents using XML-based message exchanges via
Internet-based protocols”
– Complete services crossing organizational boundaries
• Business to business integration

13
Architectural models
Architectural elements – Communication paradigms

• Three types of communication paradigm:


– Interprocess communication
– Remote invocation
– Indirect communication

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

• Remote invocation (two-way exchange between


communicating entities, a sender and a receiver)
– Request-reply protocols
• Protocols involving a pairwise exchange of messages from client to
server and then from server back to client
• First message containing an encoding of the operation to be executed
– Remote procedure calls (RPC)
• Procedures in processes on remote computers can be called as if they
are procedures in the local address space
• Offer access and location transparency
– Remote method invocation (RMI)
• A calling object can invoke a method in a remote object
• Ability to pass object identifiers as parameters in remote calls

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

• In a distributed system, the processes take on


given roles, and these roles are fundamental in
establishing the overall architecture to be adopted
– Client-Server
– Peer-to-Peer

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

• Consider how entities such as objects or services


map on to the underlying physical distributed
infrastructure
• Placement is crucial in terms of determining the
properties of the distributed system, most
obviously with regard to performance but also to
other aspects, such as reliability and security
• Placement strategies
– Mapping of services to multiple servers
– Caching
– Mobile code
– Mobile agents

22
Architectural patterns

• Provide composite recurring structures that


have been shown to work well in given
circumstances

• They are not themselves necessarily complete


solutions but rather offer partial insights that,
when combined with other patterns, lead the
designer to a solution for a given problem domain
– Layering
– Tiered architectures

23
Architectural patterns
Layering

• In a layered approach, a complex system is


partitioned into a number of layers, with a
given layer making use of the services offered
by the layer below
– A software abstraction, with higher layers being
unaware of implementation details
– In terms of distributed systems, this equates to a
vertical organization of services into service layers

24
Architectural patterns
Layering

• Software and hardware service layers in


distributed systems
– Platform
• The lowest-level hardware and software layer
• Provide services to the layers above them
• Examples: Intel x86/Windows, Intel x86/Solaris, Intel
x86/Mac OS X
– Middleware
• Layer of software whose purpose is to mask heterogeneity
and to provide a convenient programming model to
application programmers
• Support of abstractions such as remote method invocation;
communication between a group of processes; notification of events; the
partitioning, placement and retrieval of shared data objects amongst
cooperating computers; the replication of shared data objects
25
Architectural patterns
Tiered architecture

• Technique to organize functionality of a


given layer and place this functionality into
appropriate servers and, as a secondary
consideration, on to physical nodes
– Complementary to layering
– Most commonly associated with the organization of
applications and services (but it also applies to all
layers)

26
Architectural patterns
Tiered architecture

• Consider this functional decomposition of a


given application:
– Presentation logic: handling user interaction and
updating the view of the application
– Application logic: detailed application-specific
processing associated with the application (business
logic)
– Data logic: persistent storage of the application,
typically in a database management system

27
Architectural patterns
Tiered architecture

• Two-tier and three-tier architectures

28
Associated middleware solutions

• The task of middleware is to provide a higher-level


programming abstraction for the development of
distributed systems and, through layering, to
abstract over heterogeneity in the underlying
infrastructure to promote interoperability and
portability
– Middleware solutions are based on the architectural
models
– Examples in the next table of categories of middleware
• Modern middleware platforms tend to offer hybrid solutions
• Taxonomy is not intended to be complete in terms of the set of
middleware standards and technologies available today

29
Associated middleware solutions
Categories of middleware

30
Case Study – Microservices

• Microservices are an architectural style that structures


an application as a collection of services that are
– Highly maintainable and testable
– Loosely coupled
– Independently deployable
– Organized around business capabilities
– Owned by a small team

– An approach of developing a suite of small services working as a single


application

• Read this article: Microservices


(https://martinfowler.com/articles/microservices.html)
– During the class session we will carry out a short questionnaire
with questions about this article.
31

You might also like