Since Oracle released the Enterprise Service Bus (ESB) as part of the SOA suite, many people are curious about the added value and use of the ESB compared to the full self-contained implementation within the Oracle BPEL process manager alone.
One of its advantages is the ability to transparently virtualize service endpoints to its users, providing conversions from its own format to canonical format and reliable routing.
In this technical note, you'll learn how to use the ESB to virtualize legacy services by reusing existing products with two guided steps, and how valuable this can be.
Set up
Now, start the process, and you'll learn best practices for using BPEL and ESB by applying the process. We have created an asynchronous process that uses common mode, which represents a canonical customer request, and the following is a partial excerpt:
[...]
<element name="CustomerUpdateProcessProcessRequest">
<complexType>
<sequence>
<element name="customerName" type="string"/>
<element name="ccard" type="string"/>
<element name="ccardNr" type="string"/>
<element name="email" type="string"/>
<element name="pw" type="string"/>
</sequence>
</complexType>
</element>
[..]
The specification customer request (Customerupdateprocessprocessrequest) contains the name (CustomerName), the type of credit card (Ccard), the credit card number (CCARDNR), and the e-mail address (email) and password ( PW).
The sample process discussed in this note will update an existing system (in this case, a database), and the system will eventually be replaced by different data structures, as shown below.
<xs:complextype name= "Customer"
<xs:sequence>
<xs:element name= "CustID"
<xs:simpletype>
<xs:restriction base= "xs:string"
<xs:maxlength value= "/>"
</xs: Restriction>
</xs:simpletype>
</xs:element>< br><xs:element name= "FName" minoccurs= "0" nillable= "true"
<xs:simpletype>
<xs:restriction base= "xs:string"
<xs:maxlength Value= "/>"
</xs:restriction>
</xs:simpletype>
</xs:element>< Br><xs: Element name= "lname" minoccurs= "0" nillable= "true"
<xs:simpletype>
<xs:restriction base= "xs: String "
<xs:maxlength value="/>
</xs:restriction>
</xs:simpletype>
</xs :element>< br><xs:element name= "CREDITC" minoccurs= "0" nillable= "true"
<xs:simpleType>
<xs:restriction base= "xs:string"
<xs:maxlength value= "/>";
</xs:restriction>
</xs:simpletype>
</xs:element>< br></xs:sequence>
</xs: Complextype>