6 Replies Latest reply: Aug 26, 2010 5:46 AM by Gary Brown RSS

The choreography execution environment

glaucus augustus Newbie

Hi,

 

 

I've been studying choreographies, starting with pi4soa and now with Savara.

 

 

I don't have a clear concept on how the choreographies are executed, I mean, there's a engine to "run"(verify) the ws-cdl file?

 

There's a way to execute a choreography just with ws-cdl and wsdl files or it'll always need a ws-bpel and his engine?

 

 

In the TrailBlazer example, it seems like it uses jms to comunicate between the services. The project does not support yet web services?

 

 

I'm sorry if I'm asking about some obvious thing or in the wrong place

 

 

Thank you in advance

  • 1. Re: The choreography execution environment
    Gary Brown Master

    Hi

    I don't have a clear concept on how the choreographies are executed, I mean, there's a engine to "run"(verify) the ws-cdl file?

     

    There's a way to execute a choreography just with ws-cdl and wsdl files or it'll always need a ws-bpel and his engine?

     

    Choreographies are not intended to be executable. They provide a description of the externally observable behaviour of a set of interacting services.

     

    So you will always need service implementations, not necessarily BPEL though - could be any implementation language/technology, and theoretically any communication approach, async messaging (e.g. JMS), web services, etc.

     

    In the TrailBlazer example, it seems like it uses jms to comunicate between the services. The project does not support yet web services?

     

    The Trailblazer example uses ESB services, and the ESB uses JMS as its transport mechanism - so indirectly the example is using JMS.

     

    At present, the Savara Service Validators only monitor the JBossESB, but version 1.1 of Savara should also monitor web services.

     

    Regards

    Gary

  • 2. Re: The choreography execution environment
    glaucus augustus Newbie

    Hi,

     

    Thank you for the explanation.

     

    You are saying that I can use java and web services for example, to execute my choreographies, right?

     

    The Savara's eclipse plugin provides me a way to generate the wsdl from a choreography. Eclipse provides me a way to generate the skeleton java from a wsdl. So, if I use both functions, might it work? will I have the choreography running (not exactly) at the end? in the latest version of Savara?

     

    I'm asking this because I've been tried this, and when I attempt to generate the java code from de wsdl it gives errors to me.

     

    Sorry if I've been this kind of pertinent, but I really want to execute a choreography and I think you could explain me how.

     

    Thank you

  • 3. Re: The choreography execution environment
    Gary Brown Master
    You are saying that I can use java and web services for example, to execute my choreographies, right?

     

     

    Yes, although I wouldn't use the word 'execute' - that is like saying I am going to execute my WSDL using Java. WSDL and WS-CDL are just descriptions of an interface between services - WSDL is a functional interface, whereas WS-CDL can be considered a behavioural interface.

     

    The Savara's eclipse plugin provides me a way to generate the wsdl from a choreography. Eclipse provides me a way to generate the skeleton java from a wsdl. So, if I use both functions, might it work? will I have the choreography running (not exactly) at the end? in the latest version of Savara?

     

    I'm asking this because I've been tried this, and when I attempt to generate the java code from de wsdl it gives errors to me.

     

    Sorry if I've been this kind of pertinent, but I really want to execute a choreography and I think you could explain me how.


     

    The approach you describe is one way to take a choreography and produce executable services that could then participate in enacting the choreography. However using this approach means that the Java implemented web services will be stateless - they won't enforce the behaviour defined in the choreography, i.e. any operation on the service could be called in any order.

     

    Whereas the choreography defines the ordering of operations called on a particular service - so the better way using the current Savara tools is to generate the WS-BPEL (aswell as WSDL), as the BPEL will enforce the behaviour.

     

    Regards

    Gary

  • 4. Re: The choreography execution environment
    Gary Brown Master

    Forgot to mention - what errors are you getting when generating Java from the WSDL?

  • 5. Re: The choreography execution environment
    glaucus augustus Newbie

    Thank you again

     

    I've tryed to create the java from the generated wsdl using three different configurations:

     

    Tomcat6 and Axis:

     

    IWAB0399E Error in generating Java from WSDL:  java.io.IOException: Element quote is referenced but not defined.
        java.io.IOException: Element quote is referenced but not defined.
        at org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable.java:670)
        at org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:545)
        at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518)
        at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)
        at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
        at java.lang.Thread.run(Thread.java:619)

     

    Tomcat6 and Axis2:

     

    IWAB0014E Unexpected exception occurred.
     
          java.lang.NullPointerException
          at org.eclipse.jst.ws.internal.consumption.command.common.CreateFacetedProjectCommand.containsWebFacet(CreateFacetedProjectCommand.java:106)
          at org.eclipse.jst.ws.internal.consumption.command.common.CreateFacetedProjectCommand.getDataModelForTemplate(CreateFacetedProjectCommand.java:134)
          at org.eclipse.jst.ws.internal.consumption.command.common.CreateFacetedProjectCommand.execute(CreateFacetedProjectCommand.java:163)
          at org.eclipse.jst.ws.internal.creation.ui.extension.PreServiceAssembleCommand.execute(PreServiceAssembleCommand.java:102)
          at org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentEngine.runCommand(CommandFragmentEngine.java:419)

     

    (and continues)

     

    JBoss5.1.0 ans JBossWS:

     

    Failed to generate implementation class
        org.eclipse.core.runtime.CoreException: Failed to Generate Web Service code, please check the log for more details
        at org.jboss.tools.ws.creation.core.commands.ImplementationClassCreationCommand.getCompilationUnitForInterface(ImplementationClassCreationCommand.java:446)
        at org.jboss.tools.ws.creation.core.commands.ImplementationClassCreationCommand.generateImplClass(ImplementationClassCreationCommand.java:133)
        at org.jboss.tools.ws.creation.core.commands.ImplementationClassCreationCommand.execute(ImplementationClassCreationCommand.java:97)
        at org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentEngine.runCommand(CommandFragmentEngine.java:419)

     

    (and continues)

     

     

    The first stack looks like more accurate.

     

    I'll try to execute the first example of the getting started (the Purchase example) in ODE.

     

    I really want to enact my first choreography!

     

    thank you!

  • 6. Re: The choreography execution environment
    Gary Brown Master

    Hi

     

    Could you create a jira bug attaching the choreography, the generated wsdl and the details of what you do to try generating the web service. Also include all you environment details.

     

    Thanks in advance.

     

    Regards

    Gary