Results

Overview

The main outcome of the HEADS project is an Integrated Development Environment (IDE) supporting a domain specific modeling language and an operational methodology for specification, validation, deployment and evolution of software-intensive services distributed across the future computing continuum. The HEADS IDE allows modeling the behavior of a service in a homogeneous HEADS modeling language while allowing the implementation of the service to be distributed over heterogeneous networks and devices. The HEADS IDE is developed and released as open-source and extensible by a plugin mechanism and a framework to add support for additional platforms. Note that the HEADS IDE does not replace existing popular and widespread IDEs and frameworks, but will provide advanced support for making the necessary glue between all the distributed nodes, components, platforms and communication protocols and leverage a coherent seamless operational support for the largely distributed future computing continuum systems.

HEADS makes HD-Service development affordable and accessible to a wide range of industry domains. The project especially targets SMEs which typically do not have in-house knowledge of all the target platforms they would like to exploit within the future computing continuum. It also targets sectors for which a rapid innovation and release cycle is the key. Moreover, the emergence of the future computing continuum will impact end user requirements and transform business markets, this again require companies to evolve existing products and services to fully exploit this continuum. A main impact of HEADS is through provision of exploitable results to perform these tasks in an efficient and cost effective way.

Check out HEADS "Big Picture" in the following link: http://heads-project.eu/approach

Significant results

Use cases, implementation and validation

  • Finalized industrial use-cases.
  • Provided consolidated use case implementation applying and evaluating HEADS technologies.

Languages, models and tools for engineering HD-services

  • Framework to test the consistency of the different HEADS compilers (and each individual compiler). Additional test have been added to the suite. Java compiler and JavaScript compiler now passes 100% of the tests. C compiler now passes 97% of the tests.
  • Architecture for the HEADS code generation framework and implementation of a set of compilers:
    • JavaScript, with extensions targeting HEADS models@runtime platform, and NodeRED (work in progress)
    • Java, with extension targeting HEADS models@runtime platform
    • C (work in progress), with extensions targeting Linux, Arduino and ROS
    • UML, with automatic export of UML statecharts and component diagrams
  • Extension of the HEADS modelling language to support
    • Complex-Event Processing constructs, which simplifies the implementation of HD-services by automating some analysis
    • Advanced communication pattern, which simplifies the implementation of HD-services by automating some communication patterns which requires more that the default asynchronous fire-and-forget message passing semantics.
  • Organization of internal tutorials for "Use cases, requirements and validation" activities (and other partners) to get started with modeling languages and code-generation framework under "Languages, models and tools for engineering HD-services" activities.

Resource-constrained devices and networks

  • Framework adaption has been made for three device groups; Tiny devices with little memory (<4k RAM) and no OS, Small devices with limited memory (<64k RAM) and dedicated OS and Large devices capable of running a general OS.
  • Adaptations for all device groups are available with full HEADS code generator support except for CEP that is only supported for Large devices.
  • Tailored code generator based on C and embedded C++ has been tested for Tiny and Small devices like AVR (ATMEL), MSP (Texas Instuments) and ARM cortex-M3 integrated using uC/OS-II and uC/OS-III.
  • Standard generators (C, JS, Java) has been tested for Large devices like Arduino Yun, Raspberry PI, Intel Edison, Mediatek, CubieBoard, CubieTruck, BeagleBone, Ordoid, 96Boards, Android, IOS.
  • Network plugins with serializers for inter-processor communication are tested for MQTT, Websockets, HTTP, UDP, BLE, GSM, UART, ZWAVE, IR.
  • Plugins for intra processor communication are tested for I2C, Timers and uC/OS message passing.
  • All targets are connected to the HEADS models@runtime platform directly or through proxy modules.

Cloud-based platforms for testing and data management

  • Docker container management from Kevoree
  • code generator testing framework using novelty search techniques
  • New Kevoree version to support heterogeneity within the same systems
  • Javasript platform to support Intel Edison devices.
  • First version of CEP recommender tool is available for simple CEP logic
  • CEP recommender tool integrated as Eclipse plugin into HEADS IDE
  • Views added to CEP recommender tool for nodes, operations, and recommendations

Methodology and tool integration

  • Final release of HEADS IDE methodology
  • Seamless integration to HEADS IDE
  • New methodology based on JavaScript, TypeScript and Sintef Board Node to formalizes guidelines and best practices for the infrastructure experts

Technical Work

The work carried in the technical work packages has focused on defining a common HEADS big picture which integrates the HEADS technical contributions into a common framework. The following figure presents the HEADS IDE components together with the main HEADS actors. The HEADS IDE includes two main parts: the design time tools in the top part of the figure and the runtime tools on the bottom part of the figure.

HEADS IDE Big Picture

The HEADS design time tools are integrated using the Eclipse platform and are based on the ThingML languages and tools developed by SINTEF.

The HEADS runtime is not dependent on any middleware or runtime platform but uses models@runtime technique to deploy and monitor the execution of an HD-Service on top of a heterogeneous and distributed infrastructure. The HEADS deployment and runtime tools are based on the Kevoree model@runtime platform developed by INRIA.

The HEADS IDE is meant to be used by the HD-Service developer and the HD-Service operator in order to create, deploy, monitor and evolve HD-Services. The distinction between the service developer and operator is that the developer is mainly concerned with the HEADS design time tools (based on ThingML) and the operator is mainly concerned with the HEADS runtime tools (based on Kevoree).

In addition, the HEADS IDE is meant to be extended by platform experts. The HEADS IDE is built as an open-source framework which has a set of extension points to support new platforms and communication channels. At this point, we have identified four extension points which are represented by yellow stars with numbers in previous figure. Each of these extension points allows supporting different aspects of a particular target platform. HEADS is focusing on how these extension points can be used to support resource-constrained devices and networks and at the same time extensions to support cloud based platforms.

Latest News

Final HEADS project results on the future computing continuum!

Jun 28

After 42 months of research on heterogeneous and distributed services for future computing continuum, HEADS project concluded in

Tellu participating at Vitalis 2017

May 02

Tellu participated at Vitalis 2017 in Gothenburg, Sweden, on 25th-27th of April 2017.

TelluCloud innovation developed in the HEADS project at EC's stand in CEBIT 2017

Mar 20

We are very glad to announce that Tellu AS has officially been selected as one of the top inn