Enterprise Java Beans



Documentos relacionados
Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

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

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

J2EE. J2EE - Surgimento

Message Driven Beans. Apresentação. Introdução Implementação de MDBs Deployment no JBoss Java Messaging Service Exemplo

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

EJB. Session Beans. J2EE (C. Geyer) Introdução a SessionBean 1

Serviço de Transação. Transação - Conceitos

UFG - Instituto de Informática

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

SISTEMAS DISTRIBUÍDOS

Prof. Fellipe Araújo Aleixo

Enterprise Java Bean. Enterprise JavaBeans

Middleware de Aplicações Paralelas/Distribuídas

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

Web Technologies. Tópicos da apresentação

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

Aplicações Distribuídas Cliente/ Servidor Corporativas

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

Invocação de Métodos Remotos

Aplicação da Arquitetura Multicamadas Utilizando Java. Raquel Schlickmann Orientador: Marcel Hugo

Curso de Linguagem Java

Computação Paralela. Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

EJB 3.1: A Community Update

A interface de uma mensagem é extremamente flexível e permite várias formas de customização de conteúdo. Figura 1 - Tipos de Mensagens JMS

Stateful Session Beans

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

Sistemas Distribuídos: Conceitos e Projeto Java RMI

Explorando os novos recursos de EJB 3.1. Fabio Velloso

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

THREADS EM JAVA. George Gomes Cabral

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Invocação de Métodos Remotos RMI (Remote Method Invocation)

FBV - Linguagem de Programação II. Um pouco sobre Java

Mini-curso Gratuito Globalcode Slide 1

Sistemas Distribuídos

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

Java Spaces Exemplos

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Laboratório EJB e J2EE Uma aplicação completa

INF1013 MODELAGEM DE SOFTWARE

Enterprise Java Beans (III)

Java 2 Enterprise Edition Fundamentos básicos de Transações

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Implementando uma Classe e Criando Objetos a partir dela

Prova Específica Cargo Desenvolvimento

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Projetos Corporativos Baseados na Tecnologia Java Que Falham: O Que Podemos Aprender Deles?

Introdução à Linguagem Java

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

4 Um Exemplo de Implementação

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Java 2 Enterprise Edition Uma aplicação J2EE completa

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

RMI/JNDI - Fundamentos

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux

SISTEMAS DISTRIBUIDOS

Java. Marcio de Carvalho Victorino

Padrão Arquitetura em Camadas

Java para Desenvolvimento Web

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Guia de Fatores de Qualidade de OO e Java

Sistemas Distribuídos

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Java : Comunicação Cliente-Servidor.

UFG - Instituto de Informática

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

J530 - Enterprise JavaBeans. Introdução a EJB e Stateless. Session Beans. argonavis.com.br. Helder da Rocha (helder@acm.org)

4 - Padrões da Camada de Integração. Introdução

UNIVERSIDADE. Sistemas Distribuídos

Adriano Reine Bueno Rafael Barros Silva

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

(UFF) JDBC (I) TEPIS II

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha

J2EE TM Java 2 Plataform, Enterprise Edition

Aula 30 - Sockets em Java

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Componentes no Java EE

Sistemas Distribuídos

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

Transcrição:

Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side que encapsula a lógica de negócio de uma aplicação. A lógica de negócio é o código que preenche os objetivos da aplicação. Ocupa a camada web em em um container EJB. 2-Benefícios do uso de EJBs EJBs simplificam o desenvolvimento de aplicações grandes e distribuídas. Primeiro, porque o container EJB fornece serviços de nível de sistema a elas. Assim sendo o desenvolvedor pode se concentrar em resolver problemas do negócio. O container EJB é responsável por serviços como gestão de transações e autorizações de segurança. Segundo, porque são os EJBs que contêm a lógica de negócios, não os clientes. Assim sendo, o desenvolvedor da aplicação cliente pode se concentrar na apresentação, não tendo que implementar regras de negócio ou bancos de dados de acesso. Como resultado, clientes tornam-se mais leves, executáveis em máquinas menos poderosas. 1

