SlideShare una empresa de Scribd logo
1 de 26
Modelling Safe Interface Interactions
in Web Applications
Marco Brambilla1
, Jordi Cabot2
and Michael Grossniklaus1
Politecnico di Milano1
Open University of Catalonia2
Index
 Introduction
 Goal
 Modeling Safe Interfaces
 Tracking user-interaction
 Methodology
 Implementation
 Related work
 Conclusions
Introduction
 Web has evolved from navigation of simple hypertext documents
to a a platform for complex business applications
 Now, complex events and business logic + RIAs and AJAX
 Original interaction paradigm (static content pages + hyperlinks)
is not valid anymore
 Browsers themselves are inadequate for the current web
complexity  Back and forward button
 The same application behaves differently depending on the
browser and settings defined
Examples: GMail and Amazon bug
… but many more
 Linkedin, iGoogle, survey monkey, gap, hostel world, lastminute,
….
 Solutions are site-specific (e.g. GMail moving from using a single
URL for the application to a different URL for each message;
blocking of browser buttons)
 But still, sites are unable to
– Preserve the complete navigation history
– Offer rollback/compensation of side effects when backward navigation
– Fine-grained back and forward management
Index
 Introduction
 Goal
 Modeling Safe Interfaces
 Tracking user-interaction
 Methodology
 Implementation
 Related work
 Conclusions
Goal
Proposing a method for modeling and running web applications
with a safe interface interaction behaviour
1. Users can freely navigate through Web applications
2. Tool developers do not need to implement this safe behaviour from scratch
3. Our method is complementary to existing web modeling approaches
1. Moving from a browsing paradigm based on Pages with related Back and
Forward buttons to a full-fledged interactive paradigm based on States
2. Offering design-time and run-time support to create web applications
under this new paradigm
Benefits
Index
 Introduction
 Goal
 Modeling Safe Interfaces
 Tracking user-interaction
 Methodology
 Implementation
 Related work
 Conclusions
Modeling safe interfaces
 MOF-compliant metamodel based on the state machines
sublanguage of the UML
 Adapted to the web application domain by means of adding web
concepts like Page and GraphicalElement
 Concrete syntax for the language not yet formally defined
Graph Transformation by Example: Metamodel
PredefinedActionType
GraphicalElement
-id
-name
-type
ActionParameters
-name
-type
Action
-id
-type
-do_specification
-undo_specification
PageParameters
-type
-name
TriggerEvent
-type : EventType
Transition
-id
<<enumeration>>
EventType
ButtonClick
ListSelect
...
ExceptionState
Page
-id
-url
State
-name
-id
Transaction
Application
-id
-name
InitialState FinalState
Contains
1..*
1
-outgoing
0..*
-target
1
-source
1
-incoming
0..* TriggeredBy 1..*1
Effect
{ordered}0..*
1
1..*1
On
1
0..*
1..*
0..1
Includes
1..*
1
Has
1..*1
0..* 1
/ LinksTo
*
*
Modeling safe interfaces – Example (1)
− Show the internal workflow of the Mail page
− It is now clear when to go back to the previous page and when to stay
Modeling safe interfaces – Example (2)
− The transaction (dashed box) clarifies that an undo in the Delete message
state should undo the delete and move the user back to the show inbox page
Index
 Introduction
 Goal
 Modeling Safe Interfaces
 Tracking user-interaction
 Methodology
 Implementation
 Related work
 Conclusions
Run-time support
 We need to insure that the web application behaves as expected
 This requires to keep the execution trace of all events, visited
states, accessed pages and executed actions executed so far
 Mandatory to be able to retrieve previous states of the
application when moving back and forth (or undoing Txs)
 We provide:
– The data structures to store this information
– An API to manipulate and query these data structures
 The API facilitates the development of web applications
