Java

 Integração entre Sistemas de Pagamentos

Avaliação da Disciplina: Integração Java
Prof. Samuel Lima

MBA em Desenvolvimento de Aplicações Java - SOA / FIAP
08/09/2011

Christiny Belini Goulart
Fabio Gonçalves Martins
Robson de Sousa Martins


Download do código-fonte:

Integração entre Sistemas de Pagamentos (ZIP ~11KB)


Tecnologias empregadas:

  • ActiveMQ;
  • JavaMail

Enunciado:

Integração entre duas aplicações utilizando JMS e JavaMail

Objetivo: Construir uma integração pseudo-síncrona entre duas aplicações de negócio utilizando mensageria (JMS / MQ).

  • Aluno A: Deverá construir a parte cliente da integração, enviando uma requisição e aguardando uma resposta.
  • Aluno B: Deverá construir a parte servidora da integração, recebendo uma requisição, processando-a, enviando um e-mail e devolvendo uma mensagem de resposta.

Aluno A e aluno B deverão descrever o cenário de negócio e estabelecer um protocolo de mensagem de requisição e resposta (preferencialmente em formato XML).

Entregas: Cada aluno deverá entregar um arquivo TXT contendo a descrição do cenário de negócio, o nome e a matrícula do aluno parceiro, o layout das mensagens de requisição e resposta, e um arquivo contendo o código fonte do programa que construiu.

Critérios para avaliação: Subjetivo, baseado na comprovação do domínio do conhecimento da matéria dada e exercícios realizados em sala de aula. Parse e tratamento adequado das mensagens XML e aderência da implementação a um cenário real de integração serão diferenciais.


Layout da Mensagem:

A mensagem será um objeto que implementa a interface a seguir:

package br.com.fiap.pagamentos.producer;

import java.util.Date;

public interface InterfacePagamentos {
    //Buscar o nome do usuário
    public String getNome();
    //Grava o nome do usuário
    public void setNome(String nome);
    //Busca número do cartão do usuário
    public int getNuCartao();
    //Grava o número do cartão do usuário
    public void setNuCartao(int nuCartao);
    //Busca a validade do cartão do usuário
    public Date getValidade();
    //Grava a validade do cartão do usuário
    public void setValidade(Date validade);
    //Buscar o valor do gasto feito pelo usuário
    public int getValor();
    //Grava o valor do gasto feito pelo usuário
    public void setValor(int valor);
    //Busca o status da compra (Aprovado ou Negado)
    public String getStatus();
    //Grava o status da compra (Aprovado ou Negado)
    public void setStatus(String status);
}

Descrição de Cenário:

Pagamentos com cartões de créditos.

O usuário ao passar o cartão de crédito (Máquina do Fabio), entrará em contato com o servidor (Máquina da Christiny) e o listener (Máquina do Robson), consumirá as mensagens, processará, retornará a resposta e notificará via email o usuário.

O Servidor de emails está na máquina da Christiny.

Tendo como regra de negócio a aprovação de compra com valor abaixo de 100 e reprovação com valor acima de 100.

Máquinas:

  • 10.1.25.6 - Fabio
  • 10.1.25.7 - Christiny
  • 10.1.25.8 - Robson