Amministrazione di base > Gestione della partecipazione dell'utente > Team > Procedure ottimali per l'utilizzo dei team locali e condivisi
  
Procedure ottimali per l'utilizzo dei team locali e condivisi
Per gestire la community di utenti nel modo più efficace, analizzare come organizzare al meglio gli utenti a livello di sito o di organizzazione. Laddove possibile, creare gruppi definiti dall'utente a livello di sito o di organizzazione e team condivisi a livello di organizzazione, quindi utilizzare questi gruppi e team durante la creazione dei contesti di applicazione.
Quando si decide quali ruoli devono essere utilizzati nei team condivisi e locali, assicurarsi di controllare i modelli di team che verranno utilizzati in modo da abbinare i ruoli nei team di contesto ai ruoli utilizzati nei modelli di team in base alle esigenze.
Progettazione dei team di contesto
Per offrire agli utenti la massima efficienza di accesso ai dati aziendali, è importante utilizzare team di contesto progettati non solo per un controllo di accesso accurato ma anche per prestazioni ottimali del sistema.
I siti in cui sono previste migliaia di prodotti, progetti o librerie devono attenersi scrupolosamente alle seguenti linee guida nella progettazione di una struttura per i team di contesto. Queste linea guida possono contenere potenziali ottimizzazioni anche per team progettati e in uso da tempo. Le tecniche di ottimizzazione possono offrire vantaggi anche a siti di dimensioni inferiori.
Progettare la struttura dei team basandosi interamente su team locali risulta spesso più facile, ma i team locali sono business object caratterizzati da un impiego molto elevato di memoria e potenza di elaborazione. Quanto più elaborata e specifica è la struttura di un team, tanto più è impegnativa per risorse di sistema come quelle riportate di seguito.
Cache
Interrogazioni su database
Processi basati su code, come il ricalcolo della coda
Ricerche e interazioni generali dell'utente nel sistema
Strutture di team molto grandi e complesse, moltiplicate per le migliaia di prodotti e contenitori in cui vengono utilizzate, possono incidere significativamente sulle risorse di sistema. Non solo strutture di team complesse possono rallentare le funzionalità specifiche del team, ma in casi estremi il carico generato sulle risorse di sistema può avere un impatto negativo sulle prestazioni complessive del sistema. È pertanto importante un'accurata pianificazione per progettare una struttura di team ottimale in grado di soddisfare le esigenze aziendali e non influire negativamente sulle prestazioni.
Nella progettazione di una struttura di team, la motivazione principale è soddisfare i requisiti aziendali in termini di permessi per i diversi segmenti della community di utenti ai fini dell'accesso al contenuto nei contesti di applicazione. Nel processo di progettazione dei team, attenersi alle linee guida riportate di seguito.
Suddividere in categorie i permessi necessari
In genere, i permessi necessari agli utenti rientrano in due categorie: se i diritti di accesso devono essere basati sul ruolo di un utente in un contesto di applicazione o se devono essere concessi all'utente indipendentemente dal suo ruolo in un contesto. Questa distinzione consente di determinare se l'accesso deve essere concesso ai partecipanti indipendenti dal contesto o ai partecipanti specifici del contesto.
Partecipanti indipendenti dal contesto
Per i partecipanti che devono accedere agli oggetti, che siano membri o meno del contesto di applicazione in cui risiedono gli oggetti, creare delle regole di controllo d'accesso utilizzando i seguenti partecipanti: utenti, gruppi definiti dall'utente, organizzazioni o pseudoruoli.
Si supponga, ad esempio, che tutti gli utenti di un'organizzazione debbano disporre del permesso di lettura per i documenti di specifica nello stato Rilasciato di tutti i prodotti pubblici all'interno dell'organizzazione. Per concedere ai partecipanti dell'organizzazione il permesso di lettura per il tipo di documenti di specifica nello stato Rilasciato, applicare questi diritti di accesso attraverso una regola di controllo d'accesso definita in un dominio PDM, di default o dell'organizzazione.
Partecipanti specifici del contesto
Per i partecipanti che richiedono l'accesso a oggetti che si trovano in un contesto di applicazione in base al ruolo nel contesto, creare le regole di controllo d'accesso utilizzando gruppi di sistema e ruoli dinamici. Quando si creano le regole di controllo d'accesso per i ruoli, occorre valutare se la regola deve essere applicata a un ruolo dinamico, se le esigenze del permesso per tale ruolo sono uguali tra contesti oppure se è necessario creare la regola per un gruppo di sistema perché le esigenze di permesso del ruolo cambiano tra i contesti di applicazione.
È ad esempio possibile che gli utenti responsabili della progettazione di un prodotto debbano disporre del permesso di creazione e modifica per tipi di dati specifici. Questo si applica solo ai prodotti per cui agli utenti è stato assegnato lavoro di progettazione. Applicare questi permessi attraverso i ruoli dinamici associati ai progettisti nei team locali o condivisi.
Quando si crea un contesto di applicazione, è possibile valutare l'utilizzo di un team condiviso se i partecipanti e i ruoli del team sono uguali tra un insieme di contesti. Se i ruoli del team o i partecipanti nei ruoli cambiano tra i contesti di applicazione, utilizzare un team locale. Se le modifiche tra i contesti di applicazione sono secondarie, prendere in considerazione l'utilizzo di un team condiviso esteso a livello locale.
È possibile combinare le diverse opzioni. Non è necessario implementare una singola opzione per tutti i casi. Ad esempio, è possibile scegliere di utilizzare i team condivisi per i contesti di libreria e i team locali per determinati insiemi di contesti di progetto e di prodotto e i team condivisi estesi localmente per altri insiemi di contesti di progetto e di prodotto.
* 
Per le esigenze di permessi ad ampio raggio, considerare di utilizzare i partecipanti indipendenti dal contesto. La dimensione del team rimane così ottimale e si riduce l'impatto sulle risorse di elaborazione di sistema. Per le esigenze di permessi che variano tra i contesti, utilizzare i partecipanti specifici al contesto.
Nell tabelle seguenti vengono forniti ulteriori dettagli sulle varie tecniche per gestire i permessi per i team e sul relativo impatto sulle prestazioni.
Partecipanti indipendenti dal contesto (utenti, gruppi definiti dall'utente, organizzazioni e pseudoruoli)
Efficienza delle risorse di sistema
Situazione ottimale
I requisiti in termini di permessi per determinati gruppi di partecipanti non cambiano da un contesto di applicazione all'altro.
Modalità di utilizzo
I partecipanti non devono essere aggiunti al team. Devono invece essere dotati dei necessari permessi attraverso le regole di controllo d'accesso.
Esempi
Esempio 1
Un'intera organizzazione necessita dell'accesso in lettura a tipi specifici di dati in ciascun prodotto pubblico all'interno dell'organizzazione. In questo caso, un'opzione sarebbe aggiungere tutti gli utenti dell'organizzazione al ruolo Ospite in ogni prodotto. Si tratta tuttavia di un processo complesso. È invece possibile concedere agli utenti l'accesso in lettura attraverso regole di accesso a tipi di oggetto specifici in un dominio amministrativo appropriato, quale il dominio PDM, di default o dell'organizzazione.
Esempio 2
Un determinato gruppo di utenti svolge le funzioni di Esame conformità in ogni contesto di applicazione. La creazione di un ruolo Esame conformità e l'aggiunta degli stessi utenti a tale ruolo in ogni contesto di applicazione genera un overhead aggiuntivo non necessario. In alternativa, è possibile concedere al gruppo di utenti i necessari permessi attraverso regole di accesso per un gruppo definito dall'utente Esame conformità, in un dominio amministrativo appropriato, quale un dominio del sito/(radice).
Ulteriori considerazioni
Per gli utenti che non sono membri del team del contesto di applicazione, i contesti di applicazione non vengono elencati nella pagina Prodotto, Libreria, Programma o Elenco progetti dell'interfaccia utente. Gli utenti possono tuttavia cercare i contesti di applicazione. Se dispongono dei permessi appropriati, la ricerca restituisce tali contesti. Dopo l'accesso, i contesti di applicazione vengono caricati negli elenchi aperti di recente nel Navigatore e sono disponibili per un utilizzo successivo.
Se tali utenti devono accedere ad azioni non visibili automaticamente ad utenti non membri del team, è possibile usare le impostazioni Configura azioni per i ruoli per renderle loro visibili. Tali regole potrebbero essere fornite automaticamente nei nuovi contesti tramite modelli di contesto. Per alcune funzionalità, come la partecipazione ai workflow, potrebbe inoltre essere necessario definire impostazioni diverse per gli utenti non membri del team.
Le regole di accesso necessarie affinché tali utenti possano accedere a diversi tipi di dati nel contesto di applicazione possono variare caso per caso. Tali permessi devono essere identificati e concessi in modo appropriato.
Ulteriori informazioni
Team condiviso
Partecipanti specifici del contesto (gruppi di sistema e ruoli dinamici)
Efficienza delle risorse di sistema
Situazione ottimale
I partecipanti richiedono l'accesso agli oggetti che si trovano in un contesto di applicazione in base al proprio ruolo nel contesto.
La stessa struttura di team può essere applicata a diversi contesti di applicazione simili, con modifiche minime o senza alcuna modifica.
Gli stessi utenti o gruppi svolgono gli stessi ruoli in tutti i contesti di applicazione.
La struttura può essere estesa localmente per soddisfare esigenze aggiuntive (vedere Ulteriori considerazioni di seguito).
Modalità di utilizzo
I team condivisi vengono in genere utilizzati per i team di libreria a causa della natura generica dei permessi da fornire agli utenti.
In altri casi, è possibile creare più team condivisi per diversi insiemi di prodotti e di progetti.
Ulteriori considerazioni
I team condivisi offrono la massima efficienza quando non sono estesi localmente. Estendendo localmente il team ne viene creata un'istanza locale che riduce alcuni dei vantaggi in termini di prestazioni previsti in caso di team condiviso. A seconda dell'entità delle modifiche apportate al team condiviso in ogni team locale, si potrebbero non realizzare affatto i reali vantaggi del team condiviso.
Ulteriori informazioni
Team locale
Partecipanti specifici del contesto (gruppi di sistema e ruoli dinamici)
Efficienza delle risorse di sistema
Situazione ottimale
I partecipanti richiedono l'accesso agli oggetti che si trovano in un contesto di applicazione in base al proprio ruolo nel contesto.
La struttura del team è specifica per ciascun contesto di applicazione.
I partecipanti che funzionano nei ruoli del team sono specifici per ciascun contesto di applicazione.
Modalità di utilizzo
Creare ampi gruppi di utenti in base alle responsabilità.
Aggiungere i gruppi a ruoli specifici nel team.
Non creare gruppi di utenti univoci per ogni singolo contesto. Valutare la possibilità di adottare gruppi di utenti riutilizzabili.
Ulteriori considerazioni
In teoria, il numero di partecipanti del team locale viene mantenuto a un livello ottimale.
Ulteriori informazioni
Esistono alcune procedure comuni da evitare quando si progettano i team. Nella tabella riportata di seguito sono elencate diverse procedure con i rispettivi svantaggi.
Procedura di progettazione di team inefficiente
Svantaggi
Best practice
Aggiunta di ogni utente dell'organizzazione al ruolo Ospite (o a qualsiasi altro ruolo) in ogni team per concedere il permesso di lettura ai dati del contesto di applicazione.
Strutture di team di dimensioni molto elevate incidono significativamente sulle risorse di sistema.
Fornire permessi di accesso di base mediante regole. Mantenere a un livello ottimale il numero di utenti che devono essere direttamente associati a un team.
Controllo estremamente accurato sui permessi tramite la creazione di centinaia di ruoli per ogni team.
Strutture di team di dimensioni molto elevate incidono significativamente sulle risorse di sistema.
Tenere presente il compromesso in termini di prestazioni associato alla definizione di molti ruoli specializzati. Mantenere il numero di ruoli in un team a un livello ottimale.
Utilizzo di modelli di prodotto o di libreria per specificare le stesse regole di controllo d'accesso in base a regole che devono essere create per i ruoli del team in tutti i prodotti o tutte le librerie.
Il risultato è un'inutile duplicazione laddove le stesse regole di controllo d'accesso in base a regole vengono create per lo stesso ruolo in ogni prodotto.
Laddove possibile, creare regole di controllo d'accesso in base a regole per i ruoli dinamici a livello di organizzazione, invece di duplicarle in ogni contesto di applicazione. Per ulteriori informazioni, vedere Utilizzo di ruoli dinamici nelle regole di controllo d'accesso.
Creazione di gruppi di utenti univoci ad hoc per le assegnazioni dei ruoli nei prodotti e mancato riutilizzo dei gruppi, specifici per un singolo prodotto.
Il risultato può essere la presenza di molti gruppi utenti che hanno appartenenze di partecipanti simili. Ciò complica la gestione dei gruppi di utenti e sovraccarica il sistema LDAP.
Organizzare gli utenti in gruppi riutilizzabili anziché creare gruppi di utenti univoci per ciascun contesto. In alternativa, associare gli utenti direttamente ai team anziché creare gruppi di utenti e associare tali gruppi ai ruoli. Il secondo metodo è meno efficiente del primo.
Altre tecniche ottimizzazione
Di seguito sono riportate alcune tecniche di ottimizzazione del sistema utili correlate ai team.
Valutare la possibilità di eliminare le appartenenze ai team una volta raggiunto lo stato di fine del ciclo di vita dei contesti. L'utilità DeleteLocalTeamRoles elimina i ruoli dei team locali da un contesto di applicazione esistente. Per ulteriori informazioni, vedere Eliminazione dei ruoli dei team locali.
Ottimizzare le dimensioni delle cache PrincipalCache e RemoteObjectIdCache seguendo le linee guida delle best practice, affinché queste cache possano soddisfare in modo efficiente le esigenze delle strutture dei team. Per ulteriori informazioni, fare riferimento agli articoli della knowledge base indicati di seguito.
https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS71489
https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS97931
Può essere opportuno utilizzare l'utilità PopulateConfirmedUsersInCache per precompilare le voci in PrincipalCache affinché la cache venga caricata all'avvio del sistema. Per ulteriori informazioni, fare riferimento al seguente articolo della knowledge base: https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS115189.
Per un utilizzo ottimale della cache, eseguire una manutenzione regolare dei partecipanti per risolvere gli stati disconnessi. Per ulteriori informazioni, vedere Gestione dei partecipanti disconnessi.
Valutare se sia appropriato per il sito specifico impostare la proprietà wt.inf.team.wtusersUseAccessPolicyRules su true. Quando questa proprietà è impostata su true, le regole ad hoc generate dal sistema non vengono aggiunte ai partecipanti quando un contesto di applicazione viene creato da un modello. Per ulteriori informazioni, fare riferimento al seguente articolo della knowledge base: https://www.ptc.com/appserver/cs/view/solution.jsp?n=CS180319.