250 likes | 380 Views
ASDK. API Aglet API 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. Classes Aglet AgletID AgletInfo
E N D
ASDK API Aglet API 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
Classes Aglet AgletID AgletInfo AgletStub FutureReply Message QoC ReplySet Ticket Interfaces AgletContext AgletProxy MessageManager API Aglet
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.
Classes AgletEvent AgletEventListener CloneAdapter CloneEvent MobilityAdapter MobilityEvent PersistencyAdapter PersistencyEvent Interfaces CloneListener MobilityListener PersistencyListener API Aglet Event
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.
createAglet() Aglet() onCreation() run() Diagrama de Colaboração para Criação de Aglet
run() run() Original onCloning() onCloned() onClone() Clone run() Diagrama de Colaboração para Clonagem de Aglet
run() Origem dispatch() onDispatching() onArrival() Destino run() Diagrama de Colaboração para Dispatching de Aglet
Diagrama de Colaboração para Retração de Aglet retractAglet() Local onArrival() run() run() Remoto onReverting()
Diagrama de Colaboração para Liberar um Aglet dipose() onDisposing() run()