Vous êtes sur la page 1sur 36

UNAMA Universidade da Amaznia PR-REITORIA DE PESQUISA, PS-GRADUAO E EXTENSO PS-GRADUAO LATO SENSU Curso de Especializao em Desenvolvimento de Sistemas Baseado

o em Software Livre

UNID 2 - Tecnologia JEE para Desenvolvimento Multicamadas


Desenvolvimento de Aplicaes Multicamadas
Prof. Cludio Martins claudiomartins2000@gmail.com

Assuntos
Arquitetura JEE Enterprise JavaBeans (EJB)
Modelo de componentes Principais Caractersticas Tipos de EJB Persistncia Gerenciamento de Transaes Manipulao de Exceo Segurana JNDI Protocolos

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Arquitetura JEE

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

A plataforma Java

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Arquitetura JEE JEE (Java Enterprise Edition):


Inclui todas as funcionalidades existentes na

plataforma Java SE acrescentada das funcionalidades necessrias para o desenvolvimento e execuo de aplicaes em um ambiente corporativo.

Arquitetura baseada em componentes para reuso. As aplicaes rodam dentro de um Container de um

Servidor de Aplicaes que siga a especificao JEE. multicamadas.

Permite construir aplicaes distribudas e

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Servidor de Aplicao JEE

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Continer

Todo componente de software Java EE deve estar dentro de um continer apropriado. Tipos de Continer Web JSP Servlets EJB EJBs

Servidor de Aplicao

JavaEE somente a especificao. Um Servidor de Aplicao um software que tem a funo de disponibilizar os contineres e os servios de infra-estrutura da arquitetura JEE. H no mercado vrias implemetaes de servidores que seguem a especificao JEE.
As diferenas esto nas opes de licenciamento (comercial ou software-livre) e nas definies de configurao de implantao e componentes adicionais de administrao das tecnologias. Ex: Jboss, Gernimo, GlassFish, Jonas...

Servidor 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

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.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

10

Camadas de Apresentao(Cliente) e Servidor JEE

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

11

Soluo Final (simplificada) usando JEE

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

12

Enterprise JavaBeans (EJB)

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

13

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 os componentes da camada cliente. Portanto,so:


Componentes distribudos, Gerenciados pelo continer, Transacionais e seguros quanto a acesso concorrente

(de multiusurios e aplicaes clientes)

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

14

Pontos de vista de Enterprise Java Beans


Para o desenvolvedor so simples classes

Java (POJO) com anotaes especficas para EJB.


POJO so classes com atributos privados, mtodo construtor

vazio e mtodos pblicos de acesso aos atributo (os gets e setters).

Para o container:
So objetos gerenciados Acesso Remoto Atendem a vrias requisies de mltiplos clientes
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

15

Modelo de Componentes
Um servidor EJB fornece um modelo

de componentes que simplifica o processo de construo da lgica de negcio em componentes no servidor, e como os clientes acessam os servios desses componentes por meio de suas interfaces. servios automticos para gerenciar os componentes, como prover acesso a fontes de dados (persistncia), monitor de transaes, controle de segurana concorrencia, tolerncia a falhas, etc.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

O modelo traz um conjunto de

16

Resumo sobre Componentes no JEE


Aplicaes J2EE so compostas de componentes Neste contexto, um componente uma unidade

autocontida de software que pode ser composta numa aplicao em tempo de design (sem compilao). localizados nas seguintes camadas:
desktops/janelas, console ou Applets
Componentes na Camada Web: pginas web, Servlets e

Componentes J2EE so escritos em Java e esto


Componentes na Camada de Apresentao: aplicaes

JSP (e frameworks relacionados a MVC)

Componentes na Camada do Domnio da Aplicao

(negcio): componentes EJB (Session Bean, Entity Bean, e de Mensagem)


Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

17

Componentes e Contineres (clientes e EJB)

Componentes na Camada de Apresentao

Componentes na Camada Web


Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Componentes na Camada do Domnio da Aplicao

18

Principais 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)
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

19

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 de

