A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Treinamento no GRADEp Serviço OXManager OXManagerDemo.

Apresentações semelhantes


Apresentação em tema: "Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Treinamento no GRADEp Serviço OXManager OXManagerDemo."— Transcrição da apresentação:

1 Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Treinamento no GRADEp Serviço OXManager OXManagerDemo

2 Slide 2 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Autoria Autor Fábio Reis Cecin Versão V1, Junho de 2005

3 Slide 3 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Sumário da apresentação 1 Visão geral – serviço OXManager 2 Exemplo: OXManagerDemo 3 OXManager: outras APIs

4 Slide 4 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Visão geral A abstração OX (Objeto eXehda) Instância de objeto criada por intermédio do serviço Executor; À qual pode ser associada meta-informação em tempo de execução. Meta-informação no OX é uma lista de atributos: Lista: pares no formato ; Nome: cadeia de caracteres ASCII que descreve o atributo; Valor: qualquer valor, inclusive binário.

5 Slide 5 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Visão geral Serviço OXManager: Armazena a meta-informação associada aos OXes; Permite que os atributos de um OX sejam consultados e alterados a partir de qualquer nodo da grade. OXHandle: O suporte à meta-informação de OXes é implementado pelos OXHandles; O OXManager possui métodos para criação, manipulação e remoção de OXHandles; Quando criado, um OXHandle é associado a algum OX; Através do OXHandle é possível manipular os meta-atributos do OX.

6 Slide 6 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Visão geral Tipos de OXHandle (transparente à aplicação): MasterOXHandle (1/3) Armazena a cópia-mestre dos meta-atributos de um OX (lista completa); Tipicamente criado ao mesmo tempo que o seu OX associado, no mesmo nodo; Em geral, acompanha o OX quando este migra para outro nodo, mas pode ser separado do OX (caso o hospedeiro atual do OX tenha pouca memória, etc); O MasterOXHandle guarda no atributo location o local atual do OX na grade.

7 Slide 7 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Visão geral Tipos de OXHandle (transparente à aplicação): HomeOXHandle (2/3) Permanece fixo na célula-home do OX (célula onde o OX foi primeiramente instanciado); Observação: a informação da célula-home de um OX está contida no seu ObjectID; O HomeOXHandle pode ser consultado para se descobrir onde está o MasterOXHandle do OX, atualmente; Isto é especificado no atributo owner (dono) do HomeOXHandle Mantém um cache dos meta-atributos não-mutáveis do OX, por exemplo: ObjectID: ID do OX; ApplicationId: ID da aplicação à qual o OX está associado.

8 Slide 8 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXHandle Visão geral Tipos de OXHandle (transparente à aplicação): ProxyOXHandle (3/3) Objeto procurador que pode ser utilizado para acessar o MasterOXHandle ou o HomeOXHandle; Armazena, no mínimo, o ObjectID do OX. ProxyOXHandle oid = xxx Consulta meta-atributos do OX associado ao handle Hospedeiro 1 OXHandle HomeOXHandle oid = xxx ApplicationId = 22 Owner = Hospedeiro 2 Célula home MasterOXHandle oid = xxx ApplicationId = 22 Meta-atributos = local atual = yyy... OX Hospedeiro 2Hospedeiro 3

9 Slide 9 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Sumário da apresentação 1 Visão geral – serviço OXManager 2 Exemplo: OXManagerDemo 3 OXManager: outras APIs

10 Slide 10 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManagerDemo Exemplo: Aplicação OXManagerDemo Demonstra o uso de meta-atributos de um OX Local: /isam/isam-apps/oxmanagerdemo/ Arquivos: OXManagerDemo.java Fonte da aplicação. oxmanagerdemo.isam Descritor de disparo da aplicação em formato XML do ISAM.

11 Slide 11 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManagerDemo – imports OXManagerDemo.java: (trechos selecionados) // Importa ObjectId (identificador de OX), ObjectSeed (para // criação do OX), OXManager e OXHandle import org.isam.exehda.Exehda; import org.isam.exehda.ObjectId; import org.isam.exehda.services.ObjectSeed; import org.isam.exehda.services.OXManager; import org.isam.exehda.services.OXManager.OXHandle;

