UPSC Exam  >  UPSC Notes  >  Management Optional Notes for UPSC  >  Designing for online and distributed environments

Designing for online and distributed environments | Management Optional Notes for UPSC PDF Download

Introduction

Technological innovation has modernized human life, with computers and networks increasingly capable of supporting distributed collaborative multimedia applications.

Process of Distributed and Internet Systems

  • The process closely resembles the design of single-location systems.
  • However, in the case of multi-location deployment, various design considerations come into play.
  • The increased number of components introduces a higher potential for failure.
  • Key concerns in these systems include guaranteeing reliability, availability, survivability, and performance.

Distributed and Internet Systems
Designing for online and distributed environments | Management Optional Notes for UPSC

Designing Distributed System

  • A distributed system is an application that employs a set of protocols to coordinate the activities of multiple processes across a network.
  • These processes collaborate to execute a singular or a small set of interrelated tasks.
  • Building a distributed system offers several advantages, including the capacity to connect remote users with remote resources in an open and scalable manner.
  • The collective capabilities of distributed components allow for the creation of a significantly larger and more powerful system than the combinations of individual standalone systems.

A distributed system must have the following characteristics

  • Fault-Tolerant: Capable of recovering from component failures without executing incorrect actions.
  • Highly Available: Able to restore operations, allowing it to continue providing services even when certain components have failed.
  • Recoverable: Components that have failed can restart and rejoin the system once the cause of the failure has been addressed.
  • Consistent: Can coordinate actions among multiple components, particularly in the presence of concurrency and failure, enabling the distributed system to function like a non-distributed system.
  • Scalable: Can operate correctly as some aspect of the system is scaled to a larger size, whether it's the network, the number of users, servers, or overall system load.
  • Predictable Performance: Possesses the ability to deliver the desired responsiveness in a timely manner.
  • Secure: Authenticates access to data and services, ensuring a secure environment (Birman, Kenneth, 2005).

In distributed systems design, effectively managing failures is a crucial task. Failures fall into two main categories: hardware and software.

  • Hardware Failures:
    • Historically significant until the 1980s, with improvements in internal hardware reliability due to factors like decreased heat production, power consumption, smaller circuits, fewer off-chip connections, and enhanced manufacturing systems.
  • Software Failures:
    • Remain a major concern in distributed systems despite rigorous testing, accounting for a substantial portion of unplanned downtime (estimated at 25-35%).
    • Residual bugs in mature systems are often categorized into two main types (Gray, J. and Reuter, A., 1993).

Question for Designing for online and distributed environments
Try yourself:
What are the key concerns in distributed and internet systems?
View Solution

Types of failures that can occur in a distributed system

  • Halting Failures: A component abruptly stops without any prior notification. Detection often relies on timeouts, as the tester may not receive any indication of the failure. For example, a user's computer freezing is considered a halting failure.
  • Fail-Stop: Similar to halting failures but includes some form of notification to other components before stopping. An example is a network file server informing its clients about an impending shutdown.
  • Omission Failures: Occur when a component fails to send/receive messages, typically due to insufficient buffering space. Messages may be discarded without notifying the sender or receiver, especially during router overloads.
  • Network Failures: Result from a break in a network link.
  • Network Partition Failure: Involves the fragmentation of a network into disjoint sub-networks, where messages can be sent within each sub-network but are lost between them. This can occur due to network failures.
  • Timing Failures: Violate temporal properties of the system, such as unsynchronized clocks on different computers used to coordinate processes or delayed messages beyond a defined threshold period.
  • Byzantine Failures: Encompass various faulty behaviors, including data corruption, loss, or failures caused by malicious programs (Birman, Kenneth, 2005).
  • Heisenbug: A bug that appears to vanish or alter its characteristics when observed or researched. An example is a bug that occurs in a release-mode compile but not in debug mode.
  • Bohrbug: A bug that does not disappear or change its characteristics during research. Bohrbugs manifest reliably under well-defined conditions.

