Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para enviar dados por meio de um meio de comunicação, como uma linha telefônica, os dados devem ser serializados, ou seja, convertidos em uma cadeia de caracteres de zeros e uns que são transmitidos serialmente pela linha. A serialização deve ser feita de forma que o computador que recebe os dados possa converter os dados de volta em seu formato original. A forma como a serialização é realizada é chamada de protocolo de comunicaçãoe é controlada por hardware de transmissão de dados e software. Há vários níveis em que os dados são convertidos. A ilustração a seguir mostra uma exibição muito simplificada das camadas de protocolo de comunicação.
A ilustração anterior mostra a camada de aplicativo no Computador nº 1 enviando os dados a serem transmitidos (que geralmente consiste em alguma combinação de caracteres textuais e números) para a camada de codificação/decodificação. A camada de codificação/decodificação codifica os dados em um fluxo de bytes de computador. No nível mais baixo, a camada de hardware, o hardware converte os bytes de dados em um fluxo serial de uns e zeros que é transmitido pela linha para o Computador nº 2. A camada de hardware do Computador nº 2 converte os zeros e aqueles de volta em bytes de computador e os passa para a camada de codificação/decodificação para decodificação. A camada de codificação/decodificação decodifica os bytes novamente em seu formato original e passa os dados para a camada do aplicativo.
Um princípio de design de software aceito é usar abstração, ou seja, o processo de descrever um problema ou objeto em termos de seus parâmetros gerais em vez de descrever todos os detalhes necessários para resolver o problema ou descrever todos os detalhes de um objeto. Usando a abstração, um designer pode especificar um objeto de software que tenha qualidades específicas sem se preocupar com como o objeto é realmente implementado no código de software. Essa prática deixa a implementação aberta. Ele também simplifica a especificação e torna possível declarar axiomas sobre o objeto que podem ser provados quando o objeto é implementado. Esses axiomas podem então ser assumidos quando o objeto é empregado em outro objeto de nível superior. A abstração é a marca registrada da maioria das especificações de software contemporâneas.
A maioria dos protocolos de comunicação envolve uma boa quantidade de abstração. Objetos em camadas mais altas são definidos de forma abstrata e devem ser implementados usando objetos em camadas inferiores. Por exemplo, um serviço em uma camada pode exigir a transferência de determinados objetos abstratos entre computadores. Uma camada de nível inferior pode usar regras de codificação para transformar os objetos abstratos em cadeias de caracteres de zeros e uns.
Um método comum de especificar objetos abstratos destinados a serem transmitidos em série é chamado AsN.1 (Abstract Syntax Notation One). O ASN.1 é definido na recomendação CCITT X.208 . Um conjunto de regras ASN.1 para representar objetos como cadeias de caracteres de um e zeros é chamado de DER (Distinguished Encoding Rules) e é definido na Recomendação CCITT X.509, Seção 8.7. Estes são os métodos de codificação atualmente usados pela CryptoAPI.
Para obter mais informações sobre funções de codificação/decodificação, consulte funções de codificação e decodificação de objeto.