Você está aqui: Página Inicial Disciplinas TADS-2012 Desenvolvimento de Sistemas Corporativos material Lista de Exercícios Preparatórios para a Prova da Primeira Unidade

Lista de Exercícios Preparatórios para a Prova da Primeira Unidade

Sobre os sistemas corporativos de forma geral, responda as seguintes questões:

  1. O que diferencia um sistema corporativo de um sistema convencional?
  2. Uma plataforma que permite o desenvolvimento de sistemas corporativos, normalmente provê uma série de serviços para os sistemas a serem desenvolvidos em tais plataformas. Exemplifique três desses serviços, e ao mesmo tempo justifique cada um dos serviços citados.
  3. Qual o papel de um servidor de aplicação para um sistema corporativo?
  4. Na plataforma JEE (Java Enterprise Editition) os componentes corporativos, ou EJBs - Enterprise JavaBeans - executam em um "contêiner EJB". Um contêiner EJB gerencia os recursos utilizados pelos EJBs, tais como: (i) memória, (ii) threads, (iii) conexões com  o banco de dados, (iv) poder de processamento, etc. Para cada um desses recursos, explique com suas palavras qual o trabalho realizado pelo contêiner.
  5. Quais são os principais serviços oferecidos por um contêiner EJB? Explique resumidamente o objetivo de cada um deles.
  6. Quais são os tipos de EJBs e para que servem cada um deles?
  7. Por que concorrência é importante para um sistema corporativo?
  8. Qual o papel de transações em um sistema corporativo?
  9. Por que os componentes de uma aplicação corporativa são tratados de forma feral como "objetos distribuídos"?
  10. Qual a diferença de uma mensagem síncrona para uma mensagem assíncrona? Por que as mensagens assíncronas são especialmente importantes quando se trata de sistemas corporativos?
  11. Qual a proposta do EJB Timer Service?
  12. Qual o objetivo de se ter um serviço de atribuição de nomes na plataforma para o desenvolvimento de sistemas corporativos?
  13. Em que aspectos a segurança é importante no desenvolvimento de sistemas corporativos?

 

Sobre a tecnologia de Java Server Faces - JSF, responda as seguintes questões:

  1. O que é JSF?
  2. Qual a relação entre JSP e JSF?
  3. Descreva com suas palavras os elementos de JSF que podem ser utilizados no desenvolvimento de aplicações Web.
  4. Como são expressos em uma página JSF os componentes de interface com o usuário do JSF?
  5. Como é feita a ligação entre os componentes de interface com o usuário e as classes Java que apoiam o desenvolvimento de aplicações com esta tecnologia?
  6. Exemplifique como pode ser programada a manipulação de eventos nos componentes de interface com o usuário do JSF.
  7. O que são e qual o papel dos validadores JSF?
  8. O que são e qual o papel dos conversores JSF?
  9. Qual a vantagem de se montar a navegação entre páginas JSF através do faces-config.xml?
  10. O que são os managed beans?
  11. Qual a diferença entre os escopos de "request" (requisição)  e "session" (sessão) para um managed bean?

 

Sobre a tecnologia de Enterprise Java Beans - EJB, responda as seguintes questões:

  1. O que é um enterprise bean?
  2. Quais são os dois tipos de EJB e qual o objetivo de cada um deles?
  3. O que diferencia os três tipos específicos de beans de sessão - (i) sem informação de estado (stateless), (ii) com informação de estado (stateful) e (iii) singleton?
  4. Quais são as formas de acessar um bean de sessão?
  5. Quais os passos necessários para implementar um bean de sessão (remoto) sem informações de estado?
  6. Qual o papel do JNDI com relação aos EJB?
  7. Explique com suas palavras o conceito de injeção dinâmica.

 