Heisenbugs are more prevalent in distributed systems than in local systems due to the complexity of obtaining a coherent and comprehensive view of synchronized process interactions for programmers.

Distributed systems use

  • LAN-based file server architecture.
  • Client/server architecture.

Designing system for LAN

  • Creating a system for a Local Area Network (LAN) involves the configuration of cabling, hardware, and software to link workstations, computers, and file servers within a limited geographical area, usually a single building or campus.
  • The file server functions as a device overseeing file operations and is accessible to every client PC connected to the LAN.

File server model:

Designing for online and distributed environments | Management Optional Notes for UPSC

Drawbacks of file server model

  • There is excessive data movement. Entire data table must be transferred, instead of individual records.
  • It needs for powerful client workstations. Each client workstation must devote memory to a full DBMS.
  • There is decentralized data control. Record concurrency control, recovery, and security are complicated.

Designing Systems for a Client/Server Architecture

Client/server architecture in a LAN-based computing environment involves a central database server or engine handling all database commands received from client workstations. Application programs on each client primarily focus on user interface functions.

File Server vs. Client/Server
Designing for online and distributed environments | Management Optional Notes for UPSC

Designing Systems for a Client/Server Architecture

  • Application processing is split between the client and server.
  • The client oversees the user interface.
  • The database server manages data storage and query processing.
  • The database engine, located on the server, constitutes the back-end of the client/server database system, offering database processing and shared access functions.
  • The client, serving as the front-end, provides the user interface and functions for data manipulation.
  • Application Program Interface (API) refers to standardized software building blocks utilized to ensure common system capabilities, such as user interfaces and printing, facilitating standardized data exchange between clients and servers.

Client/Server Advantages

  • Leverages benefits of microcomputer technology
  • Processing performed close to data source
    • Improves response time
    • Reduces network traffic
  • Facilitates use of GUIs
  • Encourages acceptance of open systems

Question for Designing for online and distributed environments
Try yourself:
Which type of failure occurs when a component fails to send/receive messages due to insufficient buffering space?
View Solution

Differences between client server and file server

Designing for online and distributed environments | Management Optional Notes for UPSC

  • Designing distributed systems is a complex task. In client-server applications, the server provides services like processing database queries or delivering real-time stock prices. The client utilizes these services, presenting query results or suggesting stock purchases to users. Communication between the client and server must be consistent, ensuring no data is lost, and it reaches the client in the order sent by the server.
  • Distributed systems consist of various servers. For example, file servers manage disk storage units housing file systems, while database servers store and offer databases to clients. Network name servers map symbolic names or service descriptions to values like IP addresses and port numbers for processes providing the service.
  • In distributed systems, multiple servers of a specific type, such as file or network name servers, may exist. The term "service" denotes a set of servers of a particular type. A binding occurs when a process needing to access a service becomes associated with a specific server offering that service. Various binding policies determine server selection, such as locality or load balance.
  • Distributed services may use data replication, where multiple data copies facilitate local access or enhance availability after a server process crash. Caching, a common practice, involves a process maintaining a local copy of data for quick access. Caching is similar to replication but may result in stale data. Therefore, a policy for validating cached data might be necessary. Communication reliability is crucial between clients and servers.
  • Examples of distributed systems include the web, email, DNS, peer-to-peer systems (file sharing, CDNs, cycle sharing), distributed file systems (NFS, ...), sensor networks, and Akamai CDN.

Designing Internet Systems

The development of internet systems is an area where designers play a crucial role in optimizing web coding and ensuring website security. This encompasses the creation, planning, maintenance, and modeling of computer systems based on the internet.

