Você está na página 1de 91

MÓDULO

Linguagem de
Programação para Web 2
Distribuição das Disciplinas
de Programação para Web
• LPW 1: • LPW3-
– MVC
– EJB + JTA,
– Servlets
– JSP • LPW4
• LPW2: – EJB-WS +Application client
– Visão geral do JEE,
– JSF – MVC,
– Facelets, PrimeFaces, ...
– Padrões de projeto
relacionadas
OBJETIVO DO
MÓDULO
• Apresentar a Tecnologia Java EE 7
– Novidades
– Arquitetura
– APIs envolvidas
• JSF 2
INTRODUÇÃO A TECNOLOGIA
JAVA EE 7
Destaques
• 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.
Evolução Plataforma JEE
Evolução Plataforma JEE
Novos Recursos JEE7
• As novas tecnologias
– Aplicações Batch para a Plataforma Java
– Utilitários concorrentes para Java EE
– API Java para Processamento de JSON (JSON-P)
– API Java para WebSocket
• Novos recursos para
– componentes EJB
– servlets
– componentes JavaServer Faces
– o Java Message Service (JMS)
Modelo de Aplicação JEE7
• Linguagem Java e da JVM.
• Portabilidade, segurança e produtividade do desenvolvedor.
• Fornece uma forma básica do modelo de aplicação.
• Projetada para suportar aplicações que implementam
serviços corporativos para clientes, funcionários,
fornecedores, parceiros e outros que demandam sobre ou
contribuições para a empresa.
• Tais aplicações são inerentemente complexas, com acesso a
dados de diversas fontes e distribuindo aplicativos para vários
clientes.
Modelo de Aplicação JEE7
• Para melhor controlar e gerenciar essas aplicações, as
funções de negócios para apoiar os vários usuários são
realizadas na camada intermediária (middle tier).
• Middle tier representa um ambiente rigorosamente
controlado pela área de TI de uma empresa.
• Middle tier é geralmente executada em hardware de
servidor dedicado e com acesso a todos serviços da
empresa.
Modelo de Aplicação JEE7
• Define uma arquitetura para implementação de serviços como
aplicações de múltiplas camadas que proporcionam a escalabilidade,
acessibilidade e capacidade de gerenciamento necessária para
aplicações de nível empresarial.
• Divide o trabalho necessário para implementar serviço de várias
camadas em:
– Lógica de negócio e apresentação a ser implementado pelo desenvolvedor
– Serviços padrões fornecidos pela plataforma Java EE
• O desenvolvedor pode contar com a plataforma que fornece
soluções para sistemas com nível elevado de problemas no
desenvolvimento em várias camadas.
Arquitetura JEE

Sistemas Legados
Aplicações
Cliente Externas
Magro

Cliente
Gordo
APLICAÇÕES MULTICAMADAS
Aplicações Distribuídas
Multicamadas
• A plataforma Java EE utiliza um modelo de aplicação
distribuída multicamadas para aplicações
empresariais (Enterprise Applications).
• A lógica da aplicação é dividida em componentes de
acordo com a função, e os componentes do
aplicativo que compõe uma aplicação Java EE estão
instalados em várias máquinas, dependendo da
camada Java EE a que o componente pertence.
Aplicações Multicamadas
Componentes da camada cliente

Componentes Web-tier

Componentes da camada de negócios

Enterprise Information System


