Introduction to Distributed Systems
Introduction to Distributed Systems
Security as a non-functional property impacts the functionality and user trust of an online banking system by ensuring secure access and transactions, protecting sensitive user data against unauthorized breaches. Strong security measures, like encryption and multi-factor authentication, maintain the integrity and confidentiality of user information, thus enhancing user trust. Security lapses can compromise system credibility and functionality, risking financial losses and damage to user trust .
Peer-to-peer computing enables direct data transmission among users without a central server, often improving scalability and reducing costs, as seen in Skype's early implementation. However, it can lead to security concerns and variable performance due to reliance on individual peers' capabilities. Centralized server-based methods offer more consistent performance and control but at the cost of higher infrastructure costs. The effectiveness of each system depends on the specific requirements and constraints, such as user demand and security needs .
Peer-to-peer computing is characterized by its decentralized nature, where no single server controls the system, and resource sharing is done among equal-status peers. Peers act as both clients and servers, sharing resources like files or computing power directly. Distributed processing spreads workload across all peers, increasing system scalability. An example is Skype in its early days, where users' computers connected directly to transmit voice and video data without a central server, enabling cost-effective scalability .
In a client-server interaction, when a user enters 'www.google.com' into a web browser like Chrome, the browser acts as the client and sends a request to Google's web server. The server, which functions as the provider, processes the request by locating the necessary data or resource, in this case, the Google homepage, which it then sends back to the client. The browser subsequently displays the homepage to the user, completing the interaction .
Migration transparency ensures that resources or processes can move across the distributed system's various locations without impacting how users or applications interact with them. An example is Virtual Machine (VM) Migration, where VMs can be transferred between physical servers to balance load or to maintain service during maintenance operations. Users continue their operations without interruption, oblivious to the underlying migrations, thus enhancing system robustness and flexibility .
Big-endian byte ordering stores the most significant byte first at the lowest memory address, reading data in the order humans typically read. For example, a 32-bit integer 0x12345678 is stored as 12 34 56 78 in big-endian systems. Little-endian byte ordering stores the least significant byte first, effectively reversing the order, storing the same integer as 78 56 34 12, which is akin to reversing the digits in a number .
Location transparency in distributed systems allows users to access resources without needing to know their physical or network locations. This abstraction simplifies user interaction by permitting seamless access regardless of geographical or network-based resource distribution. An example is a DNS service where users input a domain name, while the underlying IP address resolution is handled dynamically, enabling ease of access without manual configuration or awareness of the underlying location changes .
Non-functional properties crucial for determining a system's performance include reliability, performance, security, scalability, and adaptability. Reliability ensures system uptime; a performance benchmark is set for response times (e.g., 2 seconds for queries); security involves protecting user data and transactions; scalability is the ability to handle user growth without performance lapse; adaptability allows the system to adjust to environmental changes like varying loads. These properties collectively influence user satisfaction and system efficiency .
In a distributed system, request forwarding occurs when a client sends a request to a server that cannot handle it directly. Server A, upon realizing it cannot process the request due to limitations like lacking the necessary file or being too busy, forwards the request to Server B. Server B then processes the request as it has the required resources or power. The response can be sent back to the client either through Server A or directly from Server B .
Replication transparency hides the complexity of maintaining multiple copies of resources across a network, showing users only one consistent version. This is significant because it enhances data reliability and access speed while simplifying user interaction. An application example is a Content Delivery Network (CDN), which serves users the nearest copy of web content to reduce latency, providing a seamless user experience despite the complexities of underlying data replication and distribution .