Integrazione dei dati in uscita

Completato

L'integrazione dei dati in uscita recupera i dati da Microsoft Dataverse e li rende disponibili ad altri sistemi.

Pubblicazione di eventi Dataverse

Dataverse fornisce un modello di eventi per l'integrazione con altri sistemi. Dataverse supporta l'attivazione di codice personalizzato e azioni esterne quando vengono rilevati eventi nella piattaforma. Questo modello di eventi è noto come framework degli eventi. Il framework degli eventi offre la possibilità di registrare il codice personalizzato da eseguire in risposta a eventi specifici. In genere, il framework degli eventi viene usato per attivare il codice plug-in personalizzato, ma anche per le integrazioni con altri sistemi.

Per usare il framework degli eventi per la soluzione in uso, assicurarsi di conoscere i seguenti concetti:

  • Eventi disponibili
  • Modalità di elaborazione dell'evento
  • Tipo di dati disponibile quando si verifica l'evento
  • Vincoli validi a livello di orari e risorse
  • Modalità di monitoraggio delle prestazioni

È inoltre possibile specificare le varie fasi:

  • Convalida preliminare: per il funzionamento iniziale, questa fase si verificherà prima dell'operazione di sistema principale. In questo modo sarà possibile includere la logica per annullare l'operazione prima della transazione di database. Questa fase viene eseguita prima dell'esecuzione di qualsiasi controllo di sicurezza per verificare che l'utente chiamante o connesso disponga dell'autorizzazione appropriata per eseguire l'operazione specifica.
  • Operazione preliminare: si verifica prima dell'operazione di sistema principale e nella transazione di database. Se si vuole modificare i valori di una tabella inclusa nel messaggio, è necessario eseguire tale operazione in questa fase.
  • Operazione principale: solo per uso interno eccetto per l'API personalizzata e i provider di dati della tabella virtuale personalizzata.
  • Operazione successiva: si verifica dopo l'operazione di sistema principale e nella transazione di database. Usare questa fase per modificare qualsiasi proprietà del messaggio prima che venga restituito al chiamante.

Nota

L'integrazione in genere usa la fase Operazione successiva e la modalità di esecuzione asincrona.

Il framework degli eventi può attivare gli elementi seguenti:

  • Plug-in
  • Flussi di lavoro classici
  • Flussi cloud di Power Automate
  • Messaggi al bus di servizio di Azure e all'hub eventi di Azure
  • Webhook

Evento e batch a confronto

Gli architetti di soluzioni devono classificare i dati necessari in Dataverse. Una categoria chiave è basata su eventi o batch. Il diagramma seguente confronta questi due approcci.

Diagramma degli approcci di integrazione in uscita.

Modello push

L'elaborazione basata su eventi è associata al modello push. Un evento in Dataverse esegue un processo che si connette al sistema esterno e aggiorna i dati in tale sistema. In caso di collegamento diretto a un altro sistema, gli architetti di soluzioni devono assicurarsi di non generare problemi a livello di prestazioni per entrambi i sistemi e di non creare un sistema strettamente accoppiato.

Importante

Se usa i plug-in, l'Architetto di soluzioni deve considerare il limite di due minuti associato all'elaborazione del plug-in.

Modello pull

Il modello pull usa eventi esterni dell'altro sistema o un trigger pianificato per recuperare un set di dati da Dataverse ed elaborare il set restituito.

Nota

Il trigger di ricorrenza in Power Automate viene spesso usato nel modello pull.

Rilevamento modifiche

La funzionalità di rilevamento modifiche in Dataverse consente di mantenere i dati sincronizzati in modo efficiente rilevando quali dati sono cambiati dall'ultima sincronizzazione dei dati. Senza il rilevamento modifiche, è difficile creare un meccanismo affidabile ed efficiente per determinare le righe modificate in Dataverse.

Quando vengono recuperati dati con il rilevamento modifiche, viene restituito un set di modifiche delta da Dataverse.

Nota

Il rilevamento modifiche deve essere abilitato nella tabella.

Integrazione con Azure

La piattaforma Dataverse supporta l'integrazione in uscita con Azure. Dataverse può inviare messaggi ai servizi di Azure mediante il framework degli eventi, come illustrato nel diagramma seguente.

Diagramma delle integrazioni con Azure.

Bus di servizio

Un servizio con cui Dataverse può essere integrato è il bus di servizio di Microsoft Azure.

