ASN.1 (Questionário)

1.1 - Qual a finalidade de usar rótulos na definição das estruturas ASN.1 ?

R-) Os rótulos são utilizados para distinguir os tipos de dados transmitidos, assim, quando a mensagem chegar a seu destino, será interpretada sem ambiguidade.

1.2 - Para que serve e como é usada a opção IMPLICIT ?

R-) A opção IMPLICIT serve para suprimir a informação sobre o tipo dos dados que estão sendo transmitidos, quando são enviados tipos ou campos marcados. O IMPLICIT, quando da escrita da sintaxe abstrata, é colocado logo após a TAG, como por exemplo: [PRIVATE 6] IMPLICIT SEQUENCE. Se não for incluído IMPLICIT depois de uma TAG, tanto a TAG quanto o tipo são enviados, como uma espécie de verificação de tipo em tempo de execução.

1.3 - Elabore uma definição de uma estrutura para itens numa biblioteca. Considere que pode haver mais de um exemplar de um mesmo livro e que nem todos os itens conterão todas as informações. Considere que um item da biblioteca pode estar em várias condições: na prateleira, emprestado, em reserva local, em conserto, reservado etc...

R-) Aplicação de uma biblioteca que possui informações sobre livros, teses, dissertações, manuais, folhetos e anais. Cada registro é denominado de DADOS_ACERVO e é composto dos seguintes campos: Título, Autor, Assunto, Editora/Instituição, Ano de Publicação, Local de Publicação, Número, Cutter, Quantidade e Status.

As informações comuns são: Título, Assunto, Editora/Instituição, Ano de Publicação, Local de Publicação, número, Quantidade e Status.

A informação sobre Autor consta apenas em registros de livros, teses, dissertações e folhetos.

A informação sobre Cutter consta nos registros de livros, teses, dissertações e anais.

A Quantidade indica o número de exemplares de uma publicação e o Status a sua condição atual: na plateleira, emprestado, reservado etc...

1.4 - Construa uma instância de sua definição, indicando os valores que seriam colocados em cada tipo primitivo e composto da sua estrutura.

R-) Instância: DADOS_ACERVO

Informações sobre exemplares

Informações sobre exemplares

1.5 - Transcreva esta instância usando as Regras de Codificação Básica produzindo a sequência de bits que seriam transmitidos. Mostre-os de forma compreensiva (agrupando os bits de forma a facilitar sua interpretação).

R-) Registro Acervo ::- [APPLICATION 0] IMPLICIT SET

{ Título,
Autor,
Assunto [0] ISO646 string,
EditoraInst,
AnoPublicação [1] IMPLICIT INTEGER,
LocalPublicação [2] ISO646 string,
Número [3] IMPLICIT INTEGER,
Cutter [4] OCTETSTRING,
Quantidade [5] IMPLICIT SEQUENCE OF Informaçõesexemplares DEFAULT {} }

InformaçõesExemplares
{ Número [0] IMPLICIT INTEGER,
Status }

Título ::- [APPLICATION 1] IMPLICIT SEQUENCE
{Título ISO646 string,
Complemento ISO646 string }

Autor ::- [APPLICATION 2] IMPLICIT SEQUENCE OF ISO646 string

EditoraInst ::- [APPLICATION 3] IMPLICIT SEQUENCE OF ISO646 string

Status :: - [APPLICATION 4] CHOICE
{Emprestado [0] ISO646 string,
Prateleira [1] ISO646 string,
Reserva [2] ISO646 string,
ReservaLocal [3] ISO646 string,
Conserto [4] ISO646 string }

Codificação baseada nas Regras de Codificação Básica

Acervo [Aplication 0]
Registro Comprimento Conteúdo
60       7C
         Título Comprimento Conteúdo
         61     1A
                IA5String Comprimento Conteúdo
                16        0C          "Redes Locais"
                IA5String Comprimento Conteúdo
                16        0A          "Aplicações"
         Autor  Comprimento
         62     0B
                IA5String Comprimento Conteúdo
                16        0A          "Jose Maria"
         Assunto  Comprimento         Conteúdo
         80       05                  "Redes"
         EditoraInst Comprimento
         63          07
                     IA5String Comprimento Conteúdo
                     16        05          "Redes"
         AnoPublic   Comprimento      Conteúdo
         81          04               "1995"
         LocalPublic Comprimento
         82          05
                     IA5String Comprimento Conteúdo
                     16        03          "POA"
         Número Comprimento Conteúdo
         83          08     "68132784"  
         Cutter Comprimento 
         84     07
                OctetString Comprimento Conteúdo
                04          05          "A481c"
         Quantidade Comprimento
         85         22
                    Número Comprimento Conteúdo
                    80     01          "1"
                           Status Comprimento
                           64     0C
                                  IA5String Comprimento Conteúdo
                                  16        OA          "Prateleira"
                    Número Comprimento Conteúdo
                    80     01          "2"
                           Status Comprimento
                           64     16
                                  IA5String Comprimento Conteúdo
                                  16        0A          "Emprestado"

Grupo: