1 Prof. Leonardo Mostarda University of Camerino Distributed Systems – Architectures Prof. Leonardo Mostarda-- Camerino,
Outline zArchitectural styles yLayered architectures yObject-based architectures yData-centered architectures yEvent-based architectures yShared-data space architectures zSystem architectures yClient server yMultitiered Architectures
Architectures zDistributed systems are very complex thus they need to be properly organised yLogical organisation yPhysical organisation zLogical organisation is mostly about software architecture that is how software components are organised and how they interact. zThe final instantiation of software components is referred to as system architecture
Architectural styles zAn architectural style defines: yComponents yConnection yData exchanged yConfiguration zA component is a modular unit that provides and requires services zComponents can be arranged in various configurations that have been classified into architectural styles. Example from the IEEE paper “Distributed Orchestration of Pervasive Services” by Leonardo Mostarda, Srdjan Marinovic, Naranker Dulay Required service Provided service
Architectural Styles zImportant styles of architecture for distributed systems: yLayered architectures yObject-based architectures yData-centered architectures yEvent-based architectures yShared-data space architectures
Layered architectural style
Object-based architectural style zEach object corresponds to a component zComponents are connected through a remote procedure call mechanism. zThis architecture is very general. For instance it matches the layered architecture.
zIn a data-centered architecture processes communicate through a common repository zFor instance many networked applications use a shared distributed file system in which communication takes place through files. zWeb-based distributed systems use shared web-based data services. Data-centered architectural style
zComponents communicate by using events that can carry data zFor instance pub/sub systems are event based systems zComponents are loosely coupled Event-based architectural style
zEvent-based architectures can be combined with data- centered architectures in order to obtain shared-data space architectural styles. zComponents are decoupled in time zThe shared repository can be accessed using a description rather than a reference Shared-data space architectural style
System architecture zDeciding software components, their interactions and their placement lead to a system architecture. yCentralised yDecentralised
Centralised Architectures zA server implements a specific service. zA client requests the service. zThe client-server interaction is also known as request replay behaviour. zThe protocol used for the implementation can be unreliable
zWhat are the advantages of using a protocol that is not reliable? Centralised Architectures The communication is faster What are the disadvantages of using a protocol that is not reliable? If the reply is lost the client can send the request again which will lead to duplication of requests For instance can you imagine duplicating a transfer of a £100000? If the operation is “how much money I have left” than it is ok! Operation idempotent can be repeated several times
zShould I use always TCP to implement the client-server request? Centralised Architectures Type of application Connection set up required
Application Layering zIt is not easy to draw a clear distinction between a client and a server yFor instance a server can act as a client zMany client-server applications support access to databases. In this case the following layered architectural style can be identified: yThe user-interface level yThe processing level yThe data level
internet search engine example zThe processing layer implements the core functionality.
Multitiered Architectures (1) zThe three logical levels suggests a number of ways for physically distributing a client-server application. The simplest organisation have only two types of machines: zA client machine containing only the programs implementing (part of) the user-interface level zA server machine containing the rest, ythe programs implementing the processing and data level
Multitiered Architectures (2) We can distribute the three logical layers into two machines that are client and server This is called physically two- tiered architecture. (a) applications control the representation of data (thin clients) (d) (e) workstations connected to a distributed file system (fat clients)
Multitiered Architectures (3) Three-tiered architecture programs that form part of the processing level reside on a separate server
Summary zArchitectural styles yLayered architectures yObject-based architectures yData-centered architectures yEvent-based architectures Shared-data space architectures zSystem architectures yClient server yMultitiered Architectures
15 minutes pause Prof. Leonardo Mostarda-- Camerino,21
Questions? Prof. Leonardo Mostarda-- Camerino,22