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

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

Sobre o serviço de mensagens assíncronas em Java EE com JMS e os beans orientados a mensagens - MDBs - responda as seguintes questões:

  1. O que caracteriza a comunicação assíncrona entre objetos?
  2. Apresente, e justifique, três vantagens da comunicação assíncrona sobre a comunicação síncrona.
  3. Cite um exemplo real de uma funcionalidade que requer, da a sua natureza, que a comunicação seja assíncrona. Justifique a sua resposta.
  4. Explique com suas palavras o objetivo da API Java Message Service - JMS. Utilize na sua explicação os papéis de Cliente JMS e Servidor JMS.
  5. Quais os dois possíveis destinos para mensagens assíncronas? Quais as características de cada tipo que as diferem?
  6. Até que momento as mensagens enviadas a uma Fila são guardadas? Justifique a sua resposta.
  7. Independente do destino da mensagem, estas são consumidos de forma síncrona e assíncrona. Como se dá o recebimento (i) de forma síncrona e (ii) de forma assíncrona? Pondere sobre as vantagens e desvantagens dessas duas formas de recebimento de mensagens.
  8. Quais os elementos que são encapsulados pelo elemento JMSContext, o qual deve ser criado em um componente que deseja utilizar a API JMS? Qual o papel de cada de deles no funcionamento da API?
  9. Quais os dois elementos que precisam ser injetados em um componente que deseja utilizar a API JMS?
  10. Para que servem os "seletores" de mensagens JMS?
  11. Qual a diferença de uma inscrição "durável" para um "não-durável" para um Tópico?
  12. Qual a diferença de uma inscrição "compartilhada" para um "não-compartilhada" para um Tópico?
  13. Quais as três partes de uma mensagem JMS? O que é definido em cada uma delas?
  14. Cite três tipos distintos de mensagens JMS, ao mesmo tempo exemplifique em que contexto cada tipo poderia ser utilizado.
  15. Quais os EJBs que devem receber mensagens assíncronas?
  16. A classe que implementa um MDB deve ter uma anotação específica. Qual é essa anotação? Nessa anotação é necessário definir uma configuração de ativação. Quais as duas propriedades que precisam obrigatoriamente ser definidas?

 

Sobre a utilização de Web Services em aplicações corporativas Java EE, responda das seguintes questões:

  1. Quais as duas modalidades para desenvolvimento de Web Services integrados à aplicações Java EE? Quais as APIs que dão suporte a cada uma das abordagens? Descreva brevemente as características (e diferenças) entre as abordagens.
  2. Quando utilizar cada uma das abordagens disponíveis para Web Services integrados a uma aplicação Java EE?
  3. Para um Web Service implementado com JAX-WS, quais as anotações necessárias para uma classe que implementa tal serviço?
  4. Para um Web Service implementado com JAX-RS, quais as anotações necessárias para uma classe que implementa tal serviço?
  5. Quais as formas de passar parâmetros para um Web Service implementado com JAX-RS?

 

Sobre padrões arquiteturais para aplicações corporativa, respondas as seguintes questões:

  1. Apresente três justificativas para utilização de padrões arquiteturais no desenvolvimento de aplicações corporativas.
  2. Geralmente os padrões são divididos em três camadas. Quais são essas camadas? Qual o objetivo de cada uma delas?
  3. Explique com suas palavras o objetivo e funcionamento do padrão "View Helper".
  4. Explique com suas palavras o objetivo e funcionamento do padrão "Business Delegate".
  5. Explique com suas palavras o objetivo e funcionamento do padrão "Application Service".
  6. Descreva algum padrão de projeto que você já tenha aplicado anteriormente.

 

Sobre Transações em aplicações corporativas am JEE, responda as seguintes questões:

  1. Qual o tipo de funcionalidade que naturalmente requer a utilização de transações?
  2. Explique o significado das ações de "commit" e "rollback" no contexto de transações.
  3. As transações geralmente precisam obedecer à propriedade ACID. O que isso quer dizer?
  4. Qual o objetivo da interface UserTransaction definida pela API JTA?
  5. Nas transações gerenciaras pelo contêiner, quais são as escolhas que o desenvolvedor pode fazer?
  6. Qual a anotação utilizada para a especificação de como o desenvolvedor quer que o contêiner trate as transações para todos os métodos de uma classe ou para um método específico?
  7. Cite e ilustre o funcionamento dos 6 (seis) atributos de transação possíveis para serem utilizados por um desenvolvedor Java EE?
  8. O isolamento previsto para as transações ajudam a prevenir algumas "leituras" equivocadas. Explique com suas palavras o que caracteriza cada uma delas: (i) leituras sujas, (ii) leituras não-repetíveis e (iii) leituras fantasmas.
  9. Como é possível garantir o isolamento desejável para uma transação?
  10. Quais são os bloqueios de dados possíveis nos bancos de dados? Como funcionam cada um deles?

 

Sobre segurança em aplicações corporativas com Java EE, responda as seguintes questões:

  1. Quais os serviços de segurança que pode ser utilizados por uma aplicação? Cite pelo menos um problema (ou ameaça) real atacado por cada um dos serviços de segurança mencionados.
  2. O que justifica uma aplicação corporativa necessitar de serviços de segurança?
  3. O que é a JAAS - Java Autenthication and Authorization Service?
  4. No contexto Java EE, e mais especificamente JAAS, qual a relação entre autenticação e autorização?
  5. Como é possível definir a autorização para executar um dado método de um EJB utilizando JAAS?

 

Sobre o serviço de temporização integrado a plataforma Java EE, responda as seguintes questões:

  1. Cite o exemplo de três funcionalidades de aplicações qualquer que necessitem a execução de tarefas agendadas?
  2. Os temporizadores para EJBs podem ser programáticos e automáticos. Quais as características desses dois tipos e em que diferem?
  3. Quais são os 7 (sete) atributos que podem ser utilizados em uma expressão de agendamento? O que representam?
  4. Escreva as seguintes expressões de agendamento:
    • (a) Toda segunda-feira de 12:00 horas (meio dia);
    • (b) Segundas, quartas e sextas-feiras, de duas em duas horas, a partir do meio dia;
    • (c) Primeira e última sexta-feiras do mês, as 15:30 horas;
    • (d) Dia 30 de março de 2015, as 16:00 horas;
    • (e) Todos os dias da semana (exceto sábados e domingos), uma vez por hora, das 8:00 as 18:00 horas.
  5. Como é especificado o método a ser executado quando estamos utilizando o agendamento programático?
  6. Como é especificado o método a ser executado quando estamos utilizando o agendamento automático?
  7. Como é possível que um método possua vários agendamentos associados ao mesmo?
  8. Quais as formas de cancelar um temporizador?
  9. Como é possível salvar um temporizador para um uso futuro?
  10. Como se comporta um temporizador quando criado antes ou durante uma transação?