A distributed system often has a backend database for storing and retrieving business data. In this assignment, you are to implement a multiple-threaded client/server framework of a Customer and Customer Tours Booking System with backend database access ability.

1. The Customers and Tours information are stored and retrieved from a database. The database will be in third normal form with three tables to store Customers contact details, Customers tour bookings, and tours details in different tables. You are to use Apache Derby as the backend database; therefore you need to download and install Derby (http://db.apache.org/derby/releases/release-10.6.2.1.html) before completing this assignment.

The client is a thin client and no storage to be done on the client. It is preferred to use java swing library to create GUI interface for both client and server. Using console application will also be accepted.

2. The Client should support the following query options:

  • View All Customers
  • View All tours available
  • View specific customer bookings
  • Make a booking
  • Drop a booking

Once it accepts a request, it will send the request to the server.

3. The Server parses requests to interpret the queries. The server can distinguish the above 5 different queries by parsing the requests and create a processing thread for each particular request. That is, the server follows the thread-per-request multi-threading model (reference Week-2 contents). You should use UDP in thread request.

4. The ViewCustomer, ViewTours and CustomerBookings processing threads, which process the requests for retrieving details from the tables. While BookTour and DropTour processing threads, will update the tables. Client and server files should be in separate packages.

In your implementation, you need to query multiple database tables with JDBC APIs. For a quick start with multiple table queries by JDBC, you may need to read the JDBC document and download

the sample JDBC programs on the course web site. Please note: if necessary, you need to research widely on Derby and their usage(http:// //netbeans.org/kb/docs/ide/java-db.html).

The following screenshots show the outputs screens and tables implementation in the Derby database.

The Customer Table see image.

The Tours Table see image.

The TourBooking table see image.

The Client and Server Screens when run see image.

All Customers Query see image.

ViewTours Query see image.

CustomerBookings Query see image.

BookTour Query see image.

DropTour Query see image.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.