dados (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 mensagens

de forma assncrona (sem espera).

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

20

Persistncia
Responsvel pelo mapeamento de dados em banco

relacional para objetos e vice-versa.

Todas as operaes com o banco de dados

realizado por mtodos e objetos de persistncia em Java (sem utilizar comandos SQL).

JEE utiliza a especificao JPA Java Persistence API H diversas implementaes de JPA:
Hibernate, TopLink, OpenJPA, etc.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

21

Tcnica bsica de Mapemento OR (objeto-relacional)


1. O esquema da tabela traduzida para uma estrutura de classe 2. As colunas so mapeadas para atributos com tipos de dados traduzidos para tipos (primitivos ou classes tipadas) para a linguagem Java - Ex: VARCHAR torna-se String, INTEGER torna-se int 3. Os relacionamento entre tabelas tornam-se associaes entre classes, mapeados como conjuntos (usando classes como List, Set).

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

22

Gerenciamento de Transaes
Transao um conjunto de procedimentos que

executado em um banco de dados, que para o usurio 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

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

23

O uso de transaes gerenciadas pelo container

CMT (Transaes Gerenciadas pelo Container)

simplifica o desenvolvimento por no exigir o controle programtico das fronteiras da transao. que o mtodo (de persistncia) quando executado s pode ser associado a uma nica transao.

A limitao ao usar Beans Gerenciados por Container

A anotao adotada :
@TransactionManagement(TransactionManagementType.

CONTAINER)

Caso no seja definido o tipo de demarcao de

transao o bean assumir CMT como padro.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

24

BMT (Transaes Gerenciadas pelo Bean)


controlado pelo programador. usado para superar a limitao do CMP (um

mtodo para uma transao).


Utiliza a anotao:
@TransactionManagement(TransactionManagementT

ype.BEAN)

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

25

Manipulao de Exceo
Erros e excees (inesperados) ocorrem e devem

previstos na aplicao. ser testados.

Em tempo de compilao - os erros checked podem

Na prtica, a maioria dos erros/falhar ocorrem em tempo

de execuo do software e so unchecked (no verificados).

A recuperao e tratamento de erros/falhas bem

desenhados um dos melhores meios para aumentar a robustez do seu cdigo. simples (EJB 3.0 lana 16 excees).
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

O modelo EJB 3.0 o tratamento de excees ficou mais

26

Tipos de Exceo em EJB 3


As excees geradas pelos enterprise beans

podem ser clasificadas como system exceptions e application exceptions.


No EJB 3.0 temos a anotao

@ApplicationException para indicar a poltica de rollback para exceo a ser lanada por erro de lgica do negcio em contraposio aos erros do sistema.
Antes da EJB 3, isto era papel das checked

exceptions (excees que devem ser verificadas no cdigo).

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

27

System exceptions (excees de sistema)


System exceptions (excees de sistema)

indicam problemas com as tecnologias envolvidas com o servidor EJB.


Nesses casos, indicado lanar (throw)

javax.ejb.EJBException, porque subclasse de RuntimeException.


O cliente do bean no tem como tratar system

exceptions.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

28

Application exceptions (excees do 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 de

uma transao, o container EJB provoca o rollback dessa transao.


Se uma application exception ocorrer dentro de

uma transao, no ocorrer o rollback da transao.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

29

Segurana
Suporte para realizar autenticao e autorizao de maneira

transparente.

Os desenvolvedores das aplicaes no precisam

implementar a lgica de segurana pois ela faz parte da arquitetura EJB.


Da segurana dois processos so fundamentais:

Autenticao e Autorizao.
O processo de autenticao consiste na identificao dos

usurios atravs de algum tipo de certificado (usurio e senha). J o processo de autorizao determina o que cada usurio autenticado pode acessar dentro da aplicao.
Na plataforma Java, esses dois processos so padronizados

pela especificao JAAS (Java Authentication and Authorization Service)


Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

30

JNDI
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 de diretrios, etc.

Estes recursos podem ser objetos remotos, servios

O servidor EJB gerencia um conjunto de servios

por meio da JNDI

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

31

Protocolos
EJB define o protocolo Java RMI (JRMP) como o

protocolo default para acessar enterprise beans em rede.


Adicionalmente h suporte para os protocolos:
CORBA, IIOP HTTP Web Services (sob HTTP) DCOM e outros.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

32

Referncias bibliogrficas
BILL BURKE; RICHARD MONSON. Enterprise Javabeans 3.0 - 5

Edio - 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

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

33

Exerccios

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

34

Atividades em laboratrio
1) Verifique quais os servidores JEE esto instalados em sua mquina. 2)Abra o Netbeans e verifique se os servidores JEE esto instalados/configurados corretamente (ver figura no prximo slide).
1)Adicione o servio caso ele no exista. 2)Para cada um dos servidores, teste-os um de cada vez, e realize as seguintes operaes:
(a)Inicie o servio do servidor e verifique se ele est com o servidor web no ar, abrindo a pgina: http://localhost:8080 (b) Inicie o console do adminstrador do servidor
- No GlassFish http://localhost:4848

c) Interrompa (pare) o servio


Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

35

Opes de Servios de Servidores no Nebeans 7.x

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

36

Vous aimerez peut-être aussi