Mid-term study Flashcards

1
Q

What are the components of network communication at it’s most basic?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the two message based communication systems?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How do the two forms of message based communication systems compare?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

How does network performance affect communication performance?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How does network size impact communications?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

In general, what are resrouces?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is DNS and what is the order and information the following provices:

hawk.cs.umanitoba.ca

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

In general, what is resource discovery?

A

Resourch Discovery: How does your program know what computer to connect to and what services/process are available to it?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are 3 standard recourse discovery approaches?

A
  1. Know where the resource you are looking for is located
  2. Ask the server where the resource is located
    1. AKA directory-based lookup service
    2. A service that helps you find other services,
    3. But how do we find the directory of services?
  3. Ask “the network” where a resource is
    1. use multicast to send a message to a group of machines
    2. Broadcast to all machines
    3. Machines that are designed to respond will
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the factors to consider for resource discovery protocols?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are Extended failure modes?

A

Extended failure modes is the idea that we have new ways in which things can now go wrong with a distributed network, so we need to build our program from the ground up with failure modes in mind as it is VERY difficult to change later

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the new “failure modes” that are introduced with distributed computing?

A
  1. Concurrency - having multiple process/cores running at the same time
  2. Communication - now we are dependant on a communication system

And combinations of the above

  • failure at the server
    • The connection is fine, but you can’t get any messages back
  • failure of servers connection to network
    • The server is fine, but as above, you can’t get any messages back
  • the communication / messages recieved are garbled
  • messaging is delayed or mis-ordered

We must be able to detect and deal with failures

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are some techniques for detecting failures?

A
  1. Timeouts
    • Set a timer, if nothing happens we know something whent wrong (but what)
  2. Redudancy
    • Have multiple machines complete the work and campare the results
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are techniques for recovering from communication failure?

A
  1. retransmission
    • If we hit a timeout, request the information be resent
  2. if a server process fails, set it up so a new server is selected
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Define scalability

A

The ability for a system to grow in size without making changes to the system design

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the new scalability concern when dealing with distributed networks?

A

Dealing with inter-machine communication

17
Q

How could we deal with the following problem:

18
Q

As networks grow, they become slower and less reliable, how is this commonly/generally solved?

A

Algorithmic design is used to minimize communication.

More communication is usually not the answer, because in network terms, latency matters and makes distributed systems seem slow

19
Q

How does user base size affect scalability of distributed sytems?

A

They can put extreme load on the system, whch will impact performance

20
Q

Procide a concise definintion of a distributed system

A

A distributed (software) system is a program that conisists of multiple parts running on more than one computer interconnected via a network.

21
Q

What is a mutex? How is it used to guard access to shared data and thereby
synchronize the threads accessing it?

22
Q
  • What is the primary difference between a process and a thread?
23
Q

What is RMI? Why is an RMIregistry required in Java?

A

A more modern version of RPC (remote procedure call)

Serialization is done transparently through deep copy

In order to do RMI, you must first get a reference to the remote object.

You get this reference from a method parameter or a lookup service (RMIregistry)

24
Q

Scripting languages are good for implementing “glue logic”. Briefly explain
why this makes them useful in developing distributed applications.
- Give three examples of scripting language features that make them useful
in creating distributed systems.

A

Scripting languages features:

  • Interpreted - easy to use and distribute
  • Weakly Typed - Manipulate arbitrary collections
  • Powerful - pattern matching
  • Offer easy access to OS provided info

Useful in dsitributed systems for:

  • Component integration (glue logic)
  • Rapid prototyping
  • Portability (no nee dfor executables for different platforms)
  • Associative arrays
  • Pattern matching and manipulation
25
What three factors should you consider when deciding how to distribute application functionality between the server and the group of clients
1. Location of the resources being accessed 2. Communication Costs 3. Workload balance/distribution
26
Using a collection of simple diagrams, differentiate between the organizational structure of centralized, single-tier, two-tier, and 3-tier Client/Server designs
27
- What is JDBC? Why is it relevant to distributed systems development?
Each database vendor provides a "ODBC driver" which allows connections to be made to their database using the standard capabilities defined in ODBC. JDBC (Java Data Base Connectivity) provivides the same abilities as ODBC but is java specific ODBC = Open Database Connection A standard application programming interface (API) for accessing database management systems