FORMI Integrating Adaptive Fragments Objects into Java RMI Kapitza, Rüdiger; Domaschka, Jörg; Hauck, Franz J.; Reiser, Hans P. ;Schmidt, Holger. IEEE Distributed Systems, Vol. 07, No 10. October, CMP 167 Programação com Objetos Distribuídos B Prof: Claudio Fernando Resin Geyer Aluno: Emerson André Fedechen
Súmula Tema Motivação e Estado da Arte Problemas Modelo Estrutura dos Fragmentos Exemplos de Aplicações Trabalhos Futuros Conclusão Notas
Tema A criação de uma extensão à Middlewares por meio de um novo modelo de objeto fragmentado mais flexível e adaptável ao contexto original. Estudo e implementação sob Java RMI.
Motivação e Estado da Arte Aplicações com Objetos Distribuídos – Middlewares (CORBA,.NET Remoting, Java RMI) Plataformas com mecanismos simples para invocação de objetos remotos. TF, Alta Disponibilidade, Adaptabilidade. Requerem extensões para modelo de interação básica de Objetos Distribuídos
Modelo proposto por Marc Shapiro pode prover mais flexibilidade requisitada É mais genérica do que as abordagens cliente/servidora Um Objeto Fragmentado é realmente distribuído
Problemas Criar entidades com uma únida identidade Fragmentos poderão ser distribuídos em diferentes nós (pelo desenvolvedor) Transparência sem distinção entre acesso a Objeto local, local stub ou fragmento local. Distribuição de estados e funcionalidades
Modelo Funcionalidade individuais dos fragmentos Interação entre fragmentos (comunicação e acesso por instâncias) Interfaces comuns entre fragmentos Fragmentos temporários e inteligentes (caching, balanço de carga, tolerantes a falhas)
Objeto fragmentado em 3 nós
Necessidade do conhecimento global pelo desenvolvedor. Adaptabilidade dinâmica ao contexto local. Dependência da infra-estrutura (responsabilidade do desenvolvedor) Middleware deverá ser capaz de prover mecanismos necessários (RMI). Suporte às aplicações existentes
Estrutura dos Fragmentos Composto por múltiplos componentes: Interface (referência aos métodos) View (dados internos, coordena referências entre interfaces, implementa fragmentos, QoS) View Manager (reuso de implementações) Implementation (interface remota) Implementation Factory (implementação da Instância Inicial e endereços)
Arquitetura interna de um fragmento local
Integração: modificação de camadas Elimina: Stub, skeleton e remote reference Erda: RemoteStub Criação de interface dinâmica para interface de fragmento similar ao rmic da sun (por reflexão não foi adotado) Todos os fragmentos parecem RMI stubs Suporte a arquiteturas cliente-servidor Garbage Collector mais “forte” (shutdown hook)
Exemplos de Aplicações Dynamic Smart Proxy: Server com dicionário (métodos get(), set()). Clientes com controle de frequencia do servidor. Proxies locais com respostas bem-sucedidas armazenadas
Quantidade de chamadas de uma implementação RMI no serviço de dicionário comparado a chamadas de fragmentos locais
Trabalhos Futuros Objetos tolerantes à Falhas Replicação ativa Comunicação em grupo Escalonamento determinístico Transferência de estado Detecção de Falhas Compilador próprio
Conclusão Trata-se de uma estensão de RMI importante e já utilizada, porém muito do proposto ainda não foi implementado ou não oferece suporte adequado.
Notas Motivação e estado da arte 5 Problemas a resolver e modelo 5 Protótipo, resultados e comparação a trabalhos relacionados 4 Redação e formatação 5