Con Business Process Choreographer è possibile separare la logica dei processi
aziendali e human task dalla risoluzione staff. Le query staff vengono risolte utilizzando un plugin specifico per il servizio directory. Di seguito sono riportati gli aspetti di base per utilizzare il servizio staff:
Per informazioni dettagliate sui plugin della risoluzione staff, fare riferimento ai White paper di Process
Choreographer: Staff Resolution Architecture, Process Choreographer:
Programming Model for Staff Resolution e Process Choreographer:
Staff Resolution Parameter Reference all'indirizzo WebSphere Business Process Choreographer
Concetto della query e del servizio di staff
Utilizzare
WebSphere Integration Developer per definire le query staff per il servizio di supporto staff. Le query staff si basano sulle maschere delle query staff, sui verbi staff e sono associate ai ruoli previsti per processi aziendali e human task, come ad esempio ProcessStarter e PotentialOwners.
Un verbo staff viene identificato da un nome univoco e comprende una serie di parametri di query. Il verbo staff che dispone di parametri viene trasformato al momento della distribuzione dell'applicazione per determinare una query di staff specifica dell'archivio. Quest'ultima viene utilizzata durante l'esecuzione di un processo aziendale o human
task per richiamare le identità degli utenti da un archivio utenti.
Ciascun processo
aziendale o human task viene associato ad una configurazione di plugin specifica mediante il nome JNDI. La configurazione viene estratta al momento della distribuzione dalla definizione del processo o dell'attività e viene utilizzata per mappare ciascun verbo di staff trovato in una query di staff specifica dell'archivio. La mappatura è governata da un file di trasformazione XSL che specifica un verbo staff come input e produce la query specifica dell'archivio come output.
Per impostazione predefinita, sono compresi tre plugin staff predefiniti, che rappresentano le diverse opzioni di archivio utente:
- Il provider di plugin staff LDAP viene utilizzato per generare le query di staff che possono essere eseguite con un server LDAP:
- Il provider di plugin staff del registro utente è utilizzato per generare le query di staff che possono essere eseguite con il registro utente WebSphere Application Server.
- Il provider di plugin del sistema non è associato ad un archivio utente. Invece, restituisce le identità utente che derivano direttamente dai parametri del verbo staff esistente. Questo provider di plugin si intende per scopi di verifica e di prototipo.
Ciascuno dei provider di plugin staff è associato ad almeno una configurazione. In particolare, una configurazione specifica un file di trasformazione XSL che esegue la mappatura tra i verbi staff e le query staff specifiche all'archivio. Per impostazione predefinita, sono forniti i seguenti file di trasformazione:
- Il file di trasformazione LDAPTransformation.xsl mappa i verbi di staff alle query staff specifiche LDAP che possono essere eseguite mediante un'interfaccia JNDI.
- Il file UserRegistryTransformation.xsl mappa i verbi di staff alle query staff specifiche al registro utente WebSphere.
- Il file SystemTransformation.xsl mappa i verbi di staff agli ID utente correnti specificati nei verbi. Non richiede un archivio utente reale.
- Il file EverybodyTransformation.xsl mappa i verbi di staff al risultato predefinito "everybody". Non richiede un archivio utente reale.
Implementazione di una query di staff
L'esempio di seguito riportato riepiloga i passi per l'implementazione di una query di staff:
- Utilizzando WebSphere Integration Developer, un programma di modellazione associa un'attività appena creata alla configurazione del plugin di staff bpe/staff/sampleldapconfiguration.
- Utilizzando WebSphere Integration Developer, il programma di modellazione associa i ruoli per l'attività ai verbi staff corrispondenti, ad esempio, PotentialOwners è associato al verbo
staff "Group Members" che comprende i parametri:
- "GroupName" impostato al valore "cn=group1,dc=mycomp,dc=com"
- "IncludeSubgroups" impostato al valore "true"
- Nel contesto dell'attività, WebSphere Integration Developer memorizza la definizione del verbo come frammento XML:
<verb>
<name>Group Members</name>
<parameter id="GroupName">cn=group1,dc=mycomp,dc=com</parameter>
<parameter id="IncludeSubgroups">true</parameter>
</verb>
- Quando l'attività viene distribuita in WebSphere Application Server, il servizio di supporto staff
stabilisce che deve essere utilizzato il provider di plugin staff LDAP bpe/staff/sampleldapconfiguration. Il file LDAPTransformation.xsl associato viene utilizzato per trasformare il verbo staff in una query specifica LDAP, memorizzata internamente.
Impostazione verbi delle query staff
Il servizio di supporto staff accetta le query in formato astratto, indipendente dall'infrastruttura dell'archivio utente. Sia l'editor del processo sia l'editor delle attività dispongono di una serie di verbi di staff predefiniti che possono essere utilizzati quando si modellano i processi e le attività. Questi verbi si trovano nel file VerbSet.xml. Questo file viene installato con WebSphere Integration Developer.
I plugin di risoluzione staff singoli e i file di mappatura XSLT non supportano tutti i verbi. Il verbo Dirigente dell'impiegato, ad esempio, non è disponibile se si
utilizza il registro utenti o il plugin di sistema. È possibile modificare la serie di verbi di query di staff. Apportare le
modifiche a una copia del file. Accertarsi che il file copiato abbia un nome differente.
È disponibile la seguente serie predefinita
di verbi. Per informazioni sui parametri che possono essere utilizzati con ciascuno dei verbi, consultare Verbi di staff predefiniti e relativi parametri.
- Membri reparto
- Utilizzare questo verbo per definire una query in modo da richiamare i membri di un
reparto.
Gli utenti richiamati appartengono a ognuno dei reparti specificati (DepartmentName,
AlternativeDepartmentName1 o AlternativeDepartmentName2). Questo verbo è supportato dal plugin LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Group
- Utilizzare questo verbo per richiamare il nome del gruppo che corrisponde al parametro groupName. È utilizzato con
gli elementi di lavoro di gruppo. Questo verbo è supportato da tutti i plugin.
- Everybody
- Utilizzare questo verbo per assegnare un elemento di lavoro a ogni utente autenticato
da WebSphere Process Server. Tale verbo è supportato dai plugin di sistema, del registro utente e LDAP.
- Group Members
- Utilizzare questo verbo per definire
una query in modo da richiamare i membri fino a tre gruppi. Gli utenti richiamati appartengono a ognuno dei gruppi specificati (GroupName,
AlternativeGroupName1 o AlternativeGroupName2). Questo verbo è supportato dai plugin del registro utenti e LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Group Members without Named Users
- Utilizzare questo verbo per definire una query in modo da richiamare i membri di un
gruppo, esclusi gli utenti del gruppo esplicitamente denominati. È possibile specificare uno o più membri per l'esclusione in forma di un elenco separato da virgole. Questo verbo è supportato dai plugin del registro utenti e LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Group Members without Filtered Users
- Utilizzare questo verbo per definire una query in modo da richiamare i membri di un
gruppo, esclusa una serie di utenti definiti da un filtro di ricerca LDAP. Questo verbo è supportato dal plugin LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Group Search
- Utilizzare questo verbo per ricercare un gruppo in base a una corrispondenza di
attributi e richiamare i membri del gruppo. Questo verbo è supportato dai plugin del registro utenti e LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Manager of Employee
- Utilizzare questo verbo per richiamare il dirigente di una persona utilizzando il
nome della persona stessa.
Questo verbo è supportato dal plugin LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Manager of Employee by user ID
- Utilizzare questo verbo per richiamare il dirigente di una persona utilizzando l'ID
utente della persona stessa. Tale verbo risulta utile insieme alle query di contesto. Questo verbo è supportato dal plugin LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Native Query
- Utilizzare questo verbo per definire una query nativa basata su parametri specifici
della directory.
Questo verbo è supportato dai plugin del registro utenti e LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Nobody
- Utilizzare questo verbo per negare il normale accesso utente all'elemento di lavoro; per le attività in linea, solo l'amministratore del
processo aziendale e l'amministratore di sistema del processo aziendale possono disporre dell'accesso. Per le attività autonome, solo l'amministratore human task e l'amministratore del sistema human task dispongono dell'accesso. In base all'API utilizzata, l'amministratore J2EE autorizzato sarà diverso. Per l'API del processo aziendale, è l'utente BPESystemAdministrator, per l'API human task sarà l'utente TaskSystemAdministrator. Tale verbo è supportato dai plugin di sistema, del registro utente e LDAP.
- Person Search
- Utilizzare questo verbo per ricercare una persona in base a una corrispondenza di
attributi. Questo verbo è supportato dai plugin del registro utenti e LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Role Members
- Utilizzare questo verbo per richiamare gli utenti associati al ruolo dell'archivio di staff. Gli utenti richiamati appartengono a ognuno dei ruoli specificati (RoleName,
AlternativeRoleName1 o AlternativeRoleName2). Questo verbo è supportato dal plugin LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Users
- Utilizzare questo verbo per definire una query staff per un utente conosciuto tramite
il nome.
Non
si consiglia di codificare in modo permanente i nomi utente nelle maschere di processo.
Questo verbo è utile per scopi di test. Tale verbo è supportato dai plugin di
sistema, del registro utente e LDAP. Potrebbe
essere necessario personalizzare il file XSLT di mappatura predefinito affinché
corrisponda allo schema LDAP dell'organizzazione.
- Users by user ID
- Utilizzare questo verbo per definire una query staff per un utente di cui si conosce l'ID.
Sebbene non sia consigliato codificare in modo permanente gli ID utente nelle
maschere di processo e di attività, questo verbo è utile insieme alle query di contesto, ad
esempio:
Utente [username='%wf:process.starter%']
Questo verbo è utile per scopi di test. Tale verbo è supportato dai plugin di sistema, del registro utente e LDAP.
- Users by user ID without Named Users
- Utilizzare questo verbo per definire una query staff per gli utenti di cui si conosce l'ID utente
ed escludere esplicitamente gli ID utente denominati. Sebbene non sia consigliato codificare in modo permanente gli ID utente nelle
maschere di processo e di attività, questo verbo è utile insieme alle query di contesto, ad
esempio:
User [userID='%htm:task.potentialStarters%', NamedUsers='%wf:activity(...).owner%']
Query di staff specifiche all'archivio
Il file di conversione
XSL, associato alla configurazione del plugin staff, viene utilizzato per generare query di staff che sono specifiche per un determinato archivio.
Ciascuna query può essere eseguita dal rispettivo plugin staff per ottenere un elenco di ID utenti. Le query predefinite, disponibili per un plugin staff, corrispondono ai richiami che possono essere eseguiti dal plugin, pertanto sono fisse.
In base a query predefinite, è possibile formare query più complesse utilizzando i seguenti meccanismi:
- Un unione di risultati di query implica che gli ID utente restituiti dalle singole query verranno aggiunti all'elenco dei risultati correnti delle identità utente. Ad esempio:
il plugin staff LDAP consente, tra l'altro, per le query predefinite i seguenti tipi:
L'elenco di ID utente per i membri del gruppo di un gruppo specificato:
<sldap:usersOfGroup groupDN="cn=group1,dc=mycomp" recursive="yes">
...
</sldap:usersOfGroup>
L'ID utente di un utente specificato:
<sldap:user dn="uid=user1,dc=mycomp" .../>
Una query complessa può essere creata per l'elenco di ID utenti per i membri di un determinato gruppo, compresa l'identità dell'utente specificato:
<sldap:staffQueries>
<sldap:usersOfGroup groupDN="cn=group1,dc=mycomp" recursive="yes">
...
</sldap:usersOfGroup>
<sldap:user dn="uid=user1,dc=mycomp" .../>
</sldap:staffQueries>
- Una differenza di risultati di query implica che gli ID utente restituiti da una query <remove>
verranno rimossi dall'elenco corrente dei risultati. Ad esempio, se si rimuove
"user1" dall'elenco di ID richiamati per membri di un gruppo specificato:
<sldap:staffQueries>
<sldap:usersOfGroup groupDN="cn=group1,dc=mycomp" recursive="yes">
...
</sldap:usersOfGroup>
<sldap:remove value="user1"/>
</sldap:staffQueries>
- Il riferimento ai risultati di query implica che i risultati ottenuti da una query siano utilizzati per condizionare il comportamento di una query successiva. Ad esempio, nel seguente frammento, vengono eseguite due query. Primo, il valore dell'attributo
"manager" nella voce LDAP per l'utente "uid=user1,…" viene richiamato e salvato in una variabile intermedia "supervisor", che viene, quindi, utilizzata per ricercare la voce LDAP del dirigente e richiamare l'identità utente associata.
<sldap:staffQueries>
<sldap:intermediateResult name="supervisor">
<sldap:user dn="uid=user1,dc=mycomp" attribute="manager" ... />
</sldap:intermediateResult>
<sldap:user dn="%supervisor% .../>
</sldap:staffQueries>
Le query di staff create in base alle tre regole di combinazione illustrate in precedenza possono essere eseguite dai plugin di staff. Per una descrizione dettagliata di tutte le query di staff predefinite per ciascuno dei plugin di staff supportati ed ulteriori esempi sulla relativa combinazione, consultare i White paper
Process Choreographer: Staff Resolution Parameter
Reference all'indirizzo
WebSphere Business Process Choreographer.
File di conversione XSL del verbo di staff
Il file di conversione
XSL specificato per una configurazione dei plugin di staff definisce la mappatura tra i verbi di staff e le query di staff specifiche dell'archivio. Si prevede che ciascuna configurazione di plugin staff disponga del relativo file di conversione XSL.
I file di conversione predefiniti sono:
- LDAPTransformation.xsl per il plugin del provider di staff LDAP
- UserRegistryTransformation.xsl per il plugin del provider di staff del registro utente
- SystemTransformation.xsl e EverybodyTransformation.xsl per il plugin del provider di staff del sistema
Questi file di conversione mappano la serie predefinita di verbi staff alle corrispondenti query semplici e composite specifiche dell'archivio. Questi file si trovano nella directory
install_root/ProcessChoreographer/Staff.
I file di conversione presuppongono alcune semantiche per i verbi di staff e la relativa esecuzione utilizzando le query di staff specifiche dell'archivio generate. Se vengono richieste altre semantiche, è necessario modificare di conseguenza la mappatura nel file di conversione.
Ad esempio, il plugin di staff fornito con un verbo di staff predefinito:
<staff:verb>
<staff:name>Manager of Employee</staff:name>
<staff:parameter id="EmployeeName">
uid=anEmployeeName,cn=users,dc=ibm,dc=com
</staff:parameter>
</staff:verb>
È mappato mediante il file LDAPTransformation.xsl ad una query
LDAP:
<sldap:staffQueries>
<sldap:intermediateResult name="supervisor">
<sldap:user dn="anEmployeeName" attribute="manager"
objectclass="inetOrgPerson"/>
</sldap:intermediateResult>
<sldap:user dn="%supervisor%" attribute="uid" objectclass="inetOrgPerson"/>
</sldap:staffQueries>
Che presuppone esplicitamente che LDAP DN del supervisore è memorizzato nell'attributo "manager" dell'impiegato. Se questo verbo deve disporre di semantiche diverse, ad esempio, se il supervisore dovrebbe provenire dall'attributo LDAP
"teacher". Quindi, la query specifica LDAP deve essere modificata di conseguenza:
<sldap:staffQueries>
<sldap:intermediateResult name="supervisor">
<sldap:user dn="anEmployeeName" attribute="teacher"
objectclass="inetOrgPerson"/>
</sldap:intermediateResult>
<sldap:user dn="%supervisor%" attribute="uid" objectclass="inetOrgPerson"/>
</sldap:staffQueries>
Per ottenere ciò, adattare il file LDAPTransformation.xsl di conseguenza:
<xsl:template name="ManagerOfEmployee">
<sldap:staffQueries>...
<sldap:intermediateResult>
<xsl:attribute name="name">supervisor</xsl:attribute>
<sldap:user>
<xsl:attribute name="dn">
<xsl:value-of select="staff:parameter[@id='EmployeeName']"/>
</xsl:attribute>
<xsl:attribute name="attribute">teacher</xsl:attribute>
...
</sldap:user>
</sldap:intermediateResult>
<sldap:user>
<xsl:attribute name="dn">%supervisor%</xsl:attribute>
...
</sldap:user>
</sldap:staffQueries>
</xsl:template>
Per una conoscenza più approfondita del comportamento relativo alla mappatura, visualizzare i file di conversione predefiniti. La semantica delle conversioni predefinite è descritta all'indirizzo
Impostazione verbi delle query staff.
Utilizzo di variabili di contesto del processo e dell'attività nei verbi di staff
In alcuni verbi di staff, è possibile utilizzare variabili di contesto del processo aziendale e human task come valori di parametri. In questo modo, il servizio di supporto staff risolve i verbi staff al runtime in base alle informazioni fornite dai contesti. Ad esempio, il verbo di staff:
<verb>
<name>Users by user ID</staff:name>
<parameter id="UserID">%htm:input.\name%</staff:parameter>
</verb>
Specifica come parametro, la variabile del contesto dell'attività htm:input.\name,
che denota la parte "nome" del messaggio di input ricevuto dall'attività quando è inizializzata. Il servizio di supporto staff sostituisce in modo dinamico la variabile di contesto con il corrente valore del contesto dell'attività.
Per una descrizione dei verbi e dei parametri in cui è possibile utilizzare le variabili di contesto, consultare Verbi predefiniti del servizio Staff.
Serie di verbi e-mail
La serie di verbi e-mail in
WebSphere Integration Developer è per le notifiche è e-mail per le escalation delle attività.
Questi verbi e-mail vengono trasformati durante il modellamento e la distribuzione in una serie di query che possono essere eseguite in un archivio di staff. I verbi e-mail vengono definiti per i più comuni verbi staff supportati dal plugin LDAP. I seguenti verbi e-mail sono disponibili:
- Email Address for Department Members
- Email Address for Group Members
- Email Address for Group Members without Names Users
- Email Address for Group Members without Filtered Users
- Email Address for Group Search
- Email Address for Role Members
- Email Address for Users
- Email Address for Users by User ID
Per gli altri verbi staff LDAP, gli identificativi utente richiamati dai verbi staff vengono utilizzati come input per il verbo Email Address
for Users by User ID.
Prima che i verbi e-mail possano essere eseguiti come query su un archivio staff specifico, devono essere tradotti in query eseguibili utilizzando la trasformazione XSL LDAP. Il risultato di una trasformazione (mappatura) può essere eseguita dal plugin di risoluzione staff LDAP. Al runtime, la query restituisce una serie di indirizzi e-mail, ad esempio, user1@mycomp.com, user2@mycomp.com e così via.