In this paper, we attempt to reveal the most essential properties of distributed computations. We claim that the notions of asynchrony, real-time, and autonomy are vitally important to a widely distributed, open-ended, ever-changing environment. We then propose a programming language, called DROL, for asynchronous reai-time computing. It supports self-contained active objects that have threads of control and a clock, and introduces the notion of timed invocation, that guarantees the survivability of each active object. We place DROL as a first step in constructing programming languages to realize the above three notions. We also classify distributed computation into four forms according to asynchrony and real-time properties, and try to develop formalisms for the four categories based on a process calculus. The formalisms allow us to describe and analyze both globally and locally temporal properties as well as the behavioral properties of distributed objects and the interactions among them. We discuss issues remaining to be solved and suggest some possibilities for future work.