From: pbarros Date: Tue, 3 Apr 2012 15:43:07 +0000 (-0300) Subject: Adicionado agente Aprendiz, Mediador e Dominio X-Git-Url: http://200.18.67.61/gitweb/?a=commitdiff_plain;h=33421ac7f1a58ebff6bb8fc28108b077d5dee086;p=simdecs2.git Adicionado agente Aprendiz, Mediador e Dominio --- diff --git a/nbproject/project.properties b/nbproject/project.properties index 0ba3c30..d0cf659 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -54,7 +54,7 @@ includes=** j2ee.compile.on.save=true j2ee.deploy.on.save=true j2ee.platform=1.6-web -j2ee.platform.classpath=${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/jsf-impl.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar:${j2ee.server.home}/modules/javax.resource.jar:${j2ee.server.home}/modules/endorsed/javax.annotation.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.management.j2ee.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.security.auth.message.jar:${j2ee.server.home}/modules/javax.jms.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.security.jacc.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/javax.enterprise.deploy.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.ejb.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/jsf-api.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.servlet.jar:${j2ee.server.home}/modules/javax.transaction.jar:${j2ee.server.home}/modules/jersey-core.jar:${j2ee.server.home}/modules/jstl-impl.jar +j2ee.platform.classpath=${j2ee.server.home}/modules/jsf-api.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.enterprise.deploy.jar:${j2ee.server.home}/modules/javax.ejb.jar:${j2ee.server.home}/modules/javax.transaction.jar:${j2ee.server.home}/modules/jstl-impl.jar:${j2ee.server.home}/modules/jsf-impl.jar:${j2ee.server.home}/modules/javax.management.j2ee.jar:${j2ee.server.home}/modules/javax.jms.jar:${j2ee.server.home}/modules/endorsed/javax.annotation.jar:${j2ee.server.home}/modules/jersey-core.jar:${j2ee.server.home}/modules/javax.security.jacc.jar:${j2ee.server.home}/modules/javax.resource.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar:${j2ee.server.home}/modules/javax.security.auth.message.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.servlet.jar j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api-osgi.jar:${j2ee.server.home}/modules/javax.ejb.jar diff --git a/src/java/org/ufcspa/simdecs/action/AutenticaUsuarioAction.java b/src/java/org/ufcspa/simdecs/action/AutenticaUsuarioAction.java new file mode 100644 index 0000000..b7b3388 --- /dev/null +++ b/src/java/org/ufcspa/simdecs/action/AutenticaUsuarioAction.java @@ -0,0 +1,76 @@ +package org.ufcspa.simdecs.action; +/***************************************************************** + +SendMessageAction carries out sending the message to the GateWayAgent + +*****************************************************************/ + +import jade.wrapper.gateway.JadeGateway; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.persistence.EntityManager; +import javax.persistence.NoResultException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.ufcspa.simdecs.bean.BlackBoardBean; +import org.ufcspa.simdecs.entities.Usuario; +import org.ufcspa.simdecs.util.DbUtil; + +public class AutenticaUsuarioAction implements Action { + + public void perform(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException { + + + // create a BlackBoard for the session if it not exist + BlackBoardBean board = new BlackBoardBean(); + response.setContentType( "text/xml" ); + response.setHeader( "Cache-Control", "no-cache" ); + EntityManager em = DbUtil.getInstance().getEntityManager(); + PrintWriter out = response.getWriter(); + + board.setReceiver("Aprendiz"); + board.setMessage("Autentica"); + + + try { + JadeGateway.execute(board); + + } catch(Exception e) { + e.printStackTrace(); + } + + + + out.println( "" ); + + Usuario user; + try { + user = (Usuario) em.createQuery("select usu from Usuario as usu where usu.login=:login and usu.senha=:senha") + .setParameter("login", request.getParameter("user").toLowerCase()) + .setParameter("senha", request.getParameter("pass")) + .getSingleResult(); + + out.println( "" + String.valueOf(user.getId()) + "" ); + + + } catch (NoResultException ne) { + out.println( "" + "0" + "" ); + } finally { + out.print(board.getMessage()); + + out.println( "" ); + out.close(); + } + + out.flush(); + out.close(); + + } + +} + diff --git a/src/java/org/ufcspa/simdecs/action/SendMessageAction.java b/src/java/org/ufcspa/simdecs/action/SendMessageAction.java index e1158ff..a04f159 100644 --- a/src/java/org/ufcspa/simdecs/action/SendMessageAction.java +++ b/src/java/org/ufcspa/simdecs/action/SendMessageAction.java @@ -18,8 +18,7 @@ import org.ufcspa.simdecs.bean.BlackBoardBean; public class SendMessageAction implements Action { - public void perform(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException { + public void perform(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException { // create a BlackBoard for the session if it not exist @@ -28,16 +27,17 @@ public class SendMessageAction implements Action { PrintWriter out = response.getWriter(); board.setReceiver("PingJani"); - board.setMessage("Hey whats up"); + board.setMessage("Hey whats up//"); try { JadeGateway.execute(board); + } catch(Exception e) { e.printStackTrace(); } - out.print("Message has been sent!
"); + out.print("Messagem ja foir enviada !
"); - out.print("Reply:"+board.getMessage()); + out.print("Resposta:"+board.getMessage()); out.print("
Go back "); diff --git a/src/java/org/ufcspa/simdecs/agent/AprendizAgent.java b/src/java/org/ufcspa/simdecs/agent/AprendizAgent.java index 7030cb1..a002a1d 100644 --- a/src/java/org/ufcspa/simdecs/agent/AprendizAgent.java +++ b/src/java/org/ufcspa/simdecs/agent/AprendizAgent.java @@ -1,11 +1,14 @@ package org.ufcspa.simdecs.agent; -/***************************************************************** - -Agent which answers all messages with a "Pong" - -*****************************************************************/ - +/** + * *************************************************************** + * + * Agent which answers all messages with a "Pong" + * + **************************************************************** + */ +import jade.content.onto.basic.Action; +import jade.core.AID; import jade.core.Agent; import jade.core.behaviours.*; import jade.lang.acl.*; @@ -13,41 +16,75 @@ import jade.lang.acl.*; import jade.domain.DFService; import jade.domain.FIPAAgentManagement.*; import jade.domain.FIPAException; +import jade.wrapper.gateway.JadeGateway; +import java.io.PrintWriter; +import org.ufcspa.simdecs.bean.BlackBoardBean; +import org.ufcspa.simdecs.util.JadeUtil; -public class AprendizAgent extends Agent -{ - - protected void setup() - { - - // pong behaviour - addBehaviour(new CyclicBehaviour(this) - { - public void action() - { - ACLMessage msg = receive(); - String content= ""; - if (msg!=null) { - content= - "
- " + myAgent.getLocalName() + " received: " + msg.getContent()+ - "
- " + myAgent.getLocalName() + " sent: " + "Pong"; - - ACLMessage reply = msg.createReply(); - reply.setPerformative( ACLMessage.INFORM ); - reply.setContent(content); - send(reply); - System.out.print(content); - } - else block(); - } - }); - - } - - protected void takeDown() - { - try { DFService.deregister(this); } - catch (Exception e) {} - } -} +public class AprendizAgent extends Agent { + + ACLMessage msg = null; + String content = ""; + ACLMessage reply = null; + + protected void setup() { + + + // pong behaviour + addBehaviour(new CyclicBehaviour(this) { + public void action() { + msg = receive(); + if (msg != null) { + if (msg.getContent().trim().equals("Autentica")) { + reply = msg.createReply(); + addBehaviour(new AprendizBehaviour()); + } + + } else { + block(); + } + } + }); + + } + + protected void takeDown() { + try { + DFService.deregister(this); + } catch (Exception e) { + } + } + + public class AprendizBehaviour extends Behaviour { + + private int step = 0; + + @Override + public void action() { + switch (step) { + case 0: + reply.setPerformative(ACLMessage.INFORM); + reply.setContent(content); + send(reply); + System.out.print(content); + step++; + break; + case 1: + // Executar a operação Y + ACLMessage msg1 = new ACLMessage(ACLMessage.REQUEST); + msg1.addReceiver(new AID("PingJane", AID.ISLOCALNAME)); + msg1.setContent("Hey whats up/"); + send(msg1); + System.out.print(msg1); + step++; + break; + } + } + + @Override + public boolean done() { + return step == 2; + } + } +} diff --git a/src/java/org/ufcspa/simdecs/agent/AprendizAgent1.java b/src/java/org/ufcspa/simdecs/agent/AprendizAgent1.java new file mode 100644 index 0000000..115cdc5 --- /dev/null +++ b/src/java/org/ufcspa/simdecs/agent/AprendizAgent1.java @@ -0,0 +1,69 @@ +package org.ufcspa.simdecs.agent; +/***************************************************************** + +Agent which answers all messages with a "Pong" + +*****************************************************************/ + + +import jade.content.onto.basic.Action; +import jade.core.AID; +import jade.core.Agent; +import jade.core.behaviours.*; +import jade.lang.acl.*; + +import jade.domain.DFService; +import jade.domain.FIPAAgentManagement.*; +import jade.domain.FIPAException; +import jade.wrapper.gateway.JadeGateway; +import java.io.PrintWriter; +import org.ufcspa.simdecs.bean.BlackBoardBean; +import org.ufcspa.simdecs.util.JadeUtil; + +public class AprendizAgent1 extends Agent +{ + + protected void setup() + { + + // pong behaviour + addBehaviour(new CyclicBehaviour(this) + { + public void action() + { + ACLMessage msg = receive(); + String content= ""; + if (msg!=null) { + if ( msg.getContent().trim().equals("Autentica")){ + + content = "True"; + } + else + { + content = "false"; + } + + //"
- " + myAgent.getLocalName() + " received: " + msg.getContent()+ + //"
- " + myAgent.getLocalName() + " sent: " + "Pong"; + + ACLMessage reply = msg.createReply(); + reply.setPerformative( ACLMessage.INFORM ); + reply.setContent(content); + send(reply); + System.out.print(content); + +// + } + else block(); + } + }); + + } + + protected void takeDown() + { + try { DFService.deregister(this); } + catch (Exception e) {} + } +} + diff --git a/src/java/org/ufcspa/simdecs/agent/PongAgent.java b/src/java/org/ufcspa/simdecs/agent/PongAgent.java index 5541bec..730a2ce 100644 --- a/src/java/org/ufcspa/simdecs/agent/PongAgent.java +++ b/src/java/org/ufcspa/simdecs/agent/PongAgent.java @@ -29,8 +29,8 @@ public class PongAgent extends Agent String content= ""; if (msg!=null) { content= - "
- " + myAgent.getLocalName() + " received: " + msg.getContent()+ - "
- " + myAgent.getLocalName() + " sent: " + "Pong"; + "
- " + myAgent.getLocalName() + " Recebido: " + msg.getContent()+ + "
- " + myAgent.getLocalName() + " Enviado: " + "-Pong-"; ACLMessage reply = msg.createReply(); reply.setPerformative( ACLMessage.INFORM ); diff --git a/src/java/org/ufcspa/simdecs/comunicacao/MetodoAutenticacaoAgente.java b/src/java/org/ufcspa/simdecs/comunicacao/MetodoAutenticacaoAgente.java new file mode 100644 index 0000000..134d0f4 --- /dev/null +++ b/src/java/org/ufcspa/simdecs/comunicacao/MetodoAutenticacaoAgente.java @@ -0,0 +1,120 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.ufcspa.simdecs.comunicacao; + +import java.io.IOException; +import java.io.PrintWriter; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.*; +import javax.persistence.EntityManager; +import javax.persistence.NoResultException; +import org.ufcspa.simdecs.action.Action; +import org.ufcspa.simdecs.entities.Usuario; +import org.ufcspa.simdecs.util.DbUtil; +import org.ufcspa.simdecs.util.JadeUtil; + +/** + * + * @author pbarros + * + */ +public class MetodoAutenticacaoAgente extends HttpServlet { + + /** + * Processes requests for both HTTP + * GET and + * POST methods. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + private ServletConfig config; + public void init(ServletConfig config) + throws ServletException{ + this.config=config; + } + protected void processRequest(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + + PrintWriter out = response.getWriter(); + + + + + response.setContentType( "text/xml" ); + response.setHeader( "Cache-Control", "no-cache" ); + EntityManager em = DbUtil.getInstance().getEntityManager(); + + out.println( "" ); + + Usuario user; + try { + user = (Usuario) em.createQuery("select usu from Usuario as usu where usu.login=:login and usu.senha=:senha") + .setParameter("login", request.getParameter("user").toLowerCase()) + .setParameter("senha", request.getParameter("pass")) + .getSingleResult(); + + out.println( "" + String.valueOf(user.getId()) + "" ); + + + } catch (NoResultException ne) { + out.println( "" + "0" + "" ); + } finally { + + out.println( "" ); + out.close(); + } + + + + } + + // + /** + * Handles the HTTP + * GET method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Handles the HTTP + * POST method. + * + * @param request servlet request + * @param response servlet response + * @throws ServletException if a servlet-specific error occurs + * @throws IOException if an I/O error occurs + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + processRequest(request, response); + } + + /** + * Returns a short description of the servlet. + * + * @return a String containing servlet description + */ + @Override + public String getServletInfo() { + return "Short description"; + }// +} diff --git a/src/java/org/ufcspa/simdecs/util/JadeUtil.java b/src/java/org/ufcspa/simdecs/util/JadeUtil.java index f026f89..aeda60a 100644 --- a/src/java/org/ufcspa/simdecs/util/JadeUtil.java +++ b/src/java/org/ufcspa/simdecs/util/JadeUtil.java @@ -7,6 +7,7 @@ package org.ufcspa.simdecs.util; import jade.wrapper.gateway.JadeGateway; import java.util.HashMap; import org.ufcspa.simdecs.action.Action; +import org.ufcspa.simdecs.action.AutenticaUsuarioAction; import org.ufcspa.simdecs.action.SendMessageAction; /** @@ -21,6 +22,7 @@ public class JadeUtil { public JadeUtil() { actions = new HashMap(); actions.put("sendmessage", new SendMessageAction()); + actions.put("autenticausuario", new AutenticaUsuarioAction()); // This sets that which class will be the GateWayAgent JadeGateway.init("org.ufcspa.simdecs.agent.MyGateWayAgent", null); } diff --git a/web/teste.jsp b/web/teste.jsp index d369226..73b003a 100644 --- a/web/teste.jsp +++ b/web/teste.jsp @@ -31,6 +31,7 @@ Password:

+

Metodo para gravar LOG

Id:      
@@ -75,6 +76,17 @@ Tipo Log:
         
+

Metodo autenticação / comunicacao agentes +
+

+
+Name:      
+Password:
+
    +      + +
+