Metamodel for the run-time support
ActionExecutionParam
-value
TransactionExecution
-startTime
-endTime
ApplicationExecution
-id
-startTime
-endTime
TransitionExecution
-timestamp GraphicalElement
ActionParameters
PageParameters
ActionExecution
-timestamp
EventExecution
-timestamp
TriggerEvent
PageAccess
-timestamp
Transaction
InputParam
-value
Application
Transition
Page
User
-id
-name
Visit
-id
-timestamp
Action
State
0..*
1
10..*
-value
ElementState
ElementState
0..*
1
0..*
1
1..*1
CurrentVisit
1
0..1
TriggeredBy
1..*
1
1
1..*
ExecutedBy
1 0..*
1 0..*
1
1
0..*
1
1..*
1
1
0..*
-from
1
-next
1
-to
1
-previous
1
1
PartOf
0..1
1..*
Some API functions
− State::getNextState(Event e): State  informs about the next state to go
based on the current one and the given event
− Visit::getNext(): Visit  queries next visit
− Visit::getPrevious(): Visit  queries previous visit
− ApplicationExecution::do (EventExec e, Parameter[] p): Visit  moves to
next visit
− ApplicationExecution::redo():Visit  moves to the (previously visited) next
visit
− ApplicationExecution::undo():Visit  moves to previous visit reversing all
executed actions
− Visit::clone():Visit  creates a clone of the visit
− ActionExecution::do (ActionExecutionParam[] params)  executes the
action
− ActionExecution::undo (ActionExecutionParam[] params)  undoes the
effect of the action
− TransitionExecution::undo()  undoes all actions associated to the transition
− TransactionExecution::rollback() rollbacks the transaction
Let’s see now how with our API we can force a correct behaviour
of the “Back” browser action
[ ]
loop
in : TransitionExecution: ApplicationExecution : ActionExecutionprevious : Visitcurrent : Visit
cloned : Visit
: User
undo()10:
undo()2:
cloned12:
getCurrentVisit()3:
getPrevious()4:
assignNextVisit(current)7:
clone()5:
getIncomingTransition()8:
undo()9:
getPageAccessAndParams()11:
6:
Back()1:
Index
 Introduction
 Goal
 Modeling Safe Interfaces
 Tracking user-interaction
 Methodology
 Implementation
 Related work
 Conclusions
Methodology
 Two ways of using the method
Standalone approach:
 More oriented to traditional developers that may use the API for
getting immediate benefits during the development
 The most they are willing to do is to adopt a simple notation to
describe the basic structure of the application
Integration with existing Web Development Methods:
 Decide whether to create a new view or blend with existing views
(e.g. navigation model)
 Add new primitives and resolve semantic conflicts
Methodology: Integration with existing methods
Index
 Introduction
 Goal
 Modeling Safe Interfaces
 Tracking user-interaction
 Methodology
 Implementation
 Related work
 Conclusions
Implementation
 Screenshot?
Index
 Introduction
 Goal
 Modeling Safe Interfaces
 Tracking user-interaction
 Methodology
 Implementation
 Related work
 Conclusions
Related work
 Several other approaches have proposed using state machines to
specify the interface of web applications.
 Recent extensions to existing Web Eng. Methods have covered
RIAs
 Specific solutions to the problem of using the back button in a
browser have been proposed as well
We propose
− A generic method
− For the fine-grained definition of web interfaces
− With predefined support for their implementation
− With undo/redo support and taking into account the interaction
with the browser
Index
 Introduction
 Goal
 Modeling Safe Interfaces
 Tracking user-interaction
 Methodology
 Implementation
 Related work
 Conclusions
Conclusions and further work
 We have presented a new method for the modeling and implementation of
safe interface interactions in web applications
 Based on state semantics and with transactional and full-fledged undo/redo
capabilities to improve the browsing user experience
 As future work we would like to test the methodological guidelines by
– extending the code generator of WebML to support our new features and
validate the scalability and completeness of our primitives
– Developing a simple code generator for the standalone approach that transforms
the models to skeletons of JEE code that invoke our API

Más contenido relacionado

Similar a Modeling Safe Interface Interactions in Web Applications (ER´09)

