Laurent Baduel Françoise Baude Denis Caromel 1 Efficient, Flexible, and Typed Group Comunications in Java Por: Adriano Andrade53811 Susana Rijo 53868 José

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

Programação em Java Prof. Maurício Braga
Projeto – Parte II - Exemplos de Diagrama de Colaboração
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Material IV-Bimestre Tratamento de.
1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000.
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes.
Interação entre objetos
RMI-IIOP.
SISTEMAS DE EQUAÇÕES.
Diagramas de Seqüência
Modelos de Comunicação em Sistemas Distribuídos
Orientação a Objetos: Encapsulamento e Classificação
Java: Pacotes e Modificadores de Visibilidade
Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação
Java: Pacotes e Modificadores de Visibilidade
Orientação a Objetos: Encapsulamento e Classificação
Introdução à Programação
Mutação Orientada a Objeto para Assegurar a Qualidade de Testes Baseado no Artigo: Object-Oriented Mutation to Asses the Quality of Tests Anna Derezinska.
Comunicação Distribuída
Chapter 4: Threads.
DIAGRAMA DE ATIVIDADES
Interação Cliente Servidor
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Estruturas de Controle
Auditoria de Segurança da Informação
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Star Schema Benchmark SSB
Aula 8 Orientação à Objetos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
Capítulo 9 Herança 1.
Documentação da Neptus Framework
1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e.
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Diagramas de Seqüência
Desenvolvimento de Projetos e Aplicações Web
Utilitários de Redes Prof. Andréa Chicri Torga Adaptações
DFD – Data Flow Diagram Diagrama de Fluxo de Dados
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Programação Orientada a Objetos com Java
Concorrência em Java Threads em Java.
Cinemática Plana de um Corpo Rígido Cap. 16
Francisco A. Barbosa Mestrado Integrado em Engenharia Electrotécnica e de Computadores 4 de Março de 2009 Sob a orientação de: Prof.ª Maria Teresa Andrade.
SISTEMAS OPERACIONAIS
Salas de Matemática.
Programação Orientada à Objetos
Cinemática de uma Partícula Cap. 12
Concorrência e Java RMI
O Problema Do Acordo Distribuído (Acordo Bizantino)
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Capítulo 5 Garbage Collector.
Comunicação entre processos: Mensagens Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.
UML - Unified Modeling Language
GESTÃO DE FICHEIROS ÍNDICE Pág. I.Instalação do Software 2 II.Selecção de Empresas / Manutenção de Empresas 5 III.Criação da Base de Dados (Clientes,
Monografia Eriko Werbet Unifor-CNPq
Java RMI João Gabriel (jggxm).
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Troca de Mensagens Programação concorrente
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.
FORMI Integrating Adaptive Fragments Objects into Java RMI Kapitza, Rüdiger; Domaschka, Jörg; Hauck, Franz J.; Reiser, Hans P. ;Schmidt, Holger. IEEE Distributed.
Multiparadigma das Comunicações em Java para Grid Computing Fernanda R. Ramos Luiz Felipe Marco Eiterer Profº Alcides Calsavara, Ph.D.
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
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.
Sistemas Distribuídos Prof. Marcus Rodrigues
Transcrição da apresentação:

Laurent Baduel Françoise Baude Denis Caromel 1 Efficient, Flexible, and Typed Group Comunications in Java Por: Adriano Andrade53811 Susana Rijo José Faustino Santos

Motivação Invocação assíncrona de métodos sobre agrupamentos de objectos distribuídos… 2

Desafios Garantir transparência na invocação remota Elevados requisitos de performance Independência da plataforma Suportar invocação assíncrona de métodos remotos Suportar paralelismo 3

Trabalho Relacionado Group.setInvoke(stub, "double get()", Group.GROUP); 1 O modo de comunicação entre os vários membros do grupo tem de ser definido para cada método Avanço: Na solução proposta no artigo todos os métodos da classe dos membros do grupo podem ser invocados de forma transparente sobre o grupo de objectos. 4 1 J. Maassen, T. Kielmann, and H. Bal. Generalizing Java RMI to support ecient group Communication. In ACM Java Grande Conference, 2000.

ProActive - o que é? Uma biblioteca para desenvolvimento de aplicações distribuídas Suporta invocações assíncronas Permite agrupamento de objectos em máquinas diferentes Independente da plataforma (Java) 5

ProActive - Características I Tipo de Objectos – Objectos Activos – podem ser referenciados fora da JVM onde se executam. – Objectos Passivos – não podem ser referenciados fora da JVM onde se executam. Não há partilha de Objectos Passivos Apenas os Objectos Activos são visíveis do exterior Todos os objectos podem manter referências para objectos activos. 6

ProActive - Características II Parâmetros de Invocação – Passagem por Valor (deep copy) – Objectos passivos – Passagem por Referência – Objectos Activos Invocação Assíncrona Funciona sobre o RMI do Java 7

Objectos Activos - Características Unidade Básica de Construção de Aplicações distribuídas Possuem uma thread própria. São manipulados como objectos comuns. Dentro de um objecto activo não há paralelismo. 8

Objecto Activo - Constituição 2 classes – Body invisível gestão dos pedidos (requests) que chegam ao objecto activo sendo armazenados numa fila de prioridade. configurável – Objecto Objecto padrão do Java 9

Objectos Activos – Invocação 10 Grafo de Objectos gerado na invocação Subclasse de B Transforma a invocação do método num request object. Independente de B. Cria o objecto futuro e retorna-o ao stub. Forward dos request objects para o body. Armazena os Pedidos numa fila de Prioridade. Processa os Pedidos

Objectos Activos – Future Objects Resulta de uma invocação remota Gerado pelo Proxy A thread que invoca o método não fica bloqueada à espera do resultado – invocação assíncrona O objecto futuro representa o verdadeiro objecto retornado pelo método de forma transparente. 11

Objectos Activos – Future Objects Exemplo Um pedaço qualquer de código num instância da classe A vai precisar de invocar o método foo() sobre uma instância b da classe B (para a qual detém uma referência), este método retorna uma instância v da classe V, sobre a qual o nosso pedaço de código quer executar o método bar(). 12

Objectos Activos - Restrições Classes Final não podem dar origem a um objecto activo. Classes não públicas não podem dar origem a um objecto activo. Métodos Final não podem ser usados. Não se pode invocar um método não público sobre um objecto activo. 13

Typed Group Communication O mecanismo apresentado no artigo chama-se typed group communication, typed porque apenas os métodos definidos na classe correspondente aos membros do grupo podem ser invocados. 14

Criação de um grupo Criação de um grupo vazio – Especificar classe base do grupo – Adicionar elementos ao grupo posteriormente Criação de um grupo com membros – Especificar as listas de parâmetros correspondentes aos construtores dos membros e os nós onde os membros vão ser criados. Não são permitidos grupos polimórficos! 15

Representação de Grupos Duas representações complementares – Representação com propósitos funcionais – Representação para efeitos de gestão de grupos Deve ser possível obter uma representação a partir da outra Há que manter a coerência entre as duas representações! 16

Invocação de métodos sobre Grupos I A invocação é propagada assincronamente a todos os membros do grupo, usando multithreading A invocação de um método sobre um grupo é não bloqueante Os parâmetros a passar ao método que se pretende invocar são enviados a todos os elementos do grupo. Disponibiliza de imediato um conjunto de objectos futuros (resultados) 17

Invocação de métodos sobre Grupos II Quando é invocado um método sobre um grupo, o método vai ser invocado sobre todos os elementos, assim sendo, dado um qualquer elemento do grupo temos duas hipóteses: – objecto JAVA standard – invocação normal - o objecto tem de se encontrar na JVM onde o método é invocado. – objecto activo –invocação ProActive - o objecto pode existir noutra JVM. 18

Invocação de métodos sobre Grupos III 19

Invocação de métodos sobre Grupos IV Group Stub: – Objecto de uma subclasse comum ao grupo de objectos – Representa o grupo de objectos Group Proxy: – Constituído por um conjunto de proxies. – Cada proxy envia o request object ao respectivo objecto activo. 20

Result Groups Tem um objecto futuro por cada resultado elementar. É dinamicamente actualizado à medida que os resultados chegam. Pode ser utilizado mesmo que nem todos os resultados estejam disponíveis (wait by necessity). O ProActive disponibiliza um conjunto de mecanismos para sincronização de grupos 21

Broadcasting vs Scattering Default – Os argumentos são enviados por broadcasting a todos os elementos do grupo. Pode ser preciso transmitir diferentes parâmetros a diferentes membros do grupo – Scattering. – É passado como argumento um grupo de objectos. – Para conseguir espalhar os argumentos há que invocar o método estático setScatterGroup (para voltar, unsetScatterGroup). 22

Performance I 23 Tempo de criação de objectos activos considerando: – diferentes números de computadores na rede local. – Existência ou não de grupo. Invocação assíncrona não tem tempos de espera associados. + computadores -> - objectos/computador -> - tempo

Performance II 24 Tempo de invocação de métodos sobre objectos: – Com grupo; – Sem grupo. Com grupo demora menos tempo porque é lançada uma thread para tratar cada invocação.

Conclusão I Comunicação em grupo – Crucial para a alta-performance – Grid Computing – Coordenação do grupo conseguida à custa de configurações (semântica de espera por todas as execuções dos elementos do grupo vs. abordagem default) 25

Conclusão II Invocações Assíncronas – Evitam esperas, aumentando a eficiencia – Ideal em ambientes loosely coupled – Eliminam alguns deadlocks 26

Fim Questões? 27