By Juergenkress-Oracle on Jun 02, 2014
Why is dynamic endpoint binding needed?
Sometimes a BPEL process instance has to determine at run-time which implementation of a web service interface is to be called. We’ll show you how to achieve that using dynamic endpoint binding.
Let’s imagine the following scenario: we’re running a car rental agency called RYLC (Rent Your Legacy Car) which operates different locations. The process of renting a car is basically identical for all locations except for the determination which cars are currently available. This is depicted in the following diagram:
There are three different implementations of the GetAvailableCars service. But how can we achieve calling them dynamically at run-time using Oracle SOA Suite?
How to dynamically set the service endpoint
There are just a couple of implementation steps we need to perform to enable dynamic endpoint binding:
- create a new SOA project in JDeveloper
- add a CarRental BPEL process
- add an external reference to the GetAvailableCars service within the composite
- create a DVM file containing the URI’s by which the services for the different locations can be accessed
- set the endpointURI property on the Invoke component calling the GetAvailableCars service (value is taken from the DVM file)
For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.