WebRatio BPM: a Tool for Designing and Deploying Business Processes on the Web
WebRatio BPM: a Tool for Designing and Deploying Business Processes on the WebWebRatio BPM: a Tool for Designing and Deploying Business Processes on the Web
WebRatio BPM: a Tool for Designing and Deploying Business Processes on the Web
Marco Brambilla
 
Lecture14 abap on line
Lecture14 abap on lineLecture14 abap on line
Lecture14 abap on line
Milind Patil
 
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and MobileModern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Dan Mohl
 

Similar a Modeling Safe Interface Interactions in Web Applications (ER´09) (20)

Struts natraj - satya
Struts   natraj - satyaStruts   natraj - satya
Struts natraj - satya
 
Struts natraj - satya
Struts   natraj - satyaStruts   natraj - satya
Struts natraj - satya
 
Struts notes
Struts notesStruts notes
Struts notes
 
Client Side MVC & Angular
Client Side MVC & AngularClient Side MVC & Angular
Client Side MVC & Angular
 
Web engineering
Web engineeringWeb engineering
Web engineering
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
 
Introduction to Angularjs : kishan kumar
Introduction to Angularjs : kishan kumarIntroduction to Angularjs : kishan kumar
Introduction to Angularjs : kishan kumar
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
 
Selenium Testing Training in Bangalore
Selenium Testing Training in BangaloreSelenium Testing Training in Bangalore
Selenium Testing Training in Bangalore
 
Research Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and ScienceResearch Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and Science
 
WebRatio BPM: a Tool for Designing and Deploying Business Processes on the Web
WebRatio BPM: a Tool for Designing and Deploying Business Processes on the WebWebRatio BPM: a Tool for Designing and Deploying Business Processes on the Web
WebRatio BPM: a Tool for Designing and Deploying Business Processes on the Web
 
WebML for OMG
WebML for OMGWebML for OMG
WebML for OMG
 
IRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET- MVC Framework: A Modern Web Application Development Approach and WorkingIRJET- MVC Framework: A Modern Web Application Development Approach and Working
IRJET- MVC Framework: A Modern Web Application Development Approach and Working
 
Ppt of Basic MVC Structure
Ppt of Basic MVC StructurePpt of Basic MVC Structure
Ppt of Basic MVC Structure
 
Beyond The MVC
Beyond The MVCBeyond The MVC
Beyond The MVC
 
Lecture14 abap on line
Lecture14 abap on lineLecture14 abap on line
Lecture14 abap on line
 
AnikResume
AnikResumeAnikResume
AnikResume
 
Naresh Chirra
Naresh ChirraNaresh Chirra
Naresh Chirra
 
Lecture 10.pptx
Lecture 10.pptxLecture 10.pptx
Lecture 10.pptx
 
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and MobileModern Software Architectures: Building Solutions for Web, Cloud, and Mobile
Modern Software Architectures: Building Solutions for Web, Cloud, and Mobile
 

Más de Jordi Cabot

Más de Jordi Cabot (20)

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architectures
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart software
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific discipline
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become Entrepreneurs
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven Engineering
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platform
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems Modeling
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulos
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model Transformations
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIs
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platform
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL Databases
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

