Construct a reliable and efficient news service for users over a network of computers (with only one news group). The service: ------------ Every user can connect via a news client to any one of replicated servers. The news service provides the following capabilities: 1. Login as a user. The GUI-based client mrn needs to login with a user to perform any of the tasks below. You should allow the client to login as a new user as part of the menu by specifying the user name. 2. Connecting to a server. The client needs to connect to a server to perform any of the tasks below. You should allow the client to change its server as part of the menu, by specifying the server index. At any point, the client may be connected to one server only. To connect to a server, all a client needs to do is to set this server as its serving server. 3. View list of headers of available messages (The service should distinguish between messages that were already read by this user, and unread messages): The view should include the user name, the responding server index and list of message headers. The headers in the list will be numbered (1, 2, 3, ...) the header should contain a subject and author. Each request for a view should result in the most updated information possible. 4. Post a message: subject: The size of the msg string can be bounded to 1000 bytes. 5. Delete a message (read or unread): Will allow to delete a message from this user's view only, by its number or by pointing on it. 6. Read a message (read or unread): Will allow the user to retrieve the content of a message by its number. The message should be marked as read for this user thereafter.
Project requirements The News Servers: ----------------- The news client connects to one of the server processes. Each of the server processes is a background daemon. The server may crash and may subsequently recover. The overall set of servers is not fixed. A server is started with its id as a parameter with the command mserver[1-5]. The users must always receive a consistent view of the single news group, regardless of which server is consulted (of course, as consistent as possible, according to the network connectivity). The view should be consistent as to which messages are available, have been read or deleted by this user. Each server should save information separately on disk. A news message should be expired by the system 300 seconds after its creation. After expiration, the message should not be available for users. At some point after expiration, the message should be deleted without trace to it in the system's data structures (garbage collection). Crashes of the servers and clients should be managed by a separate program mcrash pid. A crashed server exits the program immediately! it is not legal to write to disk after a server receives a kill signal. When a server crashes, clients connected to that server will report the loss of connection to the user, so that the user can connect to another server and continue posting/receiving messages. The users are not known beforehand, and their number is not bounded. Summary ------- These are 3 programs: The client mrn The server mserver the crasher mcrash Requirements ------------ - System produces correct results for all inputs, except those specificly listed as not required. Deliverables: ------------- 1. Source files (.c not the stubs) and any .h isn't automatically generated by the rpcgen. 2. A listing of execution. 3. Final report. addittional requirements 1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request.
3) Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).
it has to work perfectly on unix, abd all other platforms