SóProvas


ID
645409
Banca
AOCP
Órgão
BRDE
Ano
2012
Provas
Disciplina
Programação
Assuntos

Preencha as lacunas e, em seguida, assinale a alternativa correta. Além do suporte a objetos de negócio distribuídos baseados em _________________, o Enterprise JavaBeans também suporta um sistema de mensagens _______________ . Esse tipo de sistema permite que dois ou mais aplicativos troquem informações na forma de ______________. Uma ______________, neste caso, é um pacote autocontido dos dados do negócio e cabeçalhos de roteamento _______________ .

Alternativas
Comentários
  • Questão chata por causa da 2ª opção assíncrona/síncrona.
    É sabido que o EJB é classificado em:
    Session Bean
    Statefull (síncrono)
    Stateless (assíncrono)
    Singleton (assíncrono)
    Message-driven Bean (assíncrono)

    The EJB 2.0 specification provides integration by introducing message-driven bean, which is a special type of stateless session bean that offers asynchronous invocation capabilities. However, the new specification does not offer asynchronous invocation for other types of enterprise beans, such as stateful or entity beans.
    http://java.sun.com/blueprints/corej2eepatterns/Patterns/ServiceActivator.html

    Considerei que a partir do trecho "dois ou mais aplicativos troquem informações" poderia se inferir que a questão se tratava de assíncrono.
    Mas não fiquei seguro quanto a isso.
  • Remote Method Invocation
    A RMI é uma interface que permite a execução de chamadas remotas, como RPC, em aplicações numa plataforma de objetos distribuídos. A API é especificada no pacote java.rmi.
    A arquitetura de Java RMI é dividida em três camadas:
    • A camada de stub/skeleton oferece as interfaces que os objetos da aplicação usam para interagir entre si;
    • A camada de referência remota é responsável por criar e gerenciar referências para objetos remotos;
    • A camada de transporte implementa o protocolo que especifica o formato de solicitações enviadas aos objetos remotos pela rede.
    O Stub funciona semelhante a um proxy para o objeto remoto: quando um objeto local invoca um método num objeto remoto, o Stub fica responsável por enviar a chamada ao método para o objeto remoto. O Stub esconde a serialização dos parâmetros e toda a comunicação em nível de rede, com o objetivo de simplificar o mecanismo de realização da chamada.
    Passos do "stub" quando é invocado:
    1. Iniciar conexão com a VM que contém o objeto remoto.
    2. Escrever e transmitir os parâmetros para a VM remota.
    3. Esperar pelos resultados da invocação do método.
    4. Ler os resultados retornados.
    5. Retornar os valores ao objeto que executou a chamada .

    Skeletons
    Na VM remota, cada objeto deve ter um Skeleton correspondente ao Stub. O Skeleton é responsável por enviar a chamada ao objeto remoto. Há autores que comparam essa relação ao XML e XSLT.
    Passos do Skeleton quando recebe uma chamada:
    1. Ler os parâmetros enviados pelo Stub;
    2. Invocar o método no objeto remoto;
    3. Escrever e transmitir o resultado ao objeto que executou a chamada.
    Fonte: http://www.devmedia.com.br/tutorial-rmi-remote-method-invocation/6442


    Message-Driven Bean
    Um MDB é um componente que permite a aplicações JEE processar mensagens assincronamente pois atua como um JMS listener, de maneira similar a um event listener (a diferença principal é que o MDB recebe mensagens ao invés de eventos). As mensagens podem ser enviadas a qualquer componente JEE -uma aplicação cliente, outro bean, um componente web- ou aplicação JMS ou ainda algum sistema que não usa JEE.
    A diferença mais marcante entre um MDB, session beans e entity beans é que clientes não acessam MDBs por interfaces.
    Em diversos aspectos, um MDB se assemelha a um session bean sem estado (stateless):
    • Uma instância MDB não mantém dados ou estados de comunicação para um cliente específico;
    • Todas as instâncias de um MDB são equivalentes, permitindo que o container EJB direcione a mensagem a qualquer instância MDB; 
    • O container pode agrupar essas instâncias para permitir que streams de mensagens sejam processados de maneira paralela ou concorrente;
    • Um único MDB pode processar mensagens de múltiplos clientes.
    Fonte: http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts5.html

    Session Beans
    Um SB representa um único cliente no Servidor de Aplicações. Para acessar uma aplicação lançada num servidor, o cliente invoca os métodos do SB, que isola o cliente da complexidade das regras de negócio.
    De maneira similar a uma sessão interativa, um SB não pode ser compartilhado, tem de ter apenas um cliente, não persiste (seus dados não são salvos em bases de dados) e, após finalizada a sessão, o SB é terminado e não há mais qualquer associação com o cliente.
    Exemplo de ciclo de vida de um SB com estado:

    Fontes:
    http://docs.oracle.com/javaee/5/tutorial/doc/bnbmt.html
    http://docs.oracle.com/javaee/5/tutorial/doc/bnbly.html
  • d-

    The Java Remote Method Invocation (RMI) system allows an object running in one Java virtual machine to invoke methods on an object running in another Java virtual machine. RMI provides for remote communication between programs written in the Java programming language.

    RMI applications often comprise two separate programs, a server and a client. A typical server program creates some remote objects, makes references to these objects accessible, and waits for clients to invoke methods on these objects. A typical client program obtains a remote reference to one or more remote objects on a server and then invokes methods on them. RMI provides the mechanism by which the server and the client communicate and pass information back and forth. Such an application is sometimes referred to as a distributed object application.

    https://docs.oracle.com/javase/tutorial/rmi/overview.html