This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 109683 - Supporting use case "Sending an EPR to a partner" in "Dynamic Partner link invocation" feature
Summary: Supporting use case "Sending an EPR to a partner" in "Dynamic Partner link in...
Status: NEW
Alias: None
Product: soa
Classification: Unclassified
Component: Composite Application (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Venkat Chellasamy
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-07-13 20:02 UTC by Murali Pottlapelli
Modified: 2007-07-13 20:02 UTC (History)
0 users

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Murali Pottlapelli 2007-07-13 20:02:58 UTC
Project build system needs to be enhanced to package information capturing relationship between its endpoint and
external endpoint. It needs to add new attribute to "provides" and "consumes" elements.

For component provisioning  EP1 (applicable only for SE)
<provides endpoint-name="EP1" service-name="EP1 Service Name" interface-name="tns:PT" external-service-name="EPX Service
name" />
   
For component consuming  EP (applicable only for BC)
<consumes endpoint-name="EP2" service-name="EP2 Service Name" interface-name="tns:PT"  external-service-name="EPX
Service name" />

For complete description refer to 

Use Case:
Sending an EPR to a partner along with input message/payload. For example, Business Process (BP) might send an EPR for
callback, so that the partner either callback to BP or give it to another partner. BP represent insurance service, 
provide EPR  to  purchase order process, shipper would get the EPR from purchase order process and would call insurance
service to verify the insurance.

Deployment context:
  * The BPEL SE is acting as a service provider, exposing an internal endpoint that we'll call EP1. This endpoint is the
"myRole" part
    of a partnerLink named PL1.
  * The HTTP BC is exposing an external endpoint, we'll call EPX.
  * The HTTP BC routes requests coming into EPX to an internal endpoint we'll call EP2.
  * A connection exists such that requests send to EP2 are re-routed to EP1.


When the BPEL SE wants to provide a callback address to external clients, it can query external endpoints for the
service name of EPX and chooses first endpoint.  The BPEL SE will call getAsReference() on that endpoint and stuff it
into the message that it sends to the external client. This to work components need relationship between its endpoint
and external endpoint.

For this to work:
1 - Project build system needs to be enhanced to package information capturing relationship between its endpoint and
external endpoint. Please refer to attribute highlighted in bold

        For component provisioning  EP1 (applicable only for SE)
        <provides endpoint-name="EP1" service-name="EP1 Service Name" interface-name="tns:PT" external-service-name="EPX
Service name" />
   
        For component consuming  EP (applicable only for BC)
        <consumes endpoint-name="EP2" service-name="EP2 Service Name" interface-name="tns:PT" 
external-service-name="EPX Service name" />

2 - HTTP BC needs to register external endpoint (EPX) with service name based on consumes entry.
3-  HTTP BC  implementation of getAsReference() on EPX  returns EPR document fragment as per WS-Addressing.
4 - When a local JBI component sends an ME associated with SEP got  from ComponentContext.resolveEndpointReference using
the EPR for EPX it would short ckt and route the request to EP1.