Distributed systems are difficult to implement but they are even more difficult
ID: 3744298 • Letter: D
Question
Distributed systems are difficult to implement but they are even more difficult to test! Suppose somebody wants you to implement a news aggregator application. The application is a client- server application in which the client and the server communicate through a socket-based HTTP- like protocol. The server aggregates news from news-producing servers and shows the latest news to the client upon request. The protocol between the server and news servers is such that the server will know once news servers have new information. The list of news servers on the server can be appended with other news servers that the client wants to observe. How would you implement such a system? In your answer, you will want to consider the following questions: What is the communication protocol between the client and server? What requests will the client perform? What will the server reply? What is the communication protocol between the server and the news servers? How will the server know that there is new information on any of the news servers? Is it a push mechanism or a pull mechanism? Why? How will you ensure that your application can sustain more than one client? Say you've implemented the above application. How will you test it? In your answer, you will want to consider the following questions What is the normal operation mode for this application? In a single-client mode, what are the possible breaking points in your application? In a multiple-client mode, what are the possible breaking points in you application? How will you reproduce them? What is the pseudo-code for your testing harness?Explanation / Answer
Answer)
It is the TCP/IP Protocol which is the communication protocol between server and client which uses HTTP Protocol. Here, HTTP Requests are being sent to the server and HTTP Response is sent back to the client. The reply from the server can be in any form as text, email, print etc.
It is the IPSec secure network protocol which is being used to secure the host to host connection.
It can be any of IMAP, POP3, SMTP etc. It is the push mechanism which is involved to establish this connection.
To ensure the application to sustain more than one client use of TCP/IP protocol is needed as it is a connection-oriented protocol and acknowledges every client requests.
To test such such 2 tier client server application many such test types are made which is the user interface testing, manual supporting testing, functionality testing, compatibility testing, configuration testing, and intersystem testing.
Some of the normal operation modes for an application are as follows:
Fault detection, localization, the tolerant operation for modular multilevel architecture.
In a single client mode, the breakpoints should be made at the request and response side as and where needed.
In multiple client modes, the possible breakpoints in an application have to have the breakpoints at multiple places at request and response side.
For testing the harness the pseudo code has to be as test execution engine and test script repository.
This system implementation can be done via TCP Connection which is a 3-way handshaking process, where before the client connects to the server the server aligns with the port.
Hope you like the answer. :)
Hit like if you find the answer useful. Thanks