3 Distributed Systems Architecture Models Part 2 Object
3. Distributed Systems – Architecture Models Part 2
Object Relationships 2
Broker Pattern: Consequences • Benefits – Location transparency – Changeability and extensibility of components – Portability of a Broker system – Interoperability between different Broker systems – Reusability • Liabilities – Restricted efficiency – Lower fault tolerance (server fails, broker fails, . . . ) – Testing and debugging 3
SUMMARY of Proxy Design Pattern Problems Context • The configuration of • Low-level message passing is fraught with accidental components in distributed complexity systems is often subject to • Remote components should look like local components from an application perspective change as requirements • i. e. , clients & servers should be oblivious to evolve communication issues Solution Apply the Proxy design pattern to provide an OO surrogate through which clients can access remote objects : Client : Proxy : Service service pre-processing: marshaling service post-processing: unmarshaling Abstract. Service Client service Proxy service 1 1 Service service • A Service implements the object, which is not accessible directly • A Proxy represents the Service and ensures the correct access to it • Proxy offers same interface as Service 6 • Clients use the Proxy to access the Service
Client-server Architecture Client-Server Model 7
Multi-Tier Architecture Model
Client-Server Model Client Re qu es t a client, a server, and network Server Network Re su lt Client machine Server machine 9
The Client-Server Model ork w t e n tion c e n con network connect ion Server netw ork con nec tion Client Machine Mobile Client Desktop Client 10
Client-server • Client/server is a distributed computing model in which client applications request services from server processes. Clients and servers typically run on different computers interconnected by a computer network. – Client application is a process or program that sends messages to a server via the network. Those messages request the server to perform a specific task, such as looking up a customer record in a database or returning a portion of a file on the server’s hard disk. – Server process or program listens for client requests that are transmitted via the network. Servers receive those requests and perform actions such as database queries and reading files.
2 -Tier Architecture Ø It is client-server architecture Ø Direct communication Ø Run faster(tight coupled)
2 -Tier Architecture
2 -Tier Architecture Ø Two parts: 1) Client Application (Client Tier) 2) Database (Data Tier) Ø On client application side the code is written for saving the data in the SQL server database
3 -Tier Architecture Ø Web based application Ø Three layers: 1) Client layer 2) Business layer 3) Data layer
Client Layer Contains UI part of our application Ø This layer is used for the design purpose where data is presented to the user or input is taken from the user
Business layer All business logic written like validation of data, calculations, data insertion etc… Ø This acts as a interface between Client layer and Data Access Layer Ø Make communication faster between client and data layer
Data layer Ø Contains methods to Øconnect with database and Øto perform insert, update, delete, get data from database
3 -Tier / Multi-Tier Architecture Model Classical Layered Structure of Software Systems
Three-tier Architectures • An important design consideration for large client/server systems is whether a client talks directly to the server, or whether an intermediary process is introduced in-between the client and the server. The former is a two-tier architecture, the latter is a three-tier architecture. • In the three-tier architecture, process between Server and client (intermediary) process is: – separate the clients and servers. – cache frequently accessed server data to ensure better performance and scalability. – Performance can be increased by having the intermediary process to distribute client requests to several servers such that requests execute in parallel. – The intermediary can also act as a translation service by converting requests and replies to and from a mainframe format, or as a security service that grants server-access only to trusted clients.
The 3 -Tier Architecture Model • The 3 -tier architecture consists of the following tiers (layers): – Front-end (client layer) • Client software – provides the UI of the system – Middle tier (business layer) • Server software – provides the core system logic • Implements the business processes / services – Back-end (data layer) • Manages the data of the system (database / cloud) 21
The 3 -Tier Architecture Model Data Tier (Back-End) Middle Tier (Business Tier) Client Tier (Front-End) rk o w network Database Business Logic ne tw ork Client Machine Mobile Client Desktop Client 22
Multitiered Architectures (3 Tier Architecture)
Multi-Tier Architecture Model 24
MVC (Model-View-Controller)
Model-View-Controller (MVC) • Model-View-Controller (MVC) architecture – Separates the business logic from application data and presentation • Model – Keeps the application state (data) • View – Displays the data to the user (shows UI) • Controller – Handles the interaction with the user 26
Peer-to-Peer System Architecture 27
Based on System Architecture : Peer-to-Peer Model • All the nodes in the network have equal privilege • No special routing server required. The nodes themselves take care of routing the data • Peers – both suppliers and consumers • As the number of nodes increases, the bandwidth increases • Reduces single point failures • It is less secure • Usually used for sharing of resources – files, audio - visual media 28
A Distributed Application Based on Peer Processes 29
Fail-over
Fail-over 31
Fail-over 32
Fail-back 33
Replication 35
Master-Slave Replication 36
Master-Slave Replication 37
Tree Replication 38
Master-Master Replication 39
Buddy Replication 40
Buddy Replication 41
Brief Early History of Computing Intergalactic era client/server Ethernet era client/server First Wave Second Wave Database servers File servers re a w Distributed objects p u o r g Third Wave TPitors n mo 1982 1986 1990 1994 1998 43
Future of Distributed Computing… • An expanded peer-to-peer network with every personal computer interconnected with every other. • Utilization of CPU cycles and hard disks during idle time • Improvements in security and performance that void the need for a centralized control server and a data center 44
45
Crab Computing 46
DESIGN REQUIREMENTS FOR DISTRIBUTED ARCHITECTURES
Distributed system (Lamport): a system in which the failure of a computer you didn't even know existed can render your own computer unusable 48
Distributed System Challenges 49
Design Requirements for Distributed Architectures 50
Guidelines for Designing for Performance 51
Some Pitfalls when Developing Distributed Systems 52
- Slides: 50