Recent Forum Posts
From categories:
page 1123...next »

LTSA Eclipse WS-Engineer Feature v2.2.0
- This release fixes some issues with hiding .read and .write operations for WS-BPEL and WS-CDL translates to FSP.
- Also fixes rendering activity logs as MSC sequences.

The examples have also been updated for this version to illustrate each area of analysis.

Note: This release was tested on Windows 7 and Eclipse SDK Version: 3.7.1 Build id: M20110909-1335

WS-Engineer V2.2.0 by wsengineerwsengineer, 09 Nov 2011 22:31

Thanks a lot for the prompt reply, the example is working, thanks for the help :)

The problem is both BPEL source (unfortunately I did not write it) and WS-Engineer (faulthandling changed since the BPEL was written).

I have another example, now on the website, but you can also download from here:

ICSOC08 Obligation Analysis Demonstration

Hope that helps…

Hi, thanks for the post.

I just tried it too and receive the same error. I will look into it and get back to you.

We are doing obligations test using WS-Engineer on Eclipse, with the road assistance example downloaded from http://www.doc.ic.ac.uk/ltsa/eclipse/wsengineer/examples.html.

However it shows us an error windows "An error occurred performed analysis. null" during the verification.

Following are information on running environment:
Operating System:Win XP Pro
Eclipse version: We have tried 3.4, 3.4.2, 3.5

Please use the link http://tinyurl.com/yhcbbas to download the WS-EngineerProb.zip file that contains ErrorMessage.gif, roadassistance.cdl, and roadassistance.bpel

ErrorMessage.gif - Screen shot of the error message window
roadassistance.cdl, and roadassistance.bpel - the CDL and BPEL file we are using for obligation test.

Is there any problem of the downloaded running files? Or it is due to some subtle issues on WS-Engineer?
Thanks for looking into it!

Is there a version of the loanApproval process (e.g., with "hacked" link definitions?) that can be used with LTSA?

Thanks.

Yes, faulthandling and links are in development and not fully supported yet…

Some other things not supported (mainly WS-BPEL 2.0 things) are listed here: http://ws-engineer.wikidot.com/wsewsbpel2

Kind Regards

Hi,
I tried to generate the FSP code for the loanApproval example (attached below), but the links (and their transitionConditions) of the activities enclosed in the flow are not modeled. Moreover, the assign activity is translated incorrectly (the corresponding process is duplicated).

A remark: uncommenting the faultHandler block breaks the translation.

Thanks,
DB

<!-- loanapproval BPEL Process [Generated by the Eclipse BPEL Designer] -->
<!-- Date: Wed Nov 04 12:22:38 PST 2009 -->
<bpel:process name="loanapproval"
        targetNamespace="http://example.com/loan-approval/"
         suppressJoinFailure="yes"
        xmlns:lns="http://example.com/loan-approval/wsdl/"
        xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
         >

    <!-- ================================================================= -->         
    <!-- PARTNERLINKS                                                      -->
    <!-- List of services participating in this BPEL process               -->
    <!-- ================================================================= -->   
    <import importType="http://schemas.xmlsoap.org/wsdl/" location="loanapproval.wsdl" namespace="http://example.com/loan-approval/wsdl/" />

    <bpel:partnerLinks>
        <bpel:partnerLink name="customer" partnerLinkType="lns:loanPartnerLT" myRole="loanService"></bpel:partnerLink>
        <bpel:partnerLink name="approver" partnerLinkType="lns:loanApprovalLT" partnerRole="approver"></bpel:partnerLink>
        <bpel:partnerLink name="assessor" partnerLinkType="lns:riskAssessmentLT" partnerRole="assessor"></bpel:partnerLink>
    </bpel:partnerLinks>

    <!-- ================================================================= -->         
    <!-- VARIABLES                                                         -->
    <!-- List of messages and XML documents used within this BPEL process  -->
    <!-- ================================================================= -->         
    <bpel:variables>
        <bpel:variable name="request" messageType="lns:creditInformationMessage"/>
        <bpel:variable name="risk" messageType="lns:riskAssessmentMessage"/>
        <bpel:variable name="approval" messageType="lns:approvalMessage"/>
    </bpel:variables>

    <!-- ================================================================= -->         
    <!-- ORCHESTRATION LOGIC                                               -->
    <!-- Set of activities coordinating the flow of messages across the    -->
    <!-- services integrated within this business process                  -->
    <!-- ================================================================= --> 