12 Slide 12 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManagerDemo – Construtor public class OXManagerDemo { // construtor apenas imprime criação do objeto public OXManagerDemo() { System.out.println(" ()"); } // idem, porém com parâmetro opcional public OXManagerDemo( String msg ) { System.out.println(" (msg=\""+msg+"\")"); }

13 Slide 13 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManagerDemo – main() (1/3) // ponto de entrada da aplicação public static void main( String[] args ) { // obtém serviço ObjectSeed ObjectSeed objectSeed = (ObjectSeed) Exehda.getService(ObjectSeed.SERVICE_NAME); // cria um OX (e obtém oxID do mesmo) a partir // da instanciação da classe OXManagerDemo ObjectId oxID = objectSeed.newInstance(OXManagerDemo.class, null, null);

14 Slide 14 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManagerDemo – main() (2/3) // obtém referência para o serviço OXManager OXManager oxman = (OXManager) Exehda.getService( OXManager.SERVICE_NAME ); // cria um OXHandle para o ID do OX que foi criado acima OXHandle oxh = oxman.createHandle( oxID ); // imprime OX e meta-atributos do OX (oid, owner, location) System.out.println(" key="+oxh.getKey()); System.out.println("After createHandle()"); System.out.println(oxh); System.out.println(" id="+oxh.getId() ); // ID do OX System.out.println(" key="+oxh.getKey()); System.out.println(" owner="+oxh.getOwner() ); // dono do MasterOXHandle System.out.println(" key="+oxh.getKey()); System.out.println("location="+oxh.getLocation() ); // local atual do OX System.out.println(" key="+oxh.getKey()); Próximo slide...

15 Slide 15 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManager.createHandle() O método createHandle() da interface OXManager cria um OXHandle apropriado para acessar meta-atributos de um OX: Recebe como argumento o ObjectId do OX; Retorna um OXHandle para o OX; Tipos de OXHandle criados: MasterOXHandle é criado se o nodo local é o home do OX e ainda não existe um MasterOXHandle para o OX; HomeOXHandle é criado se o nodo local é o nodo home da célula e ainda não existe um HomeOXHandle para o OX; Caso contrário, é criado um ProxyOXHandle. public interface OXManager { public OXManager.OXHandle createHandle(ObjectId oid); API

16 Slide 16 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManagerDemo – main() (3/3) //... voltando ao método main() da demo... // libera a posse do OXManager local sobre o OXMasterHandle do OX oxman.grantOwnership( oxh ); // imprime novamente o OX e os valores atuais dos meta-atributos do // OX (ID, owner, location)... System.out.println("After grantOwnership()"); System.out.println(oxh); System.out.println(" id="+oxh.getId() ); System.out.println(" owner="+oxh.getOwner() ); System.out.println("location="+oxh.getLocation() ); } // fim do main() e do demo Próximo slide...

17 Slide 17 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManager.grantOwnership() O método grantOwnership() da interface OXManager notifica o OXManager local de que o MasterOXHandle poderá ser movido: Recebe como argumento um OXHandle (válido) para o OX em questão; Pode ser um proxy, mestre, home,... Esta chamada é propagada até o HomeOXHandle do OX; No HomeOXHandle fica indicado que o MasterOXHandle está livre para ser migrado A migração do MasterOXHandle é solicitada pelo método requestOwnership() public interface OXManager { public OXManager.OXHandle grantOwnership(OXManager.OXHandle h); API Próximo slide...

18 Slide 18 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManager.requestOwnership() O método requestOwnership() da interface OXManager solicita que um MasterOXHandle de um OX migre para o nodo local: Recebe como argumento um OXHandle (válido) para o OX em questão; Esta chamada é propagada até o HomeOXHandle do OX; No HomeOXHandle é verificado se o MasterOXHandle foi liberado por uma chamada prévia a grantOwnership(); Em caso de permissão OK, o GRADEp irá migrar o MasterOXHandle para o nodo local. public interface OXManager { public OXManager.OXHandle requestOwnership(OXManager.OXHandle h); API

19 Slide 19 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Sumário da apresentação 1 Visão geral – serviço OXManager 2 Exemplo: OXManagerDemo 3 OXManager: outras APIs

20 Slide 20 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManager.updateAttributes() O método updateAttributes() permite consultar e atualizar vários atributos de um OX (simultaneamente): Parâmetros: OXHandle: handle para o OX; String[]: lista dos atributos; Byte[]: operações para serem efetuadas sobre os respectivos atributos; OXAttributeOps.READ: ler o atributo OXAttributeOps.WRITE: escrever sobre o atributo Retorna um OXHandle potencialmente atualizado com os novos atributos. public interface OXManager { public OXManager.OXHandle releaseHandle( OXManager.OXHandle h, String[] a, Byte[] o); API

21 Slide 21 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager OXManager.releaseHandle() O método releaseHandle() notifica o OXManager de que um OXHandle não é mais necessário: Recebe o OXHandle em questão como parâmetro; A semântica de se liberar um MasterOXHandle é a de que o OX deixa de existir (isto é, os meta-atributos); É específico de uma implementação do GRADEp se a aplicação poderá liberar diretamente um MasterOXHandle ou se algum mecanismo automático é utilizado (exemplo: contagem de referências inter-nodo); A liberação de um ProxyOXHandle deve resultar em uma propagação até o seu HomeOXHandle, de forma que o MasterOXHandle possa ser melhor posicionado. public interface OXManager { public void releaseHandle(OXHandle h); API

22 Slide 22 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Treinamento no GRADEp Serviço OXManager OXManagerDemo


Carregar ppt "Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Treinamento no GRADEp Serviço OXManager OXManagerDemo."

Apresentações semelhantes


Anúncios Google