The methods described herein may be used for various types of operations in configuring distributed systems, including creating programs, managing programs in the distributed system, deploying programs to various distributed devices, configuring remote execution or inter-operation of distributed programs, and executing distributed applications.