Term
|
Definition
A form of communication used in parallel computing, object-oriented programming and interprocess communication |
|
|
Term
What are the basic characteristics of Distributed Systems? |
|
Definition
- Concurrency and Coordination
- Lack of global clock (Difficult to synchronize clocks)
- Components can fail independently, leaving other components still running
|
|
|
Term
What is resource sharing? |
|
Definition
A device or piece of information on a computer that can be remotely accessed from another computer |
|
|
Term
What are some application domains for Distributed Systems? |
|
Definition
- Finance and eCommerce
- Information society
- Healthcare
- Transport and logistics
- Science
- Environment
|
|
|
Term
What are some trends in Distributed Systems? |
|
Definition
- Pervasive networking
- Mobile commputing
- Cloud Computing
|
|
|
Term
What are some characteristics of pervasive networking? |
|
Definition
- Internet connects many computer networks of different types
- Devices can be connected at any time and any place
- Internet protocols used as common means of communication
- Enables services like WWW, email, etc
- Intranets
|
|
|
Term
What are some characteristics of Mobile computing |
|
Definition
- Portable computing devices as part of distributed systems
- Access to resources while on the move
- Context-aware computing
|
|
|
Term
What are some characteristics of Cloud Computing? |
|
Definition
- Share storage and computing power with networked computers
- Cluster computers provide single integrated storage or high-performace computing
|
|
|
Term
Show a simple code example of file transfer between Client and Server |
|
Definition
|
|
Term
Show an example code of a file transfer between client and server where the client processes the reply asynchronously and the server processes the request concurrently |
|
Definition
|
|
Term
What are some issues that arise in some distributed systems? |
|
Definition
- Synchronous or Asynchronous?
- Stateful or stateless?
- Can survive component failure?
- How does one application know that anotherone exists or is still running?
|
|
|
Term
(Very) basic difference between asynchronous and synchronous? |
|
Definition
- Asynchronous messages are sent off without any confirmation that they have arrived
- Synchronous - sender does not proceed until receiver has received
|
|
|
Term
What does it mean for an application to be stateless in a file transfer for example? |
|
Definition
- Server remembers where the file store is and which request it has outstanding, but doesn't remember previous communications. If it fails and recovers, some requests will be lost
- Client remembers which files it is waiting for
|
|
|
Term
What does it mean for an application to be stateful in a file transfer for example? |
|
Definition
- Saves its entire state so that it can be restored in case of event failure
|
|
|
Term
How does an application come to know that another exists or is still running? |
|
Definition
|
|
Term
What are some challenges in distributed systems? |
|
Definition
- Heterogeneity
- Openness
- Security
- Scalability
- Failure handling
- Concurrency
- Transparency
|
|
|
Term
What are some characteristics of Heterogenity issues in Distributed Systems? |
|
Definition
- Difference in networks, hardware, operating systems, programming languages, implementations, etc
- Internet protocols mask difference in networks
- Middleware provides progarmming abstraction and masks other differences
|
|
|
Term
What are some characteristics of Openness issues in Distributed Systems? |
|
Definition
- Degree to which new resource-sharing components can be integrated
- Needs component interfaces to be published
- Needs uniform comunication mechanism
|
|
|
Term
What are some characteristics of Security issues in Distributed Systems? |
|
Definition
- Need to ensure confidentiality, integrity and availability of information
- Denial of service attacks
- Security of mobile code
|
|
|
Term
What are some characteristics of Sacalability issues in Distributed Systems? |
|
Definition
- System must remain effective when number of users and resources increases significantly
- QUantity of resources needed should be O(Number of users)
- Algorithm performance should scale well with number of users and resources
- Distributed algorithms should be decentralised to avoid performance bottleneck
|
|
|
Term
What are some characteristics of Failure Handling issues in Distributed Systems? |
|
Definition
- Partial failures make handling failures difficult
- Need technique for detecting failures
- Need technique for masking failures
- Need technique for recovering from failures
|
|
|
Term
What are some characteristics of Concurrency issues in Distributed Systems? |
|
Definition
Must provide concurrent access to shared resources, while maintaining data consistency
(Needs synchronised accesss to obects representing shared resources) |
|
|
Term
What are some characteristics of Transparency issues in Distributed Systems? |
|
Definition
- Separation of components must be hidden from application programmers
- Access: Local and remote resources accessed using identical operations
- Location: Resources accessed without knowledge of physical location
- Concurrency: No interface between concurrent processes
- Replication: Duplication of resources should not be visible
- Failure: Allow tasks to be completed in spite of failures of components
- Mobility: Resources can be moved without affecting operation
- Performance: Support system reconfiguration to improve performance
- Scaling: allow system to expand without changing structure or algorithms
|
|
|
Term
What are some key aspects of architectural models of Distributed Systems? |
|
Definition
- Communicating entities
- Communication paradigm
- Roles of specific entities
- How are entities mapped onto the physical distributed infrastructure
|
|
|
Term
What are the communicating entities in Architectural Models? |
|
Definition
- Usually processes/threads (if supported by OS)
- Distributed objects (accessed via interfaces)
- Distributed Components
- Web services
|
|
|
Term
What are some types of inter-process communication? |
|
Definition
- Low level communication
- Message passing, primitives, socket, multicast
- Remote invocation
- Indirect communication
- Decoupling between senders and receviers, both in time and space
- Includes one-to-many communication (group communication, publish-subscribe systems) and message queues (point-to-point)
|
|
|
Term
What are some characteristics of Client-server architecture? |
|
Definition
- Most widely used
- Clients interact with servers managing resources
- Servers can also be clients
- Poor scalability
|
|
|
Term
What are some characteristics of Peer-to-Peer architecture? |
|
Definition
- Addresses the need to distribute shared resources among a large number of processes, in order to share computing and communication loads
- All processes play similar roles, no distinction between clients and servers
- Service provided jointly by the peers
- Communication pattern depends on application
- Data is shared between peers (for load distribution) and replicated (for resilence)
|
|
|
Term
What are some characteristics of a multiple server variation architecture? |
|
Definition
- Several servers implement a service
- Increases performance/resilence
- Either distribute service among servers or use replicated copies
|
|
|
Term
What are some characteristics of a Proxy servers and caches variation architecture? |
|
Definition
- Cache used to store recently used data objects
- Web proxy servers increase availability and performance by providing a shared cache for client machines at site
|
|
|
Term
What are some characteristics of a Mobile Code variation architecture? |
|
Definition
- Increased performance as code is run locally (but also potential security threat.
E.g.
- A client requests results in the downloading of applet code
- Client interacts with applet instead of web server
|
|
|
Term
Show the software and hardware service layers |
|
Definition
|
|
Term
What are some categories of middleware? |
|
Definition
- Distributed Objects (Java RMI, COBRA)
- Message queues (GMS, Websphere MQ)
- Publish-subscribe systems (JMS, COBRA event service)
- Web services
- Peer-to-peer
|
|
|
Term
Why do we have an interaction model for Distributed Systems? |
|
Definition
- Computation occurs within processes
- Processes interact by message passing, resulting in communication and coordination
- Need distributed algorithms (process steps include transmission of messages)
- Absence of global clock and delays in communication affect accuracy of coordination
- Useful to make explicit assumptions regarding timing, in order to evaluate specific algorithms
|
|
|
Term
What are some characteristics of the Failure Model for DS |
|
Definition
- Describes Failures that can be Exhibited by process and communication channels
- Possible to construct reliable services from unreliable components, based on knowledge of the failure characteristics of process and channels
- Defines reliable communication
- Defines correct processes
|
|
|
Term
What are some types of failures in DSs? |
|
Definition
- Omission failures - Process/Channel fails to perform intended actions
- Timing Failures: In synchronous systems
- Arbitrary (Byzantine) failures: Wrong process/channel behaviour
|
|
|
Term
What are omission failures, and when do they come up? |
|
Definition
- Process/channel fails to perform intended actions
- e.g. process crashes, use timeouts to detect
- Communication omission failures: dropping messages due to lack of buffer space or network transmission errors, use message sequence numbers to detect
|
|
|
Term
What are timing failures, and when do they come up? |
|
Definition
- In synchronous systems
- Time limits set on process excecution time and message delivery time
|
|
|
Term
What are Arbitrary failures, and when do they come up? |
|
Definition
- (Byzantine) failures - wrong process/channel behaviour
- e.g. process steps are ommitted/additional steps taken/combination
- difficult to detect
- Arbitrary communication failures: corrupted messages/delivery of non-existing messages/duplicate messages
- Solutions include checksums/message sequence numbers to detect
|
|
|
Term
What are some examples of masking failures? |
|
Definition
- Hiding communication ommission failures through protocol that retransmits lost messages
- Hiding process crashes by replacing a crashed process and restoring its memory
- Use checksums to convert arbitrary communication failure (corrupted message) to omission
|
|
|
Term
What are some ways of masking failures? |
|
Definition
- Hiding failures
- Converting to a more acceptable type of failure
|
|
|
Term
What are some principles of reliable communication? |
|
Definition
- Every message is eventually delivered
- Received message is identical to the one sent
- No message delivered twice
|
|
|