EE450 Socket Programming Project

OBJECTIVE
The objective of project is to familiarize you with UNIX socket programming. It is an individual assignment, and no collaborations are allowed. Any cheating will result in an automatic F in the course (not just in the assignment). If you have any doubts/questions, please email TA, or
come by TA’s office hours. You can ask TAs any question about the content of the project, but TAs have the right to reject your request for debugging.
PROBLEM STATEMENT
In this project, you will implement a Student Performance Analysis system, a software application that allows students to check their GPA, percentage ranks, and other relevant data. This information can be used by students to identify areas where they need to focus their efforts and improve their performance. It can also be used by administrators to identify areas where teaching teams need to improve or provide additional resources to help students succeed.
This system generates academic statistics based on user queries. There are two types of clients, student (Student 1 and Student 2) and administrator (Admin) in the system. A student can query a student’s academic performance, while the admin can also query academic statistics of a certain department. The students/admin would send a request to a main server and receive results replied from the main server. Now since there are many departments, the university use a distributed system design where the main server is further connected to many (in our case, three) backend servers. Each backend server stores the academic records for a list of departments. For example, backend server A may store the student data of ECE and CS department, and backend server B may store the student data of Art department. Therefore, once the main server receives a user (student) query, it decodes the query and further sends a request to the corresponding backend server. The backend server will search through its local data, analyze the academic statistics, and reply to the main server. Finally, the main server will reply to the client to conclude the process.
The detailed operations to be performed by all the parties are described with the help of Figure 1. There are in total 7 communication endpoints:
● Student 1 and Student 2: two different student clients possibly in different department
● Admin: a client that can query student and department academic statistics
● Main server: responsible for interacting with the clients and the backend servers
● Backend server A/B/C: responsible for loading data (from dataA/B/C.csv) generating the statistics of the students’ academic performance

你可能感兴趣的:(java,开发语言)