Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação CAPES.

Slides:



Advertisements
Apresentações semelhantes
SISTEMAS DISTRIBUÍDOS BASEADOS EM COORDENAÇÃO
Advertisements

Sistemas Distribuídos
Sistemas Distribuídos Baseados em Objetos
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Sistemas distribuídos
Banco de Dados Prof. Antonio.
Barramentos Introdução.
SISTEMAS DE INFORMAÇÃO
Sistemas Distribuídos
TECNOLOGIAS PARA SISTEMAS DISTRIBUÍDOS Especialização em Tecnologias para Sistemas de Informação PUCPR 2001.
SERIALIZER Equipe: Aderly Stresser Borges Carlos Magno Nunes.
Comunicação Distribuída
Sistemas Distribuídos
Sistemas Distribuídos
Fundamentals of Database Processing
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.
Objetos Distribuídos Padrão CORBA
Sistemas Distribuídos
Middleware e Sistemas Distribuídos
Aplicativos Web Com Orientação a Objetos
Monitores.
Unidade 1-1 Processos e Threads
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Computação e Estatística Servidor de Documentos XML Usando.
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Web Services Uninorte Semana de Tecnologia da Informação
Chamada Remota de Procedimentos
Sistemas Distribuídos
Java Avançado Luiz Carlos d´Oleron SJCP Java Sockets.
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Carolina Gelenske Carlos Eduardo Laís Xavier
Concorrência e Java RMI
Conceitos de J2EE para a WEB
Exercícios SGBD - CESPE
Controle de concorrência
Sistemas Distribuídos
RMI x C# Remote Emilena Specht – 1113/01/9 2004/01
SISTEMAS OPERACIONAIS I
SGBD Distribuído Lílian Simão Oliveira.
Java RMI João Gabriel (jggxm).
Processos.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Tipos de Sistemas Distribuídos
Troca de Mensagens Programação concorrente
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Definição um sistema de BD distribuído consistem em uma rede de várias ocorrências de bases de dados interligadas. característica principal para o usuário,
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Linguagem de Programação IV Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Remote Procedure Call (RPC) e Rendezvous
O problema da desconexão em BD móveis Equipe: Antonio Jaime M. de Almeida Bruno de Brito Leite.
A High Performance Java Middleware with a Real Application HUERT, Fabrice; CAROMEL, Denis; Bal, Henri E. Supercomputing 2004 Trabalho desenvolvido por:
Tecnologias de Localização de Serviços Exame de Qualificação IME/USP Fev/2003.
Jini Network Technology MAC Seminário Nov/2001.
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.br MultiMachine Middleware M M M M M M M M M M M Tarcisio Coutinho
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr
Projeto e Implementação de Sistemas de Arquivos
Sistemas Operacionais Distribuídos
Projeto de Banco de Dados
Arquitetura de computadores
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
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.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Protocolos de Comunicação e Passagem de Mensagens
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
JavaSpaces TM Aluno: Marcio Fuckner Professor: Alcides Calsavara.
Prof.: Jean Carlo Mendes
Transcrição da apresentação:

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação CAPES

Implementação de um espaço de tuplas do tipo JavaSpaces Orlando de Andrade Figueiredo Orientação: Prof. Dr. Dilvan de Abreu Moreira São Carlos, 6 de dezembro de 2002

Tópicos ObjetivosObjetivos JavaSpaces enquanto espaço de tuplasJavaSpaces enquanto espaço de tuplas JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini JuspSpacesJuspSpaces ResultadosResultados ConclusõesConclusões

Aplicações Distribuídas Apoio para o desenvolvimento de aplicações distribuídasApoio para o desenvolvimento de aplicações distribuídas –Modelos de programação com alto nível de abstração –Ferramentas (Middleware)

Espaços de tuplas Função: coordenação, sincronização e comunicação entre processos espalhados sobre sistemas distribuídosFunção: coordenação, sincronização e comunicação entre processos espalhados sobre sistemas distribuídos

Espaços de tuplas Vantagens:Vantagens: –Simplicidade Poucos conceitos e operaçõesPoucos conceitos e operações –Baixo acoplamento –Persistência

