O modelo de dados (DM) de um nó não será relevante se não for possível realizar operações. com base neles. O modelo de interação (IM, na sigla em inglês) define a relação de DM de um nó com o DM de outros nós: um idioma comum para a comunicação entre DMs.
Os nós interagem entre si por:
- Como ler e se inscrever em atributos e eventos
- Como gravar em atributos
- Como invocar comandos
Sempre que um nó estabelece uma sequência de comunicação criptografada com outro Node, elas constituem uma relação de Interaction. As interações podem ser compostas por uma ou mais Transações, que são compostas de uma ou mais ações que podem ser entendidas como mensagens de mensagens instantâneas entre Nós.
Várias ações são compatíveis com transações, como uma ação de solicitação de leitura que solicita um Atributo ou Evento de outro Nó, ou sua resposta, o Ação de dados de relatório, que envia as informações do servidor para o para o cliente.
Iniciadores e destinos
O nó que inicia uma transação é o Iniciador, enquanto o nó que responde é o Destino. Normalmente, o iniciador é um cluster de cliente e o O destino é um cluster de servidor. No entanto, há exceções a esse padrão, como nas Interações de assinatura analisadas mais adiante nesta seção.
Grupos
Os nós em Matter podem pertencer a um Grupo. Um grupo de "Dispositivos" é um mecanismo de endereçamento e envio de mensagens para vários dispositivos em a mesma ação simultaneamente. todos os nós em um grupo compartilham o mesmo grupo; ID, um número inteiro de 16 bits.
Para estabelecer a comunicação no nível do grupo (Groupcast), faça o seguinte: Matter aproveita o IPv6 Multicast mensagens, e todos os participantes do grupo têm o mesmo Multicast endereço IP.
Caminhos
Sempre que quisermos interagir com um Atributo, Evento ou Comando, devemos especifique o Caminho para esta interação: o local de um atributo, evento na hierarquia do modelo de dados de um nó. A ressalva é que os caminhos também podem usar grupos ou operadores de caractere curinga para abordar vários nós ou clusters simultaneamente, agregando essas interações e, assim, diminuindo o número de ações.
Esse mecanismo é importante para melhorar a resposta das comunicações. Para Por exemplo, quando um usuário quer apagar todas as luzes, um assistente de voz pode estabelecer uma única interação com várias luzes dentro de um grupo em vez de um sequência de interações individuais. Se o iniciador criar nomes Ao interagir com cada luz, ele pode gerar latência perceptível por humanos Capacidade de resposta do dispositivo. Esse efeito faz com que os vários dispositivos reajam a um com atrasos visíveis entre eles. Isso é muitas vezes chamado de "efeito de pipoca".
Um caminho no Matter pode ser criado usando uma das opções. abaixo:
<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID> <cluster> <attribute | event | command>
Dentro desses elementos básicos do caminho, endpoint
e cluster
também podem incluir
Operadores de caracteres curinga para selecionar mais de uma instância de nó.
Com e sem marcação de tempo
Há duas maneiras de executar uma transação de gravação ou invocação: com tempo e sem tempo. As transações com tempo limite estabelecem um tempo limite máximo para que a ação de gravação/invocação seja enviada. O objetivo desse tempo limite é evitar que uma Interceptar ataque na transação. Isso é válido principalmente para dispositivos que controlam o acesso a recursos, como travas e abridores de garagem.
Para entender as transações temporizadas, é útil entender como os ataques de interceptação podem acontecer e por que as transações temporizadas são importantes.
O ataque de interceptação
Um ataque de interceptação tem o seguinte padrão:
- A Alice envia uma mensagem inicial para o Bob, como uma ação de solicitação de gravação.
- Eve, uma man-in-the-middle, intercepta a mensagem e impede que Bob para recebê-lo, por exemplo, em um som de rádio.
- Alice, que não está recebendo uma resposta de Bob, envia uma segunda mensagem.
- Eve faz a interceptação de novo e impede que Bob a receba.
- Eve envia a primeira mensagem interceptada para Bob, como se ela viesse de Alice.
- Bob envia a resposta para Alice e Eva.
- Eve mantém a segunda mensagem interceptada para uma reprodução posterior. Como Bob nunca recebeu a segunda mensagem original interceptada de Alice, ele aceitará reimplantá-lo. Essa mensagem representa uma violação de segurança quando a mensagem codifica como "open lock".
Para evitar esses tipos de ataques, as Ações cronometradas definem um número máximo de tempo limite no início da transação. Mesmo que Eva consiga executar o primeiros seis passos do vetor de ataque, ele não conseguirá reproduzir a mensagem na etapa 7 devido a um tempo limite expirado na transação.
As transações cronometradas aumentam a complexidade e o número de ações. Portanto, eles são recomendado para todas as transações, mas apenas as operações críticas Dispositivos que têm controle sobre recursos de privacidade e segurança físicos ou virtuais.
Abstrações do SDK
Nas seções Transações de leitura, Gravar transações Invocar transações fornecem uma visão geral de alto nível das ações do modelo de interação realizadas SDK do Vertex AI Pipelines.
O desenvolvedor criando um produto que usa o SDK do Matter normalmente não realiza chamadas para executar ações diretamente; as ações são abstraídos por funções do SDK que os encapsulam em uma interação. No entanto, entender as Ações de IM é importante para dar ao engenheiro uma boa proficiência nos recursos do Matter, bem como sobre a implementação do SDK.