Introdução: EJBs de Sessão. Prof. Fellipe Aleixo

Documentos relacionados
Objetos e Componentes Distribuídos: EJB

UFG - Instituto de Informática

Session Bean Stateful

Enterprise Java Beans

Enterprise Java Beans

JAVA PARA WEB E EJB APLICAÇÕES WEB, SERVIDORES DE APLICAÇÃO, CONTAINERS WEB

Sistemas Corporativos Visão Geral e Arquitetura

Objetos e Componentes Distribuídos: EJB e CORBA

JBoss Seam. Vinicius Senger Co-fundador Globalcode Alberto J Lemos (Dr. Spock) Instrutor Globalcode. Globalcode Open4Education

Arquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre

2 Criar uma Enterprise Application que num módulo EJB irá conter um ou vários Beans.

Enterprise JavaBeansTM

Introdução ao Desenvolvimento de

Transações em Aplicações Corporativas com Java EE

Engenharia de Aplicações Sistemas Interactivos 2009/10! JAVASERVER FACES 1.2. Mestrado em Informática Universidade do Minho! 31!

TDC2012. EJB simples e descomplicado, na prática. Slide 1

Session Beans. Modelam o estado não-persistente

Introdução aos Sistemas Corporativos. Prof. Fellipe Aleixo

J530 - Enterprise JavaBeans. Message-driven Beans. argonavis.com.br. Helder da Rocha

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados

Enterprise Java Beans (I)

PMR3507 Fábrica digital

Java para Web & EJB. Teoria, prática e questões Módulo Introdução e Servlets

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

Coordenação Geral de Tecnologia da Informação - CGTI. Diretriz de Arquitetura de Sistemas. Versão 1.0. MAPA/SE/SPOA/CGTI, 2012 Página 1

Prof. Fellipe Araújo Aleixo

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski

Aula 12 -QS -Engenharia de SW Orientada a Serviço

Engenharia de Software Orientada a Serviços

Enterprise Java Bean. Enterprise JavaBeans

Sumário. Parte Um Visão geral Introdução... 23

INTRODUÇÃO. RPC x RMI

Consulplan. Questões de concursos. Série Desenvolvimento de Sistemas. Questões de Desenvolvimento de Sistemas para o concurso do TSE 2012

Academia Programador Especialista JAVA

Estilos Arquiteturais. Prof. Fellipe Aleixo

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Desenvolvimento Baseado em Componentes: Tecnologia J2EE

Programação orientada a objetos

Para minha família, por todo o seu apoio. Joseph J. Bambara

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ UTFPR CURSO SUPERIOR DE TECNOLOGIA EM DESENVOLVIMENTO DE SISTEMAS DE INFORMAÇÃO JACKSON BRAGA

Java 2 Enterprise Edition Construção de Aplicações EJB

Injeção de Dependências e Spring

UMA EXPERIÊNCIA DE ADOÇÃO DO JAVA 6 WEB PROFILE NO DESENVOLVIMENTO DE UM SISTEMA PARA GERENCIAMENTO DE UMA CLÍNICA DE PSICOLOGIA

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Redes de Computadores e Aplicações

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Aula 1: Apresentação, Computação Corporativa

UNIDADE IV ENTERPRISE JAVABEANS

JAVA ENTERPRISE EDITION: CRIAR BEANS DE ENTIDADE A PARTIR DE TABELAS

JBoss Seam Um framework para Java EE 5. [ Tiago Motta Jorge ]

Plataforma J2EE e EJB

Web Technologies. Tópicos da apresentação

NOME DA APRESENTAÇÃO

Prof. Me. Sérgio Carlos Portari Júnior

Arquitetura em Camadas

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Frameworks funcionais para JSF que proporciona o desenvolvimento de aplicações computacionais WEB

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Sistemas Operacionais II

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Processos ca 3 pítulo

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Aula 5: J2EE Application Assembly Model

Exemplos de Estilos Arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais. Estilo: Pipe e Filtros

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes

Módulo II Arquitetura em Camadas

Engenharia de Software Orientada a Serviços

Módulo III Camada de Persistência

Sistemas Operacionais

