• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/25

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

25 Cards in this Set

  • Front
  • Back
  • 3rd side (hint)

Describe the REST architectural style

REST is a special case of C/S. The motivation is portability and simplification of the interactions between components, independent development and deployment, reliability and scalability.


Resources are files, variables, or devices controlled by origin servers. These resources can be manipulated by clients (user agents) with a reduced set of operations; they referred to by a URI.


Rules: Stateless communication, responses can sometimes be cacheable. Uniform interface between components decouples structure from functionality. As layered C/S but with only a single service interface. Client functionality can be adapted by code on demand.

C/S, http, simple

What is an architecture, by what is it described and for what is it used?

It is the fundamental organization of a system embodied in it's components (building blocks), relationships (connectors) between them and with the environment, and in the principles of its design and evolution. It is used for Communicating, Understanding, Analysis and Construction.

CUAC

Give the rules for Layered architectural style

Layer N may only communicate with Layer N-1, and may not use the knowledge of lower layers. Control flow may be synchronous or asynchronous. Layer N-1 provides Layer N witg a single point of interface to the functionality of lower layers.

A motivation for Naming is to delay binding. Give at least two types of transparencies in distibuted systems that are supported by naming through delayed binding. Describe those transparencies (what is hiding).

Location transparency. A logical name is assigned to an entity to hide where it is located.


Replication transparency. Logical names can be assigned to different entities. The user sees a single entity hiding the fact that there are several entities under the same name.


Mobility: Names hide the fact that a resource may be moved, without the user noticing.

Distributed resolution of structured naming can be iterative or recursive. Briefly describe both approaches and discuss caching and communication costs for each.

Communication costs. In both cases the number of interactions is the same. In the recursive case, the high load is located in the server side, whereas in the iterative approach, it is located on the client side. In the case when servers are co-located, recursive resolution may result in an overall reduced communication cost, since the long distance communication with the client is reduced.


In terms of caching, two factors need to be considered: where the data will be cached (client or server), and in the recursive case, the amount of data to be cached by each server. The same amount of information is cached by the client in either iterative or recursive.

Relays (routers) are special queue managers in a message queuing system that forward incoming messages to other queue managers. Describe at least two reasons for using them.

Scalability: Only a few routers need to be aware (and therefore be informed upon) changes in the network topology.


Secondary processing: logging messages for security or fault tolerance, or for modifying messages.

network topology


logs

Explain the notions of Data-centric consistency and Client-centric consistency

In Client-centric consistency, we have the following notions:


- Monotonic read consistency: If a process reads data item x, any successive reads from that process will return the same value or a more recent one.


- Monotonic write consistency: A write operation on data item x is completed before any successive write operation on x by the same process.


- Read your writes: the effect of a write operation by a process on data item x will always be seen by successive read operation on x by the same process.


- Writes follow reads: A write operation by a process on data item x following a read by the same process on data item x is guaranteed to take place on the data item x that was read or on a more recent value.


MISSING: DATA-CENTRIC CONSISTENCY.

(Replication)

Give a motivation for stream-oriented communication and name an example.

This type of comm. is used when temporal relationships between data plays a crucial role. Example: audio and video streams. In these applications, missing a deadline is not critical but it is a detriment to quality.

Give the basic ingredients of an Architectural description according to the IEEE standard.

An architecture description shows a system, the stakeholders that have interests in it, their concerns, and models grouped into views, which correspond to a viewpoint, that address these concerns.

Consider the Chord implementation of a DHT. Descriibe the reallocation of data and the readjustments to the finger tables that have to be made when a peer leaves the community (when a node leaves the ring of nodes).

A node n leaving the ring, needs to pass on its data to its successor s. The complexity of this depends on the amount of data stored in n. Next, the rest of the nodes in the ring other than n need to be informed that n left, passing a message that n needs to be replaced by s in their finger table entries. The worst case complexity for N nodes and m entries is O(mN). However if N<

Describe the publish-subscribe style using the appropriate vocabulary, name the concepts involved, give a motivation for its usage and mention typical usage.

We have publishers that distribute content associated to topics. These publishers register with a broker, or are discovered. Then we have subscribers, which find brokers, and send subscriptions to publishers about certain topics. A subscription associates one subscriber with one topic. A publisher can have many subscribers. When data is available, publishers send notifications to all subscribers.


A motivation is to decouple data producers from data consumers (when broker is present), and to send notifications only when data is available reducing the need for polling.

Describe the 4 architectural styles advocated by Krutchen. Indicate their primary stakeholders and their concerns.

Logical view: Shows the structure that is viewed externally. Stakeholders are users. Concerns are the use of the system and its associated qualities (functionality).




Development view: shows the decomposition into subsystems, files, components, modules. Stakeholders are programmers. Concerns are implementing and modifying the system (which modules can be worked separately).




