DROL(ID:6279/dro001)Concurrent OO LanguageConcurrent OO Language People: References: 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 in Proceedings of ECOOP Workshop on OBDP OBDP'93 view details in Concurrency: Practice and Experience 2000 v12 view details |