Jos Nieuwenhuis


Deployen van een EBF

Eén van de artifacts in Oracle Appication Integration Architecture (AIA) is de Enterpise Business Flow (EBF). Een EBF kan het beste worden gezien als een bedrijfsproces. In sommige situaties is een EBF overkoepelend: als er meerdere doelapplicaties op de één of andere manier van elkaar afhankelijk zijn.

Volgens de reichtlijnen van AIA communiceert een EBF communiceert niet rechtstreeks met een adapter (Provider ABCS) maar doet dit altijd via een Enterpise Buiness Service (EBS). Met andere woorden: een EBF is afhankelijk van een EBS en een EBS is afhankelijk van een EBF en van één of meerdere Provider ABCS’s. Vanwege de conflicerende volgorde geeft dit in SOA Suite 10g problemen tijdens uitrol. In SOA Suite 11g zijn deze problemen er niet omdat de afhankelijkheden in Service Component Architecture (SCA) anders geregeld zijn.

Een veel toegepaste methode is door gebruik te maken van een dummy EBS implementatie: een EBS zonder Routing Rules. Deployment volgorde:

  1. Compileer Provider ABCS
  2. Deploy Provider ABCS
  3. Deploy Dummy EBS
  4. Compileer EBF
  5. Deploy EBF
  6. Deploy EBS
  7. Compileer Requester ABCS
  8. Deploy Requester ABCS

Bovenstaande werkt, maar is een beetje raar. Want wat is een dummy EBS. Waarom zou je een Dummy EBS toevoegen aan de broncode, terwijl je deze uiteindelijk niet gaat gebruiken. Het kan ook anders. Je kunt afhankelijkheden anders definiëren in de BPEL processen. Als je gebruik maakt van de WSDL runtime location is het niet nodig dat een concrete implementatie aanwezig is op het moment van deployment. Een Dummy implementatie van een EBS is dan niet meer nodig en de volgorde van deployment is minder kritisch. Het bestand bpel.xml ziet er dan als volgt uit:

 
<?xml version = '1.0' encoding = 'UTF-8'?>
<BPELSuitcase>
  <BPELProcess id="ProcessWorkerEBF" src="ProcessWorkerEBF.bpel">
    <partnerLinkBindings>
      <partnerLinkBinding name="ProcessWorkerEBF">
        <property name="wsdlLocation">ProcessWorkerEBF.wsdl</property>
      </partnerLinkBinding>
      <partnerLinkBinding name="WorkerEBS">
        <property name="wsdlLocation">WorkerEBSRef.wsdl</property>
        <property name="idempotent">true</property>
        <property name="wsdlRuntimeLocation">http://svront01.x.nl:8888
          /wsil/AIASystem/EBS/WorkerEBS?wsdl
        </property>
      </partnerLinkBinding>
    </partnerLinkBindings>
  </BPELProcess>
</BPELSuitcase>

Het WSDL van ProcessWorkerEBF ziet er zo uit:

 
<definitions
  name="WorkerEBS"
  targetNamespace="http://xmlns.oracle.com/EnterpriseServices/Core/Worker/V1"
  xmlns="http://schemas.xmlsoap.org/wsdl/"
  xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
  xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:workerebs="http://xmlns.oracle.com/EnterpriseServices/Core/Worker/V1"
  >
  <import namespace="http://xmlns.oracle.com/EnterpriseServices/Core/Worker/V1"
    location="http://svront01.x.nl:8888/AIAComponents/EBSLibrary
	/Core/EBO/Worker/V1/WorkerEBSV1.wsdl"/>
    <plnk:partnerLinkType name="WorkerEBS">
       <plnk:role name="WorkerEBS_Role">
       <plnk:portType name="workerebs:WorkerEBS"/>
    </plnk:role>
  </plnk:partnerLinkType>
</definitions> 
Datum: 5 juni 2011 - AIA,BPEL

Geen reacties

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.