Базовое администрирование > Управление участием пользователей > Коллективы > Оптимальные методы использования локальных и общих коллективов
  
Оптимальные методы использования локальных и общих коллективов
Чтобы максимально эффективно управлять сообществом пользователей, проанализируйте, как лучше упорядочить пользователей на уровне сайта или организации. Где возможно, создайте определяемые пользователем группы на уровне сайта или организации и общие коллективы на уровне организации, а затем используйте эти группы и коллективы при создании контекстов приложений.
Принимая решение о том, какие роли должны использоваться в общих и локальных коллективах, выберите используемые шаблоны коллектива так, чтобы можно было надлежащим образом сопоставить роли шаблонов контекста с ролями, используемыми в шаблонах коллектива.
Создание коллективов контекста
Для максимально эффективного доступа пользователей к бизнес-данным важно использовать коллективы контекста, которые предназначены не только для точного управления доступом, но также и для обеспечения оптимального быстродействия системы.
Для любого сайта, который рассчитан на размещение тысяч изделий, проектов или библиотек, необходимо особенно тщательно придерживаться следующих рекомендаций при создании структуры для коллективов контекста. В этих рекомендациях можно найти потенциальные возможности для оптимизации даже таких схем коллективов, которые уже давно используются. Для сайтов меньшего размера эти методы оптимизации также могут быть полезны.
Часто самым простым вариантом является структура коллективов, созданная полностью на основе локальных коллективов. Однако локальные коллективы - это бизнес-объекты с очень высоким потреблением памяти и вычислительных возможностей. Чем тщательнее продумана и проработана структура коллективов, тем больше требований предъявляется к системным ресурсам, например к следующим:
кэши;
запросы базы данных;
процессы на основе очередей, такие как очередь перерасчета;
операции поиска и общие взаимодействия пользователей в системе.
Очень большие и сложные структуры коллективов при умножении на тысячи изделий и контейнеров, которыми они используются, могут предъявлять повышенные требования к ресурсам системы. Сложные структуры коллективов могут замедлять не только работу функций, относящихся к коллективам. В крайних случаях связанная с ними нагрузка на ресурсы системы может негативно отражаться на быстродействии всей системы. Поэтому важно выполнить тщательное планирование разработки оптимальной структуры коллективов, которая отвечает потребностям бизнеса и не оказывает негативного влияния на быстродействие.
Основная мотивация при разработке структуры коллективов заключается в удовлетворении требований бизнеса, связанных с разрешениями для различных сегментов сообщества пользователей на доступ к содержимому в контекстах приложений. При создании коллективов используйте следующие рекомендации.
Распределите потребности в разрешениях по категориям
Потребности в разрешениях для пользователей в целом можно разделить на две категории: предоставление прав доступа на основе роли пользователя в контексте приложения и предоставление прав доступа независимо от роли пользователя в контексте. Проведение этого различия поможет определить, следует ли предоставлять права доступа независимым от контекста участникам или участникам определенного контекста.
Независимые от контекста участники
Для участников, которым требуется предоставлять доступ к объектам независимо от того, являются ли они участниками контекста приложения, в котором находятся эти объекты, создавайте правила управления доступом с использованием следующих участников: пользователи, определяемые пользователем группы, организации или псевдороли.
Предположим, например, что всем пользователям в организации необходимо разрешение на чтение документов спецификаций в состоянии "Выпущено" для всех общедоступных изделий в организации. Используйте для применения таких прав доступа определенное в домене /Default/PDM организации правило управления доступом к политике, предоставляющее участнику организации разрешение на чтение для типа документа "Спецификация" в состоянии "Выпущено".
Участники определенного контекста
Для участников, которым требуется предоставлять доступ к находящимся в контексте приложения объектам на основе их роли в контексте, создайте правила управления доступом с использованием системных групп и динамических ролей. При создании правил управления доступом для ролей обдумайте, должно ли правило применяться к динамической роли, если потребности в разрешениях для этой роли идентичны для различных контекстов, или же необходимо создать правило для системной группы в связи с тем, что потребности в разрешениях для этой роли изменяются в зависимости от контекста приложения.
Предположим, например, что пользователям, ответственным за конструирование изделия, необходимо разрешение на создание и изменение для определенных типов данных. Это относится только к изделиям, для которых им назначены конструкторские работы. Применяйте такие разрешения с помощью динамических ролей, связанных с конструкторами в общих или локальных коллективах.
При создании контекста приложения рассмотрите возможность использования общего коллектива, если роли коллектива и участники в ролях являются одинаковыми для набора контекстов. Если роли коллектива или участники в ролях изменяются в зависимости от контекста приложения, используйте локальный коллектив. Если изменения между контекстами приложений малы, рассмотрите возможность использования общего коллектива, который распространяется локально.
Разумеется, можно комбинировать эти варианты. Нет необходимости придерживаться единственного варианта во всех случаях. Например, можно выбрать общие коллективы для контекстов библиотеки, используя локальные коллективы для некоторых наборов контекстов изделия и контекстов проекта и общие коллективы, распространяемые локально, для других наборов контекстов изделия и контекстов проекта.
* 
В случае универсальных требований к разрешениям рассмотрите возможность использования независимых от контекста участников. Это позволит сохранить оптимальный размер коллектива и снизить нагрузку на технологические ресурсы системы. В случае потребностей в разрешениях, которые изменяются в зависимости от контекста, используйте участников определенного контекста.
В следующих таблицах представлены более подробные сведения о различных методах управления разрешениями для коллективов и их влиянии на быстродействие.
Независимые от контекста участники (пользователи, определяемые пользователем группы, организации и псевдороли)
Эффективность использования системных ресурсов
В каких случаях является наилучшим вариантом
Если требования к разрешениям для определенных групп участников не изменяются при переходе из одного контекста приложения в другой.
Как использовать
Участников вообще не требуется добавлять в коллектив. Вместо этого нужно предоставить им необходимые разрешения с помощью правил управления доступом.
Примеры
Пример 1
Всей организации требуется доступ на чтение к определенным типам данных в каждом общедоступном изделии в организации. В этом случае одним из вариантов может быть добавление всех пользователей в организации к роли гостя в каждом изделии. Такой подход требует интенсивного использования технологических ресурсов. Вместо этого можно предоставить пользователям доступ на чтение с помощью правил политики доступа для определенных типов объектов в соответствующем административном домене, например в домене организации /Default/PDM.
Пример 2
Определенная группа пользователей осуществляет проверку соответствия в каждом контексте приложения. Установление роли проверки соответствия и добавление к этой роли одних и тех же пользователей для каждого контекста приложения добавляет ненужные накладные расходы. Вместо этого можно предоставить группе пользователей необходимые разрешения с помощью правил политики доступа для определяемой пользователем группы "Проверка соответствия" в соответствующем административном домене, например в домене сайта / (корень).
Дополнительные соображения
Для пользователей, которые не являются участниками коллектива контекста приложения, контексты приложений не будут приведены на странице списка изделий, библиотек, программ или проектов в интерфейсе пользователя. Однако пользователи могут выполнять их поиск. При наличии соответствующих разрешений пользователь сможет найти контексты приложений. Контексты приложений, к которым обращался пользователь, загружаются в списки недавно открывавшихся приложений в навигаторе, где их можно будет найти для последующего использования.
Если таким пользователям требуется доступ к действиям, которые не отображаются автоматически для тех, кто не является участником коллектива, настройки раздела "Настроить действия для ролей" для коллектива позволяют сделать эти действия видимыми для пользователей, не входящих в коллектив. Такие правила могут автоматически предоставляться новым контекстам через шаблоны контекстов. Также для пользователей, не являющихся участниками коллектива, может потребоваться иначе настроить некоторые функции, например участие в рабочих процессах.
Правила политики доступа, необходимые таким пользователям для перехода к другим типам данных в контексте приложения, могут отличаться в зависимости от конкретного случая. Необходимо должным образом определить и предоставить соответствующие разрешения.
Дополнительные сведения
Общий коллектив
Участники определенного контекста (системные группы и динамические роли)
Эффективность использования системных ресурсов
В каких случаях является наилучшим вариантом
Участникам требуется доступ к объектам, находящимся в контексте приложения, на основе их роли в контексте.
Такую же структуру коллективов (без изменений или с минимальными изменениями) можно применять для множества подобных контекстов приложений.
Одни и те же пользователи или группы используют одинаковые роли во всех таких контекстах приложений.
Доступна возможность локального распространения в соответствии с дополнительными требованиями (см. дополнительные соображения ниже).
Как использовать
Общие коллективы часто используются для коллективов библиотек из-за базовой природы разрешений, предоставляемых пользователям.
В других случаях можно создать несколько общих коллективов для обслуживания различных наборов изделий и проектов.
Дополнительные соображения
Общие коллективы наиболее эффективны в том случае, если они не распространены локально. При локальном распространении создается экземпляр локального коллектива. Это уменьшает положительное влияние на быстродействие, ожидаемое от использования общего коллектива. В зависимости от степени изменения общего коллектива в каждом локальном коллективе, фактический положительный эффект общего коллектива может вообще быть сведен к нулю.
Дополнительные сведения
Локальный коллектив
Участники определенного контекста (системные группы и динамические роли)
Эффективность использования системных ресурсов
В каких случаях является наилучшим вариантом
Участникам требуется доступ к объектам, находящимся в контексте приложения, на основе их роли в контексте.
Структура коллектива является специфичной для каждого контекста приложения.
Участники в ролях коллектива специфичны для каждого контекста приложения.
Как использовать
Создайте расширенные группы пользователей в соответствии с их кругом обязанностей.
Добавьте группы к определенным ролям в коллективе.
Не создавайте уникальных групп пользователей для каждого отдельного контекста. Рассмотрите возможность применения повторно используемых групп пользователей.
Дополнительные соображения
В идеале локальный коллектив должен содержать оптимальное число участников.
Дополнительные сведения
Существует несколько распространенных методов, применения которых следует избегать при конструировании коллективов. В следующей таблице перечислены несколько методов и их недостатки.
Неэффективный метод конструирования коллективов
Недостатки
Оптимальный метод
Добавление каждого пользователя в организации к роли гостя (или любой другой роли) в каждом коллективе, чтобы предоставить право на чтение для данных контекста приложения.
Очень большие структуры коллективов создают значительную нагрузку на ресурсы системы.
Используйте правила политики для предоставления базовых прав доступа. Поддерживайте оптимальное число пользователей, которых необходимо непосредственно связать с коллективом.
Обеспечение очень точного управления разрешениями посредством создания сотен ролей для каждого коллектива.
Очень большие структуры коллективов создают значительную нагрузку на ресурсы системы.
Учитывайте ухудшение быстродействия при определении большого числа специализированных ролей. Поддерживайте оптимальное число ролей в коллективе.
Не используйте шаблоны изделия или библиотеки для определения одинаковых правил управления доступом к политике, которые должны быть созданы для ролей коллектива во всех изделиях или библиотеках.
Это приведет к ненужному дублированию, когда одинаковые правила доступа к политике создаются для одинаковых ролей в каждом изделии.
По возможности создавайте правила управления доступом к политике для динамических ролей на уровне организации вместо их дублирования в каждом контексте приложения. Дополнительные сведения см. в разделе Использование динамических ролей в правилах управления доступом.
На динамической основе создаются уникальные группы пользователей для назначения ролей в изделиях. Группы не используются повторно и являются специфичными для одного изделия.
Может привести к созданию множества групп пользователей с одинаковой принадлежностью участников. Это усложняет обслуживание групп пользователей и перегружает LDAP.
Организовывайте пользователей в повторно используемые группы пользователей вместо создания уникальных групп пользователей для каждого контекста. Либо связывайте пользователей непосредственно с коллективами вместо создания групп пользователей и связывания этих групп с ролями. Второй метод не так эффективен, как первый.
Другие методы оптимизации
Ниже перечислено несколько полезных методов оптимизации системы, связанных с коллективами.
Рассмотрите возможность очистки принадлежности к коллективу после достижения контекстами статуса окончания срока службы. Утилита DeleteLocalTeamRoles удаляет роли локального коллектива из существующего контекста приложения. Дополнительные сведения см. в разделе Удаление ролей локального коллектива.
Настройте размеры кэша для PrincipalCache и RemoteObjectIdCache, следуя оптимальному методу. Это позволяет обеспечить эффективное обслуживание кэшем потребностей структур коллективов. Дополнительные сведения см. в следующих статьях базы знаний.
https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS71489
https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS97931
Рассмотрите возможность использования утилиты PopulateConfirmedUsersInCache для предварительного заполнения записей в кэше пользователей, чтобы кэш заполнялся при запуске системы. Дополнительные сведения см. в следующей статье базы знаний: https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS115189.
Для оптимального использования кэша регулярно выполняйте обслуживание участников, чтобы исправлять состояние отсоединения. Дополнительные сведения см. в разделе Управление отсоединенными участниками.
Рассмотрите возможность установить для свойства wt.inf.team.wtusersUseAccessPolicyRules значение true для сайта. Если установлено значение true, система генерирует динамические правила, которые не добавляются к участникам при создании контекста приложения из шаблона. Дополнительные сведения см. в следующей статье базы знаний: https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS180319.