Uso efficiente dell'accesso Single Sign-On nella soluzione di gestione dei processi di business
Analogamente alla soluzione orientata ai servizi, anche nella soluzione Gestione dei processi di business viene utilizzato Enterprise Single Sign-On (SSO) per archiviare valori di configurazione quali il numero delle fasi di elaborazione degli ordini. A tale scopo viene utilizzato l'archivio segreto perché è presente ogni volta che si installa BizTalk. SSO memorizza nella cache le informazioni di configurazione in modo da rendere i valori subito disponibili e consente di proteggere informazioni quali password e stringhe di connessione al database. Per tutti questi motivi, l'archivio segreto costituisce una posizione ottimale per le informazioni di configurazione anche se non si intende utilizzare Single Sign-On per gestire le connessioni ad applicazioni back-end.
Per ridurre la latenza, la soluzione utilizza una cache locale per i valori di configurazione. La soluzione aggiorna la cache ogni cinque minuti.
In questo argomento viene descritto il meccanismo di memorizzazione nella cache utilizzato dalla soluzione. Per questa soluzione viene utilizzato un approccio leggermente diverso alla memorizzazione nella cache SSO rispetto alla soluzione orientata ai servizi. Per una descrizione del modo in cui la soluzione orientata ai servizi memorizza nella cache i valori SSO, vedere Uso efficiente dell'accesso Single Sign-On nella soluzione orientata ai servizi.
Memorizzazione nella cache dei valori di configurazione in locale
La soluzione Gestione dei processi di business utilizza le proprietà definite su un oggetto singleton per fornire l'accesso ai valori SSO.
Nota
È importante ricordare che un oggetto singleton è un oggetto che può avere una sola istanza. Per altre informazioni sugli oggetti singleton e sulla relativa creazione in C#, vedere Implementazione di Singleton in C#.
Nella soluzione un'orchestrazione recupera dapprima l'oggetto singleton e quindi fa riferimento ai valori tramite le proprietà dell'oggetto. Ecco il codice dell'orchestrazione OrderManager :
configData = Microsoft.Samples.BizTalk.SouthridgeVideo.Utilities
.SsoConfigHelper.Singleton;
numStages = configData.TotalStages;
L'orchestrazione chiama il metodo Singleton nell'oggetto SsoConfigHelper per ottenere l'accesso a una copia dell'oggetto. Con l'oggetto in mano, l'orchestrazione recupera il numero di fasi di elaborazione, TotalStages.
La soluzione segue un metodo comune di creazione di un singleton: rendere privato il costruttore, fare in modo che l'oggetto crei un'istanza di se stesso e assegnarlo a una variabile privata e, tramite un metodo o una proprietà, fornire l'accesso al valore di tale variabile. L'oggetto SsoConfigHelper usa una proprietà, Singleton, per fornire l'accesso alla singola copia di se stessa.
Nota
L'oggetto SsoConfigHelper usa un costruttore statico per ottenere i valori iniziali dalla cache SSO e per configurare il meccanismo di aggiornamento. Poiché non è possibile chiamare un costruttore statico, mantiene la struttura singleton. Per altre informazioni, vedere Costruttori statici (Guida per programmatori C#).
Tutti gli oggetti cui fa riferimento un'orchestrazione, direttamente o indirettamente, devono essere serializzabili. Per altre informazioni, vedere "Serializzazione" in Persistenza e motore di orchestrazione. Anche se l'oggetto SsoConfigHelper è necessariamente serializzabile, se il motore disidrata l'orchestrazione, quando l'orchestrazione viene riattivata, userà comunque la singola istanza corrente dell'oggetto. Per altre informazioni sulla serializzazione e sulle variabili BizTalk Server, vedere Tipi di variabili di orchestrazione.
Nota
Tutti i metodi pubblici definiti sull'oggetto della soluzione orientata ai servizi sono statici. In tal modo l'orchestrazione non deve assegnare un'istanza a una variabile, pertanto non è necessario che la classe venga serializzata.
L'oggetto SsoConfigHelper usa gli stessi meccanismi per recuperare e aggiornare i valori di configurazione come la soluzione orientata ai servizi. Viene inoltre utilizzato lo stesso modello di blocco. Per altre informazioni su questi meccanismi, vedere Uso efficiente dell'accesso Single Sign-On nella soluzione orientata ai servizi e del codice sorgente per SsoConfigHelper.
Analogamente alla memorizzazione nella cache single Sign-On eseguita nella soluzione orientata ai servizi, la soluzione di gestione dei processi aziendali implementa l'interfaccia IPropertyBag dallo spazio dei nomi Microsoft.BizTalk.SSOClient.Interop per archiviare i valori. La soluzione di gestione dei processi aziendali usa un oggetto HybridDictionary anziché un oggetto NameValueCollection .
A differenza della soluzione orientata ai servizi, la soluzione Gestione dei processi di business espone un oggetto con proprietà corrispondenti ai dati di configurazione. In tal modo si evita che sia l'orchestrazione a gestire le differenze nei tipi di messaggio.
Vedere anche
Implementazione della soluzione di gestione dei processi di business