Sobre a tecnologia de mapeamento objeto/relacional com a Java Persistence API - JPA, responda as seguintes questões:

  1. Qual a proposta do mapeamento objeto/relacional?
  2. Quais os requisitos mínimos para tornar uma classe Java comum em uma classe de entidade segundo a JPA?
  3. Qual a função do arquivo "orm.xml" com relação à tecnologia JPA?
  4. Qual a necessidade de se mapear um dos atributos da entidade com a anotação @Id?
  5. Existe duas abordagens de pensar o mapeamento entre classes de entidade e tabelas de banco de dados. Quais são essas formas de mapeamento? Qual o papel das anotações @Table e @Column para uma dessas abordagens?
  6. O que pode ser especificado com relação a um mapeamento objeto/relacional através de da anotação @Basic? O que pode ser especificado com relação a um mapeamento objeto/relacional através de da anotação @Column?
  7. Explique com suas palavras o esquema de validação de atributos persistentes providenciado pela JPA.
  8. O que acontece a uma propriedade de uma classe de entidade JPA anotada com @Transient?
  9. Por que é necessário anotar um campo representando uma data (java.util.Date ou java.util.Calendar) com a anotação @Temporal da JPA?
  10. Quando e por que é utilizada a anotação @Enumerated?
  11. Defina com suas palavras o que significa uma classe de entidade JPA estar "acoplada" (ou gerenciada) ou "desacoplada" (ou não gerenciara)?
  12. Quais são os dois tipos de contexto de persistência, no que diz respeito ao escopo dos mesmos? Qual é a relação de cada um desses escopos com o "acoplamento" e "desacoplamento" de classes de entidade JPA?
  13. Um conjunto de classes de entidade está vinculado a uma unidade de persistência (ou persistence unir). Uma unidade de persistência é definida em um arquivo "persistence.xml". O que eu posso definir em uma unidade de persistência?
  14. O que acontece quando eu utilizo a tag <exclude-unlisted-classes> na definição de uma unidade de persistência em um "persistence.xml"?
  15. Qual o papel do gerente de entidades (javax.persistence.EntityManager) para uma aplicação utilizando JPA?
  16. Quando e como uma classe de entidade é persistida com a JPA?
  17. Quando e como classes de entidade são localizadas/recuperadas com a JPA?
  18. Quando e como classes de entidade são atualizadas com a JPA?
  19. Qual a necessidade do processo de "merge()" disponibilizado pelo gerente de entidades?
  20. Dado o relacionamento (bidirecional) um-para-um entre as classes "Aluno" e "Endereco". Como esse relacionamento deve ser mapeado com JPA?
  21. Dado o relacionamento (bidirecional) um-para-muitos entre as classes "Professor" e "Diario". Como esse relacionamento deve ser mapeado com JPA?
  22. Dado o relacionamento (bidirecional) muitos-para-muitos entre as classes "Aluno" e "Diario". Como esse relacionamento deve ser mapeado com JPA?
  23. No mapeamento de relacionamentos entre classes de entidade no JPA, qual a funcionalidade das anotações @JoinColumn e @JoinTable?
  24. Nas anotações de relacionamento entre classes de entidade pode ser definido o atributo "cascade". Quais as opções para o "cascateamento" das operações para as classes de entidade relacionadas? Qual a motivação para a utilização desse atributo?
  25. Dado o modelo de domínio abaixo, escreva as seguintes consultas JPQL solicitadas abaixo.

    • Listar todas as contas cadastradas no sistema.
    • Listar nome e CPF de todos os clientes cadastrados no sistema.
    • Listar todos os clientes de uma dada agência, com base no seu número (sem repetir).
    • Listar todos os bancos em que um determinado cliente tem conta, com base no seu CPF.
    • Listar todas as operações cadastradas que foram realizadas em contas de um dado cliente, dado o seu CPF.
    • Listar todos os clientes que possuam contas com saldo entre R$ 10.000,00 e R$ 100.000,00.
    • Listar todas as agências que não possuem contas associadas a mesma.
    • Listar todos os clientes de bancos com agência com o termo "MIDWAY" em alguma parte do seu nome.
    • Listar as operações realizadas no dia de hoje, em uma dada conta, informado o seu número.
    • Recuperar a quantidade de agências de um dado banco dado o seu código.
    • Recuperar o maior saldo entre as contas cadastradas no sistema.
    • Recuperar a média de saldo das contas cadastradas no sistema.
    • Recuperar a soma dos saldos de todas as contas de um  dado cliente, com base no seu CPF.
    • Recuperar o nome dos bancos e quantidade de agências de cada um deles.
    • Recuperar a lista de clientes com alguma conta com saldo acima da média de saldo.