Programação distribuída e concorrente

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais II N Aula prática Java Sockets, RPC e RMI Eduardo Bezerra.
Advertisements

Programação orientada a objetos
I/O Carlos Bazilio Depto de Ciência e Tecnologia
Interações cliente/servidor usando o UDP
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Entrada e Saída Marco Antonio Arquiteto de Software Dezembro/2007.
Comunicação entre processos distribuídos
Ir p/ primeira página Cliente/Servidor Modelo usado para construir aplicações Servidor em número de porta conhecido – Aceita requisições e executa serviços.
Persistência de objetos em arquivo texto usando Java
Java RMI Alcides Calsavara. Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância.
Comunicação Distribuída
Programação com sockets API Sockets apareceu no BSD4.1 UNIX em 1981 são explicitamente criados, usados e liberados por aplicações paradigma cliente/servidor.
O conceito de socket Uma comunicação entre dois processos via TCP (ou UDP) é identificada unívocamente por dois pares de valores, que denotam os dois pontos.
Streams Java.
Conceitos de Sockets Universidade Federal do Rio Grande do Sul (UFRGS)
Desenvolvimento de Aplicações Distribuídas
Programação Concorrente
Comunicação Inter-Processos
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Wagner Santos C. de Jesus
Orientação a Objetos Classes
26/09/2005 LCMI - DAS - UFSC 1 Introdução aos Sockets Java Fábio Favarim DAS – Departamento de Automação e Sistemas UFSC – Universidade.
1 Introdução aos Sockets (Java) Tiago Semprebom DAS – Departamento de Automação e Sistemas UFSC – Universidade Federal de Santa Catarina.
FEUPDEECRedes de Computadores, 4º Ano de EEC, ramo de ACI Sockets Abril, 98Isidro Vila Verde 1 Formato das estruturas de dados Estrutura.
A linguagem C#.
Prof. Edmundo R. M. Madeira Carlos R. Senna MC823 Laboratório de Teleprocessamento e Redes Primeiro Semestre 2007.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Introdução à Programação Distribuída em Java
O Mecanismo de Threads em Java 2. Criar uma classe herdeira da super classe Thread public class minhaThread extends Thread{ public class minhaThread extends.
Concorrência em Java Threads em Java.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 – CIn/UFPE Davi Duarte Denyson José Eduardo Souza Ivan França Rafael Lima.
JAVA Orientação a Objetos
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Comunicação entre processos usando Sockets
Streams –input e output
Atributos, Encapsulamento e Interface em Java
Programação com sockets
Java Avançado Luiz Carlos d´Oleron SJCP Java Sockets.
Comunicação Entre Processos Sockets - Java
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Java e Serviço de Transporte Vitor Brandi Junior.
Comunicação entre Processos - Sockets. Conceitos Básicos Sockets são uma forma de IPC ( InterProcess Communication ) fornecida pela 4.3 BSD que fornecem.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Infra-Estrutura de Comunicação (IF678) Aula Prática CIn/UFPE Rafael Lucena Roberta Mota Rubens Lopes Rodolfo Santos João Pedro Cordeiro.
Programando sockets em python
Implementando comunicação em JAVA via Sockets Alcides Calsavara - Leonardo R. Nunes -
Implementação Orientada a Objetos – Aula 03
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Introdução às Java Threads
Estrutura de Controle em JAVA
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Desenvolvimento de Aplicações TCP/IP com Sockets Márcio de Sousa Dias
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Hugo Simões Original por: Flávio.
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Arquitetura de Redes de Computadores – Luiz Paulo Maia Camada de Transporte1 Arquitetura de Redes de Computadores Luiz Paulo Maia Camada de Transporte.
Capítulo 4: Processos.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Socket em Java.
Introdução à Programação com Sockets Fernando Jorge Silveira Filho Daniel Sadoc Menasché
Java – Remote Method Invocation (RMI)
Programação Distribuída em Java Aula Na aula passada vimos: I/O Streams Filtros Readers and Writers.
Passagens de Mensagens Prof. Dr. Norian Marranghello
Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho.
2: Application Layer 1 Capítulo 2: Camada de Aplicação  2.1 Princípios da camada de aplicação  2.2 Web e HTTP  2.3 FTP  2.4  SMTP, POP3, IMAP.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Soquetes (1) SOCKET Uma interface local, criada por aplicações, ponto final de comunicação no qual os processos de aplicação podem tanto enviar quanto.
Transcrição da apresentação:

Programação distribuída e concorrente Programando com sockets Análise do programa com sockets Encapsulando sockets com objetos Programação concorrente

Programando com sockets servidor cliente IP+porta Criação do socket (bind Estabelecimento da conexão (accept) Comunicação (send, recv) IP+porta Stack TCP/IP

Programando com sockets int listenfd, connfd; struct sockaddr_in servaddr; unsigned char buff[SIZE]; listenfd = socket(AF_INET, SOCK_STREAM, 0); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = INADDR_ANY; servaddr.sin_port = htons(ACTION_PORT); bind(listenfd, (const struct sockaddr*)&servaddr, sizeof(servaddr)); listen(listenfd, 1); for(;;) { connfd = accept(listenfd, NULL, NULL); do { //Recebe Comando if (recv(connfd, buff, sizeof(buff), MSG_WAITALL) == -1) break; //Executa na Planta printf("receive %u\n", buff[SIZE-1]); //Confirma Execucao if (send(connfd, buff, sizeof(buff), MSG_NOSIGNAL) == -1) break; } while (buff[0] == 0x01); printf("Fecha Conexao\n"); close(connfd); } printf("Fecha Socket\n"); close(listenfd);

Programando com sockets Aspectos positivos Simplicidade “Transparência” de localização Aspectos negativos Comportamento imprevisível Foco na mensagem Replicação

Encapsulando sockets em objetos Aspectos positivos Facilita a criação de múltiplas instâncias

Criação Socket - Cliente CLIENT SERVER IPnumber Port in out Socket s DataInputStream S_in PrintStream S_out String, float,... bytes “Texto” S_in= new DataInputStream(s.getInputStream()) s=new Socket(IP_server, port) Class Client { Socket s; DataInputStream s_in; PrintStream s_out; } S_in.readLine(); S_out.Println(“Texto”); S_out = new PrintStream(s.getOutputStream()) S.close(); Suporte comunicação

Criação Socket - Server CLIENT SERVER ss s IPnumber Port in out Socket s Server Socket ss=new ServerSocket(port); IPnumber Port in out Socket Socket s = ss.accept(); Suporte comunicação

S_out.println(“Msg1 do Client”); Comunicação usando Sockets S_in.readLine(); “Msg1 do Client” S_out.println(“Msg1 do Client”); Comunicação usando Sockets “Resposta Server” S_out.println(“Resposta Server”) CLIENT S_in SERVER s s S_in PrintStream S_out ss S_out DataInputStream DataInputStream PrintStream Socket in out Server Socket in out IPnumber Port IPnumber Port Suporte comunicação

Programação concorrente Threads vs. Processos vs. Múltiplos executáveis Ex: home banking

servidor IPnumber Port in out cliente1 cl1 Server Socket cl2 IPnumber Port in out cliente2 cl3 IPnumber Port in out client3

Java Tempo-Real Overviews David Holmes / Australia (link) Corsaro / Univ. Washington (link) Wellings/Univ. Of York (link) Exemplo Cuco (link)

Java Tempo-Real RT-JVM disponíveis Mackinac JTime jRate Jamaica Perc Ajile

Programação concorrente e distribuída Thread de aquisição (periódica) Computador i Threads de atendimento a serviços de leitura

class CSensor { int endereco; protected: float valor_bruto, valor_engenharia; public: //Atributos e métodos públicos são acessíveis por todas as classes void amostrar(void); float ler(void); virtual void condicionar(void)=0; //A palavra 'Virtual' define condicionar como um método que deve ser //implementado nas classes derivadas. }; Thread cíclica que realiza a leitura do transdutor e chama a função condicionar Threads múltiplas para leitura do sensor (prioridade definida pelo cliente)