Condividi tramite


Affidabilità del recapito end-to-end dell'adapter InterAct

Quando si inviano messaggi o file a un destinatario, è consigliabile assicurarsi che il messaggio o il file venga recapitato e che le transazioni aziendali contenute in tali transazioni vengano eseguite non più volte del previsto.

Quando entrambe le entità che comunicano tra loro possono usare un archivio permanente (ad esempio, fornito da un middleware persistente orientato ai messaggi e da un'applicazione di interfaccia che lo usa), è facile implementare un recapito affidabile se il modo per comunicare lo stato percepito del messaggio è standardizzato.

Nella figura seguente viene illustrato un esempio della struttura di E2EControl.

Controllo end-to-end

L'elemento nell'esempio illustrato nella figura viene inviato all'interno di SwInt:Request e recapitato senza modifiche all'interno di SwInt:RequestHandle all'applicazione ricevente. La riga 02 consente di assegnare un identificatore univoco alla richiesta. Questo identificatore univoco viene ripetuto in ogni successiva ri-trasmissione della stessa richiesta.

Il modo in cui questo identificatore viene costruito viene lasciato all'implementatore, ma in genere si basa su una chiamata di sistema, ad esempio uuidgen(), oppure può essere il risultato del calcolo di un SHA-1 nella richiesta da inviare (con un prefisso Sw:MsgId e quindi sostituirlo con la stringa SHA-1 con codifica base64). Il requisito principale è che sia univoco a livello globale (con una probabilità molto elevata).

Sw:CreationTime è il momento della creazione della richiesta originale. Si tratta di un parametro facoltativo, ma è utile limitare le ricerche di eventuali tentativi di comunicazione precedenti di questo messaggio.

L'elemento Sw:PDIndication è presente per indicare che si tratta di un secondo o ulteriore tentativo di trasmettere il messaggio. L'applicazione ricevente che riconosce E2EControl può quindi usare sw:MsgId per trovare se il messaggio è stato ricevuto o meno. Sw:EmissionList facoltativo contiene l'ora dei tentativi precedenti. Questa volta è l'ora locale del mittente (in ora universale) ottenuta dal mittente quando si usa la funzione Sw:GetDateTime. Anche in questo caso potrebbe essere utile limitare le ricerche.

Vedere anche

Architettura dell'adapter InterAct
Componenti dell'adapter InterAct
Messaggi dell'adapter InterAct per lo scambio aziendale
Applicazione client dell'adapter InterAct
Applicazione server dell'adapter InterAct
Archiviazione e inoltro dell'adapter InterAct
Architettura di sicurezza dell'adapter InterAct
Monitoraggio dello stato dell'adapter InterAct
Non ripudio dell'adapter InterAct