A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Análise e Projeto Orientados a Objetos Marcos Mendes 1º Semestre - 2008.

Apresentações semelhantes


Apresentação em tema: "1 Análise e Projeto Orientados a Objetos Marcos Mendes 1º Semestre - 2008."— Transcrição da apresentação:

1 1 Análise e Projeto Orientados a Objetos Marcos Mendes 1º Semestre - 2008

2 2 EJB – Enterprise JavaBeans Referência Bibliográfica: Enterprise JavaBeans 3.0 Bill Burke & Richard Monson Editora. Prentice Hall Tutorial do J2EE Bodoff – Green – Haase – Jendrock - Pawlan – Stearns Editora Campus Revista JavaMagazine edições 8, e 47 Tutorial da Sun sobre JavaEE http://java.sun.com/javaee/5/docs/tutorial/doc/

3 3 Aplicações MultiCamadas Camada Cliente Camada WebCamada EIS Bancos de Dados RequestHttpServletRequest Response ResponseHttpServletResponse HTML XML JavaScript Applet Servlet JSP MainFrame Servidor de Aplicações / Servidor Web Aplicação Desktop / Web JCA EJB Camada de Negócios JPA / JDBC Aplicações Java Desktop

4 4 EJB – Enterprise JavaBeans EJB – Enterprise JavaBean Componente de software padrão executado no lado servidor (camada de negócios) que encapsula a lógica que atende às necessidades de um domínio de negócios. É utilizado na criação de aplicações corporativas distribuídas desenvolvidas com a tecnologia Java. Contêiner EJB É o ambiente responsável por gerenciar o ciclo de vida das instâncias das classes bean(objetos EJB) dentro de um servidor de aplicações. Servidor de Aplicações JavaEE Sistema que deve implementar os seguintes serviços: Enterprise JavaBeans (EJB) – Contêiner EJB Java Persistence (JPA) Java Message Service (JMS) Java Transaction Service/Java Transaction API (JTS/JTA) Servlets e JavaServer Pages (JSP) – Contêiner Web Java Naming and Directory Interface (JNDI)

5 5 EJB – Enterprise JavaBeans Disponibiliza também entre outros recursos: Pool de Instâncias EJB Pool de Conexões a Bancos de Dados Controle de Concorrência Conectividade Remota Gerenciamento de Segurança Autenticação (identificação do usuário) Autorização (controle do que um usuário pode acessar) Comunicação (criptografia) Quando usar EJB em suas aplicações Quando a aplicação deve ser escalável, tanto por possuir um número crescente de usuários, como a aplicação pode estar distribuída em múltiplas máquinas. Quando transações são necessárias para garantir a integridade dos dados. Quando a aplicação possuir um alto número de clientes. Como a lógica de negócio fica nos componentes no lado servidor, a manutenção é facilitada.

6 6 EJB – Enterprise JavaBeans Os três tipos básicos de Enterprise JavaBeans: Beans de Entidadade – Entity Beans (JPA-Entity) São persistentes, representam o modelo persistente de dados. São gerenciados pelo serviço EntityManager. Beans de Sessão – Session Beans Não são persistentes. São freqüentemente utilizados para gerenciar as interações entre os beans de entidade. Representam um fluxo de tarefa, um processo de negócio. Beans baseados em mensagens – Message Driven Beans Recebem e processam mensagens assincronamente. São utilizados na interação com outros aplicativos através de um serviço de mensagens (JMS). MessageListener, onMessage() Não possuem interfaces Local, nem Remota. Normalmente implementam a interface MessageListener, implementando assim o método onMessage() onde se localiza a lógica de negócio.

7 7 EJB – Enterprise JavaBeans Beans de Sessão – Session Beans Stateful SessionBean (Beans de sessão com informações de estado) Mantém o estado conversacional entre as chamadas de um cliente para o servidor, o que permite manter dados específicos ao cliente entre invocações de método. É uma extensão do aplicativo cliente. Não são mantidos em um pool de instâncias. Stateless SessionBean (Beans de sessão sem informações de estado) Não mantém nenhum estado conversacional entre o cliente e o servidor. São mantidos em um pool de instâncias. Possuem um desempenho maior que os beans de sessão com informações de estado. São utilizados para realizar tarefas que sejam realizadas em uma única chamada de método.

8 8 EJB – Enterprise JavaBeans Componentes de um aplicativo que utiliza SessionBean. Interfaces Remota e/ou Local Interface remota @javax.ejb.Remote Anotada com @javax.ejb.Remote Define quais os métodos que um cliente tem permissão para invocar. Interface local @javax.ejb.Local Anotada com @javax.ejb.Local Define quais os métodos que um outro EJB pode invocar dentro da mesma JVM. Classe do Bean @javax.ejb.Sateless@javax.ejb.Stateful Anotada com @javax.ejb.Sateless ou @javax.ejb.Stateful Contém a lógica de negócio, implementando os métodos descritos nas interfaces remota e/ou local e opcionalmente as interfaces de negócio. Cliente Remoto Aplicação que se conecta ao servidor EJB. Por meio da API JNDI, ele localiza a interface remota do EJB a ser utilizado e através da referência dessa interface aciona os métodos remotos do componente EJB.

9 9 Instalação e configuração do JBoss Baixe o JBoss no site http://jboss.com/products/jbossas/downloads jems-installer-1.2.0.GA.jar Para Windows, baixe o arquivo jems-installer-1.2.0.GA.jar e execute-o. EJB3 Na tela de configuração do tipo de instalção, selecione a opção EJB3.

