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

Tamanho: px
Começar a partir da página:

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

Transcrição

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

2 Autores! Autores " Cláudio Geyer " Eduardo Studzinski Estima de Castro (EJB 3.0) " Gisele Pinheiro Souza (EJB 3.0) J2EE (C. Geyer) Introdução a SessionBean 2

3 Local! Local " Instituto de Informática " UFRGS " Disciplinas: " Programação Distribuída e Paralela " Programação com Objetos Distribuídos " Versão " V30, abril 2012 J2EE (C. Geyer) Introdução a SessionBean 3

4 Súmula! Súmula " JEE: Session Beans # conceitos de Session Beans # conceitos básicos de programação # exemplo # Servidor de saudação ( Hello World ) J2EE (C. Geyer) Introdução a SessionBean 4

5 ! Bibliografia Bibliografia " Tutorial Sun JEE # Versão 5 # # Part IV, caps 20 a 23 # Session beans # Caps 21 e 22 # Versão 6 # # Part IV, caps 16 a 19 # Session beans # Caps 17 e 18 J2EE (C. Geyer) Introdução a SessionBean 5

6 SB: características! Session bean " Define uma sessão de um cliente dentro do servidor EJB " Uma instância de session bean para cada cliente # Não pode ser compartilhado " Não persistente, estado efêmero " Destruído quando cliente termina " Depende do tipo abaixo " Tipos # Stateless: sem estado # Stateful: com estado J2EE (C. Geyer) Introdução a SessionBean 6

7 ! Session bean com estado (Stateful) " Estado: # possui variáveis de instância " Também chamado estado conversacional SB: características # Estado da conversa entre 1 cliente e 1 session bean " Estado desaparece quando o cliente termina ou o container remove o EJB (sessão) " Eventualmente servidor pode gravar um session com estado em memória persistente A recuperação de stateless session beans é bem mais fácil que em stateful beans, pois o estado de stateless beans não precisa ser retido. J2EE (C. Geyer) Introdução a SessionBean 7

8 SB: características! Session bean sem estado (Stateless) " Não mantém estado da conversa com cliente " Pode conter variáveis de instância # Mas conteúdo é mantido somente durante invocação de um método do EJB " Para cada invocação, qualquer instância da classe EJB pode ser usada para qualquer cliente # Mais eficiente # Servidor pode manter uma lista (pool) de EJB # Para uma mesma quantidade de clientes # Menor número de sem estado do que com estado J2EE (C. Geyer) Introdução a SessionBean 8

9 Quando Usar Session Beans! Quando usar session beans " Em cada momento, somente um cliente tem acesso ao bean " Não há necessidade de persistência! Quando usar com estado (Stateful) " Bean representa estado da interação entre servidor e cliente " Estado deve ser mantido entre múltiplas chamadas " Bean gerencia a interação do cliente com outros componentes da aplicação J2EE (C. Geyer) Introdução a SessionBean 9

10 Quando Usar Session Beans! Quando usar sem estado (Stateless) " Para aumentar o desempenho " Bean não mantem estado específico de um cliente " Em uma invocação pode realizar uma tarefa para todos os clientes " Em uma invocação, o bean pode acessar um conjunto de dados persistentes # Por exemplo, as linhas de uma tabela com as vendas do mês via Entity (persistência) J2EE (C. Geyer) Introdução a SessionBean 10

11 ! Session x persistência (uso de HD,...) " Session bean sem estado # Pode ter 1 para k clientes # Nunca são gravados em memória persistente pelo container # Mais eficientes Session x persistência " Session bean com estado # Deve estar presente em toda a sessão do cliente # Um (1) por cliente # Container faz swap in/out para otimizar uso da memória (RAM) # Menos eficientes J2EE (C. Geyer) Introdução a SessionBean 11

12 Ciclos de Vida dos EJB! Ciclo de vida dos EJB 3.0 " Stateful session bean # 1: cliente declara referência anotada # 2, 3, 4: controlado pelo container # PostActivate e PrePassivate: container chama EJB # Em swap do EJB # métodos de negócios: programador pode adicionar # Classe app: não há create (), remove() Fonte: The Java EE 6 Tutorial. Sun Microsystems. J2EE (C. Geyer) Introdução a SessionBean 12

13 J2EE (C. Geyer) Introdução a SessionBean 13

14 Ciclos de Vida dos EJB! Ciclo de vida dos EJB " Stateful session bean # Algoritmo de passivate # Normal: least-recently-used # Chamada do ejbpassivate() (2.1) ou PrePassivate() callback method (3.0) # Antes do EJB ser passivate # Chamada do Activate: # quando cliente volta a chamar o EJB J2EE (C. Geyer) Introdução a SessionBean 14

15 Ciclos de Vida dos EJB! Ciclo de vida dos EJB 3.0 " Stateless session bean # 1, 2: a cada chamada de métodos de negócio pelo cliente caso o EJB não exista (pool) Fonte: The Java EE 5 Tutorial. Sun Microsystems. J2EE (C. Geyer) Introdução a SessionBean 15

16 J2EE (C. Geyer) Introdução a SessionBean 16

17 Exemplo de Session Bean! Exemplo de código com Session Bean " aplicação Hello World " especificação do Saudação # fonte: Wutka. Using JEE. (EJB 2.1) # modelo cliente/servidor # servidor # retorna uma saudação a pedido do cliente # guarda uma nova saudação a pedido do cliente # tem somente uma saudação em cada momento J2EE (C. Geyer) Introdução a SessionBean 17

18 ! Especificação do Saudação " idéia de implementação # servidor: # cliente # 1 session bean com estado # cria sessão Especificação # interage com o servidor pedindo saudações ou passando saudações # remove sessão J2EE (C. Geyer) Introdução a SessionBean 18

19 Exemplo para a versão 3.0 J2EE (C. Geyer) Introdução a SessionBean 19

