Service Availability

Total Page:16

File Type:pdf, Size:1020Kb

Service Availability

CSCI 5580 Spring 2012 Service Availability Project 3

Service availability is an important factor for distinguishing between service providers. In this project, we would like to increase the availability of the service provided by a service provider.

A service provider, say Denton Telecom (DT), would like to offer highly available service and would like to redesign his network. In this context, the Math answering service is available always irrespective of the availability of a single math server. Hence, DT has purchased backup servers in case one fails. For this purpose, they approached CSE 5580 class. Design the math answering service for the following requirements:

 Name Server (NS) to keep track of availability of all the Math Servers  One TCP connection between each client and the Math Server (MS). Assume there are several Math Servers, e.g., MS1, MS2, MS3  If MS1 fails, MS2 (backup server) should handle all the requests  Math Server failures are transparent to the end user (who is trying to get the answers to the Math problems) and should get the continuous service  When MS1 comes back, then MS2 relinquishes the service, and MS1 will be the active server. Note: For the project2, you do not need to have a link between active and backup severs.

In project3, we extend the project2 and math servers are interoperable with any client. Here are the extensions (actually minor changes)

 Nameserver will input the IP address and port numbers of math servers from the key board (not embedded in the code)  Your client is interoperable with MathServer of any other student in the class  During the demo, we will input the IP address and port number of MathServer of your friends through the keyboard. (so, no code changes are required for name server).

Here is the message format for communication between the math server and client. struct packet_data { unsigned char version; unsigned char type; unsigned char length; int operand1:32; int operand2:32; unsigned char opcode:7; unsigned char flag:1; double result; } __attribute__((packed));

OPCODES: 1—addition; 2---subtraction; 3---multiplication; 4---division; 5---sin; 6---cos; 7--- tan; For trigonometric functions, the operand1 is given in degrees.

Demonstrate the working program to the instructor or the TA. Submit a report that includes the description on how it works, code, what does not work, what works, and any observation (include the description of your software modules). The results should include output from several (atleast 4-5) examples for math problems and solutions. I am looking for a well documented program. Include appropriate comments throughout the program. This report should also include your conclusions, and how to fix the things that are not working.

Recommended publications