aglets. sumário download e instalação configuração do eclipse desenvolvimento de agentes
TRANSCRIPT
Aglets
Sumário
• Download e Instalação
• Configuração do Eclipse
• Desenvolvimento de Agentes
Aglets – Preparação do ambiente• O ambiente Aglets necessita de uma máquina virtual Java para
rodar
• Para o desenvolvimento de agente também é necessário um kit de desenvolvimento Java– http://java.sun.com/j2se/5.0/download.jsp– Download JDK
• Após instalação, a pasta bin do JDK deve ser incluída no PATH do sistema operacional.
• O desenvolvimento dos agentes pode ser feito em qualquer editor– Aqui será detalhada a configuração do Eclipse (www.eclipse.org) para
permitir a execução e depuração de agentes
Aglets - Download• Página: http://aglets.sourceforge.net
• Download:– Binários:
• http://prdownloads.sourceforge.net/aglets/aglets-2.0.2.jar
– Fontes: • http://prdownloads.sourceforge.net/aglets/aglets-2.0.2-src.jar
– Manual do Usuário: • http://prdownloads.sourceforge.net/aglets/manual.pdf
Aglets - Instalação• Descompactar aglets-2.0.2.jar (Ex: c:\aglets)
• Pelo prompt de comando– Ir à pasta bin– Executar: ant– Executar: ant install-home
Scripts de instalação e execução Arquivos de configuração Bibliotecas
Onde devem residir os agentes desenvolvidos
Aglets - Execução• Editar arquivo cnf/aglets.props
– Descomentar linha:• aglets.secure=false
– Isso permite que agentes acessem arquivos e executem outras operações que não seriam permitidas
• Pelo prompt de comando– Ir à pasta bin– Executar: agletsd -f ..\cnf\aglets.props
Eclipse – Criar Projeto• Criar um projeto Java
• Usar pasta de instalação do Aglets como pasta do projeto
Eclipse – Criar Projeto• Usar a pasta public como
Output Folder
• Isso faz com que as classes compiladas pelo Eclipse sejam colocadas automaticamente no lugar certo
• Projeto Criado
Eclipse – Rodar Tahiti• Project Properties
• Java Build Path
• Libraries
• Add Class Folder
• Selecionar a pasta lib
Eclipse – Rodar Tahiti• Menu Run, Run...
• Criar nova Configuração
• Nome: Aglets
• Project: Aglets
• Main Class: com.ibm.awb.launcher.Main
Eclipse – Rodar Tahiti• Ainda na mesma tela
• Arguments
• Program Arguments: “-f C:\aglets\cnf\aglets.props”
• VM Arguments: “-Daglets.home=C:\aglets”
• Run
Eclipse – Criando Agentes• Para criar agentes, é
preciso primeiro configurar uma pasta para os fontes do agente
• Project Properties
• Java Build Path
• Source
• Add Folder
• Criar e selecionar a pasta src
Eclipse – Criando Agentes• Opcionalmente, pode-se
adicionar os fontes do Aglets ao Eclipse, para que a documentação associada fique disponível
• Project Properties
• Java Build Path
• Libraries
• aglets-2.2.2.jar
• Source attachments
• Edit
Programando Agentes• Agentes são criados estendendo-se a classe
Aglet
• Alguns métodos dessa classe, que podem ser sobrescritos, são invocados pelo ambiente para indicar eventos
– void onCreation(Object init)– void run()– void onDisposing()– boolean handleMessage(Message message)
void onCreation(Object init)
• Este método é chamado logo após o agente ter sido criado
• O parâmetro init contém um possível argumento passado ao agente na hora da criação, ou null
void run()
• Este método é chamado quando um agente é:– Criado (após onCreation)
– Enviado para outro computador (após chegar)
– Chamado de volta para o computador de onde foi criado (após chegar)
– Reativado (devido a uma chamada a deactivate)
void onDisposing()
• Este método é chamado quando o agente estiver prestes a ser destruído, devido a uma chamada ao método dispose.
boolean handleMessage(Message message)
• É chamado sempre que uma mensagem chega ao agente
• O parâmetro message possui:– Um atributo kind (String) que identifica o tipo da
mensagem– Parâmetros opcionais
• O método deve retornar false caso a mensagem recebida não seja suportada. Neste caso uma exceção ocorrerá em quem mandou a mensagem
Criando Agentes• Agentes podem ser criados pela interface do
Tahiti, ou programaticamente
• Para criá-los pelo Tahiti, basta informar a classe (incluindo nome de package)
• A opção Add to List adiciona o agente à lista de favoritos
Criando Agentes
• Para criar agente via programação, deve-se fazer da seguinte forma:
AgletProxy proxy = null;
AgletContext context = getAgletContext();
try{ proxy = context.createAglet(null, "classe.do.Agente", <parâmetro>);}catch (Exception e){ e.printStackTrace();}
AgletProxy• É através de proxies que se interage com
agentes
• A classe AgletProxy oferece (entre outros) os seguintes métodos– Object sendMessage(Message msg)
• Envia uma mensagem, e espera– void dispose()
• Destrói o agente– AgletProxy dispatch(URL address)
• Manda o agente para o endereço indicado
Como fazer os agentes se encontrarem
• Para fazer com que um agente possa enviar mensagens a outro é preciso primeiramente obter o proxy dele.
• Quando se cria um agente, isso é fácil. O proxy já é retornado quando se efetua a criação
Como fazer os agentes se encontrarem
• Quando os agentes não tem uma relação de “parentesco”, pode-se guardar o proxy do agente no AgletContext, associando-o a uma String
AgletContext context = getAgletContext();
context.setProperty("XPT0", getProxy());
Como fazer os agentes se encontrarem
• Outros agentes podem recuperar este proxy, lendo a propriedade do AgletContext
AgletContext context = getAgletContext();
AgletProxy p = (AgletProxy) context.getProperty("XPT0");