Introdução
1. Resumo Executivo
Este estudo de caso analisa o design arquitetônico do Sistema de Internet Bankingpara uma instituição financeira fictícia, o “BigBank”. O objetivo do projeto era fornecer aos clientes de banco pessoal acesso seguro, acessível e multi-canal às suas contas (via web e móvel), ao mesmo tempo em que integrava-se à infraestrutura central legada de banco existente.
A arquitetura é documentada usando o Modelo C4 (Diagrama de Contêineres), que visualiza as escolhas tecnológicas de alto nível e como os contêineres do sistema (aplicações, bancos de dados, etc.) interagem.

2. Desafios Empresariais
-
Integração com Sistemas Legados:O banco possui um sistema robusto, mas antigo de “Mainframe Banking System” que detém a verdade central dos dados dos clientes. O novo sistema precisava expor esses dados sem substituir imediatamente o mainframe.
-
Acesso Multi-Canal:Os clientes exigiam acesso por meio de navegadores de desktop e dispositivos móveis.
-
Segurança:O manuseio de dados financeiros sensíveis exige autenticação rigorosa e canais de comunicação seguros.
3. Solução Arquitetônica (Visualização de Contêineres do C4)
A solução é projetada como um sistema desacoplado, onde a camada de apresentação é separada da camada de lógica de negócios e da camada de dados.
A. Camada de Interface do Usuário (Frontends)
O sistema suporta três pontos de entrada distintos para o Cliente de Banco Pessoal:
-
Aplicação de Página Única (SPA):
-
Tecnologia: JavaScript e Angular.
-
Função: Isso roda no navegador web do cliente. Ele fornece o completo conjunto completo de funcionalidades de banco na internet. É uma interface dinâmica e responsiva que se comunica assincronamente com o backend.
-
-
Aplicativo Web:
-
Tecnologia: Java e Spring MVC.
-
Função: Isso atua como o ponto de entrada para a experiência web. Ele entrega o conteúdo estático (HTML/CSS/JS) e hospeda o aplicativo de página única. Serve como o “lançador” do aplicativo Angular.
-
-
Aplicativo Móvel:
-
Tecnologia: Xamarin (permitindo o desenvolvimento multiplataforma, provavelmente iOS e Android).
-
Função: Fornece um “subconjunto limitado” de funcionalidades otimizadas para dispositivos móveis. Isso sugere que tarefas complexas (como configurar transferências internacionais) podem ser restritas à interface completa Web/SPA, enquanto tarefas comuns (verificar saldo) estão disponíveis no móvel.
-
B. Camada de Lógica de Negócios (Backend)
-
Aplicativo de API:
-
Tecnologia: Java e Spring MVC.
-
Função: Este é o sistema nervoso central da arquitetura. Ele atua como um Gateway de API ou Backend para Frontend (BFF).
-
Função: Ele expõe uma API JSON/HTTPS para os clientes Web e móveis. Ele gerencia autenticação, autorização e orquestração das solicitações de dados.
-
C. Camada de Dados e Integração
-
Banco de Dados:
-
Tecnologia: Esquema do Banco de Dados Oracle.
-
Função: Armazena dados específicos do internet-banking. Isso inclui informações de registro de usuário, credenciais de autenticação criptografadas (prática recomendada de segurança), e registros de acesso. Ele não não armazena os saldos bancários reais (esses estão no Mainframe).
-
Comunicação: O aplicativo da API lê/escrve neste através de JDBC.
-
-
Sistema Bancário Mainframe:
-
Função: O Sistema de Registro. Armazena informações centrais de banco (clientes, contas, transações).
-
Comunicação: O aplicativo da API comunica-se com o Mainframe usando XML sobre HTTPS. Isso indica que o Mainframe provavelmente é um serviço legado baseado em SOAP ou um sistema mais antigo que exige troca de dados estruturados em XML.
-
-
Sistema de E-mail:
-
Tecnologia: Microsoft Exchange.
-
Função: Gerencia notificações.
-
Comunicação: O aplicativo da API envia e-mails por meio de SMTP para o servidor Exchange, que então os entrega ao cliente.
-
4. Fluxos de Dados Principais e Percursos do Usuário
Cenário 1: Entrando via Navegador Web
-
O Cliente de Banco Pessoal navega até
bigbank.com/ibusando HTTPS. -
A solicitação atinge o Aplicativo Web (Java/Spring MVC).
-
O Aplicativo Web entrega o Aplicativo de Página Única (Angular) no navegador do cliente.
-
O cliente insere as credenciais na SPA.
-
A SPA faz uma chamada à API (
JSON/HTTPS) para o Aplicativo de API. -
O Aplicativo de API valida as credenciais contra o Banco de Dados (via JDBC).
-
Em caso de sucesso, a SPA solicita os saldos das contas. O Aplicativo de API busca esses dados do Sistema Bancário Mainframe (
XML/HTTPS) e retorna para a SPA.
Cenário 2: Notificação de Transação Móvel
-
O cliente faz um pagamento por meio do Aplicativo Móvel (Xamarin).
-
O App envia uma solicitação para o Aplicativo da API.
-
O Aplicativo da API processa o pagamento com o Mainframe.
-
O Aplicativo da API dispara um e-mail de confirmação enviando uma solicitação SMTP para o Sistema de E-mail (Exchange).
-
O cliente recebe uma notificação por e-mail.
5. Destaques Técnicos e Melhores Práticas
-
Separação de Responsabilidades: O diagrama separa claramente os dados específicos do “Banco Online” (Oracle DB) dos dados do “Banco Central” (Mainframe). Isso evita que a camada web tenha acesso direto ao livro contábil financeiro principal.
-
Tradução de Protocolo: O Aplicativo da API atua como um tradutor. Frontends modernos falam JSON, mas o backend legado fala XML. O Aplicativo da API fecha essa lacuna.
-
Segurança: As credenciais são armazenadas como “hashadas” no banco de dados, garantindo que, mesmo que o banco de dados seja comprometido, as senhas em texto puro não sejam expostas. Todas as comunicações externas usam HTTPS.
-
Escalabilidade: Ao usar uma Aplicação de Página Única (Angular) e uma API desacoplada, o frontend pode ser escalado independentemente da lógica do backend.
This post is also available in Deutsch, English, Español, فارسی, Français, English, Bahasa Indonesia, 日本語 and Polski.