20 Exemplo SB EJB 3.0! Session Beans com estado: " Passos # Criação da interface de negócio # interface de negócio # Implementação da classe session bean " Exemplo: Hello World # Com métodos set e get J2EE (C. Geyer) Introdução a SessionBean 20

21 Exemplo SB EJB 3.0! Criação da interface de negócio " Não há necessidade de estender interfaces " Métodos de negócio para clientes # Não necessita definir a exceção RemoteException ou qualquer outra pré-definida " Nome da interface: livre " Sem imports para pacotes ejb ou rmi " Em resumo: uma interface normal Java (POJO) J2EE (C. Geyer) Introdução a SessionBean 21

22 Exemplo SB EJB 3.0! Criação da interface de negócio " package ufrgs.hello; /** Define os métodos que o cliente pode invocar */ /** Interface normal: sem herança */ public interface HelloWorldSession { } /** Retorna a mensagem de saudação */ public String getgreeting(); /** Modifica a mensagem de saudação*/ public void setgreeting(string agreeting); /** Define uma mensagem de saudação */ public void startup(string agreeting); J2EE (C. Geyer) Introdução a SessionBean 22

23 Exemplo SB EJB 3.0! Criação da interface home " Não existe mais essa interface; " Sessions não tem mais construtores com parâmetros; # Problema? J2EE (C. Geyer) Introdução a SessionBean 23

24 ! Classe implementação do session bean Exemplo SB EJB 3.0 " Deve implementar a interface de negócio # No exemplo: HelloWorldSession " Métodos obrigatórios # Não existe nenhum método obrigatório # Métodos do ciclo de vida : # Nome # especificados usando anotações como: (antigo: ejbpassivate) (antigo: ejbactivate) J2EE (C. Geyer) Introdução a SessionBean 24

25 Exemplo SB EJB 3.0! Classe implementação do session bean " Construtor # Não pode ter parâmetros # Não obrigatório " Métodos da interface de negócio # Implementar J2EE (C. Geyer) Introdução a SessionBean 25

26 Exemplo SB EJB 3.0! Classe implementação do session bean " Construtor # Não pode ter parâmetros # Não obrigatório " Métodos da interface de negócio # Implementar " Restrições graves? J2EE (C. Geyer) Introdução a SessionBean 26

27 ! Classe implementação do session bean Exemplo SB EJB 3.0 " Outros requisitos # Classe pública # Não pode ser nem abstract nem final # Abstract # Contém 1 ou mais métodos abstract # Não pode ser instanciada # Final # Não pode ser alterada " Restrições graves? J2EE (C. Geyer) Introdução a SessionBean 27

28 Exemplo SB EJB 3.0! Classe implementação do session bean " Métodos de negócio # Devem ser públicos; # Não podem ser nem estáticos nem final; " Restrições graves? J2EE (C. Geyer) Introdução a SessionBean 28

29 ! Classe implementação do session bean " package ufrgs.hello; Exemplo SB EJB 3.0 import javax.ejb.stateful; import javax.ejb.remote; /** Implementação da classe EJB do bean HelloWorldSession */ /** Classe normal - POJO: somente contrato da interface de negócio */ public class HelloWorldSessionImpl implements HelloWorldSession { /** Mantém a saudação da sessão */ private String greeting; J2EE (C. Geyer) Introdução a SessionBean 29

30 Exemplo SB EJB 3.0! Classe implementação do session bean /** Um EJB pode ter um construtor público sem parâmetros */ public HelloWorldSessionImpl() { } J2EE (C. Geyer) Introdução a SessionBean 30

31 ! Classe implementação do session bean Exemplo SB EJB 3.0 /** a anotação indica que essa método será executado logo após a invocação pelo cliente de uma instância desse bean - obs.: impede a criação com distintas saudações? public void defaultgreeting() { greeting = "Hello World!"; } J2EE (C. Geyer) Introdução a SessionBean 31

32 Exemplo SB EJB 3.0! Classe implementação do session bean /* Em razão da inexistência de construtores parametrizados: caso um parâmetro seja necessário, pode-se chamar um método usado para inicialização após o recebimento da instância */ public void startup(string agreeting) { greeting = agreeting; } J2EE (C. Geyer) Introdução a SessionBean 32

33 ! Classe implementação do session bean Exemplo SB EJB 3.0 " /** Retorna a saudação da sessão */ public String getgreeting() { return greeting; } /** Modifica a saudação da sessão */ } public void setgreeting(string agreeting) { greeting = agreeting; } J2EE (C. Geyer) Introdução a SessionBean 33

34 Comentários! Comentários (alguns válidos somente para SB 2.1) " alguns IDE geram automaticamente certos arquivos (ou partes de) " seguir convenção de nomes " método construtor da classe # não usado (nem indiretamente) pelos clientes # em termos Java os objetos são construídos sob controle do container " método setsessioncontext pode estar vazio # variável context não usada em outros métodos J2EE (C. Geyer) Introdução a SessionBean 34

35 Usando o SB! Usando o bean " geral: criar um arquivo jar # alguns descritores em XML # classes auxiliares conforme container e as classes do EJB J2EE (C. Geyer) Introdução a SessionBean 35

36 ! Usando o bean Usando o SB " no JEE SDK (Sun) # tool deploytool (diretório bin) # new application no file menu # nome do EAR a criar (EAR é um arquivo jar) # new EB (EJB) no file menu # add button no new EB wizard # selecionar arquivos # HelloWorldSession.class # HelloWorldSessionHome.class # HelloWorldSessionImpl.class # indicar os nomes das classes do EB # no caso: mesmas dos arquivos J2EE (C. Geyer) Introdução a SessionBean 36

37 Usando o SB! Usando o bean " no JEE SDK (Sun) # opcional: nome para display na deploytool # session ou entitity bean # se session # stateless ou stateful # continuar até finish # HelloWorld bean é simples # pronto para uso J2EE (C. Geyer) Introdução a SessionBean 37