<!--    <bpel:faultHandlers>-->
<!--      <bpel:catch faultName="lns:loanProcessFault"-->
<!--         faultVariable="error"-->
<!--         faultMessageType="lns:errorMessage">-->
<!--         <bpel:reply partnerLink="customer"-->
<!--            portType="lns:loanServicePT"-->
<!--            operation="request" variable="error"-->
<!--            faultName="unableToHandleRequest" />-->
<!--      </bpel:catch>-->
<!--   </bpel:faultHandlers>-->

    <bpel:sequence>
        <bpel:flow>
            <bpel:links>

                <bpel:link name="receive-to-assess"></bpel:link>
                <bpel:link name="receive-to-approval"></bpel:link>
                <bpel:link name="approval-to-reply"></bpel:link>
                <bpel:link name="assess-to-setMessage"></bpel:link>
                <bpel:link name="setMessage-to-reply"></bpel:link>
                <bpel:link name="assess-to-approval"></bpel:link>

            </bpel:links>

            <bpel:receive name="receive1" partnerLink="customer" portType="lns:loanServicePT" operation="request" variable="request" createInstance="yes">
                 <bpel:sources>
                    <bpel:source linkName="receive-to-approval">
                        <bpel:transitionCondition>bpel:getVariableProperty('request', 'amount') &lt; 10000></bpel:transitionCondition>
<!--                        <bpel:transitionCondition>$request.amount &lt; 10000></bpel:transitionCondition>-->
                    </bpel:source>
                    <bpel:source linkName="receive-to-assess">
                        <bpel:transitionCondition>bpel:getVariableProperty('request', 'amount') >= 10000></bpel:transitionCondition>
<!--                         <bpel:transitionCondition>$request.amount >= 10000></bpel:transitionCondition>-->
                    </bpel:source>
                </bpel:sources>
            </bpel:receive>

            <bpel:invoke name="invokeAssessor" partnerLink="assessor" portType="lns:riskAssessmentPT" operation="check" inputVariable="request" outputVariable="risk">
                <bpel:targets>
                    <bpel:target linkName="receive-to-assess"></bpel:target>
                </bpel:targets>
                <bpel:sources>
                    <bpel:source linkName="assess-to-approval">
                        <bpel:transitionCondition>bpel:getVariableProperty('risk', 'level') != 'low'</bpel:transitionCondition>
<!--                            <bpel:transitionCondition>$risk.level!='low'</bpel:transitionCondition>-->
                    </bpel:source>
                    <bpel:source linkName="assess-to-setMessage">
                        <bpel:transitionCondition>bpel:getVariableProperty('risk', 'level') = 'low'</bpel:transitionCondition>
<!--                            <bpel:transitionCondition>$risk.level='low'</bpel:transitionCondition>-->
                    </bpel:source>
                </bpel:sources>
            </bpel:invoke>

               <bpel:invoke name="invokeapprover" partnerLink="approver" portType="lns:loanApprovalPT" operation="approve" inputVariable="request" outputVariable="approval">
                 <bpel:targets>
                    <bpel:target linkName="receive-to-approval"></bpel:target>
                    <bpel:target linkName="assess-to-approval"></bpel:target>
                </bpel:targets>
                <bpel:sources>
                    <bpel:source linkName="approval-to-reply"></bpel:source>
                </bpel:sources>
            </bpel:invoke>

            <bpel:assign name="assign">
                 <bpel:copy>
                    <bpel:from>
                        <bpel:literal>yes</bpel:literal>
                    </bpel:from>
<!--                       <bpel:to variable="approval" part="accept"></bpel:to>-->
                           <bpel:to variable="approval" property="accept"></bpel:to>
                      </bpel:copy>

                <bpel:targets>
                    <bpel:target linkName="assess-to-setMessage"></bpel:target>
                <bpel:sources>
                    <bpel:source linkName="setMessage-to-reply" />
                 </bpel:sources>
                </bpel:targets>
            </bpel:assign>

            <bpel:reply name="reply" partnerLink="customer" portType="lns:loanServicePT" operation="request    " variable="approval">            
                <bpel:targets>
                    <bpel:target linkName="setMessage-to-reply"></bpel:target>
                    <bpel:target linkName="approval-to-reply"></bpel:target>
                </bpel:targets>
            </bpel:reply>

        </bpel:flow>

    </bpel:sequence>
</bpel:process>

Hi, not sure if this is a bug or can be classed as a characteristic.

The name of a construct (as far as I can tell) is not mandatory in BPEL, thus a "backup" unique naming strategy is adopted in WS-Engineer.
I guess, the naming strategy in WS-Engineer could be improved to avoid clashes.

For now, just avoid using the same name suffixed with a number (e.g. sequence1) and give them a nice helpful meaningful name (e.g. mainSequence).

Re: Duplicated process name by wsengineerwsengineer, 01 Nov 2009 16:43

I have no permissions for uploading a file. I'll paste the text…

<!-- road-assistance-lipari BPEL Process [Generated by the Eclipse BPEL Designer] -->
<!-- Date: Fri Oct 16 16:51:34 PDT 2009 -->
<bpel:process name="road-assistance-lipari"
         targetNamespace="http://www.inf.usi.ch/"
         suppressJoinFailure="yes"
         xmlns:tns="http://www.inf.usi.ch/"
         xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
         xmlns:ns1="http://www.inf.usi.ch/Artifacts" xmlns:ns="http://www.example.org/road-assistance-lipari/">

    <!-- ================================================================= -->         
    <!-- PARTNERLINKS                                                      -->
    <!-- List of services participating in this BPEL process               -->
    <!-- ================================================================= -->         
    <bpel:import namespace="http://www.inf.usi.ch/Artifacts" location="road-assistance-lipariArtifacts.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
    <bpel:import namespace="http://www.example.org/road-assistance-lipari/" location="road-assistance-lipari.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
    <bpel:partnerLinks>       
        <bpel:partnerLink name="diagnosticSystem" partnerLinkType="ns1:diagnosticSystemPLT" myRole="assistance"></bpel:partnerLink>
        <bpel:partnerLink name="bank" partnerLinkType="ns1:bankLT" partnerRole="bank" myRole="bankClient"></bpel:partnerLink>
        <bpel:partnerLink name="gpsDevice" partnerLinkType="ns1:gpsDeviceLT" partnerRole="GPSDeviceInterface"></bpel:partnerLink>
        <bpel:partnerLink name="registry" partnerLinkType="ns1:registryLT" partnerRole="registry"></bpel:partnerLink>
        <bpel:partnerLink name="reasoner" partnerLinkType="ns1:reasonerLT" partnerRole="reasoner"></bpel:partnerLink>
        <bpel:partnerLink name="garage" partnerLinkType="ns1:garageLT" partnerRole="garage"></bpel:partnerLink>
        <bpel:partnerLink name="rental" partnerLinkType="ns1:rentalLT" partnerRole="rental"></bpel:partnerLink>
        <bpel:partnerLink name="towing" partnerLinkType="ns1:towingLT" partnerRole="towingTruck" myRole="towingClient"></bpel:partnerLink>
    </bpel:partnerLinks>

    <!-- ================================================================= -->         
    <!-- VARIABLES                                                         -->
    <!-- List of messages and XML documents used within this BPEL process  -->
    <!-- ================================================================= -->         
    <bpel:variables>
        <bpel:variable name="diagnosticSystemRequest" messageType="ns:startAssistanceRequest"></bpel:variable>
        <bpel:variable name="bankRequest" messageType="ns:requestCardChargeRequest"></bpel:variable>
        <bpel:variable name="GPSDeviceResponse" messageType="ns:requestLocationResponse"></bpel:variable>
        <bpel:variable name="registryResponse" messageType="ns:findLocalServicesResponse"></bpel:variable>
        <bpel:variable name="registryRequest" messageType="ns:findLocalServicesRequest"></bpel:variable>
        <bpel:variable name="reasonerResponse" messageType="ns:selectServicesResponse"></bpel:variable>
        <bpel:variable name="reasonerRequest" messageType="ns:selectServicesRequest"></bpel:variable>
        <bpel:variable name="garageResponse" messageType="ns:orderGarageResponse"></bpel:variable>
        <bpel:variable name="garageRequest" messageType="ns:orderGarageRequest"></bpel:variable>
        <bpel:variable name="rentalRequest" messageType="ns:orderRentalCarRequest"></bpel:variable>
        <bpel:variable name="towingRequest" messageType="ns:orderTowTruckRequest"></bpel:variable>
    </bpel:variables>

    <!-- ================================================================= -->         
    <!-- ORCHESTRATION LOGIC                                               -->
    <!-- Set of activities coordinating the flow of messages across the    -->
    <!-- services integrated within this business process                  -->
    <!-- ================================================================= -->         
    <bpel:sequence>
        <bpel:receive name="startAssistance" partnerLink="diagnosticSystem" operation="startAssistance" portType="ns:carAssistancePT" variable="diagnosticSystemRequest"></bpel:receive>
        <bpel:flow name="Flow1"><bpel:sequence name="Sequence">
                <bpel:invoke name="requestCardCharge" partnerLink="bank" operation="requestCardCharge" portType="ns:bankPT" inputVariable="bankRequest"></bpel:invoke>
                <bpel:receive name="requestCCCallback" partnerLink="bank" operation="requestCardChargeCallBack" portType="ns:bankClientPT"></bpel:receive>
            </bpel:sequence><bpel:sequence name="Sequence1">
                <bpel:invoke name="requestLocation" partnerLink="GPSDevice" operation="requestLocation" portType="ns:GPSPT" outputVariable="GPSDeviceResponse"></bpel:invoke>

                <bpel:assign validate="no" name="Assign">
                    <bpel:copy>
                        <bpel:from variable="GPSDeviceResponse" property="position"></bpel:from>
                        <bpel:to variable="registryRequest" property="location"></bpel:to>
                    </bpel:copy>
                </bpel:assign>
                <bpel:invoke name="findLocalServices" partnerLink="registry" operation="findLocalServices" portType="ns:registryPT" inputVariable="registryRequest" outputVariable="registryResponse"></bpel:invoke>
            </bpel:sequence></bpel:flow>
        <bpel:assign validate="no" name="Assign1">
            <bpel:copy>
                <bpel:from variable="registryResponse" property="foundServices"></bpel:from>
                <bpel:to variable="reasonerRequest" property="candidateServices"></bpel:to>
            </bpel:copy>
            <bpel:copy>
                <bpel:from variable="diagnosticSystemRequest" property="driverPreferences"></bpel:from>
                <bpel:to variable="reasonerRequest" property="driverPreferences"></bpel:to>
            </bpel:copy>
        </bpel:assign>
        <bpel:invoke name="selectServices" partnerLink="reasoner" operation="selectServices" portType="ns:reasonerPT" inputVariable="reasonerRequest" outputVariable="reasonerResponse"></bpel:invoke>
        <bpel:assign validate="no" name="varAssign">

            <bpel:copy>
                <bpel:from variable="diagnosticSystemRequest" property="diagnosticData"></bpel:from>
                <bpel:to variable="garageRequest" property="diagnosticData" ></bpel:to>
            </bpel:copy>
        </bpel:assign>
        <bpel:invoke name="orderGarage" partnerLink="garage" operation="orderGarage" portType="ns:garagePT" inputVariable="garageRequest" outputVariable="garageResponse"></bpel:invoke>
        <bpel:assign validate="no" name="varAssign2">
            <bpel:copy>
                <bpel:from variable="garageResponse" property="position" ></bpel:from>
                <bpel:to variable="towingRequest" property="location" ></bpel:to>
            </bpel:copy>
            <bpel:copy>
                <bpel:from variable="garageResponse" property="position" ></bpel:from>
                <bpel:to variable="rentalRequest" property="location"></bpel:to>
            </bpel:copy>
        </bpel:assign>
        <bpel:flow name="Flow2"><bpel:sequence name="Sequence2">
                <bpel:invoke name="orderTowTruck" partnerLink="towing" operation="orderTowTruck" portType="ns:towingPT" inputVariable="towingRequest"></bpel:invoke>
                <bpel:receive name="towTruckProgressNotice" partnerLink="towing"></bpel:receive>
            </bpel:sequence><bpel:invoke name="orderRentalCar" partnerLink="rental" operation="orderRentalCar" portType="ns:rentalPT" inputVariable="rentalRequest"></bpel:invoke></bpel:flow>
    </bpel:sequence>    
