Richiamo dei servizi in modo sincrono o asincrono

È possibile richiamare i servizi in modo sincrono o asincrono.

A seconda della modalità di richiamo, i servizi possono essere classificati in due categorie principali:
  • Servizi richiamati in modo sincrono (su richiesta) - Questi servizi possono eseguire tutta la loro elaborazione e restituire il risultato in una singola chiamata.
  • Servizi richiamati in modo asincrono (basati su messaggi)

Servizi richiamati in modo sincrono

Questi servizi possono eseguire tutte le loro elaborazioni e restituire il risultato in una singola chiamata, su richiesta.

Servizi richiamati in modo asincrono

Questi servizi eseguono automaticamente tutte le loro elaborazioni ogni volta che vengono attivati da un messaggio proveniente da un sistema esterno o dall'interno dell'applicazione. Il trigger può essere nel formato di un file, di un record di database o di un messaggio in una coda messaggi a seconda della modalità di integrazione. Questi servizi non restituiscono alcun valore e vengono utilizzati esclusivamente per l'elaborazione in background, ad esempio l'invio di email o la ricezione automatica di aggiornamenti da o l'invio di aggiornamenti a un sistema esterno.

In generale, i servizi asincroni forniscono un rapporto costo / prestazioni inferiore rispetto ai servizi sincroni e dovrebbero essere preferiti laddove possibile. Tuttavia, i servizi asincroni accodano ed elaborano i messaggi nell'ordine in cui vengono ricevuti. Il tempo per elaborare una determinata transazione dopo che è stata accodata può variare notevolmente a seconda dei picchi del ciclo di elaborazione e di una serie di altri fattori. Pertanto, non sono adatti per alcuni scenari specifici in cui uno SLA (service level agreement) richiede che una transazione venga elaborata entro un breve periodo di tempo specificato. Tuttavia, questi scenari sono rari per la maggior parte delle aziende e dei processi di business e l'elaborazione asincrona è abbastanza efficiente per la maggior parte delle transazioni ad un costo significativamente inferiore, pur fornendo un livello di servizio elevato.