📄Работа №149224

Тема: Реализация динамических атрибутов в сервисе хранения номеров

📝
Тип работы Бакалаврская работа
📚
Предмет информационные системы
📄
Объем: 34 листов
📅
Год: 2024
👁️
Просмотров: 64
Не подходит эта работа?
Закажите новую по вашим требованиям
Узнать цену на написание
ℹ️ Настоящий учебно-методический информационный материал размещён в ознакомительных и исследовательских целях и представляет собой пример учебного исследования. Не является готовым научным трудом и требует самостоятельной переработки.

📋 Содержание

1. Введение 4
2. Постановка задачи 5
3. Обзор 6
3.1. Технические детали проекта ЕБН 6
3.2. Способы реализации динамических атрибутов 9
3.3. Обзор валидаторов JSON-схемы 12
4. Проектирование 15
4.1. Проектирование схемы данных 15
4.2. Структура JSON-схемы атрибутов сущности 16
4.3. Описание API динамических атрибутов 17
5. Реализация 20
5.1. Реализация на уровне базы данных 20
5.2. Доработки в уровне работы с базой данных в коде приложения 21
5.3. Работа с JSON-схемой 21
5.4. Реализация обработчиков 25
6. Апробация 30
6.1. Внутреннее ревью 30
6.2. Тестирование 30
6.3. Документация 31
6.4. Добавление новых атрибутов 31
7. Заключение 32
Список литературы 33

📖 Введение

«Единая база номеров» (ЕБН) — внутренний сервис компании «Яндекс» для хранения данных о подключенных телефонных номерах и
информации об их физических и логических подключениях. Данный
сервис используется инженерами компании для аудита номеров и автоматизации рабочих процессов телефонии.
ЕБН хранит информацию о различных объектах реального мира.
Каждый объект имеет свой тип (телефонный номер, договор, партнер
и т.д.), который определяет атрибуты, описывающие свойства данного
объекта.
В последнее время значительно увеличился рост количества задач
по добавлению новых атрибутов к существующим типам объектов приложения. Такие задачи решались разработчиками данного сервиса путем добавления атрибутов в схему базы данных, расширения исходного
кода и вывода добавленных атрибутов в API1 сервиса. Но таких задач
стало возникать очень много, и соответствующая работа занимает у
разработчиков ощутимое количество времени. Усугубляет это положение тот факт, что данные задачи будут и дальше возникать достаточно активно. Связано это с тем, что сервис был запущен относительно
недавно и сейчас его начинают подключать в процессы автоматического
конфигурирования телефонных систем. При этом сервис используется
как инвентарная система, по данным которого конфигурируются другие устройства. Количество и набор атрибутов, используемых в этом
процессе, зависит от типа устройства. Из-за этого при подключении
новых устройств данная проблема будет возникать снова и снова.
Таким образом была поставлена задача по реализации подсистемы
автоматизированного добавления новых атрибутов в данный сервис.
Суть задачи заключается в том, чтобы появилась возможность добавлять новые атрибуты и управлять их значениями через API приложения без ручной доработки исходного кода.

Возникли сложности?

Нужна качественная помощь преподавателя?

👨‍🎓 Помощь в написании

✅ Заключение

В рамках выполнения данной работы были достигнуты следующие
результаты.
• Был выполнен обзор решений реализации динамических атрибутов, в котором рассматривались подход “EAV”, подход с использованием Hstore и подход с использованием JSONB-документа и
JSON-схемы.
• Была спроектирована подсистема автоматизированного добавления новых атрибутов, основанная на валидации атрибутов с помощью JSON-схемы на стороне приложения и их хранения в виде
JSONB-документа в базе данных.
• Данная подсистема была реализована и протестирована. Было написано более 20 модульных и более 10 интеграционных тестов.
• Динамическими атрибутами были расширены существовавшие обработчики, которые включали CRUD для всех типов объектов,
поиск и массовые внесения номеров.
• Реализация попала в новую версию сервиса.
• Была написана документация, с которой ознакомились администраторы сервиса.
• Администраторы ЕБН, используя данную подсистему, добавили
более 70 атрибутов к четырем типам объектов.
• Значениями добавленных атрибутов были размечены более 10000
объектов сервиса.
Код работы находится в закрытом репозитории.
Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

📕 Список литературы

[1] JSON-Schema.— URL: https://json-schema.org/ (online; ac¬cessed: 2024-01-03).
[2] Валидатор JSON-схемы для Go qri-io/jsonschema.— URL: https: //github.com/qri-io/jsonschema (online; accessed: 2024-01-03).
[3] Валидатор JSON-схемы для Go santhosh-tekuri/jsonschema.— URL: https://github.com/santhosh-tekuri/jsonschema (online; accessed: 2024-01-03).
[4] Валидатор JSON-схемы для Go xeipuuv/gojsonschema. — URL: https://github.com/xeipuuv/gojsonschema (online; accessed: 2024-01-03).
[5] Валидатор JSON-схемы для PostgreSQL pg_jsonschema. — URL: https://github.com/supabase/pg_jsonschema (online; accessed: 2024-01-03).
[6] Валидатор JSON-схемы для PostgreSQL postgres-json-schema. — URL: https://github.com/gavinwahl/postgres-json-schema (on¬line; accessed: 2024-01-03).
[7] Документация для JSON и JSONB в PostgreSQL. — URL: https:// www.postgresql.org/docs/current/datatype-json.html (online; accessed: 2024-01-03).
[8] Документация для hstore в PostgreSQL.— URL: https:// www.postgresql.org/docs/current/hstore.html (online; accessed: 2024-01-03).
[9] Замеры производительности и тесты корректности трех валидаторов JSON-схемы для Go.— URL: https://github.com/ swaggest/go-json-schema-bench (online; accessed: 2024-01-03).
[10] Официальный набор тестов для проверки корректности валидатора JSON-схемы.— URL: https://github.com/ json-schema-org/JSON-Schema-Test-Suite (online; accessed: 2024-01-03).
[11] Построение EAV схемы данных с отдельными таблицами под каждый тип данных.— P. 481-482.— URL: https: //www.researchgate.net/publication/12720878_Organization_ of_Heterogeneous_Scientific_Data_Using_the_EAVCR_ Representation (online; accessed: 2024-01-03).
[12] Список реализаций валидаторов JSON-схемы для Go. — URL: https://json-schema.org/implementations#validators-go (on-line; accessed: 2024-01-03).
[13] Статья об эффективном использовании EAV подхода в медицине.— P. 1-3.— URL: https://www.mdpi.com/2078-2489/9/ 1/2#B1-information-09-00002 (online; accessed: 2024-01-03).

🛒 Оформить заказ

Работу высылаем в течении 5 минут после оплаты.

©2026 Cервис помощи студентам в выполнении работ