36 research outputs found

    Challenging the Computational Metaphor: Implications for How We Think

    Get PDF
    This paper explores the role of the traditional computational metaphor in our thinking as computer scientists, its influence on epistemological styles, and its implications for our understanding of cognition. It proposes to replace the conventional metaphor--a sequence of steps--with the notion of a community of interacting entities, and examines the ramifications of such a shift on these various ways in which we think

    Block Placement Strategies for Fault-Resilient Distributed Tuple Spaces: An Experimental Study - (Practical Experience Report)

    Get PDF
    The tuple space abstraction provides an easy-to-use programming paradigm for distributed applications. Intuitively, it behaves like a distributed shared memory, where applications write and read entries (tuples). When deployed over a wide area network, the tuple space needs to efficiently cope with faults of links and nodes. Erasure coding techniques are increasingly popular to deal with such catastrophic events, in particular due to their storage efficiency with respect to replication. When a client writes a tuple into the system, this is first striped into k blocks and encoded into n > k blocks, in a fault-redundant manner. Then, any k out of the n blocks are sufficient to reconstruct and read the tuple. This paper presents several strategies to place those blocks across the set of nodes of a wide area network, that all together form the tuple space. We present the performance trade-offs of different placement strategies by means of simulations and a Python implementation of a distributed tuple space. Our results reveal important differences in the efficiency of the different strategies, for example in terms of block fetching latency, and that having some knowledge of the underlying network graph topology is highly beneficia

    Parallel computing : the story of the elves and the shoemaker : inaugural lecture delivered at Rhodes University

    Get PDF
    Inaugural lecture delivered at Rhodes UniversityRhodes University Libraries (Digitisation

    Verification of distributed dataspace architectures

    Get PDF

    A channel-based coordination model for components

    Get PDF
    In this paper we present a coordination model for component-based software systems based on the notion of mobile channels, and describe its implementation in the Java language. Channels allow anonymous, and point-to-point communication among components, while mobility allows dynamic reconfiguration of channel connections in a system. This model supports dynamic distributed systems where components can be mobile. It provides an efficient way of interaction among components. Furthermore, our model provides a clear separation between the computational part and the coordination part of a system, allowing the development and description of the coordination structure of a system to be done in a transparent way. Our description of the Java implementation of this coordination model demonstrates that it is self-contained enough for developing component-based systems. However, if desired, our model can be used as a basis to extend other models that focus on other aspects of components that are less related to composition and coordination concerns

    The unified coordination language UnCL.

    Get PDF
    In this paper we show how to use a (subset) of UML as an Unified Coordination Language (UnCL) that is based on a separation of concerns between coordination and computation. As such UnCL provides a general language for the coordination of, in particular, object-oriented applications. The basic idea of UnCL is to use UML as a formalism to specify the `glue code' in terms of state-machines which are added to the classes of the underlying applications. These state-machines describe the coordination of the objects of the underlying applications in terms of sending and receiving events. We introduce a formal semantics of UnCL and discuss its implementation using a new tool for the transformation of XML data which is based on a new Rule Markup Language (RML). Finally, we discuss the incorporation of a more high-level coordination mechanism called MoCha, an exogenous coordination framework for (distributed) communication and collaboration using mobile channels as its mediu

    Formal specification of javaspaces architecture using muCRL

    Get PDF

    Infrastructure for Distributed Applications in Ad Hoc Networks of Small Mobile Wireless Devices

    Get PDF
    Mobile wireless computing devices such as cellphones, pagers, personal digital assistants, pocket PCs, and tablet computers are all potential platforms for participating in small group, wireless, many-to-many distributed applications. The networking technology needed to support such applications is readily available. However, almost all existing middleware infrastructure for distributed applications was designed for central servers and wired connections. The Anhinga Infrastructure described here runs entirely on the wireless mobile devices and so does not require any central server support. The Anhinga Infrastructure provides a message broadcast ad hoc networking protocol and a distributed computing platform based on lightweight versions of Java, Jini Network Technology, and tuple spaces
    corecore