Need to build a very basic three-part system consisting of a client, a proxy, and two servers.
There are multitudes of reasons why data needs to be processed at the server side, and not at
the client side including but not limited to performance and security considerations.
For this assignment, the client’s role is to sequentially send one hundred randomly generated
strings of size twenty characters each to some server, which then eliminates the vowels from
the strings and eventually sends them back to the client to print on the screen.
There is a catch though. Between the client and the server there is a proxy which acts like a
load balancer. The function of the proxy is to dispatch the message for processing to either
Server1 or Server2 for the vowels to be eliminated and the string to be sent back. Here is the
sequence of what happens:
1. Client establishes connection with Proxy.
2. Proxy establishes connection with Server1.
3. Proxy establishes connection with Server2.
(Hint: the proxy acts as a server to the client, and the proxy itself is a client to both
4. Client sends a message to Proxy.
5. Proxy decides at random whether to relay the message to Server1 or Server2.
6. Proxy sends the message to either Server1 or Server2.
7. Server1 or Server2 eliminate the vowels from the message and send it back to Proxy
(string will be possibly reduced in size).
8. Proxy sends the message to client.
9. Client prints the message on the screen.
10. Client repeats the process from (4) for the next message until all messages are