Перейти к основному содержимому

Базовые технологии Атомкод

Независимо от языка программирования, используемого для реализации сервиса бизнес-логики, интеграция этого сервиса в Атомкод требует соблюдения ряда ключевых принципов и использования встроенных технологий Атомкод. Некоторые из этих принципов являются обязательными для работы в Атомкод, другие — рекомендуемыми для обеспечения безопасности, отказоустойчивости и единообразия.

Атомкод использует следующие технологии:

  • Обнаружение сервисов: механизм, позволяющий сервисам автоматически находить друг друга в сети без необходимости знать точные IP-адреса или порты.

  • Централизованное управление настройками: получение конфигурации из единого надежного источника.

  • Межсервисная аутентификация и авторизация запросов: проверка подлинности и прав сервисов на взаимодействие между собой.

  • Авторизация действий и доступа к данным: проверка прав на выполнение определенных операций или доступ к определенным данным внутри сервиса.

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

  • Ведение аудита событий: фиксация значимых событий в системе для последующего анализа и отладки.

Эти технологии реализуются инфраструктурными сервисами Атомкод, которые кратко описаны в этой статье. Более подробное описание сервисов содержится в Справочнике API.

Cервис обнаружения сервисов Discovery

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

Взаимодействие с сервисом обнаружения сервисов является обязательным для всех сервисов бизнес-логики.

Cервис конфигураций Configuration

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

Взаимодействие с сервисом конфигураций рекомендуется для всех сервисов бизнес-логики.

Cервис аутентификации Identity

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

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

Служебный API SystemAPI

Этот API должен быть реализован во всех сервисах бизнес-логики. С его помощью другие сервисы и компонент Атомкод DevTools могут получать информацию об API сервиса, а также о его конфигурации.

Cервис управления правами доступа SecurityAccess

Сервис позволяет хранить и проверять права доступа к различным функциям и данным в приложении на базе Атомкод.

Если бизнес-логика требует разграничения доступа к реализуемым функциям и данным, взаимодействие с сервисом управления правами доступа является обязательным.

Сервис аудита AuditService

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

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

Согласованные контракты межсервисного взаимодействия

Для обеспечения надежного и предсказуемого взаимодействия между сервисами в Атомкод все REST API-вызовы должны соответствовать единым соглашениям (контрактам). Ключевым аспектом является стандартизированный формат всех ответов, который гарантирует, что как успешные результаты, так и информация об ошибках будут обработаны вызывающей стороной единообразно.

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