Aplicações Multicamadas
• Apesar de poder consistir em todos os níveis mostrados,
geralmente aplicações multicamadas Java EE são consideradas
de três camadas pois estão distribuídas em três locais:
– cliente,
– servidor Java EE, e
– bancos de dados ou sistemas legados no back-end.
• Aplicações de três camadas que funcionam desta forma
estendem o modelo cliente-servidor de dois níveis padrão,
colocando um servidor de aplicativos multithread entre o
aplicativo cliente e back-end de armazenamento.
Segurança no JEE
• Outros modelos de aplicações empresariais exigem medidas de segurança
específicas da plataforma para cada aplicação,
• Java EE
– permite definições de restrições de segurança no momento da implantação.
– produz aplicações portáveis para uma ampla variedade de implementações de
segurança dispensando os desenvolvedores da complexidade da implementação dos
recursos de segurança.
– fornece regras de controle de acesso padrão declarativa definidas pelo desenvolvedor
e interpretadas quando o aplicativo é implantado no servidor.
– oferece mecanismos de login padrão para que os desenvolvedores não tenham que
implementar esses mecanismos em suas aplicações.
• A mesma aplicação funciona numa ampla variedade de ambientes de
segurança, sem precisar alterar o código fonte.
Componentes Java EE
• Aplicações Java EE são constituídas por componentes.
• Unidade de software funcional, independente, 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
do Java EE:
– aplicativos clientes e applets: executados no cliente
– componentes de tecnologia Java Servlet, JavaServer Faces e
JavaServer Pages (JSP): componentes Web executados no servidor
– componentes EJB (beans corporativos) : componentes de negócios
executados no servidor.
Componentes Java EE
• Escritos em Java e compiladas da mesma forma como
qualquer programa na linguagem Java.
• Diferenças entre os componentes do Java EE e classes
Java “normais”
– os componentes Java EE são incluídos em aplicações Java EE,
– verificados quanto a formação e
– em conformidade com a especificação Java EE.
• São implantados para produção, sendo executados e
gerenciados pelo servidor Java EE.
Clientes Java EE
• Cliente web
• Aplicativo cliente
Cliente Web
• Consiste de duas partes:
– Páginas web dinâmicas : linguagem de marcação (HTML, XML, etc...),
gerados por componentes da Web que funcionam na camada web
– Um navegador da Web: renderiza e exibe as páginas recebidas do
servidor
• Chamado às vezes um cliente magro (thin client)
– não consultam bases de dados,
– não executam regras de negócio complexas, ou
– não se conectam a aplicativos legados.
– quando usado, tais operações pesadas são descarregados para beans
corporativos para aproveitar os recursos de segurança, velocidade,
serviços e confiabilidade de tecnologias do lado do servidor Java EE.
Aplicativos Cliente
• Executado em um computador cliente e fornece uma
forma de os usuários lidarem com tarefas que
exigem uma interface mais rica do que a fornecida
por uma linguagem de marcação (HTML).
• Normalmente tem interface gráfica (GUI) criada a
partir da API Swing ou AWT; ou pode ser de linha de
comando.
Aplicativos Cliente
• Acessam diretamente beans corporativos que funcionam
na camada de negócios.
• Se os requisitos da aplicação justificarem, um aplicativo
cliente pode abrir uma Conexão HTTP para estabelecer
comunicação com um servlet rodando na camada web.
• Aplicativos clientes escritos em outras linguagens não
Java podem interagir com servidores Java EE, permitindo
que a plataforma Java EE faça interoperação com
sistemas legados, clientes e linguagens não-Java.
Applets
• Podem ser inc;uídos em páginas web recebidas da
camada web
• Pequeno aplicativo cliente escrito em Java que executa
na máquina virtual Java instalada no navegador da web.
• Sistemas cliente vão precisar do plug-in do Java e,
possivelmente, de política de segurança para o applet
para executar com êxito no navegador da web.
Componentes Web
• Preferidos para a criação de programas cliente web pois
nenhum plug-ins ou políticas de segurança são
necessários nos sistemas cliente.
• Permitem design da aplicação mais modular e claro, pois
fornecem um meio de separar a programação do design
da página web.
• Pessoal do design da página web não precisam entender
de programação Java para realizar suas tarefas.
Arquitetura de
Componentes Javabean
• As camadas server e client podem incluir componentes baseados na
arquitetura de componentes JavaBeans (componentes JavaBeans)
para gerenciar o fluxo de dados entre:
– aplicativo cliente ou applet e componentes executando no servidor Java EE
– componentes do servidor e banco de dados
• Componentes JavaBeans
– não são considerados componentes Java EE
– têm propriedades e métodos get e set para acessar essas propriedades.
– simples na sua concepção e implementação, mas devem estar em
conformidade com as convenções de nomenclatura e de projeto descritas na
arquitetura de componentes JavaBeans
Comunicação em
Servidores JEE
Componentes Web
• Servlets ou páginas da web criados usando tecnologia JavaServer
Faces (JSF) e/ou JSP (páginas JSP).
• Servlets:
– classes Java que dinamicamente processam pedidos e constroem respostas.
• Páginas JSP:
– documentos baseados em texto que executam como servlets;
– permitem abordagem mais natural para a criação de conteúdo estático.
• JavaServer Faces:
– baseia-se na tecnologia de servlets e JSP;
– fornece um framework de componentes de interface de usuário para
aplicações web.
Componentes não Web
JEE
• Páginas HTML estáticas e applets :
– Fornecidos com os componentes da web durante a
montagem aplicativo.
• Classes de utilitários do lado do servidor
– Podem ser empacotadas com componentes da Web
Componentes Web
• Camada web, assim como a
camada client, podem incluir
componentes JavaBeans para
gerenciar entrada de dados
do usuário e enviar-los para
beans corporativos que
operam na camada de
negócios.
Componentes de
Negócios
• Código de Negócios
(business code),
– lógica que resolve ou
atende às necessidades de
um domínio de negócio em
particular
– tratado por beans
corporativos que operam
tanto na camada de
negócios ou a camada web.
Enterprise Information
System Tier
• Opera com:
– software EIS e
– sistemas de infraestrutura organizacionais
• Sistemas de Planejamento de Recursos Empresariais (ERP),
• processamento de transações,
• sistemas de banco de dados e
• outros sistemas de informação legados.
– Exemplo:
• os componentes de aplicativos Java EE podem ter acesso às EIS
para conectividade ao banco de dados.
Arquitetura JEE
Arquitetura JEE
JEE CONTAINERS
Java EE Containers
• Aplicações thin client multicamadas:
– difíceis de escrever pois envolvem muitas linhas de
código para lidar com
• transações e gerenciamento de estado,
• multithreading,
• pool de recursos e
• detalhes de baixo nível.
Java EE Containers
• A arquitetura Java EE
– baseada em componentes e
– independente de plataforma
• torna aplicações fáceis de escrever, porque
– a lógica do negócio é organizada em componentes reutilizáveis​​,
– o servidor Java EE fornece serviços de suporte sob a forma de um
container para cada tipo de componente e
– por não ter que desenvolver estes serviços, pode-se concentrar
na resolução dos problemas do negócio.
Java EE Containers
• Containers são a interface entre um componente
e o nível inferior, funcionalidade específica da
plataforma que suporta o componente.
• Antes que possa ser executado, um componente
web, enterprise bean ou aplicativo cliente deve
ser montado em um módulo Java EE e
implantado em seu container.
Java EE Containers x API
Container Services
• O processo de montagem envolve a especificação
das definições de contêineres para cada componente
na aplicação Java EE e para a aplicação Java EE em si.
• Configurações do contêiner personalizam o suporte
fornecido pelo servidor Java EE, incluindo serviços
como segurança, gerenciamento de transações, a
API de busca Java Naming and Directory Interface
(JNDI) e conectividade remota
Container Services
• O modelo de segurança Java EE permite configurar um componente web ou
bean corporativo de modo que os recursos do sistema sejam acessados ​apenas
por usuários autorizados.
• O modelo de transação Java EE permite especificar as relações entre os
métodos que compõem uma única transação, de modo que todos os métodos
em uma transação sejam tratados como uma única unidade.
• Serviços de pesquisa JNDI fornecem uma interface unificada para múltiplos
serviços de naming e directory services na empresa, de modo que os
componentes da aplicação possam acessar esses serviços.
• O modelo de conectividade remota Java EE gerencia as comunicações de baixo
nível entre clientes e beans corporativos. Depois que um bean corporativo é
criado, um cliente invoca métodos sobre ele como se fosse na mesma máquina
virtual.
Container Services
• Como a arquitetura Java EE fornece serviços configuráveis,
componentes dentro do mesmo aplicativo podem se comportar
de forma diferente dependendo de onde forem implantados.
Exemplo:
– um enterprise bean pode ter configurações de segurança que
permitem um nível de acesso ao banco de dados em um ambiente de
produção e outro nível de acesso em outro ambiente de produção.
• O container também gerencia serviços não configuráveis, como
o beans corporativos, ciclos de vida do servlet, pool de recursos
de conexão de banco de dados, persistência de dados e acesso a
as APIs da plataforma Java EE (Java EE 7 ver APIs).
Tipos de Containers
• Servidor Java EE:
– Runtime do Java EE. Fornece contêineres EJB e web.
• Container EJB:
– Gerencia a execução de beans corporativos para
aplicações Java EE. Beans corporativos e seu container
rodam no servidor Java EE.
• Container Web:
– Gerencia a execução de páginas web, servlets, e alguns EJB
componentes para aplicações Java EE. Componentes da
Web e seu contêiner rodam no servidor Java EE.
• Container Aplicação Cliente :
– Gerencia a execução de componentes do aplicativo
cliente. Aplicativos Clientes e seu container rodam no
cliente.
• Container Applet:
– Gerencia a execução de applets. Consiste em um
navegador da web e um Java Plug-in rodando juntos no
cliente.
SERVIÇOS DE SUPORTE
Serviços de Suporte a
Web
• Os serviços Web são aplicações corporativas baseadas na
web que usam protocolo de transporte aberto, baseado
em XML e para a troca de dados com solicitações
clientes.
• O Java EE fornece as APIs XML e ferramentas necessárias
para rapidamente projetar, desenvolver, testar e
implantar os serviços clientes e web que interagem
totalmente com outros serviços da web e clientes que
executam em plataformas baseadas em Java ou não Java.
Extensible Markup Language
(XML)
• Padrão para representar dados multiplataforma,
extensível, baseado em texto.
• As partes que trocam dados XML podem criar suas
próprias tags para descrever seus dados, criar
esquemas para especificar quais tags podem ser
usadas ​em tipo particular de documento XML, e usar
estilos para gerenciar manipulação e a exibição dos
dados.
Protocolo de Transporte
SOAP
• As solicitações do cliente e respostas de serviços web são
transmitidos como mensagens SOAP (Simple Object
Access Protocol ) sobre HTTP para permitir uma completa
interoperabilidade e​ ntre clientes e serviços web,
executados em plataformas diferentes e em vários locais
na Internet.
• HTTP é um familiar padrão de solicitação e resposta para
o envio de mensagens pela Internet, e SOAP é um
protocolo baseado em XML que se segue o modelo HTTP
de solicitação e resposta.
Protocolo de Transporte
SOAP
• A parte SOAP de uma mensagem transportada faz o
seguinte:
– Define um encapsulamento baseado em XML para
descrever o que está na mensagem e explicar como
processar a mensagem
– Inclui regras baseadas em XML para expressar ocorrências
dentro da mensagem de tipos de dados definidos pela
aplicação
– Define uma convenção baseada em XML para representar
o pedido do serviço remoto e a resposta resultante
Web Services Description
Language (WSDL)
• Descrição de serviços de rede que seguem o padrão XML.
• Inclui:
– o nome de serviço,
– a localização dos serviços e
– formas de se comunicar com o serviço.
• Descrições de serviço WSDL podem ser publicadas na web.
• Servidor GlassFish oferece uma ferramenta para gerar a
especificação WSDL de um serviço web que usa chamadas de
procedimento remoto para se comunicar com os clientes.
Montagem e Implantação
de aplicações JEE
• Uma aplicação Java EE é empacotada em uma ou mais unidades para
implantação em qualquer sistema compatível com plataforma Java EE.
• Cada unidade contém :
– Um componente funcional ou componentes, como um bean corporativo, página web,
servlet, ou applets;
– Um descritor de implantação (Deployment Descriptor) opcional que descreve o seu
conteúdo.
• A implantação envolve o uso de ferramentas de implantação da plataforma
para especificar a localização detalhada das informações, tais como a lista dos
usuários locais que podem acessá-lo e o nome da base de dados local.
• Uma vez implantado em uma plataforma, o aplicativo está pronto para ser
executado.
API NOS JEE7 CONTAINERS
API no Web Container
API no Web Container
API no EJB Container
API no Client Container
NOMENCLATURA JEE
Enterprise JavaBeans
(EJB)
• corpo de código que tem campos e métodos para
implementar os módulos da lógica de negócios.
• espécie de bloco de construção que pode ser
usado sozinho ou com outra EJB para executar a
lógica de negócios no servidor Java EE.
Enterprise JavaBeans
(EJB)
• Session bean :
– representa uma conversação transiente com um cliente.
Quando o cliente termina a execução, o bean de sessão e
seus dados desapareceram.
• Message-driven bean:
– combina características de um Session Bean com a de um
receptor da mensagem, permitindo a um componente de
negócios receber mensagens de forma assíncrona.
Comumente, são mensagens Java Message Service (JMS)
No Java EE 7, novos recursos de Enterprise Javabeans incluem:
- Asynchronous local session beans in EJB Lite
- Temporizadores não persistente em EJB Lite
Java EE 7 requer Enterprise JavaBeans 3.2 e 1.2 interceptores.
Java Servlet
• Permite definir classes de HTTP servlet.
• A classe servlet estende as capacidades dos
servidores que hospedam aplicativos acessados ​por
meio de um modelo de programação
HTTP de solicitação-
resposta.
• Apesar de servlets responderem a qualquer tipo de
pedido, eles são comumente usados ​para estender
os aplicativos hospedados por servidores web.
No Java EE 7, novos recursos da Tecnologia Java Servlet incluem:
- Nonblocking I/O
- HTTP protocol upgrade
Java EE 7 requer Servlet 3.1
JavaServer Faces
• É framework de interface de usuário para a construção
de web aplicações.
• Principais componentes:
– Um framework de componentes GUI.
– Um modelo flexível para renderizar componentes em diferentes
tipos de HTML ou diferente linguagens e tecnologias de
marcação. Um objeto Renderer gera a marcação para processar o
componente e converter os dados armazenados em um objeto
modelo para tipos que podem ser representados numa view.
– ■ A RenderKit padrão para a geração de marcação HTML 4.01.
Java Server Faces
• As seguintes recurso apoiam os componentes GUI:
– Validação de entrada
– Manipulação de eventos
– Conversão de dados entre objetos modelo e componentes
– Criação do objeto modelo gerenciado
– Configuração de navegação de página
– Expression Language (EL)
• Toda funcionalidade está disponível usando APIs Java padrão e baseada em arquivos
de configuração XML

