Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAntônia Eger Castel-Branco Alterado mais de 9 anos atrás
1
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano
2
Sumário Motivação Estado-da-arte Objetivos Modelo Protótipo Resultados e Comparações Conclusão Avaliação
3
Motivação Modelo de concorrência Java limitado e pouco flexível: Threads; Modelo de monitor primitivo; RMI; Sockets difíceis de implementar.
4
Estado-da-Arte Modelo de concorrência do Java Provê utilização de objetos remotos com suporte limitado para criação dinâmica; Provê apenas uma primitiva de sincronização para programação distribuída - RMIi; Cada objeto remoto deve ser iniciado antes da comunicação (normalmente por uma execução manual) ; O programa não pode se adaptar à entrada.
5
Estado-da-Arte Modelo de concorrência da linguagem SR Provê vários mecanismos para escrever programas paralelos e distribuídos; Máquinas virtuais criadas dinamicamente; Instâncias de recursos são dinamicamente criadas; Permite caminhos dinâmicos de comunicação; Chamadas síncronas e assíncronas de funções.
6
Objetivos Criação de um superset Java – JR Baseado na linguagem SR. Modelo baseado em objetos. Módulos dinâmicos (resources), c/ acesso via ponteiros (capabilities). Acesso compartilhado às variáveis e operações. Falta herança e métodos virtuais. Adapata as seguintes características: Criação remota de máquinas virtuais. Criação dinâmica de objetos remotos. Invocação de métodos remotos. Criação dinâmica de processos. Suporte para rendezvous. Mensagens assíncronas
7
Modelo Criação remota de Máquinas Virtuais: Elimina a necessidade de configuração externa. Vm = new vm() [on | on ] Vm é uma referência a vm remota. Criação de objetos remotos: Utilização da expressão new. Sua referência provê a interface da qual esse objeto será manipulado. remote = new remote ( ) [on vmRef]
8
Modelo Operações Declarados na classe do objeto op ( ) [exceptions] Dois tipo de operações; ProcOp: Para cada invocação é executado o método associado. InOp: Cada invocação é enviada para uma lista e executadas uma a uma. Pode ser passada como argumento, retornada como resultado e associada a variáveis. Abstratas e sobrecarga.
9
Modelo Mensagens assíncronas: Via send. ProcOp cria nova Thread. InOp Cria mensagem e envia para lista de invocações. Herança Pode modificar a implementação da operação herdada, tanto para ProcOp como para InOp. Deve ser explícita caso modifique ProcOp em InOp e vice-versa.
10
Protótipo class A { public op void foo(int); public void foo(int i) {…} public void bar() throws java.rmi.RemoteException { foo(3); } class A { … // implementation of ProcOp foo public void bar() throws java.rmi.RemoteException { JRget_op_foo_intTovoid().call(3); } (a) Código JR (b) Código Java gerado.
11
Resultados e Comparações Tempo de chamada de um procedimento JR vazio e um Método Java vazio local Object Size11k10k100k JR (µs)0,36820,36850,36860,3694 Java (µs)0,07410,0746 0,0758 JR time/ Java time (taxa)4,974,904,944,87 Tempo de chamada de um procedimento JR vazio e um Método Java RMI vazio remoto Object Size11k10k100k JR (ms)1,732,286,6448,43 Java (ms)1,602,196,2147,63 JR time/ Java time (taxa)1,081,041,071,02
12
Trabalhos relacionados Java Message Service (JMS) Pouco flexível; necessário criar uma conexão com o destino; CORBA Difícil distribuição das tarefas; Java Extensions Necessitam inicio manual dos programas remotos; Linguagens Concorrentes Orientadas a Objetos Maioria não possibilita a criação de métodos remotos de forma “simples”.
13
Conclusão JR provê uma forma mais flexível para programação distribuída sem um grande custo; Sintaxe ainda um pouco complicada, mas muito mais simples que fazer toda a programação a mão. Como estende Java, é multiplataforma;
14
Avaliação Motivação e estado-da-arte: 5 Objetivos e Modelo: 5 Protótipo, Resultados e Comparação: 3 Redação e Formatação: 4
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.