自 Oracle 將企業服務總線 (ESB) 作為 SOA 套件的一部分發布以來,許多人都很好奇,與僅在 Oracle BPEL 流程管理器內進行完整的自包含實施相比,ESB 所具有的附加值及其使用場合。
它的優勢之一是能夠對其用戶透明地虛擬化服務端點,從而提供從其自有格式到規范格式的轉換以及 可靠路由。
在該技術說明中,您將通過兩個有指導的步驟了解如何通過重用現有產品采用 BPEL 流程來利用 ESB 將原有服務虛擬化,以及這樣做可以獲得怎樣的寶貴價值。
設置
現在,開始啟動流程,您將通過應用該流程了解使用 BPEL 和 ESB 的最佳實踐。我們已經創建了一個 使用公用模式的異步流程,它代表一個規范的客戶請求,以下為部分摘錄:
[...]
<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>
[..]
該規范客戶請求 (CustomerUpdateProcessProcessRequest) 包含名稱 (customerName)、信用卡類型 (ccard)、信用卡號 (ccardNr),以及電子郵件地址 (email) 和口令 (pw)。
本說明中探討的示例流程將更新一個原有系統(在本例中為一個數據庫),該系統最後將由不同的數據 結構替代,如下所示。
<xs:complexType name="Customer">
<xs:sequence>
<xs:element name="custid">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="40"/>
</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="40"/>
</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="40"/>
</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="40"/>
</xs:restriction>
</xs:simpleType>
</xs:element>< BR></xs:sequence>
</xs:complexType>