asn.1

14
ASN.1 Tarciana Dias Luciana Oliveira Flávia Falcão

Upload: hayes

Post on 07-Jan-2016

39 views

Category:

Documents


2 download

DESCRIPTION

ASN.1. Tarciana Dias Luciana Oliveira Flávia Falcão. Introdução ASN.1. Notação Sintática Abstrata (Abstract Syntax Notation One – ASN.1) - PowerPoint PPT Presentation

TRANSCRIPT

ASN.1

Tarciana Dias

Luciana Oliveira

Flávia Falcão

Introdução ASN.1

Notação Sintática Abstrata (Abstract Syntax Notation One – ASN.1)

Para que o gerenciamento de dispositivos de uma rede que tenham diferentes fabricantes seja possível, é necessário uma forma padronizada para a descrição dos mesmos

A linguagem ASN.1 foi proposta com o objetivo de descrever esses objetos numa forma padronizada e independente de fabricante

Modelo SNMP

Gerente Agente

MIB

Get

Get-Response

Controla(Acesso direto à

MIB)

“Cliente” “Servidor”

Encarregado de coletar dados dos dispositivos e armazená-los numa estrutura padrão (base de dados)

Envia mensagens

SNMP, modifica valor da variável...

Define o conjuntoconceitual dos objetose contém informações

detalhadas sobre cada objeto

SMI: Especifica uma metodologiapara definição da informação contida na MIB.Usa um subconjunto de tipos de dados ASN.1

ASN.1Tipos Primitivos

INTEGER – inteiro de tamanho arbitrário

BOOLEAN - TRUE ou FALSE

BIT STRING – Lista de zero ou mais bits

OCTET STRING – Lista de zero ou mais byte

ANY – União de todos os tipos

NULL – Absolutamente nenhum tipo

OBJECT IDENTIFIER – Nome de objeto (ex.: uma biblioteca)

Construtores

SEQUENCE: Lista ordenada de vários tiposSEQUENCE OF: Lista ordenada de um só

tipoSET: Colecção não ordenada de vários

tiposSET OF: Coleção não ordenada de um só

tipo CHOICE: Qualquer tipo de uma lista

Exemplo de código ASN.1Employee DEFINITIONS ::= BEGINEXPORTS;PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {

Name, title [0] IA5String, number EmployeeNumber, dateOfHire [1] Date, nameOfSpouse [2] Name, children [3] IMPLICIT SEQUENCE OF ChildInformation}ChildInformation ::= SET { Name, dateOfBirth [0] Date}Name ::= [APPLICATION 1] IMPLICIT SEQUENCE { givenName IA5String, initial IA5String, familyName IA5String}EmployeeNumber ::= [APPLICATION 2] IMPLICIT INTEGERDate ::= IA5StringEND

Classes Geradas

PersonnelRecord.java_SeqOfChildInformation.javaChildInformation.javaDate.javaEmployeeNumber.javaName.javaPrintHandler.javaReader.javaWriter.javaXMLHandler.java

Classes Criadas

Gerente.java

Agente.java

Iservico.java (interface remota)

Compiladores

ASN1C (Java, C ou C++)

http://www.obj-sys.com

Asn1Compiler (C# e Java)

http://www.unigone.com/

ASN-1Step (C, C++ ou Java)

http://www.oss.com/

O compilador ASN1C

O compilador ASN1C

O compilador de ASNC1 é capaz de gerar o código Java. O código gerado de Java consiste em uma série de arquivos de fonte de Java - uma tipo definida dentro de uma especificação ASN.1. Ex:

ChildInformation ::= SET {Name, dateOfBirth [0] Date}

O compilador ASN1C

Cada um destes arquivos em Java contém (no mínimo) os seguintes itens:

Uma variável (ou variáveis) pública dos dados

Um construtor (ou construtores) para inicializar a variável.

Um método encode.

Um método decode.

O compilador ASN1C

Há também uma biblioteca run-time para Java. Ela consiste em uma série de classes para codificar e descodificar os tipos ASN.1 primitivos. Por o exemplo, a classe Asn1Integer codificará ou descodificará uma variável do tipo do INTEIRO ASN.1.

Roteiro ASN1C

Setar o arquivo .asn1 Identificar o tipo de linguagem a ser gerada (Java, C ou C++) Identifar BER, PER, DER Para compilar e executar:

set classpath= local do asn1rt.jar; local do jdk1.4;%path%

Por exemplo:Set classpath=C:\acv541\java\asn1rt.jar;C:\jbuilder8\

jdk1.4\bin\;%path%