</bpel:process>
Re: Duplicated process name by bianculldbianculld, 28 Oct 2009 19:17

hi, can you attach the process you are attempting to compile?
You should have rights to attach a file under "files" or just copy and paste in the text…

Re: Duplicated process name by wsengineerwsengineer, 28 Oct 2009 09:33

Hi,
I have a process with three sequence activities, named "Sequence", "Sequence1", "Sequence2". The LTS translation duplicates a process identifier, corresponding to one of the sequences, and thus the parser complains.

Duplicated process name by bianculldbianculld, 27 Oct 2009 20:14

Somewhat good news and bad news.

“Good news” is a quick Google search seems to link it to a long running set of Sun AWT problems (probably in Eclipse Linux build).

Two such bugzilla entries are running:
Bug 74095
Bug 171432

Bad News is naturally I don’t want to change the ltsa eclipse code (that works on Windows) unless we know a compatible fix.

If you have any ideas, let me know.

Eclipse Platform
Version: 3.4.2
Build id: M20090211-1700

this is the output in console:
at sun.awt.X11.XToolkit.SAVED_ERROR_HANDLER(XToolkit.java:125)
at sun.awt.X11.XToolkit.GlobalErrorHandler(XToolkit.java:136)
at sun.awt.X11.XlibWrapper.CallErrorHandler(Native Method)
at sun.awt.X11.XToolkit.SAVED_ERROR_HANDLER(XToolkit.java:125)
at sun.awt.X11.XToolkit.GlobalErrorHandler(XToolkit.java:136)
at sun.awt.X11.XlibWrapper.CallErrorHandler(Native Method)
at sun.awt.X11.XToolkit.SAVED_ERROR_HANDLER(XToolkit.java:125)
at sun.awt.X11.XToolkit.GlobalErrorHandler(XToolkit.java:136)
at sun.awt.X11.XlibWrapper.CallErrorHandler(Native Method)
at sun.awt.X11.XToolkit.SAVED_ERROR_HANDLER(XToolkit.java:125)

Demonstration of Service Modes for Service Brokering of In-Vehicle Services.
Service Brokering requirements and capabilities specifications can be generated from WS-Engineer using the UML Modes Profile.

Link to YouTube demo

The WS-Engineer Help Guide now contains overview tutorials for Design, Interactions, Obligations and Deployment analysis.
The WS-Engineer Preference options are also described.

Link to Help Guide

Mainly UI improvements…

WS-Engineer v2.0.5 by wsengineerwsengineer, 18 Dec 2008 10:58

Updated for Eclipse 3.4 install routine
- WS-Compatibility View now renamed WS-Engineer View
- New look and feel for WS-Engineer View
- Repackaged for Eclipse 3.4

Note: new install site - http://www.doc.ic.ac.uk/ltsa/eclipse/install

WS-Engineer v2.0.0 by wsengineerwsengineer, 11 Nov 2008 19:05

A quick update. It seems that re-enabling the old Update Manager (or even removing the Equinox p2 installer).

To re-enable the old update manager: Window->Preferences->General->Capabilities and select "Classic Update".

To remove Equinox p2 see this article on Eclipse Wiki: Equinox p2 Removal

Re: Eclipse 3.4 / Ganymede by wsengineerwsengineer, 28 Oct 2008 11:08
page 1123...next »
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.