1,721,116 research outputs found
Scientific Programming
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
MADTECC 2024: 1st Workshop on Medical Applications with Digital Twins and Edge-cloud Continuum - Welcome and Committees
An Architecture and Prototype for Monitoring Distributed Simulations of Distributed Systems
Aggregate Programming for the Internet of Things
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
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
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
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
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
- …
