Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1

Documentos relacionados
Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Sistemas Distribuídos Aula 10

Arquitetura de Computadores Sistemas Operacionais II

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

Vamos fazer um pequeno experimento

Sistemas Distribuídos

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

Comunicação entre Processos

Resumo: Sistemas Operacionais Abertos

Objetos e Componentes Distribuídos: EJB e CORBA

Chamada Remota de Procedimento (RPC)

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java

Departamento de Informática

Programação Distribuída e Paralela Apresentação

Sistemas Distribuídos

Programação com Sockets

SIST706 Sistemas Distribuídos

1.2- Ambientes de Middleware

Tecnologias de Distribuição e Integração. Quais as preocupações a ter com um sistema distribuído?

Programação orientada a objetos

Desenvolvimento Cliente-Servidor 1

Sistemas Operacionais II

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Sistemas Especializados

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos

Sistemas distribuídos. Prof. Emiliano Monteiro

SSC0611 Arquitetura de Computadores

SISTEMAS DISTRIBUÍDOS

Conceitos básicos sobre computadores

Sistemas Distribuídos

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 11 - Threads e Concorrência

Sistemas Operacionais Aula 3

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Sumário. 1 Caracterização de Sistemas Distribuídos 1. 2 Modelos de Sistema Redes de Computadores e Interligação em Rede 81

Sistemas Operacionais

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos.

Sistemas de Objetos Distribuídos

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

UNIVERSIDADE ESTADUAL VALE DO ACARAÚ- UEVA. Assunto: Programação Concorrente.

Características de Sistemas Distribuídos

INTEGRAÇÃO DE UMA REDE DE SENSORES SEM FIO COM A WEB UTILIZANDO UMA ARQUITETURA ORIENTADA A SERVIÇO

O que se espera para o futuro dos Web Services? As tecnologias são respectivamente JSON e REST.

Sistemas Distribuídos Aula 2

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS. Aula 1- Introdução aos Sistemas Distribuídos

Grupo I [7v] b) [0,3] Em que componente do sistema de RPC será utilizado o campo identificador de operação?

HMI: UM MIDDLEWARE PARA OBJETOS DISTRIBUÍDOS SOBRE O PROTOCOLO HTTP

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger

Sistemas Distribuídos

Programação concorrente (processos e threads)

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA

Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Características de Sistemas Distribuídos

Sistemas Distribuídos e Paralelos

Sistemas Operacionais Distribuídos e de Redes

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Requisitos de sistemas

COMUNICAÇÃO ENTRE PROCESSOS

TM X SM. Replicação de Variáveis Compartilhadas. Protocolo de Atualização Síncrono ORCA

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

Sistemas Distribuídos

GERENCIAMENTO BASEADO NA WEB. Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC.

Introdução a Web Services

ANEXO V Edital nº 03508/2008

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Arquitetura da World Wide Web. WWW: Histórico. WWW: Usos. WWW: Histórico. WWW Tecnologias Fundamentais. Comércio Eletrônico na WWW

Número: Nome: Página 1 de 7. Duração da prova: 1h30m. Grupo I [7] Considere o seguinte excerto (incompleto) de um programa cliente em SUN RPC:

Remote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Principais conceitos de CORBA

Sistemas Distribuídos

Desenvolvimento de Aplicações Distribuídas

UNIVERSIDADE. Sistemas Distribuídos

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

SPEEDMiddleware - MOM

Técnicas Avançadas de Programação

Arquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores

IBM WebSphere MQ. Introdução

Sérgio Koch Van-Dall

Sistemas Distribuídos

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

SSC0640 Sistemas Operacionais I

Programação Concorrente

Programação Paralela e Distribuída

Quando Distribuir é bom

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Aplicações com Banco de Dados e Cliente-Servidor

Programação de Sistemas em Tempo Real

Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada

Programação distribuída e paralela (C. Geyer) RPC 1

ÍNDICE. Redes de Computadores - 1º Período de Cap 12 - Fls. 1

Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki

Sistemas Distribuídos. Visão Geral Expandida

Objetos e Componentes Distribuídos: EJB

Transcrição:

Conceito Básicos de Programação com Objetos Distribuídos Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1

Autoria Autor C. Geyer Local Instituto de Informática UFRGS disciplina : Programação com Objetos Distribuídos Versão V1d.1, março 2014 Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 2

Súmul a Súmula questões e abordagens distribuição concorrência sincronização comunicação outras Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 3

Questões básicas Questões básicas distribuição: quais sãos os elementos de distribuição? Como um programa é estruturado na rede? criação: quem, onde e quando? nomeação: como identificar e encontrar os elementos distribuídos? concorrência: quais são os elementos de concorrência, principalmente local? Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 4

Questões básicas Questões básicas comunicação como os objetos distribuídos trocam informações? sincronização como as ações (threads) concorrentes se sincronizam? Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 5

Distribuição Distribuição elemento de distribuição objeto: mais comum nos ambientes de POD atuais processo exemplo: ORCA (Bal): processos compartilham objetos passivos Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 6

Distribuição Criação (instanciação) Pelo servidor Cliente remoto acessa o objeto após criação Pelo cliente Cliente solicita a criação remota Compartilhamento A cada chamada Por um único cliente Por vários (ou todos) os clientes Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 7

Distribuição Ciclo de vida Controlado pelo servidor Controlado pelo criador (remoto) Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 8

Distribuição Nomeação Objetos com nomes (strings) Nome dado pelo programa (programador) criador Programas clientes conhecem o nome Servidor de nomes Mantém registros de nomes com referências a objetos Inclusão de nome + referência Retorna referência dado um nome Classe (componente) com nome Cliente solicita um objeto informando o nome da classe Objeto pode ser novo ou já existente Cliente recebe referência ao objeto Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 9