Espaços de tuplas em Java JavaSpacesJavaSpaces –Sun –Serviço Jini –Implementações: Outrigger (Sun)Outrigger (Sun) GigaSpacesGigaSpaces AutevoAutevo RDBSpacesRDBSpaces T SpacesT Spaces –IBM etc.etc.

Problemas Implementações de JavaSpaces requerem o setup completo de JiniImplementações de JavaSpaces requerem o setup completo de Jini Licenças proprietáriasLicenças proprietárias –JavaSpaces: SCSL –IBM –Outrigger requer tecnologia proprietária para persistência

Objetivos Desenvolver uma nova implementação de JavaSpacesDesenvolver uma nova implementação de JavaSpaces –Com o setup simplificado JiniJini RMIRMI –Construída com tecnologias abertas PersistênciaPersistência –Protótipo distribuído segundo a GNU-GPL

Tópicos ObjetivosObjetivos JavaSpaces enquanto espaço de tuplasJavaSpaces enquanto espaço de tuplas JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini JuspSpacesJuspSpaces ResultadosResultados ConclusõesConclusões

Tuplas Em JavaSpaces,Em JavaSpaces, –Tuplas (entries) são objetos –Campos são objetos Tarefa

Tarefa String Integer SimpleEntry descriptor seed Tarefa Representação simplificada

Espaço de tuplas Modelo de memóriaModelo de memória OperaçõesOperações –Escrita –Leitura Unidade básica é a tuplaUnidade básica é a tupla

Tarefa Tarefa Tarefa Resultado 37

