Você está na página 1de 16

Universidade Católica de Moçambique

Faculdade de Gestão de Turismo e Informática

Java EE – Technologies Overview

Pemba, Maio de 2022


Universidade Católica de Moçambique

Faculdade de Gestão de Turismo e Informática

Java EE – Technologies Overview

Discentes:

Aquil Loureço Amorim Maina


Edson Francisco Dias
Edris da Sónia Isaac
Elias Paulo Raul
Helder Filipe Zacarias

Curso: Licenciatura em Tecnologias de informação

Ano Curricular: 3˚ ano Diurno

Cadeira: Desenho e Implementação de A. C.

Docente:

Celso de Sousa

Pemba, Maio de 2022


Índice

Introdução ................................................................................................................................... 1
Plataforma Java EE..................................................................................................................... 2
Componentes Java EE ............................................................................................................ 3
Serviços de contêiner .................................................................................................................. 3
Tipos de contêiner .............................................................................................................. 5
Montagem e implantação de aplicativos Java EE .................................................................. 5
Funções de desenvolvimento .................................................................................................. 6
Provedor de Produto Java EE ..................................................................................................... 7
Provedor de componentes de aplicativos ................................................................................... 7
Desenvolvedor Enterprise Bean ................................................................................................. 7
Desenvolvedor de Componentes Web .................................................................................... 8
Desenvolvedor do cliente de aplicativos ................................................................................ 8
Montador de aplicativos ......................................................................................................... 8
Algumas especificações do Java EE ........................................................................................... 8
Conclusão ................................................................................................................................. 12
Referências Bibliográfica ......................................................................................................... 13
Introdução
Este trabalho tem como objetivo geral apresentar e aplicar técnicas já existentes para o
desenvolvimento de software em plataforma JAVA para Web. Como alvo de estudo deste
trabalho foi escolhido uma aplicação financeira pessoal para ser desenvolvida. Pretende-se
apresentar as vantagens que essas técnicas oferecem para o desenvolvimento de software em
plataforma Java EE (Enterprise Edition).

Objetivos – Simplificar o desenvolvimento, – Fornecer suporte básico para os vários tipos de


componentes da plataforma Java EE. • Benefícios do JEE 7: – melhoria de produtividade • mais
Annotations e menos configuração XML, • mais Plain Old Java Objects (POJOs) e – packaging
mais simples.

1
Plataforma Java EE

Plataforma Java EE (Enterprise Edition) é uma plataforma para desenvolvimento e execução


de software para atender às necessidades do mercado corporativo. Os chamados aplicativos
empresariais são projetados para resolver os problemas enfrentados por grandes empresas.
Esses aplicativos são úteis, até mesmo essenciais, para desenvolvedores individuais,
organizações de pequeno, médio e grande porte (SOUZA, 2015). As características de
segurança e confiabilidade tornam esses aplicativos, muitas vezes mais complexos. A
plataforma Java EE reduz a complexidade de desenvolvimento de aplicações corporativas,
fornecendo um modelo de desenvolvimento, API, e ambiente de tempo de execução que
permitem que os desenvolvedores se concentrem em funcionalidades (ORACLE).

A plataforma Java EE é desenvolvida por meio do Java Community Process (JCP), que é
responsável por todas as tecnologias Java. Grupos de especialistas, compostos por partes
interessadas, criaram Java Specification Requests (JSRs) para definir as várias tecnologias Java
EE. O trabalho da Comunidade Java no programa JCP ajuda a garantir o padrão de estabilidade
e compatibilidade entre plataformas da tecnologia Java.

A plataforma Java EE usa um modelo de programação simplificado. Os descritores de


implantação XML são opcionais. Em vez disso, um desenvolvedor pode simplesmente inserir
as informações como uma anotação diretamente em um arquivo de origem Java, e o servidor
Java EE configurará o componente na implantação e no tempo de execução. Essas anotações
geralmente são usadas para incorporar em um programa dados que, de outra forma, seriam
fornecidos em um descritor de implantação. Com anotações, você coloca as informações de
especificação em seu código ao lado do elemento do programa afetado.

Na plataforma Java EE, a injeção de dependência pode ser aplicada a todos os recursos de que
um componente precisa, ocultando efetivamente a criação e a pesquisa de recursos do código
do aplicativo. A injeção de dependência pode ser usada em contêineres EJB, contêineres da
Web e clientes de aplicativos. A injeção de dependência permite que o contêiner Java EE insira
automaticamente referências a outros componentes ou recursos necessários, usando anotações.

