Глава 2. Терминология и определения
В настоящей главе определяются все нормативные термины, используемые в данной спецификации. Каждый термин, имеющий нормативное значение, выделен жирным шрифтом при первом упоминании.
2.1 Термины ролей
Fay : общее название антропоморфизированного ИИ-агента, включая iFay и coFay.
iFay (Individual Fay) : персональный ИИ-аватар, привязанный к конкретному физическому лицу (Human Prime). MUST находиться во взаимно однозначном соответствии с Human Prime.
coFay (Common Fay) : ИИ общего назначения, аналогичный Agent, который MAY обслуживать нескольких пользователей.
Human Prime (Хьюман Прайм) : физическое лицо, к которому привязан iFay. Конечный владелец суверенитета над данными.
FayGer : контейнер/среда выполнения для Fay (по аналогии с Docker/JRE). MUST рассматриваться как недоверенное «общественное пространство» и MUST NOT иметь доступа к данным в открытом виде ни при каких обстоятельствах.
2.2 Термины протокольных ролей
Master : управляющая сторона в протоколе DTP. MUST быть Fay (iFay или coFay). Получатель в сценарии сбора данных и отправитель в сценарии инжекции данных.
Slave : управляемая сторона в протоколе DTP. MUST быть программным или аппаратным терминалом. Отправитель в сценарии сбора данных и получатель в сценарии инжекции данных.
Controller : Fay, который в данный момент «воплощает» терминал. MUST обладать полными правами на чтение/запись. В любой момент времени Slave MUST NOT иметь более одного Controller.
Observer : Fay, приглашённый или авторизованный Controller. MAY обладать только правами на чтение. MUST NOT инициировать запросы или изменять Agreement.
2.3 Термины передачи данных
Data Collection : направление потока данных от терминала (Slave) к Fay (Master). MUST использоваться для сохранения данных, произведённых терминалом, в Personal Data Heap.
Data Injection : направление потока данных от Fay (Master) к терминалу (Slave). MUST использоваться для предоставления терминальным приложениям отфильтрованного, минимизированного набора данных.
Personal Data Heap : модуль управления приватными данными iFay. MUST быть доступен только внутри iFay.
2.4 Термины структуры протокола
Logical_Frame : фреймовая структура DTP на прикладном уровне. MUST состоять из двух частей: Header и Payload (см. главу 4).
Fragment : единица данных в DTP. MUST содержать глобально уникальный идентификатор и временную метку источника, и MUST быть связан с Agreement.
Agreement : контракт на передачу данных, согласованный и достигнутый между Master и Slave. MUST быть установлен до начала любой передачи данных. Передача данных без Agreement MUST NOT существовать.
Session : полный цикл связи DTP. MUST устанавливаться после завершения аутентификации CAP и MUST иметь уникальный Session_ID.
2.5 Термины идентификаторов
Fragment_ID : глобально уникальный идентификатор Fragment. MUST быть UUID v4 в соответствии с RFC 4122.
Agreement_ID : глобально уникальный идентификатор Agreement. MUST быть UUID v4 в соответствии с RFC 4122.
Session_ID : глобально уникальный идентификатор Session. MUST быть UUID v4 в соответствии с RFC 4122.
Sequence_Number : порядковый номер передачи. MUST быть монотонно возрастающим неотрицательным целым числом. MUST поддерживаться независимо для каждого направления передачи в рамках одной Session.
Origin_Timestamp : момент времени, в который данные были фактически произведены источником. MUST использовать часовой пояс UTC. MUST иметь точность до миллисекунд.
2.6 Термины протокольных механизмов
Negotiation : процесс достижения согласия между Master и Slave по параметрам передачи данных. MUST осуществляться через Request_Frame и Response_Frame.
Agreement Lifecycle
: полная последовательность состояний Agreement от создания путём переговоров до прекращения. MUST включать четыре состояния: negotiating, active, suspended и terminated.
Resume : механизм продолжения передачи с точки прерывания после потери соединения. MUST реализовываться на основе порядковых номеров.
DAG Dependency : отношение зависимости между Fragment в виде направленного ациклического графа. MUST объявляться явно через рёбра DAG (DAGEdge).
2.7 Термины программных компонентов
DTP_Engine : основной обрабатывающий движок протокола DTP. MUST реализовывать ключевые функции: кодек фреймов, шифрование, переговоры и управление сессиями.
DTP_Master : вариант DTP_Engine, работающий на стороне Fay. MUST обладать правами роли Master.
DTP_Slave : вариант DTP_Engine, работающий на стороне терминала. MUST обладать только правами роли Slave.
Transport_Adapter : абстрактный интерфейс для нижележащего транспортного протокола. MUST предоставлять единый интерфейс отправки/приёма для каждого поддерживаемого транспортного протокола.
2.8 Термины состояний
SessionState
: текущее состояние Session. MUST быть одним из значений: idle, waiting_for_cap, established, negotiating, transmitting, suspended или resuming.
AgreementStatus
: текущее состояние Agreement. MUST быть одним из значений: negotiating, active, suspended или terminated.
ConnectionState
: состояние нижележащего соединения, сообщаемое Transport_Adapter. MUST быть одним из значений: connected, disconnected или error.