Operação de escrita Write(entry, ###, ###)Write(entry, ###, ###)

Operações de leitura Take(gabarito, ###, ###)Take(gabarito, ###, ###) GabaritoGabarito –Tupla usada na operação de leitura –Pode ter campos coringas (null) Regras para compatibilidade entre gabarito e tuplaRegras para compatibilidade entre gabarito e tupla –Classe da tupla = classe do gabarito –Campo não coringa do gabarito = campo da tupla –Campo coringa do gabarito = qualquer valor na tupla

Tarefa Tarefa Tarefa Resultado 37 Resultado null

Operações de leitura Na operação take,Na operação take, –A tupla é removida –Se não houver tupla compatível, o processo bloqueia Memória associativaMemória associativa –Recuperação de informação com base em conteúdo –Vantagem: dispensa endereçamento global, algo difícil em sistemas distribuídos

Aplicação Programação paralelaProgramação paralela Modelo mestre-operáriosModelo mestre-operários MestreMestre –Despacha tarefas –Recolhe resultados OperárioOperário –Procura tarefas –Espera, se não houver –Encontrando, resolve e retorna o resultado

Tarefa Tarefa Resultado 37 Resultado null Tarefa null

Aplicação O mestre desconhece quem e quantos são os operáriosO mestre desconhece quem e quantos são os operários Operários podem ser adicionados ou removidos à vontadeOperários podem ser adicionados ou removidos à vontade

Tópicos ObjetivosObjetivos JavaSpaces enquanto espaço de tuplasJavaSpaces enquanto espaço de tuplas JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini JuspSpacesJuspSpaces ResultadosResultados ConclusõesConclusões

Jini Na mídia: Sistemas distribuídos plug-and-playNa mídia: Sistemas distribuídos plug-and-play Mais amplo: conjunto de modelos e protocolosMais amplo: conjunto de modelos e protocolos

Clientes e Serviços Jini é cliente-servidorJini é cliente-servidor –A idéia de serviço é chave em Jini Jini é chamada remota a procedimentoJini é chamada remota a procedimento –Proxy representa o serviço junto ao cliente –Não faz menção ao protocolo que deve ser usado entre proxy e serviço –O proxy deve ser obtido por download, sempre

Serviço de Lookup Forma padrão de se obter proxiesForma padrão de se obter proxies –Outros meios podem ser usados Para encontrar o serviço de lookupPara encontrar o serviço de lookup –Protocolo de descoberta –Na prática, um broadcasting –Desvantagem: restringe o tipo de rede JuspSpaceJuspSpace –Dispensa o servidor de lookup

Leasing O cliente especifica por quanto tempo quer o serviçoO cliente especifica por quanto tempo quer o serviço O servidor retorna um objeto Lease com o qual o cliente pode consultar, renovar ou cancelar o leasingO servidor retorna um objeto Lease com o qual o cliente pode consultar, renovar ou cancelar o leasing ExemploExemplo –Write(entry, ###, 1000)

Transações Mecanismo de confiabilidade muito adotado em sistemas distribuídosMecanismo de confiabilidade muito adotado em sistemas distribuídos Protocolo de commit em duas fases distribuídoProtocolo de commit em duas fases distribuído A presença de transações modifica a semântica da operaçõesA presença de transações modifica a semântica da operações –Exemplo: A operação take pode retirar Tuplas escritas na mesma transaçãoTuplas escritas na mesma transação Tuplas escritas sem transaçãoTuplas escritas sem transação Tuplas não removidas por outras transaçõesTuplas não removidas por outras transações

Tópicos ObjetivosObjetivos JavaSpaces enquanto espaço de tuplasJavaSpaces enquanto espaço de tuplas JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini JuspSpacesJuspSpaces –Bancos de dados relacionais –Hashing –Sockets ResultadosResultados ConclusõesConclusões

Bancos de dados relacionais Persistência de informaçõesPersistência de informações –Tuplas –Transações Recuperação de informaçãoRecuperação de informação Controle de concorrênciaControle de concorrência

Mapeamento Entries- Tabelas Aspectos relevantesAspectos relevantes –Hierarquia –Metadados LeasingLeasing TransaçãoTransação –Gabaritos

Hashing dos campos Calcular uma chave para cada campo da tupla no clienteCalcular uma chave para cada campo da tupla no cliente Usar essa chave no protocolo de comunicaçãoUsar essa chave no protocolo de comunicação AlgoritmoAlgoritmo –Serialização –MD5

Comunicação cliente- servidor A imensa maioria dos serviços Jini usa o RMI para implementar o modelo de proxiesA imensa maioria dos serviços Jini usa o RMI para implementar o modelo de proxies JuspSpaces usa socketsJuspSpaces usa sockets ArquiteturaArquitetura –Proxy Possui endereço do serviço (máquina e porta)Possui endereço do serviço (máquina e porta) –Handler Thread que atende às requisições no servidorThread que atende às requisições no servidor

Tópicos ObjetivosObjetivos JavaSpaces enquanto espaço de tuplasJavaSpaces enquanto espaço de tuplas JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini JuspSpacesJuspSpaces ResultadosResultados ConclusõesConclusões

Teste de Desempenho Repetir n vezes o procedimentoRepetir n vezes o procedimento –Escrever uma entry simples (Write) –Ler a entry (read) –Remover a entry (take)

Aplicação XML ServerXML Server –Usa JavaSpaces como mecanismo de persistência –Originalmente baseado no Outrigger –Não utiliza transações –A migração foi fácil

Tópicos ObjetivosObjetivos JavaSpaces enquanto espaço de tuplasJavaSpaces enquanto espaço de tuplas JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini JuspSpacesJuspSpaces ResultadosResultados ConclusõesConclusões

Contribuições Primeira implementação JavaSpaces que dispensa o servidor de LookupPrimeira implementação JavaSpaces que dispensa o servidor de Lookup Estudo de caso para a implementação de JavaSpaces sobre bases de dados relacionaisEstudo de caso para a implementação de JavaSpaces sobre bases de dados relacionais Protótipo sob a licença GNU-GPLProtótipo sob a licença GNU-GPL

Trabalhos futuros Implementação do protocolo de acesso ao proxyImplementação do protocolo de acesso ao proxy Revisão formal do controle de concorrênciaRevisão formal do controle de concorrência Emprego de JuspSpaces em outras aplicaçõesEmprego de JuspSpaces em outras aplicações

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação CAPES