17
Treinamento no Treinamento no GRADEp GRADEp Serviço Executor ExecutorDemo

Treinamento no GRADEp Serviço Executor ExecutorDemo

Embed Size (px)

Citation preview

Page 1: Treinamento no GRADEp Serviço Executor ExecutorDemo

Treinamento no Treinamento no

GRADEpGRADEp

Treinamento no Treinamento no

GRADEpGRADEpServiço ExecutorExecutorDemo

Page 2: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 2

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

AutoriaAutoria

• Autora Ingrid Oliveira de Nunes Versão (número, data, autor)

• V1, junho de 2005

• V2, 03 de agosto de 2005, Geyer

Page 3: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 3

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

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

• Sumário Visão Geral Activator Interfaces

• Migrable• SchedulingHeuristic

ExecutorDemo• classe Walker• classe WalkerActivator

Page 4: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 4

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

Visão GeralVisão Geral

• Visão Geral define métodos para:

• disparar e terminar aplicações

• criar e migrar objetos (OXes)

• ligar heurísticas por aplicação que irão guiar a seleção de host tanto na instanciação como na migração remotas dos objetos

noção de um Activator por objeto instanciação através do Design Pattern Strategy

Page 5: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 5

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

ActivatorActivator

• Activator responsável por:

• conectar o objeto ao seu ambiente de execução

• carregar e inicializar qualquer outro recurso extra antes do objeto iniciar sua execução

especificado quando o OX é instanciado• através do método createObject()

ligado ao objeto – carregado com ele mesmo que haja migração caso seja omitido, o sistema procurará um Activator que sirva para

o objeto

Page 6: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 6

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

InterfaceInterface

• Interface do Executor métodos de instância

// Cria um objeto na aplicação que o invoca, invocando o construtor apropriado de acordo com a lista de parâmetros

public ObjectId createObject(Class c,Object[] p,Activator a,Object hint);

• Parâmetros: c – classe a ser instanciada p – parâmetros a serem passados ao construtor a – Activator customizado do objeto hint – dica para guiar o processo de seleçao de host

• Retorno: identificador do objeto

Page 7: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 7

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

InterfaceInterface

• Interface do Executor

// Migra um OX existente entre dois nodos

public void moveObject(ObjectId ox,Object placementHint);

• Parâmetros: ox – objeto a ser migrado placementHint – dica para onde o objeto será migrado

Page 8: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 8

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

InterfaceInterface

• Interface do Executor

// Desativa o objeto OX, armazenando seu estado e outras informações de gerenciamento no objeto MarshaledOX retornado

// Necessário por exemplo antes da migração de um objetopublic MarshaledOX deactivateObject(ObjectId ox);• Parâmetros:

ox – objeto a ser desativado

• Retorno: objeto com informações de estado do objeto desativado

// Retorna a execução de um objeto desativadopublic void activateObject(MarshaledOX oxState);• Parâmetros:

oxState – objeto com informações de estado do objeto a ser ativado

Page 9: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 9

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

InterfaceInterface

• Interface do Executor

// Dispara a execução de uma aplicação descrita pelo documento com o descritor de disparo

public void startApplication(org.isam.util.xml.XmlElement launchingDesc) throws MalformedAppLaunchingDescriptorException;

• Parâmetros: lauchingDesc – documento com o descritor de disparo da aplicação

// Faz a aplicação abortar sua execução, parando todas as suas threads

public void exitApplication();// Retorna a aplicação cuja thread chamadora pertencepublic ApplicationId currentApplication();• Retorno: identificador da aplicação

Page 10: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 10

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

InterfaceInterface

• Interface do Executor

// Executa a ação fornecida na aplicação, esperando seu término para retornar

public void runAction(ApplicationId app,Runnable action);• Parâmetros:

app – aplicação onde a ação será executada action – ação a ser executada

// Seta uma heurística de agendamento por aplicação. Este método está deprecated

public void setHeuristic(SchedulingHeuristic sh);• Parâmetros:

sh – a heurística de agendamento

Page 11: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 11

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

Interface – SchedulingHeuristicInterface – SchedulingHeuristic

• Interface – SchedulingHeuristic interface definida dentro da interface Executor liga as heurísticas de agendamento à operação do Executor define os métodos:

• public HostId chooseCreationHost(String cls,Object[] params,Object hint,Vector toAvoid);

• public HostId chooseMigrationHost(ObjectId o,Object hint,Vector toAvoid);

Parâmetros:• cls – classe a ser instanciada• o – objeto a ser migrado• p – parâmetros a serem passados ao construtor• hint – dica para guiar o processo de seleçao de host• toAvoid – lista de hosts a evitar

Retorno: identificador do host escolhido

Page 12: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 12

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

ExecutorDemoExecutorDemo

• ExecutorDemo exemplo de uma aplicação do serviço Executor no GRADEp local: /isam/isam-apps/executordemo/ arquivos:

• ExecutorDemo.java• fonte da aplicação.

• executordemo.isam• descritor de disparo da aplicação em formato XML do ISAM.

Page 13: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 13

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

ExecutorDemo – classe WalkerExecutorDemo – classe Walker

• ExecutorDemo – classe Walker implementa as interfaces Runnable e Serializable

• opcionais ou dependentes do comportamento da aplicação

atributos:• String name – nome do objeto

• String where – localização do objeto

• int count – contador de passos da execução do objeto

métodos• run() – a cada 2 segundos, imprime a localização do objeto, enquanto

a Thread não é interrompida

• setWhere(String where) – seta a localização do objeto

Page 14: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 14

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

ExecutorDemo – classe WalkerActivatorExecutorDemo – classe WalkerActivator

• Ativador da classe Walker Ativação:

public void activate(ObjectId oxID,Object obj,MarshaledOX extState);

• seta localização do objeto• cria uma thread para o objeto• inicia a execução da thread

Desativação:

public void deactivate(ObjectId oxID,Object obj,MarshaledOX oxState)

throws InterruptedException;• interrompe a thread• espera término da thread

Page 15: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 15

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

ExecutorDemoExecutorDemo

• ExecutorDemo recebe como parâmetro três identificadores de Host (HostId) cria instância do serviço Executor:

Executor executor = (Executor)Exehda.getService(Executor.SERVICE_NAME);

cria objeto no primeiro Host fornecido:

ObjectId walkerID =executor.createObject(

Walker.class, //Classe a ser instanciadanew Object[] { "Walker#0" },

//Argumentosnew WalkerActivator(), //Ativatorh1); //Host

Page 16: Treinamento no GRADEp Serviço Executor ExecutorDemo

Slide 16

Rede Nacional de Ensino e PesquisaTreinamento em Gradep - julho 2005

Serviço Executor

ExecutorDemoExecutorDemo

• ExecutorDemo migra o objeto entre o segundo e o terceiro host indefinidamente:

while (true) {

sleep(10000);

executor.moveObject(walkerID,h2);

System.out.println("Moved to "+h2);

sleep(10000);

executor.moveObject(walkerID,h3);

System.out.println("Moved to "+h3);

} método sleep(long millis): faz a thread corrente parar sua execução

durante os milisegundos fornecidos

Page 17: Treinamento no GRADEp Serviço Executor ExecutorDemo

Treinamento no Treinamento no

GRADEpGRADEp

Treinamento no Treinamento no

GRADEpGRADEpServiço ExecutorExecutorDemo