slide 1 rede nacional de ensino e pesquisa treinamento em gradep - junho 2005 serviço oxmanager...

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

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

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

Slide 1

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

Treinamento no Treinamento no GRADEpGRADEp

Serviço OXManager

OXManagerDemo

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

Slide 2

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

AutoriaAutoria

• Autor Fábio Reis Cecin

• Versão V1, Junho de 2005

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

Slide 3

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

Sumário da apresentaçãoSumário da apresentação

1 Visão geral – serviço OXManager

2 Exemplo: OXManagerDemo

3 OXManager: outras APIs

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

Slide 4

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

Visão geralVisã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, Valor>; Nome: cadeia de caracteres ASCII que descreve o atributo; Valor: qualquer valor, inclusive binário.

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

Slide 5

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

Visão geralVisã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.

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

Slide 6

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

Visão geralVisã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.

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

Slide 7

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

Visão geralVisã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.

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

Slide 8

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXHandle

OXHandle

Visão geralVisã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.

ProxyOXHandleoid = xxx

“Consulta meta-atributos do OX associado ao handle”

Hospedeiro 1

OXHandle

HomeOXHandleoid = xxxApplicationId = 22Owner = Hospedeiro 2

“Célula home”

MasterOXHandleoid = xxxApplicationId = 22Meta-atributos = local atual = yyy ...

OX

Hospedeiro 2 Hospedeiro 3

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

Slide 9

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

Sumário da apresentaçãoSumário da apresentação

1 Visão geral – serviço OXManager

2 Exemplo: OXManagerDemo

3 OXManager: outras APIs

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

Slide 10

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManagerDemoOXManagerDemo

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

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

Slide 11

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManagerDemo – importsOXManagerDemo – 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;

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

Slide 12

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManagerDemo – ConstrutorOXManagerDemo – Construtor

public class OXManagerDemo {

// construtor apenas imprime criação do objeto

public OXManagerDemo() {

System.out.println("<init>()");

}

// idem, porém com parâmetro opcional

public OXManagerDemo( String msg ) { System.out.println("<init>(msg=\""+msg+"\")");

}

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

Slide 13

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManagerDemo – main() (1/3)OXManagerDemo – main() (1/3)

// ponto de entrada da aplicaçãopublic 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);

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

Slide 14

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManagerDemo – main() (2/3)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...

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

Slide 15

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManager.createHandle()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

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

Slide 16

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManagerDemo – main() (3/3)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...

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

Slide 17

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManager.grantOwnership()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...

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

Slide 18

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManager.requestOwnership()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

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

Slide 19

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

Sumário da apresentaçãoSumário da apresentação

1 Visão geral – serviço OXManager

2 Exemplo: OXManagerDemo

3 OXManager: outras APIs

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

Slide 20

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManager.updateAttributes()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

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

Slide 21

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

OXManager.releaseHandle()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

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

Slide 22

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - junho 2005

Serviço OXManager

Treinamento no Treinamento no GRADEpGRADEp

Serviço OXManager

OXManagerDemo