Exercise 14
Reservation system
Task 1: Model the following process
Seat reservations for our workshops are made through our reservation system. When a customer makes a reservation request, a message is sent to the system. There it is first checked whether there is still a space available. Only then is the space automatically blocked in the database. If there is no more space, an information is sent to the customer and the process is ended.
After the blocking, the customer will be sent a payment request with a notice period of 5 days. If the customer confirms the reservation by paying within this period, this is stored in the database and the reservation is completed. Otherwise, the customer receives a message that his reservation has expired and the space is released again in the database at the same time.
The customer can of course cancel the booking at any time up to the beginning of the workshop. If the payment has already been made, the money will be paid back.
Hints
-
Please use 2 pools: customer (closed) and the reservation system
-
The process instance should remain open until the workshop starts
Exercise 2:
It has been noticed in the past that many customers did not pay within the deadline. The places were then released again, but not yet booked by others. If the customers still wanted their tickets, they had to restart the whole process. In order to make this easier for the customer, the space should first be released again in the event that the deadline has expired, but the customer should still retain the option of confirming the reservation by making a payment. The customer should only be informed and the reservation canceled if all places have been booked in the meantime.
Make these changes in the model. A signal event should be used in the event that all places have been booked.