O USO DE ANS.1 PARA ESPECIFICAÇÃO FORMAL DE PROTOCOLOS


1. A necessidade de uma notação formal

Num sistema de informação distribuído, aplicações remotamente localizadas têm requisitos para transferência de informação (semântica), mas não são envolvidas na determinação dos detalhes da representação de suas informações (sintaxe de transferência) ou codificação durante a comunicação. É o nível de apresentação que provê as funções que definem, através do uso de regras de codificação a sintaxe de transferência para a informação sendo transportada durante a comunicação.

Por exemplo, uma determinada aplicação poderia representar dados tais como "registro-de-pessoal", "relatórios-companhia", "catálogos-biblioteca", ou fragmentos disso, de alguma forma adequada a linguagem de programação usada para escrever o manipulador do protocolo de aplicação. Isto envolveria, tipicamente, pointers para uma árvore com uma estrutura, e não uma simples sequência de valores.

O acionamento de uma primitiva P_DATA (que requisita ao nível de apresentação o envio de dados para uma entidade remota), envolveria a passagem de um pointer para esta estrutura de dados, que seria manipulada pelo nível de apresentação para codificar os valores e acionar uma primitiva S-DATA (que requisita ao nível de sessão o envio de um conjunto de octetos para a entidade par). Para fazê-lo, o módulo de apresentação também iria requerer, um pointer para uma estrutura de dados ou arquivo contendo as definições de tipos.

Por outro lado, o nível de apresentação também provê um serviço comum a todas as aplicações, de negociação de um consenso sobre a sintaxe de transferência da informação que as aplicações desejam comunicar. Esta sintaxe de transferência tem que ser negociada porque somente conhecendo-a, a entidade receptora dos dados terá condições de isolar as unidades de informação (ou campos de um registro ou tela sendo transmitidos). Assim, o nível de apresentação pode receber os dados do nível de aplicação estruturados de acordo com uma dada sintaxe de apresentação, restruturá-los de acordo com outra sintaxe de apresentação (a sintaxe de transferência) e o nível de apresentação receptor, pode, ainda, tornar a promover uma restruturação dos dados para apresentá-los ao seu nível de aplicação de uma forma compreensível para este. No caso mais simples, a entidade de aplicação que está enviando os dados não os estrutura de forma alguma (eles consistem apenas de um único string de caracteres do código padrão (ISO646), os dados são transferidos da mesma forma e entregues para o nível de aplicação do mesmo formato. Neste caso, diz-se que o nível de apresentação é nulo.

Numa situação em que a sintaxe de apresentação dos dados fosse diferente para as duas entidades de aplicação interagindo, teria que ser possível negociar a sintaxe de transferência a ser usada. Para negociar uma sintaxe é preciso poder, no mínimo, referí-la por um identificador ou ainda, definí-la e associar-lhe um identificador ou nome. Esta associação entre um conjunto de valores de dados e sua representação constitui o que é denominado um contexto de apresentação definido.

Os nomes e a definição associada devem ser registrados junto a alguma organização de Registro, designada pela ISO. Tal organização manterá registro dos nomes de sintaxe alocados e da definição da sintaxe associada com cada nome específico. Assim, quando em uma negociação de sintaxe de transferência for referenciado um nome registrado, estará especificado, sem ambiguidades, as regras de estruturação a serem usadas durante a transferência. A negociação de contexto somente e usada no nível de apresentação porque nos níveis inferiores do modelo OS, cada parâmetro de dados do usuário, numa primitiva de serviço, e especificado como um valor binário numa sequência de octetos.

Propriedades adicionais de uma sintaxe podem também ser registradas (por exemplo, poderia ser especificado que uma particular sintaxe de transferência e constituída sempre por um número inteiro de octetos).

A ISO definiu uma notação (ISO 8824 e ISO 8825, derivada da recomendação CCITT X.409) que permite difinir tipos de dados simples e complexos, bem como os valores que tais tipos podem assumir. Esta notação e denominada Notação para Sintaxe Abstrata Um (ASN.1 Abstract Sintax Notation One). Esta notação que não indica o valor dos dados, apenas sua forma. Além disso existem algoritmos, denominados Regras Básicas de Codificação (Basic Encoding Rules) que determinam o valor dos octetos representando tais valores e que serão passados para o nível de sessão (isto e denominado a sintaxe de transferência de dados).

Este trabalho pretende apresentar de forma tutorial e didática, os princípios da ASN.1. A sessão 2 deste trabalho, apresentara a definição da notação para representação da sintaxe dos dados e a sessão 3 as regras básicas de codificação.


Próxima