A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Laurent Baduel Françoise Baude Denis Caromel 1 Efficient, Flexible, and Typed Group Comunications in Java Por: Adriano Andrade53811 Susana Rijo 53868 José"— Transcrição da apresentação:

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

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

3 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

4 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.

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

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

20 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

21 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

22 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

23 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

24 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.

25 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

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

27 Fim Questões? 27


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

Apresentações semelhantes


Anúncios Google