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

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

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

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

Universidade de São PauloUniversidade de São Paulo

Instituto de Ciências Instituto de Ciências Matemáticas e de Matemáticas e de ComputaçãoComputação

CAPESCAPES

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

Implementação de um Implementação de um espaço de tuplas do tipo espaço de tuplas do tipo JavaSpacesJavaSpaces

Orlando de Andrade FigueiredoOrlando de Andrade Figueiredo

Orientação: Orientação: Prof. Dr. Dilvan de Abreu MoreiraProf. Dr. Dilvan de Abreu Moreira

São Carlos, 6 de dezembro de 2002São Carlos, 6 de dezembro de 2002

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

TópicosTópicos

• ObjetivosObjetivos• JavaSpaces enquanto espaço de JavaSpaces enquanto espaço de

tuplastuplas• JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini• JuspSpacesJuspSpaces• ResultadosResultados• ConclusõesConclusões

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

Aplicações DistribuídasAplicações Distribuídas

• Apoio para o desenvolvimento de Apoio para o desenvolvimento de aplicações distribuídasaplicações distribuídas– Modelos de programação com alto nível de Modelos de programação com alto nível de

abstraçãoabstração– Ferramentas (Ferramentas (Middleware)Middleware)

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

Espaços de tuplasEspaços de tuplas

• Função: coordenação, Função: coordenação, sincronização e comunicação entre sincronização e comunicação entre processos espalhados sobre processos espalhados sobre sistemas distribuídossistemas distribuídos

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

Espaços de tuplasEspaços de tuplas

• Vantagens:Vantagens:– SimplicidadeSimplicidade

• Poucos conceitos e operaçõesPoucos conceitos e operações

– Baixo acoplamentoBaixo acoplamento– PersistênciaPersistência

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

Espaços de tuplas em JavaEspaços de tuplas em Java

• JavaSpacesJavaSpaces– SunSun– Serviço JiniServiço Jini– Implementações:Implementações:

• Outrigger (Sun)Outrigger (Sun)• GigaSpacesGigaSpaces• AutevoAutevo• RDBSpacesRDBSpaces

• TT SpacesSpaces– IBMIBM

• etc.etc.

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

ProblemasProblemas

• Implementações de JavaSpaces Implementações de JavaSpaces requerem o requerem o setupsetup completo de Jini completo de Jini

• Licenças proprietáriasLicenças proprietárias– JavaSpaces: SCSLJavaSpaces: SCSL– IBMIBM– OutriggerOutrigger requer tecnologia requer tecnologia

proprietária para persistênciaproprietária para persistência

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

ObjetivosObjetivos

• Desenvolver uma nova implementação Desenvolver uma nova implementação de JavaSpacesde JavaSpaces– Com o Com o setupsetup simplificado simplificado

• JiniJini• RMIRMI

– ConstruídaConstruída com com tecnologias abertas tecnologias abertas• PersistênciaPersistência

– ProtótipoProtótipo d distribuídistribuídoo segundo a GNU segundo a GNU--GPLGPL

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

TópicosTópicos

• ObjetivosObjetivos• JavaSpaces enquanto espaço de JavaSpaces enquanto espaço de

tuplastuplas• JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini• JuspSpacesJuspSpaces• ResultadosResultados• ConclusõesConclusões

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

TuplasTuplas

• Em JavaSpaces,Em JavaSpaces,– Tuplas (Tuplas (entriesentries) são objetos) são objetos– Campos são objetosCampos são objetos

“Tarefa”4572307

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

Espaço de tuplasEspaço de tuplas

• Modelo de memóriaModelo de memória• OperaçõesOperações

– EscritaEscrita– LeituraLeitura

• Unidade básica é a tuplaUnidade básica é a tupla

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

“Tarefa”46783

“Tarefa”97577

“Tarefa”13332453

“Resultado”37

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

Operação de escritaOperação de escrita