38 ! Usando o bean Usando o SB " disparar o EJB server (ou verificar se está rodando) # às vezes pode-se indicar o server na deploytool " tools menu: selecionar Deploy Application " geração de classes adicionais # BEA s Weblogic # ao criar jar file # JEE SDK (Sun) # no deploytool # classe auxiliar do cliente (stub) # BEA s Weblogic: dinamicamente # JEE SDK (Sun): arquivo deve ser explicitado J2EE (C. Geyer) Introdução a SessionBean 38

39 Usando o SB! Usando o bean (versão 3.0) " Igual aos passos descritos na versão 2.1; " Observando que certos itens não são mais necessários ou não mais existem " Exemplo, interface home " Pequenas diferenças podem surgir, devido a novas implementações; J2EE (C. Geyer) Introdução a SessionBean 39

40 ! Cliente Hello " Injeção Exemplo SB: cliente # O uso da permite a injeção a um determinado bean # não havendo a necessidade de utilizar chamadas a métodos nativos da JNDI API # O uso de métodos nativos é suportado por # questões de compatibilidade # permissão para invocação de beans localizados em máquinas remotas # criação de nova instâncias # create J2EE (C. Geyer) Introdução a SessionBean 40

41 Exemplo SB: cliente! Cliente Hello " Criação do session bean # Uso de injeção; " Interação # Chamada de métodos de negócio do bean # get e set saudação J2EE (C. Geyer) Introdução a SessionBean 41

42 ! Cliente Hello " package ufrgs.hello; Exemplo SB: cliente import j avax.ejb.ejb; public class TestHello { /* Injeção de uma instância */ /* Notar: uso da interface private HelloWorldSession bean; public static void main( String[] args) { J2EE (C. Geyer) Introdução a SessionBean 42

43 Cliente Hello Exemplo SB: cliente " /** Obtém greeting, altera greeting */ System.out.println( A saudação padrão é "+ session.getgreeting()); session.setgreeting( Olá Brasil!"); System.out.println( A saudação agora é +session.getgreeting()); J2EE (C. Geyer) Introdução a SessionBean 43

44 Exemplo SB: cliente A realiza a injeção de apenas uma instância, para ser usada outra instância é necessário anotar outra variável ou realizar a invocação utilizando a JNDI API;! Cliente Hello! /** Modifica a saudação */ session.startup("guten Tag!"); System.out.println( Nova saudação + session.getgreeting()); } /* fim do método */ } /* fim da classse*/ J2EE (C. Geyer) Introdução a SessionBean 44

45 Resumo: Session Beans! Resumo " Finalidade # Todas as operações de uma sessão de um cliente " Ciclo de vida # Limitado à vida do cliente " Relação cliente x SB # 1 (único) cliente para cada SB # -> sem acesso concorrente por n clientes # -> sem necessidade de sincronização J2EE (C. Geyer) Introdução a SessionBean 45

46 Resumo: Session Beans! Resumo " Tipos # Com estado # Sem estado # Definição por anotação: -> exige recompilação em mudança J2EE (C. Geyer) Introdução a SessionBean 46

47 Resumo: Session Beans! Resumo " Com estado # Garante valor dos atributos entre chamadas # Container faz swap em disco para otimizar uso da memória " Sem estado # Não garante... # Container cria um pool de objetos para todos os clientes " Criação # Por solicitação do cliente J2EE (C. Geyer) Introdução a SessionBean 47

48 Resumo: Session Beans! Resumo " Codificação # Interface (comum) com métodos de negócio para os clientes # Classe (comum) " Cliente # Anotada como SB com ou sem estado # Métodos da interface e internos # Métodos de callback (de sistema): opcionais e por anotação # Referência a um SB anotada J2EE (C. Geyer) Introdução a SessionBean 48

49 Versão EJB 3.1: novidades! Versão EJB 3.1 " Novidades # Bean sem interface # Somente para acesso local # Todos os métodos públicos são acessíveis # Referência no cliente do tipo classe (não interface) # Bean singleton # Uma única instância em uma instalação # Variações em # Quando o bean é criado # Uso do método PostConstruct de callback J2EE (C. Geyer) Introdução a SessionBean 49

50 Versão EJB 3.1: novidades! Versão EJB 3.1 " Novidades # Chamada assíncrona # Independência entre local e remota # Opção de resposta no futuro # Nomes globais # Comuns a diversas aplicações e instalações # Novo serviço de Timer # Para operações periódicas # EJB Lite # Versão com um implementação mínima e mais leve J2EE (C. Geyer) Introdução a SessionBean 50

51 Versão EJB 3.1: novidades! Versão EJB 3.1 " Novidades # Empacotamento mais simples # Junto com arquivo war # war: módulo web # Container embutido (embeddable) # Disparado dentro de uma JVM com carregador de classes # Não precisa de container JEE completo # Classe com método estático para instanciar container J2EE (C. Geyer) Introdução a SessionBean 51

52 Exercícios! Exercícios " A) compare com RMI # criação # estado # compartilhamento # sincronização # escalabilidade # complexidade / simplicidade para uso (desenvolvimento) # outros recursos " B) compare com C# Remoting # idem J2EE (C. Geyer) Introdução a SessionBean 52

53 Revisão! Revisão de Session Beans " qual a finalidade de session beans? " qual a relacionamento entre clientes e session beans? " quais os tipos de session beans? " quando se usa um tipo e outro? " qual o mais eficiente e porque? " quais as interfaces? " quais os métodos declarados em cada interface? J2EE (C. Geyer) Introdução a SessionBean 53

54 Revisão! Revisão de Session Beans " quais as 2 variações nos tipos de acesso às interfaces? " quando se usa um e outra? " como um cliente acha um tipo de session bean? " como um cliente obtém um session bean (objeto)? " quais os métodos implementados na classe session bean? J2EE (C. Geyer) Introdução a SessionBean 54

