This assignment is intended to emphasize the RPC principles. You are to develop a simple dis- tributed computing environment consisting of a multiple Clients and a Server. The system is to be implemented in C or C++ and using the rpcgen utility discussed in the class.
Server: The Server will be multi-threaded and support the following functions:
1. Date and Time - Returns the Current date and time.
2. Merge - Accepts a two lists and returns a merged list.
3. ReverseEcho - Returns whatever a Client sends as an input in the reverse order.
4. List - Returns a list of all files in the current directory.
5. Add - Accepts two integer matrices and returns their sum.
Clients: There will be multiple clients and they will concurrently invoke various functions on the server.
The Server and the Clients will be deployed on these following machines:
in-csci-rrpc01.cs.iupui.edu - 10.234.136.55
in-csci-rrpc02.cs.iupui.edu - 10.234.136.56
in-csci-rrpc03.cs.iupui.edu - 10.234.136.57
in-csci-rrpc04.cs.iupui.edu - 10.234.136.58
in-csci-rrpc05.cs.iupui.edu - 10.234.136.59
in-csci-rrpc06.cs.iupui.edu - 10.234.136.60
Please employ good software engineering principles in your design and implementation. Provide adequate documentation of your programs.
Create a makefile for your program. Submit all the source files (including the readme, input/output and make files) by using submitd command on Tesla.
Also turn-in a hardcopy of your report, before the beginning of the class on the due date, that briefly discusses your design and its pros and cons.