Pessoal,
Estou começando a estudar EJB.
Na verdade estou fazendo isso pois pretendo descobrir se posso utilizá-lo na empresa.
Hoje, temos uma aplicação que acessa N servidores FTP e baixa arquivos para as N pasta locais correspondentes. Ela faz uploads também. Cada servidor FTP pertence a um cliente específico, logo esta tem que ser uma aplicação multithreaded. E ela é. É uma aplicação que gerencia múltiplas threads, uma para cada servidor. Utilizamos a api de FTP da apache para fazer as operações de FTP.
O que pergunto é:
Se fosse desenvolver esta mesma aplicação utilizando EJB, uma das vantagens seria o gerenciamento multithread que o EJB proporciona?
Por exemplo, as atividades que passo para o método run das minhas threads hoje, eu passaria para o EJB e o mesmo executaria várias threads, uma para cada configuração que eu passar?
Outra coisa: Eu gostaria que este fosse um sistema transacional. Todos os downloads e uploads são registrados em banco. E logo depois de o registro ter sido gravado, o arquivo baixado é apagado do servidor FTP. Eu gostaria de garantir que, por exemplo, o arquivo só fosse apagado se o mesmo tivesse sido baixado e registrado no banco. Creio que isso seja um comportamento transacional, não? Se ocorrer alguma exceção, hoje, é possível que o arquivo seja baixado e salvo em banco, mas nunca deletado. O EJB me garantiria isso também?
Mais uma outra coisa: Em breve precisarei desenvolver um sistema especialista em envio e download de email. Como este serviço FTP que mencionei, ele também precisará ser multithreaded. Seria recomendável desenvolver um sistema assim em EJB?