Классы

Классы созданы для хранения большого числа сходных объектов в реляционной или графовой базе данных. Каждый экземпляр класса занимает одну запись таблицы базы данных или узел в графовой БД. Классы используют заданные пользователем поля, которые напрямую преобразуются в колонки таблицы базы данных, содержащей экземпляры определенного класса. В графовой базе данных значения полей хранятся как свойства узла.

Между собой классы могут иметь отношения "один к одному", "один ко многим" и "многие ко многим". Эти отношения помогают установить умную навигацию между экемплярами класса. Отношения экземпляров классов сопоставляются с внешними ключами таблиц значений в реляционной базе данных и в связях графовой базы данных.

Инструментальные панели принимают классы к сведению, позволяя обрабатывать и изменять поля отдельных экземпляров, также как отображать табличный список экземпляров с оперативной сортировкой, поиском и фильтрацией.

Экземпляры классов могут иметь конфигурируемые состояния и жизненные циклы, также как и конфигурируемые разрешения для каждого экземпляра.

Несколько примеров использования классов:

  • В системе CRM, типичные классы - это Контактное лицо, Клиент, Потенциальный клиент и Поненциальная сделка

  • В системе инвентаризации активов классами могут быть Актив, Тип актива, Субъект и Местоположение

  • Система службы технической поддержки может иметь такие классы как Агент, Инцидент, Сервис и Соглашение о качестве предоставляемых услуг (Service Level Agreement, SLA)

  • Система управления информацией центра обработки и хранения данных обычно имеет дело с Корпусами, Серверами, Кабелями и подобными специфическими для области промышленности классами

Экземпляры класса обычно хранятся в базе данных AggreGate Server, но только графовые и реляционные базы данных могут использоваться для их хранения. Также возможно извлечения данных из сторонних систем с помощью драйвера базы данных SQL или драйвера Графовой база данных.

Классы не могут полагаться на хранилища NoSQL или «Ключ-значение» из-за своей структуры данных.

Администрирование классов

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

Каждый пользователь имеет свой набор классов.

Общие настройки

Для настройки плагина Классы используются Общие настройки:

Свойство

Описание

Контекст хранилища по умолчанию

Контекст указывает на классы, лежащие в основе хранилища.

Управление экземплярами класса

Экземпляры класса управляются с помощью инструментальных панелей. Стандартные (абсолютные и относительные) инструментальные панели могут действовать как "ворота в мир классов". Они содержат списки экземпляров класса, которые отформатированы, отфильтрованы и отсортированы согласно заданным правилам. Клик на экземпляр в любом из данных списков классов обычно приводит системного оператора к инструментальной панели экземпляра класса, которая отображает поля выбранного экземпляра, также как и списки других экземпляров классов, соединенных с ним с помощью различных отношений. Обратитесь к разделу типы инструментальных панелей для более детальной информации.

Управление схемой базы данных

Создание, обновление и удаление таблиц базы данных, которые содержат экземпляры класса, являются полностью автоматическими. Как только создан новый класс, для его экземпляров создается новая таблица базы данных. Имя таблицы совпадает с именем класса. Таблица обновляется каждый раз, когда изменяются поля класса жизненных циклов. Наконец, таблица удаляется, если сам класс удален.

Также каждое отношение многие ко многим преобразовывается в выделенную таблицу данных. Создание, управление и удаление таблицы происходит автоматически.

Создание операторского интерфейса на основе классов

Классы - это очень мощные объекты, которые помогают в построении полнофункциональных приложений на платформе AggreGate. Вот список основных шагов, требуемых для построения таких приложений:

  • Создайте полную структуру класса для вашего приложения

  • Создайте ваши классы и определите их поля. Поля класса могут включать ссылки на другие классы (поля типа Длинное, которые использует Редактор экземпляров класса), прикрепленные файлы (поля типа Данные).  Даннные, которые используют редакторы файлов, изображений или звука), и любые другие типичные поля, такие как Целое, Строка, Дата, Таблица данных, и т.д.

  • Настройте просмотры для ваших классов для активации повторного использования наборов полей экземпляров, правил фильтрации и сортировки в различных инстументальных панелях

  • На одной из главных инструментальных панелей вашего операторского интерфейса, добавьте несколько элементов типа списка экземпляров класса для активации навигации в мире ваших классов

  • Создайте специализированную инструментальную панель экземпляра класса для каждого из ваших классов. Клик по экземпляру класса в любом списке экземпляров приведет оператора к инструментальной панели экземпляров класса, валидной для выбранного класса.

  • На ваших инструментальных панелях экземпляра класса:

  • Добавьте элементы полей экземпляров класса для отображения атрибутов экземпляра класса.

  • Добавьте элементы списка экземпляров класса для отображения списка других экземпляров классов, которые относятся к текущему экземпляру. Настройте поле Отношение в параметрах списка экземпляров класса для отфильтровывания только соответствующих экземпляров.

  • Добавьте элементы журнала событий для показа событий создания/изменения/удаления экземпляров класса и комментариев экземпляров класса (Class Instance Commented events). Обратитесь к разделу Контекст класса для более детальной информации о данных событиях.

  • Добавьте элементы таблицы данных, которые покажут разрешенные переходы состояний для ваших классов. Обратитесь к разделу жизненные циклы для более детальной информации.

  • Добавьте любые другие элементы инструментальной панели (виджеты, таблицы даннных и т.д.)

Как только сконфигурированы инструментальные панели верхнего уровня и инструментальные панели экземпляров класса, ваши операторы могут начать работу с приложением и управление вашими классами.

Наследование классов и Подклассы

Каждый контекст Класса предоставляет контейнер Подкласса. Можно создать контекст Класса внутри контейнера Подкласса. По умолчанию, такой созданный вами контекст будет иметь те же Fields, Many to Many Relations и Lifecycles переменные, что и его родительский контекст. Таким образом, вы можете использовать родительский Класс в качестве шаблона для создания Классов с аналогичной структурой.

Наследование классов можно использовать во многих случаях, например, при создании объектов CMDB. Это дает вам Конфигурационную единицу со следующими параметрами: Name, Location и Status. Вы можете создать контекст дочернего IP устройства и добавить другие поля к его свойствам, например: IP address, Subnet Mask, Manufacturer. Таким образом, вы можете создать контексты IP устройств с набором параметров: Name, Location, Status, IP address, Subnet Mask, Manufacturer.

На уровне базы данных подклассы и базовые классы обладают следующими свойствами:

  • При создании нового подкласса AggreGate создает соответствующую таблицу в базе данных, которая содержит только поля, характерные для данного подкласса. Наследуемые поля не дублируются в таблице подкласса.

  • Система создает скрытые поля в подклассе и базовом классе, которые служат закрытым ключом, позволяющим отображать экземпляры подкласса как с полями подкласса, так и с унаследованными полями. Аналогично, изменение подкласса может привести к выполнению операций обновления и вставки как в таблице, связанной с подклассом, так и в таблице, связанной с базовым классом.

  • Базовые классы могут отображать экземпляры подклассов, но только те поля, которые связаны с базовым классом.

  • Изменения, внесенные в экземпляр из представления подкласса, будут отражены в базовом классе, и наоборот.