8,096 research outputs found

    Building object-oriented software with the D-Bus messaging system

    Get PDF
    Object-oriented programming is a widely adopted paradigm for desktop software development. This paradigm partitions software into separate entities, objects, which consist of data and related procedures used to modify and inspect it. The paradigm has evolved during the last few decades to emphasize decoupling between object implementations, via means such as explicit interface inheritance and event-based implicit invocation. Inter-process communication (IPC) technologies allow applications to interact with each other. This enables making software distributed across multiple processes, resulting in a modular architecture with benefits in resource sharing, robustness, code reuse and security. The support for object-oriented programming concepts varies between IPC systems. This thesis is focused on the D-Bus system, which has recently gained a lot of users, but is still scantily researched. D-Bus has support for asynchronous remote procedure calls with return values and a content-based publish/subscribe event delivery mechanism. In this thesis, several patterns for method invocation in D-Bus and similar systems are compared. The patterns that simulate synchronous local calls are shown to be dangerous. Later, we present a state-caching proxy construct, which avoids the complexity of properly asynchronous calls for object inspection. The proxy and certain supplementary constructs are presented conceptually as generic object-oriented design patterns. The e ect of these patterns on non-functional qualities of software, such as complexity, performance and power consumption, is reasoned about based on the properties of the D-Bus system. The use of the patterns reduces complexity, but maintains the other qualities at a good level. Finally, we present currently existing means of specifying D-Bus object interfaces for the purposes of code and documentation generation. The interface description language used by the Telepathy modular IM/VoIP framework is found to be an useful extension of the basic D-Bus introspection format.Siirretty Doriast

    An occam Style Communications System for UNIX Networks

    Get PDF
    This document describes the design of a communications system which provides occam style communications primitives under a Unix environment, using TCP/IP protocols, and any number of other protocols deemed suitable as underlying transport layers. The system will integrate with a low overhead scheduler/kernel without incurring significant costs to the execution of processes within the run time environment. A survey of relevant occam and occam3 features and related research is followed by a look at the Unix and TCP/IP facilities which determine our working constraints, and a description of the T9000 transputer's Virtual Channel Processor, which was instrumental in our formulation. Drawing from the information presented here, a design for the communications system is subsequently proposed. Finally, a preliminary investigation of methods for lightweight access control to shared resources in an environment which does not provide support for critical sections, semaphores, or busy waiting, is made. This is presented with relevance to mutual exclusion problems which arise within the proposed design. Future directions for the evolution of this project are discussed in conclusion

    Middleware’s message : the financial technics of codata

    Get PDF
    In this paper, I will argue for the relevance of certain distinctive features of messaging systems, namely those in which data (a) can be sent and received asynchronously, (b) can be sent to multiple simultaneous recipients and (c) is received as a “potentially infinite” flow of unpredictable events. I will describe the social technology of the stock ticker, a telegraphic device introduced at the New York Stock Exchange in the 1860s, with reference to early twentieth century philosophers of synchronous experience (Bergson), simultaneous sign interpretations (Mead and Peirce), and flows of discrete events (Bachelard). Then, I will show how the ticker’s data flows developed into the 1990s-era technologies of message queues and message brokers, which distinguished themselves through their asynchronous implementation of ticker-like message feeds sent between otherwise incompatible computers and terminals. These latter systems’ characteristic “publish/subscribe” communication pattern was one in which conceptually centralized (if logically distributed) flows of messages would be “published,” and for which “subscribers” would be spontaneously notified when events of interest occurred. This paradigm—common to the so-called “message-oriented middleware” systems of the late 1990s—would re-emerge in different asynchronous distributed system contexts over the following decades, from “push media” to Twitter to the Internet of Things

    RK: A Real-Time Kernel for a Distributed System With Predictable Response

    Get PDF
    Robotics applications must execute in real-time. In addition, complex robotics applications include many physically distributed components such as manipulator arms and sensors. This paper presents the real-time kernel RK which is designed to facilitate the development of a distributed sensory system with multiple arms and sensors. The goal of the kernel is to support distributed applications that require predictable timing behavior. Our kernel design guarantees predictable response times by scheduling processes and communications based on timing constraints. In addition, the kernel provides a set of primitives that can be used to implement applications requiring predictable timing behavior. These primitives allow the specification of timing requirements that can be guaranteed in advance by the scheduler and the direct control of devices by application processes for faster and predictable feedback control. To illustrate the use of our kernel, this paper also describes a multiple sensory system which is being ported to our distributed test-bed
    corecore