• Write(entry, ###, ###)Write(entry, ###, ###)

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

Operações de leituraOperações de leitura

• Take(gabarito, ### , ###)Take(gabarito, ### , ###)• GabaritoGabarito

– Tupla usada na operação de leituraTupla usada na operação de leitura– Pode ter campos “coringas” (Pode ter campos “coringas” (nullnull))

• Regras para compatibilidade entre gabarito Regras para compatibilidade entre gabarito e tuplae tupla– Classe da tupla = classe do gabaritoClasse da tupla = classe do gabarito– Campo “não coringa” do gabarito = campo da Campo “não coringa” do gabarito = campo da

tuplatupla– Campo “coringa” do gabarito = qualquer valor Campo “coringa” do gabarito = qualquer valor

na tuplana tupla

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

“Tarefa”46783

“Tarefa”97577

“Tarefa”13332453

“Resultado”37

“Resultado”null

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

Operações de leituraOperações de leitura

• Na operação take, Na operação take, – AA tupla é removida tupla é removida– Se não houver tupla compatível, o processo Se não houver tupla compatível, o processo

bloqueiabloqueia

• Memória associativaMemória associativa– Recuperação de informação com base em Recuperação de informação com base em

conteúdoconteúdo– Vantagem: dispensa endereçamento global, Vantagem: dispensa endereçamento global,

algo difícil em sistemas distribuídosalgo difícil em sistemas distribuídos

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

AplicaçãoAplicação

• Programação pProgramação paralelaralelaa• Modelo mestre-operáriosModelo mestre-operários• MestreMestre

– Despacha tarefasDespacha tarefas– Recolhe resultadosRecolhe resultados

• OperárioOperário– Procura tarefasProcura tarefas– Espera, se não houverEspera, se não houver– Encontrando, resolve e retorna o resultadoEncontrando, resolve e retorna o resultado

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

AplicaçãoAplicação

• O mestre desconhece quem e O mestre desconhece quem e quantos são os operáriosquantos são os operários

• Operários podem ser adicionados Operários podem ser adicionados ou removidos à vontadeou removidos à vontade

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

TópicosTópicos

• ObjetivosObjetivos• JavaSpaces enquanto espaço de JavaSpaces enquanto espaço de

tuplastuplas• JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini• JuspSpacesJuspSpaces• ResultadosResultados• ConclusõesConclusões

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

JiniJini

• Na mídia: Sistemas distribuídos Na mídia: Sistemas distribuídos “plug-and-play”“plug-and-play”

• Mais amplo: conjunto de modelos e Mais amplo: conjunto de modelos e protocolosprotocolos

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

Clientes e ServiçosClientes e Serviços

• Jini é cliente-servidorJini é cliente-servidor– A idéia de serviço é chave em JiniA idéia de serviço é chave em Jini

• Jini é chamada remota a procedimentoJini é chamada remota a procedimento– ProxyProxy representa o serviço junto ao cliente representa o serviço junto ao cliente– Não faz menção ao protocolo que deve ser Não faz menção ao protocolo que deve ser

usado entre usado entre proxyproxy e serviço e serviço– O O proxy proxy deve ser obtido por deve ser obtido por downloaddownload, ,

sempresempre

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

Serviço de Serviço de LookupLookup

• Forma padrão de se obter Forma padrão de se obter proxiesproxies– Outros meios podem ser usadosOutros meios podem ser usados

• Para encontrar o serviço de Para encontrar o serviço de lookuplookup – Protocolo de descobertaProtocolo de descoberta– Na prática, um Na prática, um broadcastingbroadcasting– Desvantagem: restringe o tipo de redeDesvantagem: restringe o tipo de rede

• JuspSpaceJuspSpace– Dispensa o servidor de Dispensa o servidor de lookuplookup

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

LeasingLeasing

• O cliente especifica por quanto O cliente especifica por quanto tempo quer o serviçotempo quer o serviço

• O servidor retorna um objeto O servidor retorna um objeto LeaseLease com o qual o cliente pode com o qual o cliente pode consultar, renovar ou cancelar o consultar, renovar ou cancelar o leasingleasing

• ExemploExemplo– Write(entry, ###, 1000)Write(entry, ###, 1000)

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

TransaçõesTransações

• Mecanismo de confiabilidade muito Mecanismo de confiabilidade muito adotado em sistemas distribuídosadotado em sistemas distribuídos

• Protocolo de Protocolo de commitcommit em duas fases em duas fases distribuídodistribuído

• A presença de transações modifica a A presença de transações modifica a semântica da operaçõessemântica da operações– Exemplo: A operação take pode retirarExemplo: A operação take pode retirar

• Tuplas escritas na mesma transaçãoTuplas escritas na mesma transação• Tuplas escritas Tuplas escritas ssem transaçãoem transação• Tuplas não removidas por outras transaçõesTuplas não removidas por outras transações

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

TópicosTó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 relacionaisBancos de dados relacionais– HashingHashing– SocketsSockets

• ResultadosResultados• ConclusõesConclusões

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

Bancos de dados Bancos de dados relacionaisrelacionais

• Persistência de Persistência de informaçõesinformações– TTuplasuplas– TTransaçõesransações

• RRecuperação de ecuperação de informaçãoinformação• Controle de concorrênciaControle de concorrência

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

Mapeamento Mapeamento EntriesEntries--TabelasTabelas

• Aspectos relevantesAspectos relevantes– HierarquiaHierarquia– MetadadosMetadados

• LeasingLeasing• TransaçãoTransação

– GabaritosGabaritos

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

i d t i m e l e a s e w t x n t t x n o n g o f i e l d o n g o d a t a b o n g o f i e l d b o n g o d a t a

i d t i m e e x p i r a t i o n t x n o n g o f i e l d b o n g o f i e l do b j 2o b j 1n u m b e rt y p e

r i d r t x n

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

HashingHashing dos campos dos campos

• Calcular uma chave para cada Calcular uma chave para cada campo da tupla no clientecampo da tupla no cliente

• Usar essa chave no protocolo de Usar essa chave no protocolo de comunicaçãocomunicação

• AlgoritmoAlgoritmo– SerializaçãoSerialização– MD5MD5

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

Comunicação cliente-Comunicação cliente-servidorservidor

• A imensa maioria dos serviços Jini usa o A imensa maioria dos serviços Jini usa o RMI para implementar o modelo de RMI para implementar o modelo de proxiesproxies

• JuspSpaces usa socketsJuspSpaces usa sockets• ArquiteturaArquitetura

– ProxyProxy• Possui endereço do serviço (máquina e porta)Possui endereço do serviço (máquina e porta)

– HandlerHandler• ThreadThread que atende que atende ààs requisições no servidors requisições no servidor

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

TópicosTópicos

• ObjetivosObjetivos• JavaSpaces enquanto espaço de JavaSpaces enquanto espaço de

tuplastuplas• JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini• JuspSpacesJuspSpaces• ResultadosResultados• ConclusõesConclusões

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

Teste de DesempenhoTeste de Desempenho

• Repetir Repetir nn vezes o procedimento vezes o procedimento– Escrever uma Escrever uma entryentry simples (Write) simples (Write)– Ler a Ler a entryentry ( (readread))– Remover a Remover a entryentry ( (taketake))

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

200500

20

40

60

80

100

120

140

160

Número de operações

J uspSpacesPersitent OutriggerTransient Outrigger

Número de operações JuspSpaces Persitent Outrigger Transient Outrigger50 35 15 7

200 142 29 28

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

AplicaçãoAplicação

• XML ServerXML Server– Usa JavaSpaces como mecanismo de Usa JavaSpaces como mecanismo de

persistênciapersistência– Originalmente baseado no Originalmente baseado no OutriggerOutrigger– Não utiliza transaçõesNão utiliza transações– A migração foi fácilA migração foi fácil

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

TópicosTópicos

• ObjetivosObjetivos• JavaSpaces enquanto espaço de JavaSpaces enquanto espaço de

tuplastuplas• JavaSpaces enquanto serviço JiniJavaSpaces enquanto serviço Jini• JuspSpacesJuspSpaces• ResultadosResultados• ConclusõesConclusões

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

ContribuiçõesContribuições

• Primeira implementação JavaSpaces que Primeira implementação JavaSpaces que dispensa o servidor de dispensa o servidor de LookupLookup

• Estudo de caso para a implementação Estudo de caso para a implementação de JavaSpaces sobre bases de dados de JavaSpaces sobre bases de dados relacionaisrelacionais

• Protótipo sob a licença GNU-GPLProtótipo sob a licença GNU-GPL

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

Trabalhos futurosTrabalhos futuros

• Implementação do protocolo de Implementação do protocolo de acesso ao acesso ao proxyproxy

• Revisão formal do controle de Revisão formal do controle de concorrênciaconcorrência

• Emprego de JuspSpaces em outras Emprego de JuspSpaces em outras aplicaçõesaplicações

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

Universidade de São PauloUniversidade de São Paulo

Instituto de Ciências Instituto de Ciências Matemáticas e de Matemáticas e de ComputaçãoComputação

CAPESCAPES