Avaliação de ETAP
Uma linguagem para descrição de protocolos
Aluno: Thiago Souto Maior Cordeiro de Farias
Orientadora: Judith Kelner
Roteiro O Problema Solução Proposta Linguagens de Propósito Específico Avaliação das Linguagens Estado da Arte
Prolac Esterel TAP
Sugestão: ETAP Comparação Geral Eficiência de ETAP Conclusões Referências
O Problema: Escrever Protocolos Tarefa repetitiva Dificuldade de depuração Dependência do sistema operacional
na maioria das linguagens Portabilidade e Extensibilidade
comprometidas
Solução Proposta: Linguagens de propósito específico
Gramática reduzida Simplificam o código para uma
determinada tarefa Tornam o código mais legível Aumenta o nível de abstração e a
produtividade do programador
Linguagens de Propósito Específico Quais são as características de uma
boa linguagem? Geração de código Integração
O que é e para que serve linguagem alvo?
Utilização das linguagens “linguagem de descrição” X
“linguagem alvo” Diminuir código escrito diretamente
na linguagem alvo
Protocolo
Código gerado por uma
linguagem de descrição
Código escrito pelo
programador
Avaliação das linguagens de descrição Métricas
Construção de mensagens Marshalling e Unmarshalling Envio e recebimento Temporizadores Tipos de dados Camada de transporte Mapeamento em Autômato Interação Modularidade Geração de Código
Geração de Código Relação entre quantidade de Código
gerado e código escrito Legibilidade do código gerado Portabilidade do código gerado Eficiência do código gerado
Estado da Arte Escopo da avaliação:
Geração de código portável independente de biblioteca de terceiros
Geração apenas do código necessário para prover a comunicação da aplicação hospedeira
Aplicação hospedeira
Código gerado pela linguagem
Aplicação hospedeira
Código gerado pela linguagem
Rede
Estado da Arte Prolac Esterel TAP
Prolac Legibilidade Facilidade de manutenção
e extensão Eficiência Utiliza paradigma
orientado a objetos C utilizada como
linguagem alvo Não possui construções
para envio e recebimento de mensagens nem também para temporização
Código ProlacCódigo Prolac
{
código C
}
Módulo de envio de mensagens
{
código C
}
Módulo de temporização
Esterel Linguagem Síncrona
Projetada para sistemas reativos Alto nível
Utilizada para modelar circuitos, sistemas embarcados, interfaces homem-máquina e protocolos de comunicação
Várias linguagens alvo (C, VHDL...) Baseada em transmissão de sinais Sincronização entre processos paralelos Não possui construções na linguagem para especificar as
mensagens na própria linguagem Não possui construções para envio e recebimento de
mensagens nem também para temporização
Integração de Esterel
Módulo de envio/recepção de
mensagens
Módulo temporizador
Módulo de descrição do
protocolo
Sinais para comunicação entre módulos
Sinais para comunicação entre módulos
Código Esterel X Autômato
TAP Utiliza linguagem C como alvo Gera código para sistemas
operacionais baseados no Unix Limitação na construção de
mensagens Forte associação com a linguagem
alvo Só utiliza UDP
Processo de Compilação e integração de TAP
Código TAP
APC
Resto da Aplicação
Código gerado na linguagem C
GCC
Programa
Sugestão: ETAP Criada para suprir as dificuldades e carências
das outras linguagens Baseada em TAP Utilização da ferramenta Protomake Suporte a várias linguagens alvo Geração de plugins para o Ethereal Geração de código independente da linguagem
alvo Suporte a UDP e TCP Multiprocesso Facilmente traduzida em autômatos
Tradução de ETAP em autômatos
Compilação e Integração de ETAP
Código ETAP
Protomake
Resto da Aplicação
Código da aplicação de teste
GCC
Programa
Código do protocolo gerado pelo Protomake
Plugin do Ethereal Código Fonte do Ethereal
Outras Facilidades de ETAP Parâmetros do protocolo controlados
por arquivo de configuração Endereços constantes e portas
Geração de aplicação de teste através da ferramenta Protomake
Depuração com Ethereal
Sem Plugin
Depuração com Ethereal
Com Plugin
Comparação Geral de Acordo com as Métricas
Eficiência de ETAP Teste utilizando script bash
5000 conexões seqüenciais com 50 repetições Tempo médio de resposta: 0.0057s
Neste teste, foi utilizado um protocolo de echo
Manipulação de 10548 conexões/min Teste realizado num Athlon xp 1700+
512MB RAM, Linux 2.4.26
Conclusões ETAP oferece ótimos recursos para
construção de protocolos, comparado às outras linguagens
Bom tempo de resposta, podendo ser utilizada tanto para prototipação quanto para a construção de novos protocolos de rede
Trabalhos Futuros Extender a ferramenta de
compilação da linguagem ETAP para gerar autômato correspondente
Comparar o resultado do teste de eficiência com aplicações feitas manualmente
Referências Farias T. S. M. C., Cananéa I. C. et al (2004), Protomake: Um compilador de protocolos, SBRC 2004 - 22o
Simpósio Brasileiro de Redes de Computadores, 10 a 14 de maio de 2004, Gramado RS. Esterel Synchronous Language Web Main Page, Documentos, histórico e exemplos disponíveis em http://www-
sop.inria.fr/esterel.org/. Acesso em 5 de setembro de 2004. CEC: The Columbia Esterel Compiler, disponível em http://www1.cs.columbia.edu/~sedwards/cec/. Acesso em
5 de setembro de 2004. The Prolac Protocol Language, disponível em http://www.pdos.lcs.mit.edu/prolac/. Acesso em 5 de setembro de
2004. Kohler, E. (1997-1999), Prolac language reference manual, 29 de agosto de 1999. Kohler, E. (1997), Prolac: A language for protocol compilation, Master Thesis, setembro de 1997,
Massachusetts Institute of Technology. Kohler, E. et al (1999), A Readable TCP in the Prolac Protocol Language, ACM SIGCOMM'99.
Referências Barry, G., Gonthier G. (1988), Incremental Development of an HDLC Protocol in ESTEREL, Ninth International
Symposium on Protocol Specification, Testing, and Verification, North Holland, 1989.
McGuire, T. M. (2004), The Austin Protocol Compiler Reference Manual, 7 de maio de 2004.
McGuire, T. M. (2004), Correct Implementation of Network Protocols, PhD thesis, The University of Texas at Austin, maio de 2004.
The Austin Protocol Compiler, disponível em http://www.cs.utexas.edu/users/mcguire/software/apc/. Acesso em 5 de setembro de 2004.
Ely D., Savage S., Wetherall D. (2001), Alpine: A User-Level Infrastructure for Network Protocol Development, 3rd USENIX Symposium on Internet Technologies and Systems, páginas 171-183, março de 2001.
Ethereal: The world's most popular network protocol analyzer, disponível em http://www.ethereal.com/. Acessado em 5 de setembro de 2004.
IEEE POSIX®: Portable Operating System Interface, disponível em http://standards.ieee.org/regauth/posix/. Acessado em 5 de setembro de 2004.
Berkeley Software Design, disponível em http://www.bsd.org/. Acessado em 5 de setembro de 2004.
Avaliação de ETAP
Uma linguagem para descrição de protocolos
Top Related