Especificação de Sistemas Distribuídos Alexandre Mota/Augusto Sampaio {acm,

Slides:



Advertisements
Apresentações semelhantes
Sistemas Concorrentes com CSP e Java
Advertisements

Programação Orientada aos Objectos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra Set/2005 Uma Introdução Usando.
ArchC: Uma linguagem de descrição de arquiteturas
Chapter 4: Threads.
Sistemas Operacionais
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Uma Ferramenta para Geração Automática de Requisitos a partir de Modelos CSP Glaucia Peres e Alexandre Mota 06/out/2007.
JADE Java Agent DEvelopment Framework
Estilos de Especificação
Introdução a Programação Orientada a Objetos
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
Distributed Data-Parallel Computing Using a High-Level Programming Language TL1 – Programação com Objetos Distribuídos.
Capítulo 1 Patterns in Network Architecture Fundamentos para a Arquitetura de Redes 1 O Futuro da Internet (2012.1)
VUML Rafael Borges motivação estudar algumas ferramentas desenvolvedores só entendem uml uml não tem semântica bem definida.
JAVA Linguagem Ambiente de Desenvolvimento
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Tópicos em redes e sistemas distribuídos B
Álgebras de Processo (FSP e CSP)
Detalhes sobre o curso
Alexandre Mota/Augusto Sampaio {acm,
Alexandre Mota Introdução a CSP Alexandre Mota
Verificando Propriedades de Programas Concorrentes em Java
Adalberto Farias Alexandre Mota
CSP: Semântica e Refinamento
Introdução a Desenvolvimento de Sistemas
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Introdução a Desenvolvimento de Sistemas
Uma Abordagem Baseada em Modelos para Detecção de Situações em Sistemas Sensíveis ao Contexto Izon Thomaz Mielke Orientadora: Patrícia Dockhorn Costa.
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
SVA e SVL Sidney Nogueira e André Didier. Ambiente Versão mais nova de sva (sva2) – Descompactar versao mais nova ant run Java 1.6 FDR 2.91 (busca no.
Embedded Software Engineering: The State of the Practice Acadêmicos:
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos.
Laboratório de Programação
Plataforma Java 2 - Micro Edition (J2ME) Prof. Afonso Ferreira Miguel, MSc.
Roteiro Rodando FDR e Probe Dicas de uso das ferramentas.
Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de Pernambuco.
Aula Prática de ESD ( Usando FDR e Probe Sidney Nogueira Última atualização: 01/05/10.
1 Communicating Sequential Processes (CSP) MO409 – Eng. de Software Profa. Eliane Martins Fernando J. C. de Lima F o - RA Rodrigo Teruo Tomita –
PROGRAMAÇÃO DISTRIBUÍDA Prof. Henrique Mongelli
Shared Variables Analyser (SVA) Ferramenta desenvolvida pelo Computing Laboratory (Oxford University) Analisa programas concorrentes com variáveis compartilhadas.
A Linguagem Formal de Especificação VDM-SL
O Sistema TeleMicro Marcelo Fantinato Tarcisio da Rocha Profa. Eliane Martins Maio de 2002 Instituto de Computação - Unicamp Especificação e Validação.
TRABALHO DE GRADUAÇÃO Model Checkers: Uma análise de ferramentas para a linguagem de programação C TRABALHO DE GRADUAÇÃO Pedro Montenegro
Video Capítulo 8: Impasses. Silberschatz, Galvin and Gagne  Video Operating System Concepts Assuntos n Modelo de Sistemas n Carcterização de.
CMP167 – Programação com Objetos Distribuídos Aluno: Carlos Oberdan Rolim A Comparative Study between Computer Programming Languages for Developing Distributed.
Linguagem de Modelagem Unificada
Introdução a Programação Orientada a Objetos
A High Performance Java Middleware with a Real Application HUERT, Fabrice; CAROMEL, Denis; Bal, Henri E. Supercomputing 2004 Trabalho desenvolvido por:
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Modelos Semânticos e Noções de Refinamento.
CSP-Z e sua Verificação
1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota
Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes.
CloudSim Um framework para modelagem e simulação de infraestrutura e serviços de Computação em Nuvem.
Antonio Nascimento Roteiro Introdução Objetivos Áreas de Conhecimento Certificações Conclusões Referências.
Alexandre Mota Breve introdução à CSO (Communicating Scala Objects)
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2.
Adalberto Farias Alexandre Mota Augusto Sampaio
MHP – RFP 2 Luiz Eduardo Sílvio Meira Jones Albuquerque
Comunicação Assíncrona em Equipes Distribuídas: Requisitos e Meios Utilizados Cleyton Carvalho da Trindade Universidade Federal de.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 33 (1) Análise de Desempenho em Programas Paralelos Tópicos: Introdução Aquisição de Dados.
Abstração de Processos Infinitos em CSP Z : Tratando Comunicação e Instabilidade Aluno: Adalberto Cajueiro de Farias Orientador: Alexandre Mota Co-Orientador:
Introdução 1.
Sistemas Operacionais II Professor Cláudio Geyer Instituto de Informática - UFRGS.
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.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
PROBE – CSP Animator FDR – CSP Model Checker Adalberto Farias Alexandre Mota Augusto Sampaio.
Transcrição da apresentação:

Especificação de Sistemas Distribuídos Alexandre Mota/Augusto Sampaio {acm,

Motivação Lidar com tarefas simultaneamente não é simples Memória compartilhada ou troca de mensagens Deadlock, livelock e não-determinismo Especificação muito longe da implementação

Objetivo Modelar sistema concorrente e/ou distribuído usando uma linguagem de especificação (CSP) Analisar propriedades dessa especificação Detalhar (refinar) a especificação até chegar em implementação (JCSP/UML-RT)

CSP Notação conveniente para modelar sistemas concorrentes Alto nível de abstração Ferramentas para analisar propriedades automaticamente Possui biblioteca para Java (JCSP)

Exemplo de CSP Considere o problema do jantar dos filósofos, com 5 filósofos envolvidos PHIL(0) PHIL(1) PHIL(4) PHIL(3) PHIL(2) FORK(0)FORK(1) FORK(2) FORK(4) FORK(3)

Exemplo de CSP PHIL(i) = sitdown.i -> pickup.i.inc(i) -> pickup.i.i -> putdown.i.inc(i) -> putdown.i.i -> getup.i -> PHIL(i) FORK(i) = pickup.i.i -> putdown.i.i -> FORK(i) [] pickup.dec(i).i -> putdown.dec(i).i -> FORK(i) PHILS = || [{|...|}] PHIL(i) FORKS = || [{|...|}] FORK(i) COLLEGE = PHILS [ |...| ] FORKS

ProBE Será que nossa especificação CSP se comporta como imaginamos? Para saber isso, podemos animar seu comportamento através de ProBE Vamos exercitar o exemplo anterior (dphil.csp) com o ProBE…dphil.csp

FDR Será que nossa especificação CSP obedece a requisitos essenciais sobre sistemas concorrentes e distribuídos? Dealock, Livelock e Não-determinismo Vamos investigar nosso exemplo usando o verificador de modelos FDR… FDR

Projeto 1 Escolher sistema concorrente para ser especificado A partir da modelagem, estudar as seguintes propriedades clássicas: deadlock, livelock e determinismo Na presença indesejável, ajustar o modelo Resultado: modelo e análises básicas

JCSP Biblioteca para Java que suporta CSP Programação concorrente elegante Possível usar memória compartilhada/passagem de mensagens Todos os recursos de Java Talvez requeira refinamento Ou UML-RT…

Projeto 2 A partir do modelo em CSP, implementar em JCSP Adicionar à implementação requisitos não- funcionais Portanto, o projeto deve ser desafiador e não meramente teórico Pode usar dos conceitos usados nos fundamentos Resultado: documentação de descrição, programa e análise com o Java PathFinder

Jantar Filósofos em JCSP

Java PathFinder Java PathFinder (JPF) is a system to verify executable Java bytecode programs. In its basic form, it is a Java Virtual Machine (JVM) that is used as an explicit state software model checker, systematically exploring all potential execution paths of a program to find violations of properties like deadlocks or unhandled exceptions (JPF site)

Desenvolvendo o Sistema AnáliseProjeto Implementação (CSP) … (JCSP) (UML-RT)(Java) Projeto baseado em Refinamento Análise automática de propriedades {deadlock, livelock, determinismo} (CSP.Net) JPF ProBE, FDR FDR

Avaliação Projeto CSP (A) Projeto JCSP (B) Prova (C) Nota = ((A+B)/2+C)/2 Presença requisitada Definir projeto até 03/10/07

Referências Andrews, G.R. Multithreaded, Parallel, and Distributed Programming. Addison-Wesley, Roscoe, A.W. The Theory and Practice of Concurrency. Prentice-Hall, Hoare, C.A.R. Communicating Sequential Processes. Prentice-Hall, 1985.Communicating Sequential Processes Welch, P. Communicating Sequential Processes for Java Communicating Sequential Processes for Java CSP.Net QuickStone. JCSP Network Edition JCSP Network Edition QuickStone. xCSP Technology xCSP Technology