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: