Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro...

29
Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner

Transcript of Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro...

Page 1: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

Avaliação de ETAP

Uma linguagem para descrição de protocolos

Aluno: Thiago Souto Maior Cordeiro de Farias

Orientadora: Judith Kelner

Page 2: 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

Page 3: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

O Problema: Escrever Protocolos Tarefa repetitiva Dificuldade de depuração Dependência do sistema operacional

na maioria das linguagens Portabilidade e Extensibilidade

comprometidas

Page 4: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 5: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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?

Page 6: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 7: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 8: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 9: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 10: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

Estado da Arte Prolac Esterel TAP

Page 11: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 12: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 13: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 14: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

Código Esterel X Autômato

Page 15: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 16: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 17: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 18: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

Tradução de ETAP em autômatos

Page 19: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 20: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 21: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

Depuração com Ethereal

Sem Plugin

Page 22: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

Depuração com Ethereal

Com Plugin

Page 23: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

Comparação Geral de Acordo com as Métricas

Page 24: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 25: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 26: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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

Page 27: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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.

Page 28: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

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.

Page 29: Avaliação de ETAP Uma linguagem para descrição de protocolos Aluno: Thiago Souto Maior Cordeiro de Farias Orientadora: Judith Kelner.

Avaliação de ETAP

Uma linguagem para descrição de protocolos