Aplicações corporativas multicamadas – Parte 1
Este artigo apresenta um tutorial para a construção de uma pequena aplicação corporativa em Java EE. Para isso, empregou-se o uso intensivo dos assistentes de código presentes na IDE NetBeans 7, além das facilidades de integração que a ferramenta traz com o servidor de aplicação GlassFish 3.
Em que situação o tema é
útil
Para quem programa em Java
EE, a integração entre NetBeans e GlassFish permite a criação de aplicações
corporativas com qualidade e menor tempo, fatores essenciais para a
produtividade em projetos dessa natureza. Aos desenvolvedores novatos, a
utilização dos assistentes de código reduz a curva de aprendizado das
particularidades e complexidades envolvidas na plataforma.
Este terceiro artigo encerra a série que abordou o desenvolvimento de aplicações corporativas, focando as tecnologias Java EE. Uma aplicação corporativa representa um software que normalmente lida com grandes bases de dados, está integrado a outros sistemas, e gerencia informações que agregam valor aos processos de negócio das organizações.
Tais aplicações devem estar baseadas em tecnologias que viabilizem a segurança de acesso simultâneo de muitos usuários, a possibilidade de escalabilidade para aumento de carga de processamento, tempo de resposta aceitável para múltiplas requisições, tratamento de tolerância a falhas, entre outras preocupações.
Para quem constrói, envolve lidar com sistemas de alta e média complexidade, que interagem com diversas tecnologias e se integram com outros sistemas, muitas vezes antigos e difíceis de manter e evoluir – os chamados sistemas legados.
A plataforma Java EE fornece tanto a infraestrutura de execução para as aplicações corporativas, em servidores que seguem a arquitetura de sistemas multicamadas, bem como o ambiente de desenvolvimento baseado em componentes de software, por meio da especificação Enterprise JavaBeans (EJB), permitindo a reutilização de partes que compartilham as mesmas funcionalidades em diferentes aplicações.
Neste contexto, o objetivo deste artigo é apresentar um passo a passo para a construção de uma aplicação corporativa na plataforma Java EE 6, demonstrando os principais conceitos vistos nos artigos anteriores. Elaborado na forma de tutorial, você aprenderá a criar uma pequena aplicação, chamada CotacaoAppEE, construída com um componente Enterprise JavaBeans (EJB do tipo session bean) na camada de negócio, e a camada cliente baseada na web, em JavaServer Faces (JSF).
Para acelerar o desenvolvimento do aplicativo, serão empregados alguns recursos que automatizam a geração de código por meio do NetBeans 7. O uso de ferramentas que fornecem suporte à engenharia de software, integradas em ambientes de desenvolvimento, chamados IDEs (Integrated Development Environment), como é o caso do NetBeans, melhora a produtividade e reduz o tempo de construção do software. A opção pelo NetBeans vem do fato da ferramenta apresentar facilidades de integração com serviços que estão relacionados à plataforma Java, como a implantação automática no servidor EJB (neste projeto, o GlassFish), a presença de assistentes para gerenciamento de serviços do GlassFish, a conectividade com o gerenciador de banco de dados (JavaDB), a simplificação no uso de componentes da camada web, entre outros.
O foco deste tutorial é mostrar como a tecnologia Java EE, aliada com o uso eficiente de um ambiente de desenvolvimento (IDE) e das técnicas de arquitetura de software (no caso, padrões de projeto), traz para simplificar a construção de aplicações corporativas. Portanto, o código escrito para os exemplos atende a esse propósito, de apresentar o essencial para tornar as ideias compreensíveis. Em consequência, algumas preocupações ficaram de fora, como é o caso do tratamento de erros, os aspectos da estética (layout) das páginas, o refinamento da lógica, e explicações detalhadas sobre os componentes empregados.
Para desenvolver este tutorial, é necessário realizar o download do IDE NetBeans 7.2 com os seguintes servidores: GlassFish 3.1.2 (EJB), Tomcat 7.0 (web) e Java DB (banco de dados). Tais servidores virão junto com a distribuição Java EE do NetBeans, e podem também ser adicionados como pacotes, via Gerenciador de Plug-ins, a partir da opção Ferramentas, no menu principal da IDE.
A aplicação exemplo
CotacaoAppEE é um aplicativo que apresenta a cotação diária de moedas estrangeiras em moeda corrente (Real), permitindo que o usuário receba por e-mail a cotação de uma determinada moeda. A cotação da moeda é recuperada a partir do último valor inserido no banco de dados para cada moeda cotada. Com o intuito de testar o aplicativo, disponibilizamos um arquivo de script SQL que, ao ser executado, adicionará alguns dados no banco de dados. Para esta aplicação não foi implementada a funcionalidade de atualização diária dos valores de cotação das moedas, portanto, considere como uma futura melhoria esse requisito funcional.
Do ponto de vista da arquitetura de software, a aplicação foi projetada em camadas seguindo as diretrizes da plataforma Java EE, com a presença da camada cliente (web), a camada de regras de negócio (contêiner EJB – vide Nota do DevMan 1), e a camada de armazenamento (servidor de banco de dados relacional). A localização e execução dessas camadas estarão no mesmo servidor de aplicação, fato que norteou a decisão por componentes EJB com acesso local pela camada cliente, o que aumenta a eficiência quanto ao tempo de resposta de chamadas aos serviços.
O contêiner EJB (Enterprise JavaBeans) é um dos principais módulos de um servidor Java EE. É responsável pela implantação e gerência dos componentes de negócio da aplicação corporativa. Ele implementa vários recursos, como suporte às transações distribuídas, segurança de autenticação e autorização, acesso remoto aos componentes, persistência, integração entre aplicações, entre outras.
Na perspectiva do processo de desenvolvimento, o modelo de construção de uma aplicação corporativa não difere muito de um software tradicional. Das atividades previstas no processo, as de engenharia de requisitos são as mais críticas para o sucesso do projeto, o que envolve a própria concepção e entendimento dos requisitos do software. Nesse aspecto, é fundamental na modelagem da solução, levantar e identificar os “conceitos” que descrevem os objetos, as propriedades e relações do modelo do domínio (dos dados) do sistema; tarefa esta que é realizada nas etapas iniciais com o levantamento das necessidades, e aprimora-se com a análise e o projeto da aplicação.
Para o estudo de caso apresentado neste tutorial, CotacaoAppEE possui apenas três classes conceituais do modelo de domínio, que são Moeda, Cotação e o Acompanhamento da Cotação, representadas no diagrama de classes (UML) exposto na Figura 1. A partir desse modelo identificamos as entidades de negócio essenciais para o projeto arquitetural seguindo a plataforma Java EE.
Figura 1. Diagrama de classes do modelo conceitual.
É importante destacar que o processo de modelar o domínio provavelmente será mais complexo do que parece ser neste exemplo. Dependendo do tamanho da aplicação, podem ser necessárias várias iterações no refinamento do processo de construção do modelo.
Estratégias para criar as entidades
Por definição, aplicações corporativas manipulam dados que são armazenados em grandes bases persistentes. Para uma aplicação Java EE, isso se traduz nos objetos de persistência, chamados entidades, que serão tratados pelo mecanismo de mapeamento objeto-relacional (JPA).
A identificação dos objetos de persistência exige um conhecimento no domínio do negócio, representado pelo modelo conceitual (como diagrama de classes do domínio), ou da capacidade de criar o esquema do banco de dados, e até mesmo interpretar um esquema pré-existente, quando se tratar de um sistema legado. Essas estratégias são facilitadas pelo uso de ferramentas que podem gerar automaticamente as entidades e as correspondentes tabelas de banco de dados.
A primeira estratégia é partir do próprio modelo de classes, considerando as regras de orientação a objetos, como identificação de classes e atributos, associações entre classes, herança e polimorfismo. Com o modelo de classes pronto, aplica-se o mecanismo de mapeamento objeto-relacional da JPA. Em seguida, gera-se o esquema do banco de dados da aplicação. A essa abordagem chamamos de top down, pois parte do modelo conceitual (orientado a objetos) para o esquema de banco de dados.
Na segunda estratégia, chamada de bottom up, ocorre o inverso da abordagem anterior. Parte-se de um esquema de banco de dados pronto (ver ...
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.