[ 
https://issues.apache.org/jira/browse/AIRAVATA-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13409057#comment-13409057
 ] 

Hasitha Aravinda commented on AIRAVATA-343:
-------------------------------------------

Please follow the following steps to apply the patch and to debug a workflow 
using currently implemented functionalities.

Applying Patches and Building the xbaya-gui with new Changes
==============================================
1) First Apply above patch to xbaya-gui module. 

2) Then apply the GenericInvoker.patch attached at AIRAVATA-512 [1] JIRA. It 
allows to capture Input Message and Fault Messages during WSComponent execution.

3) Then Build xbaya-gui module using maven.



Debugging ComplexMath.xwf using TestCase
=================================

I have created a test-case called WorkflowDebuggingTest to test debugger module 
functionalities. It demonstrates how debugger API can be used to debug a 
workflow. 

In this test case, it sets all nodes of the ComplexMath.xwf as break points and 
then starts workflow execution. Since all node are break points, workflow 
execution will pause at every node. A separate thread watches this workflow 
execution and when workflow execution is paused at a break point, the thread 
notifys debugger to continue the workflow execution. In parallel to that, some 
of the event data which are captured during node execution will log runtime. 

This test-case only shows some of the basic functions of the debugger module. I 
have created a sample Debugger GUI and It can be used to test other 
functionalities of the debugger module. 


Debugging using sample GUI debugger
=============================

1)     Check out sample GUI debugger from [2] and build it using maven.

2)     Run sampleDebuggerClient-1.0.jar which created at target directory.

3)      After the opening Debugger window, Click on “select” button which 
located at right top corner  -> then select a XBaya workflow file from file 
browswe (ex: ComplexMath.xwf) ->  then click Open.

4)      Click on “Load workflow” button to load workflow nodes. It will show 
all available nodes of the selected workflow in "Available Nodes .. " list.

5)      Add a node into break points list by double clicking on a node in 
"available nodes .." list.

6)      Also you can remove break point nodes by double clicking on a node on 
break point list.
(Note: Also you can add and remove break points during the workflow execution)

5)      Click on “Debug <your_workflow_name>” button to start debugging.

6)      Manipulate workflow execution using Continue, Step, Pause and Terminate 
buttons.

7)     Click on an event in “Workflow Debug process monitor” table to display 
more details about the selected event.

8)      If you select a “DEBUG” event you can see some other options will 
enable like "Input, Input messages, output message, fault message, Advance 
object navigation" depending on captured data and the event.

9)      You can use “Advance object navigation ” tab to explore objects which 
are captured during corresponding node execution. To explore an object details, 
right click on corresponding tree node and select "explore object".    



Please let me know if you have any questions.


[1] https://issues.apache.org/jira/browse/AIRAVATA-512
[2] 
http://svn.codespot.com/a/apache-extras.org/airavata-gsoc-sandbox/trunk/hasitha/sampleDebuggerClient/

                
> [GSoC] Workflow Debugging Framework for Airavata
> ------------------------------------------------
>
>                 Key: AIRAVATA-343
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-343
>             Project: Airavata
>          Issue Type: New Feature
>          Components: Workflow Interpreter
>            Reporter: Saminda Wijeratne
>            Priority: Minor
>              Labels: gsoc2012, mentor
>         Attachments: debuggerModule_midterm_eval.patch
>
>
> The backend of Airavata should support workflow debugging. It should expose 
> some API that will enable users to connect & 
> 1. Receive workflow execution data, current state data
> 2. Send commands to manipulate execution life cycle 
> (pause/resume/restart/stop etc.)
> 3. Modify workflow data on the fly
> The API should be intuitive, language independent & supports remote debugging.
> The specifics for the task & the level of debugging is open for discussion.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to