È possibile usare il bus di servizio di Azure per separare applicazioni e servizi l'uno dall'altro e ciò offre i vantaggi seguenti:

  • Corretto funzionamento del bilanciamento del carico tra lavoratori concorrenti
  • L'instradamento e il trasferimento dei dati sono più sicuri e controllano i limiti a livello di servizi e applicazioni
  • Coordinamento del lavoro transazionale che richiede un alto grado di affidabilità.

Il bus di servizio di Azure può fornire un canale di comunicazione più sicuro e affidabile tra i dati di runtime di Dataverse e le applicazioni line-of-business (LOB) esterne basate sul cloud o locali, come illustrato nel diagramma seguente.

Diagramma dell'integrazione con il bus di servizio di Azure.

Come illustrato nell'immagine precedente, in Azure è stata creata una risorsa del bus di servizio di Azure. È stato sviluppato un processo listener che rimane in attesa dei messaggi da pubblicare su un bus di servizio di Azure. In Dataverse, l'endpoint del bus di servizio di Azure è stato registrato mediante il Plug-in Registration Tool ed è stato definito un passaggio che invia il contesto del plug-in al bus di servizio come messaggio quando si verifica un evento, ad esempio la creazione di una riga in Dataverse.

Il processo listener sarà automaticamente in grado di leggere il messaggio ed estrarre i dettagli dell'evento dal contesto (tabella, ID della riga, utente che ha attivato l'evento, elenco delle modifiche apportate ai dati e così via), nonché di eseguire le operazioni di elaborazione appropriate su tali dati.

Il processo listener può essere:

  • Un programma C# eseguito in un sistema locale che esegue il polling del bus di servizio per il rilevamento di nuovi messaggi.
  • Un'app in formato App per la logica di Microsoft Azure, attivata automaticamente alla pubblicazione di un nuovo messaggio.
  • Una funzione in formato Funzioni di Microsoft Azure, attivata automaticamente alla pubblicazione di un nuovo messaggio.

L'integrazione con il bus di servizio di Azure è utile quando esiste la possibilità che l'altro sistema non sia disponibile o che risulti limitata la relativa capacità di elaborare volumi elevati di messaggi perché i messaggi possono essere accodati, consentendo al sistema ricevente di elaborare i messaggi il più velocemente possibile.

È possibile pubblicare un messaggio sul bus del servizio in due modi:

  • Senza codice: creare un passaggio per l'evento in Dataverse rispetto all'endpoint del bus di servizio di Azure. Il contesto di implementazione del plug-in viene pubblicato nel bus di servizio.
  • Con codice: creare e registrare un plug-in in Dataverse che chiama l'endpoint del bus di servizio di Azure. Il messaggio inviato al bus di servizio può essere personalizzato.

Il bus di servizio di Azure può essere usato per eseguire le operazioni seguenti:

  • Creazione di app cloud affidabili ed elastiche con funzionalità di messaggistica.
  • Protezione dell'applicazione da picchi temporanei.
  • Distribuzione di messaggi a più sistemi operativi indipendenti.
  • Separazione delle applicazioni.
  • Creazione di messaggi ordinati che vengono distribuiti a più lettori.

Inoltro

In precedenza parte del bus di servizio di Azure, ora il servizio Inoltro di Microsoft Azure è un servizio a se stante.

Il servizio Inoltro di Azure semplifica e ottimizza l'integrazione tra i sistemi consentendo l'esposizione sicura dei servizi all'interno di una rete aziendale al cloud pubblico. È possibile esporre i servizi senza la necessità di una connessione al firewall e di modifiche onerose all'infrastruttura della rete aziendale.

Il servizio Inoltro di Azure supporta i seguenti scenari condivisi tra servizi locali e applicazioni in esecuzione nel cloud o in un altro ambiente locale:

  • Comunicazione tradizionale unidirezionale, richiesta/risposta e peer-to-peer
  • Distribuzione di eventi nell'ambito di Internet per abilitare scenari di pubblicazione/sottoscrizione
  • Comunicazione bidirezionale e senza buffer tra socket oltre i limiti di rete

Importante

Il servizio Inoltro di Azure consente di connettere due sistemi senza la necessità di una connessione diretta. Il servizio Inoltro di Azure si basa su un modello richiesta/risposta in modo che il sistema chiamante possa ricevere una risposta, ad esempio un dato o un messaggio di operazione riuscita, dall'altro sistema.

Hub eventi