55 Bibliografia! Bibliografia " Orfali, R., Harkey, D.: Client-Server Programming with Java and CORBA - 2a. Edição. " Wutka, Mark. Special Edition Using Java 2 Enterprise Edition. QUE " Tutoriais e material disponível em: java.sun.com J2EE (C. Geyer) Introdução a SessionBean 55

56 Exemplo para a versão 2.1 J2EE (C. Geyer) Introdução a SessionBean 56

57 Ciclos de Vida dos EJB! Ciclo de vida dos EJB 2.1 " Stateful session bean # 1: cliente chama container # 2, 3: container chama EJB # ejbactivate e ejbpassivate: container chama EJB # swap do EJB # métodos ejb: programador pode adicionar J2EE (C. Geyer) Introdução a SessionBean 57

58 Ciclos de Vida dos EJB! Ciclo de vida dos EJB 2.1 " Stateless session bean # 1, 2: a cada chamada de métodos de negócio pelo cliente caso o EJB não exista (pool) J2EE (C. Geyer) Introdução a SessionBean 58

59 SB: passos! Session Beans " Session Bean com estado: passos # criação da interface remota # preferível iniciar pela interface de negócio # criação da interface home # implementação da classe session bean # exemplo: Hello World # com métodos set e get J2EE (C. Geyer) Introdução a SessionBean 59

60 SB: interface remota! Criação da interface remota " estende EJBObject " métodos de negócio para clientes # com exceção RemoteException " nome da interface: livre " import java.rmi e javax.ejb J2EE (C. Geyer) Introdução a SessionBean 60

61 ! Criação da interface remota " package usingj2ee.hello; SB: interface remota import java.rmi.*; import javax.ejb.*; /** Defines the methods you can call on a HelloWorldSession object */ public interface HelloWorldSession extends EJBObject J2EE (C. Geyer) Introdução a SessionBean 61

62 SB: interface remota! Criação da interface remota (cont.) " /** Returns the session's greeting*/ public String getgreeting() throws RemoteException; /** Changes the session's greeting */ public void setgreeting(string agreeting) throws RemoteException; } J2EE (C. Geyer) Introdução a SessionBean 62

63 SB: interface home! Criação da interface home " import: idem " estende EJBHome " construtores pelo método create # RemoteException, CreateException # retornam tipo interface Remote # é o que cliente usa para acessar o SB (não a classe) # nome: nome-da-interface-remota+ Home " usada pelos clientes para criar um session bean J2EE (C. Geyer) Introdução a SessionBean 63

64 SB: interface home! Criação da interface home " package usingj2ee.hello; import java.rmi.*; import javax.ejb.*; /** Defines the methods for creating a HelloWorldSession */ public interface HelloWorldSessionHome extends EJBHome { J2EE (C. Geyer) Introdução a SessionBean 64

65 SB: interface home! Criação da interface home (cont.) " /** Creates a HelloWorldSession bean with default settings */ public HelloWorldSession create() throws RemoteException, CreateException; /** Creates a HelloWorldSession bean with a specific initial greeting */ public HelloWorldSession create(string Greeting) throws RemoteException, CreateException; } J2EE (C. Geyer) Introdução a SessionBean 65

66 SB: classe! Classe implementação do session bean " deve implementar a interface SessionBean # nem a home nem a remota " métodos obrigatórios # estão na interface SessionBean (?) # setsessioncontext # ejbremote # ejbactivate # ejbpassivate # obs: ver no exemplo da classe SB " import: idem + java.util J2EE (C. Geyer) Introdução a SessionBean 66

67 SB: classe! Classe implementação do session bean " construtor # ao menos 1 público sem parâmetros # pode estar vazio " métodos das interfaces Remote e Home # implementar J2EE (C. Geyer) Introdução a SessionBean 67

68 SB: classe! Classe implementação do session bean " outros requisitos # classe pública # não pode ser nem abstract nem final # abstract # contém um ou mais métodos abstract # não pode ser instanciada # final # não pode ser alterada # implementa 1 ou mais métodos ejbcreate # um para cada create da interface Home J2EE (C. Geyer) Introdução a SessionBean 68

69 SB: classe! Classe implementação do session bean " métodos ejbcreate # tipicamente os métodos ejbcreate inicializam os campos de estado # retorno: void # se oferece acesso remoto # argumentos devem ser tipos válidos para RMI # não pode ser nem estático (static) nem final J2EE (C. Geyer) Introdução a SessionBean 69

70 ! Classe implementação do session bean SB: classe " métodos de negócio # evitar conflitos de nomes com os nomes de métodos EJB # deve ser público # se bean oferece acesso remoto, os tipos dos parâmetros devem ser tipos RMI válidos # não pode ser nem estático nem final " exceções # métodos são acessados localmente pelo container # sem exceções remotas " variáveis # devem ser protected J2EE (C. Geyer) Introdução a SessionBean 70

71 SB: classe! Classe implementação do session bean " package usingj2ee.hello; import java.rmi.*; import java.util.*; import javax.ejb.*; /** Implementação da classe EJB do beanhelloworldsession */ public class HelloWorldSessionImpl implements SessionBean { /** mantem a saudação da sessão */ protected String greeting; J2EE (C. Geyer) Introdução a SessionBean 71

72 ! Classe implementação do session bean SB: classe " /** Mantem o contexto da sessão fornecido pelo container EJB; permite acesso a dados e métodos de sistema */ private SessionContext context; /** Um EJB deve ter um construtor público sem parâmetros */ public HelloWorldSessionImpl() { } J2EE (C. Geyer) Introdução a SessionBean 72

73 SB: classe! Classe implementação do session bean! /** chamado pelo container EJB para atribuir o contexto da sessão */ public void setsessioncontext(sessioncontext acontext) { context = acontext; } J2EE (C. Geyer) Introdução a SessionBean 73

74 SB: classe! Classe implementação do session bean! /** chamado pelo container EJB quando o cliente chama o método create() na interface home */ public void ejbcreate() throws CreateException { greeting = "Hello World!"; } J2EE (C. Geyer) Introdução a SessionBean 74

