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, 日本語, Polski, Ру́сский, Việt Nam, 简体中文 and 繁體中文.