No Java EE 7, novos recursos da Tecnologia JavaServer Faces incluem:


- Marcação amigável HTML5
■ Faces Flows
■ Resource library contracts
Java EE 7 requer JavaServer Faces 2.2 and Expression Language 3.0
JavaServer Pages
• Permite colocar trechos de código servlet diretamente em
um documento baseado em texto.
• Uma página JSP é um documento baseado em texto que
contém dois tipos de texto:
– Os dados estáticos, que podem ser expressos em qualquer formato
baseado em texto, como HTML ou XML
– Elementos JSP, que determinam como é construído o conteúdo
dinâmico da página
Java EE 7 requer JavaServer Pages 2.3 para compatibilidade com
versões anteriores, mas é recomendado o uso de Facelets como a
tecnologia de exibição em novo aplicativos.
JavaServer Pages Standard
Tag Library (JSTL)
• Encapsula núcleo da funcionalidade comum a muitas aplicações JSP.
• Em vez de misturar vários fornecedores nos aplicativos JSP, usa-se
um único conjunto de tags padrão.
• Essa padronização permite implantar os aplicativos em qualquer
container que suporte JSP JSTL e tornar a implementação das tags
mais otimizada.
• JSTL tem iterator e tags condicionais para lidar com o fluxo de
controle, tags para manipular documentos XML, internacionalização,
acesso a bancos de dados usando SQL e para outras funções úteis.

Java EE 7 requer JSTL 1.2


Java Persistence API
• Solução baseada em padrões Java para persistência.
• Usa uma abordagem de mapeamento objeto / relacional para
preencher a lacuna entre um modelo orientado a objeto e um banco
de dados relacional.
• Pode ser também usado em aplicações Java SE fora do ambiente
Java EE.
• É composta por:
– Java Persistence API
– Linguagem de consulta
– Mapeamento Objeto/Relacional
Java EE 7 requer Java Persistence API 2.1
Java Transaction API (JTA)
• Fornece uma interface padrão para demarcar transações. \
• A arquitetura Java EE fornece um auto commit padrão a lidar
com confirmação de transação e reversões (roolbacks).
• Um auto commit significa que qualquer outra aplicação que
está vendo os dados, terá os dados atualizados após cada
operação de leitura ou escrita no banco de dados.
• No entanto, se o aplicativo executa duas operações de acesso
a banco de dados separados, que dependem uns dos outros, a
API JTA é usada para demarcar a transação toda , incluindo as
ambas operações: begins, rolls back, and commits.

Java EE 7 requer Java Transaction API 1.2


Java API for RESTful Web
Services (JAX-RS)
• define APIs para o desenvolvimento de serviços
web construídos de acordo com a arquitetura
REST (Representational State Transfer)
• A aplicação JAX-RS é uma aplicação web que
consiste de classes empacotadas como um
servlet em um arquivo WAR junto com as
bibliotecas necessárias.

