ASDK API Aglet API Aglet Event. API Aglet É um pacote Java ( com.ibm.aglet ) que contém classes e...

Preview:

Citation preview

ASDK

API AgletAPI Aglet Event

API Aglet É um pacote Java (com.ibm.aglet) que

contém classes e interfaces necessárias à programação da interface entre aglets e seu ambiente de execução.

Características Simplicidade Flexibilidade Portabilidade

API Aglet Classes

Aglet AgletID AgletInfo AgletStub FutureReply Message QoC ReplySet Ticket

Interfaces AgletContext AgletProxy MessageManager

Classe Aglet Classe abstrata que o desenvolvedor

usa como classe base para criar aglets personalizados.

Fornece métodos para manipular etapas do ciclo de vida do aglet.

Fornece métodos que podem ser sobrepostos a fim de estabelecer comportamentos personalizados.

Classe Aglet Principais métodos (final)

clone(): gera uma nova instância do aglet, a qual tem o estado do aglet original.

deactivate(long): desativa o aglet durante o tempo especificado como argumento.

dispatch(URL): envia o aglet para a localização especificada como argumento.

dispose(): destrói e remove o aglet de seu contexto atual.

Classe Aglet Principais métodos (final)

getAgletContext(): obtém o contexto (AgletContext) no qual o aglet está executando atualmente.

getAgletID(): obtém o ID (AgletID) do aglet.

getAgletInfo(): obtém informações (AgletInfo) sobre o aglet.

getProxy(): obtém o proxy (AgletProxy) do aglet.

Classe Aglet Principais métodos (sobrescritos)

handleMessage(Message): trata as mensagens recebidas por um agente.

onCreation(...): inicializa o novo aglet.

onDisposing(): chamado quando há tentativa de destruição do aglet.

run(): inicia a execução da thread do aglet. Chamado após criação, despacho, retração ou ativação.

Classe Message Classe através da qual a abstração de

mensagens é criada.

Aglets se comunicam por trocar objetos da classe Message.

Um campo de string nomeado “kind” distingue mensagens. O campo é estabelecido quando a mensagem é criada.

Construtor: Message(String kind, ...)

Classe Message

Principais métodos getKind(): obtém o tipo da

mensagem.

sameKind(String): verifica se a mensagem possui é do tipo passado como argumento.

sendReply(...): envia reply com o valor especificado no argumento.

Interface AgletContext

Interface através da qual o contexto de execução do aglet é implementado.

Fornece métodos para manipular o contexto de execução dos aglets.

Interface AgletContext Principais métodos

createAglet(...): cria uma instância da classe aglet especificada e retorna um proxy (AgletProxy).

getAgletProxies(): recupera uma lista com todos os proxies de agentes presentes no seu contexto atual.

getAgletProxy(AgletID): obtém um proxy (AgletProxy) para o aglet no contexto atual.

retractAglet(URL, AgletID): retorna o aglet para o contexto de onde foi despachado.

Interface AgletProxy

Interface cujo propósito é fornecer um mecanismo para controlar e limitar o acesso direto aos aglets.

Fornece métodos para manipular aglets.

Interface AgletProxy

Principais métodos activate(): ativa o aglet.

clone(): clona o aglet e seu proxy.

deactivate(long): desativa o aglet.

dispatch(URL): envia o aglet para a localização especificada como argumento.

Interface AgletProxy Principais métodos

dispose(): destrói o aglet.

getAglet(): obtém o aglet (Aglet) que o proxy gerencia.

getAgletID(): obtém o ID (AgletID) do aglet.

getAgletInfo(): obtém informações (AgletInfo) sobre o aglet.

Interface AgletProxy Principais métodos

sendAsyncMessage(Message): envia uma mensagem em modo assíncrono e espera resposta (FutureReply).

sendFutureMessage(Message): envia uma mensagem futura e espera resposta (FutureReply).

sendMessage(): envia uma mensagem em modo síncrono.

sendOnewayMessage(): envia mensagem one-way. Não há envio de confirmação para remetente.

API Aglet Event

É um pacote Java (com.ibm.aglet.event) que contém classes e interfaces necessárias à comunicação e eventos dos aglets.

API Aglet Event Classes

AgletEvent AgletEventListener CloneAdapter CloneEvent MobilityAdapter MobilityEvent PersistencyAdapter PersistencyEvent

Interfaces CloneListener MobilityListener PersistencyListene

r

CloneAdapter e CloneListener Métodos

onClone(CloneEvent): invocado depois que um aglet foi clonado. Atua sobre aglet clone.

onCloned(CloneEvent): invocado depois que um aglet foi clonado. Atua sobre aglet original.

onCloning(CloneEvent): invocado quando um aglet está para ser clonado.

MobilityAdapter e MobilityListener

Métodos onArrival(MobilityEvent): invocado somente

depois que o agente chegou ao destino.

onDispatching(MobilityEvent): invocado quando o agente está para ser enviado a outro host.

onReverting(MobilityEvent): invocado quando o aglet é recuperado de um host remoto.

PersistencyAdapter e PersistencyListener

Métodos onActivation(): invocado somente depois

que o agente foi ativado.

onDeactivating(): invocado quando o agente está para ser desativado.

Diagrama de Colaboração para Criação de Aglet

run()run()

onCreation() onCreation()

Aglet()Aglet()

createAglet() createAglet()

run()run()

onCloning()onCloning()

onCloned() onCloned()

run()run()

onClone()onClone()

run()run()

Original

Clone

Diagrama de Colaboração para Clonagem de Aglet

Diagrama de Colaboração para Dispatching de Aglet

Origemrun()run()

dispatch()dispatch()

onDispatching()onDispatching()

onArrival()onArrival()

run()run()Destino

Diagrama de Colaboração para Retração de Aglet

retractAglet()retractAglet()

onArrival()onArrival()

run()run()

run()run()

onReverting()

Local

Remoto

Diagrama de Colaboração para Liberar um Aglet

dipose()dipose()

onDisposing()onDisposing()

run()run()

Recommended