-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
1/36
UNID 2 - Tecnologia JEE para
Desenvolvimento Multicamadas
UNID 2 - Tecnologia JEE para
Desenvolvimento Multicamadas
UNAMA Universidade da AmazniaPR-REITORIA DE PESQUISA, PS-GRADUAO E EXTENSOPS-GRADUAO LATO SENSUCurso de Especializao em Desenvolvimento de Sistemas Baseado em Software Livre
Desenvolvimento de Aplicaes Multicamadas
Prof. Cludio [email protected]
mailto:[email protected]:[email protected] -
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
2/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
2
AssuntosAssuntos Arquitetura JEE
Enterprise JavaBeans (EJB) Modelo de componentes
Principais Caractersticas
Tipos de EJB
Persistncia Gerenciamento de Transaes
Manipulao de Exceo
Segurana
JNDI
Protocolos
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
3/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
3
Arquitetura JEEArquitetura JEE
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
4/36Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
4
A plataforma JavaA plataforma Java
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
5/36Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
5
Arquitetura JEEArquitetura JEE
JEE (Java Enterprise Edition):
Inclui todas as funcionalidades existentes naplataforma Java SE acrescentada dasfuncionalidades necessrias para odesenvolvimento e execuo de aplicaes em um
ambiente corporativo. Arquitetura baseada em componentes para reuso.
As aplicaes rodam dentro de um Container de umServidor de Aplicaes que siga a especificaoJEE.
Permite construir aplicaes distribudas emulticamadas.
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
6/36Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
6
Servidor de Aplicao JEEServidor de Aplicao JEE
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
7/36
ContinerContiner
Todo componente de software Java EE deve estar dentro deum continer apropriado.
Tipos de Continer
Web
JSP
Servlets
EJB
EJBs
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
8/36
Servidor deServidor deAplicaoAplicao JavaEE somente a especificao.
Um Servidor de Aplicao um software quetem a funo de disponibilizar os contineres eos servios de infra-estrutura da arquiteturaJEE.
H no mercado vrias implemetaes deservidores que seguem a especificao JEE.As diferenas esto nas opes de licenciamento
(comercial ou software-livre) e nas definies de
configurao de implantao e componentesadicionais de administrao das tecnologias.Ex: Jboss, Gernimo, GlassFish, Jonas...
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
9/36
Servidor de Aplicao - ExemplosServidor de Aplicao - Exemplos
Exemplos (licenas livres): RedHat: JBoss Application Server Oracle: GlassFish, Apache: Apache Geronimo Jonas
Exemplos (licenas pagas): Oracle/BEA, WebLogic Application Server IBM, IBM Websphere Application Server Oracle Application Server SAP, SAP Application Server Resin
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
10/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
10
Camada Cliente (apresentao)Camada Cliente (apresentao)
JEE pode trabalhar com os seguintes
componentes da camada de apresentao: Clientes Web
Pginas HTML/XML
Applets rodando no browser
Qualquer aplicativo cliente
Swing/Janelas, console, comunicao com protocolos JEE
como JavaBeans, RMI, WebServices, etc.
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
11/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
11
Camadas de Apresentao(Cliente) eCamadas de Apresentao(Cliente) eServidor JEEServidor JEE
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
12/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
12
Soluo Final (simplificada) usando JEESoluo Final (simplificada) usando JEE
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
13/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
13
Enterprise JavaBeans (EJB)Enterprise JavaBeans (EJB)
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
14/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
14
O que Enterprise JavaBeans (EJB)?O que Enterprise JavaBeans (EJB)?
EJB implementa o conceito da camada do
servidor da lgica de negcios da aplicao. So essencialmente componentes hospedados
no servidor JEE que se comunicam com oscomponentes da camada cliente. Portanto,so: Componentes distribudos,
Gerenciados pelo continer,
Transacionais e seguros quanto a acesso concorrente
(de multiusurios e aplicaes clientes)
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
15/36
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
16/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
16
Modelo de ComponentesModelo de Componentes
Um servidor EJB fornece um modelo
de componentes que simplifica oprocesso de construo da lgica denegcio em componentes noservidor, e como os clientesacessam os servios desses
componentes por meio de suasinterfaces.
O modelo traz um conjunto deservios automticos para gerenciaros componentes, como proveracesso a fontes de dados(persistncia), monitor detransaes, controle de segurana concorrencia, tolerncia a falhas,
etc.
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
17/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
17
Resumo sobre Componentes no JEEResumo sobre Componentes no JEE
Aplicaes J2EE so compostas de componentes
Neste contexto, um componente uma unidadeautocontida de software que pode ser composta numaaplicao em tempo de design (sem compilao).
Componentes J2EE so escritos em Java e esto
localizados nas seguintes camadas: Componentes na Camada de Apresentao: aplicaes
desktops/janelas, console ou Applets
Componentes na Camada Web: pginas web, Servlets eJSP (e frameworks relacionados a MVC)
Componentes na Camada do Domnio da Aplicao(negcio): componentes EJB (Session Bean, Entity Bean,e de Mensagem)
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
18/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
18
Componentes e Contineres (clientes e EJB)Componentes e Contineres (clientes e EJB)
Componentesna Camada deApresentao
Componentes naCamada Web
Componentes na
Camada do Domnioda Aplicao
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
19/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
19
Principais Caractersticas do EJBPrincipais Caractersticas do EJB
Modelo de Componentes Session beans, Entity beans, Baseado em Mensagens
Persistncia de objetos Entity beans (containers de EJB) usando JPA
Administrao de Transao (JTS/JTA) Manipulao de Exceo
Do lado do cliente e do lado do servidor
Segurana Nomeao e servios de diretrio (JNDI)
Utilizao de protocolos (Corba, RMI, etc)
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
20/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
20
Tipos de EJB (modelo de componentes)Tipos de EJB (modelo de componentes)
Session Beans
Representam uma conversao transiente com um cliente Quando o cliente termina, a session bean some
Entity Bean
Representam dados persistentes gravados num banco dedados (tipicamente uma linha de uma tabela)
Message-Driven Bean
Permite que um componente de aplicao (o message bean)receba mensagens assncronas
Baixo acoplamento entre cliente e servidor.
Importante quando aplicaes necessitam trocar mensagensde forma assncrona (sem espera).
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
21/36
Tcnica bsica de Mapemento ORTcnica bsica de Mapemento OR
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
22/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
22
Tcnica bsica de Mapemento ORTcnica bsica de Mapemento OR(objeto-relacional)(objeto-relacional)
1. O esquema da tabela traduzida para uma estrutura de classe
2. As colunas so mapeadas para atributos com tipos de dadostraduzidos para tipos (primitivos ou classes tipadas) para a linguagemJava
- Ex: VARCHAR torna-se String, INTEGER torna-se int3. Os relacionamento entre tabelas tornam-se associaes entre classes,mapeados como conjuntos (usando classes como List, Set).
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
23/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
23
Gerenciamento de TransaesGerenciamento de Transaes
Transao um conjunto de procedimentos que
executado em um banco de dados, que para ousurio visto apenas como uma nica ao.
Transaes em EJB ocorrem de duas formas:
CMT (Container Managed Transactions) Transaes Gerenciadas pelo Container)
BMT (Bean Managed Transactions) Transaes Gerenciadas pelo Bean
CMT (Transaes Gerenciadas peloCMT (Transaes Gerenciadas pelo
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
24/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
24
CMT (Transaes Gerenciadas peloCMT (Transaes Gerenciadas peloContainer)Container)
O uso de transaes gerenciadas pelo container
simplifica o desenvolvimento por no exigir o controleprogramtico das fronteiras da transao.
A limitao ao usar Beans Gerenciados por Container que o mtodo (de persistncia) quando executado s
pode ser associado a uma nica transao. A anotao adotada :
@TransactionManagement(TransactionManagementType.CONTAINER)
Caso no seja definido o tipo de demarcao detransao o bean assumir CMT como padro.
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
25/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
25
BMT (Transaes Gerenciadas pelo Bean)BMT (Transaes Gerenciadas pelo Bean)
controlado pelo programador.
usado para superar a limitao do CMP (ummtodo para uma transao).
Utiliza a anotao:
@TransactionManagement(TransactionManagementType.BEAN)
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
26/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
26
Manipulao de ExceoManipulao de Exceo
Erros e excees (inesperados) ocorrem e devem
previstos na aplicao. Em tempo de compilao - os erros checkedpodem
ser testados.
Na prtica, a maioria dos erros/falhar ocorrem em tempo
de execuo do software e so unchecked(noverificados).
A recuperao e tratamento de erros/falhas bemdesenhados um dos melhores meios para aumentar a
robustez do seu cdigo. O modelo EJB 3.0 o tratamento de excees ficou mais
simples (EJB 3.0 lana 16 excees).
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
27/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
27
Tipos de Exceo em EJB 3Tipos de Exceo em EJB 3
As excees geradas pelos enterprise beans
podem ser clasificadas como system exceptionse application exceptions.
No EJB 3.0 temos a anotao@ApplicationException para indicar a polticade rollback para exceo a ser lanada por errode lgica do negcio em contraposio aos errosdo sistema.
Antes da EJB 3, isto era papel das checkedexceptions (excees que devem ser verificadas nocdigo).
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
28/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
28
System exceptions (excees de sistema)System exceptions (excees de sistema)
System exceptions (excees de sistema)indicam problemas com as tecnologias envolvidascom o servidor EJB. Nesses casos, indicado lanar (throw)
javax.ejb.EJBException, porque subclasse deRuntimeException.
O cliente do bean no tem como tratarsystemexceptions.
Application exceptions (excees doApplication exceptions (excees do
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
29/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
29
Application exceptions (excees doApplication exceptions (excees dodomnio da aplicao)domnio da aplicao)
Application exceptions equivalem aos
problemas relacionados lgica de negcios. O servidor no encapsula a exceo, deixando o seu
tratamento sob incubncia do cliente.
Se uma system exception lanada no meio deuma transao, o container EJB provoca orollbackdessa transao.
Se uma application exception ocorrer dentro de
uma transao, no ocorrer o rollbackdatransao.
SS
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
30/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
30
SeguranaSegurana
Suporte para realizar autenticao e autorizao de maneiratransparente.
Os desenvolvedores das aplicaes no precisamimplementar a lgica de segurana pois ela faz parte daarquitetura EJB.
Da segurana dois processos so fundamentais:Autenticao e Autorizao.
O processo de autenticao consiste na identificao dosusurios atravs de algum tipo de certificado (usurio esenha). J o processo de autorizao determina o que cadausurio autenticado pode acessar dentro da aplicao.
Na plataforma Java, esses dois processos so padronizadospela especificao JAAS (Java Authentication andAuthorization Service)
JNDIJNDI
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
31/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
31
JNDIJNDI
EJB usa o Java Naming and Directory Interface
(JNDI) para nomear servios. JNDI fornece um mecanismo para localizao de
recursos
Permite que uma aplicao localize componentes num
determinado contexto Estes recursos podem ser objetos remotos, servios
de diretrios, etc.
O servidor EJB gerencia um conjunto de serviospor meio da JNDI
P t lP t l
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
32/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
32
ProtocolosProtocolos
EJB define o protocolo Java RMI (JRMP) como o
protocolo default para acessar enterprise beansem rede.
Adicionalmente h suporte para os protocolos:
CORBA, IIOP HTTP
Web Services (sob HTTP)
DCOM e outros.
R f i bibli fiReferncias bibliogrficas
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
33/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
33
Referncias bibliogrficasReferncias bibliogrficas
BILL BURKE; RICHARD MONSON. Enterprise Javabeans 3.0 - 5Edio - Editora: Prentice-Hall. 2007.
Manual on-line do JEE (Java EE 5 Tutorial) :http://docs.oracle.com/javaee/5/tutorial/doc/
http://pt.wikipedia.org/wiki/Enterprise_JavaBeans
Site oficial do JEE:http://www.oracle.com/technetwork/java/javaee/overview/index.html
http://docs.oracle.com/javaee/5/tutorial/doc/http://pt.wikipedia.org/wiki/Enterprise_JavaBeanshttp://www.oracle.com/technetwork/java/javaee/overview/index.htmlhttp://www.oracle.com/technetwork/java/javaee/overview/index.htmlhttp://pt.wikipedia.org/wiki/Enterprise_JavaBeanshttp://docs.oracle.com/javaee/5/tutorial/doc/ -
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
34/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
34
Exerccios
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
35/36
Opes de Servios de Servidores no Nebeans 7 xOpes de Servios de Servidores no Nebeans 7 x
-
7/31/2019 u02-Tecnologia JEE Para Desenvolvimento Multicamadas
36/36
Desenvolvimento de Aplicaes MulticamadasPro Cl dio Martins
36
Opes de Servios de Servidores no Nebeans 7.xOpes de Servios de Servidores no Nebeans 7.x