OOP AND DISTRIBUTED SYSTEMS Flashcards
What is a distributed system
• A distributed system is a network that consists of autonomous
computers that are connected using a distribution middleware.
• They help in sharing different resources and capabilities to
provide users with a single and integrated coherent network.
“A distributed system is one in which hardware or software
components located at networked computers communicate and
coordinate their actions only by message passing.”
Draw a diagram showing a distributed system
*See notes for pics(2)
Give differences between centralized and decentralized Systems
• Centralized Systems
– Centralized systems have non-autonomous components
– Centralized systems are often build using homogeneous technology
– Multiple users share the resources of a centralized system at all times
– Centralized systems have a single point of control and of failure
• Distributed Systems
– Distributed systems have autonomous components
– Distributed systems may be built using heterogeneous technology
– Distributed system components may be used exclusively
– Distributed systems are executed in concurrent processes
– Distributed systems have multiple points of failure
What is the relationship between Distributed systems and computer networks
Every distributed system relies on services provided by a
computer network.
Networks focuses on packets, routing, etc., whereas distributed
systems focus on applications.
Give examples of distributed systems
- Internet
- Intranet
- Mobile/Ubiquitous Computing
- Automatic Teller Machine Network
Describe the basic model for giant-scale services. Use a diagram
Clients connect via the Internet and then go through a load manager that hides down nodes and balances traffic.
*See notes for pic
What is the focus for the basic model for giant-scale services.
- High availability
- Replication
- Degradation
- Disaster tolerance
- Online evolution
Give examples of giant-scale services
- Aol
- Microsoft network
- Yahoo
- eBay
- Amazon
- CNN
What are the advantages of the basic model that giant-scale services follow
- Access anywhere, anytime
- Availability via multiple devices
- Groupware support
- Lower overall cost
- Simplified service updates
Give a brief listing of the reasons why there is need for distributed systems
- Technological changes
- User needs
- Functional separation
- Inherent distribution
- Power imbalance and load variation
- Reliability and economies
Describe technological changes as a motivation for distributed systems
l Growth in microelectronics (e.g., VLSI – Very Large Scale
Integration, etc) has enabled price-performance ratio to
favor multiple low-performance processors rather than
single high-performance processors.
l Interconnection and communication costs have fallen
dramatically – LANs, etc are now readily available and cost-
effective.
Describe user needs as a motivation for distributed systems
l Increased desire to provide computing power (processing)
where it is needed. Users need more sophisticated facilities
– faster, reliable, etc.
l There is also managerial desire to decentralize.
Describe functional separation as a motivation for distributed systems
– Existence of computers with different capability & purpose:
- Clients and Servers
- Data collection and data processing
Describe inherent distribution as a motivation for distributed systems
• Information – Different information is created and maintained by different persons (e.g., Web pages);
• People
– Computer supported collaborative work (virtual
teams, engineering, virtual surgery)
• Retail store and inventory systems for supermarket
chain
Describe power imbalance and load variation as a motivation for distributed systems
• Distribute computational load among different computers
Describe reliability and economies as a motivation for distributed systems
Reliability:
• Long term preservation and data backup (replication) at
different location.
• Economies:
• Sharing a printer by many users and reduce the cost of
ownership.
• Building a supercomputer out of a network of computers.
What is a cluster
“A type of parallel or distributed processing system,
which consists of a collection of interconnected stand- alone computers cooperatively working together as a
single, integrated computing resource”
Briefly describe an RPC
Remote Procedure Call (RPC) is a powerful technique for constructing distributed, client-server based applications. It is based on extending the conventional local procedure calling so that the called procedure need not exist in the same address space as the calling procedure. The two processes may be on the same system, or they may be on different systems with a network connecting them.