75 " Classe implementação do session bean SB: classe " /** chamado pelo container EJB quando o cliente chama o método create(string) na interface home */ public void ejbcreate(string agreeting) throws CreateException { greeting = agreeting; } /** chamado pelo container EJB para reativar essa sessão após ela ter sido desativada pelo método ejbpassivate */ public void ejbactivate() { } J2EE (C. Geyer) Introdução a SessionBean 75

76 ! Classe implementação do session bean SB: classe! /** chamado pelo container EJB para desativar (suspender) essa sessão */ public void ejbpassivate() { } /** chamado pelo container EJB para informar que essa sessão está sendo removida, ou porque o cliente chamou o método remove () ou o container determinou time-out da sessão */ public void ejbremove() { } J2EE (C. Geyer) Introdução a SessionBean 76

77 ! Classe implementação do session bean SB: classe! /** retorna a saudação da sessão */ public String getgreeting() { return greeting; } /** altera a saudação da sessão */ } public void setgreeting(string agreeting) { greeting = agreeting; } J2EE (C. Geyer) Introdução a SessionBean 77

78 Comentários! Comentários " alguns IDE geram automaticamente certos arquivos (ou partes de) " seguir convenção de nomes " método construtor da classe # não usado (nem indiretamente) pelos clientes # em termos Java os objetos são construídos sob controle do container " método setsessioncontext pode estar vazio # variável context não usada em outros métodos J2EE (C. Geyer) Introdução a SessionBean 78

79 Usando o bean! Usando o bean " geral: criar um arquivo jar # alguns descritores em XML # classes auxiliares conforme container e as classes do EJB J2EE (C. Geyer) Introdução a SessionBean 79

80 ! Usando o bean Usando o bean " no JEE SDK (Sun) # tool deploytool (diretório bin) # new application no file menu # nome do EAR a criar (EAR é um arquivo jar) # new EB (EJB) no file menu # add button no new EB wizard # selecionar arquivos # HelloWorldSession.class # HelloWorldSessionHome.class # HelloWorldSessionImpl.class # indicar os nomes das classes do EB # no caso: mesmas dos arquivos J2EE (C. Geyer) Introdução a SessionBean 80

81 Usando o bean! Usando o bean " no JEE SDK (Sun) # opcional: nome para display na deploytool # session ou entitity bean # se session # stateless ou stateful # continuar até finish # HelloWorld bean é simples # pronto para uso J2EE (C. Geyer) Introdução a SessionBean 81

82 ! Usando o bean Usando o bean " disparar o EJB server (ou verificar se está rodando) # às vezes pode-se indicar o server na deploytool " tools menu: selecionar Deploy Application " geração de classes adicionais # BEA s Weblogic # ao criar jar file # JEE SDK (Sun) # no deploytool # classe auxiliar do cliente (stub) # BEA s Weblogic: dinamicamente # JEE SDK (Sun): arquivo deve ser explicitado J2EE (C. Geyer) Introdução a SessionBean 82

83 Usando o bean! Cliente Hello " obrigatório # importar pacotes RMI e naming " localização # criar um contexto (Context) para o JNDI # pede ao contexto p/localizar um objeto com certo nome e tipo # pelo método lookup # nome: usado na instalação (deploytool) # tipo: interface home # objeto do lookup deve passar pelo método narrow para transformá-lo no tipo home correto # lookup retorna tipo geral J2EE (C. Geyer) Introdução a SessionBean 83

84 SB Hello: cliente! Cliente Hello " criação do session bean # pede ao objeto (home) acima para criar uma sessão (session bean) " interação # tipo da sessão: interface remota # chama métodos de negócio do bean # get e set saudação J2EE (C. Geyer) Introdução a SessionBean 84

85 SB Hello: cliente! Cliente Hello " package usingjee.hello; import java.util.*; import javax.naming.*; import javax.rmi.*; public class TestHello { public static void main( String[] args) { try { J2EE (C. Geyer) Introdução a SessionBean 85

86 " Cliente Hello SB Hello: cliente " /** cria um contexto de nomes JNDI, para localização de objetos */ Context context = new InitialContext(); /** pede ao contexto para localizar um objeto (classe) de nome "HelloWorld e que implemente a interface HelloWorldSessionHome */ HelloWorldSessionHome home = (HelloWorldSessionHome) PortableRemoteObject.narrow( context.lookup("helloworld"), HelloWorldSessionHome.class); J2EE (C. Geyer) Introdução a SessionBean 86

87 SB Hello: cliente " /** pede à interface Home para criar um novo bean de sessão */ HelloWorldSession session = (HelloWorldSession) home.create(); /** obtem greeting, altera greeting */ System.out.println( "The default greeting is: "+ session.getgreeting()); session.setgreeting("howdy!"); System.out.println( "The greeting is now: +session.getgreeting()); J2EE (C. Geyer) Introdução a SessionBean 87

88 ! /** destrói essa sessão */ SB Hello: cliente session.remove(); /** agora cria uma sessão com um outra saudação */ session = (HelloWorldSession) home.create("guten Tag!"); System.out.println( "Created a new session with a greeting of: + session.getgreeting()); J2EE (C. Geyer) Introdução a SessionBean 88

89 SB Hello: cliente! /** Destrói essa sessão */ session.remove(); } catch (Exception exc) { exc.printstacktrace(); } } } J2EE (C. Geyer) Introdução a SessionBean 89

90 Revisão! Revisão de Session Beans " qual a finalidade de session beans? " qual a relacionamento entre clientes e session beans? " quais os tipos de session beans? " quando se usa um tipo e outro? " qual o mais eficiente e porque? " quais as interfaces? " quais os métodos declarados em cada interface? J2EE (C. Geyer) Introdução a SessionBean 90

