u02-tecnologia jee para desenvolvimento multicamadas

Upload: claudio-martins

Post on 05-Apr-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 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