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: