Build fails in gfac-bes with a fresh m2 repo

2014-10-20 Thread Lahiru Gunathilake
[INFO] Airavata GFac GRAM implementation .. SUCCESS [
0.713 s]
[INFO] Airavata GFac BES implementation ... FAILURE [
1.917 s]
[INFO] Airavata Security Implementation ... SKIPPED
[INFO] Airavata Credential Store Service .. SKIPPED
[INFO] airavata-credential-store-webapp ... SKIPPED
[INFO] Airavata Orchestrator Client SDK ... SKIPPED
[INFO] Airavata Tools . SKIPPED
[INFO] registry-tool .. SKIPPED
[INFO] Airavata Standalone Server . SKIPPED
[INFO] Airavata Test Suite  SKIPPED
[INFO] distribution ... SKIPPED
[INFO] Airavata server distribution ... SKIPPED
[INFO] Airavata Client Distribution Parent  SKIPPED
[INFO] Airavata Client Java Distribution .. SKIPPED
[INFO] Airavata release artifacts . SKIPPED
[INFO] Airavata Integration Tests . SKIPPED
[INFO] Airavata XBaya . SKIPPED
[INFO]

[INFO] BUILD FAILURE
[INFO]

[INFO] Total time: 01:25 min
[INFO] Finished at: 2014-10-20T13:42:35-04:00
[INFO] Final Memory: 121M/1408M
[INFO]

[ERROR] Failed to execute goal on project airavata-gfac-bes: Could not
resolve dependencies for project
org.apache.airavata:airavata-gfac-bes:jar:0.14-SNAPSHOT: The following
artifacts could not be resolved: net.sf.saxon:saxon:jar:9.1.0.8,
net.sf.saxon:saxon-dom:jar:9.1.0.8, net.sf.saxon:saxon-xpath:jar:9.1.0.8:
Could not find artifact net.sf.saxon:saxon:jar:9.1.0.8 in central (
http://repo1.maven.org/maven2) - [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e
switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions,
please read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the
command
[ERROR]   mvn goals -rf :airavata-gfac-bes
[airavata@156-56-179-160 airavata]$ mvn clean install -Dm
-- 
Research Assistant
Science Gateways Group
Indiana University


Re: Evaluate Suitable Scientific Workflow Language for Airavata.

2014-10-20 Thread Amila Jayasekara
Hello,

I am sorry, I am bit late on this thread. But when reading through this
thread I simply got lost, what this thread is discussing. I have few
questions.

1. @Shameera : Is XWF actually a language to define workflow ? To my
understanding it was an intermediate representation to convert workflow
defined in UI to java object model. Was XWF ever used by any airavata user
to define a workflow graph ?

From initial description what I understood is we are looking for a improved
intermediate representation, not a language which describes workflows.

2. So what is the exact purpose of this proposed language ?
- Is it to hide parallelism in workflows ?
- Is it to replace the XBAYA functionalities ? (i hope not)

3. What are we trying to achieve by this proposed language which we cannot
achieved through workflow UI tool ?

4. Who is going to use this language ?

5. Why would a user prefer (assuming intended audience of proposed language
is end users) a language over a Work Flow UI tool such as XBAYA ? (In other
words what are the things we can do with language which we cannot do with
UI)

Sorry, if above questions are in-appropriate, just wanted to understand
what exactly needed.

Thanks
-Thejaka Amila



On Sun, Oct 19, 2014 at 2:29 PM, Supun Kamburugamuva supu...@gmail.com
wrote:

 I think I'm not suggesting to create a Workflow interpreter using Python
 etc. What I'm suggesting is to remove the Worflow aspect from core Airavata
 and move it to a more higher level component. The more I think about it,
 the model I'm suggesting is similar to what Hadoop, Storm etc has done for
 distributed system computations. This model is proven to be successful over
 the years.

 Keeping what Airavata does at its core can help you to build a more robust
 system. If we look at Airavata as middleware to execute applications on
 computing resources we can simplify what Airavata does and focus on
 improving the core functionality. All the successful systems have thrived
 on defining what it does at its core and keeping it simple and being
 excellent at what it does. In that regard keeping workflow aspect out of
 Airavata can help you to focus on the core problem. That is to execute an
 application on a remote computing resource in a fault tolerant and scalable
 manner.

 What I'm suggesting is to give the Orchestrator the capability to execute
 a Driver program that is specified by the user. (This program can be
 written in Python, Java or any other language). This driver program is
 similar to what you define in a Hadoop or Storm configuration. The driver
 program specifies the flow of the computation. It specifies what are the
 applications needs to be executed, how to manipulate input output. The
 driver program is the workflow for the user. Because the user specifies the
 program he can program it to handle workflow steering etc. Every time the
 user wants to execute this program he can tell Airavata to execute the
 Driver program.

 I'm also not 100% sure about all the details. But this can be a new way to
 look at how systems like Airavata should behave. Your thoughts and
 suggestions are more than welcome.

 Thanks,
 Supun..






 On Sat, Oct 18, 2014 at 7:03 PM, Shameera Rathnayaka 
 shameerai...@gmail.com wrote:

 Hi Supun,

 I think we were in two context, because I as suggesting a way to serialize
 and deserialize the workflow description while you are suggesting to
 implement
 some kind of workflow interpreter using Python, where Python client can
 send
 thrift calls to Airavata server to run the application. I can see with
 your
 suggested
 approach we can control the workflow execution process from client side
 which
 make it easy to implement workflow debugger.As you mentioned this is a
 major change
 to Airavata. So we should neatly think as this will change our existing
 architecture.

 Still if someone need to use different language java, php, JS etc ... to
 run the same
 workflow which generated by Python, we need a language independent
 workflow
 description.
 My initial question was what is the best language for this?. But as I have
 explained in
 one of my previous reply, It is not matter what language we used Either we
 can use
 XML or JSON to write this description, what matters is how easy to
 generate
 workflow with the provided API. Hence it would be great to have set of
 neat
 APIs in
 different languages.

 Thanks,
 Shameera.


 On Sat, Oct 18, 2014 at 12:09 PM, Supun Kamburugamuva supu...@gmail.com
 wrote:

  Hi Shameera,
 
  Using python is a radical approach for workflow I think. But I believe
 this
  is a very beautiful and new approach.Here is a possible scenario for
  implementation and running using a Python based library.
 
  The Python library facilitates the creation of Applications and
 submitting
  them to Airavata for execution. The underlying functionality is exactly
  similar to what Java clients provides.The only difference is that,
 Python
  library should have a 

Re: Evaluate Suitable Scientific Workflow Language for Airavata.

2014-10-20 Thread Shameera Rathnayaka
Hi Amila,

Please see my comments inline.

On Mon, Oct 20, 2014 at 3:04 PM, Amila Jayasekara thejaka.am...@gmail.com
wrote:

 Hello,

 I am sorry, I am bit late on this thread. But when reading through this
 thread I simply got lost, what this thread is discussing. I have few
 questions.

 1. @Shameera : Is XWF actually a language to define workflow ? To my
 understanding it was an intermediate representation to convert workflow
 defined in UI to java object model. Was XWF ever used by any airavata user
 to define a workflow graph ?


​Yes, XWF is the language defined and used by Airavata  to explain the
workflows but it is not well documented. Both server and client sides read
this description language to generate runtime java representation. ​ so
when you used XBaya to create a workflow with multiple applications, under
the hood XBaya generate xwf which describe that workflow to server.




 From initial description what I understood is we are looking for a
 improved intermediate representation, not a language which describes
 workflows.
 ​



 2. So what is the exact purpose of this proposed language ?
 - Is it to hide parallelism in workflows ?
 - Is it to replace the XBAYA functionalities ? (i hope not)



​Actually initial idea was to identify good, well-defined and scientific
domain friendly language. Whole purpose of this effort is reduce the entry
barrier of the end user. But later it is understood that introducing a new
language won't fix our issue.



 3. What are we trying to achieve by this proposed language which we cannot
 achieved through workflow UI tool ?

 4. Who is going to use this language ?


​As I explained, our direction has been changed.By introducing a new
language we are get nothing but nice description file. No functional
improvements etc ... The current language should use all airavata
client(Currently we have only XBaya) side applications to explain the
workflow to the server side.




 5. Why would a user prefer (assuming intended audience of proposed
 language is end users) a language over a Work Flow UI tool such as XBAYA ?
 (In other words what are the things we can do with language which we cannot
 do with UI)


​Let's say you are going to write a new web base client for Airavata which
generate workflows and launch it.​ What you need to do is do some magic
with UI and finally come up with description language and send it to server
side. Here you need to learn how to write a valid XWF file and write your
own JS code to generate it. But if airavata has a JavaScript API which can
be used to generate XWF for you by getting JSON objects as input then it
would be great help for client side developers.

Thank,
Shameera.




 Sorry, if above questions are in-appropriate, just wanted to understand
 what exactly needed.

 Thanks
 -Thejaka Amila



 On Sun, Oct 19, 2014 at 2:29 PM, Supun Kamburugamuva supu...@gmail.com
 wrote:

 I think I'm not suggesting to create a Workflow interpreter using Python
 etc. What I'm suggesting is to remove the Worflow aspect from core Airavata
 and move it to a more higher level component. The more I think about it,
 the model I'm suggesting is similar to what Hadoop, Storm etc has done for
 distributed system computations. This model is proven to be successful over
 the years.

 Keeping what Airavata does at its core can help you to build a more
 robust system. If we look at Airavata as middleware to execute applications
 on computing resources we can simplify what Airavata does and focus on
 improving the core functionality. All the successful systems have thrived
 on defining what it does at its core and keeping it simple and being
 excellent at what it does. In that regard keeping workflow aspect out of
 Airavata can help you to focus on the core problem. That is to execute an
 application on a remote computing resource in a fault tolerant and scalable
 manner.

 What I'm suggesting is to give the Orchestrator the capability to execute
 a Driver program that is specified by the user. (This program can be
 written in Python, Java or any other language). This driver program is
 similar to what you define in a Hadoop or Storm configuration. The driver
 program specifies the flow of the computation. It specifies what are the
 applications needs to be executed, how to manipulate input output. The
 driver program is the workflow for the user. Because the user specifies the
 program he can program it to handle workflow steering etc. Every time the
 user wants to execute this program he can tell Airavata to execute the
 Driver program.

 I'm also not 100% sure about all the details. But this can be a new way
 to look at how systems like Airavata should behave. Your thoughts and
 suggestions are more than welcome.

 Thanks,
 Supun..






 On Sat, Oct 18, 2014 at 7:03 PM, Shameera Rathnayaka 
 shameerai...@gmail.com wrote:

 Hi Supun,

 I think we were in two context, because I as suggesting a way to
 serialize
 and deserialize the 

Re: Evaluate Suitable Scientific Workflow Language for Airavata.

2014-10-20 Thread Lahiru Gunathilake
Hi Shameera,

I think the whole point of introducing thrift is to support language
bindings for gateway developers and I do not think we should limit this
freedom by introducing a python client just to build a workflow. I propose
to represent a workflow as a thrift data-structure (I think by using
thrift's list objects we can create an adjacency list and of course it will
be tricky because of thrift unsupport for inheritance and other limitations
but I think it will be worth the effort assuming thrift IDL will be
improved a lot in future). If we can represent a workflow as a thrift
object model in the client side all the workflow related CRUD operations
can be generated using thrift, so we can support all the languages which
thrift support.

To submit a workflow we can introduce another thrift operation which accept
the big workflow thrift object and workflow interpreter can parse this and
execute the workflow. Internally we can use XWF and we can convert thrift
model to XWF and XWF to a thrift object.

Regards
Lahiru

On Mon, Oct 20, 2014 at 10:35 PM, Shameera Rathnayaka 
shameerai...@gmail.com wrote:

 Hi Amila,

 Please see my comments inline.

 On Mon, Oct 20, 2014 at 3:04 PM, Amila Jayasekara thejaka.am...@gmail.com
  wrote:

 Hello,

 I am sorry, I am bit late on this thread. But when reading through this
 thread I simply got lost, what this thread is discussing. I have few
 questions.

 1. @Shameera : Is XWF actually a language to define workflow ? To my
 understanding it was an intermediate representation to convert workflow
 defined in UI to java object model. Was XWF ever used by any airavata user
 to define a workflow graph ?


 ​Yes, XWF is the language defined and used by Airavata  to explain the
 workflows but it is not well documented. Both server and client sides read
 this description language to generate runtime java representation. ​ so
 when you used XBaya to create a workflow with multiple applications, under
 the hood XBaya generate xwf which describe that workflow to server.




 From initial description what I understood is we are looking for a
 improved intermediate representation, not a language which describes
 workflows.
 ​



 2. So what is the exact purpose of this proposed language ?
 - Is it to hide parallelism in workflows ?
 - Is it to replace the XBAYA functionalities ? (i hope not)



 ​Actually initial idea was to identify good, well-defined and scientific
 domain friendly language. Whole purpose of this effort is reduce the entry
 barrier of the end user. But later it is understood that introducing a new
 language won't fix our issue.



 3. What are we trying to achieve by this proposed language which we
 cannot achieved through workflow UI tool ?

 4. Who is going to use this language ?


 ​As I explained, our direction has been changed.By introducing a new
 language we are get nothing but nice description file. No functional
 improvements etc ... The current language should use all airavata
 client(Currently we have only XBaya) side applications to explain the
 workflow to the server side.




 5. Why would a user prefer (assuming intended audience of proposed
 language is end users) a language over a Work Flow UI tool such as XBAYA ?
 (In other words what are the things we can do with language which we cannot
 do with UI)


 ​Let's say you are going to write a new web base client for Airavata which
 generate workflows and launch it.​ What you need to do is do some magic
 with UI and finally come up with description language and send it to server
 side. Here you need to learn how to write a valid XWF file and write your
 own JS code to generate it. But if airavata has a JavaScript API which can
 be used to generate XWF for you by getting JSON objects as input then it
 would be great help for client side developers.

 Thank,
 Shameera.




 Sorry, if above questions are in-appropriate, just wanted to understand
 what exactly needed.

 Thanks
 -Thejaka Amila



 On Sun, Oct 19, 2014 at 2:29 PM, Supun Kamburugamuva supu...@gmail.com
 wrote:

 I think I'm not suggesting to create a Workflow interpreter using Python
 etc. What I'm suggesting is to remove the Worflow aspect from core Airavata
 and move it to a more higher level component. The more I think about it,
 the model I'm suggesting is similar to what Hadoop, Storm etc has done for
 distributed system computations. This model is proven to be successful over
 the years.

 Keeping what Airavata does at its core can help you to build a more
 robust system. If we look at Airavata as middleware to execute applications
 on computing resources we can simplify what Airavata does and focus on
 improving the core functionality. All the successful systems have thrived
 on defining what it does at its core and keeping it simple and being
 excellent at what it does. In that regard keeping workflow aspect out of
 Airavata can help you to focus on the core problem. That is to execute an
 application on a remote 

Re: Evaluate Suitable Scientific Workflow Language for Airavata.

2014-10-20 Thread Amila Jayasekara
Hi Shameera,

Thanks for the reply.

I wouldnt call XWF a language. It is not a language in any sense but an
intermediate representation of a workflow graph.
To my understanding what you need is not a language but an efficient
portable intermediate representation. Seems you also have realized it. JSON
might be a good candidate provided most of the frontends are web based.

Thanks
-Thejaka

On Mon, Oct 20, 2014 at 10:35 PM, Shameera Rathnayaka 
shameerai...@gmail.com wrote:

 Hi Amila,

 Please see my comments inline.

 On Mon, Oct 20, 2014 at 3:04 PM, Amila Jayasekara thejaka.am...@gmail.com
 
 wrote:

  Hello,
 
  I am sorry, I am bit late on this thread. But when reading through this
  thread I simply got lost, what this thread is discussing. I have few
  questions.
 
  1. @Shameera : Is XWF actually a language to define workflow ? To my
  understanding it was an intermediate representation to convert workflow
  defined in UI to java object model. Was XWF ever used by any airavata
 user
  to define a workflow graph ?
 

 ​Yes, XWF is the language defined and used by Airavata  to explain the
 workflows but it is not well documented. Both server and client sides read
 this description language to generate runtime java representation. ​ so
 when you used XBaya to create a workflow with multiple applications, under
 the hood XBaya generate xwf which describe that workflow to server.



 
  From initial description what I understood is we are looking for a
  improved intermediate representation, not a language which describes
  workflows.
  ​
 
 

  2. So what is the exact purpose of this proposed language ?
  - Is it to hide parallelism in workflows ?
  - Is it to replace the XBAYA functionalities ? (i hope not)
 


 ​Actually initial idea was to identify good, well-defined and scientific
 domain friendly language. Whole purpose of this effort is reduce the entry
 barrier of the end user. But later it is understood that introducing a new
 language won't fix our issue.


 
  3. What are we trying to achieve by this proposed language which we
 cannot
  achieved through workflow UI tool ?
 
  4. Who is going to use this language ?
 

 ​As I explained, our direction has been changed.By introducing a new
 language we are get nothing but nice description file. No functional
 improvements etc ... The current language should use all airavata
 client(Currently we have only XBaya) side applications to explain the
 workflow to the server side.



 
  5. Why would a user prefer (assuming intended audience of proposed
  language is end users) a language over a Work Flow UI tool such as XBAYA
 ?
  (In other words what are the things we can do with language which we
 cannot
  do with UI)
 

 ​Let's say you are going to write a new web base client for Airavata which
 generate workflows and launch it.​ What you need to do is do some magic
 with UI and finally come up with description language and send it to server
 side. Here you need to learn how to write a valid XWF file and write your
 own JS code to generate it. But if airavata has a JavaScript API which can
 be used to generate XWF for you by getting JSON objects as input then it
 would be great help for client side developers.

 Thank,
 Shameera.



 
  Sorry, if above questions are in-appropriate, just wanted to understand
  what exactly needed.
 
  Thanks
  -Thejaka Amila
 
 
 
  On Sun, Oct 19, 2014 at 2:29 PM, Supun Kamburugamuva supu...@gmail.com
  wrote:
 
  I think I'm not suggesting to create a Workflow interpreter using Python
  etc. What I'm suggesting is to remove the Worflow aspect from core
 Airavata
  and move it to a more higher level component. The more I think about it,
  the model I'm suggesting is similar to what Hadoop, Storm etc has done
 for
  distributed system computations. This model is proven to be successful
 over
  the years.
 
  Keeping what Airavata does at its core can help you to build a more
  robust system. If we look at Airavata as middleware to execute
 applications
  on computing resources we can simplify what Airavata does and focus on
  improving the core functionality. All the successful systems have
 thrived
  on defining what it does at its core and keeping it simple and being
  excellent at what it does. In that regard keeping workflow aspect out of
  Airavata can help you to focus on the core problem. That is to execute
 an
  application on a remote computing resource in a fault tolerant and
 scalable
  manner.
 
  What I'm suggesting is to give the Orchestrator the capability to
 execute
  a Driver program that is specified by the user. (This program can be
  written in Python, Java or any other language). This driver program is
  similar to what you define in a Hadoop or Storm configuration. The
 driver
  program specifies the flow of the computation. It specifies what are the
  applications needs to be executed, how to manipulate input output. The
  driver program is the workflow for the user. Because the