Summary for WebTaxi

EventHelix.com/EventStudio 2.0
Generated on 05-Jul-03 16:41

Taxi available within 5 min.

Leg Taken:

Customer Interfaces

  1. Send taxi_request to session_mgr
  2. Receive bill_and_map_info from taxi_session
  3. Send accept to taxi_session
  4. Receive taxi_response from taxi_session
  5. Receive taxi_arrived from taxi_session

Session_mgr Interfaces

  1. Receive taxi_request from customer
  2. Create object taxi_session
  3. Receive end_service from taxi_session
  4. Delete object taxi_session

Taxi_session Interfaces

  1. Object taxi_session is created by session_mgr
  2. Change state to "Mapping Coordinates"
  3. Send map_request (start, end) to mapping_service
  4. Receive map_response (map, distance, time) from mapping_service
  5. Change state to "Computing Bill"
  6. Take action "compute bill based on distance reported by mapping service"
  7. Send bill_and_map_info to customer
  8. Receive accept from customer
  9. Change state to "Searching for Taxi"
  10. Send find_taxi (time_to_resp = FIVE_MIN, type = BROADCAST) to mobile_msg_service
  11. Start timer await_trip_ack
  12. Receive trip_ack (phone_num, resp_time = TWO_MIN) from taxi_mgr1
  13. Receive trip_ack (phone_num, resp_time = FOUR_MIN) from taxi_mgr2
  14. Timer await_trip_ack times out
  15. Take action "Choose the taxi that can respond in minimum time"
  16. Change state to "Querying Taxi Driver"
  17. Send trip_query to taxi_mgr1
  18. Start timer await_trip_accept
  19. Receive trip_accepted from taxi_mgr1
  20. Stop timer await_trip_accept
  21. Send taxi_response to customer
  22. Change state to "Awaiting Journey Start"
  23. Receive ready from taxi_mgr1
  24. Send taxi_arrived to customer
  25. Send ready_ack to taxi_mgr1
  26. Receive start_service from taxi_mgr1
  27. Change state to "Awaiting Journey End"
  28. Send start_service_ack to taxi_mgr1
  29. Receive end_service from taxi_mgr1
  30. Change state to "Billing Customer"
  31. Send end_service_ack to taxi_mgr1
  32. Send charge_request (credit_card_no, expiration_date, amount) to billing_service
  33. Receive charge_response (transaction_status = SUCCESS) from billing_service
  34. Change state to "Paying Taxi Driver"
  35. Send pay_request (account_number, amount) to bank_ac_service
  36. Receive pay_response (account_number, transaction_status = SUCCESS) from bank_ac_service
  37. Send end_service to session_mgr
  38. Object taxi_session is deleted by session_mgr

Mapping_service Interfaces

  1. Receive map_request (start, end) from taxi_session
  2. Send map_response (map, distance, time) to taxi_session
  3. Receive map_request (start, end) from taxi_mgr1
  4. Send map_response (map, distance, time) to taxi_mgr1
  5. Receive map_request (start, end) from taxi_mgr2
  6. Send map_response (map, distance, time) to taxi_mgr2

Billing_service Interfaces

  1. Receive charge_request (credit_card_no, expiration_date, amount) from taxi_session
  2. Send charge_response (transaction_status = SUCCESS) to taxi_session

Bank_ac_service Interfaces

  1. Receive pay_request (account_number, amount) from taxi_session
  2. Send pay_response (account_number, transaction_status = SUCCESS) to taxi_session

Mobile_msg_service Interfaces

  1. Receive find_taxi (time_to_resp = FIVE_MIN, type = BROADCAST) from taxi_session
  2. Send trip_request (max_time_to_resp = FIVE_MIN) to taxi_mgr1
  3. Send trip_request (max_time_to_resp = FIVE_MIN) to taxi_mgr2
  4. Send trip_request (max_time_to_resp = FIVE_MIN) to taxi_mgr3

Taxi_mgr1 Interfaces

  1. Receive trip_request (max_time_to_resp = FIVE_MIN) from mobile_msg_service
  2. Send map_request (start, end) to mapping_service
  3. Receive map_response (map, distance, time) from mapping_service
  4. Send trip_ack (phone_num, resp_time = TWO_MIN) to taxi_session
  5. Receive trip_query from taxi_session
  6. Take action "Taxi Mgr displays the details about the next trip and waits for taxi driver's response"
  7. Send trip_accepted to taxi_session
  8. Send ready to taxi_session
  9. Receive ready_ack from taxi_session
  10. Send start_service to taxi_session
  11. Receive start_service_ack from taxi_session
  12. Send end_service to taxi_session
  13. Receive end_service_ack from taxi_session

Taxi_mgr2 Interfaces

  1. Receive trip_request (max_time_to_resp = FIVE_MIN) from mobile_msg_service
  2. Send map_request (start, end) to mapping_service
  3. Receive map_response (map, distance, time) from mapping_service
  4. Send trip_ack (phone_num, resp_time = FOUR_MIN) to taxi_session

Taxi_mgr3 Interfaces

  1. Receive trip_request (max_time_to_resp = FIVE_MIN) from mobile_msg_service

Taxi available within 10 min.

Leg Taken:

Customer Interfaces

  1. Send taxi_request to session_mgr
  2. Receive bill_and_map_info from taxi_session
  3. Send accept to taxi_session
  4. Receive taxi_response from taxi_session
  5. Receive taxi_arrived from taxi_session

Session_mgr Interfaces

  1. Receive taxi_request from customer
  2. Create object taxi_session
  3. Receive end_service from taxi_session
  4. Delete object taxi_session