91 Revisão! Revisão de Session Beans " quais as 2 variações nos tipos de acesso às interfaces? " quando se usa um e outra? " como um cliente acha um tipo de session bean? " como um cliente obtém um session bean (objeto)? " quais os métodos implementados na classe session bean? J2EE (C. Geyer) Introdução a SessionBean 91

Enterprise Java Beans

Enterprise Java Beans 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

Leia mais

Java 2 Enterprise Edition Session Beans

Java 2 Enterprise Edition Session Beans Java 2 Enterprise Edition Session Beans Helder da Rocha www.argonavis.com.br 1 Session Beans São objetos de processo de negócio Implementam lógica de negócio, algoritmos, workflow Representam ações Uma

Leia mais

Stateful Session Beans

Stateful Session Beans J530 - Enterprise JavaBeans Stateful Session Beans Helder da Rocha (helder@acm.org) argonavis.com.br 1 Stateful Session Beans Quando um cliente chama um método de um bean, ele está iniciando um diálogo

Leia mais

J2EE. J2EE - Surgimento

J2EE. J2EE - Surgimento J2EE Java 2 Enterprise Edition Objetivo: Definir uma plataforma padrão para aplicações distribuídas Simplificar o desenvolvimento de um modelo de aplicações baseadas em componentes J2EE - Surgimento Início:

Leia mais

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

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

UNIDADE IV ENTERPRISE JAVABEANS

UNIDADE IV ENTERPRISE JAVABEANS UNIDADE IV ENTERPRISE JAVABEANS MODELO J2EE COMPONENTES DE Camada de Negócios NEGÓCIOS JAVA SERVLET, JSP E EJB Nos capítulos anteriores, foi mostrado como desenvolver e distribuir aplicações servlet e

Leia mais

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

TDC2012. EJB simples e descomplicado, na prática. Slide 1 TDC2012 EJB simples e descomplicado, na prática Slide 1 Palestrantes Kleber Xavier Arquiteto Senior / Globalcode kleber@globalcode.com.br Vinicius Senger Arquiteto Senior / Globalcode vinicius@globalcode.com.br

Leia mais

Aplicações Distribuídas Cliente/ Servidor Corporativas

Aplicações Distribuídas Cliente/ Servidor Corporativas Aplicações Distribuídas Cliente/ Servidor Corporativas Introdução Desenvolver e distribuir Servlets e aplicativos EJB. Desenvolver e distribuir aplicativos Enterprise JavaBeans (EJB). Introdução Simples

Leia mais

Session Beans. Modelam o estado não-persistente

Session Beans. Modelam o estado não-persistente EJB Session Beans Session Beans Modelam o estado não-persistente O estado será perdido entre chamadas de métodos (sessão sem estado) ou chamadas do servidor (sessão com estado) Modelam processos do negócio

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

Invocação de Métodos Remotos

Invocação de Métodos Remotos Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso

Leia mais

Enterprise Java Beans (III)

Enterprise Java Beans (III) Enterprise Java Beans (III) Professor: Diego Passos UFF dpassos@ic.uff.br Baseado no material original cedido pelo Professor Carlos Bazilio Última Aula Disponibilização do EJB no container. Arquivo descritor.

Leia mais

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

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite

Leia mais

Entity Beans. Introdução Entity Beans BMP

Entity Beans. Introdução Entity Beans BMP Entity Beans Introdução Entity Beans BMP Agenda Conceitos básicos de persistência Definição de entity beans Recursos Conceitos de programação Típos de entity beans Exemplos de entity beans usando Bean-

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Remote Method Invocation (RMI) Introdução Solução JAVA para Objetos Distribuídos Um objeto existe em uma máquina É possível

Leia mais

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

J530 - Enterprise JavaBeans. Introdução a EJB e Stateless. Session Beans. argonavis.com.br. Helder da Rocha (helder@acm.org) J530 - Enterprise JavaBeans Introdução a EJB e Stateless Session Beans Helder da Rocha (helder@acm.org) argonavis.com.br 1 Componentes de um EJB Para que o container possa gerar o código necessário é preciso

Leia mais

Enterprise Java Bean. Enterprise JavaBeans

Enterprise Java Bean. Enterprise JavaBeans Enterprise Java Bean Introdução Elementos do Modelo Enterprise JavaBeans A especificação do Enterprise JavaBeansTM (EJB) define uma arquitetura para o desenvolvimento de componentes de software distribuídos

Leia mais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Tutorial RMI (Remote Method Invocation) por Alabê Duarte Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos

Leia mais

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

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente Java RMI - Remote Method Invocation Callbacks Folha 9-1 Vimos, na folha prática anterior, um exemplo muito simples de uma aplicação cliente/ servidor em que o cliente acede à referência remota de um objecto

Leia mais

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

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação

Leia mais

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

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

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

Aplicação da Arquitetura Multicamadas Utilizando Java. Raquel Schlickmann Orientador: Marcel Hugo Aplicação da Arquitetura Multicamadas Utilizando Java Raquel Schlickmann Orientador: Marcel Hugo Roteiro Introdução Histórico da Arquitetura de Software Enterprise JavaBeans - EJB Voyager Implementação

Leia mais

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

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais RMI JAVA MIDDLEWARE Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Camadas Middleware Representação Externa dos Dados Sistemas Operacionais RMI REMOTE METHOD INVOCATION Invocação remota

Leia mais

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br Java 2 Standard Edition Fundamentos de Objetos Remotos Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo tem como objetivo dar uma visão geral, porém prática, da criação e uso de objetos

Leia mais

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

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):

Leia mais

Entity Beans CMP. O que é CMP? Criação de Entity Beans CMP Deployment no JBoss EJB-QL Exemplo Prático

Entity Beans CMP. O que é CMP? Criação de Entity Beans CMP Deployment no JBoss EJB-QL Exemplo Prático Entity Beans CMP O que é CMP? Criação de Entity Beans CMP Deployment no JBoss EJB-QL Exemplo Prático O que é CMP? Container Managed Persistence é a criação automática de lógica de persistência pelo servidor

