Skip to content
This repository has been archived by the owner on Nov 20, 2024. It is now read-only.

Releases: MarnieGrenat/Coinnect

v2.0.0

07 Nov 01:17
c89f130
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.0.0...v2.0.0

v1.0.0

04 Nov 04:42
a30445d
Compare
Choose a tag to compare

Release Log - Versão 1.0.0 (v1.0.0)


Versão: 1.0.0
Data de Lançamento: 04/11/2024

Resumo:

Este é o lançamento da primeira versão completa do projeto Coinnect-FPPD. A V1.0 inclui a implementação do modelo Cliente/Servidor usando RPC/RMI, simulando transações bancárias seguras e com controle de concorrência. Esta versão foi desenvolvida para cumprir os requisitos do trabalho acadêmico, garantindo idempotência e semântica de execução única para operações críticas.

Funcionalidades Principais:

  • Servidor de Administração: Implementação completa do servidor que gerencia contas e executa transações bancárias (abertura, fechamento de contas, saques, depósitos e consultas de saldo) com controle de concorrência e idempotência.
  • Processo de Agência (Cliente): Funcionalidades de solicitação de abertura e fechamento de contas, além de operações de depósito, saque e consulta de saldo.
  • Processo de Caixa Automático (Cliente): Funcionalidades de solicitação de depósito, saque e consulta de saldo.
  • Controle de Conformidade: Implementação de garantia de execução única (exactly-once) com uso de RequestID e logs de requisições processadas.

Melhorias e Correções:

  • Implementação de Idempotência: Controle rigoroso para evitar múltiplas execuções da mesma operação.
  • Controle de Concorrência: Uso de sync.Mutex e sync.RWMutex para garantir acesso seguro a recursos compartilhados.
  • Testes Unitários: Testes robustos criados para verificar a idempotência, controle de concorrência e funcionalidade de todas as operações principais.
  • Makefile Atualizado: Inclusão de comandos para facilitar a compilação, teste e limpeza do projeto:
    • make a: Compila os arquivos do servidor e cliente.
    • make t: Executa os testes unitários.
    • make c: Limpa os binários gerados.

Testes e Verificações:

  • Testes de Idempotência: Verificação de que operações repetidas com o mesmo RequestID retornam consistentemente o mesmo resultado.
  • Testes de Concorrência: Testes para garantir que operações simultâneas em contas diferentes e na mesma conta sejam tratadas corretamente.
  • Cobertura de Testes: Garantia de cobertura para as principais operações de abertura de conta, depósito, saque, consulta de saldo e fechamento de conta.

Notas Importantes:

  • O projeto foi desenvolvido para simular cenários de falhas de rede e garantir a continuidade das operações.
  • A implementação foi projetada com foco na robustez e conformidade com os requisitos acadêmicos estabelecidos.