Terceiro, porque EJBs são componentes portáteis, podendo ser reutilizados em outros aplicativos. 3-Quando usar EJBs Quando a aplicação for escalável. Para suportar um crescente número de usuários, pode-se desejar distribuir aplicações por múltipas máquinas. Quando transações devam garantir integridade dos dados. EJBs suportam transações. Quando a aplicação contém um grande número de clientes, leves e variados. 4-Tipos de EJBs 4.1-Session Beans Session beans encapsulam lógica de negócio que pode ser invocada programaticamente por um cliente de maneira local, remota ou via web service. Para acessar uma aplicação armazenada em um servidor, o cliente invoca os métodos do session bean. Tipos de session beans Stateful: Em um EJB stateful, suas variáveis de instância representam o estado de uma sessão única aberta entre o cliente e o EJB. Devido ao fato do cliente interagir com o o EJB, esse estado é frequentemente denominado estado conversacional. O estado é mantido enquanto durar a sessão cliente/ejb. São apropriados para as seguintes situações: O estado do EJB representa a interação entre o EJB e um cliente específico; O EJB precisa manter informação do cliente entre invocação de métodos; Stateless. Esses EJBs não mantêm um estado conversacional com o cliente. Quando o cliente invoca métodos de um EJB stateless, as variáveis de instância mantêm um estado específico apenas enquanto durar a execução do método. Quando esta termina, o estado não é mantido. Exceto durante a invocação de métodos, todas as instâncias de EJBs stateless são equivalentes, permitindo alocar uma instância para qualquer cliente. Provêem melhor escalabilidade para aplicações que requerem um número maior de clientes, pois aplicações requerem menos EJBs stateless do que stateful para atender ao mesmo número de clientes. Para incrementar a performance, deve-se escolher um EJB stateless se: Em uma única invocação de método, o EJB realiza uma tarefa genérica para todos os clientes; O EJB implementa um web service. Singleton - São instanciados apenas uma vez por aplicação e existem durante o ciclo de vida da mesma. São projetados para circunstâncias nas quais uma única instância do EJB é compartilhada e concorrentemente acessada por clientes. Oferecem a mesma funcionalidade dos EJBs stateful, a menos da instância única. O estado é mantido entre invocações de clientes, mas não quando ocorrem quedas do servidor. São apropriados nas seguintes circunstãncias: O estado precisa ser mantido durante a execução da aplicação; Um único EJB precisa ser acessado por múltiplos threads concorrentemente; 2

A aplicação precisa necessita que o EJB realize tarefas entre seu startup e shutdown. O EJB implementa um web service. 4.2-Message-driven Beans São EJBs que permitem a aplicações JEE processar mensagens assincronamente. Agem de maneira semelhante a um listener de eventos, mas ao invés de eventos, recebe mensagens provenientes de aplicações, outro EJB ou componentes web. Clientes não localizam message-driven beans e invocam métodos diretamente neles. Eles são acessados através de um serviço de mensagens (JMS), enviando mensagens ao destinatário (MessageListener). São executados mediante a recepção de uma mensagem vinda do cliente, assincronamente e stateless. Quando a mensagem chega, o container chama o método onmessage do messagedriven bean, que por sua vez chama métodos auxiliares (helper methods) para processá-la. Tudo isso ocorre em um contexto transacional. Eles não são acessados via interfaces, como session beans, ou seja, possuem apenas uma classe bean. 5-Acesso local ou remoto Acesso local: Cliente deve estar na mesma aplicação do EJB. Pode ser um componente web ou outro EJB. @ Local deve ser colocado no cabeçalho da interface do EJB local Acesso remoto: Pode rodar em uma máquina e JVM diferentes. Pode ser um componente web, uma aplicação cliente ou outro EJB. @ Remote deve ser colocado no cabeçalho da interface do EJB remote. 6-Interface do EJB Os métodos que darão acesso às regras de negócio do EJB devem estar contidos dentro de uma interface Java, como no exemplo abaixo: package com.webage.ejb; import javax.ejb.*; @Remote public interface SimpleBean { public String sayhello(string name); 7-A classe que implementa a interface A classe que implementa a interface acima deve estar contida no mesmo pacote da mesma. Repare, abaixo, como declaramos o tipo do EJB (@Stateless, no caso). 3

package com.webage.ejb; import javax.ejb.*; @Stateless(name="Example", mappedname="ejb/simplebeanjndi") public class SimpleBeanImpl implements SimpleBean { public String sayhello(string name) { return "Hello " + name + "!"; 8)O cliente EJB A classe exibida abaixo faz o acesso ao Session Bean criado. O objeto ctx da classe InitialContext é instanciado e é um contexto criado para acesso ao Session Bean através do chamado JNDI (Java Name and Directory Interface) Lookup, que é uma interface para localização da instância do session bean. Em seguida, o SessionBean é instanciado, por meio de uma chamada ao método lookup de InitialContexto, passando-se com o parâmetro o caminho JNDI. Na linha seguinte, o método correspondente do bean (sayhello) é invocado explicitamente. package com.webage.client; import javax.naming.*; import com.webage.ejb.simplebean; public class TestClient { public void runtest() throws Exception { InitialContext ctx = new InitialContext(); SimpleBean bean = (SimpleBean) ctx.lookup("ejb/simplebeanjndi"); String result = bean.sayhello("billy Bob"); System.out.println(result); public static void main(string[] args) { try { TestClient cli = new TestClient(); cli.runtest(); catch (Exception e) { e.printstacktrace(); 4

REFERÊNCIAS SUN Microsystems/Oracle Tutorial JEE6 Material disponível em http://www.webagesolutions.com/knowledgebase/javakb/jkb005/index.html 5