🚀 MOM são sistemas que permitem o envio de mensagens entre entidades de um sistema distribuído
O projeto proposto a ser desenvolvido é um sistema para uma bolsa de valores, como a Bovespa, utilizando o RabbitMQ.
Etapa 1 - Executar a bolsa de valores
- Dê dois cliques no arquivo "StockExchange.jar";
- Digite o endereço do servidor ou mantenha como "localhost";
- Clique em "Abrir Negociações";
Etapa 2 - Executar uma corretora
- Dê dois cliques no arquivo "Brocker.jar";
- Digite o nome do Broker ou mantenha como 'BKR1';
- Selecione uma ação da bovespa no combobox ou mantenha na primeira opção;
- Digite a quantidade de lotes a serem negociados para esta ação;
- Digite o preço de cada lote a ser negociado para esta ação;
- Clique no botão 'Comprar' para abrir uma oferta de compra ou clique no botão 'Vender' para abrir uma oferta de venda desta ação;
Etapa 3 - Acompanhar ações
- Clique no botão 'Abrir Visualizador';
- Digite o endereço do servidor ou mantenha como 'localhost';
- Selecione uma ação da bovespa no combobox ou mantenha na primeira opção;
- Clique no botão 'Acompanhar' para ver todas as negociações;
Etapa 4 - Encaminhar mensagens
- O envio de mensagens acontece automaticamente quando a bolsa de valores recebe qualquer mensagem;
Etapa 5 - Realizar transação
- Assim como a etapa 4, a etapa 5 também acontece automaticamente quando uma nova oferta é publicada no livro de ofertas;
Entities
* BrokerConnection - é uma thread que realiza as publicações no canal "BROKER".
* BrokerReceive - é uma thread que recebe as informações do canal "BOLSADEVALORES" baseado em um determinado tópico.
* StockConnection - é uma thread que realiza as publicações no canal "BOLSADEVALORES".
* StockReceive - é uma thread que recebe as informações do canal "BROKER" baseado em um determinado tópico.
GUI
* BrokerGUI - é uma interface que permite realizar novas negociações e acompanhar as negociações em andamento.
* StockGUI - é uma interface que permite iniciar e acompanhar as negociações em andamento.
Utils
* AssetList - onde é realizado a leitura do arquivo que contém a lista de ações da Bovespa.
* OfferBook - onde é armazenado as ofertas e as correspondências de compra e venda.
* Transaction - onde é realizado as transações da aplicação.
$ BrokerReceive.run() - gera um JLabel, insere um JPanel na interface para ser exibido em "BrokerGUI".
$ StockReceive.run() - gera um JLabel, insere um JPanel na interface de "StockGUI" e emite uma mensagem para a "BOLSADEVALORES" armazená-la em OfferBook.
$ BrokerGUI.viewer() - gera e exibe o visualizador de negociações acompanhado pelo "BROKER".
$ AssetList.load() - realiza a leitura de um arquivo e retorna uma lista com os códigos de todos os ativos.
$ OfferBook.store() - recebe uma oferta e armazena dentro da lista.
$ OfferBook.matchOffers() - recebe a última oferta salva e busca na lista uma oferta correspondente para realizar uma transação entre elas.
$ Transaction.store() - recebe duas ofertas e realiza a transação entre elas.
O diagrama de classes é fundamental, pois, através da sua representação conseguimos mapear de forma clara a estrutura do sistema.
O diagrama de componentes apresenta os diferentes componentes de um sistema, além de possíveis dependências entre tais elementos.
O diagrama de sequência é uma solução dinâmica utilizada porque incide especificamente sobre linhas da vida, ou os processos e objetos que vivem simultaneamente, e as mensagens trocadas entre eles para desempenhar uma função antes do término da linha de vida.
- Matheus Santos Rosa Carneiro - mcarneirobug
- Raissa Carolina Vilela da Silva - raissavilela
- Hugo Bastos de Paula - hugodepaula