Leia mais

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Fundamentos da Plataforma Java EE Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Como a plataforma Java EE trata o SERVIÇO DE NOMES Serviço de Nomes Num sistema distribuído os componentes necessitam

Leia mais

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

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9 Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através

Leia mais

EJB 3.1: A Community Update

EJB 3.1: A Community Update EJB 3.1: A Community Update Reza Rahman Autor, EJB 3 in Action Expert Group Member, Java EE 6 and EJB 3.1 Fundador, Cognicellence Julho de 2008 1 EJB 3.0: Revisão Breve > As grandes mudanças > EJB simplificado

Leia mais

Middleware de Aplicações Paralelas/Distribuídas

Middleware de Aplicações Paralelas/Distribuídas Computação Paralela Middleware de Aplicações Paralelas/Distribuídas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Principais aspectos a gerir pelo Middleware

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

Introdução ao kit J2EE SDK (Sun)

Introdução ao kit J2EE SDK (Sun) Introdução ao kit J2EE SDK (Sun) J2EE (C. Geyer) Introdução ao J2EESDK 1 Autoria Autores C. Geyer Local Instituto de 1a versão: 2002 cursos: J2EE (C. Geyer) Introdução ao J2EESDK 2 Súmula Súmula objetivos

Leia mais

O caminho do inferno está pavimentado de boas intenções. Marx.

O caminho do inferno está pavimentado de boas intenções. Marx. Session Beans O caminho do inferno está pavimentado de boas intenções. Marx. Finalmente implementando um EJB A especificação da Sun Vamos agora utilizar a tecnologia especificada pela sun, chamada Enterprise

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1 .NET Remoting Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1 Autoria Autores 1a versão Fabio Augusto Dal Castel colaboração revisão Eduardo F. Seganfredo Rodrigo Gatto C. Geyer Programação

Leia mais

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

Invocação de Métodos Remotos RMI (Remote Method Invocation) Invocação de Métodos Remotos RMI (Remote Method Invocation) Programação com Objetos Distribuídos Um sistema de objetos distribuídos permite a operação com objetos remotos A partir de uma aplicação cliente

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Java RMI

Sistemas Distribuídos: Conceitos e Projeto Java RMI Sistemas Distribuídos: Conceitos e Projeto Java RMI Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 19 de agosto

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Construção de novas Classes em Java. Classes Atributos Métodos Herança... Construção de novas Classes em Java Classes Atributos Métodos Herança... 1 Exemplo Representação em UML Java (Unified Modeling Language) Stack items : Vector Stack( ) push( ) pop( ) isempty( ) finalize(

Leia mais

Programação distribuída e paralela (C. Geyer) RPC 1

Programação distribuída e paralela (C. Geyer) RPC 1 Programação distribuída e paralela (C. Geyer) RPC 1 Autores C. Geyer Local II-UFRGS Versão v6 2008-2 Disciplinas SOII Programação distribuída e paralela (C. Geyer) RPC 2 Bibliografia base original dos

Leia mais

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br A arquitetura Enterprise JavaBeans é uma arquitetura de componentes para o desenvolvimento e a implantação de aplicativos de negócio distribuídos

Leia mais

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

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

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

Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática Java RMI - Remote Method Invocation Folha 5-1 No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

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

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da Java Laboratório Aula 1 Programação orientada a objetos Profa. Renata e Cristiane Introdução a Plataforma Java O que é Java? Tecnologia Linguagem de Programação Ambiente de Execução (JVM) Tudo isso é a

Leia mais

Módulo 07 Características Avançadas de Classes

Módulo 07 Características Avançadas de Classes Módulo 07 Características Avançadas de Classes Última Atualização: 15/06/2010 1 Objetivos Descrever variáveis, métodos e iniciadores static Descrever a semântica do modificador final em classes, métodos

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Servlets A tecnologia Servlet foi introduzida pela Sun Microsystems em 1996, aprimorando e estendendo a funcionalidade e capacidade de servidores Web. Servlets é uma API para

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Relembrando... Mecanismos de Comunicação Middleware Cenário em uma rede Local

Leia mais

Java Spaces Exemplos

Java Spaces Exemplos Java Spaces Exemplos Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 1 Autoria! Autores! Local " Cláudio Geyer " Instituto de Informática " UFRGS " disciplina: Programação com

Leia mais

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:

Leia mais

Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide

Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide Para criar uma aplicação J2EE, utilizando Eclipse e jboss-ide, é necessário ter instalado em seu computador o JDK 1.5 (versão atual). Abaixo seguem

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br Você Gosta do EJB? O EJB esteve por muito tempo na berlinda do mundo Java É pesado... É complicado... Código muito

Leia mais

Session Bean Stateful

Session Bean Stateful Session Bean Stateful Componentes que mantém o estado dos seus atributos. Mantém os valores de seus atributos entre as várias chamadas de seus métodos de negócio (serviços). Mantém um relacionamento forte

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN 2178-5589.

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN 2178-5589. Tutorial de Instalação e Uso do Eclipse Alexandre V. S. Lage, Caio de O. Leal, Eduardo A. F. da Silva, Felipe C. C. Trindade, Gutierre da C. Oliveira e Miguel G. P. de Carvalho. INTRODUÇÃO O Eclipse (2012)

Leia mais

Enterprise JavaBeans. Java Deployment Course. por Jorge H. C. Fernandes (jhcf@di.ufpe.br) DI-UFPE Julho de 1999

Enterprise JavaBeans. Java Deployment Course. por Jorge H. C. Fernandes (jhcf@di.ufpe.br) DI-UFPE Julho de 1999 Enterprise JavaBeans Java Deployment Course por Jorge H. C. Fernandes (jhcf@di.ufpe.br) DI-UFPE Julho de 1999 Enterprise JavaBeans Java Deployment Course Copyright 1999 by Jorge H. C. Fernandes (jhcf@di.ufpe.br)

Leia mais

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

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) J2EE () Sumário Introdução J2EE () APIs J2EE Web Container: Servlets e JSP Padrão XML 2 J2EE é Uma especificação para servidores