Este tutorial usa exemplos para descrever os recursos disponíveis na plataforma Java EE para
desenvolvimento de aplicativos corporativos. Seja você um desenvolvedor corporativo novo ou

2
experiente, você deve encontrar nos exemplos e no texto que o acompanha uma base de
conhecimento valiosa e acessível para criar suas próprias soluções.

Se você é novo no desenvolvimento de aplicativos corporativos Java EE, este capítulo é um


bom lugar para começar. Aqui você revisará os fundamentos do desenvolvimento, aprenderá
sobre a arquitetura e as APIs Java EE, se familiarizará com termos e conceitos importantes e
descobrirá como abordar a programação, montagem e implantação de aplicativos Java EE.

Componentes Java EE

Os aplicativos Java EE são compostos de componentes. Um componente Java EE é uma


unidade de software funcional independente que é montada em um aplicativo Java EE com suas
classes e arquivos relacionados e que se comunica com outros componentes.

A especificação Java EE define os seguintes componentes Java EE:

• Clientes de aplicativos e applets são componentes executados no cliente.


• Os componentes de tecnologia Java Servlet, JavaServer Faces e JavaServer Pages
(JSP) são componentes da Web executados no servidor.
• Os componentes Enterprise JavaBeans (EJB) (enterprise beans) são componentes de
negócios executados no servidor.

Os componentes Java EE são escritos na linguagem de programação Java e são compilados da


mesma forma que qualquer programa na linguagem. As diferenças entre os componentes Java
EE e as classes Java “padrão” são que os componentes Java EE são montados em um aplicativo
Java EE,s são verificados como bem formados e em conformidade com a especificação Java
EE e são implantados em produção, onde são são executados e gerenciados pelo servidor Java
EE.

Serviços de contêiner

Os contêineres são a interface entre um componente e a funcionalidade específica da plataforma


de baixo nível que oferece suporte ao componente. Antes de poder ser executado, um
componente da Web, bean corporativo ou cliente de aplicativo deve ser montado em um módulo
Java EE e implementado em seu contêiner.

3
O processo de montagem envolve a especificação de configurações de contêiner para cada
componente no aplicativo Java EE e para o próprio aplicativo Java EE. As configurações de
contêiner personalizam o suporte subjacente fornecido pelo servidor Java EE, incluindo
serviços como segurança, gerenciamento de transações, pesquisas de API de Java Naming and
Directory Interface (JNDI) e conectividade remota. Aqui estão alguns dos destaques.

• O modelo de segurança Java EE permite configurar um componente da Web ou bean


corporativo para que os recursos do sistema sejam acessados apenas por usuários
autorizados.
• O modelo de transação Java EE permite especificar relacionamentos entre métodos
que compõem uma única transação para que todos os métodos em uma transação
sejam tratados como uma única unidade.
• Os serviços de consulta JNDI fornecem uma interface unificada para vários serviços
de nomenclatura e diretório na empresa para que os componentes do aplicativo
possam acessar esses serviços.
• O modelo de conectividade remota Java EE gerencia comunicações de baixo nível
entre clientes e beans corporativos. Depois que um bean corporativo é criado, um
cliente invoca métodos nele como se estivesse na mesma máquina virtual.

Como a arquitetura Java EE fornece serviços configuráveis, os componentes do aplicativo


dentro do mesmo aplicativo Java EE podem se comportar de maneira diferente com base em
onde são implementados. Por exemplo, um bean corporativo pode ter configurações de
segurança que permitem certo nível de acesso aos dados do banco de dados em um ambiente
de produção e outro nível de acesso ao banco de dados em outro ambiente de produção.

O contêiner também gerencia serviços não configuráveis, como ciclos de vida de bean
corporativo e servlet, pool de recursos de conexão de banco de dados, persistência de dados e
acesso às APIs da plataforma Java EE (consulte APIs Java EE 6 ).

4
Tipos de contêiner
O processo de implantação instala os componentes do aplicativo Java EE nos contêineres Java
EE conforme ilustrado na figura a seguir.

Servidor e contêineres Java EE

Camadas
Na plataforma Java EE existem três tipos de camadas: Camada de Negócio, Camada de
Apresentação e Camada Cliente.
Camada de Negócio
Essa camada também pode ser conhecida como camada física e tem o objetivo de encapsular
a lógica do negócio ou EJBs que são usados pelos componentes da camada da apresentação
que fornecem essa funcionalidade para usuários do aplicativo.