UTILIZAÇÃO DA TECNOLOGIA ENTERPRISE JAVABEANS NO DESENVOLVIMENTO DE APLICAÇÕES DISTRÍBUIDAS

Smart Proxies para Invocação de Serviços Web Replicados

Java RMI Remote Method Invocation

Aplicações Distribuídas

REVISÃO DE CONCEITOS DE ORIENTAÇÃO A OBJETOS

EJB 3.1: A Community Update

Utilização de componentes Enterprise JavaBeans no desenvolvimento de Sistemas Web

Aula 05. Fundamentos de Hardware e Software. Prof. Dr. Dilermando Piva Jr.

Enterprise JavaBeans. Java Deployment Course. por Jorge H. C. Fernandes DI-UFPE Julho de 1999

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Sistemas Distribuídos

Acelerando o desenvolvimento de aplicações desktop

Academia Programador de Aplicações JAVA

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Sistemas Distribuídos

CONTEÚDO PROGRAMÁTICO

Sistemas Distribuídos

Academia Programador de Aplicações JAVA

DESENVOLVIMENTO DE SISTEMA DE CLASSIFICADOS PARA A CIDADE DE PAU DOS FERROS/RN

Hibernate Anotations

Desenvolvimento de Aplicações Distribuídas

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

AVISO Nº 02 - RETIFICAÇÃO. A Companhia de Processamento de Dados do Estado do Rio Grande do Sul PROCERGS, torna público, por este Aviso, o que segue:

Transcrição:

Introdução: EJBs de Sessão Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

O Que é um Enterprise Bean? Written in the Java programming language, an enterprise bean is a server-side component that encapsulates the business logic of an application. The business logic is the code that fulfills the purpose of the application. In an inventory control application, for example, the enterprise beans might implement the business logic in methods called checkinventorylevel and orderproduct. By invoking these methods, clients can access the inventory services provided by the application. Tutorial JEE 7

Definição de Enterprise JavaBeans Definição simplificada: Modelo padrão de componentes do lado do servidor para aplicativos de negócio distribuídos Componentes executando processos do negócio Arquitetura distribuída: Balanceamento da carga de processamento Aumento da confiabilidade

Tidos de Enterprise Beans Sessão Session Bean Responsável por gerenciar processos ou tarefas Acessado por um protocolo de objetos distribuídos (RMI-IIOP) Pode implementar um Web Service Orientado a mensagens Message-driven Bean Atua como ouvinte para um tipo específico de mensagem Processa as mensagens assincronamente a partir de sistemas como o Java Message Service API

EJBs de Sessão Session Beans

Beans de Sessão Encapsulam a lógica de negócio Acessível a partir de uma contexto local, remoto do WS Controlar a interação entre outros beans Representando um fluxo de tarefas Gerenciam a interação com as classes de entidade (JPA)

Tipos de Beans de Sessão 1. COMinformação de estado - @Stateful Trabalha em favor de um cliente, mantendo o estado estado conversacional que expira com o tempo O estado é compartilhado por todos os seus métodos 2. SEM informação de estado @Stateless Coleção de serviços relacionados (métodos) Não mantém estado entre uma e outra invocação de método 3. @Singleton É instanciado apenas um por aplicação Perdura por todo o ciclo de vida da aplicação

Quando Usar um Bean de Sessão?... Stateful: Necessário guardar informação da interação com o cliente As informações são requeridas em vários métodos É responsável por intermediar a interação entre o cliente e outros componentes da aplicação Responsável por coordenar um fluxo trabalho de vários EJBs... Stateless: Para melhorar a performance Não é necessário guardar informações entre métodos Pode implementar um Web Service

Quando Usar um Bean de Sessão?... Singleton: Informações necessitam ser compartilhadas por toda aplicação Um único EJB necessita ser acessado concorrentemente por múltiplas threads A aplicação precisa de um EJB realizar tarefas desde o início da aplicação até o seu término Pode implementar um Web Service

Acessando um Bean de Sessão Um cliente pode acessar um bean de sessão através de uma interface de negócio ou diretamente No acesso direto o cliente conhece a classe que implementa as funcionalidades que ele está buscando Dependência direta No acesso através de uma interface, o cliente não sabe qual classe implementa as funcionalidades desejadas Dependência abstrata Podem ser definidas interfaces REMOTAS e LOCAIS

