Рекомендовать лучший подход в моей ситуации (Multitenancy vs Single Tenant with abp) - PullRequest
0 голосов
/ 15 декабря 2018

Я моделирую своего рода приложение для выставления счетов, в котором задействованы 3 основные роли в системе: страховщик, поставщик медицинских услуг и аналитик. Я выбираю инфраструктуру приложения aspnetboilerplate для построения своего решения.Я пытаюсь выбрать один против нескольких арендаторов из моих ограничений.

  1. Медицинский работник, необходимо зарегистрировать пациентов, которых другие провайдеры не видят
  2. Медицинский работник имеетучетная запись менеджера, созданная менеджером всей системы, но способная создавать других пользователей под ее «арендатором»
  3. Электронная почта воспринимается как имя пользователя и должна быть уникальной для всей системы, а не для поставщика медицинских услуг.
  4. Страховщики, просматривайте медицинские заявления от поставщика медицинских услуг на своем собственном портале.
  5. Аналитические требования аудита перед страховщиками
  6. Администратор создает администраторов медицинского обслуживания и регистрирует страховщиков.

Является ли подход с несколькими арендаторами наилучшим в этой ситуации или лучше подходит один арендатор при использовании для этого aspnetboilerplate?

1 Ответ

0 голосов
/ 20 декабря 2018

При соблюдении этих требований вам следует использовать мультитенантный подход Abp.В Abp, когда вы используете интерфейс IMustHaveTenant , Abp может автоматически фильтровать ваш ответ на запрос на основе вашего зарегистрированного пользователя.

public class Product : Entity, IMustHaveTenant
{
    public int TenantId { get; set; }
    public string Name { get; set; }
    //...other properties
}

Таким образом, ASP.NET Boilerplateзнает, что это сущность, специфичная для арендатора, и автоматически изолирует сущности арендатора от других арендаторов.

Вы можете получить больше информации из их многопользовательской документации.

Что такое мультитенантность?

«Мультитенантность программного обеспечения» относится к архитектуре программного обеспечения, в которой один экземпляр программного обеспечения работает насервер и обслуживает несколько арендаторов . Арендатор - это группа пользователей, которые имеют общий доступ с особыми привилегиями к экземпляру программного обеспечения. В архитектуре с несколькими арендаторами программное приложение предназначено для предоставления каждому арендатору выделенный ресурс экземпляра, включая его данные , конфигурацию, управление пользователями, индивидуальные функциональные возможности арендатора и нефункциональностьсвойства.Многопользовательская архитектура отличается от архитектуры с несколькими экземплярами, где отдельные экземпляры программного обеспечения работают от имени разных арендаторов "(Википедия)

Хост против Арендатора

Мы определили два термина, используемыхмультитенантная система:

Арендатор: Клиент, имеющий своих собственных пользователей, роли, разрешения, настройки ... и использующий приложение, полностью изолированное от других арендаторов.будет иметь одного или нескольких арендаторов. Если это приложение CRM, разные арендаторы также имеют свои собственные учетные записи, контакты, продукты и заказы. Поэтому, когда мы говорим «пользователь-арендатор», мы имеем в виду пользователя, принадлежащего арендатору.

Хост: Хост - это одиночный узел (есть один хост). Хост отвечает за создание и управление арендаторами. «Пользователь хоста» находится на более высоком уровне и независим от всех арендаторов и можетконтролировать их.

...