Leia mais

Documentação Usando o Javadoc

Documentação Usando o Javadoc Documentação Usando o Javadoc Prof. MSc. João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão 2.1 Última Atualização: 04/2005 1 Comentários e Documentação Comentários em Java Existem três tipos de comentários

Leia mais

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Apresentação 3: Orientação Objetos: Conceitos Básicos Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;

Leia mais

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. 1 - Criando uma classe em Java Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. Antes de criarmos a(s) classe(s) é necessário criar o projeto

Leia mais

Projeto de Software Orientado a Objeto

Projeto de Software Orientado a Objeto Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Invocação de Objetos

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 6 EJB Enterprise Java

Leia mais

J2EE TM Java 2 Plataform, Enterprise Edition

J2EE TM Java 2 Plataform, Enterprise Edition CURSO DE GRADUAÇÃO J2EE TM Java 2 Plataform, Enterprise Edition Antonio Benedito Coimbra Sampaio Junior abc@unama.br OBJETIVOS DO CURSO Capacitar os alunos no desenvolvimento de aplicações para a WEB com

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

Leia mais

J2EE. Apresentado por Nuno Nunes. 25 de Novembro de 2004 TM 1

J2EE. Apresentado por Nuno Nunes. 25 de Novembro de 2004 TM 1 J2EE Apresentado por Nuno Nunes TM 1 J2EE Tecnologia Java, A visão O J2EE Resumo da tecnologia J2EE Os componentes do J2EE Do lado do cliente... Do lado do servidor Tecnologias de apresentação Do lado

Leia mais

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos (DPADF 0063) Programação Orientada a Objetos (DPADF 0063) Aula 11 Applets Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno

Leia mais

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

Num sistema de objectos distribuídos, dois conceitos são fundamentais. Folha 10-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

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

UTILIZAÇÃO DA TECNOLOGIA ENTERPRISE JAVABEANS NO DESENVOLVIMENTO DE APLICAÇÕES DISTRÍBUIDAS UTILIZAÇÃO DA TECNOLOGIA ENTERPRISE JAVABEANS NO DESENVOLVIMENTO DE APLICAÇÕES DISTRÍBUIDAS ¹Lucas Martins de Andrade, ¹Jaime William Dias ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil lucasm748@gmail.com

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br)

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br) Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) (kalinowski@ic.uff.br) Agenda Arquiteturas Web em Java (Relembrando) Arquitetura Java EE Introdução a Enterprise Java Beans

Leia mais

Java 2 Enterprise Edition Uma aplicação J2EE completa

Java 2 Enterprise Edition Uma aplicação J2EE completa Java 2 Enterprise Edition Uma aplicação J2EE completa Helder da Rocha www.argonavis.com.br 1 Objetivos O objetivo deste módulo é construir e implantar uma aplicação J2EE completa Inicialmente, será mostrada

Leia mais

THREADS EM JAVA. George Gomes Cabral

THREADS EM JAVA. George Gomes Cabral THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores

Leia mais

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

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 28 de abril de 2010 Principais suportes de Java RMI (Remote Method Invocation), da Sun Microsystems DCOM (Distributed Component Object Model), da

Leia mais

Criando documentação com javadoc

Criando documentação com javadoc H Criando documentação com javadoc H.1 Introdução Neste apêndice, fornecemos uma introdução a javadoc ferramenta utilizada para criar arquivos HTML que documentam o código Java. Essa ferramenta é usada

Leia mais

Organizando Classes em Pacotes. Profa. Thienne Johnson EACH/USP

Organizando Classes em Pacotes. Profa. Thienne Johnson EACH/USP Organizando Classes em Pacotes Profa. Thienne Johnson EACH/USP Criando e usando pacotes Nomeando um pacote Usando membros de pacotes Gerenciando arquivos Exercícios Usando pacotes no Eclipse Tutorial da

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

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

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre Prática: 1 - A plataforma JEE (Java Enterprise Edition) UBI, DI, Paula Prata SDTF T01 1 Arquitectura

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros

Leia mais

Programação online em Java

Programação online em Java Universidade Federal do ABC Disciplina: Processamento da Informação Assunto: Programação online em Java Programação online em Java Conteúdo Conteúdo...1 Introdução... 1 1.1.Programas necessários... 1 1.2.Visão

Leia mais

Explorando os novos recursos de EJB 3.1. Fabio Velloso fabio@soujava.org.br

Explorando os novos recursos de EJB 3.1. Fabio Velloso fabio@soujava.org.br Explorando os novos recursos de EJB 3.1 Fabio Velloso fabio@soujava.org.br Esta obra está licenciada sob uma Licença Creative Commons http://creativecommons.org/licenses/by-nc-sa/2.0/br/ Fabio Velloso

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

Leia mais

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

Laboratório EJB e J2EE Uma aplicação completa J530 - Enterprise JavaBeans Laboratório EJB e J2EE Uma aplicação completa Helder da Rocha (helder@acm.org) argonavis.com.br 1 Objetivos O objetivo deste módulo é construir e implantar uma aplicação J2EE

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Um pouco do Java. Prof. Eduardo

Um pouco do Java. Prof. Eduardo Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.

Leia mais

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

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 20 ArrayList: Operações de Busca Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 TIPOS DE BUSCAS... 3 BUSCA ESPECÍFICA... 3 BUSCA ABRANGENTE... 3 PROCEDIMENTO DE BUSCA...

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

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

Serviço de Transação. Transação - Conceitos Serviço de Transação Conceitos Tipos de Gerência de Transação JTA Transação - Conceitos Garantir as propriedades ACID Atomicidade Consistencia Isolamento Durabilidade Transações no modelo EJB Dois Tipos

Leia mais

Associação Carioca de Ensino Superior Centro Universitário Carioca

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais