Seminário - SobD

Post on 14-Jan-2016

33 views 0 download

description

Seminário - SobD. Introdu₤₧o ao JavaSpaces. Agenda. O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces Outras Implementa₤ões. Space. Um space ₫ um lugar na rede para compartilhar e guardar objetos - PowerPoint PPT Presentation

Transcript of Seminário - SobD

Seminário - SobD

Introdu₤₧o ao JavaSpaces

Agenda

O Que ₫ JavaSpaces ?

A que o JavaSpaces se propõe

API JavaSpaces Principais Classes e Interfaces

Outras Implementa₤ões

Space

Um space ₫ um lugar na rede para compartilhar e guardar objetos

É a implementa₤₧o da especifica₤₧o do JavaSpace

Pode ser visto como compartilhamento de memória em uma rede

Simples design - 4 opera₤ões

Exemplo de Spaces

Propósito do JavaSpace

Persist₨ncia Distribuída

Outra forma de construir algoritmos distribuídos Ao inv₫s de invoca₤₧o de m₫todos, fluxo de objetos

É projetado para dar suporte a aplica₤ões que trabalham com fluxo de objetos entre servidores

net.jini.space.JavaSpace

Interface do JavaSpace

M₫todos da Interface read, readIfExists take, takeIfExists write notify Snapshot

Entry Todos os objetos do Space s₧o entries.

Um Entry ₫ um grupo de objetos tipados expressos em uma classe que implementa a interface net.jini.core.entry.Entry

Campos do tipo Entry devem ser public. N₧o podem ser: final, transient, primitivos

Classes do tipo Entry deevem possuir um construtor public sem argumentos

Informa₤ões sobre Entry, Jini Technology Core Plataform Specification - Entry

Exemplo de Entry

import net.jini.core.entry.*;

public class Converter implements Entry {public Float real;public Float dolar;public boolean done;

public Converter() {}

public Converter(float r, boolean d) {real = new Float(r);done = new Boolean(d);

}

Read

public Entry read(Entry tmpl, Transaction txn, long timeout) throws UnusableEntryException, TransactionException, InterruptedException, RemoteException

public Entry readIfExists(Entry tmpl, Transaction txn, long timeout) throws UnusableEntryException, TransactionException, InterruptedException, RemoteException

Take

Mesma opera₤₧o do read, mas remove Entry do Space

public Entry take(Entry tmpl, Transaction txn, long timeout) throws UnusableEntryException, TransactionException, InterruptedException, RemoteException

public Entry takeIfExists(Entry tmpl, Transaction txn, long timeout) throws UnusableEntryException, TransactionException, InterruptedException, RemoteException

Write

Entrys s₧o leased

public lease write(Entry tmpl, Transaction txn, long lease) throws TransactionException, RemoteException

Notify

M₫todo para registrar listeners que ser₧o informados das mudan₤as no space

public EventRegistration notify(Entry tmpl, Transaction txn, RemoteEventListener, long lease, MarshalledObject handback) throws TransactionException, RemoteException

Maiores detalhes, Jini Technology Core Plataform Specification - Event

Snapshot

Minimiza o esfor₤o no uso repetido da mesma Entry -custo de seria₤₧o e entrega

public Entry snapshot(Entry e) throws RemoteException

ex: dele₤₧o de vários Entrys com mesmo Template

Relacionamento com Jini

É um servi₤o da tecnologia Jini

Uso do modelo de programa₤₧o do Jini Transa₤ões Leasing Eventos

Criados pelas mesmas pessoas

Pacotes do Jini

net.jini.core.transaction

net.jini.core.entry

net.jini.core.lease

net.jini.core.event

Onde Usar JavaSpaces

Workflow

DataFlow

Aplica₤ões que utilizem fluxo de objetos

Necessidade de controle transa₤ões, eventos

Cache Criar um space entre os componentes web servers/EJB e o

banco de dados (DB) Exemplo do Jrun

JavaSpace n₧o ₫....

Um sistema de arquivos

Um banco de dados de objetos

Como utilizar JavaSpaces

Modelar o problema como um fluxo de objetos, ao inv₫s do modo convencional de invoca₤₧o de m₫todos

Definir os objetos Decidir como e quando os objetos devem entrar e

sair do space, utilizando os m₫todos write, take, read, etc..

Fun₤ões do JavaSpace

Deixe o JavaSpace tratar da: Persist₨ncia Concorr₨ncia Transa₤ões Escalabilidade

Em resumo...

Se voc₨ pode modelar sua aplica₤₧o como uma troca de objetos

USE JAVASPACES!!!!!!!!!!!!

Questões em aberto

A seguran₤a no JavaSpaces ₫ um dos grandes problemas da tecnologia

Projeto Davis - visa resolver este problema http://www.jini.org

Outras implementa₤ões

GigaSpaces - http://www.gigaspaces.com Suporte a clusteriza₤₧o Intregra₤₧o com webservices Alta disponibilidade

T-Spaces - IBM

Alguns usuários

Cisco SI - framework para uma escalável infraestrutura de

comunica₤₧o (centrais de PABX)

Jrun -Allaire Utiliza javaspaces para troca de objetos entre

instancias de servidores de aplica₤₧o

Mais usuários no http://www.jini.org

Sumário

Use javaspaces quando seu modelo arquitetural permite a troca de objetos

Javaspaces ₫ escalável, transacional, orientado à eventos, simples e funcional

Fortemente integrado com o Jini

Maiores Informa₤ões

http://www.java.sun.com/products/javaspaces

http://www.jini.org

javaspaces-users@java.sun.com