Study Guides (248,215)
Canada (121,406)
CS 454 (3)
Final

CS 454 Exam Review Notes.pdf

15 Pages
882 Views
Likes
Unlock Document

Department
Computer Science
Course
CS 454
Professor
Jochen Konemann
Semester
Winter

Description
Highlights - Overview o Why Distributed ▪ Economics ▪ Speed ▪ Inherent Distribution ▪ Reliability ▪ Incremental Growth o Primary Features ▪ Multiple computers ▪ Communication ▪ “Virtual” Computer o Transparency ▪ Access ▪ Location ▪ Concurrency ▪ Replication ▪ Failure ▪ Mobility ▪ Performance ▪ Scaling o Layers ▪ Applications ▪ Middleware ▪ Platform – OS, Network hardware o Challenges ▪ Heterogeneity ▪ Openness ▪ Scalability • Scale-up, speed-up • Impediments – Centralized: data, services, algorithms ▪ Failure handling • Partial failures, failure detection, failure masking, failure tolerance, recovery – replication ▪ Concurrency ▪ Transparency - Architectures & Models o Models ▪ Component based, Function based o Layers ▪ Applications ▪ Middleware • Adapter pattern • Message Passing • RPC • RMI ▪ Platform – OS, Network hardware o Hardware ▪ Shared, Private memory ▪ Bus-based, switch based o Software ▪ DOS, NOS, Middleware o Architectures ▪ Client-Server • Multiple-client/single-server o Advantages (7) 1-10 o Request/Reply o Main server loop ▪ Receive ▪ Execute ▪ Reply o Problems (3) 1-16 • Multiple-client/multiple-server o Horizontal/vertical scaling • Mobile clients o Easy connection, easy integration o Discovery service – registration, look-up • Thin clients ▪ Multi tier system • Web-proxy • Two tiered, three tiered ▪ Peer-to-peer system o Client/Server Middleware ▪ RPC • Function call semantics ▪ OMA (CORBA) • Components o Object Request Broker o Object Service o Common Facilities o Application Objects • Features (8) 1-32 • ORB Functions (7) 1-34 • Invocation o Static o Dynamic o DS Design Requirements ▪ Performance • Metrics, load balancing, scalability, caching & replication • Metrics o Response time, throughput, system utilization, network capacity consumed • Scalability o Vertical, Horizontal • Guidelines o Distribution provides opportunities for parallelism o Not just scale, but scale well o Avoid bottlenecks (centralized anything) o Difference between bandwidth and latency o Use caching and data replication ▪ Quality of Service • Functional • Non-functional o Performance o Reliability o Availability ▪ Dependability • Reliability o Redundancy – masking (hardware, software) • Fault tolerance ▪ Security • Privacy, authentication, availability, integrity - Networks o Protocol ▪ Internet Protocol Stack • Application • Transport • Network • Data Link • Physical ▪ API ▪ Transport Services • Data loss • Bandwidth • Timing ▪ TCP, UDP ▪ Circuit Switching ▪ Packet Switching • Resource contention • Store and forward • Excessive congestion • Delays o Nodal processing o Queuing o Transmission delay o Propagation delay - Distributed Invocation o Essentials ▪ Ability to communicate ▪ Ability to “talk” meaningfully - Interfaces o RPC ▪ Service interface ▪ Procedure call semantics (10 steps) 3-8 ▪ Parameter passing • Pass-by-value • Pass-by-reference (difficult in distributed) • Pass-by-copy/restore ▪ Data representation (chars, ints) • Function signature => Message format • Canonical form • Native format, converted at receiver ▪ Failures • Cannot locate server • Request message lost • Reply message lost o Idempotent requests • Server crashes (after receiving request) o At-least-once o At-most-once • Client crashes (after sending request) o Extermination o Reincarnation o Gentle reincarnation o Expiration ▪ Synchronous/Asynchronous – deferred synchronous ▪ Client/Server Stub – IDL Compiler ▪ Static vs. Dynamic Binding • Binder – register, deregister • Handle • Flexibility, Multi-server-version, verify versions • Extra overhead, bottleneck o RMI ▪ Remote interface ▪ Client-server model, request/reply model ▪ Remote Object – receives invocation ▪ Remote Object Reference – used to send invocation • Format includes (ip, port, time, object number, interface) ▪ Invocation semantics (5 steps) 3-31 • No retransmit => maybe • Retransmit => At-least-once o Re-execution o Idempotent operations • Duplicate filtering => At-most-once o Retransmit reply o NOT exactly once ▪ Implementation • Communication Module o Request/Reply o Obtains local reference from remote reference module, passes to dispatcher • Remote Reference Module o Translation between local and remote object references – remote object table • Proxies (client) • Dispatcher (server) o Use methodID to select method in skeleton • Skeleton (server) o Unmarshall, Invoke, Marshall reply • Stub & Skeleton Generation o IDL Definition -> Precompiler => Skeletons o Compiler – Interface Repository, Client Stubs, Server Skeletons, Object Implementation, Implementation Repository => Client, Server • More Components o Factory methods o Binders o Server Threads ▪ Parameter Passing • Remote objects – pass by reference • Local objects – pass by value o Message-Based ▪ Send, receive ▪ Blocking or non-blocking, reliable or unreliable? ▪ Synchronous/Asynchronous ▪ Transient/Persistent ▪ Persistent asynchronous • Drifts in limbo, always arrives ▪ Persistent synchronous • Acknowledgement, always arrives ▪ Transient asynchronous • Receiver must be running ▪ Receipt-based transient synchronous • Receiver running, sends acknowledgement, but doesn’t immediately process request ▪ Delivery-based transient communication • Receiver running, sends acknowledgement when it starts processing ▪ Response-based transient communication • Receiver running, sends acknowledgement when it finishes processing ▪ Transient Messaging – Sockets • Socket, Bind, Listen, Accept, Connect, Send, Receive, Close • Protocol 3-50 ▪ Persistent Messaging • Message-queuing • Put, get, poll, notify • Send queue, receive queue • Routers/relays – like routers (but application processes, not hardware) • Overlay network • Message broker o Translates messages for receiver - Naming o Names ▪ Identification of objects ▪ Pure names, non-pure names o Name Services – name => attributes o Directory Services – lookup queries o Name Service Requirements ▪ Unique global naming ▪ Scalability ▪ Consistency ▪ Performance and availability ▪ Adaptability to change ▪ Fault isolation • Replication, caching o Name spaces ▪ Grammar, internal structure (hierarchy), potentially infinite, aliases, naming domain o Naming graph ▪ Leaf – attributes ▪ Directory – table o Name Space Distribution ▪ Global Layer ▪ Administrational layer ▪ Managerial layer ▪ Compared by • Geographical scale • Number of nodes • Responsiveness to lookups • Update propagation • Number of replicas • Client-side caching o Issues ▪ Partitioning ▪ Replication ▪ Caching o Name resolution ▪ Translate to primitives, iterative, abort on cyclic alias o Navigation ▪ Iterative ▪ Non-recursive server-controller ▪ Recursive, server controller • Caching ▪ Recursive is good when going “across the pond” – localizes communication o Name & Directory Services ▪ DNS, GNS, X. 500, LDAP, Jini ▪ Domain Name System (DNS) • Name-to-IP mapping • Distributed database • Application-layer protocol • DNS Types o Local name servers o Authoritative name server ▪ May support recursive, always supports iterative navigation o Intermediate name server o Root name server ▪ Use iterative navigation • DNS Records o A – hostname, IP o NS – domain, hostname of authoritative server o CNAME – alias, canonical name o MX – mail server, hostname o Contains ▪ ID, Flags, # of rows of each: Questions, Answers, Authoritative, Additional ▪ X. 500 Directory Service • Each node is both a directory and has a set of attributes • Read o Absolute or relative name o Returns attributes • Search o Input - base name, filter expression o Return – list of nodes • LDAP – Lightweight version of X. 500 o TCP/IP, simpler API ▪ Discovery Services – JINI • Query for available services • Lookup service • Registration • Protocol (4 steps) 4-33 o Multicast to find lookup service o Lookup service responds o Request o Use ▪ CORBA • Direct binding • Indirect binding o Object started by implementation repository • Naming graph o Each ORB has initial naming context o Federation - create links between ORBs - File Systems o Requirements ▪ Transparency • Access, Location, Mobility, Performance, Scaling ▪ Concurrent access ▪ File replication ▪ Hardware and OS heterogeneity ▪ Security • Access control, user authentication ▪ Fault tolerance • At-most-once semantics (for file operations) • At-least-once semantics (if idempotent file operations) • Replication (stateless) ▪ Consistency • One-copy update semantics ▪ Efficiency • Latency of file access, Scalability o Architecture
More Less

Related notes for CS 454

Log In


OR

Join OneClass

Access over 10 million pages of study
documents for 1.3 million courses.

Sign up

Join to view


OR

By registering, I agree to the Terms and Privacy Policies
Already have an account?
Just a few more details

So we can recommend you notes for your school.

Reset Password

Please enter below the email address you registered with and we will send you a link to reset your password.

Add your courses

Get notes from the top students in your class.


Submit