[ 
https://issues.apache.org/jira/browse/ODE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Karthick Sankarachary updated ODE-345:
--------------------------------------

    Attachment: jms.txt

> Allow BPEL Processes To Be Provided Over JMS
> --------------------------------------------
>
>                 Key: ODE-345
>                 URL: https://issues.apache.org/jira/browse/ODE-345
>             Project: ODE
>          Issue Type: New Feature
>          Components: BPEL Runtime
>    Affects Versions: 1.3
>         Environment: This feature is platform-independent.
>            Reporter: Karthick Sankarachary
>            Assignee: Matthieu Riou
>             Fix For: 1.3
>
>         Attachments: jms.txt
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> In general, the requirements as follows:
> a) Allow two or more processes to provide the same service over (the same) 
> JMS Queue endpoint.
> b) Allow two or more processes to provide the same port type (but different 
> service) over (the same) JMS Queue endpoint.
> c) Allow two or more processes to provide the same service over (the same) 
> JMS Topic endpoint.
> d) Allow two or more processes to provide the same port type (but different 
> service) over (the same) JMS Topic endpoint.
> e) Allow a process to invoke a service (or process) over a JMS endpoint.
> We work with the following assumptions:
> a) Operations provided over JMS Topics must be one-way (to avoid multiple 
> responses per request)
> b) Operations provided over JMS queues may be either one-way or two-way.
> c) As per Axis2 protocol, non-durable or non-existent destination names will 
> be qualified with either dynamicQueues or dynamicTopics.
> The limitations in the existing code base are:
> a) The name that we assign to axis services is derived from the soap:location 
> endpoint, which is assumed to follow an HTTP scheme.
> b) It is not possible to have two processes provide the same service, as that 
> leads to naming conflicts.
> c) By default, the JMS transport is not enabled in Axis2.
> The proposed (verified) solution is:
> a) For testing purposes, enable the JMS transport in axis2.xml. Note that by 
> default, this will be not be turned on. The configuration of JMS in Axis2, 
> and setup of the JMS broker is left as an exercise for the user/developer.
> b) Derive service names from jms endpoints, without making the assumptions 
> made for HTTP endpoints. Further, qualify the JMS endpoint with the bundle, 
> diagram and  process name, so as to make it unique (this is necessary to 
> avoid the naming conflict). To be precise, the JMS URI template is as follows:
> ${deploy_serverUrl}${deploy_baseSoapServicesUrl}/${deploy_bundleNcName}/${diagram_relativeURL}/${processLocalName}/${jmsDestinationName}
> c) Extract the jms destination name from the service name, and set it as the 
> value of the JMSConstants.DEST_PARAM of the axis service (this is required so 
> that the JMS Connection Factory creates the right destination for that 
> endpoint)
> d) Store the axis service in ODEServer against the unique name as was derived 
> above. Use that name while destroying that service as well.
> e) As far as requirement (e), I believe this works out of the box.
> f) As far as assumption (a), I believe this constraint should be enforced by 
> the modeler. Also, the modeler should enforce assumption (c) for proper 
> provisioning of processes over JMS.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to