The process of online system design involves several key aspects:

  • Standards:
    • Design simplicity is facilitated by adhering to standards.
    • Naming is governed by BIND.
    • Translation follows the Hypertext Transfer Protocol (HTTP).
    • Formatting is accomplished using Hypertext Markup Language (HTML).
  • Separation of Content and Display:
    • HTML, with its tag-oriented format, has limitations.
    • Extensible Markup Language (XML) has been introduced to separate content from display, providing the ability to create custom languages.
  • Future Evolution:
    • There is a shift from desktop PCs to thin clients, where most processing and data storage occur on the server.
  • Aids to Site Consistency:
    • Cascading Style Sheets (CSS) are utilized to provide a set of style rules instructing web browsers on document presentation.
    • Extensible Style Language (XSL) is a specification for separating style from content when generating HTML documents.
  • Design Issues Related to Site Management: Customer Loyalty and Trustworthiness are conveyed through:
    • Design quality
    • Up-front disclosure
    • Comprehensive, correct, and current content
    • Connectivity to the rest of the web
    • Data security
    • Personalization
  • Web pages are designed to endure over time, considering customer bookmarks, links from other sites, search engine referrals, and the added value of old content.
  • System Security is emphasized, recognizing that effective design stems from understanding how a system fits within the organizational framework, as established in technical studies.

Question for Designing for online and distributed environments
Try yourself:
What is the purpose of a client-server application?
View Solution

The document Designing for online and distributed environments | Management Optional Notes for UPSC is a part of the UPSC Course Management Optional Notes for UPSC.
All you need of UPSC at this link: UPSC
258 docs

Top Courses for UPSC

FAQs on Designing for online and distributed environments - Management Optional Notes for UPSC

1. What is the process of designing distributed and internet systems?
Ans. The process of designing distributed and internet systems involves identifying the requirements, determining the system architecture, designing the communication protocols, implementing the system components, and testing and validating the system.
2. What are the types of failures that can occur in a distributed system?
Ans. There are several types of failures that can occur in a distributed system, including network failures, node failures, software failures, and hardware failures. Network failures can result in communication breakdowns, while node failures can lead to the unavailability of a particular node. Software failures can cause crashes or errors in the system, and hardware failures can lead to the malfunctioning of the underlying hardware components.
3. How are client/server and file server architectures different?
Ans. Client/server architecture is a distributed computing model where clients initiate requests for services from a server. In this architecture, the server is responsible for processing the client's requests and providing the requested services. On the other hand, a file server architecture is a type of client/server architecture where the server primarily focuses on providing access to shared files and managing file operations. In this architecture, clients can request specific files or perform file-related operations such as reading, writing, or deleting files.
4. What factors should be considered when designing systems for a client/server architecture?
Ans. When designing systems for a client/server architecture, several factors should be considered. These include determining the appropriate client/server ratio, designing the communication protocols and interfaces, ensuring scalability and performance, considering security measures, and planning for fault tolerance. It is crucial to balance the load between clients and servers, define clear communication protocols, optimize system performance, implement secure authentication and access control mechanisms, and design fault-tolerant strategies to ensure the reliability of the system.
5. How should systems be designed for online and distributed environments?
Ans. When designing systems for online and distributed environments, it is essential to consider factors such as network reliability, scalability, fault tolerance, and security. The system should be designed to handle network failures gracefully, ensure scalability to accommodate increasing user demands, incorporate fault tolerance mechanisms to handle failures, and implement robust security measures to protect sensitive data. Additionally, the system should be designed with efficient communication protocols and interfaces to facilitate smooth interactions between clients and servers in the distributed environment.
258 docs
Download as PDF
Explore Courses for UPSC exam

Top Courses for UPSC

Signup for Free!
Signup to see your scores go up within 7 days! Learn & Practice with 1000+ FREE Notes, Videos & Tests.
10M+ students study on EduRev
Related Searches

Viva Questions

,

practice quizzes

,

Designing for online and distributed environments | Management Optional Notes for UPSC

,

Important questions

,

Sample Paper

,

study material

,

Objective type Questions

,

past year papers

,

ppt

,

Designing for online and distributed environments | Management Optional Notes for UPSC

,

Previous Year Questions with Solutions

,

Summary

,

Semester Notes

,

pdf

,

Extra Questions

,

Exam

,

video lectures

,

shortcuts and tricks

,

Designing for online and distributed environments | Management Optional Notes for UPSC

,

mock tests for examination

,

Free

,

MCQs

;