Scientific Engineering for Distributed Java Applications