Model driven exception handling in Web applications

1,850 views

Published on

As the Web becomes a platform for implementing B2B applications, the need arises of Web conceptual models for describing Web oriented workflow applications implementing business processes. In this context, new problems about process correctness arise, due to the loose control of Web applications upon the behavior of their Web clients. Indeed, incoherent user's behavior can lead to inconsistent processes.This paper presents a high level approach to the management of exceptions that occur during the execution of processes on the Web. We present a classification of exceptions that can be raised inside workflow-driven Web applications, and recovery policies to retrieve coherent status and data after an exception. We devise these concepts at high level and then we exploit them using a Web modeling language (WebML) that in turn provides development facilities like automatic code generation, validation of hypertext models, and so on. An industrial implementation experience is briefly presented too.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,850
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Model driven exception handling in Web applications

  1. 1. Exception Handling in Workflow-driven Web Applications by Marco Brambilla http://home.dei.polimi.it/mbrambil http://twitter.com/MarcoBrambi http://www.slideshare.net/mbrambil Based on our WWW 2005 paper: M. Brambilla, S. Ceri, S. Comai, C. Tziviskou. "Exception Handling in Workflow-Driven Web Applications" , WWW 2005 International Conference, Chiba (Japan), May 10-13 2005, ACM, pp. 170-179 Politecnico di Milano
  2. 2. Table of Contents <ul><li>Workflow-driven Web applications </li></ul><ul><li>Exceptions in workflow-driven Web applications </li></ul><ul><li>Handling Approach </li></ul><ul><li>Implementation in WebML </li></ul>
  3. 3. Table of Contents <ul><li>Workflow-driven Web applications </li></ul><ul><ul><li>Process example </li></ul></ul><ul><ul><li>Hypertext modeling </li></ul></ul><ul><li>Exceptions in workflow-driven Web applications </li></ul><ul><li>Handling Approach </li></ul><ul><li>Implementation in WebML </li></ul>
  4. 4. Workflow-driven Web applications <ul><li>Example: Loan Request Process </li></ul>
  5. 5. Workflow-driven Web applications <ul><li>Example: Loan Request Process & Hypertext Modeling </li></ul>
  6. 6. Table of Contents <ul><li>Workflow-driven Web applications </li></ul><ul><li>Exceptions in workflow-driven Web applications </li></ul><ul><ul><li>Exception examples </li></ul></ul><ul><ul><li>Classification based on exception type </li></ul></ul><ul><ul><li>Classification based on detection time </li></ul></ul><ul><li>Handling Approach </li></ul><ul><li>Implementation in WebML </li></ul>
  7. 7. Exceptions in Workflow-driven Web applications 1/7 <ul><li>Example: Wrong Starting Page Exception </li></ul>
  8. 8. Exceptions in Workflow-driven Web applications 2/7 <ul><li>Example: Action By Completed Activity Exception </li></ul>
  9. 9. Exceptions in Workflow-driven Web applications 3/7 <ul><li>Example: Activity Already Active Exception </li></ul>
  10. 10. Exceptions in Workflow-driven Web applications 4/7 <ul><li>Example: Invalid Loan Amount Exception </li></ul><ul><li>Example: Cancel Exception </li></ul><ul><li>Example: Discount Rate Variation Exception </li></ul><ul><li>Example: Expiration Date Modification Exception </li></ul>
  11. 11. Exceptions in Workflow-driven Web applications 5/7 <ul><li>Example: Session End Exception </li></ul>
  12. 12. Exceptions in Workflow-driven Web applications 6/7 <ul><li>Classification Based on Exception Type: </li></ul><ul><ul><li>Behavioral: fault user navigation </li></ul></ul><ul><ul><ul><li>Wrong Starting Page </li></ul></ul></ul><ul><ul><ul><li>Action By Completed Activity </li></ul></ul></ul><ul><ul><ul><li>Activity Already Active </li></ul></ul></ul><ul><ul><li>Semantic: process negative logical outcome </li></ul></ul><ul><ul><ul><li>Invalid Loan Amount </li></ul></ul></ul><ul><ul><ul><li>Discount Rate Variation </li></ul></ul></ul><ul><ul><ul><li>Cancel </li></ul></ul></ul><ul><ul><ul><li>Expiration Date Modification </li></ul></ul></ul><ul><ul><li>System: communication failure </li></ul></ul><ul><ul><ul><li>Session End </li></ul></ul></ul>
  13. 13. Exceptions in Workflow-driven Web applications 7/7 <ul><li>Classification Based on Detection Time: </li></ul><ul><ul><li>Synchronous: user session is on </li></ul></ul><ul><ul><li>Asynchronous: user session may be on or off </li></ul></ul>
  14. 14. Table of Contents <ul><li>Workflow-driven Web applications </li></ul><ul><li>Exceptions in workflow-driven Web applications </li></ul><ul><li>Handling Approach </li></ul><ul><ul><li>Exception metadata model </li></ul></ul><ul><ul><li>Capturing – Notifying – Handling model </li></ul></ul><ul><li>Implementation in WebML </li></ul>
  15. 15. Handling Approach 1/11 <ul><li>Exception Metadata Model </li></ul>
  16. 16. Handling Approach 2/11 <ul><li>Capturing Model </li></ul><ul><ul><li>Based on the exceptions type: </li></ul></ul><ul><ul><ul><li>Behavioral </li></ul></ul></ul><ul><ul><ul><li>Semantic </li></ul></ul></ul><ul><ul><ul><li>System </li></ul></ul></ul><ul><ul><li>Composed of: </li></ul></ul><ul><ul><ul><li>Triggers </li></ul></ul></ul><ul><ul><ul><li>Web Services </li></ul></ul></ul>
  17. 17. Handling Approach 3/11 <ul><li>Capturing Model for Behavioral exceptions </li></ul><ul><ul><li>Triggers on workflow metadata </li></ul></ul>Workflow metadata Exception metadata
  18. 18. Handling Approach 4/11 <ul><li>Capturing Model for Semantic exceptions </li></ul><ul><ul><li>Triggers on application data </li></ul></ul><ul><ul><li>Web services called by external/internal applications </li></ul></ul>Exception metadata Application data Message SOAP Message SOAP
  19. 19. Handling Approach 5/11 <ul><li>Capturing Model for System exceptions </li></ul><ul><ul><li>Web services called by the Web Server </li></ul></ul>Exception metadata Message SOAP
  20. 20. Handling Approach 6/11 <ul><li>Notifying Model </li></ul><ul><ul><li>Based on the exceptions detection time: </li></ul></ul><ul><ul><ul><li>Synchronous </li></ul></ul></ul><ul><ul><ul><li>Asynchronous </li></ul></ul></ul><ul><ul><li>Composed of: </li></ul></ul><ul><ul><ul><li>Exception-aware links </li></ul></ul></ul><ul><ul><ul><li>Exception control unit </li></ul></ul></ul>
  21. 21. Handling Approach 7/11 <ul><li>Notifying Model for Synchronous exceptions </li></ul><ul><ul><li>Exception-aware links </li></ul></ul>
  22. 22. Handling Approach 8/11 <ul><li>Notifying Model for Asynchronous exceptions </li></ul><ul><ul><li>Exception Control unit </li></ul></ul>
  23. 23. Handling Approach 9/11 <ul><li>Handling Model </li></ul><ul><ul><li>Based on the exceptions detection time: </li></ul></ul><ul><ul><ul><li>Synchronous </li></ul></ul></ul><ul><ul><ul><li>Asynchronous </li></ul></ul></ul><ul><ul><li>Composed of: </li></ul></ul><ul><ul><ul><li>Predefined policies: resume – reject – accept – ignore - abort </li></ul></ul></ul><ul><ul><ul><li>User-defined policies </li></ul></ul></ul>
  24. 24. Handling Approach 10/11 <ul><li>Handling Model for Synchronous exceptions </li></ul>
  25. 25. Handling Approach 11/11 <ul><li>Handling Model for Asynchronous exceptions </li></ul>
  26. 26. Table of Contents <ul><li>Workflow-driven Web applications </li></ul><ul><li>Exceptions in workflow-driven Web applications </li></ul><ul><li>Handling Approach </li></ul><ul><li>Implementation in WebML </li></ul>
  27. 27. Implementation in WebML 1/4 <ul><li>Exception Metadata Model </li></ul>
  28. 28. Implementation in WebML 2/4 <ul><li>Capturing Model </li></ul><ul><ul><li>Triggers </li></ul></ul><ul><ul><li>Web services </li></ul></ul>
  29. 29. Implementation in WebML 3/4 <ul><li>Notification and Handling Model for Synchronous exceptions </li></ul><ul><ul><li>Exception-Aware link </li></ul></ul><ul><ul><li>Predefined & User-defined policies </li></ul></ul>
  30. 30. Implementation in WebML 4/4 <ul><li>Notification and Handling Model for Asynchronous exceptions </li></ul><ul><ul><li>Exception Control unit </li></ul></ul><ul><ul><li>Exception Index unit </li></ul></ul><ul><ul><li>Predefined & User-defined policies </li></ul></ul>
  31. 31. Thanks! <ul><li>See the details about the WWW 2005 paper: </li></ul><ul><li>http://dbgroup.como.polimi.it/brambilla/node/80 </li></ul><ul><li>... And keep in touch through my homepage and twitter account: </li></ul>http://home.dei.polimi.it/mbrambil http://twitter.com/MarcoBrambi http://www.slideshare.net/mbrambil

×