1 / 25

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

polly
Download Presentation

Seminário - SobD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminário - SobD Introdu₤₧o ao JavaSpaces

  2. Agenda • O Que ₫ JavaSpaces ? • A que o JavaSpaces se propõe • API JavaSpaces • Principais Classes e Interfaces • Outras Implementa₤ões

  3. 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

  4. Exemplo de Spaces

  5. 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

  6. net.jini.space.JavaSpace • Interface do JavaSpace • M₫todos da Interface • read, readIfExists • take, takeIfExists • write • notify • Snapshot

  7. 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

  8. 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); }

  9. 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

  10. 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

  11. Write • Entrys s₧o leased public lease write(Entry tmpl, Transaction txn, long lease) throws TransactionException, RemoteException

  12. 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

  13. 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

  14. 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

  15. Pacotes do Jini • net.jini.core.transaction • net.jini.core.entry • net.jini.core.lease • net.jini.core.event

  16. 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

  17. JavaSpace n₧o ₫.... • Um sistema de arquivos • Um banco de dados de objetos

  18. 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..

  19. Fun₤ões do JavaSpace • Deixe o JavaSpace tratar da: • Persist₨ncia • Concorr₨ncia • Transa₤ões • Escalabilidade

  20. Em resumo... • Se voc₨ pode modelar sua aplica₤₧o como uma troca de objetos • USE JAVASPACES!!!!!!!!!!!!

  21. 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

  22. Outras implementa₤ões • GigaSpaces - http://www.gigaspaces.com • Suporte a clusteriza₤₧o • Intregra₤₧o com webservices • Alta disponibilidade • T-Spaces - IBM

  23. 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

  24. 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

  25. Maiores Informa₤ões • http://www.java.sun.com/products/javaspaces • http://www.jini.org • javaspaces-users@java.sun.com

More Related