DESAFIO PROFISSIONAL DE PROGRAMAÇÃO PARA WEB
Esta é a descrição do seu Desafio Profissional. Para que você possa desenvolver sua atividade e chegar à conclusão desta avaliação, é preciso baixar e salvar o Template Padrão Único em word que está disponível no link ao final desta descrição. Para baixá-lo, clique em Arquivo Criar uma cópia Baixar uma cópia. Você só conseguirá editar o template depois de salvá-lo.
Vamos adiante. Leia com atenção.
Seja bem-vindo ao Desafio Profissional da Disciplina de Programação para Web. Aqui, você assume o papel de profissional responsável por analisar a situação, tomar decisões e propor soluções. É o momento de aplicar seus conhecimentos de forma prática e mostrar como lidaria com um desafio real.
ETAPA 1 – Apresentação do Desafio Profissional.
Você foi contratado como Arquiteto de Software Sênior por uma multinacional, que opera uma plataforma de vendas on-line com alta demanda transacional. O módulo central de Processamento de Pedidos (Carrinho de Compras, Validação, Checkout e Confirmação) foi identificado como um gargalo crítico de desempenho e escalabilidade, especialmente em períodos de pico de vendas (como a Black Friday), onde a falha em manter a robustez pode gerar prejuízos significativos.
A Empresa decidiu que a solução de modernização deve ser construída utilizando a plataforma Java Enterprise Edition (JEE), especificamente projetada para ambientes com grande demanda por desempenho e robustez. Seu papel é analisar os requisitos e projetar a arquitetura desse novo módulo, mobilizando conhecimentos sobre os componentes e serviços do JEE.
ETAPA 2 – Materiais de referência (ambientação) para o Desafio Profissional
O Memorial Analítico deve apresentar as análises e decisões sobre os seguintes pontos críticos:
- Baixa Escalabilidade: o sistema não consegue lidar com a concorrência de múltiplos usuários simultâneos no checkout, resultando em timeouts e perda de vendas. A arquitetura atual é monolítica e centralizada, dificultando a distribuição de carga.
- Complexidade Transacional: as operações de compra envolvem múltiplas etapas críticas (reserva de estoque, débito no cartão, registro do pedido), que devem ser tratadas como uma única transação atômica (tudo ou nada).
- Acoplamento Forte: a lógica de negócio, a camada de apresentação e a persistência de dados estão fortemente acopladas, tornando a manutenção e a evolução lentas.
Missão do Arquiteto
Seu desafio é propor uma Arquitetura Baseada em Componentes JEE para o módulo de Processamento de Pedidos, garantindo alta performance, robustez, segurança e escalabilidade, em substituição ao modelo atual.
Decisões e Entregáveis
O produto a ser entregue é um Memorial Analítico que deve detalhar e justificar as seguintes decisões arquiteturais, com base nos conceitos da disciplina:
- Arquitetura de Apresentação (View/Controller):
Proponha a tecnologia de frontend. Justifique a escolha do Java Server Faces (JSF) como framework padrão da plataforma Java para a construção de aplicações web, descrevendo seu papel na arquitetura MVC (Model-View-Controller).
Descreva como o JSF lidará com a interface de “Carrinho de Compras” (onde o estado da sessão do cliente precisa ser mantido).
- Lógica de Negócios (Business Tier):
Proponha o uso de Enterprise Java Beans (EJB) para implementar as regras de negócio.
Classifique e justifique o tipo de EJB mais adequado para:
Carrinho de Compras: Onde os itens adicionados pelo usuário devem ser mantidos durante a navegação.
Cálculo Final da Compra (Regras de Imposto/Desconto): Onde o estado conversacional não é necessário.
Gerenciamento de Estoque em Tempo Real: Onde o estado deve ser compartilhado e mantido por todos os usuários (por exemplo, um cache de produtos em oferta).
Descreva como o EJB Container garantirá a escalabilidade e o controle de concorrência para os stateless session beans e a exclusividade para os stateful session beans.
- Persistência e Transações (EIS Tier):
Justifique a escolha do Java Persistence API (JPA) em detrimento do uso direto de JDBC/SQL. Mencione como o JPA resolve o problema do mapeamento objeto relacional (ORM).
Descreva o papel do Gerenciador de Entidades (EntityManager) e como ele se integra com o serviço de Java Transaction API (JTA) para garantir a atomicidade das operações críticas de salvamento do pedido.

Nossa equipe é composta por profissionais especializados em diversas áreas, o que nos permite oferecer uma assessoria completa na elaboração de uma ampla variedade de atividades. Estamos empenhados em garantir a autenticidade e originalidade de todos os trabalhos que realizamos.
Ficaríamos muito satisfeitos em poder ajudar você. Entre em contato conosco para solicitar o seu serviço.
WhatsApp: (99) 99119-3171