A n ideal real-time distributed programming method should be based on a general highlevel style that could be easily accommodated by application programmers using C++ and Java. If such a method were to exist, these programmers could specify the interactions among distributed components and the timing requirements of various actions without expending much effort. In an ideal world, this kind of programming method would also allow system engineers who deal with safety-critical applications to produce certifiable, real-time distributed computing systems. The research and development efforts on new distributed real-time programming tools have shown rapid growth in recent years-with real-time CORBA, Java, UML, TMO, and others serving as examples-but the industry is still far from achieving these ideals. [1][2][3][4][5][6][7][8] Consider, for example, complex real-time applications like intelligent ground transportation systems, automated pilots, natural emergency management systems, and widely distributed multisensor-based defense systems. While improved methods for engineering these kinds of real-time systems appear continuously these days, the state of the art remains inadequate for producing applications that offer sufficient reliability. Even so, research efforts geared toward developing innovative approaches are steadily intensifying.For example, the time-triggered message-triggered object (TMO) developed by this author and his colleagues is a syntactically simple and natural but semantically powerful extension of the conventional object structure. [7][8] As such, its support tools can be based on various well-established OO languages like C++ and Java, and on commercial real-time operating system kernels.Facilitating high-level, high-precision, real-time object programming by establishing some form of language tools has become a subject of great interest to the embedded systems community. This article focuses on application programming interfaces (APIs) that take the form of C++ and Java class libraries and support high-level, high-precision, real-time object programming without requiring new language translators. These APIs wrap the services of the real-time object execution engines, which consist of hardware, node OSs, and middleware; they enable convenient highlevel programming almost to the extent that a new real-time object language can.
FUNDAMENTAL FEATURESAny practical real-time distributed programming facility must enable efficient specification and execution-control of the following:• past, present, and future time-referencing; • uniform method invocation of both local and remote objects; • deadline imposition for arrival of the results from the invoked object method; • time-triggered actions; • concurrent object-method execution; and • nonblocking invocation of object methods.Several APIs let you specify and control the execution of each of these fundamental operations.