Modeling Safe Interface Interactions in Web Applications (ER´09)

  • 1. Modelling Safe Interface Interactions in Web Applications Marco Brambilla1 , Jordi Cabot2 and Michael Grossniklaus1 Politecnico di Milano1 Open University of Catalonia2
  • 2. Index  Introduction  Goal  Modeling Safe Interfaces  Tracking user-interaction  Methodology  Implementation  Related work  Conclusions
  • 3. Introduction  Web has evolved from navigation of simple hypertext documents to a a platform for complex business applications  Now, complex events and business logic + RIAs and AJAX  Original interaction paradigm (static content pages + hyperlinks) is not valid anymore  Browsers themselves are inadequate for the current web complexity  Back and forward button  The same application behaves differently depending on the browser and settings defined
  • 4. Examples: GMail and Amazon bug
  • 5. … but many more  Linkedin, iGoogle, survey monkey, gap, hostel world, lastminute, ….  Solutions are site-specific (e.g. GMail moving from using a single URL for the application to a different URL for each message; blocking of browser buttons)  But still, sites are unable to – Preserve the complete navigation history – Offer rollback/compensation of side effects when backward navigation – Fine-grained back and forward management
  • 6. Index  Introduction  Goal  Modeling Safe Interfaces  Tracking user-interaction  Methodology  Implementation  Related work  Conclusions
  • 7. Goal Proposing a method for modeling and running web applications with a safe interface interaction behaviour 1. Users can freely navigate through Web applications 2. Tool developers do not need to implement this safe behaviour from scratch 3. Our method is complementary to existing web modeling approaches 1. Moving from a browsing paradigm based on Pages with related Back and Forward buttons to a full-fledged interactive paradigm based on States 2. Offering design-time and run-time support to create web applications under this new paradigm Benefits
  • 8. Index  Introduction  Goal  Modeling Safe Interfaces  Tracking user-interaction  Methodology  Implementation  Related work  Conclusions
  • 9. Modeling safe interfaces  MOF-compliant metamodel based on the state machines sublanguage of the UML  Adapted to the web application domain by means of adding web concepts like Page and GraphicalElement  Concrete syntax for the language not yet formally defined
  • 10. Graph Transformation by Example: Metamodel PredefinedActionType GraphicalElement -id -name -type ActionParameters -name -type Action -id -type -do_specification -undo_specification PageParameters -type -name TriggerEvent -type : EventType Transition -id <<enumeration>> EventType ButtonClick ListSelect ... ExceptionState Page -id -url State -name -id Transaction Application -id -name InitialState FinalState Contains 1..* 1 -outgoing 0..* -target 1 -source 1 -incoming 0..* TriggeredBy 1..*1 Effect {ordered}0..* 1 1..*1 On 1 0..* 1..* 0..1 Includes 1..* 1 Has 1..*1 0..* 1 / LinksTo * *
  • 11. Modeling safe interfaces – Example (1) − Show the internal workflow of the Mail page − It is now clear when to go back to the previous page and when to stay
  • 12. Modeling safe interfaces – Example (2) − The transaction (dashed box) clarifies that an undo in the Delete message state should undo the delete and move the user back to the show inbox page
  • 13. Index  Introduction  Goal  Modeling Safe Interfaces  Tracking user-interaction  Methodology  Implementation  Related work  Conclusions
  • 14. Run-time support  We need to insure that the web application behaves as expected  This requires to keep the execution trace of all events, visited states, accessed pages and executed actions executed so far  Mandatory to be able to retrieve previous states of the application when moving back and forth (or undoing Txs)  We provide: – The data structures to store this information – An API to manipulate and query these data structures  The API facilitates the development of web applications
  • 15. Metamodel for the run-time support ActionExecutionParam -value TransactionExecution -startTime -endTime ApplicationExecution -id -startTime -endTime TransitionExecution -timestamp GraphicalElement ActionParameters PageParameters ActionExecution -timestamp EventExecution -timestamp TriggerEvent PageAccess -timestamp Transaction InputParam -value Application Transition Page User -id -name Visit -id -timestamp Action State 0..* 1 10..* -value ElementState ElementState 0..* 1 0..* 1 1..*1 CurrentVisit 1 0..1 TriggeredBy 1..* 1 1 1..* ExecutedBy 1 0..* 1 0..* 1 1 0..* 1 1..* 1 1 0..* -from 1 -next 1 -to 1 -previous 1 1 PartOf 0..1 1..*
  • 16. Some API functions − State::getNextState(Event e): State  informs about the next state to go based on the current one and the given event − Visit::getNext(): Visit  queries next visit − Visit::getPrevious(): Visit  queries previous visit − ApplicationExecution::do (EventExec e, Parameter[] p): Visit  moves to next visit − ApplicationExecution::redo():Visit  moves to the (previously visited) next visit − ApplicationExecution::undo():Visit  moves to previous visit reversing all executed actions − Visit::clone():Visit  creates a clone of the visit − ActionExecution::do (ActionExecutionParam[] params)  executes the action − ActionExecution::undo (ActionExecutionParam[] params)  undoes the effect of the action − TransitionExecution::undo()  undoes all actions associated to the transition − TransactionExecution::rollback() rollbacks the transaction Let’s see now how with our API we can force a correct behaviour of the “Back” browser action
  • 17. [ ] loop in : TransitionExecution: ApplicationExecution : ActionExecutionprevious : Visitcurrent : Visit cloned : Visit : User undo()10: undo()2: cloned12: getCurrentVisit()3: getPrevious()4: assignNextVisit(current)7: clone()5: getIncomingTransition()8: undo()9: getPageAccessAndParams()11: 6: Back()1:
  • 18. Index  Introduction  Goal  Modeling Safe Interfaces  Tracking user-interaction  Methodology  Implementation  Related work  Conclusions
  • 19. Methodology  Two ways of using the method Standalone approach:  More oriented to traditional developers that may use the API for getting immediate benefits during the development  The most they are willing to do is to adopt a simple notation to describe the basic structure of the application Integration with existing Web Development Methods:  Decide whether to create a new view or blend with existing views (e.g. navigation model)  Add new primitives and resolve semantic conflicts
  • 20. Methodology: Integration with existing methods
  • 21. Index  Introduction  Goal  Modeling Safe Interfaces  Tracking user-interaction  Methodology  Implementation  Related work  Conclusions
  • 23. Index  Introduction  Goal  Modeling Safe Interfaces  Tracking user-interaction  Methodology  Implementation  Related work  Conclusions
  • 24. Related work  Several other approaches have proposed using state machines to specify the interface of web applications.  Recent extensions to existing Web Eng. Methods have covered RIAs  Specific solutions to the problem of using the back button in a browser have been proposed as well We propose − A generic method − For the fine-grained definition of web interfaces − With predefined support for their implementation − With undo/redo support and taking into account the interaction with the browser
  • 25. Index  Introduction  Goal  Modeling Safe Interfaces  Tracking user-interaction  Methodology  Implementation  Related work  Conclusions
  • 26. Conclusions and further work  We have presented a new method for the modeling and implementation of safe interface interactions in web applications  Based on state semantics and with transactional and full-fledged undo/redo capabilities to improve the browsing user experience  As future work we would like to test the methodological guidelines by – extending the code generator of WebML to support our new features and validate the scalability and completeness of our primitives – Developing a simple code generator for the standalone approach that transforms the models to skeletons of JEE code that invoke our API

Notas del editor

  1. To present you a method that helps the designer during the specification of the software system by automatically generating a set of operations for a given class diagram.
  2. Simple is more or less as public
  3. Simple is more or less as public
  4. Simple is more or less as public
  5. Simple is more or less as public
  6. In particular we will represent rules as pre/postcondition contracts E.g. once expressed in OCL we can apply code-generation techniques to the rules
  7. Simple is more or less as public
  8. Simple is more or less as public
  9. Transactions not exaclty in the database sense
  10. Simple is more or less as public
  11. Basically, we create a class to store the information of each element
  12. Strong executability: r is strongly executable if, for any legal instantiation that satisfies the pre-condition, there is another legal instantiation that satisfies the post-condition.  I :  I’ : (INV[I] and PREr[I])  (INV[I’] and POSTr[I, I’])
  13. Simple is more or less as public
  14. Simple is more or less as public
  15. Simple is more or less as public
  16. Simple is more or less as public
  17. Indeed, once GT rules are expressed in OCL, we can benefit from all tools designed for managing OCL expressions when dealing with the GT rules. VAlidation: here an initial host graph is passed as an additional parameter to the verification tool)