Process view: Shows the units of deployment (programs, components) and units of concurrency (processes, threads), interprocess comm. protocols. Stakeholders are system integrators. Concerns are performance aspects (including scalability).




Deployment/Physical view: shows the mapping of software to hardware, protocols, topology, communication, distribution. Stakeholders are system engineers. Concerns are putting systems together.

Give the definition of a component as used within component-based software engineering. Name 3 reasons for using this engineering style.

A component is a unit of composition with contractually specified interfaces and explicit context dependencies (i.e. no context dependencies other than through interfaces). Moreover a component is independently deployable and subject to composition by third parties.


Reasons: Separate component development from application development. Flexibility: components easy to add/replace. Predictability: The behaviour of the whole can be derived from the behaviour of the separate parts.

contractually specified interfaces

To reduce the network communication load, an architect decides that processing should be done at the location where the data is acquired/stored. What architectural style should she choose? Give an example of a real system where this occurs.

Virtual machine should be used, since it enables code migration with a uniform execution platform. Code migration is needed when data is processed at the point where it is collected, especially if the data requires aggregation. An example is OSAS.

code migration

For name spaces that are distributed across multiple name servers one distinguishes between iterative and recursive name resolution. Explain the difference and give an argument in favor of each.

In the iterative approach the client queries the root servers level by level to resolve the name, whereas in the recursive approach the client queries the main root server once and the request is forwarded from the main root server toward lower levels until the name is resolved, and the resolved name goes back up and out to the client.


In favour of iterative, the root servers do not represent a bottleneck for the name resolution. In favour of recursive, the overall long distance communication cost may be reduced assuming the root servers are spatially nearby.

T/F


There are 13 DNS root servers

False. Although initially there were 13 top level domain root servers, there are more by now. But more importantly, they are heavily replicated.

T/F


Using Distributed Hashing, it is possible to implement constant time service discovery.

True. Assuming sufficiently large hash tables, a hash for a resource can be looked up in a constant time.

T/F. Gossiping can be used to obtain eventually consistent replicas

True. Assuming the selection of gossip partners is such that eventually every peer is engaged in a gossiping session to exchange state information with all its neighbours.

T/F. Scalability is determined by the process view of an architecture description.

False. Also the deployment view is needed, since it ultimately dictates whether the assumptions on which scalability is based are feasible.

Give a detailed breakdown of an RPC into basic steps and identify the architectural blocks involved.

On the client side, the remote procedure is called. The client stub packs the call with its parameters and hands the message to the client OS. The client OS sends it across the network and the server OS receives the message. The server OS hands the message to the stub, which unpacks it and calls the local procedure in the server. The local procedure at the server processes the task and hands the result to the stub, which packs the message to be sent to the client following the same process. Note that marshalling may be involved when the stub prepares the message.

Give a quantitative definition of Availability and name 2 tactics to achieve this quality and examples.

Availability is the probability of a resource to be ready to be used when required. It can be expressed as MTTF/(MTTF+MTTR) where MTTF is the mean time to fail and MTTR is the mean time to repair. Tactics are fault masking (i.e. replacing erroneous state with error-free state), fault prevention (sound methodology such as coding techniques and test procedures), and redundancy.



Client to server binding can be done using a DCE daemon or a superserver. Explain the differences and commonalities.

When using a DCE daemon, the servers register with the DCE daemon. Clients contact the DCE daemon on a known AP, then they are informed about the requested server AP, so they can connect to it.


When using a superserver, it listens to many AP, instantiates the correct server upon request and hands over the request to this new instance. Both the repository (in this case DCE daemon) and the superserver are themselves servers.

Consider a client server-architecture that uses RPCs. A large part of this implementation can be automatically generated from an interface description using a framework such as DCE-RPC. Describe in some detail the compilation procedure that needs to be followed to obtain these components.

The developer specifies the interfaces used in an Interface Definition Language (IDL). Then an IDL compiler generates a common include file, the client and server stubs. Then the developer fills in the code for the functions that were specified in the IDL file. On the client side, the linker links the client code and client stub code, along with runtime libraries, to finally obtain the client binary file. Likewise on the server side.

Explain the difference between architectural viewpoint and view.

A view is a collection of models that conforms to a viewpoint. This viewpoint identifies stakeholders and their concerns. It provides the templates, rules, vocabulary to build the views.

In a given distributed system, a shared file store is used for background storage. For the architecture of the file store we may choose between a centralized client-server or a distributed peer-to-peer solution. Which of these styles is more appropriate considering: performance, maintainability, information protection.

Performance: P2P, since it allows parallel processing from the same or multiple clients.


Maintainability: centralized, since it is a single entity that needs to be maintained.


Information protection: centralized, since it is a single entity that needs to be protected. On the other hand, in P2P, if a single peer becomes compromised, then the information that that peer holds is at risk.


The best solution depends on the approach. If performance is the priority, then choose P2P. If Security is priority, choose centralized, for there is potentially only one point of failure.