Since you want to develop a desktop application, you should realize that database is going to be the important component of the application. The outline of steps which you must follow are -
- Develop a GUI interface which you will need to distribute to users and will serve as client application. Some basic features which you can provide in the client GUI would include choosing unique identifier (like username), entering booking details, looking at booking history and allowing cancellation.
- Develop a database backend which is capable of handling this data. The corresponding tables include - users, bookings and cancellations.
- Use JDBC to connect your java application with the backend.
This task does not require knowledge of socket programming. It just requires basic GUI development skills and connecting the application with database using JDBC. You may choose MySQL or PostgreSQL as the backend database. Netbeans IDE provides excellent support for GUI development (Drag and Drop) and you should use it to reduce your development time. For connecting to MySQL through Java, you may go through this link - http://dev.mysql.com/usingmysql/java/ or google for plenty more.
SYNCHRONIZATION
Create a 15 minutes ('t' in general) timeout thread which is initiated once the user submits all the details. You should update the database by reducing the quantity of available tickets for this session. You can also maintain a table which stores active bookings. Within these t minutes, if the user confirms booking, remove the entry from active booking. Otherwise, add the ticket quantity back to available tickets and terminate the session. This is the simplistic way to implement it. http://in.bookmyshow.com folllows this model.