1 / 14

ASN.1

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)

hayes
Télécharger la présentation

ASN.1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. MIB Modelo SNMP Encarregado de coletar dados dos dispositivos e armazená-los numa estrutura padrão (base de dados) “Cliente” “Servidor” Get Gerente Agente Get-Response Envia mensagens SNMP, modifica valor da variável... Controla (Acesso direto à MIB) SMI: Especifica uma metodologia para definição da informação contida na MIB. Usa um subconjunto de tipos de dados ASN.1 Define o conjunto conceitual dos objetos e contém informações detalhadas sobre cada objeto

  4. 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)

  5. Construtores SEQUENCE: Lista ordenada de vários tipos SEQUENCE OF: Lista ordenada de um só tipo SET: Colecção não ordenada de vários tipos SET OF: Coleção não ordenada de um só tipo CHOICE: Qualquer tipo de uma lista

  6. Exemplo de código ASN.1 • Employee DEFINITIONS ::= BEGIN • EXPORTS; • 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 INTEGER • Date ::= IA5String • END

  7. Classes Geradas • PersonnelRecord.java • _SeqOfChildInformation.java • ChildInformation.java • Date.java • EmployeeNumber.java • Name.java • PrintHandler.java • Reader.java • Writer.java • XMLHandler.java

  8. Classes Criadas • Gerente.java • Agente.java • Iservico.java (interface remota)

  9. 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/

  10. O compilador ASN1C

  11. 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}

  12. 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.

  13. 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.

  14. 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%

More Related