DROL(ID:6279/dro001)

Concurrent OO Language 


Concurrent OO Language


People:
References:
  • Takashio, Kazunori and Tokoro, Mario "DROL: an object-oriented programming language for distributed real-time systems" pp276-294 view details Abstract: In this paper, we first characterize distributed real-time systems by the following two properties that have to be supported: best effort and least suffering. Then, we propose a distributed real-time object model DRO which complies these properties. Based on the DRO model, we design an object oriented programming language DROL: an extension of C++ with the capability of describing distributed real-time systems. The most eminent feature of DROL is that users can describe on meta level the semantics of message communications as a communication protocol with sending and receiving primitives. With this feature, we can construct a flexible distributed real-time system satisfying specifications which include timing constraints. We implement a runtime system of DROL on the ARTS kernel, and evaluate the efficiency of the prototype implementation as well as confirm the high expressive power of the language. DOI Extract: Introduction
    Introduction
    Distributed computer systems are becoming popular at a tremendous rate. In large distributed systems, the communication time between different nodes accounts for a great slice of the whole computation time, and the system cannot ignore it. For example, we assume that a request from a client existing on a remote host was received by some server. The server may keep execution of service for the request waiting according to its state.

    From the viewpoint of the client, there is a possibility that the client has already transferred to some state where the reply from the server does not make sense any more. It is also possible that the reply will not arrive to the client due to some situation or accident. In such a situation, the client has to wait forever for the reply; and it may cause a serious problem to the behavior of whole system. Therefore, in distributed systems, the time needed to complete a communication have to be bound.

    When timing constraints are introduced into communications, the server has to try its best to achieve the requested service in time. On the other hands, the client must provide for the situation in which the reply cannot be received in the requested time, although the request has been accepted and the server responded within time. As mentioned above, the notion of real-time is natural in large distributed system, and this concept of real-time also includes the notion of timing constraints on the client side, in contrast to techniques that have been discussed in real-time operating systems that handle only the server'side. This notion is the essential difference between centralized system  and distributed systems. In distributed environments composed of high performance computers connected via high speed networks, real-time support plays an important role for various applications such as multi-media systems, robotics and air traffic control systems.

    In centralized real-time systems, we have to consider only timing constraints on the server'side. On the other hand, on client side, we describe a routine for the case in which the client is notified by the server of an abort or a reject execution. In contrast to non-distributed real-time systems, distributed real-time systems have the following two characteristics: First, the server cannot statically decide the timing constraints on the server. Second, ?rejected? or ?aborted? notifications from the server do not always arrive at the client within valid time. The delay may cause failure of real-time computation on the client side. Furthermore, when the relation between server and client is nested, delays of the notifications may cause missing timing constraint on another client. Based on these two ideas, we characterize, in following section, distributed real-time systems by their properties of best effort and least suffering.

    Object oriented computing has become the center of attraction these years. It facilitates the modularization of programs and that of its execution. Research on concurrent object models that introduce mechanisms of concurrent processing into the object oriented paradigm ha.ve been reported in [l, 21, 6, 22, 16, 17]. Each concurrent object is a computational entity which can be executed in parallel. Therefore, the model is effective for describing distributed systems. The object oriented paradigm was introduced to real-time systems in [18, 20, 4, 7]. However, most of these works aim at the ease of development and maintainability of systems by encapsulating its timing information into the objects, and therefore are not conscious of distribution.

    The goals of this paper are (1) to investigate communication mechanisms between objects with timing constraints and (2) to design a programming language for constructing a flexible system satisfying specifications which include timing constraints. For these goals, we propose a distributed real-time object model called the DRO model, by introducing the notions of best effort and least sufiering into the concurrent object-oriented paradigm and by introducing a facility to specify communication protocols. A distributed real-time system programming language DROL based on the DRO model is designed and implemented as an extension of C++.
          in [SIGPLAN] Proceedings of the Conference on Object Oriented Programming Systems, Languages and Applications, Oct 1992. (OOPSLA '92) view details
  • Tokoro, Mario and Takashio, Kazunori "Toward Languages and Formal Systems for Distributed Computing" view details Abstract: In this paper, we attempt to reveal the most essential properties of distributed computations. We discuss that the notions of asynchrony, real-time, and autonomy are vitally important to the widely distributed, open-ended, ever-changing environment. We then propose a programming language, called DROL, for asynchronous real-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.
          in Proceedings of ECOOP Workshop on OBDP OBDP'93 view details
  • Philippsen, Michael "A survey of concurrent object-oriented languages" pp917-980 view details
          in Concurrency: Practice and Experience 2000 v12 view details