Uma linguagem para descrição de protocolos

Slides:



Advertisements
Apresentações semelhantes
Geração de Tráfego Auto-Similar e Estimação do Parâmetro de Hurst através do método R/S Thiago Souto Maior.
Advertisements

Introdução à Ciência da Computação Linguagens de Programação.
Engenharia de Software
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Informática Aplicada Prof.: Bruno Rafael de Oliveira Rodrigues.
Fernando Moraes e Ney Laert Vilar Calazans
Ney Laert Vilar Calazans
Projeto de Sistemas de Software
RAD – Rapid Application Development
ArchC: Uma linguagem de descrição de arquiteturas
Chapter 4: Threads.
Sistemas Operacionais
Seminário do grupo de pesquisa em IHC do DIMAp-UFRN
Algoritmos de escalonamento (com e sem o
FACENS – Engenharia da Computação Lógica Computacional II
INTRODUÇÃO À PROGRAMAÇÃO
Avaliação de Desempenho e Potência de Mecanismos de Comunicação
CAPÍTULO Sistemas de supervisão 2. Sistema SCADA
QoS para Realidade Virtual
Linguagens de programação
Co-projeto de Sistemas Operacionais
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Linguagens de Programação
TRABALHO SOBRE LINGUAGUEM DE PROGRAMAÇAO CARACTERISTICAS DO JAVA
FERRAMENTA PARA ANÁLISE DE IMPACTO BASEADO EM RASTREABILIDADE DE
YADFS Yet Another Distributed File System
Middleware e Sistemas Distribuídos
Monitoria de Introdução à Computação
Mello, F.O. 1 ; MitsuoIi, F. A. 2 * 1 CPTEC/INPE, Cachoeira Paulista, SP, CEP: – 2 ECMWF, Reading, Shinfield Park,
Projeto de Sistemas de Software
JAVA Linguagem Ambiente de Desenvolvimento
Arquiteturas de Referência
Uma Linguagem de Especificação de Sistemas
Tópicos de Sistemas de Informação A
MAS-ML Tool: Um Ambiente de Modelagem de Sistemas Multi-Agentes
REDES DE COMPUTADORES Prof. Deivson
1.
SISTEMAS OPERACIONAIS
Prof. Msc. Wellington W. F. Sarmento
Efficient Java Communication Protocols on High-speed Cluster Interconnects Alexandre Almeida Felipe Severino.
FIPA THE FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
TVDesigner Uma Ferramenta para Criação de Aplicações MHP Interativas para TV Digital Orientador: Prof. Ph.D. Carlos André Guimarães Ferraz Aluno: Djaci.
O primeiro passo para a nuvem
Sistemas Distribuídos
MODELO DE REFERÊNCIA TCP/IP
METODOLOGIA, MÉTODOS E FERRAMENTAS
Infra-estrutura da tecnologia de informação
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
Back-End Compilação aula-11-back-end.pdf.
Decisão #1 Decisão-chaveUtilização de C para desenvolvimento do MCTCore. DriversRNF: O código deve ser escrito na linguagem C. Descrição O sistema legado.
Maria Alice Grigas Varella Ferreira – EP-USP GERAÇÕES DE FERRAMENTAS (UIMS/UIDS) u segundo (Hix, 1990) u uma classificação por características comuns e.
Desenvolvimento de Jogos e Entretenimento Digital
Arquitetura de Redes de Computadores – Luiz Paulo Maia Camada de Transporte1 Arquitetura de Redes de Computadores Luiz Paulo Maia Camada de Transporte.
CMP167 – Programação com Objetos Distribuídos Aluno: Carlos Oberdan Rolim A Comparative Study between Computer Programming Languages for Developing Distributed.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Frameworks e Componentes Daniel Fernando Pavelec.
Equipe Danilo Miguel Elias Lacerda Felipe Riguete Henderson Garcia
Jorge Zavaleta PVM vs MPI. Introdução Objetivos do MPI Implementações e definições processos dinâmicos Contextos Operações não bloqueantes Portabilidade,heterogeneidade.
Aula: Arquiteturas de redes: modelo de referência OSI 04/12/2010.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Redes de Computadores e Aplicações – Camada de aplicação IGOR ALVES.
Ewerton Patrick, Fernando Henrique, Jéssica Rebeca.
Compartilhamento nas nuvens para redes locais baseado em P2P Jerônimo Feijó Noble da Rosa Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia.
Solução sistêmica para apoiar os processos de fiscalização da Arsesp Agosto/2015 IX Congresso Brasileiro de Regulação.
Pandora FMS Leandro Ferreira Canhada
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Uma linguagem para descrição de protocolos 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

Código gerado pela linguagem 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 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 Prolac { código C } Módulo de envio de mensagens 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 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

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.

Uma linguagem para descrição de protocolos Avaliação de ETAP Uma linguagem para descrição de protocolos