Java EE 7 requer JAX-RS 2.0


Managed Beans
• objetos leves gerenciados por contêiner (POJOs) com
o requisitos mínimos, suporte de um pequeno
conjunto de serviços básicos, como a injeção de
recursos, o ciclo de vida de callbacks e interceptores.
• Beans gerenciados representam uma generalização
do bean gerenciado especificado pela tecnologia
JavaServer Faces e pode ser usado em qualquer
lugar em uma aplicação Java EE, não apenas em
módulos web.
A especificação Managed Beans é parte da especificação da
plataforma Java EE 7 (JSR 342).
Java EE 7 requer Managed Beans 1.0.
Contexts and Dependency
Injection for Java EE (CDI)
• Define um conjunto de serviços contextuais, prestados
pelos containers Java EE, que tornam mais fácil para os
desenvolvedores usar enterprises beans com a
tecnologia JavaServer Faces em aplicações web.
• Projetado para uso com objetos stateful (sem estado),
CDI também tem uso mais abrangente, possibilitando
uma grande flexibilidade para integrar diferentes tipos de
componentes de uma forma fracamente acoplada mas
segura.

Java EE 7 requer CDI 1.1.


Dependency Injection for
Java
• Define um conjunto padrão de anotações (e uma
interface) para uso em classes injetáveis.
• Na plataforma Java EE, CDI fornece suporte para
injeção de dependência. Especificamente,
podem ser usados pontos de injeção somente
em uma aplicação CDI-habilitada.

Java EE 7 requer Dependency Injection for Java 1.0.


Bean Validation
• Define um modelo de metadados e API para
validar dados em componentes JavaBeans. Em
vez de distribuir a validação de dados ao longo
de várias camadas, como no navegador e no lado
servidor, permite definir a validação de
restrições em um único local e compartilhá-los
através das diferentes camadas

Java EE 7 requer Bean Validation 1.1


Java Message Service API
(JMS)
• Padrão de mensagens que permite que os componentes de
aplicativos Java EE criar, enviar, receber e ler mensagens.
Possibilita a comunicação distribuída que é fracamente
acoplada, confiável e assíncrona.
• As novas características de JMS incluem o seguinte.
– Oferece uma alternativa mais simples que a anterior. Inclui um
objeto JMSContext que combina as funções de Connection e
Session.
– Todos os objetos com um método close implementam a interface
java.lang.Autocloseable de para que possam ser utilizados em uma
instrução Java SE 7 try-with-resources.

Java EE 7 requer JMS 2.0


Java EE Connector
Architecture
• Usado por fornecedores de ferramentas e integradores de
sistemas para criar adaptadores de recursos que suportam o
acesso aos EIS que pode ser ligados a qualquer produto Java
EE.
• Um adaptador de recursos é um componente de software que
permite que os componentes de aplicativos Java EE acessar e
interagir com o gerenciador básico de recursos do EIS.
• Como um adaptador de recursos é específico para o seu
gerenciador de recurso, existe um adaptador de recursos
diferente para cada tipo de banco de dados ou EIS.
Java EE Connector
Architecture
• Também fornece uma integração de serviços Web baseados em
plataforma Java EE, orientados para desempenho, seguro, escalável
e baseado em mensagens transacionais, com EIS existentes ,
síncrona ou assíncrona.
• Aplicações existentes e EIS integrados através da EE Java Connector
Architecture para o Plataforma Java EE podem ser expostos como
serviços Web baseados em XML usando JAX-WS e Java EE Connector
Architecture.
• Assim, JAX-WS e o são tecnologias complementares para a
integração de aplicações empresariais (EAI) e de integração de
negócios end-to-end.

Java EE 7 requer Java EE Connector Architecture 1.7


