Distributed applications: A challenge for systems, networks, and application development