AuditService

У приложения есть класс AuditService. Через класс AuditService реализуются API для обращения:

  • к классу, наследующему от интерфейса IAudit, если аудит не выделен в отдельный сервис.
  • к сервису аудита AuditWinService.

AuditService хранит настройки приложения по аудиту, куда они загружаются в начале работы приложения.

При выполнении потенциально аудируемой операции сервис данных приложения сообщает об этом классу AuditService, который:

  • просматривает имеющиеся настройки аудита и принимает решение о необходимости выполнения записи аудита.
  • если аудит необходим, то соответствующее сообщение идёт либо в IAudit, если нет отдельного сервиса аудита, либо в AuditWinService (ожидание ответа будет зависеть от настроек аудита).

Класс AuditService реализовывает интерфейс IAuditService, а также имеет статическое поле типа IAuditService, куда будет записана инстанция класса AuditService (это позволит вести работу как со статическим классом через обращение «AuditService.CurrentAuditService»). Все вызовы осуществляются через интерфейс (если появится потребность, то класс Audit можно легко подменить).

IAudit

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

AuditWinService

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

AsyncAuditController

AsyncAuditController – класс, организующий асинхронный доступ к IAudit, что позволяет отложить на некоторое время запись данных об аудите (‘'’в настоящее время не используется’’’).

RemoteAuditController (ServiceAuditController)

RemoteAuditController (ServiceAuditController) – класс, отвечающий за взаимодействие через wcf с win-сервисом аудита AuditWinService, связанному с wcf-сервисом, реализующим интерфейс IAuditWcfServiceLibrary.

Схема взаимодействия

Схема взаимодействия компонент подсистемы аудита без отдельного сервиса аудита

Изображение

Схема взаимодействия компонент подсистемы аудита при наличии отдельного сервиса аудита

Изображение

Схема взаимодействия компонент подсистемы аудита

Изображение