Gente, peguei um livro sobre EJB 3.0 e estou tendo uma certa dificuldade p/ achar material que explique de forma clara os casos de uso dos diversos tipos de EJB. Até agora o que consegui foram suposições, por minha conta mesmo...
Supondo que a aplicação seja usada para fazer reservas em um cruzeiro, diretamente pelas empresas de turismo:
1- No caso da interação agência <--> cruzeiro seria utilizada uma interface remota (javax.ejb.Remote) de um singleton session bean (stateless) p/, digamos, obter a quantidade de cabines disponíveis no navio (já que isso está no banco e é passível de recuperação via entity bean) e/ou enviar e-mail de confirmação da reserva?
2- Ainda no caso da interação agência <--> cruzeiro,mas supondo que exista uma quantidade determinada de cabines reservadas a algumas agências. Então o mais indicado seria um stateful session bean com interface remota?
3- No site da Oracle (https://docs.oracle.com/javaee/6/tutorial/doc/gipjg.html) é informado que stateful session beans são indicados p/ "orquestrar" as operações entre beans diferentes (nesse momento, me lembro do diagrama de colaboração da UML). Então um processo como realizarReserva, composto de verificarDisponibilidade, realizarPagamento, reservarCabine e confirmarReserva, que talvez fosse colocado dentro do que chamamos de POJO, deveria ser colocado num stateful session bean (apesar de eu não ver informação de estado)?