Il servizio Hub eventi di Microsoft Azure è una piattaforma di streaming di Big Data e un servizio di inserimento di eventi. Questo servizio è in grado di ricevere ed elaborare milioni di eventi al secondo. I dati inviati a un hub eventi possono essere trasformati e archiviati utilizzando qualsiasi provider di analisi in tempo reale o adattatore di invio in batch/archiviazione.

Diversi altri sistemi possono effettuare la sottoscrizione agli eventi elaborati dal servizio Hub eventi. Inoltre, il servizio Hub eventi può filtrare gli eventi mediante gruppi di consumatori in modo che i sistemi ricevano solo gli eventi rilevanti in base alla relativa velocità di elaborazione.

Diagramma del servizio Hub eventi di Azure.

Nota

Gli argomenti relativi al bus di servizio di Azure descrivono un metodo simile che consente ai sistemi di effettuare la sottoscrizione ai messaggi filtrati.

È consigliabile considerare l'uso del servizio Hub eventi di Azure se sono necessari più sottoscrittori.

Un esempio di uso del servizio Hub eventi consiste nel pubblicare eventi per eseguire analisi di flusso che a loro volta popolano un set di dati di Microsoft Power BI finalizzato alla visualizzazione.

Webhook e funzioni di Azure

Dataverse supporta la chiamata di un webhook mediante il framework degli eventi. I webhook vengono registrati con lo strumento di registrazione plug-in e possono essere attivati da un evento specificato in un passaggio.

I webhook rappresentano un semplice modello HTTP per la connessione di API e servizi Web in base a un modello di pubblicazione/sottoscrizione. I mittenti dei webhook informano i destinatari degli eventi mediante richieste agli endpoint dei destinatari contenenti alcune informazioni sugli eventi stessi. In definitiva, i webhook sono un modello che può essere applicato usando un'ampia gamma di tecnologie. Non è necessario usare framework, piattaforme o linguaggi di programmazione specifici.

I webhook consentono agli sviluppatori di integrare i dati di Dataverse con il codice personalizzato ospitato su servizi esterni. Grazie al modello basato su webhook, è possibile proteggere l'endpoint mediante un'intestazione di autenticazione o chiavi di parametro della stringa di query. Questo approccio è più semplice rispetto al modello di autenticazione SAS usato dall'integrazione del bus di servizio di Azure.

La soluzione Funzioni di Azure rappresenta un ottimo modo per fornire una soluzione mediante l'uso dei webhook.

Quando è necessario decidere tra il modello basato su webhook e l'integrazione del bus di servizio di Azure, è necessario tenere presenti i seguenti fattori:

  • Il bus di servizio di Azure è consigliabile per l'elaborazione su larga scala in quanto fornisce un meccanismo di accodamento completo se Dataverse esegue il push di molti eventi.
  • La scalabilità dei webhook è possibile solo fino al punto in cui il servizio Web ospitato può gestire i messaggi.
  • I webhook consentono passaggi sincroni e asincroni. Il bus di servizio di Azure consente solo passaggi asincroni.
  • I webhook inviano richieste POST con payload JSON e possono essere usati da qualsiasi linguaggio di programmazione o applicazione Web ospitata senza limitazioni di posizione.
  • Il modello basato su webhook e il bus di servizio di Azure possono essere richiamati da un plug-in o da un'attività personalizzata del flusso di lavoro.

Integrazione del processo: Power Automate e servizio App per la logica di Azure

I flussi cloud di Power Automate sono basati sul servizio App per la logica di Azure ed entrambi possono, in linea di massima, soddisfare gli stessi requisiti. Tuttavia, entrambi sono caratterizzati da diversità specifiche. Un Architetto di soluzioni deve valutare attentamente quando usare i flussi cloud di Power Automate o il servizio App per la logica:

In Power Automate sono disponibili le funzionalità seguenti:

  • Il connettore Dataverse è caratterizzato da maggiore capacità
  • È incluso nel pacchetto come parte di una soluzione
  • Esegue la tecnologia RPA con i flussi desktop
  • Usa il connettore Approvals
  • Include un connettore per l'invio di notifiche
  • È caratterizzato da un numero limitato di esecuzioni di flussi al mese

Nel servizio App per la logica sono disponibili le funzionalità seguenti:

  • Esecuzione dell'integrazione aziendale, compreso EDI
  • È caratterizzato da prestazioni più elevate
  • Può essere monitorato più facilmente usando gli strumenti di Azure
  • È caratterizzato da una migliore gestione degli errori
  • Non può incluso in un pacchetto all'interno delle soluzioni
  • Il relativo modello di prezzi è a consumo o fisso tramite una sottoscrizione di Azure