10 10 Instalação e configuração do JBoss Nas demais telas, apenas clique em next, selecionando assim as opções padrão. run.bat shutdown.bat-S Para iniciar o servidor, basta executar o arquivo de lote run.bat na pasta bin do diretório de instalação. Para encerrar o servidor, pressione no prompt de comandos onde o servidor está sendo executado ou execute o arquivo de lote shutdown.bat com a opção -S. http://localhost:8080 Acesso o endereço http://localhost:8080 para verificar a instalação. JBOSS_HOME É aconselhável que se crie uma variável de ambiente JBOSS_HOME contendo o caminho do diretório de instalação do JBoss.

11 11 EJB – Enterprise JavaBeans Construção da aplicação exemplo usando JBoss jboss-ejb3x.jarejb3-persistence %JBOSS_HOME%/client/ Crie um novo projeto Java e adicione no classpath os arquivos jboss-ejb3x.jar e ejb3-persistence que se encontram na pasta: %JBOSS_HOME%/client/ modelo.Aluno Torne a classe modelo.Aluno serializável. Pois os objetos dessa classe irão trafegar pela rede. negocio.ejbAlunoRemote Crie no pacote negocio.ejb a Interface Remota AlunoRemote. Adicione o projeto que contém a classe modelo.Aluno no buildpath. package negocio.ejb; import javax.ejb.*; import modelo.Aluno;@Remote AlunoRemote public interface AlunoRemote { incluir public int incluir(Aluno a); } Interface Remota

12 12 EJB – Enterprise JavaBeans negocio.ejbAlunoBean Crie no pacote negocio.ejb a classe do bean AlunoBean package negocio.ejb; import modelo.Aluno; import javax.persistence.*; import javax.ejb.*; @Stateless AlunoBeanAlunoRemote public class AlunoBean implements AlunoRemote { @PersistenceContext(unitName = "teste") private EntityManager em; incluir public int incluir(Aluno a) { em.persist(a); return a.getId(); } Classe do Bean

13 13 EJB – Enterprise JavaBeans clienteClienteAlunoEJB Crie no pacote cliente a classe ClienteAlunoEJB package cliente; import modelo.*; import negocio.ejb.*; import javax.naming.*; import java.util.*; public class ClienteAlunoEJB { public static void main(String[] args) { try { Properties prop = new Properties(); prop.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.NamingContextFactory"); prop.put(Context.PROVIDER_URL, "localhost:1099"); InitialContext jndiContext = new InitialContext(prop); Object ref = jndiContext.lookup("AlunoBean/remote"); AlunoRemote refBean = (AlunoRemote) ref; Cliente Remoto Configuração do Contexto JNDI (dependente do servidor)

14 14 EJB – Enterprise JavaBeans Aluno a = new Aluno(); a.setNome("José"); a.setRa(987654321); a.setMs1(7.5); a.setMs2(6.0); int id = refBean.incluir(a); System.out.println("Id do aluno inserido " + id); } catch (NamingException ex) { ex.printStackTrace(); }

15 15 EJB – Enterprise JavaBeans Implantação da aplicação. Aluno.classAlunoBean.class AlunoRemote.classpersistence.xml Os arquivos Aluno.class, AlunoBean.class, AlunoRemote.class e o persistence.xml serão empacotados em um arquivo.jar e implantados no diretório de deploy do servidor JBoss. Para se executar a aplicação, algumas configurações deverão ser efetuadas previamente: MySQL Criação de uma Fonte de Dados para o Banco MySQL. persistence.xml Criação do arquivo persistence.xml. Apache Ant Criação de um arquivo de build (build.xml) para automatizar a implantação através do aplicativo Apache Ant.

16 16 EJB – Enterprise JavaBeans Configure o JBoss para fazer conexão com o MYSQL. testedb-ds.xml %JBOSS_HOME%/server/default/deploy Crie o arquivo testedb-ds.xml na pasta %JBOSS_HOME%/server/default/deploy TesteDS TesteDS jdbc:mysql://localhost:3306/uniban com.mysql.jdbc.Driver com.mysql.jdbc.Driver root root admin admin %JBOSS_HOME%/server/default/lib Copie o driver JDBC do MySQL para a pasta %JBOSS_HOME%/server/default/lib Configuração da Fonte de Dados

17 17 EJB – Enterprise JavaBeans persistence.xmlMETA-INF Crie o arquivo persistence.xml na pasta META-INF em seu projeto. teste java:/TesteDS java:/TesteDS <property name="hibernate.hbm2ddl.auto" value="update"/> Configuração do persistence.xml

18 18 EJB – Enterprise JavaBeans build.xml Crie o arquivo build.xml na pasta raiz do seu projeto. ExemploAlunoEJB /JavaProg/ProjetoJPA/ Criação do arquivo de build

19 19 EJB – Enterprise JavaBeans

20 20 EJB – Enterprise JavaBeans <javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="**">

21 21 EJB – Enterprise JavaBeans alunoEJB.jar alunoEJB.jar

22 22 EJB – Enterprise JavaBeans Abra uma janela do prompt de comando. Mude o diretório corrente para a pasta raiz do seu projeto. Implante a aplicação digitando o comando. ant > ant run.bat%JBOSS_HOME%/bin Inicie o servidor de aplicações JBoss executando o arquivo run.bat na pasta %JBOSS_HOME%/bin Execute o cliente remoto digitando o comando ant run.client > ant run.client

23 23 EJB – Enterprise JavaBeans Exemplo de Aplicação Swing com EJB SessionBean e JPA-Entity


Carregar ppt "1 Análise e Projeto Orientados a Objetos Marcos Mendes 1º Semestre - 2008."

Apresentações semelhantes


Anúncios Google