Escolar Documentos
Profissional Documentos
Cultura Documentos
o em Software Livre
UNID 4
Assuntos
Entity Beans Beans baseados em mensagem Injeo de recursos e o JNDI Interceptadores Segurana Servios Web
Entity Beans
de persistncia de dados.
O estado pode ser persistido em um banco de
com JPA).
conhecer os sistemas que a recebero. Da mesma forma, que os sistemas que recebem uma mensagem no precisam conhecer o sistema que a enviou.
Essas caractersticas permitem que os sistemas sejam
detalhes.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
componentes que podem esta localizados tanto na prpria mquina em que est rodando ou em outra mquina ou mesmo em outro servidor JEE.
Para localizar um determinado recurso o JEE
utiliza um servidor de nomes (Naming Service) , que consiste de uma espcie de lista de telefnica onde os vrios recursos so acessados atravs de um nome.
O servio que implementa esta lista chamado
dados ou um componente Session Bean, devemos registrlo no JDNI. Localizar um recurso a partir de seu nome
Outros componentes para utilizarem o recurso iro obt-lo
do JNDI, passando o nome com o qual foi registrado. O JNDI fornece um modo unificado de localizao de recursos no JEE. Esse processo chama-se lookup
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
10
Injeo de Dependncia diminui o esforo de localizao de objetos/recursos os quais sua classe depende.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
11
@EJB e @WebServiceRef.
12
A figura a seguir mostra como possvel fazer o lookup direto (em cdigo
Java) e o equivalente utilizando a injeo de dependncia (com anotao @Resource), para ter acesso ao um objeto de fonte de dados (banco MySql).
Em http://resumotecnico.blogspot.com.br/2011/06/lookup-jndi-no-java-ee-6.html
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
13
14
bin.jar) para a pasta lib (dentro da pasta domains) onde est instalado o Glassfish .
3. Entre no console de administrao do servidor
GlassFish (http://localhost:4848/ ).
4. No menu Common Task abra o menu
Resources (Recursos).
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
15
de Conexo).
16
conexo JDBC. Selecione javax.sql.ConnectionPoolDataSource em Resource Type e escolha o tipo MySQL em Database vendor.
17
Connection Pools.
18
19
Clique em OK.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
20
21
Interceptadores
22
O que so Interceptadores?
Interceptadores de mtodos do Java EE um
poderoso recurso que permite interceptar um mtodo antes que ele seja executado, permitindo que altere parmetros de envio, valores de retorno e muito mais. (PlainOld Java Object) que tem a capacidade de interceptar tanto chamadas de mtodos de negcio quanto os eventos de ciclo de vida de um EJB. injeo de dependncia, utilizando, por exemplo, a anotao @Resource para receber um objeto de sesso (SessionContext). Aspectos.
23
Segurana
24
aplicaes corporativas
No ambiente Java EE, o controle de segurana
Level - para Web Services, que implementado em alguns servidores, como o GlassFish )
25
Autenticao
A autenticao verifica a identidade de um
de identidade do usurio de muitas maneiras, incluindo arquivos, diretrios LDAP, e at mesmo bancos de dados acessados atravs de JDBC.
Abra o console do administrador do Glassfish para criar e editar
26
Autorizao
A autorizao o processo que concede
permisses de controle de acesso com base nas funes que o software oferece, bem como na identidade do usurio autenticado para usar o software.
Cada vez que um usurio faz logon (autenticao), ele
27
Segurana no Java EE 6
Na verso JEE 6, a segurana da aplicao
definida em 5 anotaes:
javax.annotation.security.PermitAll javax.annotation.security.DenyAll javax.annotation.security.RolesAllowed javax.annotation.security.DeclareRoles jvax.annotation.security.RunAs
28
Anotaes de segurana
As anotaes @PermitAll , @DenyAll e
29
Anotaes de segurana
@PermitAll - Indica que o mtodo ou todos os mtodos de negcio do EJB so acessveis por todos. @DenyAll - Indica que o mtodo indicado no EJB no pode ser acessado por nenhum usurio. @RolesAllowed - Indica que o mtodo indicado ou todos os mtodos de negcio no EJB podem ser acessados por usurios associados lista de papis (roles). @DeclareRoles - Define papis para checagem de segurana.
Para ser usado por EJBContext.isCallerInRole, HttpServletRequest.isUserInRole, e WebServiceContext.isUserInRole.
30
31
Servios Web
32
(protocolo) que permite a troca informaes entre aplicaes independente da plataforma ou linguagem em que essas aplicaes foram construdas.
Web Services funciona no protocolo HTTP e utiliza o
padro XML para estruturar os dados das mensagens trocadas entre os sistemas (o cliente e o fornecedor do servio)
servio web especificando um contrato bsico a partir de uma funo do sistema, que prover como servio a ser consumido pelos clientes. Esse contrato estabelece detalhes da funo que fornecida pelo servio e as mensagens trocadas como parte dessa funo.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
33
Web Services que seguem os padres da W3C a Java API for XML-Based Web Services JAXWS.
A JAX-WS depende fortemente de outra especificao Java, a JAXB Java Architecture for XML Binding.
34
JAX-WS e EJB
Os recursos da arquitetura EJB podem ser
um Singleton Session Bean como um Web Service que segue os padres da W3C pois a duas especificaes, EJB e JAX-WS, esto relacionadas.
Do ponto de vista da aplicao, basta aplicar a
anotao @WebService na classe que implementa um Stateless Session Bean ou um Singleton Session Bean.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins
35
Exemplo de WS
O exemplo a seguir mostra um componente
Stateless SessionBean que publica seus mtodos como servios em um Web Service.
A classe Random fornece o mtodo next como web
36
Referncias
BURKE, Bill and MONSON-HAEFEL, Richard.
http://docs.oracle.com/javaee/6/tutorial/doc/
37