Scambio di dati tra processi aziendali e servizi

Un processo aziendale può usufruire di servizi SCA (service component architecture) o può essere usufruito da altri servizi SCA. Il modo in cui i dati dei messaggi WSDL (Web Services Description Language) vengono scambiati tra il servizio SCA e il processo dipende dal modo in cui il processo è stato modellato.

Un processo aziendale usufruisce di un servizio

L'utilizzo di un servizio in un processo aziendale è implementato utilizzando un'attività di richiamo BPEL (Business Process Execution Language) nel modello di processo. I dati inoltrati al servizio SCA vengono richiamati da una o più variabili BPEL. In genere, i dati vengono inoltrati per valore, che significa che il servizio richiamato gestisce una copia dei dati.

In alcune circostanze, i dati possono essere inoltrati per riferimento. L'inoltro dei dati per riferimento può aiutare a migliorare le prestazioni dei processi aziendali.

Se tutte le seguenti condizioni vengono soddisfatte, i dati vengono inoltrati per riferimento nel processo aziendale:
  • Il richiamo del servizio è asincrono.
  • Il processo BPEL e servizio richiamato si trovano nello stesso modulo.
  • I dati vengono scambiati in uno dei modi seguenti:
    • Una o più variabili BPEL vengono dichiarate utilizzando gli elementi o i tipi di schema XML. Le parti del messaggio WSDL vengono associate individualmente tra il richiamo del servizio e le variabili.
      <variable name="inputPart1Var" type="ws:inputPart1Type">
      <variable name="inputPart2Var" type="ws:inputPart2Type">

      L'attività del servizio web utilizza l'estensione del parametro per fare riferimento alle variabili BPEL. Nell'interazione SCA, WSDL è trattato come wrapper per i dati che vengono inoltrati per riferimento.

      <invoke ....>
        <wpc:input>
          <wpc:parameter name="ws:inputPart1" variable="inputPart1Var"/>
          <wpc:parameter name="ws:inputPart2" variable="inputPart2Var"/>
          ...
        </wpc:input>
      </invoke ....>
    • Una o più variabili BPEL vengono dichiarate utilizzando gli elementi o i tipi di schema XML. L'interazione del servizio web si attiene allo stile di allineamento documento-valore letterale; gli elementi del parametro sono associati tra il documento del wrapper e le variabili.
      <variable name="inputParm1Var" type="ws:inputParm1ElemType">
      <variable name="inputParm2Var" type="ws:inputParm2ElemType">

      L'attività del servizio web utilizza l'estensione del parametro per fare riferimento alle variabili BPEL. Questo è il comportamento predefinito per i processi che vengono creati in WebSphere Integration Developer. Nell'interazione SCA, il wrapper contiene i parametri inoltrati per riferimento.

      <invoke ....>
        <wpc:input>
          <wpc:parameter name="ws:inputParm1" variable="inputParm1Var"/>
          <wpc:parameter name="ws:inputParm2" variable="inputParm2Var"/>
          ...
        </wpc:input>
      </invoke ....>

Se il servizio richiamato modifica i dati, le modifiche vengono applicate alle variabili BPEL corrispondenti. Tuttavia, come miglior pratica il servizio richiamato dovrebbe non aggiornare i dati perché qualsiasi modifica effettuata per i dati non è permanente. Per i processi di lunga esecuzione le modifiche vengono eliminate quando termina il processo. Inoltre, un evento non viene generato quando la variabile viene aggiornata dal servizio richiamato.

Un processo aziendale viene usufruito da un servizio

Un processo aziendale che viene usufruito da altri servizi contiene attività receive, attività pick o gestori eventi nel modello di processo. I dati inoltrati nel processo vengono scritti su una o più variabili BPEL. In genere, i dati vengono inoltrati per valore, che significa che il processo gestisce una copia dei dati.

Tuttavia, se tutte le seguenti condizioni vengono soddisfatte, i dati vengono inoltrati per riferimento:
  • Il richiamo del processo aziendale è asincrono.
  • Il servizio e il processo aziendale richiamato si trovano nello stesso modulo.
  • I dati vengono scambiati in uno dei modi seguenti:
    • Una o più variabili BPEL vengono dichiarate utilizzando gli elementi o i tipi di schema XML. Le parti del messaggio WSDL vengono associate individualmente tra il richiamo del servizio e le variabili.
      <variable name="outputPart1Var" type="ws:outputPart1Type">
      <variable name="outputPart2Var" type="ws:outputPart2Type">

      L'attività utilizza l'estensione del parametro per fare riferimento alle variabili BPEL. Nell'interazione SCA, WSDL è trattato come wrapper per i dati che vengono inoltrati per riferimento. Per un'attività receive, il frammento BPEL corrispondente potrebbe essere come l'esempio seguente:

      <receive ....>
        <wpc:output>
          <wpc:parameter name="ws:outputPart1" variable="outputPart1Var"/>
          <wpc:parameter name="ws:outputPart2" variable="outputPart2Var"/>
          ...
        </wpc:output>
      </receive ....>
    • Una o più variabili BPEL vengono dichiarate utilizzando gli elementi o i tipi di schema XML. L'interazione del servizio web si attiene allo stile di allineamento documento-valore letterale; gli elementi del parametro sono associati tra il documento del wrapper e le variabili.
      <variable name="outputParm1Var" type="ws:outputParm1ElemType">
      <variable name="outputParm2Var" type="ws:outputParm2ElemType">

      L'attività utilizza l'estensione del parametro per fare riferimento alle variabili BPEL. Questo è il comportamento predefinito per i processi che vengono creati in WebSphere Integration Developer. Nell'interazione SCA, il wrapper contiene i parametri inoltrati per riferimento. Per un'attività receive, il frammento BPEL corrispondente potrebbe essere come l'esempio seguente:

      <receive ....>
        <wpc:output>
          <wpc:parameter name="ws:outputParm1" variable="outputParm1Var"/>
          <wpc:parameter name="ws:outputParm2" variable="outputParm2Var"/>
          ...
        </wpc:output>
      </receive ....>

Se il processo richiamato modifica le variabili BPEL, anche i dati input dal servizio di chiamata vengono modificati.


(c) Copyright IBM Corporation 2005, 2006.
This information center is powered by Eclipse technology (http://www.eclipse.org)