5
Observe um exemplo:
Camada de Apresentação
Essa camada é considerada como lógica de apresentação, pois governa as telas que são
exibidas para o usuário e de como a lógica interagem entre a regra de negócio na sua camada
respectiva para conseguirem trabalhar no processo corporativo. Também se leva em conta a
maneira que o usuário visualiza a página, pois tudo depende do tipo de cliente (browser) que
está tentando acessar.

Montagem e implantação de aplicativos Java EE


Um aplicativo Java EE é empacotado em uma ou mais unidades padrão para implantação em
qualquer sistema compatível com a plataforma Java EE. Cada unidade contém

• Um componente ou componentes funcionais, como um bean corporativo, página da


Web, servlet ou applet
• Um descritor de implantação opcional que descreve seu conteúdo

Depois que uma unidade Java EE for produzida, ela estará pronta para ser implementada. A
implantação normalmente envolve o uso da ferramenta de implantação de uma plataforma para
especificar informações específicas do local, como uma lista de usuários locais que podem
acessá-la e o nome do banco de dados local. Uma vez implantado em uma plataforma local, o
aplicativo está pronto para ser executado.

Funções de desenvolvimento

Módulos reutilizáveis permitem dividir o processo de desenvolvimento e implantação de


aplicativos em funções distintas para que diferentes pessoas ou empresas possam realizar
diferentes partes do processo.

As duas primeiras funções, provedor de produtos Java EE e provedor de ferramentas, envolvem


a compra e instalação do produto e das ferramentas Java EE. Depois que o software é adquirido
e instalado, os componentes Java EE podem ser desenvolvidos por fornecedores de
6
componentes de aplicativos, montados por montadores de aplicativos e implementados por
implementadores de aplicativos. Em uma grande organização, cada uma dessas funções pode
ser executada por diferentes indivíduos ou equipes. Essa divisão de trabalho funciona porque
cada uma das funções anteriores gera um arquivo portátil que é a entrada para uma função
subsequente. Por exemplo, na fase de desenvolvimento do componente do aplicativo, um
desenvolvedor de software de bean corporativo entrega arquivos EJB JAR. Na função de
montagem do aplicativo, outro desenvolvedor pode combinar esses arquivos EJB JAR em um
aplicativo Java EE e salvá-lo em um arquivo EAR. Na função de implantação de aplicativo,

Os diferentes papéis nem sempre são executados por pessoas diferentes. Se você trabalha para
uma pequena empresa, por exemplo, ou se estiver criando um protótipo de um aplicativo de
amostra, poderá executar tarefas em todas as fases.

Provedor de Produto Java EE


O fornecedor do produto Java EE é a empresa que projeta e disponibiliza para compra as APIs
da plataforma Java EE e outros recursos definidos na especificação Java EE. Os fornecedores
de produtos são geralmente fornecedores de servidores de aplicativos que implementam a
plataforma Java EE de acordo com a especificação da plataforma Java EE 6.

Fornecedor de ferramentas

O fornecedor de ferramentas é a empresa ou pessoa que cria ferramentas de desenvolvimento,


montagem e empacotamento usadas por fornecedores de componentes, montadores e
implementadores.

Provedor de componentes de aplicativos

O provedor de componente de aplicativo é a empresa ou pessoa que cria componentes da Web,


beans corporativos, applets ou clientes de aplicativos para uso em aplicativos Java EE.

Desenvolvedor Enterprise Bean


Um desenvolvedor de bean corporativo executa as seguintes tarefas para entregar um arquivo
EJB JAR que contém um ou mais beans corporativos:

• Grava e compila o código-fonte


• Especifica o descritor de implantação (opcional)

7
• Empacota os arquivos .class e o descritor de implementação no arquivo EJB JAR

Desenvolvedor de Componentes Web


Um desenvolvedor de componentes da web executa as seguintes tarefas para entregar um
arquivo WAR contendo um ou mais componentes da web:

• Grava e compila o código-fonte do servlet


• Grava JavaServer Faces, JSP e arquivos HTML
• Especifica o descritor de implantação (opcional)
• Empacota os arquivos .class , .jsp e .html e o descritor de implementação no arquivo
WAR

Desenvolvedor do cliente de aplicativos


