Goals
The goal of this lab is to develop a deeper understanding of how objects can be moved around the Internet by developing a useful, but small, system to store data on multiple computers. You will develop a graphical client that will allow you create, edit and delete student data. The data will be stored on a Student Server and login data will be stored on the Authentication Server.
GUI
You will begin with the GUI and code used to complete the previous lab. You will add a JButton to the toolbar and a menu item under the File menu called Login. When selected or pressed:
- Show a dialog with userid and password fields
- When the fields are populated and the dialog OK button is clicked, connects to the Authentification Server.
- If the userid/password combination is valid user is allowed to login to the Student Server.
- if the userid/password combination is invalid, another dialog is shown, informing the user the userid/password is invalid.
Once connected, the user will be able to do all functions they could do with the previous lab. Now, the system will connect to the Student Server to get the data instead of storing it locally.
Authentification Server
The Authentification Server will receive a request which has a userid/password combination. It will compare these 2 fields to its own data to see if this is a valid user login. If it is valid, it will send a login OK message to the Student Server, allowing the user to begin adding, editing and changing student data.
The data is kept in a text file, that will need to be loaded when the server is started. The data can be read in and stored in any structure that the designer deems worthy.
This server is located at:
TCP/IP Address: 127.0.0.1
Port: 8189
Student Server
The Student Server is similar as to what was used in Lab 7 to store student data. It is basically an ArrayList of objects wrapped in a server. The 4 classes are: Student, Undergrad, Graduate, NonDegree and are the same design as they were in Lab 7.
In Lab 7, the arraylist was part of the GUI object. Now, the arraylist is wrapped in a server and the object must be passed back and forth each time the user, via the GUI, wants to compete a transaction.
This server is located at:
TCP/IP Address: 127.0.0.1
Port: 8190
Submission
When complete, ZIP all .java files and submit it to Blackboard.