The flashcards below were created by user
on FreezingBlue Flashcards.
Discuss why a developer might choose to run his application over UDP ratherthan TCP.
An application developer may not want its application to use TCP's con-gestion control, which can throttle the applications sending rate at timesof congestion. Often, designers of IP telephony and IP videoconference ap-plications choose to run their applications over UDP because they want toavoid TCPs congestion control. Also, some applications do not need thereliable data transfer provided by TCP. UDP is faster since does not requirethe setup of the connection, acknowledgment and there is less informationtransferred.
Describe the following architectural styles: Layered architectures Object-based architectures Data-centered architectures Event-based architectures Shared-data space architecturesFor each style you should provide a short description and a graphicalrepresentation.
layered style: components are organised in a layered fashion where acomponent at layer Li is allowed to call components at the underlyinglayer Li1, but not the other way around;
object-based architectures: each object corresponds to what wehave dened as a component, and these components are connectedthrough a (remote) procedure call mechanism;2
Data-centred architectures: evolve around the idea that processescommunicate through a common (passive or active)
repository; event-based architectures: processes essentially communicate throughthe propagation of events, which optionally also carry data;
shared data spaces: Event-based architectures combined with data-centred architectures;
Outline advantages and disadvantages of Layered architectures
Pros. Layered architectures increases exibility and maintainability.Cons. There might be a negative impact on the performance as we havethe extra overhead of passing through layers instead of calling a componentdirectly.
If a client and a server are placed far apart, we may see network latencydominating overall performance. How can we tackle this problem?
It really depends on how the client is organised. It may be possible to di-vide the client-side code into smaller parts that can run separately. In thatcase, when one part is waiting for the server to respond, we can scheduleanother part. Alternatively, we may be able to rearrange the client so thatit can do other work after having sent a request to the server. This last so-lution eectively replaces the synchronous client-server communication withasynchronous one-way communication.