Для организации передачи событий на Traffic Monitor необходимо учитывать следующие принципы:
- События перехвата передаются в Traffic Monitor в виде объектов «событие»;
- Каждое «событие» имеет набор обязательных атрибутов, которые задаются пользователем программного интерфейса;
- Каждое «событие» может иметь набор необязательных атрибутов, которые задаются пользователем программного интерфейса;
- Каждое «событие» имеет «отправителя» и «получателя»;
- Каждый «отправитель» и «получатель» может иметь связанный с ним список «контактов», которые позволяют уникальным образом идентифицировать отправителя и получателя;
- Каждый «получатель» и «отправитель» может иметь связанный с ним набор атрибутов;
- Каждое «событие» имеет связанные с ним «данные», т.е. последовательность байт и/или символов текста, которые представляют собой содержимое перехваченного события;
- Каждый элемент «данных» может иметь связанный с ним набор атрибутов.
Все возможные «события», которые может принимать и анализировать Traffic Monitor, разбиты на группы – «типы» событий, которые объединены общими характеристиками. Тип события определяет бизнес-логику обработки события, а также правила его отображения в консоли Traffic Monitor.
На данный момент поддерживаются следующие типы событий:
- «Почта» – любые события обмена электронными письмами, включая вложения. Характеризуется списком персон-отправителей и персон-получателей, датой отправки, темой, телом и вложениями к письму;
- «Мессенджер» – любые события беседы, представляющие собой обмен текстовыми сообщениями или файлами в рамках одного приложения. Приложение может являться как тонким клиентом на рабочих станциях и мобильных устройствах, так и web-приложением. Характеризуется списком реплик. Для каждой реплики должна быть указана персона-отправитель, время отправления и текст сообщения. Примером событий такого типа может быть беседа в Skype или Telegram;
- «Принтер и МФУ» – события преобразования данных на «специализированных» устройствах ввода и вывода изображений/документов (например: Принтер, Сканер). Характеризуется персоной-отправителем и устройством-получателем, количеством копий, а также файлом с оригиналом документа/образом документа/заданием на печать;
- «Интернет-активность» – события запросов из Web-браузеров и аналогичных программ, осуществляемое по протоколам http/https. В событие данного типа попадают все данные, для которых не нашлось другого типа. Примером могут служить отправка веб-сообщения . Характеризуется персоной-отправителем и ресурсом-получателем в случае POST-запросов или персоной-получателем и ресурсом-отправителем в случае GET-запросов, а также текстом "сырого" запроса;
- «Обмен файлами» – любые события, связанные с передачей файлов между произвольными отправителями и получателями. Характеризуется персоной-отправителем и персоной-/устройством-/ресурсом-получателем, а также перехваченным файлом. Включает в себя копирование на съемное устройство, в облачное хранилище, на сетевые ресурсы, обмен файлами через терминальную сессию и по FTP-протоколу;
Пользователь SDK должен обязательно определить «Тип» для своих перехваченных объектов и «Протокол» перехваченного объекта. «Протокол» определяет, что именно было перехвачено с точки зрения пользовательского сервиса, который использовал «отправитель» для передачи информации.
Пользовательский сервис Skype. Модуль перехвата данного сервиса может генерировать события типа «Мессенджер». |
Пользователь SDK может выбрать сервис из числа встроенных в Traffic Monitor или определить и зарегистрировать свой собственный. На основании «Протокола» объекта и идентификатора компании-производителя перехватчика реализуются политики лицензирования внутри Traffic Monitor. «Протокол» объекта представляет собой последовательность символов и определяется пользователем SDK.
Если пользователь SDK реализовал перехватчик для клиента Viber, он может определить и зарегистрировать сервис "Viber". На каждый сервис одного производителя будет выдаваться отдельная лицензия. |
«Протокол» перехваченного события может задаваться как одно из условий в формировании «политики» Traffic Monitor и аналитических запросах.
У каждого «События» должны быть определены «отправитель(и)» и «получатель(и)».
Поддерживаются следующие типы «получателей» и «отправителей»:
- «Персона» – представляет собой «пользователя», который определяется как создатель, отправитель или получатель перехваченного объекта. Для персоны можно определить набор «контактов» для её идентификации. Тип контакта можно выбрать из списка, который поддерживается SDK. В качестве примера типа контакта можно привести email, телефон или учётную запись Windows;
- «Компьютеры» – представляет собой компьютер, мобильное устройство или терминальный сервер, на котором был «создан» перехваченный объект. Для данного типа «отправителя» можно определить список «контактов»;
- «Ресурс» – представляет собой адрес в сети Интернет, на который были переданы данные;
- «Устройство» – представляет собой устройство, которое получает данные при копировании файлов на съёмные носители;
Список контактов, связанных с «Персоной», позволяет идентифицировать её по любому её контакту. Таким образом, любые перехваченные действия «Персоны», в которых определён хотя бы один её контакт, позволяет идентифицировать конкретного пользователя в Traffic Monitor.
Интерфейс SDK позволяет связывать различные типы контактов между собой логическими связями, например, отправителя «Персону» с отправителем «Компьютеры». Это позволяет точно определить контекст перехватываемой операции, т.е. кто и где инициировал действие по передаче данных.
Добавление собственных «Протоколов» осуществляется через специальный файл заданного формата. Этот файл загружается в Систему через консоль Traffic Monitor и обновляет внутренние структуры данных. После этого новые «Протоколы» смогут принимать участие в создании правил и аналитических запросов.
Интерфейс SDK позволяет передавать данные в сеть по частям. Это позволяет внешним разработчикам самим определять стратегию ограничения нагрузки на сеть.
Общий алгоритм передачи события через интерфейс SDK выглядит так:
- Создать объект «Событие» и установить его атрибуты;
- Создать отправителей/получателей события, а также установить их контакты и атрибуты;
- Создать данные события и установить его атрибуты;
- Создать соединение с Traffic Monitor;
- Проверить доступ к Traffic Monitor и лицензию плагина внешнего разработчика;
- Передать «метаданные» события;
- Передать по частям содержимое данных события;
- Закрыть соединение;
- Удалить объект «Событие».
Более подробно процесс передачи событий можно посмотреть в Примерах SDK.