DOC PREVIEW
UMD CMSC 433 - Distributed Computing

This preview shows page 1-2-3-23-24-25-26-47-48-49 out of 49 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 49 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CMSC 433Distributed ComputingNovember 15th, 2007Distributed application•application that executes a collection of protocols to coordinate the actions of multiple processes on a network, such that all components cooperate together to perform a single or small set of related tasks.Advantages•lots of advantages including the ability to connect remote users with remote resources in an open and scalable way. •When we say open, we mean each component is continually open to interaction with other components. •When we say scalable, we mean the system can easily be altered to accommodate changes in the number of users, resources and computing entities.Challenges•Probably the most difficult challenge is a distributed system must be able to continue operating correctly even when components fail•When you design distributed systems, you have to say, "Failure happens all the time." So when you design, you design for failure. It is your number one concern.Partial Failure•If I send a message to you and then a network failure occurs, there are two possible outcomes. •One is that the message got to you, and then the network broke, and I just didn't get the response. •The other is the message never got to you because the network broke before it arrived.•So if I never receive a response, how do I know which of those two results happened? I cannot determine that without eventually finding you. The network has to be repaired or you have to come up, because maybe what happened was not a network failure but you died.Reliable Distributed Systems•Fault-Tolerant•Highly Available•Recoverable•Consistent•Scalable•Predictable Performance•SecureFailure Modes•Halting failures•Fail-stop•Omission failures•Network failures•Network partition failure•Timing failures•Byzantine failures8 fallacies1. The network is reliable.2. Latency is zero.3. Bandwidth is infinite.4. The network is secure.5. Topology doesn't change.6. There is one administrator.7. Transport cost is zero.8. The network is homogeneous. !!Network layers•Application layer: HTTP, SMTP, IM, FTP, NTP•Transport layer: TCP, UDP, Multicast•Network layer: IP (Internet protocol)•Link layer: Physical transmission (e.g., Ethernet)UDP vs. TCP vs. Multicast•UDP: think of it as a unreliable postcard•sends a single packet, no notification if it gets lost•TCP: sets up a reliable, two way communication•Multicast: A broadcast of packets•generally UDP style packets•Generally over local networks•Wider more general uses not widely deployedSMTP-bash-3.00$ telnet localhost 25Trying 127.0.0.1...Connected to localhost.cs.umd.edu (127.0.0.1).Escape character is '^]'.220 weevil.cs.umd.edu ESMTP We are all Kosh.HELO whitehouse.gov250 weevil.cs.umd.edu Hello localhost [127.0.0.1], pleased to meet youMAIL FROM: <[email protected]>250 2.1.0 <[email protected]>... Sender okRCPT TO: <[email protected]>250 2.1.5 <[email protected]>... Recipient okDATA354 Enter mail, end with "." on a line by itselfSubject: Keep up the good workFrom: [email protected]: [email protected] job Bill, keep up the good work.W. .250 2.0.0 lAF1iaqa018678 Message accepted for deliveryQUIT221 2.0.0 weevil.cs.umd.edu closing connectionConnection closed by foreign host.Sending binary dataStreams• You should all know InputStream, OutputStream, Reader, Writer• DataOutputStream adds writeInt, writeLong, writeDouble, writeUTF• DataInputStream provides matching read methodsObject Streams• ObjectOutputStream and ObjectInputStream allow objects to be sent– any serializable object• Any object that implements Serializable can be serialized– if all of its fields are serializableObject graphs• Writing to an object output stream writes a graph of objects– writing a map sends all the elements– writing one node of a graph sends all connected nodes• Reconstructed into an isomorphic graphpotential problems• You write a class that received doesn’t have– error• You write a different version of a class than the receiver has– maybe OKRemote Procedure Calls•A client can directly “invoke” a method that is executed on a different machine or process•Various protocols hide/abstract the issues involved with communicating the argument and results•Various incarnations, dating back to at least 1976from Wikipedia•Remote procedure call (RPC) is a technology that allows a computer program to cause a subroutine or procedure to execute in another address space (commonly on another computer on a shared network) without the programmer explicitly coding the details for this remote interaction. That is, the programmer would write essentially the same code whether the subroutine is local to the executing program, or remote. When the software in question is written using object-oriented principles, RPC may be referred to as remote invocation or remote method invocation.RPC Failures•An important difference between remote procedure calls and local calls is that remote calls can fail because of unpredictable network problems. Also, callers generally must deal with such failures without knowing whether the remote procedure was actually invoked.Java Remote Method Invocation• Provides remote proxies for objects– invoke method on local proxy/stub– method is invoked over the network, using object serialization– wait for response– response is also sent back via object serializationRemote Objects and proxies•Some objects are Remote objects•can be referenced remotely•Other JVM’s that might reference the remote object have proxies for the remote object•Implement the interfaces that are defined as being accessible remotely•not all methods of a remote object might be available remotelyObject marshaling•RMI uses an extension of Object serialization•Uses Object marshaling to send arguments to method call, and receive return value (or thrown exception)•If Serializable/Externalizable object seen, send binary form of object•wrap it with a code base where the code can be downloaded from•If Remote object is passed, send proxy for the objectBootstrapping RMI•You can use a Naming registry to bind a name to a remote object•A naming registry listens to a particular port on a particular IP address•Other JVM’s can perform lookups•give an IP address, a port, and a name•get back a remote proxyremote code base• RMI provides an extension to object serialization• allows you to provide a URL from which your classes


View Full Document

UMD CMSC 433 - Distributed Computing

Documents in this Course
Trace 1

Trace 1

62 pages

Reflection

Reflection

137 pages

Testing

Testing

25 pages

Paradigms

Paradigms

10 pages

Testing

Testing

17 pages

Java RMI

Java RMI

17 pages

Java RMI

Java RMI

17 pages

Java RMI

Java RMI

17 pages

Trace 1

Trace 1

46 pages

Jini

Jini

4 pages

Final

Final

15 pages

Java RMI

Java RMI

13 pages

Testing

Testing

16 pages

Load more
Download Distributed Computing
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Distributed Computing and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Distributed Computing 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?