Our primary use case for this solution is an ordering system that captures orders. The orders are made in XML, which keeps track of everything that you did from the ordering to having the information of the order. But not everything is in the ordering because you have to consult, for example, the address system, the availability system, the visibility system, and the facility system. We are a telecommunications company and to provide a service, you need to know which facilities you have for that. For that, you need a BPEL that received XML from the ordering that tried to consult the external internal system to try to retrieve the information needed to put the order and then deliver it to the OSS.
The OSS receives the order through the SOA with BPEL and, for example, after that, the same OSS tries to send it to ADOBE, the workforce management system, to try to deliver it to our technician.
We have two types of integrations, one that comes from the north and one that comes from the south. Ultimately, we answer the ordering when everything is okay from the west end. Everything is in SOA. Midway, we use SOA and try to interact with many systems that are needed to provide information to the OSS, the workforce management system, and giving answers and responses to the ordering.
What I find the most valuable about Oracle BPEL is that it saves me time. For example, when I use a language like Java, I have to generate clients if I am also using SOA. I lose time doing that because I am interacting with a third party or a third service. The goal is to avoid having to implement from a scratch a logic of integration based on the service. If I want to carry out multiple integrations, I don't have to implement the protocol itself, because BPEL implements it for me. This in effect means that I avoid doing a lot of work and am operating in a more friendly environment. With BPEL, you can track everything: every variable that is filled and every result related to integration with another service. It gives you more facility to try to track the course of your integrations.