Um desenvolvedor do aplicativo cliente executa as seguintes tarefas para entregar um arquivo
JAR contendo o aplicativo cliente:

• Grava e compila o código-fonte


• Especifica o descritor de implantação para o cliente (opcional)
• Compacta os arquivos .class e o descritor de implementação no arquivo JAR

Montador de aplicativos
O montador de aplicativos é a empresa ou pessoa que recebe módulos de aplicativos de
fornecedores de componentes e pode montá-los em um arquivo EAR de aplicativo Java EE. O
montador ou implementador pode editar o descritor de implementação diretamente ou pode
usar ferramentas que adicionam corretamente as tags XML de acordo com as seleções
interativas.

especificações do Java EE
As APIs a seguir são as principais dentre as disponibilizadas pelo Java Enterprise:

✓ JavaServer Pages (JSP), Java Servlets, Java Server Faces (JSF) (trabalhar para a Web,
onde é focado este curso)
✓ Enterprise Javabeans Components (EJB) e Java Persistence API (JPA). (objetos
distribuídos, clusters, acesso remoto a objetos etc)
✓ Java API for XML Web Services (JAX-WS), Java API for XML Binding (JAX-B)
(trabalhar com arquivos xml e webservices)

8
✓ Java Autenthication and Authorization Service (JAAS) (API padrão do Java para
segurança)
✓ Java Transaction API (JTA) (controle de transação no contêiner)
✓ Java Message Service (JMS) (troca de mensagens assíncronas)
✓ Java Naming and Directory Interface (JNDI) (espaço de nomes e objetos)
✓ Java Management Extensions (JMX) (administração da sua aplicação e estatísticas
sobre a mesma)

A última versão disponível da especificação do Java EE é a versão 7, lançada em 12 de junho


de 2013. É uma versão ainda muito recente, com poucas ferramentas e servidores disponíveis.
A versão mais usada no mercado é a versão 6, de 2009. Este curso é focado na versão 6 que
você encontrará no mercado e já apresentando as novidades do novo Java EE 7 que deve ganhar
espaço no mercado nos próximos anos.

Neste curso FJ-21, atacamos especialmente JSP e Servlets. No curso FJ-26, estuda-se com
profundidade JSF com CDI e JBoss Seam. No FJ-25 é apresentado em detalhe JPA com
Hibernate e o EJB. No FJ-36, estuda-se as especificações mais relacionadas a sistemas de alto
desempenho: EJB, JNDI, JMS, JAX-B além de Web Services (JAX-WS e JAX-RS).

JSP e Servlets são sem dúvida as especificações essenciais que todo desenvolvedor Java vai
precisar para desenvolver com a Web. Mesmo usando frameworks e bibliotecas que facilitam
o trabalho para a Web, conhecer bem essas especificações é certamente um diferencial, e fará
com que você entenda motivações e dificuldades, auxiliando na tomada de decisões
arquiteturais e de design.

Um desenvolvedor de software executa as seguintes tarefas para entregar um arquivo EAR


contendo o aplicativo Java EE:

✓ Monta arquivos EJB JAR e WAR criados nas fases anteriores em um arquivo de
aplicativo Java EE (EAR)
✓ Especifica o descritor de implementação para o aplicativo Java EE (opcional)
✓ Verifica se o conteúdo do arquivo EAR está bem formado e em conformidade com a
especificação Java EE

A especificação do Web Services for Java™ Platform, Enterprise Edition (Java EE) define o
modelo de programação e a arquitetura de tempo de execução para implementação dos serviços
da Web com base na linguagem Java. Outro nome para a especificação do Web Services for

9
Java EE é Java Specification Requirements (JSR) 109. A especificação inclui padrões abertos
para o desenvolvimento e a implementação de serviços da Web.

A especificação Web Services for Java EE é baseada na tecnologia Java EE e suporta os


modelos de programação Java API for XML Web Services (JAX-WS) e Java API for XML-
based RPC (JAX-RPC) para serviços e clientes da web de uma maneira que é interoperável e
móvel entre os servidores de aplicativos em ambientes que são escaláveis e seguros. Essa
especificação baseia-se nos padrões de mercado para serviços da Web, incluindo Web Services
Description Language (WSDL) e SOAP, e descreve o desenvolvimento e a implementação de
serviços da Web.

