Flashcards
211
Cards in this deck (200)
- 1What is a DS?A collection of independent systems that appear to its user as a single coherent system
- 2How do DS work?by passing messages to each other
- 3Advantages to DS?Increase performance
Increase reliability - 4What is the Byzantine generals problem?A problem related to the challenges in DS
related to trusted and reliable communications between servers - 5Solution to the Byzantine generals problem?No solution
(Bitcoin uses nonces and hashes to solve)
Compromise on what you think is good enough
e.g. 1 ACK or 10 ACK's - 6What is heterogeneity?The quality or state of being diverse in character or content
- 7Key challenge from heterogeneity?Rises when working with elements that are different and managed independently
- 8What is middleware?A set of programming abstractions to hide the complexity of heterogeneity
- 9What is interoperability?Allows separate parts of the system to communicate
- 10What is asynchronous?Not existing or occurring at the same time
if you perform a asynchronous operation, you dont need to wait until its finished to proceed - 11examples of DS?Financial trading
Web search
Masive multiplayer games - 12DS characteristics?Concurrency of components
Lack of global clock
Independent failures of components - 13Key challenges in DS?Heterogeneity of components
Openness (adding or replacing components)
Security
Scalability
Failure handling - graceful degradation
Concurrency of components
Transparency
Providing quality of service - 14what is invoking an operation?when the client requests an operation to be carried out - invoking an operation upon the server
- 15what is remote invocation?from the point where the client invokes to when the client recieves the servers response - remote invocation
- 16what does it mean by servers are passive?only waking up when they receive a request
- 17How does the byzantines generals problem related to DS?A reliable computer system must be able to cope with the failure of one or more its components
- a traitor = a failed component - 18what is homogenous?of the same kind
- 19why is middleware needed?to abstract over heterogeneity and the complexities of DS
e.g. fallacies - 20middleware provides support to?Resource sharing
- ability to access and share resources in a DS environment
Transparency
- ability to view a DS as a single computer
Openness
- offering of services according to standard rules
Extensibility
- introduce new or modified functionality
Scalability
- in respect to size, i.e. users
- in respecet to geography
- in respecto admin
Dependability / QoS
- security
- fault tolerance - 21what does RPC stand for?Remote Procedure Call
- 22what is RPC?Supports the calling of the procedure in a separate address space
- function doesnt need to be local to the machine
- it can be binded to a name server, e.g. RMI registry - 23what is a proxy? (client side)acts as a local version of the remote interface
it redirects procedure calls to the client stubs - 24what is a client stub? (client side)a client stub carries out marshalling of a call into a request message sent to remote end
also unsmarshals replies
one stub per interface procedure - 25what is a dispatcher? (server side)receive incoming messages and redircet them to an appropriate server stub
- 26what is a server stub (skelenton)? (server side)un-marshals message and then invokes operation
also marshals reply values and initiates transmission back to the client - 27What kind of guarantee does local procedure calls offer?exactly once
- 28'maybe' gaurentee?send request to server; which sends reply back
no real guarantees if anthing goes wrong - 29at least once?sends a message and if reply not received after a given time, the message is re-sent (failure assumed after n re-sends)
ensures the calls is made 'at least once' - 30at most once?each request has a request number, and each reply has the corresponding reply number - this number is stored, and if same request comes in again, the same reply is sent back
(detects duplicates) - 31exactly once?builds on at most once
RPC will be carried out once (completely or not at all) - 32what is Java RMI?allows one Java object to call methods on another java object in a different JVM
Interface based (remote interfaces) - 33how does the RMI registry work?RMI registry is a naming service
Server programs register remote objects
Client programs look up object references that match the service name
rmi://:/ - 34A Java RMI is composed of what parts?1. An interface definition of the remote services
2. The implementations of the remote services
3. A server to host the remote services
4. An RMI Naming service
5. A client program that uses the remote services - 35in Java RMI context, what is a stub?a stub is sent by the RMI runtime
- 36what is sandboxing?protecting against malicious mobile code
- 37method for secure communication?encryption
- 38method for access control?authentication
- 39what is challenge response protocol?identify a user without exchanging the secret key (symmetric enc here)
here X is the challenge
(challenge wont be reused) - 40how are asymetric keys used?used as a signature
sender signs message with private key
receiver verifies using senders public key - 41what is mobile code?if a sever doesnt have the implementation to complete a request, it can be directly downloaded form an ad-hoc location, e.g. webserver
- 42disadvantage to mobile code?big security threat
- malicious mobile code can compromise the server of the client
Java disallows mobile code unless sandboxing is activated - 43what is sandboxing?distinguishes between trusted and untrusted code
limits what untrusted code can do - 44sandboxing is based on three componentsThe class loaders
The byte-code verifier
The security manager - 45what is the class loader?loads classes, either locally or non-locally(specialised loaders)
tag classes according to where they come from
provide a "birth certificate"
e.g where from and signed by whom? - 46what is the byte-code verifier?checks the byte-code obtained by class loader before it is allowed to execute
e.g. byte-code format, valid instruction etc
no stack overflow...
(potentially dangerous) - 47what is the security manager?real enforcer of sandboxing
if a security manager is not set, no mobile code allowed
protects potentially dangerous operations inside the JVM
e.g. file i/o, network access, new class loaders etc
decision can be based from info from the class loader, e.g. birth certificate - 48JVM provides two security managers?SecurityManager - default
RMISecurityManager - specialised variant optimise for RMI - 49what is the policy file?describes what is to be enforced by the security manager
organised into a sequence of grant statements
e.g.
grant codeBase {
permission <>;
} - 50security mechanisms?encryption
digital signatures
authentication
authorisation
auditing - 51security vulnerabilities in DS?Eavesdropping
Masquerading
Tampering
Replaying
Repudiation - 52disadvantages of secret key systems (symmetric)key exchange
- how can you securely communicate a key before having a secure communication channel
Scalability
- a unique key is needed for every distinct communication channel
Key length
- must be adjusted according to message size & never reused - 53a flaw in the secret key protocol create was attack?Reflection attack
- 54what is a reflection attack?tricking the server into providing a answer to its own challenge, then feeding this answer back to the server to authenticate
- 55digital signatures (using public keys) are needed to ensure what?Origin: only this sender can sign the message
Integrity: Signature cannot be copied from or to another message
Non-repudiation: sender cannot credibly deny signature - 56what is a hash function?publicly known mathematical function that converts a message into a long number
- 57process of signing a message?1. Hash message
2. Encrypt(Kprivate, hash) = signed doc - 58process of veryifying?1. decrypt(Kpub, h) = h'
2. hash message = h
3. h = h' ? - 59aspects of security managementKey management
Authorisation management
Auditing - 60what is meant by key management?key establishment (generation)
key distribution
key revocation - 61what is meant by authorisation management?granting access rights
delegating access rights - 62what is meant by Auditing?event management
prevention
mitigation
evidence - 63what does PKI stand for?Public Key Infrastructure
- 64what is the PKI?A PKI is a set of roles, policies and procedures needed to create, manage, distribute, use, store and revoke digital certificates and manage public-key encryption
- 65PKI role in cryptography?an arrangement that binds public keys with respective identities of entities
binding is established through certificates by a CA - 66What does CA stand for?certificate authority
- 67what is a CA?issues certificates for public keys
- 68what is RA?Registration Authority
issues certificate requests - 69what is the client server model?simple server and simple client
client invokes methods of server by sending messages
centralised architecture - 70wdue to complexity of DS, it is common to partition services vertically into service layers
lower layers provide services to higher layers - 71advantages to layering?abstraction
re-usability
loose coupling - 72what is tiering?Tiering complements layering by considering the logical organisation within a layer and the mapping to servers
- physical separation of components - 73distributed applications commonly feature which three layers?The user-interface (presentation layer) tier
The processing tier (business logic)
The data tier
- managing the persistent state of the application
e.g. database - 74what is 2 tier architecture?a software architecture defining the separating of layers
- 75what is 3 tiered architecture?same levels mapped on to three machines
- 76advantages to tiering?availability
flexibility
easy management
scalability (based on tiers) - 77what is replication?any given service may also be mapped to multiple servers
- 78advantages to replication?increased performance
increase availability
increase scalability - 79disadvantages?hard to maintain consistency amongst replicas
- 80a solution to large latencies in DS?threads baby
a given thread blocks on an invocation
other threads can proceed with computation or indeed other communication activity - 81how do server use threads?the server assigns threads to incoming invocations
- 82what are stateless servers?do not keep per client state and can change their own state without informing the client
e.g. webservers - 83advantages to stateless servers?simplifies recovery after crashes / load balancing
improved scalability
with regards to number of clients - 84what are stateful servers?maintain state on each of their clients
e.g. fileservers are often stateful - 85advnatages to stateful servers?can lead to performance optimisation
- 86disadvantages to stateful servers?makes crash recovery more complex
- 87what is indirect communication?Communication between entities in a DS through an intermediary with no direct coupling between sender and receiver(s)
- 88what is the intermediary?Groups
Event-based abstractions (e.g. publish subscribe)
Message queries
Shared memory abstractions - 89what is space uncoupling?the sender does not need to know or need to know the identity of the receiver(s) and vice versa
- 90advantages to space uncoupling?the system developer has many degrees of freedom in dealing with change:
participants can be placed, updated, replicated or migrated - 91what is time uncoupling?the sender and receiver(s) can have independent lifetimes
i.e. the sender and receiver(s) do not need to exist at the same time to communicate - 92where is time uncpoupling important?in volatile environments where senders and receivers may come and go
- 93what is group communication?messages sent to a group rather than to any individual process - messages are are then delivered to each member of the group
(group membership) - 94advantages to group comm?important in supporting fault-tolerance
e.g. supporting replication
i.e. each replica is a member of the group - now can just communicate with group
Dissemination of events
e.g. in financial systems - 95what is publish subscribe systems?a key example of distributed event-based system
- 96events in a publish subscribe system?Publishers can publish an event e - publish(e)
Subscribers can subscribe to a set of events specified by a filter f - subscribe(f)
events are delivered asynchronously - notify(e)
publishers optionally advertise what they will produce - advertise(f) - 97what is the channel based subscription model?publishers publish events to named channels and subscribers then subscribe to one of these names channels and therefore receive all events sent to that channel
- 98what is topic based subscription model?each notification is expressed in terms of a number of fields with one field denoting the topic and subscriptions defined in terms of this topic of interest
- 99what are content based subscription model?generalising of topic based allowing the expression of subscribers over a range of fields in an event notification
- 100what is type based subscription model?intrinsically linked with object-based approaches
subscriptions are defined in terms of this type (signature/ methods/ attributed), with matching defined in terms of types or sub-types of the given filter - 101what are rendezvous nodes in PubSub systems?consider all possible events as an event space
partition this event space into pieces and allocate responsibility for each piece to a given broker (known as the rendezvous node for that event) - 102the two functions that need to be defined for the rendezvous node?SN(s) - takes a given subscription, and returns one or more rendezvous nodes which take responsibility for that subscription
EN(e) - takes a given event e, and returns one or more rendezvous nodes responsible for matching e against subscriptions in the system - 103advantages to rendezvous nodes?lead to highly scalable implementations
- 104what is a message queue?an alternative paradigm for indirect communication based on distributed queues
messages are sent to a queue
processes can then access messages in the queue either by receiving a message (blocking), polling for messages (non-blocking) or being notified when messages arrive - 105messages queues uses in distributed systems?Enterprise Application Integration (EAI)
i.e. integration between applications in a given enterprise utilising the loose coupling - 106what is distributed shared memory?provides abstraction of shared memory in a DS
if data is not available locally, it must be fetched
hides distribution entirely from programmar - 107advantages to distributed memory?scalable
increase performance
hides distribution entirely from programmer
i.e. no new languages to learn = portable - 108disadvantages to distributed shared memory?costly to implement
- maintaining consistency of shared data
(through atomicity(composed of indivisible units))
- preventing race conditions - 109what is a tuple space?another paradigm for indirect-communication offering an abstraction of a semi-structured shared space consisting of a number of tuples
- 110what happens in a tuple space?processes write tuples to the tuple space
processes can read a tuple space, which also leaves a copy in the tuple space
they can take the tuple, removing it from the space
both read and take operations are based on pattern matching (associative access) - 111what is JMS?Java Message Service
an API
a set of interfaces and semantics define how a JMS client access the facilities of enterprise messaging product - 112what is filtering in implementing a content-based PubSub system?Filters are propagated back through the broker network with the intuition that notifications are only forwarded through the broker network if there is a path to a valid subscriber
- 113what are advertisements in implementing a content-based PubSub system?In the filtering scheme, filters need to be sent to all possible publishers
Overhead can be reduced by use of advertisments - 114what is MOM?Message Oriented Middleware
- 115what kind of coupling do Messages and RPC offer?RPC are tightly coupled
(synchronous messages)
Messages provide loose coupling - 116what are synchronous messages?The method invoker waits for the method to finish execution
- 117how does JMS work?the message producer just sends the message to the JMS server
JMS server stored the messages on behalf of the consumer - 118Communication modes in JMS?Message queueing (1-to-1 communication)
Publish Susbcribe (1-to-many) - 119Two main modes of JMS message consumption of the receiver?Blocking (synchronous, aka pull mode) with MessageConsumer.receive()
Non-blocking (asynchronous, aka push mode) with MessageListener.onMessage() - 120what kind of subscription model is PubSub?Topic based
messages are published relative to a topic object on the server
they are received by all message consumers (clients) that have subscribed to the topic - 121the process if setting up a JMS client?Create a connection
Set up one or more sessions
And a number of MessageProducers and MessageConsumers - 122In JMS, queue objects and topic objects are retreived from where?The Naming Service
what is retreived is a reference to the topic of queue - 123In JMS, why a topic and queue objects needed?To create Message Consumer and Message Producer from a session object
e.g.
MessageConsumer c = session.createConsumer(myQueue)
MessageProducer p = session.createProducer(myTopic) - 124In JMS, what are the Message Producer and Message Consumer?They provide methods to send and receive messages either to/from a queue or about a topic
Message production by Producer
- send(Message m)
Message reception by Consumer
- synchronous and asynchronous - 125Explain the reliability of JMS?By default messages are sent in PERSISTENT mode
JMS server takes extra care to prevent message loss
In particular messages sent in this mode are logged to stable storage when sent
can turn off to gain performance - 126Explain Message Expiration in JMS?By default messages never expire
Possible to set expiration time
Message not received after this time is destroyed - 127Explain Transactions in JMS?Grouping of a sequence of client operations (sending, receiving) into some atomic unit of work
If anything goes wrong, work done is rolled back and transaction can be started all over again - 128what is group communication?enables the multicasting on a message to a group of processes in a single action
- 129advantages to group comm?No need to explicitly list destination of the messages
- 130Name some group communication models?Point to point
- 1-to-1
- unicats
Broadcast
1- all
Multicast
1-many
many-many - 131advantages to group comm?uses less bandwidth
- network has fewer packets to transfer
reduces server load
- server only sends one copy of the message - 132types of group communication?One group (anyone can join)
Closed group (closed membership)
Peer
- all members are equal, all members send messages to the group (P2P) - 133what is client server group comm model?servers are seen as a group, clients invoke methods on group
client may or may not care which server answers - 134what is hierarchical group comm?one or more members are different from the rest
- 135examples of group comms apps?live video streaming (1-many)
stock exchange (many-many)
multiplayer games (many-many)
server replication (1-many, many-many) - 136what is collective coordination?when replicating server, need collective coordination for fault-tolerance and scalability
i.e. maintain a consistent view on each server - 137what are some reliability guarantees for Group Communication?Best effort
Reliable multicast
Atomic multicast - 138In group comm what is best effort?A reliability guarantee
best effort : unreliable multicast
- no guarantee
- messages sent to all members and may or may not arrive - 139In group comm what is reliable multicats?a reliability guarantee
reliable multicast : protection against faulty network
- reasonable efforts are made to ensure delivery in spite of messages losses
- no guarantees if the sender crashes during multicast - 140In group comm what is atomic multicast?A reliability guarantee
Atomic multicast : protection against faulty participants
- all members receive message, or none does
- main issue: tolerate the senders crash - 141How to implement Reliable Multicast?1) sender sends a message to each member of the group, and awaits ACK
2) If some ACK are not received in a given period of time, re-send message; repeat this n times if necessary
3) If all ACK received - then report success to caller - 142disadvantages to Reliable Multicast?not very scalable: ACK explosion
- 143Issues with reliabale multicast?only works fine if:
- Network problems are transient (msgs eventually get through)
- No crash and no spurious behaviour - 144a solution to ACK explosions?Use NACKs
only send one if a message is lost - 145a problem with using NACKs?how do we know when a message should arrive?
- 146in group comms, what is the garbage collection problem?In theory the sender should keep all the past message indefinitely
in practice past messages only kept for a "long enough" period - 147What is NACK suppression?If all receivers are sending a NACK, all NACKs are suppressed but 1, so that the sender only receives one NACK, and avoid NACK explossion
i.e.
Several receivers have scheduled a request for re-transmission, but the first re-transmission request leads to the suppression of others - 148the process of atomic multicast protocol?1) sender: reliably multicast message to group
2) all participants:
- IF first time seeing message {
reliably multicast again;
and deliver to application;
}
else {
discard copy
} - 149what is not provided by atomic multicast?Ordering
- 150In group comms what is ordering?Participants need to agree on how messages should be ordered
- 151in group comm what are the different ways of orderingunordered
casual order
total order - 152what is unordered multicast?messages can be delivered in a different order to different members
- no guarantee - 153what is Global Time Ordering?all messages arrive in exact order sent
- assumes two events never happen at the exact same time - 154what is FIFO ordering?messages from the same process are delivered in the same order as they were sent
- 155what is the hold back queue?used for ordering in group comms
incoming messages are put on a hold back queue, until the order is met, they are then moved to the delivery queue - 156what is casual ordering?partial ordering
- the order of m1 and m2 is only important if a "happened before" relationship exists between them
e.g. posting a comment on a status
only makes sense if the status exists first - 157what is total ordering?unlike FIFO and casual, this does not pay attention to the order of multicast sending
ensure all receivers receive all messages in the same order
rule: messages received in the same order (regardless of their timestamp) - 158how to implement total ordering?A message is sent to a centralised sequencer, assigned a unique totally sequenced message ID to each message
Receiver delivers a message to the application only if it has received all messages with a smaller ID - 159disadvantage to total ordering?a centralised algorithm
- 160what are the concerns of total, casual ordering?FIFO and Casual ordering are concerned with the sending order
Total is concerned with the receiving order - 161what is the join leave problem?when a process joins/leaves during a multicast operation
- which messages will it recieve
participants need to agree on who's in the group - 162what is virtual synchrony?a multicast operation with ordering guarantees to agree group members
i.e. state transfer - 163how does virtual synchrony work?1. contact an existing member to request a state transfer
2. a state transfer is treated as an instantaneous event
- like acquiring a lock - 164what is a stable message?a message is stable if every member of the group has received it
- 165what kind of ordering does atomic multicast use?total ordering
- 166what is ISIS?A framework for reliable distributed computing based on process group developed during 80-90s
offers a range of delivery semantics
- unordered, casual etc
- provides group view management - 1675 fundamental properties to the software system?Functionality
Performance
Cost
Security
Dependability - 168when does failure occur?failure occurs if a service deviates from functional specification
- 169what is a failure?noncompliance of functional specification
- crash, omission, timing, byzantine etc - 170what is an error?transition of internal state into invalid state
- distributed systems: erroneous data, inconsistent internal behaviour - 171what is a fault?hypothesised cause of an error
- caused by vulnerability in internal or external state
- software/hardware, accidental/incompetence, natural/man-made - 172draw the fault hierarchy
- 173what are the dependability attributed?Availability
Reliability
Safety
Integrity
Maintainability - 174what is graceful degradation?the internal failure/fault should be completely masked
- 175what is the goal of graceful degradation?minimise impact of failures to the system users
- avoid catastrophic failure, likely performance implications
- maintain highest possible QoS in presence of faults - 176advantages to graceful degradation?leaves time for admins to react
users continue using the service, albeit with lower QoS
requires trade-off between impact and mitigation costs - 1774 things to achieve dependability?Fault prevention
Fault tolerance
Fault removal
Fault forecasting - 178what is fault prevention?prevent occurrence/introduction of faults
- 179what is fault tolerance?avoid service failures in presence of faults
- 180what is fault removal?reduce number and severity of faults
- 181What are some Fault Tolerant mechanisms?Replication
N-Verison design
Checkpointing
Recover Blocks - 182what are some problems with datacentres?Nodes (servers, clients, peers)
Network
Software, Users / People - 183why replicate?increase performance
to achieve consensus (error detection)
backward error recover (restore to earlier state) - 184what is the replication model?A model for replication consisting of:
Clients
Replica Manager (RM)
Front end - 185what does the client do in the replication model?makes requests
- 186what does the Replica Manager do in the Replication model?handles requests to a set of replicas
manages consistency and sync
multiple RMs within a system - 187what does the front end do in the Replication model?mediates between RM and client
may be integrated into client or RM - 188two replication types?Read-only
- dont make any changes
- usually satisfied by any (up-to-date) replica
Update requests
- modify an object
- must be propagated to all replicas - 1895 request phases in the replication model?1. Request Issue
- request sent to one or more RMs
2. Coordination
- RMs agree on ordering and whether to execute request
3. Execution
- RMs perform request
4. Agreement
- RMs reach consensus on request outcome
5. Response
- RM(s) reply to front end - 190what is passive replication?only have a primary RM processes requests
- sends resulting updates to backups (slaves) - 191disadvantages to passive replication?requires election of new primary in event of failure
only tolerated crash-stop failures - 192what is active replication?all replicas process requests and return results
- replicas are treated equally
- appropriate reliable group communication needed - 193advantages to active replication?tolerate crash faults and byzantine faults
- 194how does request and response work in active replication?1. FE sends request (unique ID) to each RM
2. Each RM executes request
- RMs should produce same results given same requests
3. Each RM responds to front end
- FE checks responses by comparing
4. FE sends response back to client - 195what is cloud computing?A cloud is a set of internet-based application, storage and computing services sufficient to support most users' needs, thus enabling them to largely or totally dispense with local data storage and application software
- 196provisioning levels to cloud computing?IaaS
PaaS
SaaS - 197what is FOG computing?Fog computing refers to extending cloud computing to the edge of an enterprise network
facilitates the operation of compute, storage and networking services between end devices and cloud computing data centers - 198what are protocol buffers?an open source way of encoding structured data in an efficient yet extensible format
- used for serialisation and subsequent storage or tranmission
- intended to be simple, fast and efficient
- readily provides backward compatibility and validation - 199what do protocol buffers provide support to?simple style of RPC supported where operation have one argument and one result
protocol buffers send through RpcChannels and monitored through RpcControllers - 200what is mapReduce?a service offering a simple programming model for a large scale computation over very large data sets, e.g. a distributed grep
Information
- Description
- Flashcards on 211, created by Lewis Stones on 26/04/2018.
- Created by
- Lewis Stones
- Views
- 9
- Rating