JavaMail API
• Aplicações Java EE podem usar a API JavaMail para
enviar notificações por e-mail.
• A API JavaMail tem duas partes:
– Uma interface em nível de aplicativo usado pelos
componentes do aplicativo para enviar e-mail
– A interface do provedor de serviço
• A plataforma Java EE inclui a API JavaMail com um
provedor de serviço que permite componentes do
aplicações enviar mensagens para Internet.

Java EE 7 requer JavaMail 1.5


Java Authorization Contract
for Containers (JACC)
• Define um contrato entre um servidor de aplicativos Java EE e um
provedor de política de autorização. Todos os Containers Java EE
suportam este contrato.
• A especificação JACC define classes java.security.Permission que
satisfazem o Modelo de autorização Java EE.
• A especificação define a ligação de decisões de acesso ao container a
operações em instâncias dessas classes de permissão.
• Define a semântica de provedores de políticas que usam as novas
classes de permissão para atender aos requisitos de autorização da
plataforma Java EE, incluindo a definição e utilização de papéis.

Java EE 7 requer JACC 1.5.


Java Authentication Service Provider
Interface for Containers (JASPIC)
• Define uma interface de provedor de serviço (SPI) pela qual provedores de
autenticação que implementam mecanismos de autenticação de mensagens podem
ser integradas no Container de processamento de mensagens de cliente ou servidor
ou runtimes.
• Provedores de autenticação integradas através desta interface operam em mensagens
de rede que são providas por seus containers de chamada.
• Os provedores de autenticação transformam mensagens de saída para que a origem
de cada mensagem possa ser autenticada pelo contêiner de recepção, e o destinatário
da mensagem possa ser autenticado pelo remetente da mensagem.
• Provedores de autenticação autenticam cada mensagem recebida e regressam ao seu
Container da chamada a identidade estabelecida como resultado da autenticação da
mensagem.

Java EE 7 requer JASPIC 1.1


Java API for WebSocket
• WebSocket é um protocolo de aplicação que fornece
comunicações full-duplex entre dois pares sobre TCP.
A API Java para WebSocket permite que os
aplicativos Java EE para criar endpoints usando
anotações que especificam os parâmetros de
configuração do endpoint e designar os seus
métodos de ciclo de vida de callback.
A WebSocket API é nova na plataforma Java EE 7.
Java EE 7 requer Java API for WebSocket 1.0
Java API para processamento
JSON
• JSON é um formato de troca de dados baseado
em texto derivado de JavaScript que é usado em
serviços web e outros aplicativos conectados.
• A API Java para Processamento de JSON (JSON-P)
permite que aplicativos Java EE analisem,
transformem e consultem dados JSON usando o
modelo de objeto ou o modelo de streaming.
JSON-P é nova na plataforma Java EE 7.
Java EE 7 requer JSON-P 1.0
Concurrency Utilities for
Java EE
• API padrão para fornecer recursos assíncronos
para os componentes do aplicativo Java EE
através dos seguintes tipos de objetos:
– Serviço executor gerenciado,
– Serviço gerenciado executor programado,
– Fábrica de thread gerenciado e
– Serviço de contexto.

Concurrency Utilities for Java EE é nova na plataforma Java EE 7.


Java EE 7 requer Concurrency Utilities for Java EE 1.0
Batch Applications for the
Java Platform
• API padrão para fornecer recursos assíncronos
para os componentes do aplicativo Java EE
através dos seguintes tipos de objetos:
– Serviço executor gerenciado,
– Serviço gerenciado executor programado,
– Fábrica de thread gerenciado e
– Serviço de contexto.

Batch Applications for the Java Platform é nova na plataforma Java EE 7.


Java EE 7 requer Batch Applications for the Java Platform 1.0
Java Database
Connectivity API (JDBC)
• Permite chamar comandos SQL a partir de métodos em Java .
• A API JDBC é usada em enterprise bean quando se tem um
session bean para acessar um banco de dados.
• Também pode-se usar a API do JDBC a partir de um servlet ou
uma página JSP para acessar o banco de dados diretamente,
sem passar por um enterprise bean.
• A API JDBC tem duas partes:
– Uma interface em nível de aplicativo usado pelos componentes do
aplicativo para acessar um banco de dados
– Uma interface de provedor de serviço para anexar um driver JDBC
para a plataforma Java EE

Java EE 7 requer JDBC 4.1


Java Naming and Directory
Interface API (JNDI)
• Fornece funcionalidade de naming e directory, permitindo que
os aplicativos para acessar vários serviços de nomenclatura e
diretório, como o LDAP, DNS e NIS.
• A API JNDI fornece aplicativos com métodos para realização de
operações de diretório padrão, como associar atributos com
objetos e a busca de objetos usando seus atributos.
• Usando JNDI, um aplicativo Java EE pode armazenar e
recuperar qualquer tipo de objeto Java chamado, permitindo
aos aplicativos Java EE coexistir com muitas aplicações e
sistemas legados.
JavaBeans Activation Framework
(JAF)
• Utilizado pela API JavaMail.
• JAF fornece serviços padrão para determinar o
tipo de uma parte arbitrária de dados,
encapsular acesso a ela, descobrir as operações
disponíveis sobre ele e criar o Componente
JavaBeans apropriado para realizar essas
operações.
Java API for XML
Processing (JAXP)
• Suporta o processamento de documentos XML usando
Document Object Model (DOM), Simple API for XML (SAX) e
Extensible Stylesheet Language Transformations (XSLT).
• JAXP permite aplicativos analisarem e transformarem
documentos XML independentes de uma implementação de
processamento de XML específica .
• JAXP também fornece suporte namespace, que permite
trabalhar com esquemas que poderia ter conflitos de nomes.
• Projetado para ser flexível, JAXP permite que o uso de qualquer
parser XML compatível ou processador XSL dentro de sua
aplicação e suporta o esquema Worldwide Web Consortium
(W3C).
Java Architecture for XML
Binding (JAXB)
• Fornece uma maneira conveniente para ligar um
Esquema XML para uma representação em programas
em linguagem Java.
• JAXB pode ser usado de forma independente ou em
combinação com JAX-WS, caso em que se proporciona
um padrão ligação de dados para mensagens de serviço
da web.
• Todos os contêineres Java EE do aplicativo cliente,
contêineres web e EJB suportam a API JAXB.

Java EE 7 requer JAXB 2.2


Java API for XML Web
Services (JAX-WS)
• Fornece suporte para serviços web que utilizam a API JAXB para a
ligação de dados XML para objetos Java.
• A especificação JAX-WS define API do cliente para acessar serviços
web, bem como técnicas para implementação de terminais de
serviço web.
• A especificação Implementing Enterprise Web Services descreve a
implantação de serviços baseados em JAX-WS e clientes.
• As especificações EJB e Java Servlet também descrevem aspectos de
tal implantação. Aplicações baseadas em JAX-WS pode ser
implantado usando qualquer um destes modelos de implementação.
Java API for XML Web
Services (JAX-WS)
• A especificação JAX-WS descreve o suporte para manipuladores de
mensagens que podem processar pedidos e respostas de
mensagens. Em geral, estes manipuladores de mensagens executam
no mesmo contêiner e com os mesmos privilégios e contexto de
execução como cliente componente JAX-WS ou endpoint com a qual
estão associadas.
• Estes manipuladores de mensagem ter acesso ao mesmo namespace
JNDI como seu componente associado. Serializadores e
deserializadores personalizados, se suportados, são tratados da
mesma forma que manipuladores de mensagens.

Java EE 7 requer JAX-WS 2.2


SOAP with Attachments
API for Java (SAAJ)
• API de baixo nível em que dependente de JAX-WS
• Permite a produção e consumo de mensagens que
estejam em conformidade com as especificações
SOAP 1.1 e 1.2 e notas anexadas com SOAP.
• Grande parte dos desenvolvedores não usam a API
SAAJ, usando JAX-WS API em nível mais elevado.
Java Authentication and
Authorization Service (JAAS)
• Fornece um meio para uma aplicação Java EE
autenticar e autorizar um usuário ou grupo
específico de usuários para executá-lo.
• JAAS é uma versão Java do framework padrão
Pluggable Authentication Module (PAM), que
estende a arquitetura de segurança da plataforma
Java para apoiar autorização baseada em usuário.
Common Annotations for the
Java Platform
• Permite o estilo declarativo de programação na
plataforma Java.

Java EE 7 requer Common Annotations for the Java Platform 1.2

Você também pode gostar