Practice Questions for MidSem
Unit 1¶
1. Client Server Model¶
- Explain the client-server model in distributed systems. How does this model structure the interaction between clients and servers?
- Pre-requisite Architecture
- We use diskful as well as diskless workstation and mini computers.
- When diskless workstations are used on a network, the file system to be used by these workstations must be implemented either by a diskful workstation or by a minicomputer equipped with a disk for file storage.
- Minicomputers are used to implement file system. (1 or more)
- Other mini computers may be used for providing other types of services, such as DB service, print service. Each mini computer is used as a server machine
- Specialized machines for running server processes for managing and providing access to shared resources.
- there may be multiple file servers, each running on a separate minicomputer and cooperating via the network, for managing the files of all the users in the system
- one or more file servers may be used in a distributed computing system to provide file service to the users
- Request-Response Protocol
- A user logs into a workstation called his or her home workstation (User performs normal tasks here)
- requests for services provided by special servers (file/DB Server) are sent to a server providing that type of service.
- Server performs user's requested activity and returns result to the user's workstation.
- Thus, user processes need not be migrated to server machines as we can request calls as needed.
- Interaction between Clients and Server
- through a clear division of responsibilities and a request-response communication protocol.
- Client Process - resides on a workstation, initiates requests for services.
- Server Process - runs on dedicated machines (minicomputers) and provides specific services e.g. file storage, DB, etc.
- Request-Response Protocol - REQUEST - PROCESSING - RESPONSE
- Decoupling - client and servers are independent of each other here. Abstraction & Transparency!
- Flexibility and Scalability -
- Interoperability - model can operate between different software/hardware
- Client server model provides an effective general purpose approach to the sharing of information and resources in distributed computing systems.
2. Middleware and Client-server Model¶
- Distributed systems are not easy to build and maintain
- To simplify the above process , a new layer of software called Middleware is developed.
- provides services such as
- Naming(associate entities, identifiers or Naming service )
- Middleware insulates end users and application developers from dealing with the complexities and incompatibilities of networked proprietary computing environments. This is accomplished through three components:
- API
- DB server / Gateway
- Network Communications
- A client typically builds a request
- A remote server, performs data selection and handles data integration and aggregation
- Seamless integration of of front-end and back-end is accomplished through a new layer of system software, called middleware.
- It provides interoperability by delivering transparent data transmission and translation services between physically linked processors.
- It provides interoperability by delivering transparent data transmission and translation services between physically linked processors.
Distributed Systems - Motivations¶
- Discuss the motivation behind the development of distributed systems. What problems do they aim to solve in computing environments?
- Motivation
- Scalability
- Fault Tolerance
- Resource Sharing
- Geographical Distribution
- Improved Performance
- Problems DS aims to solve
- Single Point of Failure
- Performance Bottlenecks
- Data Consistency
- Latency issues
- Dynamic Resource Allocation
Primary Goals of Distributed System¶
- What are the primary goals of distributed systems? Explain at least three advantages that distributed systems have over centralized systems.
- Primary Goals
- Scalability
- Fault Tolerance
- Resource Sharing
- Transparency
- Concurrency
- Consistency
- Advantages
- Enhanced Reliability
- Improved Performance
- Geographical Distribution
- Scalability
- Resource Efficiency
Disadvantages¶
- Identify and explain three disadvantages or challenges associated with distributed systems. How do these challenges impact their adoption?
- Complexity
- Consistency
- Network Dependency
- Security Risks
- Latency Issues
- Monitoring and Debugging Difficulties is tougher
Hardware Components¶
- Describe the essential hardware components that form the backbone of distributed systems. How do these components interact to provide distributed services?
- Nodes (Servers)
- Networking Equipment
- Storage Systems
- Load Balancers
- Communication Protocols
- Client Devices
Key Software Components¶
- For enabling communication, coordination and management of resources across multiple nodes.
- Operating System
- resource management, concurrency, networking
- Middleware
- Between OS and application software
- Communication, data management, service coordination
- Application Software
- user programs providing specific functionalities
- User interfaces
- Business logic
- Interoperability
- user programs providing specific functionalities
Unit 2¶
TCP/IP v/s OSI¶
- Q -> Compare and contrast the TCP/IP and OSI models in relation to distributed systems. How do these network models support distributed communication?
- OSI
- A reference Model consisting of 7 layers. This model is more of a guide than a specification.
- This model can be used to develop standards, adhering to standards helps in building distributed systems that are ultimately compatible to each other.
- Each layer, namely, application, presentation, session, transport, network, data-link[^6], physical[^7] layers have their own separate functionality.
- TCP/IP
- Design based on focus on practical implementation
- connection-oriented, reliable, byte-stream service to an application program.
- Reliable protocol
- 4 Layers -> Application Layer, Transport Layer, Internet Layer, Network Access Layer
- Internet focused model, making it highly effective for distributed systems
- IP for addressing and routing, and fixed protocols are tightly integrated such as TCP, IP, HTTP, FTP.
Remote Procedure Call (RPC)¶
- Describe the concept of Remote Procedure Call (RPC). What are its key components, and how does it simplify communication in distributed systems?
- Remote Procedure Call
- A generalised 'Inter Process communication' protocol that can be used for designing several distributed applications.
- RPC is a widely acceptead IPC mechanism for distributed systems
- Extension of procedure call mechanism, allows a call to be made across systems as well.
- RPC Model
- Caller places arguments to the procedure in a well-specified location
- Control passed to instructions of the procedure call
- Procedure executes in a new execution environment that includes copies of the arguments given in the calling instruction.
- Control returns to calling point after execution is over.
- Caller - Client process sends a request to callee(server process) and waits (blocks) for a reply message
- server process executes the request and replies to the caller, caller then resumes.
- Transparency ensures that RPC mechanism's local/remote procedures are indistinguishable - we need - syntactic and semantic transparency
- KEY COMPONENTS of a RPC
- Client
- Client Stub
- Stub - piece of code that converts params between client and server during RPC.
- Usually a piece of code that replaces a component while testing
- 2 tasks
- On a call request packs a specification of the target procedure, and arguments and asks local RPCRuntime to send it to server stub
- Or receipt of result, unpacks and passes result to client
- RPCRuntime
- Handles transmission of meesages across the network between client and server machines.
- server stub
- Opposite of client stub
- Server
- The beauty here is total ignorance for the client that the work is done remotely! Stubs provide this facility!
Group Communication¶
- Explain the significance of group communication in distributed systems. Discuss the IS-IS protocol and how it facilitates efficient group communication
- Group Communication
- Types - 1:many, Many:1, Many:Many [sender:receiver]
- 1:many
- Multicast communication : special case -> broadcast (1:all)
- two types--closed and open groups.
- Closed group - only members can send message to the group
- Open group - any process in the system can send a message to the group as a whole
- Peer group
- Anyone can message anyone
- Complex process
- Hierarchical group
- One member is the coordination
- Simplified process as higher ups decide who can send message
- Many to 1
- Selective
- message exchange occurs only if the sender has been specified by the receiver
- Non-selective
- all incoming messages are accepted without any filter or prioritization
- Selective
- Many to Many
- Message delivery is ordered as
- Absolute Ordering - Exact order as intended by sender
- Consistent Ordering - Same ordering for everyone
- Casual Ordering -
- IS-IS routing Protocol
- Intermediate System to Intermediate System
- A link state routing protocol - Each router has copy of the entire topology
- ISIS is used for large scale network
- Works with areas and leveled routers.
- Level 1 router - talks within an area
- Level 2 router - Connects with other level 2 (backbone routers)
- Level 1/2 router - Can converse with level 1 router and level 2 routers
- ISIS helps router determine the best paths to route data by exchanging information about network's topology.
- It uses SPF (Shortest Path First ) algorithm to calculate the most efficient route to each destination in the network
- The IS-IS protocol facilitates efficient communication in distributed networks through:
- Maintaining a detailed and consistent view of the network topology with Link-State Databases.
- Using the Shortest Path First (SPF) algorithm to calculate optimal routes.
- Supporting scalability with hierarchical levels (Level 1/Level 2 routers).
- Achieving rapid convergence when the network changes.
- Enabling flexibility with both IPv4 and IPv6 addressing.
- Simplifying operations by running on Layer 2, avoiding IP dependency.
- Providing traffic engineering support and working well with MPLS for optimized traffic flow.
ATM (Asynchronous Transfer Mode)¶
- Discuss how ATM (Asynchronous Transfer Mode) relates to distributed systems. What advantages does it offer in terms of performance and reliability?
- allows voice, video and data to be sent along same network, to implement high-performance multimedia networking
- Transfer of data in discrete chunks.
- Connection oriented network, used fixed sized packets called cells
- ATM Adoption Layer (AAL)
- Maps higher level information to ATM Layer
- followed by ATM Layer which adds headers and sends data ahead to transport layer.
- Distributed systems rely on efficient network communication to function smoothly, as they often consist of multiple computers (or nodes) spread across different locations that need to exchange data in real-time. ATM offers a solution that supports high-throughput and low-latency communication, which is essential for distributed applications.
- High performance - High bandwidth and scalability
- Scalability
- Reliability
- Quality of Service - helps prioritize certain type of traffic over others
- Supports Diverse Applications
- ATM’s high performance, scalability, traffic integration, QoS support, and reliable transmission make it an attractive technology for distributed systems. Its ability to manage diverse traffic types, provide guaranteed service levels, and handle data in a low-latency and high-reliability environment ensures that distributed systems can operate efficiently and securely over large, complex networks.
Foot Notes¶
[^6]: Data Link Layer is responsible to detect and correct any errors in transmitted data. Breaks data into frames and adds error detection and correction mechanism [^7]: RSC 232-C is a popular physical layer standard for serial communication lines -