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
Rede
Código gerado
pela linguagem
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 Prolac
{
Módulo de envio
de mensagens
código C
}
{
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
descrição do
protocolo
Sinais para
comunicação entre
módulos
Módulo de
envio/recepção de
mensagens
Módulo
temporizador
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
Resto da Aplicação
GCC
Progra
ma
APC
Código gerado na
linguagem C
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
Resto da Aplicação
GCC
Progra
ma
Protomake
Código do
protocolo gerado
pelo Protomake
Plugin do Ethereal
Código da
aplicação de teste
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://wwwsop.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
Download

Avaliação de ETAP