502 research outputs found

    Taming Multi-core Parallelism with Concurrent Mixin Layers

    Get PDF
    The recent shift in computer system design to multi-core technology requires that the developer leverage explicit parallel programming techniques in order to utilize available performance. Nevertheless, developing the requisite parallel applications remains a prohibitively-difficult undertaking, particularly for the general programmer. To mitigate many of the challenges in creating concurrent software, this paper introduces a new parallel programming methodology that leverages feature-oriented programming (FOP) to logically decompose a product line architecture (PLA) into concurrent execution units. In addition, our efficient implementation of this methodology, that we call concurrent mixin layers, uses a layered architecture to facilitate the development of parallel applications. To validate our methodology and accompanying implementation, we present a case study of a product line of multimedia applications deployed within a typical multi-core environment. Our performance results demonstrate that a product line can be effectively transformed into parallel applications capable of utilizing multiple cores, thus improving performance. Furthermore, concurrent mixin layers significantly reduces the complexity of parallel programming by eliminating the need for the programmer to introduce explicit low-level concurrency control. Our initial experience gives us reason to believe that concurrent mixin layers is a promising technique for taming parallelism in multi-core environments

    Architectural Refactoring for Fast and Modular Bioinformatics Sequence Search

    Get PDF
    Bioinformaticists use the Basic Local Alignment Search Tool (BLAST) to characterize an unknown sequence by comparing it against a database of known sequences, thus detecting evolutionary relationships and biological properties. mpiBLAST is a widely-used, high-performance, open-source parallelization of BLAST that runs on a computer cluster delivering super-linear speedups. However, the Achilles heel of mpiBLAST is its lack of modularity, adversely affecting maintainability and extensibility; an effective architectural refactoring will benefit both users and developers. This paper describes our experiences in the architectural refactoring of mpiBLAST into a modular, high-performance software package. Our evaluation of five component-oriented designs culminated in a design that enables modularity while retaining high-performance. Furthermore, we achieved this refactoring effectively and efficiently using eXtreme Programming techniques. These experiences will be of value to software engineers faced with the challenge of creating maintainable and extensible, high-performance, bioinformatics software

    Automated Deployment of a Microservice-based Monitoring Infrastructure

    Get PDF
    We explore the specification and the automated deployment of a monitoring infrastructure in a container-based distributed system. This result shows that highly customizable monitoring infrastructures can be effectively provided as a service, and that a key step in this process is the definition of an expandable abstract model for them. So we start defining a simple model of the monitoring infrastructure that provides an interface between the user and the cloud management system. The interface follows the guidelines of Open Cloud Computing Interface (OCCI), the cloud interface standard proposed by the Open Grid Forum. The definition is simple and generic and it is a first step towards the definition of a standard interface for Monitoring Services. It allows the definition of complex, hierarchical monitoring infrastructure by composing multiple instances of two basic components, one for measurement and another for data distribution,. We illustrate how the monitoring functionalities that are defined through the interface are implemented as microservices embedded in containers. The internals of each microservice reflects the distinction between core functionalities which are bound to the standard, and custom plugin modules. We describe the engine that automatically deploys a system of microservices that implements the monitoring infrastructure. Special attention is paid to preserve the distinction between core and custom functionalities, and the on demand nature of a cloud service. A proof of concept demo is available through the Docker hub and consists of two multi-threaded Java appli- cations that implement the two basic components

    Automatic Code Generation for Actuator Interfacing from a Declarative Specification

    Get PDF
    Abstract -Common software design practices use objectoriented (OO) frameworks that structure software in terms of objects, classes, and package; designers then create programs by inheritance and composition of classes and objects. Operational Software Components for Advanced Robotics (OSCAR) is one such framework for robot control software with abstractions for generalized kinematics, dynamics, performance criteria, decision making, and hardware interfacing. Even with OSCAR, writing new programs still requires a significant amount of manual labor. Feature-Oriented Programming (FOP) is method for software design that models and specifies programs in terms of features, where a feature encapsulates the common design decisions that occur in a domain. A set of features then forms a domain model for a Product Line Architecture. Product variants in this product line can then be generated from a declarative specification. FOP and related technologies are emerging software engineering techniques for automatically generating prorams. Our research applies FOP to robot controller software. As an example, the domain of hardware interfacing is analyzed and 41 features identified. A GUI for specifying and generating programs is presented as well. Analysis of features shows 200 possible different programs could be generated

    Multiagent System Product Lines: Challenges and Benefits

    Get PDF
    Ministerio de Ciencia y Tecnología TIC2003-02737-C02-01Ministerio de Ciencia y Tecnología TIN2006-0047

    A Vocabulary for the Modelling of Image search Microservices

    Get PDF
    In order to take advantage of the services that are available on the Web, several approaches that allow describing services have been proposed. With them, developers can publish service descriptions, allowing services to be automatically executed and composed. However, in most cases, the service description task is not carried out, partly because it is a time-consuming task. This has caused initiatives such as WSMO lite, SA-REST,hRESTS or Microservices, that try to reduce complexity in services, to appear. Also, an increasing number of web applications have followed the Linked Data initiative and publish information that is machine processable thanks to Semantic Web technologies such as RDF. However, sometimes direct access to information requires the usage of search forms and, in other cases, spidering techniques such as focused crawling in order to aggregate and filter data. Automatic execution of search services would improve access to information in the web by enabling agents to automatically aggregate, filter and directly access data. In this paper, it is presented how the Microservices framework can provide a feature-based vocabulary for the description of image search services. Microservices framework is a light weight service description frame work that takes feature-oriented and aspect-oriented programming ideas to service description. The article illustrate show this vocabulary can characterise a set of popular search services, such as Google Images or Flickr. In addition, the article describes how this vocabulary can be used for the development of new services, such as ameta searcher that aggregates results from various search service

    Can Agent Oriented Software Engineering Be Used to Build MASs Product Lines?

    Get PDF
    On the one hand, the Software Product Lines (SPL) field is devoted to build a core architecture for a family of products from which concrete products can be derived rapidly by means of reuse. On the other hand, Agent-Oriented Software Engineering (AOSE) is a software engineering paradigms dedicated to build software applications composed of organizations of agents. Bringing AOSE to the industrial world may prettily benefit from SPL advantages. Using SPL phi losophy, a company will be able to define a core MAS from which concrete prod ucts will be derived for each customer. This can reduce time-to-market, costs, etcetera. In this paper, we expose the similarities between AOSE and SPL con cluding the viability of future research in Multi-Agent Systems Product Lines (MAS-PL)
    corecore