Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces...
-
Upload
luiz-gustavo-pedroso-azambuja -
Category
Documents
-
view
223 -
download
3
Transcript of Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces...
![Page 1: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/1.jpg)
Seminário - SobD
Introdu₤₧o ao JavaSpaces
![Page 2: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/2.jpg)
Agenda
O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces
Principais Classes e Interfaces Outras Implementa₤ões
![Page 3: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/3.jpg)
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
![Page 4: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/4.jpg)
Exemplo de Spaces
![Page 5: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/5.jpg)
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
![Page 6: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/6.jpg)
net.jini.space.JavaSpace
Interface do JavaSpace M₫todos da Interface
read, readIfExists take, takeIfExists write notify Snapshot
![Page 7: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/7.jpg)
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
![Page 8: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/8.jpg)
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);
}
![Page 9: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/9.jpg)
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
![Page 10: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/10.jpg)
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
![Page 11: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/11.jpg)
Write
Entrys s₧o leased
public lease write(Entry tmpl, Transaction txn, long lease) throws TransactionException, RemoteException
![Page 12: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/12.jpg)
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
![Page 13: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/13.jpg)
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
![Page 14: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/14.jpg)
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
![Page 15: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/15.jpg)
Pacotes do Jini
net.jini.core.transaction net.jini.core.entry net.jini.core.lease net.jini.core.event
![Page 16: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/16.jpg)
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
![Page 17: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/17.jpg)
JavaSpace n₧o ₫....
Um sistema de arquivos Um banco de dados de objetos
![Page 18: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/18.jpg)
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..
![Page 19: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/19.jpg)
Fun₤ões do JavaSpace
Deixe o JavaSpace tratar da: Persist₨ncia Concorr₨ncia Transa₤ões Escalabilidade
![Page 20: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/20.jpg)
Em resumo...
Se voc₨ pode modelar sua aplica₤₧o como uma troca de objetos
USE JAVASPACES!!!!!!!!!!!!
![Page 21: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/21.jpg)
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
![Page 22: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/22.jpg)
Outras implementa₤ões
GigaSpaces - http://www.gigaspaces.com Suporte a clusteriza₤₧o Intregra₤₧o com webservices Alta disponibilidade
T-Spaces - IBM
![Page 23: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/23.jpg)
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
![Page 24: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/24.jpg)
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
![Page 25: Seminário - SobD Introdu₤₧o ao JavaSpaces. Agenda O Que ₫ JavaSpaces ? A que o JavaSpaces se propõe API JavaSpaces Principais Classes e Interfaces.](https://reader034.fdocumentos.com/reader034/viewer/2022051705/5706384d1a28abb8238f6aac/html5/thumbnails/25.jpg)
Maiores Informa₤ões
http://www.java.sun.com/products/javaspaces http://www.jini.org [email protected]