Acessando um Bean de Sessão Um cliente executando no mesmo servidor de aplicação pode ter acesso através da injeção de dependência Ambiente gerenciado pelo servidor (JSF, WS, EJBs e cliente JEE) Anotação javax.ejb.ejb Um cliente que não executa sob a gerência do servidor JEE tem acesso através do serviço de nomes (JNDI)

Acessando um Bean de Sessão Espaços de nomes JNDI: java:global java:global[/application]/module /enterprise bean [/interface] java:module java:module/enterprise bean name/[interface name] java:app java:app[/module name]/enterprise bean name [/interface name]

Acesso Local ou Remoto? Aspectos a levar em consideração: Acoplamento forte ou franco entre os beans em questão Tipo do cliente (necessariamente remoto) Distribuição dos componentes Performance Na dúvida escolha acesso REMOTO Anotações para as interfaces: @Remote e @Local É possível que um mesmo bean ofereça ao mesmo tempo acessos local e remoto

Criando Beans de Sessão de Acesso Local Criar uma implementação de EJB sem interface de acesso @Session public class MyBean {... } Anotar uma interface de negócio com @Local @Local public interface InterfaceName {... } Especificar a interface através da anotação @Local @Local(InterfaceName.class) public class BeanName implements InterfaceName {... }

Acessando um Beans de Sessão sem Interface Obtendo a referência através da injeção de dependência @EJB ExampleBean examplebean; Obtendo a referência através de uma pesquisa (lookup) no JNDI interface javax.naming.initialcontext ExampleBean examplebean = (ExampleBean) InitialContext.lookup("java:module/ExampleBean");

Acessando um Beans de Sessão com Interface Local Obtendo a referência através da injeção de dependência @EJB Example example; Obtendo a referência através de uma pesquisa (lookup) no JNDI interface javax.naming.initialcontext ExampleLocal example = (ExampleLocal) InitialContext.lookup("java:module/ExampleLocal");

Criando Beans de Sessão de Acesso Remoto Anotar uma interface de negócio com @Remote @Remote public interface InterfaceName {... } Especificar a interface através da anotação @Remote @Remote(InterfaceName.class) public class BeanName implements InterfaceName {... }

Acessando um Beans de Sessão com Interface Remota

Acessando um Beans de Sessão com Interface Remota Obtendo a referência através da injeção de dependência @EJB Example example; Obtendo a referência através de uma pesquisa (lookup) no JNDI interface javax.naming.initialcontext ExampleRemote example = (ExampleRemote) InitialContext.lookup("java:global/myApp/ExampleRemote");

Métodos, Parâmetros e Acesso Isolamento Os parâmetros de uma chamada remota são mais isolados, comparados com os parâmetros em uma chamada local Em uma chamada remota cliente e o bean operam com diferentes cópias dos objetos passados por parâmetro Em uma chamada local cliente e o bean podem modificar o mesmo objeto passado por parâmetro

Métodos, Parâmetros e Acesso Granularidade dos dados acessados Dado que chamadas remotas são mais lentas que as chamadas locais, os parâmetros passados para métodos remotos não devem ser de granularidade grossa

Conteúdo de um EJB Para desenvolver um EJB são necessários: A classe de implementação do EJB implementa os métodos Uma ou mais interfaces de negócio define os métodos Classes auxiliares, caso seja necessário exceções e utilitárias

Convenções de Nomes Elemento Sintaxe Exemplo Enterprise bean name Name Bean AccountBean Enterprise bean class Name Bean AccountBean Business interface Name Account

Ciclo de Vida dos EJBs Bean de sessão COM informações de estado:

Ciclo de Vida dos EJBs Bean de sessão SEM informações de estado:

Ciclo de Vida dos EJBs Bean de sessão SINGLETON: Semelhando ao ciclo de vida do Bean de Sessão SEM estado O mesmo é instanciado no início da aplicação se estiver anotado com @Startup

Mais Informações Enterprise JavaBeans 3.2 specification: http://www.jcp.org/en/jsr/detail?id=345 Enterprise JavaBeans 3.2 specification project: https://java.net/projects/ejb-spec/