Download presentation
Presentation is loading. Please wait.
1
Distributed System Models
Most concepts are drawn from Chapter 2 © Pearson Education
2
Contents Introduction Physical models Architectural models
Fundamental models
3
Contents Introduction Physical models Architectural models
Fundamental models
4
Introduction Distributed system design can be explained through three different models: Physical models – models that capture the hardware composition of a system in terms of computer and their interconnecting networks Architectural models – models that describe the system in terms of the computational and communication tasks performed by its computational elements Fundamental models – models that describe an abstraction of individual items in distributed systems. Three models; interaction, failure, and security models (Cancelled)
5
Contents Introduction Physical models Architectural models
6
Physical models Basic physical models - baseline physical model
Model that shows hardware and software, components located at networked computers, communicate and coordinate their actions by passing message Three generations of distributed systems: Early distributed systems Internet-scale distributed systems Contemporary distributed systems
7
Physical models
8
Contents Introduction Physical models Architectural models
9
Architectural models Architecture? Why architecture?
The structure of a system specifying its components and their interrelationships Why architecture? To ensure that the structure will meet the current and future demands on it To provide a reliable, manageable, adaptable and cost-effective system
10
Architectural models Architectural elements:
How to understand the fundamental building blocks of a distributed system? What are the entities that are communicating in the distributed system (communicating entities)? How do they communicate, or, what communication paradigm is used (communication paradigms)? What roles and responsibilities do they have in the overall architecture (roles and responsibilities)? How do they mapped on to the physical distributed architecture (what is their placement)?
11
Architectural Elements of a Distributed System
Communicating entities Communication paradigms roles and responsibilities Placement of communication entities SOA Coulouris 5Ed.
12
Architectural models Communicating entities:
Processes: Operations inside the System Objects: computation consists of a number of interacting objects. Components: emerged due to some weaknesses with distributed objects Web services: closely related to objects and components
13
Architectural models Communication paradigms
Interprocess communication – low-level process support. E.g. message passing primitives, direct access to API (Application Program Interface), multicast communication(a single sender and multiple receivers) API : is a software intermediary وسيطthat allows two applications to talk to each other. Each time you use an app like Facebook, send an instant message, or check the weather on your phone, you’re using an API. Remote invocation – common communication paradigm in distributed systems. Two-way exchange between communicating entities, common techniques; RPC (Remote Procedure call), RMI (Remote Method Invocation), request-reply protocols Indirect communication– E.g. group communication, publish-subscribe systems, message queues, tuple spaces, distributed shared memory(DSM)
14
Architectural models
15
Roles and Responsibilities
Architectural models Roles and Responsibilities We examine two architecture styles : client server Client-server Peer-to-peer peer SOA Coulouris 5Ed.
16
Client Server Basic Model: Clients invoke individual servers
Querying a web server, which could then query a mysql or oracle database before returning the content of a page Web server is a client of the database server A search engine, as well as serving search requests from clients, crawls other websites to keep its information current. Search engine is both a server and a client for other web servers. Client processes interact with individual server processes in a separate computer in order to access data or resource. The server in turn may use services of other servers. Example: A Web Server is often a client of file server. Browser search engine -> crawlers other web servers.
17
A service provided by multiple servers
This topology is extremely common. A web site like google serves approximately 100M searches a day. It is obviously simply not feasible to serve them from a single server. Google uses clusters containing 10’s of thousands of machines offering equivalent services, and you are redirected (via DNS and other means) to one of them. Can also be redirected at protocol or application level. Similar techniques can be used for Oracle databases, that are replicated over many servers to offer redundancy and performance Services may be implemented as several server processes in separate host computers. Example: Cluster based Web servers and apps such as Google, parallel databases Oracle
18
Peer Processes: A distributed application based on peer processes
Peer model suits ad-hoc groupings of participants. Can be used very effectively… for instant bittorrent “swarm” style downloaded. -No central point of failure (reliable) -No central point of control (difficult to deny service for adversaries) -Some peers will typically contribute more than others (I.e. seed or super-peer) All of the processes play similar roles, interacting cooperatively as peers to perform distributed activities or computations without distinction between clients and servers. E.g., music sharing systems Gnutella, Napster, Kaza, etc. Distributed “white board” – users on several computers to view and interactively modify a picture between them.
19
Architectural models Placement strategies:
Mapping of services to multiple servers – several servers process services in separate hosts. Example: Sun Network Information Service (NIS) Caching – storing recently used data objects. Example: web proxy server Mobile code – Code can be downloaded and run on user’s machine. Example: Applet Mobile agents – Code and data travel in a network and performing specific tasks on behalf of the users. Example: Web crawler program
20
Architectural models Web applets
21
Proxy servers (replication transparency) and caches: Web proxy server
A cache is a store of recently used data. Web proxy servers can operate at client level, at ISP level and at edge/gateway levels to improve performance and reduce communication costs for frequently accessed data. Caching can even be used for dynamic data (such as a google search). This reduces the load on the web servers and improves the performance for end users by reducing the time taken for a dynamic request. Google uses this technique extensively! When serving 100M requests/day this saves resources.
22
Architectural models Architectural patterns:
Layering –complex system is partitioned into a number of layers. The top layer utilizes the services of the lower layer. Tiered architecture – complementary to layering, organizes the functionality of the given layer and place it in appropriate server (physical nodes). Thin clients – software layer that supports window-based user interface in remote computers. Other patterns : e.g. proxy, brokerage, reflection
23
N-tired vs. n-layer architecture
N-tier and n-layer are entirely different concepts. N-tier refers to the actual n system components of your application. For ex: Suppose you create a web application, its components include your application server where it is being hosted, the database being used with it, on another server and the user machine who access the application, forms the third component. These are referred to as the 3-tier of your application. So they may be n in number and so the term n-tier application. So tiers are the physically separate components of the same system.
24
On the other hand, layers refer to the internal architecture of your component. For ex: in your code, you divide the code into different layers like Data access layer, Business logic layer etc.. So they are internal to the component and these layers interact with each other internally to form the entire component.
25
Architectural Patterns (1)
Layered architecture the vertical organization of services into layers of abstraction: applications, services layered on the top middleware between the application and the operating system SOA Coulouris 5Ed.
26
Architectural models Software and hardware service layers in distributed systems
27
Architectural Patterns (2)
Tiered architecture: Complementaryمكمل to layering (combining in such a way as to enhance or emphasize the qualities of each other or another.) usually applied to the applications and services layer An application may be described in terms of presentation logic(Presentation logic is that portion of an enterprise system which determines how data will be displayed or reported.), business logic(Business logic is that portion of an enterprise system which determines how data is transformed and/or calculated) , and data logic (The data access layer consists of the definitions of database tables and columns and the computer logic that is needed to navigate the database Such an application might be built upon two tiers or three. This is separation of concerns SOA Coulouris 5Ed.
28
Application Architecture Overview
An application system consists of three logical layers. The presentation layer is what a system user sees or interacts with. It can consist of visual objects such as screens, web pages or reports or non-visual objects such as an interactive voice response interface. When most people think of application systems, they think mainly of the presentation layer. The business logic layer, on the other hand, represents the business rules that are enforced via programming logic (computer instructions) regarding how those rules are applied. This business logic layer on the surface, can appear to be very straight forward, however, it is rarely so SOA Coulouris 5Ed.
29
The data access layer consists of the definitions of database tables and columns and the computer logic that is needed to navigate the database. The data access layer enforces rules regarding the storage and access of information. SOA Coulouris 5Ed.
30
Client-Server Architecture Types (Tier arch complements layer architecture)
Two-tier model (classic) Three-tier (when the server, becomes a client) Multi-tier (cascade model) client server client Server/client server client Server/client server
31
Architectural Patterns (3)
In a two-tier solution, the business logic and user interface may reside on the client and the data logic layer may be placed on the server. This is the classic client server architecture. Other organizations are possible: In a three-tier solution, the first tier can be a simple user interface, the second tier has the application logic, the third tier is simply a database An AJAX application such as Google Maps is an example of a responsive multi-tiered application. New Map tiles (256X256 pixel images) are fetched as as needed. The thin client approach is a trend in distributed computing. Move complexity into internet based services. Cloud computing and Virtual Network Computing (remote desktop ) are examples. SOA Coulouris 5Ed.
33
Multitiered Architectures (2)
Figure 2-5. Alternative client-server organizations (a)–(e). Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved
34
Questions Q: What is a three-tiered client-server architecture?
A: A three-tiered client-server architecture consists of three logical layers, where each layer is, in principle, implemented at a separate machine. The highest layer consists of a client user interface, the middle layer contains the actual application, and the lowest layer implements the data that are being used. Q: What is the difference between a vertical distribution and a horizontal distribution? A: Vertical distribution refers to the distribution of the different layers in a multitiered architectures across multiple machines. In principle, each layer is implemented on a different machine. Horizontal distribution deals with the distribution of a single layer across multiple machines, such as distributing a single database. In this type of distribution, a client or server may be physically split up into logically equivalent parts, but each part is operating on its own share of the complete data set, thus balancing the load. Modern system architectures that support horizontal distribution, known as peer-to-peer systems.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.