Você está na página 1de 10

Discentes:

 Edris da Sónia Isaac


 Edson Francisco Dias
 Elias Paulo Raul
Capítulo1
Os desenvolvedores de hoje reconhecem cada vez mais a necessidade de aplicativos
distribuídos, transacionais e portáteis que aproveitem a velocidade, a segurança e a
confiabilidade da tecnologia do lado do servidor. Os aplicativos corporativos fornecem a
lógica de negócios para uma empresa. Eles são gerenciados centralmente e geralmente
interagem com outros softwares corporativos. No mundo da tecnologia da informação, os
aplicativos corporativos devem ser projetados, construídos e produzidos por menos dinheiro,
com maior velocidade e com menos recursos.

Com a Java Platform, Enterprise Edition (Java EE), o desenvolvimento de aplicativos


corporativos Java nunca foi tão fácil ou rápido. O objetivo da plataforma Java EE é fornecer
aos desenvolvedores um poderoso conjunto de APIs, reduzindo o tempo de desenvolvimento,
reduzindo a complexidade do aplicativo e melhorando o desempenho do aplicativo.

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

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


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 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)
 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.
Algumas 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)
 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 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.

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.

Você também pode gostar