DESAFIO PROFISSIONAL DE PROGRAMAÇÃO PARA WEB

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:

 

  1. 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.

 

  1. 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).

 

  1. 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:

 

  1. 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).

 

  1. 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.

 

  1. 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.

Aponte o celular para abrir o WhatsApp

ou clique aqui
📚 Dúvidas sobre esta atividade?
WhatsApp: (99) 99119-3171
Este site utiliza cookies para lhe oferecer uma melhor experiência de navegação. Ao navegar neste site, você concorda com o uso de cookies.