É possível integrar a tecnologia Java EE com serviços da Web de várias maneiras. É possível
expor os componentes Java EE como serviços da Web, por exemplo, JavaBeans e enterprise
beans. Ao expor componentes Java EE como serviços da Web, os clientes gravados em código
Java ou clientes de serviço da Web existentes que não estão gravados em código Java podem
acessar esses serviços. Os componentes Java EE podem também agir como clientes de serviço
da Web.

A especificação Web Services for Java EE é a plataforma preferida para a programação baseada
na Web porque fornece padrões abertos que permitem diferentes tipos de linguagens, sistemas
operacionais e software para uma comunicação perfeita por meio da Internet.

Para um aplicativo Java agir como cliente de serviço da Web, deve existir um mapeamento
entre o arquivo WSDL e o aplicativo Java. Para aplicativos JAX-WS, o mapeamento é definido
usando anotações. É possível também usar o descritor de implementação webservices.xml para
especificar o local do arquivo WSDL e substituir o valor definido na anotação @WebServices.
Para aplicativos JAX-RPC, você deve definir o arquivo de mapeamento do JAX-RPC. Para
saber mais sobre o mapeamento que está definido entre o arquivo WSDL e seu aplicativo de
serviços da Web, consulte a especificação JAX-WS ou JAX-RPC nas especificações de
serviços da Web e na documentação da API, dependendo do modelo de programação usado.

É possível usar um componente Java para implementar um serviço da Web especificando a


interface do componente e informações sobre ligação no arquivo WSDL e projetando a
infraestrutura do servidor de aplicativos para aceitar o pedido de serviço.

Este processo inteiro se baseia na especificação do Web Services for Java EE.

10
A especificação define o descritor de implementação webservices.xml especificamente para
serviços da Web. O arquivo descritor de implementação webservices.xml define o conjunto de
serviços da Web que pode ser implementado em um contêiner ativado para Web Services for
Java EE.

Para serviços da Web JAX-WS, o uso do descritor de implementação webservices.xml é


opcional porque é possível usar anotações para especificar todas as informações que estão
contidas dentro do arquivo do descritor de implementação. É possível utilizar o arquivo do
descritor de implementação para aumentar ou substituir anotações JAX-WS existentes. Todas
as informações que você define no descritor de implementação webservices.xml substitui
quaisquer informações correspondentes especificadas pelas anotações.

11
Conclusão
Java EE é uma plataforma que contém um conjunto de tecnologias que reduz
significativamente o custo e a complexidade do desenvolvimento, implantação e
gerenciamento de aplicações. Java EE oferece um conjunto de APIs para desenvolvimento e
execução de aplicações robustas, escaláveis e seguras do lado do servidor.

O Desenvolvimento de software em camadas é uma das técnicas mais utilizadas em


arquitetura cliente/servidor. Segundo Martin Fowler, alguns dos benefícios de decompor um
software em camadas são: (1) capacidade de compreender uma camada coerentemente como
um todo, sem muito conhecimento das demais camadas, (2) a dependência de camada é
reduzida, (3) padronização e (4) utilização por outros serviços de nível mais alto. Cada
camada tem sua responsabilidade bem definida.

Neste trabalho abordamos diversas técnicas poderosas e populares que existem no ambiente de
programação Java para web. Este trabalho foi muito importante para o nosso conhecimento e
compreensão do aprofundamento deste tema, pois uma vez que visto que nos permitiu a ficar a
conhecer e compreender melhor como a Tecnologia Java EE Web Tecnology funciona.

12
Referências Bibliográfica
ARNDT, Von. Staa. Programação Modular. Editora Campus, 2000. Cap 4: Padrões

de Programação; Cap 5: Princípios de Modularidade.

BAUER, Christian; KING, Gavin. Java Persistence with Hibernate. New York:

Manning Publications Co, 2007. ISBN

BERTRAND, Meyer. Object-oriented Software Construction, Prentice-Hall

International Series in Computer Science, C.A.R. Hoare Series Editor, 2nd Edition,

1997.

BITTENCOURT, M. V. S. Estudo Comparativo entre Frameworks Java para

Construção de Aplicações Web. Universidade Federal de Santa Maria, RS (2004).

BOND, M. et al.: Aprenda J2EE com EJB, JSP, Servlets, JNDI, JDBC e XML em

21 dias. São Paulo: MAKRON Books, 2003.

CALÇADO, P. Arquitetura de Camadas em Java EE. Mundo Java. Rio de Janeiro, v.3, n.15,
p.34-43, 2005.

13

Você também pode gostar