1,721,116 research outputs found

    Scientific Programming

    No full text
    Scientific Programming is a peer-reviewed, Open Access journal that provides a meeting ground for research results in, and practical experience with, software engineering environments, tools, languages, and models of computation aimed specifically at supporting scientific and engineering computing. The journal publishes papers on language, compiler, and programming environment issues for scientific computing. Of particular interest are contributions to programming and software engineering for grid computing, high performance computing, processing very large data sets, supercomputing, visualization, and parallel computing. All languages used in scientific programming as well as scientific programming libraries are within the scope of the journal

    Aggregate Programming for the Internet of Things

    Full text link
    Through field calculus constructs and building-block APIs, aggregate programming could help unlock the IoT’s true potential by allowing complex distributed services to be specified succinctly and by enabling such services to be safely encapsulated, modulated, and composed with one another

    Breaking down monoliths with Microservices and DevOps: an industrial experience report

    Full text link
    Recent trends in software production fostered the adoption of microservice architectures, where a product is the result of the coordinated execution of several loosely coupled autonomous services, thus promoting modularity, scalability, and integration of legacy products by wrapping. This architectural style also promotes parallel development, as different teams can be in charge of different services; however, this parallelization is at first sight at odds with the established practice of continuous integration: a change to a single service may cause cascading effects that the local testing cannot capture, and the overall functionality may thus get compromised even though all services apparently work. In this paper, we report an experience of a successful and thorough implementation of DevOps techniques into a large business, carried out by a relatively small team. We discuss the steps taken to build a continuous integration pipeline performing system-wide quality assurance, the development practices that enable such a pipeline to be effective, and the lessons learned by applying these practices in a digital publishing industry setting

    A coordination model of pervasive service ecosystems

    No full text
    The complexity of pervasive computing systems is rapidly increasing, and this calls for service models and coordination approaches intrinsically manifesting self-organisation of component interactions. The goal of this paper is to provide a coordination model (formalised as a process algebra) capturing the relevant aspects of such systems. It should allow the behaviour of large-scale, situated, and self-organising systems to be conveniently expressed, paving the way towards their rigorous study as well as development of supporting platforms. Focusing on the recently introduced concept of pervasive ecosystems, the proposed model revolves around (i) the notion of a distributed and dynamic space of “live semantic annotations” (wrapping data, knowledge, and the relevant facts about activities of humans, devices, and services) upon which autonomous agents coordinate and (ii) a small set of chemical-resembling coordination rules that enforce mechanisms of diffusion, aggregation, decay, and bonding between such annotations

    Dynamic Decentralization Domains for the Internet of Things

    Full text link
    The Internet of Things (IoT) and edge computing are fostering a future of ecosystems hosting complex decentralized computations that are deeply integrated with our very dynamic environments. Digitalized buildings, communities of people, and cities will be the next-generation "hardware and platform,"counting myriads of interconnected devices, on top of which intrinsically distributed computational processes will run and self-organize. They will spontaneously spawn, diffuse to pertinent logical/physical regions, cooperate and compete, opportunistically summon required resources, collect and analyze data, compute results, trigger distributed actions, and eventually decay. What would a programming model for such ecosystems look like? Based on research findings on self-adaptive/self-organizing systems, this article proposes design abstractions based on "dynamic decentralization domains": regions of space opportunistically formed to support situated recognition and action. We embody the approach into a Scala application program interface (API) enacting distributed execution and show its applicability in a case study of environmental monitoring

    ScaFi: A Scala DSL and Toolkit for Aggregate Programming

    Full text link
    Supported by current socio-scientific trends, programming the global behaviour of whole computational collectives makes for great opportunities, but also significant challenges. Recently, aggregate computing has emerged as a prominent paradigm for so-called collective adaptive systems programming. To shorten the gap between such research endeavours and mainstream software development and engineering, we present ScaFi, a Scala toolkit providing an internal domain-specific language, libraries, a simulation environment, and runtime support for practical aggregate computing systems development
    corecore