Condividi tramite


Vantaggi dell'elaborazione in coda

Quando si progettano nuove applicazioni, gli sviluppatori devono considerare le implicazioni del codice dei componenti per l'elaborazione in tempo reale (sincrono) rispetto all'elaborazione in coda (asincrona). La scelta dipende dai requisiti dell'applicazione specifica, come determinato dalla logica di business sottostante. Come linea guida, l'elaborazione in coda offre i vantaggi seguenti rispetto all'elaborazione in tempo reale:

  • Riduzione della dipendenza dalla disponibilità dei componenti
  • Durate dei componenti più brevi
  • Produttività ininterrotta quando si usano applicazioni disconnesse
  • Affidabilità dei messaggi
  • Pianificazione efficiente dei server

Disponibilità dei componenti

In un'applicazione di elaborazione in tempo reale, se solo un componente della transazione non è disponibile, ad esempio a causa di problemi di overload del server o di rete, l'intero processo viene bloccato e non può essere completato. Al contrario, un'applicazione che usa il servizio componenti in coda COM+ separa la transazione in attività che devono essere completate ora e quelle che possono essere completate in un secondo momento. Ad esempio, i messaggi possono essere accodati per un'elaborazione successiva in modo che il componente richiedente sia gratuito per altre attività.

Durate dei componenti

Un'applicazione che usa il servizio componenti in coda consente al componente server di funzionare indipendentemente dal client. Di conseguenza, i componenti server possono essere completati più rapidamente. In un sistema in tempo reale, il componente server esiste dal momento in cui viene creato fino al rilascio dell'oggetto. Il server attende che il client eseghi chiamate al metodo e che i risultati vengano restituiti, negando il ciclo rapido degli oggetti server e limita la scalabilità del server.

Applicazioni disconnesse

L'uso crescente di portatili, notebook e palm computer ha creato una necessità di applicazioni che servizi occasionalmente disconnesso client o utenti mobili. In un sistema in coda, questi utenti possono continuare a funzionare in uno scenario disconnesso o quando non sono connessi al server e possono successivamente connettersi ai database o ai server per elaborare le richieste. Ad esempio, un venditore può accettare ordini dai clienti e successivamente connettersi al reparto di spedizione per elaborare tali ordini.

Se si dispone di un componente che può essere eseguito o disconnesso, i messaggi viaggiano in una direzione e raramente è necessario tornare indietro e indietro. Ad esempio, nello scenario di esecuzione degli ordini, il componente di spedizione riceve il messaggio ed elabora il messaggio. Può generare un altro componente per la fatturazione o il controllo. Il client esegue il commit prima dell'avvio del server. Il messaggio non viene inviato fino al commit dell'applicazione.

La figura seguente illustra il flusso di informazioni in uno scenario disconnesso.

Diagram that shows teh flow of information between the client and server.

Affidabilità dei messaggi

Accodamento messaggi è uno strumento potente che usa tecniche di database per proteggere i dati in modo affidabile. In caso di errore del server, Accodamento messaggi garantisce il rollback delle transazioni in modo che i messaggi non vengano persi e che i dati non siano danneggiati.

Pianificazione del server

Un'applicazione che usa componenti in coda è ideale per l'esecuzione di componenti a spostamento temporale, che rinvia il lavoro non critico a un periodo di minore attività. Si tratta dello stesso concetto utile applicato all'elaborazione in modalità batch tradizionale. Le richieste simili possono essere posticipate per l'esecuzione contigua dal server anziché richiedere al server di reagire immediatamente a un'ampia gamma di richieste.