Para quem ainda nao sabe, o projeto Rasea esta na rede social Twitter, sendo possivel acompanhar o andamento do projeto de forma online. E preciso que voce possua uma conta no Twitter, crie a sua caso voce nao tenha. Para acompanhar o projeto, acesse http://twitter.rasea.org e clique em "Follow". Toda aplicacao parceira deve estar conectada a um agente. Tomando como base o modelo PIM, o agente RASEA e um motor de especializacao (IBM, 2009), responsavel por converter a linguagem dos WebServices em mensagens especificas das tecnologias das aplicacoes parceiras. Alem disso, o agente executa efetivamente as tarefas de controle de acesso as aplicacoes, prevenindo o acesso nao autorizado ao sistema. Neste topico serao abordadas as duas principais funcoes do agente RASEA: i) motor de especializacao; e ii) controlador de acesso. A Figura 19 destaca a especializacao do agente RASEA em diferentes tecnologias. O item A representa os servicos, providos pelo servidor, que sao acessados pelos agentes B. A comunicacao entre os servicos A e os agentes B se da por meio de WebServices, garantindo a independencia de plataforma. Os agentes C, D e E sao especializacoes do agente conceitual B, construidos para tecnologias especificas, tais como: Java, .NET e PHP. O item F representa agentes desenvolvidos em qualquer tecnologia que suporte o consumo de WebServices, proporcionando flexibilidade a solucao. Figura 19 Tipos de agente Os agentes devem se especializar ao maximo, garantindo o encaixe perfeito com a tecnologia da aplicacao parceira. Como exemplo, pode-se citar a utilizacao de Java na construcao de aplicacoes comerciais. Existem diversas ferramentas, paradigmas, frameworks, bibliotecas e tecnologias que podem ser utilizadas na construcao de aplicacoes na plataforma Java, tais como: i) JavaServer Faces (JSF); ii) Apache Struts; iii) Google Web Toolkit (GWT); iv) Abstract Window Toolkit (AWT); dentre outras. E fundamental que exista um agente para cada tecnologia especifica, ao inves de um motor de especializacao generico para a plataforma Java. O agente e responsavel por interceptar todas as requisicoes feitas as aplicacoes parceiras, conforme estabelecido pelo padrao de projeto Front Controller (ALUR; CRUPI; MALKS, 2003, p. 164). Todas as tentativas de acesso devem ser tratadas com base nas informacoes consultadas no servidor RASEA. De acordo com Kern (2004, p. 90, traducao nossa), lentidao nas decisoes de acesso sao criticas para o negocio, portanto recomenda-se armazenar em cache todas as permissoes associadas ao usuario. Segue a baixo o processo executado pelo agente para realizar a autenticacao e o armazenamento dos privilegios de acesso: 1. O usuario informa as credenciais para acessar a aplicacao parceira; 2. O agente acessa o servico de autenticacao provido pelo servidor; 3. O servidor verifica a autenticidade acessando a base unica de usuarios; 4. Caso a autenticacao seja bem sucedida, o agente e notificado e o fluxo prossegue. Em caso de falha na autenticacao, o usuario e notificado e o fluxo e finalizado; 5. O agente solicita todos os papeis que o usuario possui e os armazena em cache; 6. O agente solicita todas as permissoes atribuidas ao usuario e as armazena em cache; 7. O usuario e notificado que o processo de