Taxi_session Interfaces

  1. Object taxi_session is created by session_mgr
  2. Change state to "Mapping Coordinates"
  3. Send map_request (start, end) to mapping_service
  4. Receive map_response (map, distance, time) from mapping_service
  5. Change state to "Computing Bill"
  6. Take action "compute bill based on distance reported by mapping service"
  7. Send bill_and_map_info to customer
  8. Receive accept from customer
  9. Change state to "Searching for Taxi"
  10. Send find_taxi (time_to_resp = FIVE_MIN, type = BROADCAST) to mobile_msg_service
  11. Start timer await_trip_ack
  12. Timer await_trip_ack times out
  13. Send find_taxi (max_time_to_resp = TEN_MIN, type = BROADCAST) to mobile_msg_service
  14. Start timer await_trip_ack
  15. Receive trip_ack (phone_num, time_to_resp = SIX_MIN) from taxi_mgr1
  16. Receive trip_ack (phone_num, time_to_resp = NINE_MIN) from taxi_mgr2
  17. Timer await_trip_ack times out
  18. Take action "Choose the taxi that can respond in minimum time"
  19. Change state to "Querying Taxi Driver"
  20. Send trip_query to taxi_mgr1
  21. Start timer await_trip_accept
  22. Receive trip_rejected from taxi_mgr1
  23. Take action "Choose another taxi from the responses"
  24. Stop timer await_trip_accept
  25. Send trip_query to taxi_mgr2
  26. Start timer await_trip_accept
  27. Receive trip_accepted from taxi_mgr2
  28. Stop timer await_trip_accept
  29. Send taxi_response to customer
  30. Change state to "Awaiting Journey Start"
  31. Receive ready from taxi_mgr2
  32. Send taxi_arrived to customer
  33. Send ready_ack to taxi_mgr2
  34. Receive start_service from taxi_mgr2
  35. Change state to "Awaiting Journey End"
  36. Send start_service_ack to taxi_mgr2
  37. Receive end_service from taxi_mgr2
  38. Change state to "Billing Customer"
  39. Send end_service_ack to taxi_mgr2
  40. Send charge_request (credit_card_no, expiration_date, amount) to billing_service
  41. Receive charge_response (transaction_status = SUCCESS) from billing_service
  42. Change state to "Paying Taxi Driver"
  43. Send pay_request (account_number, amount) to bank_ac_service
  44. Receive pay_response (account_number, transaction_status = SUCCESS) from bank_ac_service
  45. Send end_service to session_mgr
  46. Object taxi_session is deleted by session_mgr

Mapping_service Interfaces

  1. Receive map_request (start, end) from taxi_session
  2. Send map_response (map, distance, time) to taxi_session
  3. Receive map_request (start, end) from taxi_mgr1
  4. Send map_response (map, distance, time) to taxi_mgr1
  5. Receive map_request (start, end) from taxi_mgr2
  6. Send map_response (map, distance, time) to taxi_mgr2

Billing_service Interfaces

  1. Receive charge_request (credit_card_no, expiration_date, amount) from taxi_session
  2. Send charge_response (transaction_status = SUCCESS) to taxi_session

Bank_ac_service Interfaces

  1. Receive pay_request (account_number, amount) from taxi_session
  2. Send pay_response (account_number, transaction_status = SUCCESS) to taxi_session

Mobile_msg_service Interfaces

  1. Receive find_taxi (time_to_resp = FIVE_MIN, type = BROADCAST) from taxi_session
  2. Send trip_request (max_time_to_resp = FIVE_MIN) to taxi_mgr1
  3. Send trip_request (max_time_to_resp = FIVE_MIN) to taxi_mgr2
  4. Send trip_request (max_time_to_resp = FIVE_MIN) to taxi_mgr3
  5. Receive find_taxi (max_time_to_resp = TEN_MIN, type = BROADCAST) from taxi_session
  6. Send trip_request (max_time_to_resp = TEN_MIN) to taxi_mgr1
  7. Send trip_request (max_time_to_resp = TEN_MIN) to taxi_mgr2
  8. Send trip_request (max_time_to_resp = TEN_MIN) to taxi_mgr3

Taxi_mgr1 Interfaces

  1. Receive trip_request (max_time_to_resp = FIVE_MIN) from mobile_msg_service
  2. Send map_request (start, end) to mapping_service
  3. Receive map_response (map, distance, time) from mapping_service
  4. Receive trip_request (max_time_to_resp = TEN_MIN) from mobile_msg_service
  5. Send trip_ack (phone_num, time_to_resp = SIX_MIN) to taxi_session
  6. Receive trip_query from taxi_session
  7. Take action "Taxi Mgr displays the details about the next trip and waits for taxi driver's response"
  8. Send trip_rejected to taxi_session

Taxi_mgr2 Interfaces

  1. Receive trip_request (max_time_to_resp = FIVE_MIN) from mobile_msg_service
  2. Send map_request (start, end) to mapping_service
  3. Receive map_response (map, distance, time) from mapping_service
  4. Receive trip_request (max_time_to_resp = TEN_MIN) from mobile_msg_service
  5. Send trip_ack (phone_num, time_to_resp = NINE_MIN) to taxi_session
  6. Receive trip_query from taxi_session
  7. Take action "Taxi Mgr displays the details about the next trip and waits for taxi driver's response"
  8. Send trip_accepted to taxi_session
  9. Send ready to taxi_session
  10. Receive ready_ack from taxi_session
  11. Send start_service to taxi_session
  12. Receive start_service_ack from taxi_session
  13. Send end_service to taxi_session
  14. Receive end_service_ack from taxi_session

Taxi_mgr3 Interfaces

  1. Receive trip_request (max_time_to_resp = FIVE_MIN) from mobile_msg_service
  2. Receive trip_request (max_time_to_resp = TEN_MIN) from mobile_msg_service