Archive for August 13th, 2007

Tenho trabalhando numa demo de SOA (Service Oriented Architecture), para demonstrar em clientes e eventos algumas situações que clientes enfrentam num cenário de SOA.

O nome da solução é o MegaBroker, o qual espero torná-lo open-source com fins para estudos das pessoas, assim como um “BluePrints”-LIKE.el
Simulamos uma Aplicação JME, na qual um Midlet envia uma Mensagem para um WebService, o qual publica essa mensagem num diretório especifico.

SOA ME

Este Midlet chama uma função de um WebService que publica a Mensagem em formato CSV num Diretório no servidor:

[java]

/**
*
* @author jsilva
*/
@WebService()
public class ProposalProducer {

private SimpleDateFormat formatter;
/**
* Web service operation
*/
@WebMethod
public String publish
(@WebParam(name = “proposal”)
String proposal) {

formatter = new
SimpleDateFormat(”hhmmsszzza”);
try {
BufferedWriter out =
new BufferedWriter(new FileWriter
(”/home/jsilva/NotBackedUp/transacaoes/”+
formatter.format(new Date())+”.txt”));
out.write(proposal.toString());
out.close();
} catch (IOException e) {

e.printStackTrace();
return “FAIL”;
}
return “OK”;
}

[/java]

Criando um Listener via JBoss ESB

Basicamente nesta DEMO, o que acontece é que o WebService publica a mensagem enviada pelo Celular num pasta qualquer, esta mensagem é no formato texto, no caso um simples CSV. O JBoss ESB captura este evento de gravacao de arquivo na pasta e invoca uma ação de um Bean qualquer. o conteúdo da mensagem torna-se publico numa fila de mensagem, onde várias financeiras pode estar “escutando”, e cada uma delas da sua forma, uma pode ouvir XML, outra pode esperar por CSV, ou ainda por quaquer formato estrutura que o JBoss ESB consiga transformar com a ajuda de Smoocks ou de um Adaptador qualquer.

fina.png

A financeira A ou B pode devolver o resultado no mesmo BUS ou em outro, ou ainda numa fila de JMS, onde tudo isto seria totalmente agnóstico e automaticamente roteável, devido as características do JBoss ESB.

 Com as novas tecnologias e formas de comunicação de canais entre as empresas e consumidores, aplicações como estas serão cada vez mais necessárias, assim tecnologias e projetos como: JBoss ESB, JBoss Messaging, JBossWS, JBoss AS podem resolver seu dia-a-dia de forma simples.