Integrazione con Azure Service Bus per scenari di backend e dati

Scopri come utilizzare Azure Service Bus insieme a Microsoft Dataverse e alla Power Platform per creare soluzioni di integrazione scalabili, sicure e asincrone tra cloud e sistemi on-premises.

Cos’è Azure Service Bus

Azure Service Bus è un servizio di messaggistica basato sul cloud che consente la comunicazione affidabile e sicura tra applicazioni e servizi distribuiti. È pensato per gestire scenari di integrazione complessi, in cui i componenti devono scambiare messaggi in modo asincrono, evitando blocchi o dipendenze dirette.

Nel contesto della Microsoft Power Platform e in particolare di Microsoft Dataverse, Azure Service Bus rappresenta un canale chiave per abilitare integrazioni ibride, dove eventi generati da Dataverse vengono inviati a code o topic nel Service Bus per essere elaborati da applicazioni esterne o listener sviluppati in .NET o altri linguaggi supportati.

Architettura di integrazione: Dataverse e Azure Service Bus

Dataverse include un’integrazione nativa con Azure Service Bus. Questa integrazione consente di registrare endpoint e configurare eventi che inviano il contesto di esecuzione remoto — detto Remote Execution Context — a un listener esterno per l’elaborazione. L’architettura tipica è composta da tre elementi principali:

  • Listener Application: un’applicazione .NET o Azure Function che riceve ed elabora i messaggi dal Service Bus. Può essere eseguita on-premises o nel cloud.
  • Service Endpoint: un endpoint configurato in Dataverse tramite il Plug-in Registration Tool, che stabilisce la connessione con il namespace del Service Bus.
  • Dataverse Plug-in: un plug-in integrato che invia automaticamente i messaggi relativi agli eventi configurati, come la creazione, modifica o eliminazione di un record.
Dataverse Azure Service Bus Listener .NET
Figura 1: Flusso di integrazione tra Dataverse e Azure Service Bus.

Tipologie di integrazione supportate

Dataverse supporta due principali tipologie di integrazione con Azure Service Bus, ciascuna con caratteristiche e benefici distinti:

1. Remote Code Execution (Relay Pattern)

In questo scenario, l’evento di Dataverse attiva l’esecuzione remota di un componente esterno (listener) in tempo reale. Il listener deve essere sempre in esecuzione per rispondere immediatamente alle richieste. È utile per scenari che richiedono risposte immediate o elaborazioni sincrone.

2. Outgoing Integration (Queue o Topic Pattern)

In questo caso, Dataverse invia i messaggi a una coda o a un topic del Service Bus. Il listener può recuperarli in un secondo momento secondo le proprie logiche. Questo approccio è asincrono e più scalabile, ideale per workflow di backend e processi batch.

Confronto tra approcci

  • Relay: elaborazione immediata, listener sempre attivo, minore latenza.
  • Queue/Topic: asincrono, maggiore scalabilità, resilienza ai picchi di traffico.

Configurazione dell’integrazione

La configurazione dell’integrazione si effettua attraverso la registrazione del Service Endpoint mediante il Plug-in Registration Tool. I parametri chiave includono:

  • Namespace Address: l’indirizzo del namespace del Service Bus (es. sb://contoso.servicebus.windows.net/).
  • Message Format: formato dei messaggi (.NETBinary, JSON, o XML).
  • Authentication Type: tipologia di autenticazione (SASKey, Managed Identity, ecc.).
  • Designation Type: specifica se la comunicazione è relay-based o message-based.

È importante ricordare che il flusso opera in modalità asincrona end-to-end, anche quando si utilizza il relay pattern.

Best Practice e considerazioni di performance

L’integrazione con Azure Service Bus deve essere progettata con attenzione per garantire prestazioni e scalabilità ottimali. Alcune raccomandazioni fondamentali includono:

  • Utilizzare listener asincroni per evitare blocchi lato Dataverse.
  • Monitorare le code e i topic tramite Azure Monitor e Application Insights.
  • Gestire correttamente la dead-letter queue (DLQ) per messaggi non consegnati.
  • Implementare retry policies e circuit breaker per la resilienza.
  • Gestire i limiti di throughput impostando un piano di messaggistica adeguato.

Integrazione con altri servizi Azure

Azure Service Bus può essere usato insieme ad altri servizi per creare architetture di integrazione avanzate:

Queste combinazioni permettono di realizzare soluzioni ibride, resilienti e orientate ai microservizi, sfruttando appieno le potenzialità della piattaforma Microsoft.

Domande Frequenti su Azure Service Bus e Power Platform

Qual è la differenza tra Azure Service Bus e Webhook in Dataverse?

Azure Service Bus è una soluzione di messaggistica scalabile e asincrona, ideale per integrazioni complesse e ad alto volume. I webhook, invece, sono endpoint HTTP che gestiscono comunicazioni sincrone o asincrone semplici. I webhook sono più leggeri ma meno scalabili.

Serve una licenza Azure separata per usare Service Bus con Power Platform?

Sì, poiché Azure Service Bus è un servizio Azure indipendente. È necessario disporre di una sottoscrizione Azure per creare e configurare il namespace e le code/topic.

Posso usare Azure Service Bus per integrazioni on-premises?

Sì. È possibile configurare listener on-premises che si connettono al Service Bus in modo sicuro tramite connessioni outbound, senza aprire porte inbound nel firewall aziendale.

Approfondisci le integrazioni con Azure

Scopri di più su come combinare Azure Service Bus con altri servizi per creare architetture integrate e performanti nella Power Platform.

Torna alle integrazioni Azure Documentazione Microsoft