Distribuição Nomeação Referência remota Instanciação remota de objeto retorna referência remota Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 10

Concorrência Concorrência objetos passivos processos oferecem concorrência programação OO: normal (quase) exemplo: ORCA (Bal) processos ativos objetos passivos compartilhados por processos usualmente os objetos compartilhados por processos são explicitamente indentificados Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 11

Concorrência Concorrência (cont.) programas independentes modelo cliente/servidor clientes são concorrentes clientes compartilham servidores (objetos) programação de clientes e servidores é OO normal (quase) servidores podem necessitar de sincronização explícita exemplo: Java com RMI Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 12

Concorrência (cont.) Concorrência objetos concorrentes cada objeto pode ter um (ao menos) fluxo de execução próprio objetos ativos existem objetos ativos e passivos ativos passivos com fluxos próprios sem fluxo próprio (normal) concorrência interobjetos exemplos: Java threads, C# threads Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 13

Concorrência Concorrência (cont.) objetos com concorrência interna extensão da forma acima diversos fluxos são declarados em um objeto extra-métodos exemplo: SR: um resource com processos internos Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 14

Concorrência Concorrência (cont.) chamadas concorrentes atendimento concorrente das chamadas concorrentes a um objeto servidor ou compartilhado chamadas feitas por vários clientes concorrentes pode ser combinada com programas independentes e objetos concorrentes Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 15

Concorrência Concorrência (cont.) chamadas concorrentes exige mecanismos de sincronização, normalmente de memória compartilhada semáforos, monitores,... concorrência intraobjetos exemplo: Java, CC++ Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 16

Concorrência Concorrência (cont.) concorrência intramétodo execução de um método pode ativar diversos fluxos normalmente os fluxos estão contidos no objeto modelo estruturado: parbegin/parend exemplo: CC++ Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 17

Sincronização Sincronização usualmente resolve os casos de exclusão mútua e sinalização intra-objetos monitores: exemplos: Java e C#, ambos na 1a versão semáforos variável contadora primitivas P(s) e V(s) barreiras locks Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 18

Sincronização Sincronização intra-objetos Java a partir da versão 1.5 contempla vários desses mecanismos API: sofisticada desempenhos distintos vários testes de desempenho (Web, II, ) Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 19

Sincronização Sincronização intra-objetos guardas condições de aceitação de uma chamada em caso negativo, chamada fica bloqueada até que condição seja verdadeira seções (blocos) de exclusão mútua exemplo: synchronized Java variáveis de condição (write-once) exemplo: CC++ Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 20

Sincronização Sincronização transações gerenciadas pelo programador gerenciadas pelo ambiente outros recursos além de exclusão mútua e sinalização tudo ou nada: estado pode retornar ao início da transação em caso de falha exemplo: J2EE/EJB Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 21

Comunicação Comunicação por troca de mensagem básica ponto a ponto normalmente assíncrona flexível: qualquer aplicação/problema mais eficiente mais complexa (difícil) diferente da comunicação usual em OO exemplo: Java sockets Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 22

Comunicação Comunicação por chamada de método mais simples similar à usual chamada de método em OO menos eficiente menos flexível exemplos Java RMI chamada remota em CORBA chamada remota em J2EE C# Remoting Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 23

Comunicação (mais) sofisticadas JavaSpaces JMS Espaço de objetos compartilhados Estado e comportamento J2EE Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 24

Comunicação Comunicação por protocolos Web exemplos http SOAP Java/servlet SOAP independente de linguagem, plataforma e protocolo de base (implementação) formato mensagem: XML Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 25

Sincronização Sincronização em comunicação Inter-programas Assincronismos clássicos do modelo send/receive exemplo: Java sockets inter-objetos (chamada remota de objeto) chamadas síncronas exemplo: Java RMI (RPC) chamadas assíncronas sem resposta chamadas com resposta no futuro Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 26

Outras questões importantes Questões Importantes persistência: mapeamento sobre SGBDs, APIs próprias,... replicação: para que? quando? protocolos de consistência? mapeamento em qual computador (cpu) um novo objeto será alocado? idem em caso de migração de um objeto? migração: mobilidade, agentes móveis segurança: principalmente em redes não locais desempenho gerência da concorrência gerência de objetos (servidores,...) comunicação Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 27

Questões Importantes Outras questões importantes interoperabilidade entre plataformas (hw e SO), linguagens,... heterogeneidade: acomodação herança: problema com sincronização escalonamento: aplicações de alto desempenho threads (tarefas) em servidores Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 28

Questões Importantes Outras questões importantes protocolos de comunicação independentes de hw SO linguagens adaptadas para computação móvel, ubíqua, embarcada,... dispositivos com restrições de memória, cpu, bateria,... Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 29

Resumo Sincronização Modelo de distribuição Objeto em geral Opções de criação Muitas opções Tipos de nomeação Nome e referência Sincronização local Opções clássicas (monitor, lock, semáforo, ) Comunicação Send/receive Chamada de método remoto Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 30

Exercícios Exercício a) quais das questões acima (até 3) voce acha mais importante? Justifique b) voce acha que um bom ambiente de POD ainda precisa resolver outras questões, por exemplo, devido ao surgimento de novos modelos de computação e aplicações? Quais? Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 31

Revisão Quais as questões clássicas (básicas)? Quais (ao menos 4) questões importantes? Modelo atual de concorrência? Modelo de sincronização apropriado para objetos? Modelo de comunicação apropriado para objetos? Revisão Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 32