Recentemente surgiu a necessidade para um web service para upload de arquivos. Uma aplicação de HTTP com GET e PUT seria suficiente. Lendo uns artigos por aí, encontrei novamente esse discurso: "aplicações J2EE não devem escrever em arquivos". O fundamento do discurso está no fato de um componente para um ambiente gerenciado programar o ambiente gerenciado e não o sistema operacional, de modo que não deve fazer suposições sobre coisas como threads ou arquivos. Os detalhes do argumento, porém, são péssimos. Dizer -- o componente não deve usar arquivos porque se a implantação ocorre em um cluster os dados não serão vistos com consistência -- é uma falácia. Se você implantará o componente em um cluster usará um sistema de arquivos compartilhado. O erro implícito nessa "sabedoria" seria igualmente cometido por um administrador de cluster que usasse um banco de dados independente para cada nó.
Artigos sobre usar software e fazer software. E, às vezes, algum apócrifo sobre hardware.