Глава 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.